Ultralytics YOLO27: 加入候补名单。
获取 YOLO 许可
Ultralytics YOLO

开始为 Ultralytics 开源项目做贡献的建议

了解如何为 Ultralytics 开源项目做贡献,并获取文档编写、PR 审查和必要工具使用方面的实用建议。

Abirami VinaAbirami Vina6 分钟阅读
为 Ultralytics 开源项目做贡献的理由

开源软件的基础是协作、学习和分享。开源项目是人们齐心协力、打造超越个人能力之作的绝佳方式。在 Ultralytics,我们十分重视开源原则,并始终鼓励你为我们的开源项目做贡献。

如果你热衷于贡献,无论是编写文档、审查代码还是处理问题,但不确定从哪里开始或遇到了一些困难,我们都愿意帮助你入门。本文将介绍一些技巧,帮助你开始为 Ultralytics 开源项目做贡献。

Ultralytics 社区贡献的重要性#

在了解如何贡献之前,我们先来回答为什么贡献如此重要。我们坚信 Ultralytics 社区的贡献至关重要。参与我们的开源项目,不只是帮助我们构建更好的软件。贡献者在确保我们的技术保持开放、协作和持续演进方面发挥着关键作用。你的贡献让我们的项目持续发展、易于使用,并惠及世界各地的用户和开发者!

除了构建软件,为 Ultralytics 项目做贡献也是你提升自我的绝佳机会。你可以在与经验丰富的开发者合作的过程中,提升编程、解决问题和团队协作能力,他们还能为你提供指导并分享最佳实践。你的努力可以切实影响全球数千人使用的工具。参与我们的社区也能帮助你拓展职业人脉、获得新的机会,并丰富个人作品集,让你在求职时脱颖而出。

参与开源项目的理由

图 1. 参与贡献的理由。图片由作者提供。

如何开始为 Ultralytics 开源项目做贡献#

一个很好的起点是查看 Ultralytics 官方贡献指南。指南中包含大量最佳实践和技巧,能帮助你充分发挥贡献的价值。首先,你需要了解项目中已有的内容,熟悉贡献指南,签署贡献者许可协议(CLA),并深入了解代码。

无论你是想参与开发,还是只想了解最新代码,下一步都是克隆 Ultralytics 代码库。完成后,你可以进入项目目录,并按下面的代码片段所示,以可编辑模式安装软件包。

git clone https://github.com/ultralytics/ultralytics.git
cd ultralytics
pip install -e .

如果你需要帮助,我们的快速入门指南提供了顺利入门所需的一切。

可以参与贡献的不同领域#

设置好环境并熟悉项目后,你可以探索不同的领域,寻找能够发挥实际影响的切入点。Ultralytics 提供了多种参与方式,你可以根据自己的技能和兴趣选择如何贡献。

以下是一些可选方式:

  • 文档:参与文档编写是深入了解项目、磨练写作能力的好方法。你可以改进现有文档、补充遗漏的细节,或编写新指南,让其他人更容易参与贡献。
  • 修复 Bug:如果你有一些编程经验,可以考虑修复 Bug。问题可能小到细微调整,也可能复杂得多,让你有机会为项目带来切实影响。
  • 功能增强:对于准备深入参与的人来说,开发功能增强既有挑战,也能带来成就感。这可能包括添加新功能、改进现有功能,或参与制定项目路线图。
  • 审查拉取请求:审查拉取请求是另一种很有价值的贡献方式,尤其是当你熟悉项目规范和最佳实践时。通过提供反馈并提出改进建议,你可以帮助维护代码库的质量和完整性。
  • 参与社区讨论:如果你喜欢协作和分享想法,参与社区讨论是很好的贡献方式。你可以参与正在进行的讨论、提出新想法,或分享见解和解决方案来帮助他人。

这些领域各有独特的贡献方式,你可以选择最符合自己优势和兴趣的方向。请记住,无论贡献多么微小,每一份贡献都在帮助 Ultralytics 成长和发展中发挥着重要作用。

在不断壮大的社区中,每一份贡献都弥足珍贵

图 2. 在不断壮大的社区中,每一份贡献都弥足珍贵。图片来源:Envato Elements。

