1 mmdetection 安装及测试
1.1可以通过docker直接安装
在docker hub上搜索mmdetection,选择下载量最高的docker
docker pull vistart/mmdetection
经验证该docker内,mmdetection版本为2.2.0,mmcv版本为0.62
编译
安装后直接跑程序会报编译错误,查找后,应对mmdetection进行重现编译,否则无法使用GPU。
先进入mmdetection文件夹
cd mmdetection
删除该路径下的build文件夹
rm -rf ./build
重新编译mmdetection
pip install -v -e .
如果docker 内pip命令有问题,使用pip3命令或其他方式解决。
等待编译完成。
1.2dockerfile安装
下载mmdetection项目后
docker build -t mmdetection docker/
开启docker时建议加上--shm-size,否则训练时会报错说内存过小。
sudo docker run -it --gpus all -p 7775:8888 --shm-size 8G -v /home/zhaobing:/workspace mmdetection:latest
测试安装是否成功可以使用如下语句简单测试
from mmdet.apis import init_detector, inference_detector
config_file = 'configs/faster_rcnn/faster_rcnn_r50_fpn_1x_coco.py'
# download the checkpoint from model zoo and put it in `checkpoints/`
# url: https://download.openmmlab.com/mmdetection/v2.0/faster_rcnn/faster_rcnn_r50_fpn_1x_coco/faster_rcnn_r50_fpn_1x_coco_20200130-047c8118.pth
checkpoint_file = 'checkpoints/faster_rcnn_r50_fpn_1x_coco_20200130-047c8118.pth'
device = 'cuda:0'
# init a detector
model = init_detector(config_file, checkpoint_file, device=device)
# inference the demo image
inference_detector(model, 'demo/demo.jpg')
2voc数据集处理
mmdetection默认使用coco格式,使用voc格式数据集可以转换为coco格式,或者按照本文的方式
2.2数据集位置
将数据集放到如下位置/mmdetection/data/VOCdevkit/VOC2007 文件夹下为VOC格式的三个文件夹,Annotations JPEGImages ImageSets
image.png2.3修改算法对应的config
如,configs/faster_rcnn/faster_rcnn_r50_fpn_1x_coco.py
image.png
将数据集由coco换为voc0712.py
退到上级目录找到base,找到faster_rcnn_r50_fpn.py,修改原VOC类的数目为自己数据集的类别,不用+1
修改'../base/datasets/voc0712.py',注释掉voc2012的内容,根据自己的需要对应训练验证的train.txt.val.txt
image.png
2.4修改mmdetection/mmdet/datasets目录下voc.py类别
将class内容换为自己数据集的内容
image.png
2.5修改mmdetection/mmdet/core/evaluation目录下class_names.py
将class内容换为自己数据集的内容
image.png
3编译
每次针对不同算法完成上述操作,运行python setup.py install,重新编译
4训练
建立work_dirs文件夹
将下载的权重文件放到checkpoints文件夹
python tools/train.py configs/faster_rcnn/faster_rcnn_r50_fpn_1x_coco.py
测试
python ./tools/test.py configs/faster_rcnn/faster_rcnn_r50_fpn_1x_coco.py work_dirs/faster_rcnn_r50_fpn_1x_coco/latest.pth --eval mAP
网友评论