VOC数据集介绍以及读取(目标检测object detection)

article/2025/10/29 18:22:50

VOC(Visual Object Classes)数据集是一个广泛使用的计算机视觉数据集,主要用于目标检测、图像分割和图像分类等任务。VOC数据集最初由英国牛津大学的计算机视觉小组创建,并在PASCAL VOC挑战赛中使用。

VOC数据集包含各种不同类别的标记图像,每个图像都有与之相关联的边界框(bounding box)和对象类别的标签。数据集中包括了20个常见的目标类别,例如人、汽车、猫、狗等。此外,VOC数据集还提供了用于图像分割任务的像素级标注。

VOC数据集涵盖了多个年度的发布,每个年度的数据集包含训练集、验证集和测试集。训练集用于模型的训练和参数优化,验证集用于模型的调参和性能评估,而测试集则用于最终模型的性能评估和比较。

在这里插入图片描述

VOC数据集下载的目录如下

  1. Annotations是用于目标检测的xml标注文件
  2. ImageSets是提前分好的train val test的txt文件,如果不提交比赛,可以自己写一个
  3. JPEGImages是原本的jpg图像
  4. 剩余两个均用于图像分割中

读取VOC数据集的一般流程(目标检测)
Annotations中的xml标注文件样式如下:

<annotation><folder>VOC2007</folder><filename>000001.jpg</filename><source><database>The VOC2007 Database</database><annotation>PASCAL VOC2007</annotation><image>flickr</image><flickrid>341012865</flickrid></source><owner><flickrid>Fried Camels</flickrid><name>Jinky the Fruit Bat</name></owner><size><width>353</width><height>500</height><depth>3</depth></size><segmented>0</segmented><object><name>dog</name><pose>Left</pose><truncated>1</truncated><difficult>0</difficult><bndbox><xmin>48</xmin><ymin>240</ymin><xmax>195</xmax><ymax>371</ymax></bndbox></object><object><name>person</name><pose>Left</pose><truncated>1</truncated><difficult>0</difficult><bndbox><xmin>8</xmin><ymin>12</ymin><xmax>352</xmax><ymax>498</ymax></bndbox></object>
</annotation>

xml中object标签下是关于检测框的坐标信息,(xmin,ymin)表示左上角,(xmax,ymax)表示右下角

其对应的图像如下:
在这里插入图片描述

通常采取的方式是

  1. 将xml文件转换为txt文本文件,每一行代表了一张图片的坐标信息和类别信息
  2. 读取txt文本文件放入dataset中

以下是xml转换为文本的python code

