mmdetection对coco数据优先支持。所以在开始之前建议把自己数据修改为标准的coco格式,各种类型数据转coco格式脚本见:转换工具箱。
1.第一步当然是定义数据种类,需要修改的地方在mmdet\datasets
。
在这个目录下新建一个文件,例如:my_data.py
,然后把coco.py
的内容复制过来,修改class类名为MyDataset
最后把CLASSES
的那个tuple改为自己数据集对应的种类tuple即可,例如:
CLASSES = ('1', '2', '3', '4', '5', '6', '7', '8', '9', '10',
'11', '12', '13', '14', '15', '16', '17', '18', '19', '20')
表明你的数据集有21类(包含背景),命名是’1’-‘20’,还有一类背景。
2.接着在mmdet\datasets\__init__.py
引入你自定义的数据集
在这个py文件中开头加入
from .my_data.py import MyDataset
然后在__all__
列表中加入你的MyDataset
3.然后在mmdet\core\evaluation\class_names.py
中加入你刚才的数据集类别
在开头加入
def mydata_classes():
return [
'1', '2', '3', '4', '5', '6', '7', '8', '9', '10',
'11', '12', '13', '14', '15', '16', '17', '18', '19', '20'
]
然后在dataset_aliases
字典中加入:
'mydata':['mydata']
最后在mmdet\core\evaluation\__init__.py
引入你自定义的数据集,在__all__
列表中加入你的mydata_classes
。
4最后.在你训练的config文件中引入自己数据路径即可
在config
文件中把dataset_type
改为mydata
,然后把data_root
改成你coco格式自定义数据集的根目录即可。