1. 初识MMYOLO:目标检测的瑞士军刀
第一次接触MMYOLO时,我正为一个工业质检项目焦头烂额。当时需要检测电路板上的微型元件缺陷,传统OpenCV方法在复杂场景下完全失效。这个基于PyTorch的开源工具包就像及时雨,不仅支持YOLO全系列算法,还提供了工业级的数据增强和训练优化方案。相比原生YOLO实现,MMYOLO最大的优势在于其模块化设计——就像搭积木一样,可以自由组合不同的主干网络、特征金字塔和检测头。
安装过程出乎意料的简单。记得第一次配置环境时,只用了几条命令就搞定了所有依赖:
bash复制conda create -n mmyolo python=3.8 -y
conda activate mmyolo
pip install openmim
mim install "mmengine>=0.3.1"
mim install "mmcv>=2.0.0rc1"
git clone https://github.com/open-mmlab/mmyolo.git
cd mmyolo
mim install -v -e .
特别提醒新手注意两点:一是CUDA版本要匹配PyTorch,二是MMCV的版本必须严格对应。有次我偷懒用了最新版MMCV,结果训练时各种报错,折腾半天才发现是版本冲突。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 数据准备:从原始图片到标准数据集
处理自定义数据集时,最常见的坑就是标注格式。某次我直接用Labelme标注了500张图片,导入时才发现MMYOLO默认支持COCO格式。后来找到个高效的转换方法:先用labelme2coco.py脚本转换,再用MMYOLO的dataset工具校验:
python复制from mmyolo.datasets import YOLOv5CocoDataset
dataset = YOLOv5CocoDataset(
data_root='data/cat/',
ann_file='annotations/trainval.json',
data_prefix=dict(img='images/'))
print(dataset.metainfo) # 检查类别信息是否正确加载
对于小样本数据集(比如只有几百张图片),强烈建议使用RepeatDataset
