开源项目
ultralytics/ultralytics avatar
ultralytics/ultralytics

Ultralytics YOLO:一套代码覆盖检测、分割与姿态估计,但许可证是分水岭

Ultralytics YOLO26、YOLO11、YOLOv8:对象检测、实例分割、语义分割、图像分类、姿态估计、对象跟踪

61,631 个 Star11,763 个 ForkPythonAGPL-3.0

秒懂

它是什么?
本文梳理 ultralytics/ultralytics 仓库的核心用法、模型家族与任务覆盖,指出 AGPL-3.0 许可对商业集成的限制,并给出选型判断。
适合谁用?
适合需要快速在检测、分割、姿态估计、分类、跟踪等多个视觉任务之间切换的工程师,尤其是原型验证和学术研究场景。不适合将模型集成到闭源商业产品中的团队,除非购买 Enterprise License 或改用其他宽松许可的实现。
能商用吗?
可以,但条件严格。AGPL-3.0 是网络 copyleft 许可证:如果别人通过网络使用你修改过的版本(例如作为托管服务),你必须以同一许可证向他们提供源代码。
还在维护吗?
在维护。仓库在最近一天内有新的提交。
用什么语言写的?
主要是 Python(依据 GitHub 的语言统计)。

以上回答依据项目的 GitHub 数据(最近同步于 2026年9月15日)和我们的分析,不构成法律意见。

开源项目深度解析

一个仓库,六种视觉任务

Ultralytics 把 YOLO 系列模型打包成一个 Python 包,覆盖目标检测、实例分割、语义分割、图像分类、姿态估计和对象跟踪。对多数工程师来说,这意味着不用为每种任务维护独立的代码库。README 里明确列出了这些任务,并给出了对应的文档链接。仓库的默认分支持续更新,最近一次提交在 2026 年 8 月,版本号已到 v8.4.132。这个节奏说明项目处于活跃维护状态,但活跃不等于稳定,后面会谈到许可证的问题。

从 YOLOv3 到 YOLO26,模型家族的跨度

仓库支持的模型从 YOLOv3 一直延伸到最新的 YOLO26。README 中的模型表格展示了 YOLO26 在 COCO 上预训练的检测、分割和姿态估计模型,语义分割模型在 Cityscapes 上预训练,深度估计模型在混合数据集上训练并在 NYU Depth V2 上评估,分类模型在 ImageNet 上预训练。这种跨度意味着你可以在同一个 API 下调用不同年代的模型,比如用 yolo26n.pt 做预测,也可以加载 YOLOv8 的权重。模型的选择范围广,但每个模型的精度和速度差异需要你自己根据文档中的指标去权衡,README 本身没有给出具体数字。

安装与第一个预测命令

安装方式很直接:在 Python>=3.8 且 PyTorch>=1.8 的环境中执行 pip install ultralytics。README 给出了一个预测示例:yolo predict model=yolo26n.pt source='https://ultralytics.com/images/bus.jpg'。这条命令会下载预训练权重并对图片执行检测。CLI 支持附加参数如 imgsz=640。Python 接口同样简洁,加载模型用 YOLO("yolo26n.pt"),训练用 model.train(data="coco8.yaml", epochs=100, imgsz=640, device="cpu"),验证用 model.val(),预测用 model("path/to/image.jpg")。整个过程没有复杂的配置步骤,适合快速上手。

训练流程:从数据集配置到设备选择

训练需要的数据集配置是一个 YAML 文件,例如 coco8.yaml,它定义了训练和验证数据的路径。README 中的训练示例明确传入了 data、epochs、imgsz 和 device 参数,device 可以是 'cpu'、单个 GPU 编号或 GPU 列表。值得注意的是,最近的版本更新中加入了 fraction 参数,v8.4.130 允许用图像数量限制数据集,v8.4.132 将 fraction 扩展到测试集。这个功能对快速实验很有用,你可以用部分数据先跑通流程,再全量训练。但 README 没有说明训练时的显存占用或推荐配置,实际资源需求需要查文档。

许可证:AGPL-3.0 是最大的限制

仓库采用 AGPL-3.0 许可证。这意味着如果你修改了代码或将其作为服务提供,可能需要开源你的衍生作品。README 明确提示商业使用需要申请 Enterprise License,并给出了链接。对于内部工具或研究项目,AGPL-3.0 通常可以接受;但如果你计划将模型集成到闭源产品中,这个许可证就是硬性障碍。这不是代码质量问题,而是法律约束。许多团队因此转向其他实现,比如基于 MIT 或 Apache 许可证的 YOLO 变体。在评估这个仓库时,许可证应该是第一道筛选条件,而不是最后才考虑的因素。

替代方案:不同许可证下的类似能力

如果你需要 YOLO 的检测能力但无法接受 AGPL-3.0,可以考虑 OpenMMLab 的 MMDetection,它采用 Apache 2.0 许可证,提供多种检测模型,包括 YOLO 系列的部分实现。区别在于 MMDetection 的 API 更底层,配置系统更复杂,学习曲线更陡,但许可证更友好。另一个方向是使用 YOLOv5 的官方仓库,它曾采用 GPL-3.0,后来 Ultralytics 将其调整为 AGPL-3.0,所以 YOLOv5 的旧版本可能仍是 GPL,但同样有传染性。选择替代方案时,你需要权衡许可证的宽松程度与 API 的易用性。Ultralytics 的卖点是开箱即用的简单性,而替代方案往往要求更多配置工作。

维护成本与升级路径

项目更新频繁,v8.4.131 添加了 Apple Core AI 导出,v8.4.132 扩展了 fraction 到测试集。这种节奏意味着新功能持续加入,但也带来升级成本。每次版本更新可能改变默认行为或引入新参数,依赖 PyTorch 的版本要求也可能变化。如果你在 production 环境中使用,建议锁定版本号,而不是跟随 latest。README 没有提供迁移指南,但文档站应该有详细的 release notes。另一个维护点是模型权重文件,例如 yolo26n.pt 是从远程下载的,如果模型文件更新,你需要重新下载。总体而言,维护成本中等,主要取决于你对新版本的跟进策略。

适合谁用,不适合谁用

这个仓库最适合需要快速验证视觉任务可行性的工程师,尤其是那些需要在检测、分割、姿态估计之间切换的项目。CLI 和 Python API 的简洁性大大降低了入门门槛。不适合对许可证敏感的商业团队,也不适合需要深度定制模型结构的用户,因为 YOLO 系列的网络架构相对固定,修改内部结构需要深入理解源码。另外,如果你的部署环境是嵌入式设备,可能需要关注模型导出功能(如 Apple Core AI 导出),但 README 没有提供性能数据,你需要自行测试。总之,先确认许可证,再评估任务匹配度,最后跑通一个最小示例,这是最稳妥的路径。

编辑结论

适合需要快速在检测、分割、姿态估计、分类、跟踪等多个视觉任务之间切换的工程师,尤其是原型验证和学术研究场景。不适合将模型集成到闭源商业产品中的团队,除非购买 Enterprise License 或改用其他宽松许可的实现。采用前应先确认三点:你的 Python 环境是否满足 PyTorch>=1.8 的要求;你的数据集格式是否与 YOLO 的 YAML 配置兼容;你的部署目标是否允许 AGPL-3.0 的传染性条款。若这些条件不满足,建议直接评估其他框架。

官方来源

  1. Official documentation
  2. Official README
  3. Project repository
  4. Release notes
社区笔记

社区笔记