openmmlab实战营第五课 MMDetection 代码教学
MMDetection 可以做什么
MMDetection 提供400 余个性能优良的预训练模型,开箱即用,几行Python API 即可调用强大的检测能力
MMDetection 涵盖60 余个目标检测算法,并提供方便易用的工具,经过简单的配置文件改写和调参就可以训练自己的目标检测模型
MMDetection
任务支持 | 覆盖广泛 | 算法丰富 | 算法丰富 |
---|---|---|---|
目标检测 | 440+ 个预训练模型 | 两阶段检测器 | 训练工具 |
目标检测 | 60+ 篇论文复现 | 一阶段检测器 | 测试工具 |
全景分割 | 常用学术数据集 | 级联检测器 | 推理 API |
无锚框检测器 | |||
Transformer |
OpenMMLab 项目中的重要概念——配置文件
深度学习模型的训练涉及几个方面:
− 模型结构模型有几层、每层多少通道数等等
−
数据集用什么数据训练模型:数据集划分、数据文件路径、数据增强策略等等
−
训练策略梯度下降算法、学习率参数、batch_size、训练总轮次、学习率变化策略等等
− 运行时GPU、分布式环境配置等等
− 一些辅助功能如打印日志、定时保存checkpoint等等
在OpenMMLab
项目中,所有这些项目都涵盖在一个配置文件中,一个配置文件定义了一个完整的训练过程
− model 字段定义模型
− data 字段定义数据
− optimizer、lr_config 等字段定义训练策略
− load_from 字段定义与训练模型的参数文件
flowchart LR; subgraph 配置文件 模型结构 数据集 数据处理策略 学习率策略 优化器策略 运行环境配置 end subgraph 模型库 预训练模型 end subgraph 内部模块 A[模型构建] B[数据加载器构建] C[优化器构建] D[Runner] A-->D B-->D C-->D end subgraph 工具 训练工具 测试工具 推理工具 end subgraph 数据文件 COCO 自定义数据 推理工具 S[Pascal VOC] Cityscapes end 内部模块 -->工具 数据文件-->内部模块 模型库-->内部模块 配置文件-->内部模块
安装环境
1 | pip install openmim |
验证是否成功 参考官方的文档
1 | import torch |
如何把一个新的数据集转化为coco数据集训练 以这次课程的balloon数据集为例
1 |
|
下载已经有的模型 可以用 mim search mmdet --model
"模型id"查有的模型
1
mim download mmdet --config mask_rcnn_r50_fpn_2x_coco --desk .
准备一个配置文件
1 | 这个新的配置文件继承自一个原始配置文件,只需要突出必要的修改部分即可 |
训练模型
1 | mim train mmdet balloon.py |
测试模型
1 | mim test mmdet balloon.py --checkpoint work_dirs/balloon/latest.pth --show-dir work_dirs/balloon |