前言
刚才给大家讲述了打标,这里是给大家介绍一下常见的数据集格式和内容。这篇文章并不会深入讲解数据集的构建流程,而是聚焦于深度学习中常见的数据集格式类型、它们的特点、适用任务以及典型代表,让大家对“数据怎么来的、怎么存的、怎么用的”有个基本认知。
一、常见深度学习数据集格式与典型代表
1. PASCAL VOC 格式
简介
PASCAL VOC(Visual Object Classes)是早期非常经典的目标检测与图像分类数据集格式,由英国牛津大学视觉几何组(Visual Geometry Group)提出,广泛用于目标检测、图像分类、语义分割等任务的基准测试。其标注以 XML 文件形式存储,结构清晰、易于解析,是许多高校与研究项目首选的数据组织方式。

图像信息
-
<folder>: img - 图像所在文件夹名为"img" -
<filename>: 1.jpg - 图像文件名为"1.jpg" -
<path>: /home/moon/桌面/img/1.jpg - 图像的完整路径 -
<source>: 数据库来源为"Unknown"(未知)
图像尺寸
-
<size>部分定义了图像尺寸:-
宽度: 640像素
-
高度: 480像素
-
深度: 3(通常表示RGB三通道)
-
目标对象
-
<segmented>: 0 - 表示该图像未进行分割 -
只有一个
<object>被标注:-
<name>: lajiao - 标注目标名称为"lajiao" -
<pose>: Unspecified - 目标姿态未指定 -
<truncated>: 0 - 目标未被截断 -
<difficult>: 0 - 目标难度级别为简单
-
边界框坐标
-
<bndbox>标签定义了目标的位置:-
xmin: 200 - 边界框左上角x坐标
-
ymin: 128 - 边界框左上角y坐标
-
xmax: 417 - 边界框右下角x坐标
-
ymax: 371 - 边界框右下角y坐标
-
特点
-
格式:每个图像对应一个同名的 XML 文件,记录图像尺寸、目标类别及边界框(Bounding Box)信息。
-
标注内容:包括图像路径、文件名、图像尺寸(宽、高、通道)、目标类别名称、以及每个目标的矩形框坐标(xmin, ymin, xmax, ymax)。
-
适用任务:目标检测、图像分类、部分语义分割任务。
-
优点:结构标准、易于人工编辑与程序解析,适合教学与小型项目。
-
缺点:不支持像素级精细标注(如实例分割),扩展性一般。
典型代表
-
PASCAL VOC 2007 / 2012 数据集:包含 20 个常见目标类别(如人、车、猫、狗等),广泛用于目标检测与分类任务的基准测试。
2. YOLO 格式(YOLO Annotation Format)
简介
YOLO(You Only Look Once)格式是专为 YOLO 系列目标检测模型设计的简洁标注格式,采用 TXT 文件 存储每个图像对应的所有目标信息。因其格式简单、解析高效,已成为工业界与学术界目标检测任务的主流标注格式之一。
注意:我们一般会用python脚本将打标好的VOC数据集转换成yolo进行训练

-
类别索引:0表示这个目标属于第1类(因为索引从0开始计数,所以 1对应第二类)。
-
中心x坐标:
0.485156表示目标边界框的中心在图像水平方向上的相对位置,大约处于图像宽度48.5156%的位置。 -
中心y坐标:
0.515625表示目标边界框的中心在图像垂直方向上的相对位置,大约处于图像高度51.5625%的位置。 -
边界框宽度:
0.335938表示目标边界框的宽度占整个图像宽度的33.5938%。 -
边界框高度:
0.502083表示目标边界框的高度占整个图像高度的50.2083%。
特点
-
格式:每个图像对应一个同名的 TXT 文件,每行表示一个目标,格式为:
class_id center_x center_y width height所有坐标值均为 相对于图像宽和高的归一化值(0~1)。
-
标注内容:包括目标类别索引(按类别文件顺序)、目标中心点相对坐标、目标框的相对宽度和高度。
-
适用任务:目标检测,特别是 YOLO 系列模型训练与推理。
-
优点:文件小、解析快、适合大规模数据集与工业部署;与 YOLO 框架天然契合。
-
缺点:缺少图像全局信息(如文件名、尺寸等需额外维护),对多任务(如分割)支持较弱。
典型代表
-
YOLOv3 / YOLOv4 / YOLOv5 / YOLOv8 等官方数据集:均采用此格式,如 COCO 转 YOLO、VOC 转 YOLO 的标注结果。
-
自定义数据集训练 YOLO 模型时,几乎均使用此格式进行标注与训练。
3. COCO 格式(Common Objects in Context)
简介
COCO(Common Objects in Context)是由微软发布的一个大规模、多任务、高质量的数据集与标注格式,支持 目标检测、关键点检测、实例分割、图像描述 等多种视觉任务。其 JSON 格式结构复杂但功能强大,是目前学术界与工业界最主流的多任务数据集格式之一。
注意:有大coco和小coco之分,如果一个数据集只用用一个json文件作为标签文件,那就是大coco