为 Ultralytics 开源文档做贡献#

为 Ultralytics 文档做贡献时,请务必先查看现有文档,并留意指出需要改进之处的问题或讨论。这样有助于确保你的贡献聚焦于最需要改进的地方。

撰写或编辑文档时,请记住遵循项目指南对于保持一致性至关重要。下面是一些格式方面的建议:

  • 请始终使用 Markdown 格式。
  • 每份文档都应以清晰的简介开篇,并使用简洁易懂的语言。
  • 列表请使用项目符号,链接文字请具有描述性,图片大小请控制在 1 MB 以下,以便页面快速加载。
  • 如果你对格式有疑问,可以查看以往文档的格式,轻松核对自己的排版。

Markdown 格式与最终呈现的文档

图 3. Markdown 格式示例(左)和最终呈现的文档(右)。图片由作者提供。

完成草稿后,务必在本地构建文档并预览。这样你可以在提交前发现问题。首先,克隆代码库并进入项目目录:

git clone https://github.com/ultralytics/ultralytics.git
cd ultralytics

接下来,安装所需的依赖项:

pip install -e ".[dev]"

最后,构建文档并在本地运行,以检查你的更改:

python docs/build_docs.py
python -m http.server --directory site

在浏览器中访问 http://127.0.0.1:8000/,即可查看本地构建的文档。

检查文档是否清晰、准确且一致后,你可以提交拉取请求,并清楚说明所创建文档的内容。请根据文档的归属和最合适的位置,将其放入相应部分(例如指南、解决方案、集成等)。此外,请查看 index.md 文件中相关的章节,以及整体的 mkdocs.yml 文件,并按需更新。注重细节有助于顺利完成审核,并确保你的贡献与项目良好集成。

为开源代码做贡献时需要注意的事项#

为 Ultralytics 项目贡献代码时,遵循有助于确保代码整洁、易于维护并方便集成的最佳实践非常重要。以下是一些需要牢记的要点:

  • 避免代码重复:尽可能复用现有代码,并尽量减少不必要的参数。
  • 进行小而集中的更改:与其进行大规模修改,不如专注于小范围、有针对性的更改。
  • 简化或删除代码:寻找简化代码或删除不必要部分的机会。
  • 编写有效的 文档字符串:清楚说明代码的作用,并链接到相关资源。
  • 避免不必要的依赖项:只有在绝对必要时才添加依赖项。

源代码文档编写最佳实践

图 4. 源代码文档编写最佳实践。

考虑代码库的长期可维护性也至关重要。在进行任何更改之前,先问问自己:这些修改是否可能破坏他人使用 Ultralytics 编写的现有代码?如果会,请考虑如何解决这个问题,并确保更改尽可能兼容。

完成待贡献的代码后,你需要对其进行测试。你可以使用 pytest 等框架,在提交前测试更改。保持代码格式一致也是贡献中非常重要的一环。Ruff 等工具可以帮助你维持风格一致,并发现代码中常见的错误或不一致之处。

审查拉取请求#

审查拉取请求(PR)是很好的贡献方式!当有人请求将其更改合并到主项目中时,就会发起 PR。这有助于 Ultralytics 项目顺利运行。审查 PR 时,请确保你理解这些更改的原因。作者应清楚说明更新的目的和好处,并在 PR 中提供充分测试的证据。

说明什么是拉取请求的示意图

图 5. 什么是拉取请求?

下面来看看几个需要重点关注的要点。

  • 检查单元测试:检查 PR 是否包含针对新功能或更改的测试,以确认代码能按预期运行且不会引入问题。
  • 审查文档更新:确认文档已更新,以反映更改或新功能,包括示例、API 参考和其他相关细节。
  • 评估对性能的影响:考虑这些更改会如何影响性能。如有需要,可要求提供性能基准测试或进行额外测试。
  • 验证 CI 测试:确保所有持续集成(CI)测试均已通过,包括代码格式检查和单元测试结果检查。
  • 协作修复问题:如果测试失败,请与作者合作解决问题,然后再批准 PR。

