Skip to main content

如何贡献 🚀

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

完整指南

如需查看完整的投稿指南,请参阅 Ultralytics 官方贡献指南 在我们的主要文档中。

Ultralytics 开源贡献者

观看:为 Ultralytics 贡献力量

快速入门指南 🎯

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

  1. 阅读我们的 行为准则 - 尊重、友善与专业精神
  2. 分叉该仓库 你想为……做出贡献
  3. 创建功能分支 带有描述性名称
  4. 进行修改 遵循编码规范
  5. 编写测试 用于新增功能
  6. 提交拉取请求 附有清晰的说明
  7. 签署集体协议 在您的拉取请求中留言
  8. 回复反馈 来自评论者

参见 开发工作流 了解详细的公关流程。

投稿指南 📋

行为准则 🤝

所有贡献者必须遵守我们的 行为准则,该作品基于 《贡献者公约》. 这确保了为每个人营造一个温馨且包容的环境。 尊重, 仁慈专业精神 是社区的核心。

贡献者许可协议 (CLA) 📝

在合并您的 PR 之前,您必须签署我们的 CLA. 本法律协议确保贡献内容已根据 AGPL-3.0,既能保护您,也能保护项目。

提交 PR 后,CLA 机器人将引导您。如需签名,请发表评论:

I have read the CLA Document and I sign the CLA

《集体劳资协议》涵盖:

  • 您所提交内容的版权和专利许可
  • Ultralytics 使用和传播您的作品的权利
  • 关于您拥有所投稿内容权利的声明
  • 免责声明

查看全文 CLA文件 查看完整条款。

最佳实践 ✨

在提交代码时:

  • 避免重复: 尽可能复用现有代码
  • 做出更小的调整: 重点进行局部调整,而非大规模变更
  • 简化: 寻找简化的机会
  • 请考虑兼容性: 避免破坏现有代码
  • 保持格式统一: 关注 Ruff 格式化器
  • 添加测试: 添加新功能的测试
  • 更新文档: 保留 文档 当前

编码规范 📐

  • 文档字符串:使用 Google 风格的文档字符串 带括号的类型
  • 线宽: 最多 120 个字符
  • 导入:使用 pathlib 代替 os
  • 测试: 所有 PR 必须通过 CI 测试
  • 类型提示: 在有益的情况下使用

参见 开发工作流 有关完整的编码规范。

参与方式 🌟

代码贡献 💻

文档 📚

  • 改进现有 文档
  • 添加 教程和指南 针对特定使用场景
  • 修正错别字和错误
  • 将文档翻译成其他语言

测试 🧪

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

社区支持 💬

报告错误 🐞

请通过以下方式报告错误,帮助我们改进 GitHub 问题:

错误报告要求

  1. 查看现有问题 为避免重复
  2. 创建 最小可重现示例 (MRE) - 一段能够复现该问题的简短、自包含代码
  3. 描述环境: 操作系统、Python 、库版本、硬件(GPU)
  4. 解释预期行为与实际行为的差异 附带错误信息和回溯信息

什么样的MRE才算好

一个可重现的最小示例应:

  • 找出问题所在: 删除多余的代码
  • 使用公开模型和数据集例如: yolo26n.ptcoco8.yaml
  • 包含依赖项: 列表 yolo checkspip list
  • 提供清晰的描述: 预期行为与实际行为
  • 格式正确: 使用三个反引号来定义代码块
  • 可测试性: 其他人可以直接运行,无需修改

查看完整内容 MRE指南 有关详细说明。

审查拉取请求 👀

审阅 PR 是一项有价值的贡献:

  • 检查单元测试: 验证新功能的测试
  • 查阅文档: 确保文档已更新
  • 评估绩效: 考虑对速度/内存的影响
  • 验证持续集成测试: 确认所有测试均通过
  • 提供建设性反馈: 请具体且有帮助
  • 认可努力: 感谢各位贡献者

许可证信息 📜

AGPL-3.0

Ultralytics 的用途 AGPL-3.0 适用于代码库。这有助于促进开放性、透明度以及协作改进。

