使用mmdetection训练自己voc格式的数据集

使用mmdetection训练自己的数据集

之前使用mmdetection训练的时候,找过几个老哥的博客,但都只是布置voc07或者12的数据训练,没有定义自己的数据集,所以这里特地把训练自己数据集的方式记录下来

场景:【有voc形式的数据集,类别数和名称自定】
我有9类的数据集 名为 “MyDataset”
类别名为 [‘000’,‘001’,‘002’,‘003’,‘004’,‘005’,‘006’,‘007’,‘008’]

mmdetection的最新版本(2019/7/4查看)的GETTING_STARTED.md 里面已经给出了两种使用自己数据集的方法:
使用mmdetection训练自己voc格式的数据集_第1张图片
为了符合之前自己的习惯,选择用online conversion,自己用labelImg标注的xml文件和图像共同输入
下面是修改方法

  1. 在mmdet/datasets/init.py 里注册自己的数据集
    在以下两个地方添加

    使用mmdetection训练自己voc格式的数据集_第2张图片
  2. mmdet/datasets 里有voc.py里面存放了voc数据集的信息,我们改成自己的
    但是这个代码里默认有img_prefix,我没有对它改动,只为了尽快布置好数据集,
    由voc.py改成的MyDataset

    使用mmdetection训练自己voc格式的数据集_第3张图片
  3. 在自己相应的网络配置文件里修改路径,这里一定要记住,因为上一步为了方便没有修改voc数据的前缀名相关的代码,所以我们把自己的数据放在名为 VOC2012的文件夹中
  • data
    • VOC2012
      • JEPGImages #存放自己的数据图片
      • Annotations #标注信息
      • Imagesets #训练时的划分

修改类别数
使用mmdetection训练自己voc格式的数据集_第4张图片.
设置数据路径
在这里插入图片描述
把下面相关的都改成VOC2012
使用mmdetection训练自己voc格式的数据集_第5张图片

就可以开始用自己的数据集训练啦

另外 如果想用GETTING_STARTED.md里的另一种方式offline conversion,需要修改mmdet/core/evaluation/class_name以及tools/convert_datasets/pascal_voc.py 就可以把数据转成pkl使用,这里因为需要经常查看图像和标注内容,就没有使用这种方法

你可能感兴趣的:(目标检测,mmdetection,深度学习)