目录
前言
之前本来是想一次性把MMDetection2好好学习一下,后来跑了Mask-RCNN模型,发现效果还是没有Facebook的Detectron2框架跑的Mask-RCNN效果好,所以准备放弃MMDetection2框架了orz,但是之前挖的坑,还是要填起来,所以这次记录一下之前训练自己数据集的步骤吧。
在这篇博客中,你将会学习如何使用你自定义的数据集对预训练模型进行inference,test以及train操作。我们将使用ballon dataset作为一个例子来描述整个过程。
基本的几个步骤如下所示:
1、准备自定义的数据集
2、准备一个配置文件
3、使用自定义的数据集对模型进行train、test、inference操作
一、准备自定义的数据集
在MMDetection中有三种方式定义一个新的数据集:
- 将数据集直接制作成COCO的格式。
- 将数据集制作成中间格式(middle format)。
- 自己重新实现一个数据集。
通常,我们比较推荐前两种方式,因为它们相比于第三种方式更加容易些。在这篇博客笔记中,我们将会给一个把数据转化为COCO格式的例子。
备注:MMDetection现在只对COCO格式的数据集提供mask AP的evaluation方法。所以,实例分割的使用者应该将自己的数据集转化为COCO格式。
(如果COCO格式的数据集自己已经准备好了,下面这一段其实可以跳过)
COCO标注格式
下面是用于实例分割任务的COCO格式中的关键字,如果想要了解更多的细节,请点击这里。
{
"images": [image],
"annotations": [annotation],
"categories": [category]
}
# 图片信息
image = {
"id": int,
"width": int,
"height": int,
"file_name": str,
}
# 标注信息
annotation = {
"id": int,
"image_id": int,
"category_id": int,
"segmentation": RLE or [polygon],
"area": float,
"bbox": [x,y,width,height],
"iscrowd": 0 or 1,
}
# 类别信息
categories = [{
"id": int,
"name": str,
"supercategory": str,
}]
假定我们使用的是ballon dataset。在下载完这个数据集之后,我们需要实现一个函数来将下载的数据集的标签文件转化为COCO数据集的格式。然后我们使用实现好的COCO数据集导入数据进行模型的train和evaluation操作。
如果你仔细去查看一下ballon数据集,你会发现这个数据集的标注如下所示:
{'base64_img_data': '',
'file_attributes': {},
'filename': '34020010494_e5cb88e1c4_k.jpg',
'fileref': '',
'regions': {'0': {'region_attributes': {},
'shape_attributes': {'all_points_x': [10

本文介绍如何使用MMDetection2框架训练自定义数据集。通过将数据集转化为COCO格式并配置相应的配置文件,实现模型训练、测试及推理。文章详细展示了配置步骤及关键命令。
最低0.47元/天 解锁文章
2102