-
image:-
含义:表示被标注图像的文件名。
-
值:
"2.jpg",说明当前标注对应的是名为2.jpg的图像文件。
-
-
annotations:-
含义:是一个数组,用于存储对该图像中各个目标对象的标注详情。这里数组里只有一个元素,即对图像中一个目标的标注。
-
数组内对象:
-
label:-
含义:表示标注目标的类别名称。
-
值:
"lajiao",物体类别( 。
-
-
coordinates:-
含义:是一个对象,用于存储目标在图像中的位置和尺寸信息,采用类似边界框(bounding box)的方式来描述。
-
包含的子字段:
-
x:-
含义:边界框左上角的横坐标。
-
值:
264.762086513995。
-
-
y:-
含义:边界框左上角的纵坐标。
-
值:
248.22519083969468。
-
-
width:-
含义:边界框的宽度。
-
值:
219.0000000003。
-
-
height:-
含义:边界框的高度。
-
值:
243.0。
-
-
-
-
-
特点
-
格式:所有图像与标注信息统一存储在一个或多个 JSON 文件 中,结构包括:images(图像信息)、annotations(标注详情)、categories(类别定义)等。
-
标注内容:支持目标边界框(bbox)、分割掩码(segmentation)、关键点(keypoints)、类别 ID 等。
-
适用任务:目标检测、实例分割、关键点检测、图像 caption 等多任务学习。
-
优点:功能全面、扩展性强、支持复杂标注与多任务联合训练;社区与工具链(如 Detectron2、MMDetection)支持丰富。
-
缺点:JSON 结构复杂,解析与编辑门槛较高,不适合快速手工标注。
典型代表
-
COCO 2014 / 2017 数据集:包含超过 80 个目标类别,数万张图像,广泛应用于目标检测与实例分割任务的 SOTA 模型训练与评测。
-
众多 SOTA 目标检测模型(如 Mask R-CNN、Cascade R-CNN、DETR 等)均以 COCO 作为基准数据集。规樘数据集训练。
4. TFRecord 格式(TensorFlow Record)
简介
TFRecord 是 TensorFlow 官方推荐的高效二进制数据存储格式,用于将图像、标注及其他元数据序列化为统一的二进制文件,大幅提升数据读取与训练效率,特别适用于 TensorFlow 框架下的大规樘数据集训练。
特点
-
格式:二进制文件(.tfrecord),每个文件包含多个样本的序列化数据,通过 Example Protocol Buffer 结构存储。
-
标注内容:可灵活定义,通常包括图像数据(bytes)、图像尺寸、目标框、类别标签、以及其他自定义特征。
-
适用任务:所有深度学习任务(尤其是 TensorFlow 平台上的图像分类、检测、分割等)。
-
优点:读写速度快、适合大规模分布式训练,支持数据预处理流水线集成(如 tf.data API)。
-
缺点:二进制格式不可直接阅读,需通过解析工具或代码还原内容,对新手不友好。
典型代表
-
TensorFlow 官方模型库中的数据集(如 ImageNet、COCO-TFRecord 版本等)
-
使用 TensorFlow 进行大规模训练时的自定义数据集,通常优先转换为 TFRecord 格式以提升 IO 效率。
5. LMDB / LevelDB 格式
简介
LMDB(Lightning Memory-Mapped Database)与 LevelDB 是轻量级、高性能的 键值存储数据库格式,常用于将图像与标注信息以 键值对(key-value) 形式存储,特别适合对读取速度要求极高的场景,如 Caffe 框架中的数据输入。
特点
-
格式:二进制数据库文件,通过键(如图像文件名或索引)快速检索对应的图像数据与标注。
-
标注内容:通常图像以二进制形式存储,标注信息可以是单独文件或在同一数据库中以不同键存储。
-
适用任务:图像分类、目标检测(特别是在 Caffe 框架下)。
-
优点:读取速度极快、内存映射机制减少 IO 瓶颈,适合大规模数据集的高效加载。
-
缺点:非文本格式,不可直接查看与编辑,需通过专用工具或代码进行转换与访问。
典型代表
-
Caffe 框架训练时常用的数据格式,如 MNIST、CIFAR-10/100 等数据集常被转换为 LMDB 格式供 Caffe 直接读取。
-
部分学术研究与工业部署中,仍使用 LMDB 作为高效数据存储与读取方案。
三、总结
|
数据集格式 |
文件类型 |
适用任务 |
特点 |
典型代表 |
|---|---|---|---|---|
|
PASCAL VOC |
XML |
目标检测、分类、部分分割 |
结构标准、易编辑,适合教学与小型项目 |
VOC 2007 / 2012 |
|
YOLO |
TXT |
目标检测 |
格式简洁、解析高效,适合工业与 YOLO 系列模型 |
YOLOv3/v4/v5/v8 自定义数据集 |
|
COCO |
JSON |
目标检测、实例分割、关键点、描述 |
功能全面、支持多任务,社区支持强大 |
COCO 2014 / 2017 |
|
TFRecord |
二进制 (.tfrecord) |
所有(尤其 TensorFlow 平台) |
高效存储、适合大规模训练,需解析 |
TensorFlow 官方数据集 |
|
LMDB / LevelDB |
二进制数据库 |
图像分类、目标检测(Caffe) |
读取极快、适合高效加载,不可直接编辑 |
Caffe 框架数据集 |
希望你对这几个数据集格式有了初步的了解并能够自己去搜集相关资料做更深入的学习,上述评价言论纯属玩笑,大家不要当真。
选择合适的数据格式,不仅能提升标注与训练效率,还能为后续模型部署与工程化打下坚实基础。
1万+



被折叠的 条评论
为什么被折叠?



