Linux下使用mmdetection的docker容器训练自己的数据

1-mmdetection介绍

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

github:https://github.com/open-mmlab/mmdetection
在这里插入图片描述

2-为什么使用docker

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

3-标注自己的数据

安装labelme,使用pip

pip install labelme

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

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

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

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

大功告成!

  • 3
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值