YOLO Vision 2026:

如何贡献 🚀#

欢迎!很高兴你考虑为 Ultralytics 开源项目贡献力量。你的参与有助于提升我们代码仓库的质量,并惠及整个计算机视觉社区。

完整指南

如需全面了解贡献指南,还请参阅主文档中的 Ultralytics 官方贡献指南

Ultralytics 开源贡献者

观看:为 Ultralytics 做贡献#

快速入门指南 🎯#

准备好贡献了吗?请按照以下步骤操作:

  1. 阅读我们的行为准则 - 尊重、友善和专业
  2. Fork 你想要贡献的代码仓库
  3. 创建功能分支,并使用描述性名称
  4. 进行修改,并遵循编码规范
  5. 为新功能编写测试
  6. 提交 Pull Request,并附上清晰的描述
  7. 签署 CLA,方法是在你的 PR 中发表评论
  8. 回复审阅者的反馈

详细的 PR 流程请参阅开发工作流

贡献指南 📋#

行为准则 🤝#

所有贡献者都必须遵守我们的行为准则,该准则基于贡献者公约。这确保了一个对所有人友好且包容的环境。尊重友善专业是我们社区的核心价值。

贡献者许可协议 (CLA) 📝#

在我们合并你的 PR 之前,你必须签署我们的 CLA。这份法律协议确保贡献内容依据 AGPL-3.0 获得适当许可,保护你和项目双方的权益。

提交 PR 后,CLA 机器人会引导你完成操作。签署协议时,请发表评论:

I have read the CLA Document and I sign the CLA

CLA 涵盖以下内容:

  • 针对你所做贡献的版权和专利许可
  • Ultralytics 使用和分发你作品的权利
  • 你声明拥有所做贡献相关权利
  • 免责声明

如需了解完整条款,请查看完整的 CLA 文档

最佳实践 ✨#

贡献代码时:

  • 避免重复:尽可能复用现有代码
  • 进行较小的修改:优先进行聚焦式修改,而不是大规模变更
  • 简化代码:寻找可以简化的地方
  • 考虑兼容性:避免破坏现有代码
  • 使用一致的格式:遵循 Ruff Formatter
  • 添加测试:为新功能包含相应测试
  • 更新文档:保持文档为最新状态

编码规范 📐#

  • 文档字符串:使用带括号内类型信息的 Google 风格文档字符串
  • 行宽:最多 120 个字符
  • 导入:使用 pathlib,而不是 os
  • 测试:所有 PR 都必须通过 CI 测试
  • 类型提示:在有帮助的地方使用类型提示

完整的编码规范请参阅开发工作流

贡献方式 🌟#

代码贡献 💻#

文档 📚#

  • 改进现有文档
  • 为特定使用场景添加教程和指南
  • 修复拼写错误和其他错误
  • 将文档翻译成其他语言

测试 🧪#

  • 为新功能编写单元测试
  • 在不同的模型任务上测试新功能
  • 报告测试覆盖率缺口
  • 跨平台进行性能基准测试

社区支持 💬#

报告错误 🐞#

通过 GitHub Issues 报告错误,帮助我们改进:

错误报告要求#

  1. 检查现有问题,避免重复
  2. 创建最小可复现示例 (MRE) - 能够复现问题的小型独立代码
  3. 描述环境:操作系统、Python 版本、库版本、硬件(CPU/GPU)
  4. 说明预期行为与实际行为的差异,并附上错误消息和回溯信息

什么样的 MRE 才算合格#

最小可复现示例应当:

  • 隔离问题:移除不必要的代码
  • 使用公开模型和数据集:例如 yolo26n.ptcoco8.yaml
  • 包含依赖项:使用 yolo checkspip list 列出依赖项
  • 提供清晰的描述:说明预期行为与实际行为
  • 正确格式化:使用三个反引号包围的代码块
  • 确保可测试:其他人无需修改即可运行

详细说明请参阅完整的 MRE 指南

审阅 Pull Request 👀#

审阅 PR 是一种很有价值的贡献方式:

  • 检查单元测试:验证新功能是否有相应测试
  • 审阅文档:确保文档已更新
  • 评估性能:考虑对速度和内存的影响
  • 验证 CI 测试:确认所有测试均已通过
  • 提供建设性反馈:具体且有帮助
  • 认可他人的努力:感谢贡献者

