下载imageNet2015数据集
image-net官网下载:image-net.org
VOC2007数据格式介绍
1 | ├── Annotations |
JPEGImages文件夹中包含了PASCAL VOC所提供的所有的图片信息,包括了训练图片和测试图片。
Annotations文件夹中存放的是xml格式的标签文件,每一个xml文件都对应于JPEGImages文件夹中的一张图片。
xml文件的具体格式如下:(对于2007_000392.jpg):
1 |
|
ImageSets存放的是每一种类型的challenge对应的图像数据。
在ImageSets下有四个文件夹:
其中Action下存放的是人的动作(例如running、jumping等等,这也是VOC challenge的一部分)
Layout下存放的是具有人体部位的数据(人的head、hand、feet等等,这也是VOC challenge的一部分)
Main下存放的是图像物体识别的数据,总共分为20类。
Segmentation下存放的是可用于分割的数据。
在这里主要考察Main文件夹。
Main文件夹下包含了20个分类的***_train.txt、***_val.txt和***_trainval.txt。
这些txt中的内容都差不多如下:
1 | 000012 |
表示图像的name。
ILSVRC2015数据集介绍
1 | ├── Annotations |
ILSVRC2015_devkit\devkit\data\map_clsloc.txt文件描述了类别对应关系。
转换方法
图片JPEG转jpg格式
VOC2007中的原图片的数据格式为.jpg格式,而ILSVRC2015数据集中的原始图片为.JPEG格式。考虑到有些深度神经网络只支持.jpg格式的图片。因此,首先将.JPEG格式图片转换为.jpg格式的图片。转换代码可参考如下:
1 | clc; |
待解决的问题:
函数imwrite(imgdata, jpgPath);默认参数会改变图片大小。
imwrite(imgdata, jpgPath, ‘mode’,’lossless’);加入特定模式后,图片损坏。
转换XML文件
XML文件转txt文件
1 | %createtxt.m |
importDataFiles(RootPath)函数:
1 | function [dir_name, count, label]=importDataFiles(RootPath) |
改代码通过遍历xml文件来生成txt文件。原因在于原始图片文件夹内的图片多余对应的xml文件。
可能存在的问题:
(1)以上matlab代码通过使用XML 函数来解析XML文件,即xml_parse()函数。需要先下载该函数的工具包,下载地址:https://cn.mathworks.com/matlabcentral/fileexchange/4278-xml-toolbox?focused=5055046&tab=function
但是该工具包在高版本的matlab已不支持,请尝试低版本的Matlab。楼主使用matlab 2014a版本,可运行。
(2)待解决的问题
以上代码仅仅支持XML中存在一个object对象。若存在多个object对象,即会报错,运行catch语句块,将不能够读取的xml文件从原文件夹中删除,以此来保证xml文件的数量同txt文件的数量相同。但是,该问题应该很好能够解决。
TXT转XML
接下来就可以进行将txt转化为pascal voc格式的xml文件了,在当前目录下创建一个Annotations的文件夹,代码如下:
1 | %writeanno.m |
writexml函数:
1 | %writexml.m |
移动目录内所有文件夹内的文件至上层目录
1 |
|
这一步的目的在于将Annotations文件夹内的所有xml文件置于一个目录下。
imageSets文件夹
代码如下:
1 | %createimagesets.m |
这样所需的文件夹我们都已备齐,将imageSets,Annotations和JPEGiImage文件夹分别放入voc数据集的对应位置,在这之前先将其原来的文件夹删除。