尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
MMDetection入门指南:从环境搭建到模型训练、评估与推理
MMDetection入门指南从环境搭建到模型训练、评估与推理1. MMDetection概述1.1 什么是MMDetection1.2 MMDetection的特点2. MMDetection与其他目标检测框架对比3. 环境要求4. 安装步骤1创建虚拟环境2安装PyTorch3安装OpenMIM4安装MMEngine5安装MMCV6安装MMDetection5. MMDetection的目录结构6. 数据集准备修改配置文件7. 模型训练8. 模型评估9. 模型推理单张图片可视化结果批量推理10. 更换模型11. 使用预训练模型12. 导出模型13. 完整训练流程总结14. 总结1. MMDetection概述1.1 什么是MMDetectionMMDetection是OpenMMLab开源视觉生态中最核心的目标检测框架之一也是目前学术界和工业界应用最广泛的目标检测工具箱之一Github官网地址为https://github.com/open-mmlab/mmdetection。它基于PyTorch开发采用高度模块化Modular的设计思想将目标检测算法划分为Backbone特征提取Neck特征融合Head检测头Loss损失函数Dataset数据集Data Pipeline数据预处理Optimizer优化器Evaluator评估器等多个独立模块使研究人员能够方便地进行模型组合和算法改进。MMDetection不仅提供了大量经典目标检测算法的官方实现同时还维护着完善的Model Zoo模型库其中包含数百个预训练模型、配置文件以及对应的实验结果因此已经成为目标检测领域最重要的研究平台之一。目前支持的模型包括Faster R-CNNMask R-CNNCascade R-CNNRetinaNetFCOSATSSGFLRTMDetYOLOXDETRDINOGrounding DINODeformable DETR以及许多最新目标检测算法。1.2 MMDetection的特点相比于传统自己搭建目标检测工程MMDetection具有以下优势高度模块化设计配置文件驱动模型构建丰富的数据增强方法支持多GPU训练支持混合精度训练AMP支持自动日志记录支持TensorBoard、WandB等可视化工具提供大量预训练模型社区活跃文档完善例如只需要修改配置文件即可更换模型modeldict(backbonedict(typeResNet,depth50),neckdict(typeFPN),bbox_headdict(typeRetinaHead))无需修改训练代码。2. MMDetection与其他目标检测框架对比目前常见的目标检测框架主要包括框架开发团队特点适用场景MMDetectionOpenMMLab功能最全面科研首选学术研究Ultralytics YOLOUltralytics简单易用部署方便工程项目Detectron2MetaFacebook 官方框架科研PaddleDetection百度Paddle生态国产部署TensorFlow Object Detection APIGoogleTensorFlow官方TensorFlow生态MMDetection与Ultralytics YOLO对比对比项MMDetectionUltralytics上手难度★★★★☆★☆☆☆☆配置方式Config文件YAML配置配置灵活性★★★★★★★★☆☆支持模型数量数百种模型主要是YOLO系列工程部署★★★☆☆★★★★★科研扩展★★★★★★★★☆☆社区活跃度★★★★★★★★★★一般来说科研工作推荐MMDetection工程部署推荐Ultralytics。3. 环境要求根据官网介绍要求安装环境如下软件推荐版本Python3.7PyTorch1.8CUDA9.2MMCV与 PyTorch 对应MMEngine最新稳定版MMDetection最新版4. 安装步骤1创建虚拟环境conda create-nmmdetpython3.8conda activate mmdet2安装PyTorchpytorch的安装可参照官方指导https://pytorch.org/get-started/locally/3安装OpenMIMOpenMIM是一个安装工具使用它来安装MMCV和MMEngine。pipinstallopenmim4安装MMEnginemiminstallmmengine5安装MMCVmiminstallmmcv2.0.06安装MMDetectionMMDetection就是工具包的主体有两种安装方式这里推荐选择源代码安装方式。gitclone https://github.com/open-mmlab/mmdetection.gitcdmmdetection pipinstall-v-e.安装完成后测试首先下载配置文件和模型权重文件mim download mmdet--config rtmdet_tiny_8xb32-300e_coco--dest.运行测试推理代码python demo/image_demo.py demo/demo.jpg rtmdet_tiny_8xb32-300e_coco.py--weights rtmdet_tiny_8xb32-300e_coco_20220902_112414-78e30dcc.pth--device cpu说明安装成功的话会在./outputs/vis文件夹看到输出的预测图片证明安装成功。5. MMDetection的目录结构mmdetection/ ├── configs/ ├── demo/ ├── docs/ ├── mmdet/ │ ├── datasets/ │ ├── models/ │ ├── engine/ │ ├── evaluation/ │ └── visualization/ ├── tools/ ├── checkpoints/ └── work_dirs/其中configs模型配置mmdet源码tools训练工具work_dirs训练结果6. 数据集准备MMDetection支持COCOVOCLVISCityscapesOpenImages自定义数据集推荐使用COCO格式。目录如下dataset/ ├── train/ │ ├── 000001.jpg │ ├── 000002.jpg │ └── ... │ ├── val/ │ ├── annotations/ │ ├── instances_train.json │ └── instances_val.json修改配置文件例如data_rootdataset/metainfo{classes:(cat,dog),}train_dataloaderdict(batch_size4,datasetdict(data_rootdata_root,ann_fileannotations/instances_train.json,data_prefixdict(imgtrain/)))val_dataloaderdict(datasetdict(ann_fileannotations/instances_val.json,data_prefixdict(imgval/)))7. 模型训练选择一个配置configs/rtmdet/ configs/faster_rcnn/ configs/yolox/ configs/dino/例如rtmdet_tiny_8xb32-300e_coco.py开始训练python tools/train.py configs/rtmdet/rtmdet_tiny_8xb32-300e_coco.py使用多GPUtorchrun--nproc_per_node4\tools/train.py\configs/rtmdet/rtmdet_tiny_8xb32-300e_coco.py训练过程中将在work_dirs/生成epoch_1.pth epoch_2.pth ... best_coco_bbox_mAP_epoch_xx.pth last_checkpoint8. 模型评估训练结束后python tools/test.py\configs/rtmdet/rtmdet_tiny_8xb32-300e_coco.py\work_dirs/epoch_300.pth输出类似bbox_mAP: 0.512 bbox_mAP50: 0.742 bbox_mAP75: 0.561其中mAPAP50AP75APSAPMAPL都会自动计算。9. 模型推理单张图片frommmdet.apisimportinit_detectorfrommmdet.apisimportinference_detector configconfigs/rtmdet/rtmdet_tiny.pycheckpointbest.pthmodelinit_detector(config,checkpoint)resultinference_detector(model,test.jpg)可视化结果frommmdet.apisimportDetInferencer inferencerDetInferencer(modelconfigs/rtmdet/rtmdet_tiny.py,weightsbest.pth)inferencer(demo.jpg,showTrue)批量推理frompathlibimportPathfrommmdet.apisimportDetInferencer inferencerDetInferencer(modelconfigs/rtmdet/rtmdet_tiny.py,weightsbest.pth)image_dirPath(images)forimage_pathinimage_dir.glob(*.jpg):inferencer(str(image_path))10. 更换模型只需修改配置文件即可例如configs/faster_rcnn/ ↓ configs/dino/ ↓ configs/rtmdet/ ↓ configs/yolox/训练命令保持一致python tools/train.py 配置文件.py无需修改源码。11. 使用预训练模型下载官方权重checkpoints/ ├── faster_rcnn.pth ├── yolox.pth ├── dino.pth └── rtmdet.pth然后修改配置load_fromcheckpoints/rtmdet_tiny.pth即可进行迁移学习。12. 导出模型训练完成后可以导出ONNXTorchScriptTensorRT例如导出 ONNXpython tools/deployment/pytorch2onnx.py\configs/rtmdet/rtmdet_tiny.py\best.pth\demo.jpg之后即可部署到TensorRTONNX RuntimeOpenVINO等推理框架。13. 完整训练流程总结整个 MMDetection 的使用流程如下准备数据集 │ ▼ 整理为 COCO 格式 │ ▼ 修改配置文件 │ ▼ 下载预训练权重 │ ▼ 开始训练 │ ▼ 保存模型 │ ▼ 模型评估 │ ▼ 推理测试 │ ▼ 导出 ONNX / TensorRT │ ▼ 部署应用14. 总结MMDetection是当前目标检测领域最成熟、最完善的开源框架之一其最大的优势在于模块化设计和丰富的模型生态。通过统一的配置系统用户能够方便地完成数据集配置、模型训练、评估、推理以及模型部署而无需重复编写底层代码。对于科研人员而言MMDetection提供了大量经过验证的算法实现和预训练模型可显著降低实验复现和算法开发的难度对于工程开发者而言其标准化的训练流程和灵活的模型配置也能够提高开发效率。对于初学者建议按照以下顺序逐步掌握MMDetection学习环境配置与框架安装熟悉项目目录结构及配置文件组织方式掌握COCO数据集格式及自定义数据集配置学会使用官方配置文件完成模型训练与评估理解推理流程与结果可视化尝试修改网络结构或损失函数开展算法改进研究。通过系统学习MMDetection不仅可以快速复现主流目标检测算法还能够为后续开展目标检测算法创新和科研工作奠定坚实基础。
RELATED

