Openmmlab寒假训练营(五)
MMDetection配置结构小结
- CoCo数据集格式
1.CoCo数据集是一个庞大的数据集体系,里面包含了各种任务的数据集,其中包括目标检测和实例分割,标注文件CoCo数据集规定是存储在一个文件夹中,数据按照不同任务和训练、测试、验证的关系放在不同文件夹里
2.MMDetection 会按照COCO格式读取数据集,因此可以将自己的数据集按照COCO格式进行组织,再教由MMDetection读取正确的数据和标注信息
3.具体的COCO数据集解析可以参考:
https://blog.csdn.net/sun1221__/article/details/127546605
是否符合COCO的格式可以参考如下网址:
https://zhuanlan.zhihu.com/p/431215846
- 训练配置项继承
以Mask_RCNN和单目标检测微调为例
1.继承模型,重新设置检测框和实例分割的种类
model = dict(
roi_head=dict(
# bbox and mask change
bbox_head=dict(num_classes=1),
mask_head=dict(num_classes=1)
)
)
2.数据集重载
dataset_type = 'COCODataset'
classes = ('balloon',)
data = dict(
# set batch_size and gpu nums
samples_per_gpu=1,
workers_per_gpu=2,
train=dict(
img_prefix='../balloon_dataset/train/',
classes=classes,
ann_file='../balloon_dataset/train/out.json'),
val=dict(
img_prefix='../balloon_dataset/val/',
classes=classes,
ann_file='../balloon_dataset/val/out.json'),
)
3.优化器设置
由于这里是微调任务,所以学习率可以设置的很低
optimizer = dict(type='SGD', lr=0.001, momentum=0.9, weight_decay=0.0001)
optimizer_config = dict(grad_clip=None)
4.设置epoch次数
runner = dict(type='EpochBasedRunner', max_epochs=1000)
5.设置预训练权重的记载地址
load_from = 'mask_rcnn.pth'
6.其他配置可以参考官方文档