实践MMDetection
MMDetection项目概览
任务支持:目标检测、实例分割
算法支持:两阶段检测器、单阶段检测器、级联检测器、无锚框检测器、Transformer
工具支持:训练工具、测试工具、推理API
MMDetection运行环境单间(基于Openbayes计算平台)
工作目录查询:
import os
os.getcwd()
使用MMDetection进行模型推理
mmlab重要组件:配置文件
mim除了是包管理器外,还是一个模型管理器,执行mim search mmdet --model "mask r-cnn"
可以得到支持的模型,选择想要的config id
然后执行mim download mmdet --config <config id> --dest .
下载配置文件;
from mmdet.apis import init_detector, inference_detector, show_result_pyplot
config_file = <config_file>
checkout_file = <weigth_file>
model = init_detector(config_file, checkpoint_file)
result = inference_detector(model, "demo.jpg")
show_result_pyplot(model, 'demo.jpg', result)
lr schd为1x或2x,表示训练策略,2x时间比1x长一些,2x效果比1x好一些
深度学习模型的训练涉及几个方面:
- 模型结构:模型层数、通道数等
- 数据集:数据集的划分、数据集增强方法等
- 训练策略:梯度下降算法、学习率参数、batch_size、训练总轮次等
- 运行时:GPU、分布式环境配置等
- 一些辅助功能:打印日志、定时保存checkpoint等
在MMDeteciton,所有项目都涵盖在一个配置文件中,一个配置文件定义了一个完整的训练过程
- model字段定义模型
- data字段定义数据
- optimizer、lr_config等字段定义训练策略
- load_from字段定义与训练模型的参数文件
使用MMDetection训练模型,检测图像中水果
训练自己的模型
通常基于微调训练:
- 使用基于coco预训练的监测模型作为梯度下降的“起点”
- 使用自己的数据进行“微调训练”,通常需要降低学习率
具体流程:
- 选择一个基础模型,下载对应的配置文件和预训练模型的参数文件
- 将数据整理成MMDetection支持的格式,如COCO格式或者自定义格式
- 修改配置文件
- 修改配置文件的数据路径
- 修改模型的分类头
- 设置加载预训练模型
- 修改优化器配置(学习率、训练轮次等)
- 修改杂项
coco数据集格式
输出配置文件内容:
from mmcv import Config
config = Config.fromfile('fruit.py')
print(config.pretty_text)