mmdetection是商汤科技(2018 COCO 目标检测挑战赛冠军)和香港中文大学开源的一个基于Pytorch实现的深度学习目标检测工具箱mmdetection,支持Faster-RCNN,Mask-RCNN,Fast-RCNN,Cascade-RCNN等主流的目标检测框架。相比于Facebook开源的Detectron框架,作者声称mmdetection有三点优势:performance稍高、训练速度稍快、所需显存稍小。
github:https://github.com/open-mmlab/mmdetection
使用docker的优点是直接使用别人配置好的镜像来生成容器,无需配置环境,也不会有cuda版本冲突等问题。docker的安装直接使用yum install docker或者apt-get install docker来安装,为了能在容器内使用GPU,还需安装nvidia-docker,nvidia-docker的安装需要选择docker的对应版本,具体安装方法可百度。
安装labelme,使用pip
pip install labelme
在命令行输入labelme,启动labelme进行数据标注,如果是目标检测就用矩形框标注,是分割算法就用多边形做精细标注。标注后会得到json格式的标注文件,一张图片对应一个文件,但是这个格式的文件不是我们需要的,所以进行下一步。
coco的数据格式是指以下的数据格式,annotation中的json文件是所有图片的标注信息的集合,train和val中存放训练用和测试用的图片。格式转换代码可百度下载。
格式转换可参考这篇:https://blog.csdn.net/wc781708249/article/details/79611536
- annotations
- instances_train.json
- instances_val.json
- train
- train_1.jpg
- …
- val
- val_1.jpg
- …
更详细的数据格式可参考:https://blog.csdn.net/hajlyx/article/details/83542167
输入以下命令查找镜像:
docker search mmdetection
下载这个镜像
docker pull cheney0813/mmdetection
启动镜像
nvidia-docker run -it -v /home:/mnt --shm-size 4G cheney0813/mmdetection /bin/bash
-v是挂载本地硬盘空间,–shm-size是分配共享内存
进入mmdetection根目录
cd /home/mmdetection/mmdetection
激活虚拟环境
conda activate mmdetection
创建数据链接
ln -s 你的数据路径(annotations的上一级目录) data
修改配置文件
vim configs/mask_rcnn_r101_fpn_1x.py
修改类别数:
修改标注文件路径和原始图片路径为自己的数据路径:
启动训练
./tools/dist_train.sh configs/mask_rcnn_r101_fpn_1x.py 4
大功告成!