voc2012数据集详解
https://blog.csdn.net/wenxueliu/article/details/80327316
在目标检测中,如果对数据不了解,在数据集处理这块有时候会看得云里雾里。比如
- trainval 这个词到底指什么
- 标签中的 bbox 中的 ymax, xmax, ymin, xmin 取值范围是多少,如何计算的?
- 图片与标签是如何关联起来的等等
本文的目的:
- 明白数据集是如何组织的
- TensorFlow 是如何对数据做处理的。
数据集详解
在目标检测中,主要用到了 Annotations,ImageSets,JPEGImages
其中 ImageSets/Main/ 保存了具体数据集的索引,Annotations 保存了标签数据, JPEGImages 保存了图片内容。
ImageSets
ImageSets/Main/ 文件夹以 , {class}_trainval.txt {class}_val.txt 的格式命名。 train.txt val.txt 例外
包括 Action,Layout,Main,Segmentation 四个文件夹
- Action:存放的是人的动作(例如running、jumping等等,这也是VOC challenge的一部分)
- Layout:存放的是具有人体部位的数据(人的head、hand、feet等等,这也是VOC challenge的一部分
- Main:存放的是图像物体识别的数据,总共分为20类。
- Segmentation:存放的是可用于分割的数据。
ImageSets/Main/ 文件夹以 , {class}_trainval.txt {class}_val.txt 的格式命名。 train.txt val.txt 例外
aeroplane_train.txt
aeroplane_trainval.txt
aeroplane_val.txt
bicycle_train.txt
bicycle_trainval.txt
bicycle_val.txt
bird_train.txt
bird_trainval.txt
bird_val.txt
boat_train.txt
boat_trainval.txt
boat_val.txt
bottle_train.txt
bottle_trainval.txt
bottle_val.txt
bus_train.txt
bus_trainval.txt
bus_val.txt
car_train.txt
car_trainval.txt
car_val.txt
cat_train.txt
cat_trainval.txt
cat_val.txt
chair_train.txt
chair_trainval.txt
chair_val.txt
cow_train.txt
cow_trainval.txt
cow_val.txt
diningtable_train.txt
diningtable_trainval.txt
diningtable_val.txt
dog_train.txt
dog_trainval.txt
dog_val.txt
horse_train.txt
horse_trainval.txt
horse_val.txt
motorbike_train.txt
motorbike_trainval.txt
motorbike_val.txt
person_train.txt
person_trainval.txt
person_val.txt
pottedplant_train.txt
pottedplant_trainval.txt
pottedplant_val.txt
sheep_train.txt
sheep_trainval.txt
sheep_val.txt
sofa_train.txt
sofa_trainval.txt
sofa_val.txt
train.txt
train_train.txt
train_trainval.txt
train_val.txt
trainval.txt
tvmonitor_train.txt
tvmonitor_trainval.txt
tvmonitor_val.txt
val.txt
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- {class}_train.txt 保存类别为 class 的训练集的所有索引,每一个 class 的 train 数据都有 5717 个。
- {class}_val.txt 保存类别为 class 的验证集的所有索引,每一个 class 的val数据都有 5823 个
- {class}_trainval.txt 保存类别为 class 的训练验证集的所有索引,每一个 class 的val数据都有11540 个
每个文件包含内容为
2011_003194 -1
2011_003216 -1
2011_003223 -1
2011_003230 1
2011_003236 1
2011_003238 1
2011_003246 1
2011_003247 0
2011_003253 -1
2011_003255 1
2011_003259 1
2011_003274 -1
2011_003276 -1注:1代表正样本,-1代表负样本。
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
VOC2012/ImageSets/Main/train.txt 保存了所有训练集的文件名,从 VOC2012/JPEGImages/ 找到文件名对应的图片文件。VOC2012/Annotations/ 找到文件名对应的标签文件
VOC2012/ImageSets/Main/val.txt 保存了所有验证集的文件名,从 VOC2012/JPEGImages/ 找到文件名对应的图片文件。VOC2012/Annotations/ 找到文件名对应的标签文件
读取 JPEGImages 和 Annotation 文件转换为 tf 的 Example 对象,写入 {train|test}{index}_of{num_shard} 文件。每个文件写的 Example 的数量为 total_size/num_shard。(不同数据集可以适当调节 num_shard 来控制每个输出文件的大小)
Annotations
文件夹中文件以 {id}.xml (id 保存在 VOC2012/ImageSets/Main/文件夹 ) 格式命名的 xml 文件,保存如下关键信息
- 物体 label : name ,如下例子为 person
- 图片尺寸: depth, height, width
- 物体 bbox : bndbox 下 xmax, xmin, ymax, ymin
<annotation><filename>2009_001137.jpg</filename><folder>VOC2012</folder><object><name>person</name><bndbox><xmax>355</xmax><xmin>187</xmin><ymax>334</ymax><ymin>121</ymin></bndbox><difficult>0</difficult> //目标是否难以识别(0表示容易识别)<occluded>0</occluded><pose>Unspecified</pose> //拍摄角度<truncated>0</truncated> //是否被截断(0表示完整)</object><object><name>pottedplant</name><bndbox><xmax>500</xmax><xmin>376</xmin><ymax>261</ymax><ymin>1</ymin></bndbox><difficult>0</difficult><occluded>1</occluded><pose>Unspecified</pose><truncated>1</truncated></object><segmented>1</segmented><size><depth>3</depth><height>334</height><width>500</width></size><source><annotation>PASCAL VOC2009</annotation><database>The VOC2009 Database</database><image>flickr</image></source></annotation>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
JPEGImages
以 2009_001137.jpg 为例,解码之后获取 image_data(图片内容的二进制),height, width
数据集转换为 TF Record
以上面例子为例,最终的 TFRecord 为
TF Example
{
'filename' : 'VOC{year}/JPEGImages/{id}.jpg'
'height' : height
'width' : width
'classes' : [classes.index(person), classes.index(person)]
'y_mins' : [float(121)/334, float(1)/334] # 各个 object 的 ymin
'x_mins' : [float(187)/500, float(376)/500]
'y_maxes' : [float(334)/334, float(261)/334]
'x_maxes' : [ float(355)/500, float(500)/500]
'encoded' : '图片内容二进制'
}其中classes = ["aeroplane", "bicycle", "bird", "boat", "bottle", "bus", "car", "cat","chair", "cow", "diningtable", "dog", "horse", "motorbike", "person","pottedplant", "sheep", "sofa", "train", "tvmonitor"
]注:difficult = 1 的直接跳过,不进行处理。
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
以上为将一张图片及标签转为 TF Example,对于整个数据集,依次遍历数据集即可。
voc2012数据集详解相关推荐
- 全卷积神经网路【U-net项目实战】LUNA 2016 数据集详解
文章目录 1.LUNA 2016 数据集详解 2.mdh数据格式详解 3.python读取mdh的方法 4.annotations.csv坐标转换 5.LUNA16数据集肺结节显示 1.LUNA 20 ...
- LUNA 2016 数据集详解
LUNA 2016 数据集详解 LUNA16数据集的由来 LUNA 2016 数据集来自2016年LUng Nodule Analysis比赛,这里是其官方网站. LUNA16数据集是最大公用肺结节数 ...
- ILSVRC2015_VID数据集详解
数据集下载地址:http://bvisionweb1.cs.unc.edu/ilsvrc2015/ILSVRC2015_VID.tar.gz 总说: 数据集包括3862 snippets用于训练,55 ...
- KITTI数据集详解和评价标准
from: https://blog.csdn.net/Solomon1558/article/details/70173223 摘要:本文融合了Are we ready for Autonomous ...
- 从手写数字识别入门深度学习丨MNIST数据集详解
就像无数人从敲下"Hello World"开始代码之旅一样,许多研究员从"MNIST数据集"开启了人工智能的探索之路. MNIST数据集(Mixed Natio ...
- 汇总 | 深度学习中图像语义分割基准数据集详解
点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 汇总图像语义分割那些质量最好的数据集与常用benchmark数据集 ...
- YOLOv5训练自己的数据集详解
入门小菜鸟,希望像做笔记记录自己学的东西,也希望能帮助到同样入门的人,更希望大佬们帮忙纠错啦~侵权立删. 目录 一.YOLOv5源码下载 二.环境配置 三.创建数据集 四.更改配置 1.coco128 ...
- 【详解】NLP之常用数据集详解
GLUE数据集合的介绍: 自然语言处理(NLP)主要自然语言理解(NLU)和自然语言生成(NLG).GLUE(General Language Understanding Evaluation)由纽约 ...
- Google Open Images Dataset V4 图片数据集详解1-CSV与图片关系
今天我们来了解一下google 的Open Images Dataset V4,它的网址是这个:https://storage.googleapis.com/openimages/web/index. ...
- MS COCO数据集详解
这是我的推广信息,以激励自己更好的分享自己的知识和经验!也希望看到的你能够多多支持,谢谢! 1. 滴滴云AI大师: 目前滴滴云正在大力推广自己的云计算服务,需要购买的朋友们用我的AI大师码 「2049 ...
最新文章
- Android Camera 预览拉伸
- OpsRamp推出以服务为中心的AIOps和云监控功能
- JDBC通过连接池链接数据库总是失败的解决办法
- 科普:Windows下Netcat使用手册
- selenium headless报错Message: unknown error: failed to wait for extension background page to load
- 怎么用ubuntu进入python_ubuntu 下python环境的切换使用
- opencv-api morphologyEx
- tensorflow中协调器 tf.train.Coordinator 和入队线程启动器 tf.train.start_queue_runners
- windows环境下面安装neo4j出错记录
- MongoDB 之聚合函数查询统计
- angular跳转指定页面_angularjs,前端_怎么设置登录成功后跳转到相应的页面,angularjs,前端 - phpStudy...
- 【数据处理】——利用Excel VBA批量将详细地址转换成省市区三级行政区划
- 4600u黑苹果 r5_黑苹果集显hd4400、hd4600显卡Clover引导驱动方法教程
- 十万火急的数据采集项目,爬虫代理测试对比
- ActiveMQ 反序列化漏洞 (CVE-2015-5254)
- SCI论文撰写和投稿过程的详细介绍 - 易智编译EaseEditing
- js android 复制粘贴板,js实现复制到粘贴板方法
- 乡村少年宫计算机教师简介,乡村少年宫教师感言
- 【图像原理】rgb数字图片概念
- 特斯拉员工年薪曝光:软件工程师 109 万元
热门文章
- SWAT模型在水文水资源、面源污染模拟中的实践技术应用
- JavaScript读取JSON文件
- 如何将word文档转换成txt记事本格式?
- Redis客户端工具-AnotherRedisDesktopManager
- 游戏必备组件有哪些_抖音直播互动游戏有哪些?直播间热场互动必备的5个小游戏...
- stata15中文乱码_Stata14打开13数据乱码处理办法
- python音乐制作_Python实现音乐的剪辑
- 敏感词过滤golang
- 动感标题文字快闪(闪白特效)开场PR模板MOGRT
- c语言windows停止工作,win7系统一打开便签就提示停止工作的解决方法