YOLO Vision 2026:

如何做出贡献 🚀#

欢迎!我们非常高兴你考虑为 Ultralytics 开源项目做出贡献。你的参与有助于提升我们代码库的质量,并让整个计算机视觉社区受益。

完整准则

有关全面的贡献指南,请同时参阅我们主文档中的官方 Ultralytics 贡献指南

Ultralytics 开源贡献者

观看:为 Ultralytics 做出贡献#

快速入门指南 🎯#

准备好做出贡献了吗?请遵循以下步骤:

  1. 阅读我们的行为准则 - 尊重、友善与专业
  2. Fork 你想要贡献的仓库
  3. 创建一个具有描述性名称的功能分支
  4. 遵循编码规范做出你的更改
  5. 为新功能编写测试
  6. 提交一个描述清晰的 pull request
  7. 通过在你的 PR 中评论来签署 CLA
  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
  • 添加测试:为新功能包含测试
  • 更新文档:保持文档最新

编码标准 📐#

  • 文档字符串:使用带括号类型的谷歌风格文档字符串
  • 行宽:最大 120 个字符
  • 导入:使用 pathlib 代替 os
  • 测试:所有 PR 都必须通过CI 测试
  • 类型提示:在有益处的地方使用

查看开发工作流程了解完整的编码标准。

贡献方式 🌟#

代码贡献 💻#

平台兼容性改进#

  • 改进现有文档
  • 为特定用例添加教程和指南
  • 修正拼写错误和勘误
  • 修复拼写错误和误差

将文档翻译成其他语言#

  • 测试 🧪
  • 在不同的模型任务上测试新功能
  • 报告测试覆盖率缺失之处
  • 跨平台的性能基准测试

社区支持 💬#

报告 Bug 🐞#

通过 GitHub Issues 报告 Bug 来帮助我们改进:

错误报告要求#

  1. 错误报告要求
  2. 创建最小可复现示例 (MRE) - 用于复现问题的小型、自包含代码
  3. 描述环境:操作系统、Python 版本、库版本、硬件 (CPU/GPU)
  4. 描述环境:操作系统、Python 版本、库版本、硬件 (CPU/GPU)

解释预期行为与实际行为,并提供错误消息和回溯信息#

什么是好的 MRE

  • 最小复现示例应包含:
  • 使用公共模型和数据集:例如,yolo26n.ptcoco8.yaml
  • 包含依赖项:使用 yolo checkspip list 列出
  • 提供清晰的描述:预期行为与实际行为的对比
  • 提供清晰的描述:预期行为与实际行为
  • 正确格式化:使用带有三个反引号的代码块

查看完整的MRE 指南了解详细说明。

审查 Pull Requests 👀#

审核 Pull Request 👀

  • 审核 PR 是一种宝贵的贡献:
  • 检查单元测试:验证新功能的测试
  • 审阅文档:确保文档已更新
  • 评估性能:考虑对速度/内存的影响
  • 验证 CI 测试:确认所有测试通过
  • 提供建设性反馈:具体且有帮助

认可贡献:感谢贡献者#

许可信息 📜#

Ultralytics 的仓库使用 AGPL-3.0。这促进了开放性、透明度以及协作改进。

在你的项目中使用 YOLO#

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

为什么合规很重要:

  • 合规的重要性:
  • 保持软件开放以造福社区
  • 使用 AGPL-3.0 代码时的法律要求

替代方案: 如果你倾向于不开源你的项目,请获取企业许可证

如何遵守 AGPL-3.0#

在 AGPL-3.0 许可下公开完整的源代码:

  1. 选择起点

  2. 为你的项目授权

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

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

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

参见Ultralytics 模板仓库了解示例结构。

我们的开发团队 👥#

请随时联系团队成员获取指导:

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

获取支持 💬#

有问题或需要帮助?

谢谢! 🎉#

感谢你对为 Ultralytics 开源项目做出贡献感兴趣。你的参与对于塑造我们软件的未来以及建立一个充满创新和协作活力的社区至关重要。

我们很高兴看到你的想法付诸实践,并感谢你致力于推动目标检测技术的发展。让我们一起继续成长和创新! 🚀🌟

资源 📚#