开发者社区> 郭大瘦> 正文

深度学习图像分割(一)——PASCAL-VOC2012数据集(vocdevkit、Vocbenchmark_release)详细介绍

简介: 以后博客更新内容都会在oldpan.me中 PASCAL-VOC2012数据集介绍官网:http://host.robots.
+关注继续查看

以后博客更新内容都会在oldpan.me
PASCAL-VOC2012数据集介绍官网:http://host.robots.ox.ac.uk/pascal/VOC/voc2012/index.html
数据集下载地址:benchmark_RELEASE:下载地址 voc2012:下载地址

VOC2012数据集分为20类,包括背景为21类,分别如下:
- Person: person
- Animal: bird, cat, cow, dog, horse, sheep
- Vehicle: aeroplane, bicycle, boat, bus, car, motorbike, train
- Indoor: bottle, chair, dining table, potted plant, sofa, tv/monitor

这里写图片描述

这里只说与图像分割(segmentation)有关的信息,VOC2012中的图片并不是都用于分割,用于分割比赛的图片实例如下,包含原图以及图像分类分割和图像物体分割两种png图。图像分类分割是在20种物体中,ground-turth图片上每个物体的轮廓填充都有一个特定的颜色,一共20种颜色,比如摩托车用红色表示,人用绿色表示。而图像物体分割则仅仅在一副图中生成不同物体的轮廓颜色即可,颜色自己随便填充。

这里写图片描述

在FCN这篇论文中,我们用到的数据集即是基本的分割数据集,一共有两套分别是benchmark_RELEASE和VOC2012。
这里写图片描述

两套都包含了用于分割图片以及label信息。

1、首先看benchmark_RELEASE中的数据:

这里写图片描述

上图中红线标注的信息是我们需要用到的信息,其余的是一些备用信息和说明文档,在dataset中我们可以cls、img、inst分别为 图像分类分割 .mat 格式标注信息 、分割图像以及 图像物体分割 .mat标注信息。

下图为img中的图片:
这里写图片描述

至于什么是mat格式的信息,看后缀就可以看出是matlab中文件的一种格式,该格式的文件包含了对应分割图片的label位置信息以及图片的其他一些基础信息,下图是cls中挑取一个的信息:

这里写图片描述
打开上面的字段:
这里写图片描述
可以看到CategoriesPresent为12,表示该图片上的物体的分类标号是12,而Segmentation是500 × 375 的 uint8的数据,打开如下:

这里写图片描述

也就是说背景为0,而分割目标物体的像素点事12,注意这相当于一个一通道的灰度图,灰度值0-20分别表示图片中的各种物体标号(背景为0)

然后我们从inst中也挑选与cls对应分割图的信息出来:

这里写图片描述

可以看到与之前的cls中的一样,分类表示同样是12,但是打开segmentation看一下就会发现不同:

这里写图片描述

相应的像素点变为了1而不是12,说明在inst中的label信息是为了实现图像物体分割,只要在一幅图中将不同物体分割显示出来即可而不是对不同的物体进行类别标记。

再看从inst中取出的另一个例子:

这里写图片描述

可以看到有4,4,15,15,15,说明图片中有两类物体(在图像分类分割中,20类中的2类),然后我们打开segmentation看一下:

这里写图片描述
这里写图片描述
显然,像素点的范围是0-5,0代表背景,1-5代表图中的五个物体,但这里仅仅是分离出来这几个物体,但并不进行分类标记,如果从cls中打开的label,那么上面的1-5应该对应为4,4,15,15,15,要求标出具体的类别。

2、其次看一下VOC2012中的数据

这里写图片描述

VOC2012中的数据比较规整一些,其中Annotation中包含了对应图片的xml信息:
我们以下面的2007_000032.jpg为例
这里写图片描述

其Annotation中对应的xml信息为:

这里写图片描述

xml信息包含了该图片的基本信息,xml语言很易读,我们从中可以轻易得出这幅图片的一些基本信息,其中segmented一栏为1,这里的意思是这幅图用于分割(因为VOC2012中一共有10000+图,但并不都用于分割任务,有的用以物体标识或者动作识别等),若这一栏为0说明这幅图不是用于图像分割的。

这里写图片描述

因为VOC2012中的图片并不是都用于分割,所以需要txt文件信息来标记处哪些图片可以用于分割,写程序的时候就可以利用信息 train.txt 对图片进行挑选。train和val中的图片加一起一共2913张图。

这里写图片描述

