1-mmdetection介绍
mmdetection是商汤科技(2018 COCO 目标检测挑战赛冠军)和香港中文大学开源的一个基于Pytorch实现的深度学习目标检测工具箱mmdetection,支持Faster-RCNN,Mask-RCNN,Fast-RCNN,Cascade-RCNN等主流的目标检测框架。相比于Facebook开源的Detectron框架,作者声称mmdetection有三点优势:performance稍高、训练速度稍快、所需显存稍小。
2-为什么使用docker
使用docker的优点是直接使用别人配置好的镜像来生成容器,无需配置环境,也不会有cuda版本冲突等问题。docker的安装直接使用yum install docker或者apt-get install docker来安装,为了能在容器内使用GPU,还需安装nvidia-docker,nvidia-docker的安装需要选择docker的对应版本,具体安装方法可百度。
3-标注自己的数据
安装labelme,使用pip
在命令行输入labelme,启动labelme进行数据标注,如果是目标检测就用矩形框标注,是分割算法就用多边形做精细标注。标注后会得到json格式的标注文件,一张图片对应一个文件,但是这个格式的文件不是我们需要的,所以进行下一步。
4-把labelme标注的数据格式转化为coco的数据格式
coco的数据格式是指以下的数据格式,annotation中的json文件是所有图片的标注信息的集合,train和val中存放训练用和测试用的图片。格式转换代码可百度下载。
- annotations
- instances_train.json
- instances_val.json
- train
- train_1.jpg
- …
- val
- val_1.jpg
- …
复制代码
5-使用docker容器下载mmdetection并训练输入以下命令查找镜像: - 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
复制代码大功告成!
|