相关推荐

告别开题反复返工:paperxie 分阶智能开题生成,贴合高校标准一键产出合规文稿

告别开题反复返工:paperxie 分阶智能开题生成,贴合高校标准一键产出合规文稿

paperxie-免费查重复率aigc检测/开题报告/毕业论文/智能排版/文献综述/科研绘图开题报告 - PaperXie智能写作PaperXieAi论文智能生成软件,10分钟生成万字毕业论文、期刊论文、文献综述、PPT,Aigc查重、降重报告、文献资料。只需一个标题,从开…

📅 2026/8/21 3:38:07
[Android] Readingo 1.48.2-纯净小说阅读+支持听书

[Android] Readingo 1.48.2-纯净小说阅读+支持听书

[Android] Readingo 1.48.2-纯净小说阅读支持听书 链接:https://pan.xunlei.com/s/VOwl0gVCTZX27I_2RZrDzojoA1?pwd68sc# 一款功能强大的阅读工具,支持多种文本格式,支持直接从zip中导入书籍,24种内置阅读主题,清…

📅 2026/8/21 3:38:07
一文读懂服务器:撑起整个互联网的底层核心

一文读懂服务器:撑起整个互联网的底层核心

日常刷短视频、浏览网页、微信通讯、云端存储照片,是我们每个人的数字化常态。不知道大家是否思考过:我们手机本地没有保存的海量数据,究竟存储在何处?设备关机重启后,为什么依然能接收消息、查看历史数据?…

