使用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 里面已经给出了两种使用自己数据集的方法:

为了符合之前自己的习惯,选择用online conversion,自己用labelImg标注的xml文件和图像共同输入
下面是修改方法
-
在mmdet/datasets/init.py 里注册自己的数据集
在以下两个地方添加

-
mmdet/datasets 里有voc.py里面存放了voc数据集的信息,我们改成自己的
但是这个代码里默认有img_prefix,我没有对它改动,只为了尽快布置好数据集,
由voc.py改成的MyDataset

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

把下面相关的都改成VOC2012

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