COCO数据集DIY训练

本节介绍如何利用Petoi提供的脚本工具,提取COCO数据集部分标签及数据进行训练。

下面是对COCO数据集的简要介绍:


COCO(Common Objects in Context)数据集是一个广泛使用的计算机视觉数据集,主要用于物体检测、分割、关键点检测等任务。由微软研究院开发,COCO数据集的目标是提供一个具有高质量标注的丰富数据集,以推动计算机视觉技术的发展。

COCO 数据集的主要特点:
数据内容:

图像数量:包含超过 33 万张图像。
类别:涵盖 80 个物体类别,例如人、车、动物、家具等。
标注:每张图像中都有物体的标注,支持物体检测、分割(实例分割)和关键点检测(如人体姿态估计)等任务。
数据类型:

物体检测:标注了物体的边界框(bounding box)。
实例分割:每个物体实例的像素级分割掩码(mask)。
关键点检测:人体关键点的位置标注。
场景描述:每张图像还包含描述图像内容的文本信息。
数据分布:

训练集:包含约 11.8 万张图像。
验证集:包含约 5,000 张图像。
测试集:包含约 20,000 张图像(用于竞赛和评估)。
数据集结构:

图像数据:存储在图像文件夹中。
标注数据:存储在 JSON 格式的文件中,包括物体边界框、分割掩码、关键点等信息。
使用场景:
物体检测:识别图像中的物体,并确定其位置。
实例分割:对图像中的每个物体进行像素级别的分割。
人体姿态估计:检测图像中人体的关键点位置。
场景理解:分析图像内容并生成描述。
COCO 数据集在计算机视觉领域被广泛使用,因为它提供了大量且多样化的标注数据,有助于训练和评估不同的视觉模型。

COCO数据集总体约20G,整个数据集数据量大,标签多,能够做到对多达80个标签进行检测,但是相应的,检测的准确度有所下降,为了满足用户在不同场景下对模型识别种类和识别精度的取舍权衡,Petoi实现了对COCO数据集中任意数量的标签进行数据集重新制作。

下面将讲解如何制作属于您自己的COCO数据集。

COCO数据集下载

将下列代码复制为复制为coco_download.py,脚本位于COCO数据集的目标位父目录。

执行:

python .\coco_download.py

如果您在下载的过程中发现由于网络不稳定或者其他原因没有办法完整下载COCO数据集,那么请手动下载COCO数据集并将压缩包解压到相应位置。

直接在浏览器输入url网址即可下载压缩包

保证最后的数据集格式为:

使用下面的脚本对COCO数据集进行提取,可以命名为coco_remake.py

脚本运行前请将src_coco_path修改为COCO2017的路径,将dst_coco_path修改为DIY_COCO数据集的路径。将src_yaml_file修改为COCO2017官方YAML文件的路径,将dst_yaml_file修改为DIY_COCO的YAML文件路径。如果您的数据集是手动下载的,您还需要手动下载COCO.yaml。下载链接如下:

https://github.com/ultralytics/ultralytics/blob/main/ultralytics/cfg/datasets/coco.yaml

您可以将DIY_COCO的YAML文件写成如下样式,其中标签需要选取COCO数据集里本来就存在的标签。但是标签的顺序不必与COCO数据集相同,只需要从0开始计数即可。

该YAML文件包括了train和val两个目录的路径以及标签顺序和对应标签。对于本地训练,请使用绝对路径。对于云端训练,需要将该YAML文件修改为如下格式:

并且,在云端训练时,一定要遵从下面这种数据集的组织形式:

再结合模型训练部分的步骤,您就可以训练出属于您自己的基于COCO部分数据集的模型啦!

Last updated

Was this helpful?