SegmentationClass中的png图用于图像分割分类,下图中有两类物体,人和飞机,其中飞机和人都对应着特定的颜色,注意该文件夹中的图片为三通道彩色图,与之前单通道的灰度图不同。png图中对物体的分类像素不是0-20,而是对应着不同的RGB分量:
这里写图片描述

而SegmentationClass中precoded中的图片为:

这里写图片描述

为什么说是precoded,我们可以看到这幅图也是png格式的,我们可以大概看到分类物体的轮廓填充信息,但是没有之前的清晰,我们分析一下其中的像素值:
这里写图片描述
这里写图片描述

可以发现这里的RGB都是同一个值,其中人代表的RGB值为(15,15,15),而飞机代表的为(1,1,1),也就是说,precoded中的图片相比于之前的png图将不同类别代表的颜色(假如飞机为(0,255,255))“变为”了1而人代表15,和benchmark中的数据集分类的表示方式就类似了。

而SegmentationObject中的png图则仅仅对图中不同的物体进行的分割,不对其物体所属的类别进行标注:

这里写图片描述

显然,上面的很多人都被标记了不同的颜色,当然仅仅是为了分离出来。

这里写图片描述

JPEGimages则放了我们需要的图片,这些图片一共有17125张,我们并不是都使用,我们仅对train.txt和val.txt中列出的图像进行使用,而其他的图像则用于不同的任务中。

总结

图像分割的数据集一般都是采用上面说明的VOC2012挑战数据集,有人说benchmark_LELEASE为增强数据集,具体原因我不清楚,可能是因为benchmark_LELEASE的图片都是用于分割(一共11355张),而VOC2012仅仅部分图片适用于分割(2913张)吧。

我们自己制作数据集的时候,只需要图像的json、xml分割信息就可以通过程序生成对应的png轮廓图,下一节中说明如何制作自己的适用于FCN、deeplab算法的图像分割数据集。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
【HEVC学习与研究】46、HEVC参考代码中SAO的实现
1、HM10 encoder关于SAO的初始化操作 在编码开始之前,编码器将进行与SAO有关的一些初始化设置。如在TAppEncTop::encode()函数中调用TAppEncTop::xInitLibCfg()进行与config相关的设置: m_cTEncTop.
1654 0
应用统计学与R语言实现学习笔记(二)——数据收集
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/ESA_DSQ/article/details/71176846 Chapter 2 Data Collection 本篇是第二章,内容是数据收集。
1063 0
UIDevice获取设备数据以及如何获取应用信息
<h1 id="codeintro" style="margin:15px 0px 0px; padding:0px; color:rgb(54,46,43); line-height:26px; border:0px; width:740px; font-size:13px; font-weight:normal; font-family:'Helvetica Neue','Luxi S
1436 0
我花10个小时,写出了小白也能看懂的阿里数据中台分析
数据中台被誉为大数据的下一站,由阿里兴起,核心思想是数据共享,2015年阿里提出“大中台,小前台”的策略。2018 年因为“腾讯数据中台论”,中台再度成为了人们谈论的焦点。 2019年,似乎人人都在提数据中台,但却不是所有人都清楚数据中台到底意味着什么。
3898 0
Kubernetes监控之Heapster介绍
什么是Heapster? Heapster是容器集群监控和性能分析工具,天然的支持Kubernetes和CoreOS。 Kubernetes有个出名的监控agent---cAdvisor。在每个kubernetes Node上都会运行cAdvisor,它会收集本机以及容器的监控数据(cpu,memory,filesystem,network,uptime)。
1198 0
独家 | ARIMA/Sarima与LSTM的时间序列数据集成学习(附链接)
本文探讨了简单的ARIMA/Sarima与LSTM的时间序列数据集成学习方面的问题。
1827 0
【译】Databricks使用Spark Streaming和Delta Lake对流式数据进行数据质量监控介绍
本文主要对Databricks如何使用Spark Streaming和Delta Lake对流式数据进行数据质量监控的方法和架构进行了介绍,本文探讨了一种数据管理架构,该架构可以在数据到达时,通过主动监控和分析来检测流式数据中损坏或不良的数据,并且不会造成瓶颈。
1383 0
DevExpress学习02——DevExpress 14.1的汉化
汉化资源: 汉化补丁:dxKB_A421_DXperience_v14.1_(2014-06-09):http://www.t00y.com/file/86576990 汉化工具:DXperienceUniversal-14.
1250 0
+关注
郭大瘦
个人网站 oldpan.me
100
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
OceanBase 入门到实战教程
立即下载
阿里云图数据库GDB,加速开启“图智”未来.ppt
立即下载
实时数仓Hologres技术实战一本通2.0版(下)
立即下载