如何贡献 🚀
欢迎!我们非常高兴您考虑为 Ultralytics 开源项目做出贡献。您的参与有助于提升我们代码库的质量,并惠及整个计算机视觉社区。
如需查看完整的投稿指南,请参阅 Ultralytics 官方贡献指南 在我们的主要文档中。
观看:为 Ultralytics 贡献力量
快速入门指南 🎯
准备好贡献了吗?请按照以下步骤操作:
- 阅读我们的 行为准则 - 尊重、友善与专业精神
- 分叉该仓库 你想为……做出贡献
- 创建功能分支 带有描述性名称
- 进行修改 遵循编码规范
- 编写测试 用于新增功能
- 提交拉取请求 附有清晰的说明
- 签署集体协议 在您的拉取请求中留言
- 回复反馈 来自评论者
参见 开发工作流 了解详细的公关流程。
投稿指南 📋
行为准则 🤝
所有贡献者必须遵守我们的 行为准则,该作品基于 《贡献者公约》. 这确保了为每个人营造一个温馨且包容的环境。 尊重, 仁慈和 专业精神 是社区的核心。
贡献者许可协议 (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 问题:
错误报告要求
- 查看现有问题 为避免重复
- 创建 最小可重现示例 (MRE) - 一段能够复现该问题的简短、自包含代码
- 描述环境: 操作系统、Python 、库版本、硬件(GPU)
- 解释预期行为与实际行为的差异 附带错误信息和回溯信息
什么样的MRE才算好
一个可重现的最小示例应:
- 找出问题所在: 删除多余的代码
- 使用公开模型和数据集例如:
yolo26n.pt和coco8.yaml - 包含依赖项: 列表
yolo checks或pip 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 许可下公开发布:
-
选择起点:
- Fork UltralyticsYOLO
- 使用 Ultralytics 模板仓库
-
为您的项目获取许可:
- 添加
LICENSE包含完整内容的文件 AGPL-3.0 - 在源文件顶部添加许可声明
- 添加
-
发布源代码 包括:
-
请明确说明:
- AGPL-3.0
README.md - 包含安装说明
- YOLO 设置 UltralyticsYOLO 属性
- AGPL-3.0
参见 Ultralytics 模板库 例如结构。
我们的开发团队 👥
如有疑问,欢迎随时联系团队成员寻求指导:
| 名称 | GitHub 个人主页 |
|---|---|
| 阿比·安德森 | UltralyticsAbi |
| 阿比拉米·维纳 | abirami-vina |
| 亚历克斯·王 | UltraAlex118 |
| 亚历克西斯·舒茨格 | picsalex |
| 阿尔泰尔·卡邦达-马加莱特 | altair-jpg |
| 阿纳斯塔西娅·赫拉帕尔 | nastijakh |
| 安德烈·巴尼卡 | ultralytics |
| 安东尼娜·波卢德娜 | Antonina2111 |
| 布尔汉·卡杜米 | Burhan-Q |
| 克雷格·约翰斯顿 | craigjohnston1 |
| 克雷格·麦克斯韦尔 | craig-ships-it |
| 埃萨特·卡尔法奥卢 | artest08 |
| 法蒂赫·阿克永 | fcakyon |
| 弗朗切斯科·马蒂奥利 | ambitious-octopus |
| 乔瓦尼·达尔·齐利奥 | ultralytics |
| Glenn Jocher | glenn-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 开源项目感兴趣。您的参与对于塑造我们软件的未来,以及构建一个充满活力、致力于创新与协作的社区至关重要。
我们非常期待看到您的创意化为现实,并感谢您为推动物体检测技术发展所做的贡献。让我们携手并进,继续成长与创新!🚀🌟
