下面的例子是使用ssd300训练自己的数据集(voc格式)
一、configs/base/datasets/voc0712.py
- 修改data_root为自己数据集的root
- 所有的img_prefix, 都修改为data_root,不需要加’2007’或者’2012’,这里不修改也可以,需要把自己的数据放到一个叫2007或者2012的文件夹中。修改之后,就可以随意的放置自己的数据集了。
- mmdet/datasets/xml_style.py 中,使用self.img_prefix来找到xml正确的路径,进而解析xml。
二、configs/pascal_voc/ssd300_voc0712.py
- 第7行 : 修改num_classes成自己的类别数,如果是一个类别,需要写成CLASSES = (person,),否则会出现 “AssertionError:
CLASSES in RepeatDatasetshould be a tuple of str.Add comma if number of classes is 1 as CLASSES = (person,)” 的错误。 - 第49行:修改samples_per_gpu,就是设置batch_size
- 第56行:修改optmizer的学习率大小,以及学习率策略
三、mmdet/datasets/voc.py 中 :
else:
raise ValueError('Cannot infer dataset year from img_prefix')
3、计算mAP的时候直接使用’voc07’
66到69的代码
if self.year == 2007:
ds_name = 'voc07'
else:
ds_name = self.CLASSES
直接改为:
ds_name = 'voc07'
四、mmdet/core/evaluation/class_names.py
voc_classes() 改为自己的类别名字
|