Python 制作Pascal VOC数据集

Python 制作Pascal VOC数据集,第1张

下图是 Pascal VOC 数据集格式。

1、 Annotations 目录是存放 xml 文件;

2、 ImageSets 目录是存放 txt 文件,主要是测试集、训练集、验证集等文件名称的集合;

3、 JPEGImages 目录是存放图片文件( jpg );

1、从 Annotations 目录下读取 xml 目录;

2、把 xml 目录,随机重置一下,这样在训练的时候,各个分类是随机读取,不会出现某一个分类聚集读取,从而影响训练效果。当然,你也可以在训练的时候选择随机重置,道理是一样的;

3、创建将要写入的 txt 文件。这里示范了训练集、验证集,其他的可自行添加;

4、读取目录文件,通过前缀判断,写入 txt 文件。

有时候不需要指定数据集,只是从一个大的原始数据集中,随机选取一部分当中训练集、一部分当作验证集、一部分当作测试集。

本文以 Faster R-CNN 为例,介绍如何修改 MMDetection v2 的配置文件,来训练 VOC 格式的自定义数据集。

2021.9.1 更新: 适配 MMDetection v2.16

目录:

服务器的环境配置:

./configs/_base_ 的目录结构:

可以看出,包含四类配置:

打开 ./configs/faster_rcnn/faster_rcnn_r50_fpn_1x_coco.py :

修改数据集配置的路径:

打开 ./configs/_base_/datasets/voc0712.py :

打开 ./configs/_base_/models/faster_rcnn_r50_fpn.py :

修改 roi_head 的类别个数 num_classes :

打开 ./configs/_base_/schedules/schedule_1x.py :

修改学习率 lr 和迭代轮数 total_epochs :

打开 ./configs/_base_/default_runtime.py :

修改 log_config 的日志记录间隔 interval ,并开启 TensorBoard 记录器:

另外,也可以将上面步骤 1-5 修改的配置写在一个文件中。

这样就能够更方便地管理不同的配置文件,避免因频繁修改导致出错。

在训练和测试时,遇到的一些容易报错的地方,这里做下记录。

修改 VOCDataset() 的标签类别 CLASSES :

修改 voc_classes() 返回的标签类别:

如果是自定义数据集的名字,需要注释报错信息 ValueError ,并将 self.year 设为 None :

如果图像文件不是 jpg 格式,需要将 filename 和 img_path 的后缀名改为相应格式:

如果标注文件中不存在 difficult 标签,需要将 difficult 设为 0 :

将 results 中的 20 改为自定义数据集的类别个数:

有帮助的话,点个赞再走吧,谢谢~

参考:

超图数据集管理基本 *** 作和添加删除属性表字段方法如下

bcbobo21cn

码龄16年

关注

打开一个自带数据源;这是一个数据源模板;里面数据是空的;

右击数据集,属性;

工作空间管理器选中矢量数据集,数据集属性面板中会显示:数据集、投影、矢量、属性表、值域五个面板;

数据集信息

面板中将显示该矢量数据集的属性信息,包括矢量数据集的基本信息、数据集范围信息以及数据集的详细描述信息;

坐标系

面板中显示该矢量数据集的坐标系信息

坐标系名称:显示矢量数据集的坐标系信息。

单位:显示矢量数据集的距离单位。

坐标系信息:显示矢量数据集投影的详细描述信息。

值域

面板显示该矢量数据集字段的值域信息,包括矢量数据集的字段别名、字段类型、值域类型及值域设置;

属性表面板;字段名称,别名,类型,长度,可空否,缺省值;

除了系统字段,自己的字段可自己管理;可添加、删除字段;点加号按钮,添加一个测试字段如下,字段名-mymemo,别名-注释,类型-字符,缺省值-"一切正常";


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11896527.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-19
下一篇2023-05-19

发表评论

登录后才能评论

评论列表(0条)

    保存