import xml.etree.ElementTree as ET
import osdef parse_rec(filename):print(filename)tree = ET.parse(filename)objects = []for obj in tree.findall('object'):obj_struct = {}difficult = int(obj.find('difficult').text)if difficult == 1:continueobj_struct['name'] = obj.find('name').textbbox = obj.find('bndbox')obj_struct['bbox'] = [int(float(bbox.find('xmin').text)),int(float(bbox.find('ymin').text)),int(float(bbox.find('xmax').text)),int(float(bbox.find('ymax').text))]objects.append(obj_struct)"""obj_struct:{'name': 'dog', 'bbox': [48, 240, 195, 371]}""""""objects: [{'name': 'dog', 'bbox': [48, 240, 195, 371]}, {'name': 'person', 'bbox': [8, 12, 352, 498]}]"""return objectsVOC_CLASSES = (    # always index 0'aeroplane', 'bicycle', 'bird', 'boat','bottle', 'bus', 'car', 'cat', 'chair','cow', 'diningtable', 'dog', 'horse','motorbike', 'person', 'pottedplant','sheep', 'sofa', 'train', 'tvmonitor')train_val_dataset = open('VOC_train_val.txt', 'r')
test_dataset = open('VOC_test.txt', 'r')train_val_file = open('myDataset_train_val', 'w')
test_file = open('myDataset_test', 'w')# 读取训练验证图像的名称
train_val_lines = train_val_dataset.readlines()
train_val_lines = [x[:-1].split(' ')[0] for x in train_val_lines]
# 读取测试图像的名称
test_lines = test_dataset.readlines()
test_lines = [x[:-1] for x in test_lines]Annotations = r'D:/Detection/VOC2007/VOCdevkit/VOC2007/Annotations/'
xml_files = os.listdir(Annotations)count = 0
for xml_file in xml_files:count += 1image_path = xml_file.split('.')[0] + '.jpg'results = parse_rec(Annotations + xml_file)# 理论不存在if len(results) == 0:continuewrite_line = image_pathfor result in results:class_name = result['name']name = VOC_CLASSES.index(class_name)bbox = result['bbox']write_line += ' '+str(bbox[0])+' '+str(bbox[1])+' '+str(bbox[2])+' '+str(bbox[3])+' '+str(name)write_line += '\n'if xml_file.split('.')[0] in train_val_lines:train_val_file.write(write_line)elif xml_file.split('.')[0] in test_lines:test_file.write(write_line)train_val_file.close()
test_file.close()

转后的txt文件如下:

000001.jpg 48 240 195 371 11 8 12 352 498 14
000002.jpg 139 200 207 301 18
000003.jpg 123 155 215 195 17 239 156 307 205 8
000004.jpg 13 311 84 362 6 362 330 500 389 6 235 328 334 375 6 175 327 252 364 6 139 320 189 359 6 108 325 150 353 6 84 323 121 350 6
000006.jpg 187 135 282 242 15 154 209 369 375 10 255 207 366 375 8 138 211 249 375 8
000008.jpg 192 16 364 249 8
000010.jpg 87 97 258 427 12 133 72 245 284 14
000011.jpg 126 51 330 308 7
000013.jpg 299 160 446 252 9
...

第一个表示图片的名称,接下来没5个数字看成一组,前四个分别为xmin,ymin,xmax,ymax,第五个为类别编号。


http://chatgpt.dhexx.cn/article/kDnoIYru.shtml

相关文章

Pascal VOC 数据集介绍

介绍Pascal VOC数据集&#xff1a; Challenge and tasks&#xff0c; 只介绍Detection与Segmentation相关内容。数据格式衡量方式voc2007, voc2012 Challenge and tasks 给定自然图片&#xff0c; 从中识别出特定物体。 待识别的物体有20类&#xff1a; personbird, cat, c…

VOC和COCO数据集

一.Pascal VOC&#xff08;Pascal Visual Object Classes&#xff09; Pascal VOC网址&#xff1a;http://host.robots.ox.ac.uk/pascal/VOC/ 查看各位大牛算法的排名的Leaderboards&#xff1a;http://host.robots.ox.ac.uk:8080/leaderboard/main_bootstrap.php 训练/验证数…

VOC数据集

VOC数据集 VOC数据集 tar格式VOC数据集的下载&#xff08;使用迅雷加快下载速度&#xff09;VOC 2007Annotations&#xff1a;包含了xml文件&#xff0c;描述了图片的各种信息&#xff0c;特别是目标的位置坐标ImageSets&#xff1a;主要关注Main文件夹的内容&#xff0c;里面的…

深度学习 — VOC数据集 处理工具类

文章目录 深度学习 — VOC 数据集 & 处理工具类一、数据集简介二、数据集内容1. Annotations1) VOC 数据集类别统计2) VOC 标注文件解析 2. ImageSets1) VOC数据集划分 3. JPEGImages4. SegmentationClass5. SegmentationObject 三 VOC 数据集工具类四、参考资料 转载请注明…

讲解目标检测数据集--------VOC数据集和COCO数据集的使用

仅供学习参考&#xff0c;如有不足&#xff0c;敬请指正 一&#xff1a;VOC数据集 VOC官方网站&#xff1a; http://host.robots.ox.ac.uk/pascal/VOC/ 一般情况下&#xff0c;大家使用2007和2012比较多 voc2007数据集地址&#xff1a; http://host.robots.ox.ac.uk/pasc…

VOC数据集解析 VOC2007解析

VOC数据是 PASCAL VOC Challenge 用到的数据集&#xff0c;官网&#xff1a;http://host.robots.ox.ac.uk/pascal/VOC/ 备注&#xff1a;VOC数据集常用的均值为&#xff1a;mean_RGB(122.67891434, 116.66876762, 104.00698793) pytorch上通用的数据集的归一化指标为&#x…

VOC2007数据集

官方下载地址&#xff1a; https://pjreddie.com/projects/pascal-voc-dataset-mirror/ 下面以voc2017为例 下载训练和验证集&#xff1a; http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCtrainval_06-Nov-2007.tar 下载测试集&#xff1a; http://host.robots.ox.ac.uk…

voc数据集格式详解

计算机视觉经常会用到voc数据集 以如下数据集为例 http://www.eecs.berkeley.edu/Research/Projects/CS/vision/grouping/semantic_contours/benchmark.tgz Annotations 包含着xml文件&#xff0c;就是利用roLabelImg进行标注 JPEGImages 里面就是原始的图片 train.txt和va…

PASCAL VOC数据集分析

