主要是目标检测方面的使用记录,mmdetection还有分类网络,分割等功能,但这篇博客主要关注目标检测,之后如果涉及到分割会再开一篇博客进行记录。
1. 安装
mmdetection需要的环境是cuda10.0为基础的环境,对驱动版本也有一定的要求,cuda8.0的我始终没有配通,主要的错误都是跟cuda相关的。
具体安装过程参见:https://blog.csdn.net/DD_PP_JJ/article/details/103055629
安装完大体环境以后,开始配置mmdetection
- 操作系统:Linux
- Python 3.5+
- PyTorch 1.0+ 或 PyTorch-nightly
- CUDA 9.0+
- NCCL 2+
- GCC 4.9+
然后cd进入mmdetection, 运行:
python setup.py develop
进行编译,如果你的mmdetection是从另外一台机器复制过来,只要他存在build文件夹,都有可能造成报错。直接rm -rf build
, 删除build文件夹后重新运行,就可能能够顺利通过。
2. 准备VOC格式数据集
具体数据集构建可以看:
- https://www.cnblogs.com/pprp/p/10863496.html#数据集构建
- https://blog.csdn.net/weicao1990/article/details/93484603
有一个库有一些脚本进行检查和生成:
https://github.com/pprp/voc2007_for_yolo_torch
3. 个性化配置
训练之前首先要根据自己的数据集对配置文件进行修改:
-
修改类别数量, num_classes = 类别数+1
dict( type='SharedFCBBoxHead', num_fcs=2, in_channels=256, fc_out_channels=1024, roi_feat_size=7, num_classes=2, # 修改 81 -> 2 target_means=[0., 0., 0., 0.], target_stds=[0.05, 0.05, 0.1, 0.1], reg_class_agnostic=True