如何捐款 🚀
欢迎您我们很高兴您考虑为 Ultralytics开源项目。您的参与有助于提高我们资源库的质量,并使整个计算机视觉社区受益。
完整指南
如需了解全面的贡献指南,请参阅我们主要文档中的《 Ultralytics 官方贡献指南》。
观看:为Ultralytics做贡献
快速入门指南 🎯
准备好捐款了吗?请按照以下步骤操作
- 阅读我们的行为准则--尊重、友善和专业精神
- 分叉您要贡献的版本库
- 创建具有描述性名称的功能分支
- 按照编码标准进行修改
- 为新功能编写测试
- 提交附有清晰描述的拉取请求
- 在您的 PR 中发表评论,签署 CLA
- 回应审稿人的反馈意见
有关详细的 PR 流程,请参阅开发工作流程。
贡献准则 📋
行为准则 🤝
所有撰稿人都必须遵守我们基于《撰稿人公约》的《行为准则》。这将确保为每个人营造一个热情、包容的环境。尊重、友善和专业精神是我们社区的核心。
贡献者许可协议 (CLA) 📝
在我们合并您的 PR 之前,您必须签署我们的CLA。该法律协议可确保您的贡献正确遵循 AGPL-3.0许可,从而保护您和项目。
提交 PR 后,CLA 机器人将为您提供指导。要签名,请发表评论:
CLA 包括
- 为您的贡献提供版权和专利许可
- Ultralytics 使用和传播您作品的权利
- 关于您拥有贡献权的声明
- 免责声明
请查阅完整的CLA 文件,了解完整的条款。
最佳做法 ✨
贡献代码时:
- 避免重复:尽可能重复使用现有代码
- 进行较小的修改:有重点地修改,而不是大规模地修改
- 简化:寻找简化机会
- 考虑兼容性:避免破坏现有代码
- 使用一致的格式:遵循Ruff 格式
- 添加测试:为新功能加入测试
- 更新文档:保持文件最新
编码标准 📐
- 文档字符串:使用Google文档字符串,并在括号中注明类型
- 行宽:最多 120 个字符
- 进口:使用
pathlib而不是os - 测试:所有 PR 必须通过CI 测试
- 类型提示:在有益的地方使用
有关完整的编码标准,请参阅开发工作流程。
捐款方式 🌟
代码贡献 💻
文件 📚
测试 🧪
社区支持 💬
报告错误 🐞
通过GitHub Issues 报告错误,帮助我们改进:
错误报告要求
- 检查现有问题,避免重复
- 创建最小可重现示例(MRE)-- 可重现问题的独立小代码
- 描述环境:操作系统、Python 版本、库版本、硬件CPUGPUCPU
- 通过错误信息和跟踪反馈解释预期行为与实际行为的差异
怎样才能做好 MRE
最低限度的可复制示例应:
- 隔离问题删除不必要的代码
- 使用公共模型和数据集例如
yolov8n.pt和coco8.yaml - 包含依赖项:列表
yolo checks或pip list - 提供清晰的描述:预期行为与实际行为
- 格式正确:使用带三重回车键的代码块
- 可测试:他人无需修改即可运行
详细说明请参阅完整的MRE 指南。
审核拉取请求 👀
审查 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 下公开完整的源代码:
-
选择起点:
-
为您的项目颁发许可证:
- 添加
LICENSE文件中包含完整的 AGPL-3.0 文本 - 在源文件顶部添加许可声明
- 添加
-
发布源代码,包括
-
清楚地记录:
- 中的AGPL-3.0 国家许可证
README/ - 包括设置说明
- 属性Ultralytics YOLO 适当
- 中的AGPL-3.0 国家许可证
有关结构示例,请参见Ultralytics 模板库。
我们的开发团队 👥
请随时向团队成员寻求指导:
| 名称 | GitHub 简介 |
|---|---|
| 阿布里什-萨布里 | asabri97 |
| 阿比拉米-维纳 | 阿比拉米-维纳 |
| 亚历克西斯-舒茨格 | picsalex |
| 布尔汉-卡杜米 | 布尔汗-Q |
| 法提赫-阿克扬 | fcakyon |
| 弗朗切斯科-马蒂奥利 | 雄心勃勃的章鱼 |
| 乔瓦尼-达尔-齐利奥 | ultralytics |
| 格伦-约切尔 | 翔宇 |
| Hannah Streif | HannahStreif |
| Jake Qian | fengqianjake |
| Jing Qiu | 笑-q |
| 乔伊-特琼 | 无码乔伊 |
| 乔丹-库珀 | JCoops1 |
| 卡西姆-阿西克巴斯 | kayselmecnun |
| 基里尔-瓦尔比茨基 | Kverbitski |
| 基里尔-奥布利考 | munknex |
| 克里斯蒂安-萨默 | sokrisba |
| 拉克尚塔-迪萨纳亚克 | lakshanthad |
| 马里乌斯-凯泽尔 | Skillnoob |
| 穆罕默德-亚辛 | Y-T-G |
| 穆罕默德-里兹万-穆纳瓦 | 里兹万-穆纳瓦 |
| 米科拉-博伊科 | mykolaxboiko |
| 尼古拉-尼尔森 | niconielsen32 |
| 努沃拉-拉迪 | NLadi |
| 奥努拉尔普-塞泽尔 | onuralpszr |
| 巴勃罗-卡恩鲍姆 | pablokarnbaum |
| Paula Derrenger | pderrenger |
| Prateek Bhatnagar | ultralytics |
| Rick Hou | Bovey0809 |
| Ryan Leonel Somali | ryanleonels |
| 塞尔吉乌-瓦克斯曼 | sergiuwaxmann |
| Thomas Chuang | chuang091 |
| 威廉-比文 | 威廉-贝文 |
| 约根德拉-辛格 | yogendrasinghx |
| Tigran Hakobyan | tthakz |
| 津妮亚-普尔达 | zinnialp |
| 柳帅(路易斯 | 帅流 |
| 阿比-安德森 | UltralyticsAbi |
| 金旭 | laodouya |
| Zuzana Kontrikova | zkontri |
| 迈尔斯-迪恩斯 | ultralytics-丹斯-超数据分析 |
| 刘梦雨(梅森 | lmycross |
获取支持 💬
有问题或需要帮助?
谢谢!🎉
感谢您对Ultralytics 开放源码项目的贡献。您的参与对于塑造我们软件的未来和建立一个充满活力的创新与合作社区至关重要。
我们很高兴看到您的想法变成现实,并感谢您致力于推动物体检测技术的发展。让我们一起继续成长和创新!🚀🌟
资源 📚
- 官方供稿指南- 完整的供稿指南
- 开发工作流程- 公关流程和代码标准
- CI/测试- 测试和质量检查
- 文档工作流程- 撰写文档
- 行为准则- 社区标准
- CLA 文档- 贡献者许可协议
- MRE 指南- 错误报告最佳实践
- Ultralytics 博客--教程和案例研究
- 社区活动- 网络研讨会和会议
- 客户案例- 现实世界中的应用