PASCAL VOC数据集分析 PASCAL VOC为图像识别和分类提供了一整套标准化的优秀的数据集&#xff0c;从2005年到2012年每年都会举行一场图像识别challenge。 本文主要分析PASCAL VOC数据集中和图像中物体识别相关的内容。 在这里采用PASCAL VOC2012作为例子。下载地址为&#xff…

VOC数据集详解

VOC数据集可以用于目标检测、目标分割。 该文件夹下有三个子文件。分别为&#xff1a;ImageSets,JPEGImages,SegmentationClass JPEGImages该文件夹下一般放置原图&#xff1b; SegmentationClass存放标签文件&#xff1b; 该分割结果图是一个灰度图&#xff0c;例如属于飞机部…

VOC数据集介绍及构建自己的VOC格式目标检测数据集

文章目录 1、安装标注工具1.1 ubuntu linux 系统1.2 windows系统 2、labelimg使用方法3、标注结果文件说明3.1 Pascal VOC数据集介绍3.2 Pascal VOC格式3.3 YOLO格式说明 4、标注图片和结果文件整理4.1 Pascal VOC数据组织结构4.2 自定义数据集整理为Pascal VOC格式4.3 Pascal …

VOC数据集制作

VOC数据集制作 1 获取数据1.1 获取图片1.2 图片大小重置1.3 图片重命名 2 标记图片3 按照PascalVOC数据集的格式整理自己的数据4 划分训练集和测试集 1 获取数据 1.1 获取图片 对于数据的获取&#xff0c;可以是图片形式&#xff0c;也可以是视频形式&#xff0c;但最终将转化…

VOC数据集介绍

1、VOC数据集下载 ubuntu系统下打开终端输入命令即可下载 wget http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCtrainval_06-Nov-2007.tar wget http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCtest_06-Nov-2007.tar wget http://host.robots.ox.ac.uk/pascal/VOC/…

Voc数据集简述

文章目录 一、了解VOC1.1 voc数据集下载 二、VOC文件结构2.1 Annotations2.2 ImageSets2.3 JPEGImages2.4 SegmentationClass2.5 SegmentationObject 三、目标检测任务四、语义分割任务五、实例分割任务六、类别索引与名称对应关系 一、了解VOC 是一种数据集的格式——VOC格式…

【DataWhale Obj Dec Task01】目标检测基础

目标检测的基本概念 报名参加datawhale的目标检测组队学习&#xff0c;虽然做objdec有一段时间了&#xff0c;但是还没有系统的记录过自己的学习历程&#xff0c;就借此机会记录一下自己的感想和经历吧&#xff0c;就当是记笔记了。 理解 目标检测实际上也是一种分类算法&am…

【目标检测】VOC数据集介绍

数据集介绍 VOC数据集是目标检测领域最常用的标准数据集之一&#xff0c;在类别上可以分为4大类&#xff0c;20小类 Annotations 进行 detection 任务时的标签文件&#xff0c;xml 形式&#xff0c;文件名与图片名一一对应ImageSets 包含三个子文件夹 Layout、Main、Segmentat…

VOC数据集简介与制作

一、VOC数据集简介 1.1 VOC的任务 PASCAL VOC 挑战赛主要有 Object Classification &#xff08;分类&#xff09;、Object Detection&#xff08;检测&#xff09;、Object Segmentation&#xff08;分割&#xff09;、Human Layout、Action Classification 这几类子任务。 …

详解 VOC 数据集

本视频配套视频链接&#xff1a;https://www.bilibili.com/video/BV1ZL4y1p7Cz/ 我们先来介绍一个经典的数据集&#xff1a;VOC 数据集。Visual Object Class 的首字母缩写&#xff0c;它的官方地址为 http://host.robots.ox.ac.uk/pascal/VOC/。 虽然现在大家更倾向于使用我…

测试报告编写,测试结果编写

测试报告&#xff0c;就是向整个团队告诉你的测试情况&#xff0c;以及发现一些问题说明。 所以&#xff1a; 第一步&#xff0c;先告诉别人&#xff0c;你的测试结果&#xff0c;测试结果只有两种&#xff0c;测试通过/测试未通过。 第二步&#xff0c;写出这个需求的提测的…

软件测试项目测试报告总结

测试计划概念&#xff1a;就在软件测试工作实施之前明确测试对象&#xff0c;并且通过资源、时间、风险、测试范围和预算等方面的综合分析和规划&#xff0c;保证有效的实施软件测试。 需求挖掘的6个方面&#xff1a; 1、输入方面 2、处理方面 3、结果输出方面 4、性能需求…