📅 2026/9/8 12:57:30
MORE NEWS

更多资讯

📰

Agno Environments 支持工单分诊(Support Triage):三类路由规则、难度校准与测试日志详解

Agno Environments 支持工单分诊(Support Triage):三类路由规则、难度校准与测试日志详解 【免费下载链接】agno Build, run, and manage agent platforms. 项目地址: https://gitcode.com/GitHub_Trending/ag/agno 本文以 TEST_LOG.m…

📰

不会写代码怎么做电商数据分析?2026年5款零代码工具横评

先说结论:不会写代码,完全可以把电商数据分析做起来。市面上真正零代码、开箱即用的电商数据分析工具,按功能定位可以归为五类——平台官方数据工具、通用表格工具、在线协作表格、零代码 SaaS BI 工具、跨境电商垂直 BI 工具。它们各自覆盖电…

📰

前端布局回归自动化:从F12手动量宽度到脚本巡检的完整实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

深入解析 Sentry 异步删除子系统:从 ScheduledDeletion 调度到级联删除任务

深入解析 Sentry 异步删除子系统:从 ScheduledDeletion 调度到级联删除任务 【免费下载链接】sentry Developer-first error tracking and performance monitoring 项目地址: https://gitcode.com/GitHub_Trending/sen/sentry 导读 当你在 Sentry 中删除一个…

📰

C#动态加载与反射机制详解:从Assembly.LoadFrom到Roslyn插件化开发

简介:面向C#开发者的动态加载与动态编译实例源码包,聚焦运行时加载外部程序集和动态生成代码两大核心场景,适用于插件系统、模块化应用、自定义规则引擎等需要灵活扩展的项目。资源包共含18个文件,以8个.cs源码文件为主体&#xf…

📰

CANN/ge ATC工具--om参数指南

--om 【免费下载链接】ge GE(Graph Engine)是面向昇腾的图编译器和执行器,提供了计算图优化、多流并行、内存复用和模型下沉等技术手段,加速模型执行效率,减少模型内存占用。 GE 提供对 PyTorch、TensorFlow 前端的友好…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