目标检测常用的数据集格式

news/2024/7/10 0:58:44 标签: 目标检测, 机器学习, voc, coco, yolo

目标检测领域,有三种常用的数据集:

数据集标注文件格式bbox格式
vocxmlxmin, ymin, xmax, ymax:
bbox左上角(xmin, ymin)和右下角(xmax, ymax)的坐标
cocojsonx, y, w, h:
bbox左上角坐标(x, y)以及宽(w)和高(h)
yolotxtxcenter, ycenter, w, h:
bbox的中心x坐标(xcenter)、y坐标(ycenter)以及宽度(w)和高度(h)
xcenter, w相对图片实际宽度W做了归一化,即:xcenter/W, w/W
ycenter, h相对图片图片高度H做了归一化,即:ycenter/H, h/H

voc_8">1. voc格式

1.1 文件结构

该文件结构指的是从 voc 官网下载的数据的文件结构(不同年份的数据集略有不同,但结构大致相同)。

VOCdevkit # 根目录

  • VOCXXXX # 不同年份的数据集,目前有 2005 年到 2012 年的
    • Annotations # 存放 xml 格式的标注文件,与 JPEGImages 下的图片一一对应,每个 xml 文件都描述一张图片的信息
    • ImageSets # 存放的是 txt 文件,文件中每一行包含一张图片的名称以及 ±1 表示正负样本
      • Layout # 可用于检测人体部位的数据(train.txt 用于训练的图片、trainval.txt用于训练和验证的图片合集、val.txt 用于验证的图片,下同)
      • Main # 可用于目标检测的数据
      • Segmentation # 可用于图像分割的数据
    • JPEGImages # 存放图片
    • SegmentationClass # 存放按照类别分割的图片,可用于语义分割
    • SegmentationObject # 存放按照个体分割的图片,可用于实例分割

1.2 标注文件

voc格式的数据集使用 xml 文件标注图片及其bbox信息,一张图片对应个xml文件,以 Main 中其中一个xml文件的部分内容为例:

<annotation>
	<folder>VOC2007</folder>  <!--图片所在文件夹(实际用不到)-->
	<filename>000005.jpg</filename> <!--图片文件名-->

	<source> <!--图片来源-->
		<database>The VOC2007 Database</database>
		<annotation>PASCAL VOC2007</annotation>
		<image>flickr</image>
		<flickrid>325991873</flickrid>
	</source>

	<owner> <!--图片拥有者-->
		<flickrid>archintent louisville</flickrid>
		<name>?</name>
	</owner>

	<size> <!--图片宽度、高度、通道数量-->
		<width>500</width>
		<height>375</height>
		<depth>3</depth>
	</size>

	<segmented>0</segmented> <!--是否用于分割-->

	<object> <!--标注目标1-->
		<name>chair</name> <!--物体类别-->
		<pose>Rear</pose> <!--拍摄角度: front, rear, left, right, unspecified-->
		<truncated>0</truncated> <!--目标是否被截断-->
		<difficult>0</difficult> <!--检测难易程度-->
		<bndbox> <!--标注目标1的 bbox-->
			<xmin>263</xmin>
			<ymin>211</ymin>
			<xmax>324</xmax>
			<ymax>339</ymax>
		</bndbox>
	</object>

	<object> <!--标注目标2的 bbox-->
		<name>chair</name>
		<pose>Unspecified</pose>
		<truncated>0</truncated>
		<difficult>0</difficult>
		<bndbox>
			<xmin>165</xmin>
			<ymin>264</ymin>
			<xmax>253</xmax>
			<ymax>372</ymax>
		</bndbox>
	</object>

	<!--其余标注信息结构同上-->
</annotation>

coco_85">2. coco格式

2.1 文件结构

该文件结构指的是从 coco 官网下载的数据的文件结构。

  • annotations_XXXX # 存放 json 格式的标注文件,一个 json 文件里面包含了多张图片的相关信息
    • annotations
      • caption_xxxx.json # 存储图像标注用于描述图像
      • instances_xxxx.json # 用于目标检测的标注信息
      • person_keypoints_xxxx.json # 目标上的关键点信息
  • trainXXX # 存放训练集图片
  • valXXXX # 存放验证集图片

2.2 标注文件

coco格式的数据集使用 json 文件标注图片及其 bbox 信息,与voc格式一张图片对应一个xml文件不同,coco格式中一个 json 文件里面存放了若干张图片的信息。以 instances_xxxx.json 中的部分内容为例:

{
    "info": { #数据集描述信息
        "description": "COCO 2017 Dataset", # 数据集描述
        "url": "http://cocodataset.org", # 数据集地址
        "version": "1.0", # 数据集版本
        "year": 2017, # 数据集年份
        "contributor": "COCO Consortium", # 数据集提供者
        "date_created": "2017/09/01" # 数据集创建日期
    },
    "licenses": [ # 许可协议
        {
            "url": "http://creativecommons.org/licenses/by-nc-sa/2.0/", # 协议链接
            "id": 1, # 协议 id ,下面将会用到
            "name": "Attribution-NonCommercial-ShareAlike License" # 协议名称
        }
        # 其他许可协议格式同上
    ],
    "images": [ # 图片信息
        {
            "license": 4, # 使用的许可协议
            "file_name": "000000397133.jpg", # 图片文件名
            "coco_url": "http://images.cocodataset.org/val2017/000000397133.jpg", # 图片在 coco 上的url
            "height": 427, # 图片高度
            "width": 640, # 图片宽度
            "date_captured": "2013-11-14 17:02:52", # 图片获取日期
            "flickr_url": "http://farm7.staticflickr.com/6116/6255196340_da26cf2c9e_z.jpg", 图片在 flickr 上的url
            "id": 397133 # 图片 id
        }
        # 其他图片信息格式同上
    ],
    "annotations": [ # 标注信息
        {
            "segmentation": [ # 实例分割时的边界点坐标[x1, y1, x2, y2 …… xn, yn]
                [
                    510.66,
                    423.01,
                    ……,
                    510.45,
                    423.01
                ]
            ],
            "area": 702.1057499999998, # 区域面积
            "iscrowd": 0, # 目标是否被遮盖
            "image_id": 289343, # 标注所在的图片的 id 编号(与上面 images 中的对应)
            "bbox": [ # bbox框 [左上角x, 左上角y, 宽度, 高度]
                473.07,
                395.93,
                38.65,
                28.67
            ],
            "category_id": 18, # 被标注物体对应的类别 id 编号(与下面 categories 中的对应)
            "id": 1768 # 该标注的 id 编号(唯一)
        }
        # 其他标注信息格式同上
    ],
    "categories": [ # 类别描述
        {
            "supercategory": "person", # 该类别所属的大类
            "id": 1, # 类别 id 编号
            "name": "person" # 类别名字
        }
        # 其他标注信息格式同上
    ]
}

