mmdetection 训练自己的数据集
Posted 东东就是我
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mmdetection 训练自己的数据集相关的知识,希望对你有一定的参考价值。
文章目录
一、标记数据
使用labelme create rectangle 标记矩形物体
使用labelme 文件下的 labelme2coco 把标记好的多个json转换成1个json
注意:需要labels.txt文件
python labelme2coco.py inputimg outputimg --labels=labels.txt
二、修改mmdetection配置文件
1.修改dataset文件
在F:\\mmdetection-2.7.0\\configs_base_\\datasets\\coco_detection.py
data_root = 'dataset/qingdao' #自己数据集路径
因为我只有一个json,所以全部的训练测试都是同一个。显卡显存小,所以设置为1
data = dict(
samples_per_gpu=1,
workers_per_gpu=1,
train=dict(
type=dataset_type,
ann_file=data_root + '/annotations.json',
img_prefix=data_root ,
pipeline=train_pipeline),
val=dict(
type=dataset_type,
ann_file=data_root + '/annotations.json',
img_prefix=data_root ,
pipeline=test_pipeline),
test=dict(
type=dataset_type,
ann_file=data_root + '/annotations.json',
img_prefix=data_root,
pipeline=test_pipeline))
2.修改模型类别
在路径F:\\mmdetection-2.7.0\\configs_base_\\models\\mask_rcnn_r50_fpn.py
文中3处都要修改
num_classes=1,
3.修改coco类别
在路径F:\\mmdetection-2.7.0\\mmdet\\datasets\\coco.py
CLASSES=('rect') # 自己数据集类别
训练
python tools\\trans.py confings\\cascade_rcnn\\cascade_rcnn_r50_fpn_1x_coco.py
TIPS
1.出现错误 ValueError: need at least one array to concatenate
大概率是因为2.3没做。
2.修改加载原来的权重
在 F:\\mmdetection-2.7.0\\configs_base_\\default_runtime.py
load_from = None #模型路径
3.修改学习次数
在F:\\mmdetection-2.7.0\\configs_base_\\schedules\\schedule_1x.py
lr_config = dict(
policy='step',
warmup='linear',
warmup_iters=500,
warmup_ratio=0.001,
step=[8, 11])
total_epochs = 50 #学习次数
以上是关于mmdetection 训练自己的数据集的主要内容,如果未能解决你的问题,请参考以下文章
一步一步教你在 docker 容器下使用 mmdetection 训练自己的数据集
自动驾驶感知算法实战5——MMdetection3d环境搭建使用MMdetection3d做3D目标检测训练自己的数据集测试可视化,以及常见的错误
自动驾驶感知算法实战5——MMdetection3d环境搭建使用MMdetection3d做3D目标检测训练自己的数据集测试可视化,以及常见的错误