mmyolo
OpenMMLab 统一 YOLO 工具箱,支持 RTMDet/YOLOv5-8/YOLOX 等多算法对比评测
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
OpenMMLab 统一 YOLO 工具箱,支持 RTMDet/YOLOv5-8/YOLOX 等多算法对比评测
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。

深夜的物流仓库里,传送带高速运转。几台工业相机正对着流水线上万件包裹拍照——但这些照片不是给人看的,是给机器看的。一套目标检测算法需要从图片中找出所有包裹的位置、大小、类别,再驱动机械臂精准分拣。
然而现实很骨感:你的团队好不容易调通了 YOLOv5 的训练脚本,产品经理又提了新需求——"换成 YOLOv8 试试效果"。等你吭哧吭哧改完代码,发现两套框架的模块完全不兼容,数据格式也不同,又得重来一遍。更别提对比不同算法的公平性——同一张图,YOLOv5 测出来 AP 52.8,YOLOv8 测出来 52.8,但评测代码不同,到底哪个更强说不清楚。
MMYOLO 就是来解决这个问题的。
MMYOLO 来自**上海人工智能实验室(Shanghai AI Lab)**主导的 OpenMMLab 开源生态。这是一个在计算机视觉领域极具影响力的组织,旗下项目包括 MMDetection(目标检测)、MMOCR(文字识别)、MMPose(姿态估计)等,覆盖了 CV 的大部分核心任务。
MMYOLO 诞生于 2022 年,定位是以 YOLO 系列为核心的统一算法工具箱,同时也是 OpenMMLab 工业落地的核心库。它的设计哲学是:用同一套代码框架运行所有主流 YOLO 算法,用同一套评测流程保证公平对比。
目前已收录的算法包括:
| 算法 | 特点 |
|---|---|
| RTMDet | OpenMMLab 自研,兼顾精度与速度,支持旋转目标检测 |
| YOLOv5/v6/v7/v8 | Ultralytics 主流系列,持续跟进官方更新 |
| YOLOX | 旷视科技开源,无锚框设计 |
| PPYOLOE | 百度飞桨自研,高精度目标检测 |
GitHub 数据显示,MMYOLO 获得了 3,467 颗星,Python 语言开发,基于 PyTorch,遵循 GPL-3.0 开源协议。
MMYOLO 的架构建立在 OpenMMLab 统一基础设施之上,核心依赖包括:
从代码目录结构看,MMYOLO 采用了标准的模块化设计:
mmyolo/
├── models/
│ ├── backbones/ # 主干网络(ResNet、CSPDarknet 等)
│ ├── necks/ # 特征金字塔(FPN、PAN 等)
│ ├── dense_heads/ # 检测头(YOLOv5 Head、RTMDet Head 等)
│ ├── losses/ # 损失函数
│ └── data_preprocessors/ # 数据预处理
├── datasets/ # 数据集定义(COCO、VOC、DOTA 等)
├── engine/ # 训练引擎定制
└── utils/ # 工具函数
模块化设计是 MMYOLO 最大的架构优势。不同的 YOLO 算法虽然在检测头上有差异,但在 backbone、neck、数据管道上高度相似。MMYOLO 将这些公共组件抽离出来,用户可以在配置文件中自由组合——比如用 YOLOv7 的检测头搭配 YOLOv5 的 backbone,只需改一行配置,无需改一行代码。
MMYOLO 通过配置文件(YAML)管理所有实验参数。以 RTMDet 为例:
# 模型配置
model = dict(
type='YOLODET',
data_preprocessor=dict(...)
backbone=dict(type='CSPDarknet', ...),
neck=dict(type='YOLOv5PAFPN', ...),
bbox_head=dict(type='RTMDetHead', ...)
)
# 数据配置
data_root = 'data/coco/'
# 训练配置
train_pipeline = [...]
train_dataloader = {...}
一行 python tools/train.py configs/rtmdet/rtmdet_l.py 即可启动训练,支持单机多卡、多机多卡的分布式训练。
MMYOLO 提供了丰富的推理脚本:
# 图片推理
python demo/image_demo.py demo/dog.jpg configs/rtmdet/rtmdet_l.py
# 视频推理
python demo/video_demo.py demo/demo.mp4 configs/rtmdet/rtmdet_l.py
# 特征图可视化
python demo/featmap_vis_demo.py demo/dog.jpg configs/rtmdet/rtmdet_l.py
特别是 featmap_vis_demo.py,可以将模型中间层的特征图热力图叠加到原图上,直观展示模型"看到了什么",对调参和模型分析非常有帮助。
MMYOLO 最重要的贡献之一是统一的评测标准。传统做法下,不同团队用不同评测代码、不同数据增强策略测出来的 AP 根本无法对比。MMYOLO 强制所有算法走同一套 pipeline,保证结果的公平可信。
评测数据集支持 COCO(目标检测)、VOC(多类目标)、CrowdHuman(人群检测)、DOTA(遥感旋转目标检测)。
MMYOLO 面向的是有深度学习经验的开发者,没有 Web 界面,所有操作通过命令行和配置文件完成。
安装方式:
pip install mmyolo
# 或从源码
git clone https://github.com/open-mmlab/mmyolo.git
cd mmyolo && pip install -v -e .
核心门槛:
Docker 部署可以大幅降低环境配置难度。项目提供了基于 PyTorch 官方镜像的 Dockerfile,但仅支持单阶段构建,不包含 docker-compose 一键启动方案。
RTMDet(Real-Time Multiscale Detection)是 OpenMMLab 自主研发的检测算法,也是 MMYOLO 重点推广的模型。相比 Ultralytics 的 YOLOv8,RTMDet 在 COCO 数据集上达到了 52.8% AP(单尺度),推理速度与 YOLOv8 持平,但参数量更小。
RTMDet 的创新点在于:
RTMDet-Rotated 版本还支持旋转目标检测,在遥感图像、航拍图片等场景中非常重要。
MMYOLO 的价值不仅是一个工具箱,更是一个算法评测和对比平台。
当前 YOLO 生态极度碎片化:Ultralytics 的 YOLOv5/YOLOv8、Meta 的 YOLOX、百度的 PPYOLOE、YOLOv6/v7 各自维护独立代码库,开发者想在多个算法之间做选型,需要学习多套接口、做多次环境配置。MMYOLO 把这些算法整合到一个框架下,用户可以"用同一套代码跑所有算法,用同一套评测比精度",大幅降低了研究和选型成本。
从社区活跃度看,虽然 MMYOLO 目前 star 增速放缓(2024 年以来增长趋缓),但 OpenMMLab 生态本身仍在持续活跃,且 RTMDet 作为自研算法持续维护,体现了项目组的长期投入意愿。