mmdetection使用自定义的coco格式数据集进行训练及测试

一、mmdetection简介
二、环境安装
    1、安装教程
    2、运行demo测试环境是否安装成功
三、训练自定义的dataset
    1、准备dataset
    2、Training前修改相关文件
    3、Training
四、Testing
五、实践中的Tips
六、好资料推荐阅读

再搭建coco的网络中遇到了很多的坑,但是最后你会发现原来他是如此的简单。

1首先原来外我在Pascal VOC进行训练,但是目标检测工具labelme不能够生成XML,生成了的XML不能够使用,于是转换想法,我用了coco

小白总是会犯错误,我以为下贼别人比赛的COCO会对自己有用,但是发现那只是数据集有用而已。
ok

我有自己的数据集。

好的,按照参考的这篇文章的思路https://blog.csdn.net/gaoyi135/article/details/90613895完美解救我。

还有个问题我不理解推荐以软连接的方式创建data文件夹,下面是创建软连接的步骤

cd mmdetection
mkdir data
ln -s $COCO_ROOT data

###其中,$COCO_ROOT需改为你的coco数据集根目录

这句 $COCO_ROOT需要怎么理解。

2、Training前修改相关文件

首先说明的是我的数据集类别一共有4个,分别是:‘Glass_Insulator’, ‘Composite_Insulator’, ‘Clamp’, ‘Drainage_Plate’。且我跑的模型是’configs/faster_rcnn_r50_fpn_1x.py’。

官方提供的代码中都使用的是coco数据集,虽然我们自定义的数据集也已经转换成coco标准格式了,但是像class_name和class_num这些参数是需要修改的,不然跑出来的模型就不会是你想要的。

一些博客例如这个,所提供的方法是按照官方给的定义coco数据集的相关文件,新建文件重新定义自己的数据集和类等,但是其实这是有风险的,我之前按照他们的方法走到最后发现会出现错误,所以最简单便捷且保险的方法是直接修改coco数据集定义文件(官方也是这样建议的)。

1、定义数据种类,需要修改的地方在mmdetection/mmdet/datasets/coco.py。把CLASSES的那个tuple改为自己数据集对应的种类tuple即可。例如:

CLASSES = ('Glass_Insulator', 'Composite_Insulator', 'Clamp', 'Drainage_Plate')

2、接着在mmdetection/mmdet/core/evaluation/class_names.py修改coco_classes数据集类别,这个关系到后面test的时候结果图中显示的类别名称。例如:

def coco_classes():
    return [
        'Glass_Insulator', 'Composite_Insulator', 'Clamp', 'Drainage_Plate'
    ]

3、修改configs/faster_rcnn_r50_fpn_1x.py中的model字典中的num_classes、data字典中的img_scale和optimizer中的lr(学习率)。例如:

num_classes=5,#类别数+1
img_scale=(640,478), #输入图像尺寸的最大边与最小边(train、val、test这三处都要修改)
optimizer = dict(type='SGD', lr=0.0025, momentum=0.9, weight_decay=0.0001) #当gpu数量为8时,lr=0.02;当gpu数量为4时,lr=0.01;我只要一个gpu,所以设置lr=0.0025

作者:Yee_Ko
来源:CSDN
原文:https://blog.csdn.net/gaoyi135/article/details/90613895
版权声明:本文为博主原创文章,转载请附上博文链接!
*

  • 有个问题,测试的时候怎么测试吗 除了demo外,测试集和训练集luoyang准备吗? 后续跟进。

在生成Annotations的时候也遇到了bug,众说风云,所以自己选择。

上传代码。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值