文章目录
理论知识
按照官网所说,构建自己的数据集有两种方法,自己的数据时COCO数据集的格式或者自己定义个数据集的格式。
按照COCO数据集的格式
这种方式要求数据按照COCO数据集的格式组织,COCO数据集的详细解释参考另一篇博客,主要是annotations中的json文件的内容需要注意。
接下来我们看一下mmdetection是如何调用数据集的,首先看一下训练的config文件中对数据集的定义部分:其中定义了dataset_type时COCODataset的类型,然后定义了COCO数据集的位置,train_pipeline定义了读取图片过程中的操作(包括读取,归一化,增广),data定义了train、val、test的具体位置。
# ./configs/faster_rcnn_r50_fpn_1x.py
# dataset settings
# dataset settings
dataset_type = 'CocoDataset'
data_root = './data/coco/'
img_norm_cfg = dict(
mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_rgb=True)
train_pipeline = [
dict(type='LoadImageFromFile'),
dict(type='LoadAnnotations', with_bbox=True),
dict(type='Resize', img_scale=(1333, 800), keep_ratio=True),
dict(type='RandomFlip', flip_ratio=0.5),
dict(type='Normalize', **img_norm_cfg),
dict(type='Pad', size_divisor=32),
dict(type='DefaultFormatBundle')