zl程序教程

您现在的位置是:首页 >  其他

当前栏目

目标检测00-03:mmdetection(Foveabox为例)-训练自定义的coco数据集(提供示例数据集)

训练数据 自定义 示例 检测 目标 提供 03
2023-09-14 09:13:07 时间

以下链接是个人关于mmdetection(Foveabox-目标检测框架)所有见解,如有错误欢迎大家指出,我会第一时间纠正。有兴趣的朋友可以加微信:17575010159 相互讨论技术。若是帮助到了你什么,一定要记得点赞!因为这是对我最大的鼓励。 文末附带 \color{blue}{文末附带} 文末附带 公众号 − \color{blue}{公众号 -} 公众号 海量资源。 \color{blue}{ 海量资源}。 海量资源

目标检测00-00:mmdetection(Foveabox为例)-目录-史上最新无死角讲解

前言

通过前面的博客,我们已经知道怎么去评估以及训练一个模型,但是都是基于官方的数据集进行训练,那么我们如何去训练自己的数据呢?那么这篇博客我们来为大家讲解,首先请大家下载好该数据集,如果连接失效,请留言,本人会及时更换:
链接:https://pan.baidu.com/s/1X0grp4ILVEbgxJJn5cePoA
提取码:94uk
下载好之后,本人摆放的位置如下:
在这里插入图片描述

放置好之后,那么我来简单的介绍一下该数据集。该数据集主要是一个仪表数据集,总共就一个类别,如果加上背景则为2个类别,打开其中的 test.json即可查看,如下:
在这里插入图片描述
其中的categories的内容为:
在这里插入图片描述
只有一个类别

'油面温度表'

数据的格式,完全按照coco的数据格式(想要详细了解的,可以自行百度),因为这样我们就能直接使用coco的API,可以节约很多时间。

为了在不更改任何源码源码的情况下,训练自己的数据,本人使用的是如下方案。

1.自定义config文件
2.自定义数据读取器,并且添加到 mmdetection 框架之中
3.进行训练测试

 

自定义config文件

通过如下连接:
目标检测00-04:mmdetection(Foveabox为例)-config文件注释-持续更新:https://editor.csdn.net/md?not_checkout=1&articleId=108388011
复制 非注释的代码 \color{blue}{非注释的代码 } 非注释的代码 的 config 到 configs/foveabox/my_fovea_r50_fpn_4x4_2x_coco.py (自行创建)之中。其中的 num_classes=1 是比较关键地方,不需要加上背景类。

 

模型训练

复制 mmdet/datasets/coco.py 文件重命名为 mmdet/datasets/mycoco.py, 然后修改其中的 CocoDataset 为 MyCocoDataset,如下:

#class CocoDataset(CustomDataset):
class MyCocoDataset(CustomDataset):

把 CLASSES 替换成如下:

    CLASSES = ['油面温度表']

修改 mmdet/datasets/init.py (下划线打不出来)文件,添加如下代码:

from .mycoco import MyCocoDataset

并且在 __all__中也加上MyCocoDataset

执行指令:

#  $MMPOSE表示项目(从githubu下载)的根目录
cd ${mmdetection-root}
python tools/train.py configs/foveabox/my_fovea_r50_fpn_4x4_2x_coco.py

本人打印如下:
在这里插入图片描述

 

模型测试

查看测试集的测试结果

#  $MMPOSE表示项目(从githubu下载)的根目录
cd ${mmdetection-root}
# fovea_r50_fpn_4x4_2x_coco 表示你想保存测试图片的目录 
python tools/test.py configs/foveabox/my_fovea_r50_fpn_4x4_2x_coco.py     work_dirs/my_fovea_r50_fpn_4x4_2x_coco/latest.pth   --show-dir  my_fovea_r50_fpn_4x4_2x_coco

进行mAP评估

python tools/test.py  work_dirs/my_fovea_r50_fpn_4x4_2x_coco/my_fovea_r50_fpn_4x4_2x_coco.py       work_dirs/my_fovea_r50_fpn_4x4_2x_coco/latest.pth    --eval-options  'classwise=True'  --eval bbox  proposal

报错1

  File "/my_app/anaconda3/envs/09.-pytorch1.5-py3.6/lib/python3.6/site-packages/mmcv/utils/logging.py", line 82, in print_log
    print(msg)

这里主要的原因是有因为类别名称使用了中文, 所以强烈建议标注文件不要使用中文 \color{red}{所以强烈建议标注文件不要使用中文} 所以强烈建议标注文件不要使用中文,为了避免中文打印,本人执行如下指令:

python tools/test.py  work_dirs/my_fovea_r50_fpn_4x4_2x_coco/my_fovea_r50_fpn_4x4_2x_coco.py       work_dirs/my_fovea_r50_fpn_4x4_2x_coco/latest.pth    --eval bbox  proposal

显示如下:
在这里插入图片描述
对于单张图片以及摄像头的测试,loss 画图等等,请大家阅读上一篇博客。
在这里插入图片描述