MMDetection 开始
本文将引导快速使用 MMDetection ,记录了实践中需注意的一些问题。
#
环境准备#
基础环境- Nvidia 显卡的主机
- Ubuntu 18.04
- 系统安装,可见 制作 USB 启动盘,及系统安装
- Nvidia Driver
- 驱动安装,可见 Ubuntu 初始配置 - Nvidia 驱动
#
开发环境下载并安装 Anaconda ,之后于 Terminal 执行:
pytorch==1.7.0
时多卡训练会发生问题,需参考此 Issue。命令参考:
更多安装方式,可见官方文档:
#
现有模型进行推断Faster RCNN#
以 R-50-FPN 为例,
Backbone | Style | Lr schd | Mem (GB) | Inf time (fps) | box AP | Config | Download |
---|---|---|---|---|---|---|---|
R-50-FPN | pytorch | 1x | 4.0 | 21.4 | 37.4 | config | model | log |
下载 model
文件到 mmdetection/checkpoints/
。之后,进行推断,
#
现有模型进行测试#
准备数据集下载 COCO 数据集,如下放进 mmdetection/data/coco/
目录,
#
测试现有模型效果如下,
结果如下,
#
标准数据集训练模型#
准备数据集同前一节的 COCO 数据集。
#
准备配置文件配置文件为 configs/faster_rcnn/faster_rcnn_r50_fpn_1x_coco.py
。
需要依照自己的 GPU 情况,修改 lr
学习速率参数,说明如下:
lr=0.005
for 2 GPUs * 2 imgs/gpulr=0.01
for 4 GPUs * 2 imgs/gpulr=0.02
for 8 GPUs and 2 img/gpu (batch size = 8*2 = 16), DEFAULTlr=0.08
for 16 GPUs * 4 imgs/gpu
#
训练模型#
自定义数据集训练模型#
自定义数据集这里从 Pascal VOC 数据集拿出 cat
作为自定义数据集来演示,
数据集需要是 COCO 格式,以上直接用 datum
从 VOC 拿出 cat
并转为了 COCO 格式。
#
准备配置文件添加 configs/voc_cat/faster_rcnn_r50_fpn_1x_voc_cat.py
配置文件,内容如下:
model
配置num_classes=1
为类别数量dataset
配置为准备的自定义数据集schedule
配置训练的lr
及迭代轮次total_epochs
runtime
可配置checkpoint
间隔多少存一个。默认 1 epoch 1 个,空间不够用😶
配置可对照 __base__
的内容覆盖修改,更多说明见官方文档。
#
训练模型断点恢复时,
如发生 ModuleNotFoundError: No module named 'pycocotools'
错误,这样修正:
#
查看训练 loss可用 keys
见 log.json
记录。