YOLO 您的项目YOLO 使用YOLO

如果您使用 UltralyticsYOLO 如果您在项目中使用了模型或代码,AGPL-3.0 您的全部衍生作品也必须根据AGPL-3.0 协议开源。

合规为何重要:

  • 致力于保持软件开源,造福社区
  • 使用AGPL-3.0 时的法律要求
  • 促进协作与透明度

备选: 如果您不希望将项目开源,请获取一个 企业许可证.

如何遵守 AGPL-3.0 协议

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

  1. 选择起点:

  2. 为您的项目获取许可:

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

    • 完整的应用程序/系统
    • 对代码 Ultralytics 的修改
    • 训练/验证/推理 脚本
    • 模型权重(如有修改)
    • 配置文件和 数据集 已使用
    • 后端/前端代码
    • 修改了第三方库
    • 训练数据是否可重新分发
  4. 请明确说明:

    • AGPL-3.0 README.md
    • 包含安装说明
    • YOLO 设置 UltralyticsYOLO 属性

参见 Ultralytics 模板库 例如结构。

我们的开发团队 👥

如有疑问,欢迎随时联系团队成员寻求指导:

名称GitHub 个人主页
阿比·安德森UltralyticsAbi
阿比拉米·维纳abirami-vina
亚历克斯·王UltraAlex118
亚历克西斯·舒茨格picsalex
阿尔泰尔·卡邦达-马加莱特altair-jpg
阿纳斯塔西娅·赫拉帕尔nastijakh
安德烈·巴尼卡ultralytics
安东尼娜·波卢德娜Antonina2111
布尔汉·卡杜米Burhan-Q
克雷格·约翰斯顿craigjohnston1
克雷格·麦克斯韦尔craig-ships-it
埃萨特·卡尔法奥卢artest08
法蒂赫·阿克永fcakyon
弗朗切斯科·马蒂奥利ambitious-octopus
乔瓦尼·达尔·齐利奥ultralytics
Glenn Jocherglenn-jocher
汉娜·斯特雷夫汉娜·斯特雷夫
钱杰fengqianjake
齐建宁(Jalyn)jianing-Jalyn
金旭劳道亚
景秋Laughing-q
乔伊·乔恩NoCodeJoey
卡西姆·阿奇克巴斯kayselmecnun
基里尔·韦尔比茨基克韦尔比茨基
克里斯蒂安·索默sokrisba
拉克桑塔·迪萨纳亚克lakshanthad
利奥·萨姆辛格lsamsinger
马里乌斯·凯泽Skillnoob
马特·布里斯托ultralytics
刘梦雨(梅森)lmycross
迈尔斯·迪恩斯miles-deans-ultralytics
穆罕默德·亚辛Y-T-G
穆罕默德·里兹万·穆纳瓦尔RizwanMunawar
米科拉·博伊科mykolaxboiko
尼古拉·尼尔森niconielsen32
努沃拉·拉迪NLadi
王奥利维亚ziyue-olivia
奥努尔阿尔普·塞泽尔onuralpszr
巴勃罗·卡恩鲍姆pablokarnbaum
宝拉·德伦杰pderrenger
普拉蒂克·巴特纳加尔ultralytics
侯瑞克Bovey0809
塞尔吉乌·瓦克斯曼sergiuwaxmann
刘帅(路易斯)ShuaiLYU
张托马斯chuang091
约根德拉·辛格yogendrasinghx
蒂格兰·哈科比扬t-hakobyan
紫菀·普尔达德zinnialp
祖扎娜·孔特里科娃zkontri

获取支持 💬

有疑问或需要帮助吗?

谢谢!🎉

感谢您对参与 Ultralytics 开源项目感兴趣。您的参与对于塑造我们软件的未来,以及构建一个充满活力、致力于创新与协作的社区至关重要。

我们非常期待看到您的创意化为现实,并感谢您为推动物体检测技术发展所做的贡献。让我们携手并进,继续成长与创新!🚀🌟

资源 📚