作为审查者,请确保反馈具体明确,清楚指出任何问题或顾虑。提出改进建议,并通过提问帮助作者思考潜在问题。鼓励作者遵循编码、测试和文档编写方面的最佳实践,也不妨为作者推荐有帮助的资源。最后但同样重要的是,始终认可作者为 PR 付出的努力。积极的反馈有助于开源社区保持友好、协作的氛围。

贡献的核心是社区#

为 Ultralytics 这样的开源项目做贡献,能让你感受到社区的鼓舞。无论是编写代码、审查 PR、更新文档还是参与讨论,每一份努力都能推动项目成长和演进。你可以在 GitHub、Discord、Reddit或其他论坛上回答问题或参与交流,这些都是做贡献并与他人建立联系的有效方式。请记住,无论贡献多么微小,都会产生重要影响,并帮助营造协作互助的环境,让每个参与者都受益!

在 Ultralytics,我们热衷于推动开源社区创新。访问我们的 GitHub 代码库,了解最新进展。加入充满活力的社区,看看我们如何在农业和制造业等行业发挥影响力。

作者

Abirami Vina
Abirami Vina

内容创作者 · Ultralytics

Abirami Vina 职业生涯始于计算机视觉工程师,由此在视觉 AI 和机器学习领域打下了坚实基础。她是 Ultralytics 的内容创作者,也是 Scribe of AI 的创始人兼首席撰稿人,为专注 AI 的公司撰写高质量技术内容。她热衷于让 AI 更易理解、更具吸引力,通过自己的作品连接前沿技术与现实影响。

评论

提出问题、分享你的结果,或帮助其他人。

探索解决方案

体育领域的计算机视觉

体育领域的计算机视觉

了解 Ultralytics YOLO 如何通过球员和球追踪、表现分析、教练洞察及运动员康复,推动体育视觉技术的发展。
了解详情
航空影像计算机视觉

航空影像计算机视觉

使用 Ultralytics YOLO 将无人机和航空影像转化为农业、水产养殖、保护工作和地理空间分析的实时洞察。
了解详情
航空航天中的计算机视觉

航空航天中的计算机视觉

使用 Ultralytics YOLO 将计算机视觉应用于航空航天领域,包括飞机检查、跑道 FOD 检测、机场地面作业和复合材料缺陷检测。
了解详情
安防领域的计算机视觉

安防领域的计算机视觉

使用 Ultralytics YOLO 模型守护每个场所。视觉 AI 可用于周界监控、威胁检测、车牌识别和工作场所安全。
了解详情
机器人领域的计算机视觉

机器人领域的计算机视觉

使用 Ultralytics YOLO 模型提升智能机器的能力。机器人领域的视觉 AI 可用于自主导航、感知、目标跟踪和实时控制。
了解详情
物流中的计算机视觉

物流中的计算机视觉

借助 Ultralytics YOLO 模型优化物流流程。视觉 AI 可用于包裹检查、分拣、车辆跟踪和仓库安全实时监控。
了解详情
零售中的计算机视觉

零售中的计算机视觉

借助 Ultralytics YOLO 模型重新构想零售。视觉 AI 可用于库存跟踪、货架监控、排队管理和更深入的客户洞察。
了解详情
医疗领域的计算机视觉

医疗领域的计算机视觉

借助 Ultralytics YOLO 模型构建医疗解决方案。医疗领域的视觉 AI 可加快医学影像处理、优化诊断并监测患者。
了解详情
制造业中的计算机视觉

制造业中的计算机视觉

利用 Ultralytics YOLO 模型优化制造流程。视觉 AI 可用于质量控制、缺陷检测、个人防护装备合规检查和装配线自动化。
了解详情
汽车领域的计算机视觉

汽车领域的计算机视觉

利用 Ultralytics YOLO 模型在汽车领域应用计算机视觉。视觉 AI 可提升道路安全、驾驶辅助和车辆自动化水平,让道路更智能。
了解详情
农业中的计算机视觉

农业中的计算机视觉

借助 Ultralytics YOLO 模型,将视觉 AI 引入智慧农业。为作物监测、牲畜追踪和精准农业提供支持,从而提高产量并实现更智能的生产。
了解详情

让我们携手构建 AI 的未来!

开启你的旅程,迎接机器学习的未来