许可证信息 📜#

AGPL-3.0 许可证#

Ultralytics 的代码仓库使用 AGPL-3.0 许可证。这有助于促进开放、透明和协作式改进。

在你的项目中使用 YOLO#

如果你在项目中使用 Ultralytics YOLO 模型或代码,AGPL-3.0 要求你的整个衍生作品也必须依据 AGPL-3.0 开源。

为什么合规很重要:

  • 让软件保持开放,以惠及社区
  • 使用 AGPL-3.0 代码时的法律要求
  • 促进协作与透明度

**替代方案:**如果你不想将项目开源,请获取企业许可证

如何遵守 AGPL-3.0#

在 AGPL-3.0 下公开提供完整源代码:

  1. 选择起点

  2. 为你的项目授权

    • 添加 LICENSE 文件,其中包含完整的 AGPL-3.0 文本
    • 在源代码文件顶部添加许可证声明
  3. 发布源代码,包括:

    • 完整的应用程序/系统
    • 对 Ultralytics 代码的修改
    • 训练/验证/推理脚本
    • 修改后的模型权重
    • 使用的配置文件和数据集
    • 后端/前端代码
    • 修改后的第三方库
    • 可再分发的训练数据
  4. 清晰记录

    • README.md 中声明 AGPL-3.0 许可证
    • 包含设置说明
    • 适当地注明 Ultralytics YOLO 的归属

有关示例结构,请参阅 Ultralytics Template Repository

我们的开发团队 👥#

如需指导,欢迎联系团队成员:

姓名GitHub 个人资料
Abi AndersonUltralyticsAbi
Abirami Vinaabirami-vina
Alex WongUltraAlex118
Alexis Schutzgerpicsalex
Altaïr Kabunda-Margaletaltair-jpg
Anastasiia Khrapalnastijakh
Anthony Evansantevansultralytics
Antonina PoludenaAntonina2111
Craig Johnstoncraigjohnston1
Darin Kabashidarin-k
Ed Crooked-yolo
Esat Kalfaogluartest08
Fatih Akyonfcakyon
Francesco Mattioliambitious-octopus
Giovanni Dal Zillioggg-dz-ultralytics
Glenn Jocherglenn-jocher
Hannah StreifHannahStreif
Irene Calatravaicalatrava
Jake Qianfengqianjake
Javier ChulviJaviChulvi
Jianing Qi (Jalyn)jianing-Jalyn
Jin Xulaodouya
Jing QiuLaughing-q
Joey CheriseaCherisea
Joey TjonNoCodeJoey
Kasim Acikbaskayselmecnun
Kristian Sommersokrisba
Lakshantha Dissanayakelakshanthad
Leo Samsingerlsamsinger
Marius KeiserSkillnoob
Matt Bristowmatt-ultralytics
Maxim Sokolovsomal
Mengyu (Mason) Liulmycross
Miles Deansmiles-deans-ultralytics
Mohammed YasinY-T-G
Muhammad Rizwan MunawarRizwanMunawar
Murat Raimbekovraimbekovm
Nicolai Nielsenniconielsen32
Nuvola LadiNLadi
Olivia Wangziyue-olivia
Onuralp Sezeronuralpszr
Pablo Karnbaumpablokarnbaum
Paula Derrengerpderrenger
Rick HouBovey0809
Sergiu Waxmannsergiuwaxmann
Shuai (Louis) LyuShuaiLYU
Thomas Chuangchuang091
Tianshu Litianshu-Li715
Yogendra Singhyogendrasinghx
Zinnia Pourdadzinnialp
Zuzana Kontrikovazkontri

获取支持 💬#

有问题或需要帮助?

谢谢!🎉#

感谢你对 Ultralytics 开源项目的关注并参与贡献。你的参与对于塑造我们软件的未来,以及构建充满创新与协作活力的社区至关重要。

我们期待看到你的想法落地,也感谢你致力于推动目标检测技术的发展。让我们携手继续成长与创新!🚀🌟

资源 📚#