51Testing软件测试论坛

标题: Linux下使用mmdetection的docker容器训练自己的数据 [打印本页]

作者: 乐哈哈yoyo    时间: 2019-4-10 15:48
标题: Linux下使用mmdetection的docker容器训练自己的数据
1-mmdetection介绍

mmdetection是商汤科技(2018 COCO 目标检测挑战赛冠军)和香港中文大学开源的一个基于Pytorch实现的深度学习目标检测工具箱mmdetection,支持Faster-RCNN,Mask-RCNN,Fast-RCNN,Cascade-RCNN等主流的目标检测框架。相比于Facebook开源的Detectron框架,作者声称mmdetection有三点优势:performance稍高、训练速度稍快、所需显存稍小。

[attach]123855[/attach]


2-为什么使用docker

使用docker的优点是直接使用别人配置好的镜像来生成容器,无需配置环境,也不会有cuda版本冲突等问题。docker的安装直接使用yum install docker或者apt-get install docker来安装,为了能在容器内使用GPU,还需安装nvidia-docker,nvidia-docker的安装需要选择docker的对应版本,具体安装方法可百度。


3-标注自己的数据

安装labelme,使用pip

  1. pip install labelme
复制代码
在命令行输入labelme,启动labelme进行数据标注,如果是目标检测就用矩形框标注,是分割算法就用多边形做精细标注。标注后会得到json格式的标注文件,一张图片对应一个文件,但是这个格式的文件不是我们需要的,所以进行下一步。


4-把labelme标注的数据格式转化为coco的数据格式

coco的数据格式是指以下的数据格式,annotation中的json文件是所有图片的标注信息的集合,train和val中存放训练用和测试用的图片。格式转换代码可百度下载。
  1. annotations
  2. instances_train.json
  3. instances_val.json
  4. train
  5. train_1.jpg

  6. val
  7. val_1.jpg
复制代码

5-使用docker容器下载mmdetection并训练

输入以下命令查找镜像:

  1. docker search mmdetection
复制代码

[attach]123856[/attach]

下载这个镜像

  1. docker pull cheney0813/mmdetection
复制代码

启动镜像

  1. nvidia-docker run -it -v /home:/mnt --shm-size 4G cheney0813/mmdetection /bin/bash
复制代码

-v是挂载本地硬盘空间,–shm-size是分配共享内存
进入mmdetection根目录

  1. cd /home/mmdetection/mmdetection
复制代码

激活虚拟环境

  1. conda activate mmdetection
复制代码

创建数据链接

  1. ln -s 你的数据路径(annotations的上一级目录) data
复制代码

修改配置文件

  1. vim configs/mask_rcnn_r101_fpn_1x.py
复制代码

修改类别数:

[attach]123857[/attach]

[attach]123858[/attach]

修改标注文件路径和原始图片路径为自己的数据路径:

[attach]123859[/attach]

启动训练

  1. ./tools/dist_train.sh configs/mask_rcnn_r101_fpn_1x.py 4
复制代码

大功告成!







欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2