detectron2--使用自定义数据集(官方文档)

detectron2中利用自定义的数据集来训练(针对目标检测)

两个步骤

1、注册自定义的数据集(告诉数据集怎样获得数据集)
2、(可选择)为数据集注册metadata

1、注册数据集

数据集名称:my_dataset
定义my_dataset_function按照顺序来返回数据集中所有的数据。斯普哦

def my_dataset_function():
  ...
  return list[dict] in the following format

from detectron2.data import DatasetCatalog
DatasetCatalog.register("my_dataset", my_dataset_function)
# later, to access the data:
data: List[Dict] = DatasetCatalog.get("my_dataset")

返回数据形式:list[dict](列表[字典]),每一个字典里面的内容有以下两种形式:
1、标准的detectron2数据集字典格式(推荐)
2、自定义格式

1.1标准的detectron2数据集字典格式

跟COCO数据集的annotations格式相近。每个dict包含一张图片的信息,对于目标检测任务有:

通用的keysvalue
file_name图片文件的完整路径
height,weight图片大小
image_id(str或者int)图片的id
目标检测任务keysvalue
annotationsbbox(list[dict])
bbox_mode(int)bbox的格式:BoxMode.XYXY_ABS, BoxMode.XYWH_ABS
category_id (int)范围是0-num_class-1

2、自定义数据集的metadata

metadata是包含整个数据集共享信息的key-value map,通常用来描述数据集里面是什么,比如:种类数量、种类颜色、文件根目录等等。
每个数据集都有metadata,通过MetadataCatalog.get(dataset_name).some_metadata接入。
metadata的的结构取决于相关的代码流需要什么。
如果通过DatasetCatalog.register注册了一个新的数据集,那可以通过MetadataCatalog.get(dataset_name).some_key = some_value来加入相关的metadata,metadate的keys:

keyvalue
thing_classes (list[str])每个实例类别的名字列表
thing_colors (list[tuple(r, g, b)])每个类别的预先定义的颜色,主要用于可视化,不定义就随机颜色

其他不用于目标检测的key-value没写,自行查阅官方文档

3、更新新数据集的配置文件

注册新数据集以后可以在cfg.DATASETS.{TRAIN,TEST}中使用数据集名字(my_dataset)

MODEL.ROI_HEADS.NUM_CLASSES

MODEL.RETINANET.NUM_CLASSES

MODEL.ROI_KEYPOINT_HEAD.NUM_KEYPOINTS

TEST.DETECTIONS_PER_IMAGE

参考文档:detectron2官方文档

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值
>