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

tech2023-02-14  110

以下链接是个人关于mmdetection(Foveabox-目标检测框架)所有见解,如有错误欢迎大家指出,我会第一时间纠正。有兴趣的朋友可以加微信:a944284742相互讨论技术。若是帮助到了你什么,一定要记得点赞!因为这是对我最大的鼓励。 文 末 附 带 \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 画图等等,请大家阅读上一篇博客。

最新回复(0)