yolo_170">3. yolo格式

3.1 文件结构

使用yolo时,默认的文件结构如下(不同数据集会略有不同,但结构大致相同):

XXXX # 根目录,视使用的数据集决定

  • images # 存放图片,已划分为训练集、验证集、测试集(部分数据集无测试集)
    • train
    • val
    • test
  • labels # 存放的是 txt 文件,每个txt文件对应一张图片,文件中每一行包含一个bbox的相关信息
    • train
    • val
    • test

3.2 标注文件

yolo格式的数据集使用 txt 文件标注图片bbox信息,一张图片对应一个txt文件,txt文件中的每一行都标注了一个bbox的相关信息。标注格式如下:

<类别索引> <bbox的中心x坐标> <bbox的中心y坐标> <bbox的宽度> <bbox的高度>

  • 信息之间以空格分割
  • bbox的中心xy坐标以及宽度、高度都相对于图片的实际宽度W和高度H做了归一化

以其中一个txt文件的部分内容为例:

45 0.479492 0.688771 0.955609 0.5955
# 标注目标1的 bbox的类别索引是45,中心x坐标是0.479492, 中心y坐标是0.688771, 宽度是0.955609, 高度是0.5955
45 0.736516 0.247188 0.498875 0.476417
# 标注目标2的 bbox
# 其余标注信息结构同上

http://www.niftyadmin.cn/n/4926361.html

相关文章

【Java并发编程】再现ABA问题与解决ABA问题

文章目录 1. 什么是ABA问题2. 如何解决ABA问题 1. 什么是ABA问题 如果另一个线程把值A&#xff0c;先修改为B&#xff0c;再修改为A。当前线程看到的值还是A&#xff0c;并不知道值中间是否发生过变化。这就是ABA问题。 举个&#x1f330;&#xff1a;在你非常渴的情况下你发…

资深媒体人宋繁银加入《数据猿》任总编辑,全面负责公司整体内容工作

大数据产业创新服务媒体 ——聚焦数据 改变商业 2023年7月北京&#xff0c;《数据猿》宣布正式任命宋繁银为总编辑&#xff0c;全面负责公司整体内容工作。此次重要的人事任命标志着《数据猿》的发展迈上了一个新的台阶&#xff0c;对于《数据猿》团队而言&#xff0c;不仅是一…

快速开发平台 WebBuilder 9 发布

WebBuilder 是一款强大&#xff0c;全面和高效的应用开发和运行平台。基于浏览器的集成开发环境&#xff0c;智能化的设计&#xff0c;能轻松完成常规桌面应用和面向手机等的移动应用开发。高效、稳定和可扩展的特点&#xff0c;适合复杂企业级应用的运行。跨平台、数据库和浏览…

【JS自用模板】自动点击选课的操作模板

以激动点击课程为案例复习一下基本前端&#xff0c;容易涉及的问题包括如何提取object类的数字&#xff0c;setTimeout为什么不起作用&#xff1f; 具体思路是&#xff0c;此处会立刻选中符合条件的页面元素打开&#xff0c;然后1小时后会刷新页面&#xff0c;相应地播放页面也…

高中教师能去美国做访问学者吗?

美国作为世界上高等教育水平较高的国家之一&#xff0c;吸引了众多学者前往交流学习。那么高中教师是否能够成为美国访问学者&#xff0c;这是当然的&#xff0c;高中老师是可以出国访学的&#xff0c;但是出国做访问学者会涉及到多方面的因素。 首先&#xff0c;教师个人的学术…

拜读苏神-1-深度学习+文本情感分类

一、闲聊神经网络与深度学习 参考链接&#xff1a;https://www.kexue.fm/archives/3331 分类模型本质上是在做拟合——模型其实就是一个函数&#xff08;或者一簇函数&#xff09;&#xff0c;里边有一些待定的参数&#xff0c;根据已有的数据&#xff0c;确定损失函数&#x…

[23] Instruct 3D-to-3D: Text Instruction Guided 3D-to-3D conversion

本文提出一种3D-to-3D转换方法&#xff1a;Instruct 3D-to-3D&#xff1b;借助预训练的Image-to-Image扩散模型&#xff0c;本文方法可以使各个视角图片的似然最大&#xff1b;本文方法显式地将source 3D场景作为condition&#xff0c;可以有效提升3D连续性和可控性。同时&…

IntelliJ IDEA如何重新弹出git身份验证窗口

1、点击File菜单—>点击Settings—>点击Appearance & Behavior—>点击System Settings—>点击Passwords—>选中Do not save, forget passwords after restart—>点击Apply—>点击OK&#xff0c;如下所示&#xff1a; 2、重启IntelliJ IDEA—>通过g…