网站首页 > 技术文章 正文
一、COCO数据集格式
COCO(Common Objects in Context)数据集是一个大型的、用于对象检测、分割和图像标注的数据集。COCO数据集的格式与VOC数据集有所不同,它使用JSON格式来存储标注信息。
COCO数据集的主要组成部分包括:
- Images:包含所有的图像文件,通常是JPEG格式。每个图像都有一个唯一的ID。
- Annotations:包含所有的标注信息,存储在一个或多个JSON文件中。每个标注文件包含以下信息:
- images:图像的信息,包括图像的ID、文件名、宽度和高度。
- annotations:每个对象的标注信息,包括:
- id:标注的唯一ID。
- image_id:该标注对应的图像ID。
- category_id:对象的类别ID。
- segmentation:对象的分割掩码(多边形格式)。
- bbox:对象的边界框,格式为[x, y, width, height]。
- area:对象的面积。
- iscrowd:是否为拥挤场景中的对象。
- Categories:对象的类别信息,包括类别ID、名称和超类别(如果有)。
一个典型的COCO数据集目录结构如下:
coco/
├── images/
│ ├── train2017/
│ ├── val2017/
│ └── test2017/
├── annotations/
│ ├── instances_train2017.json
│ ├── instances_val2017.json
│ ├── person_keypoints_train2017.json
│ ├── person_keypoints_val2017.json
│ ├── captions_train2017.json
│ └── captions_val2017.json
└── ...
COCO数据集的JSON标注文件示例如下:
{
"images": [
{
"id": 1,
"file_name": "0000000001.jpg",
"width": 640,
"height": 480
},
...
],
"annotations": [
{
"id": 1,
"image_id": 1,
"category_id": 1,
"segmentation": [[x1, y1, x2, y2, ...]],
"bbox": [x, y, width, height],
"area": 2304,
"iscrowd": 0
},
...
],
"categories": [
{
"id": 1,
"name": "person",
"supercategory": "person"
},
...
]
}
COCO数据集广泛应用于计算机视觉领域,特别是在对象检测、实例分割和语义分割的研究和实践中。
二、VOC 数据集格式
VOC(Visual Object Classes)数据格式是一种用于目标检测和图像分割任务的标注格式,由PASCAL VOC挑战赛推广。这种格式主要用于存储图像及其对应的标注信息,如目标类别和边界框。VOC格式数据后缀为xml
VOC数据格式通常包含以下几个部分:
- JPEGImages:这个文件夹包含所有的图像文件,通常是JPEG格式。
- Annotations:这个文件夹包含每个图像的标注文件,通常是XML格式。每个XML文件对应一个图像,并包含以下信息:
- filename:图像文件的名称。
- size:图像的尺寸,包括宽度、高度和通道数。
- object:图像中的目标对象,每个对象包含以下信息:
- name:目标的类别名称。
- bndbox:目标的边界框,包括左上角和右下角的坐标(xmin, ymin, xmax, ymax)。
- difficult:目标是否难以检测的标志。
- ImageSets:这个文件夹包含用于训练和测试的图像列表,通常分为以下几个文件:
- Main:包含用于分类任务的图像列表。
- Segmentation:包含用于分割任务的图像列表。
- Layout:包含用于人体布局任务的图像列表。
- Action:包含用于动作识别任务的图像列表。
- SegmentationClass:这个文件夹包含用于分割任务的类别标注图像。
- SegmentationObject:这个文件夹包含用于分割任务的对象标注图像。
一个典型的VOC数据集目录结构如下:
VOCdevkit/
├── VOC2007/
│ ├── JPEGImages/
│ ├── Annotations/
│ ├── ImageSets/
│ │ ├── Main/
│ │ ├── Segmentation/
│ │ ├── Layout/
│ │ └── Action/
│ ├── SegmentationClass/
│ └── SegmentationObject/
└── VOC2012/
├── JPEGImages/
├── Annotations/
├── ImageSets/
│ ├── Main/
│ ├── Segmentation/
│ ├── Layout/
│ └── Action/
├── SegmentationClass/
└── SegmentationObject/
VOC数据格式广泛应用于计算机视觉领域,特别是在目标检测和图像分割的研究和实践中。
三、YOLO数据集格式
YOLO(You Only Look Once)是一种流行的实时对象检测算法,其数据集格式相对简单,主要用于训练和评估YOLO模型。YOLO数据集格式通常包含以下几个部分:
- Images:包含所有的图像文件,通常是JPEG或PNG格式。
- Labels:包含每个图像对应的标注文件,通常是文本格式(TXT文件)。每个标注文件的名称与对应的图像文件名称相同,但扩展名为.txt。
每个标注文件中的每一行代表一个对象,格式如下:
<object-class> <x-center> <y-center> <width> <height>
- <object-class>:对象的类别ID(从0开始)。
- <x-center>:对象边界框中心点的x坐标,相对于图像宽度的比例(0到1之间)。
- <y-center>:对象边界框中心点的y坐标,相对于图像高度的比例(0到1之间)。
- <width>:对象边界框的宽度,相对于图像宽度的比例(0到1之间)。
- <height>:对象边界框的高度,相对于图像高度的比例(0到1之间)。
例如,假设一个图像文件名为image001.jpg,其对应的标注文件名为image001.txt,内容可能如下:
0 0.45 0.67 0.23 0.34
1 0.12 0.34 0.15 0.20
这表示图像中有两个对象:
- 第一个对象的类别ID为0,边界框中心点坐标为(0.45, 0.67),宽度为0.23,高度为0.34。
- 第二个对象的类别ID为1,边界框中心点坐标为(0.12, 0.34),宽度为0.15,高度为0.20。
YOLO数据集的目录结构通常如下:
dataset/
├── images/
│ ├── train/
│ │ ├── image001.jpg
│ │ ├── image002.jpg
│ │ └── ...
│ ├── val/
│ │ ├── image101.jpg
│ │ ├── image102.jpg
│ │ └── ...
│ └── test/
│ ├── image201.jpg
│ ├── image202.jpg
│ └── ...
└── labels/
├── train/
│ ├── image001.txt
│ ├── image002.txt
│ └── ...
├── val/
│ ├── image101.txt
│ ├── image102.txt
│ └── ...
└── test/
├── image201.txt
├── image202.txt
└── ...
YOLO数据集格式简单且高效,非常适合用于训练和评估YOLO模型。
格式转换
在 MMDetection 和 MMYOLO 里,几乎所有的训练都是依靠 COCO JSON 标注文件,其他的数据集格式需要提前转换为COCO格式。
常见数据集
常见的开源数据集网站包括 Hugging Face、Kaggle 和 AI Studio
猜你喜欢
- 2024-10-03 物体检测之旅(二)我们能从一阶段的物体检测器中学到了什么?
- 2024-10-03 位置蒸馏:针对目标检测提高定位精度的知识蒸馏
- 2024-10-03 目标检测中的数据增强方法(附详细代码讲解)
- 2024-10-03 「AI实战」手把手教你训练自己的目标检测模型(SSD篇)
- 2024-10-03 教你从零开始做一个基于深度学习的交通标志识别系统
- 2024-10-03 深度学习之图像目标检测速览 图像检测与目标跟踪技术
- 2024-10-03 【动手学计算机视觉】第一讲:图像预处理之图像去噪
- 2024-10-03 汽车冲压件缺陷预测分析助力产品前期开发应用!
- 2024-10-03 又快又准确,新目标检测器速度可达每秒200帧
- 2024-10-03 在单机上快速、精确的100000类别的检测
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- oraclesql优化 (66)
- 类的加载机制 (75)
- feignclient (62)
- 一致性hash算法 (71)
- dockfile (66)
- 锁机制 (57)
- javaresponse (60)
- 查看hive版本 (59)
- phpworkerman (57)
- spark算子 (58)
- vue双向绑定的原理 (68)
- springbootget请求 (58)
- docker网络三种模式 (67)
- spring控制反转 (71)
- data:image/jpeg (69)
- base64 (69)
- java分页 (64)
- kibanadocker (60)
- qabstracttablemodel (62)
- java生成pdf文件 (69)
- deletelater (62)
- com.aspose.words (58)
- android.mk (62)
- qopengl (73)
- epoch_millis (61)
本文暂时没有评论,来添加一个吧(●'◡'●)