MMDetection2(四):训练自己的数据集

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

目录

前言 

一、准备自定义的数据集

二、准备一个配置文件

1、配置文件准备

2、预训练文件准备

三、Train、test、inference模型

四、总结


前言 

之前本来是想一次性把MMDetection2好好学习一下,后来跑了Mask-RCNN模型,发现效果还是没有Facebook的Detectron2框架跑的Mask-RCNN效果好,所以准备放弃MMDetection2框架了orz,但是之前挖的坑,还是要填起来,所以这次记录一下之前训练自己数据集的步骤吧。

在这篇博客中,你将会学习如何使用你自定义的数据集对预训练模型进行inference,test以及train操作。我们将使用ballon dataset作为一个例子来描述整个过程。

基本的几个步骤如下所示:

1、准备自定义的数据集

2、准备一个配置文件

3、使用自定义的数据集对模型进行train、test、inference操作

一、准备自定义的数据集

在MMDetection中有三种方式定义一个新的数据集:

  1. 将数据集直接制作成COCO的格式。
  2. 将数据集制作成中间格式(middle format)。
  3. 自己重新实现一个数据集。

通常,我们比较推荐前两种方式,因为它们相比于第三种方式更加容易些。在这篇博客笔记中,我们将会给一个把数据转化为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
评论 9
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值