标签: caffe 深度学习
作者:贾金让
本人博客的链接:http://blog.csdn.net/jiajinrang93
本脚本的新版打包下载地址:http://download.csdn.net/download/jiajinrang93/99762494
一.脚本实现的功能
1.将训练数据集转化为lmdb格式;
2.将测试数据集转化为lmdb格式;
3.生成mean.binaryproto文件。
二.原理简述
对于使用caffe的人来说,预处理中非常重要的一步就是格式的转换,将常用的图片(.jpg、.png等)转换为caffe使用的lmdb是非常必要的一步。
caffe中提供了将图片转化为lmdb的可执行文件,即处于caffe/build/tools目录下的convert_imageset可执行文件,不过它的使用有三个输入参数,即需要转化成lmdb的图片文件,用于转化的train.txt文件(或test.txt)以及生成lmdb的位置参数。
其中train.txt(test.txt)文件是需要我们自己生成的,对于大数据来说,手动生成非常之繁琐和麻烦。下图是train.txt的示例,可以看到不仅要在文件中存放图片的名字,还要有子路径和所属类别。
所以我们也需要一个脚本来自动完成这项功能。
三.程序包简介及使用说明
完整的程序包应该是下面这个样子的。
在运行前建议看看readme.md文件,里面也有详细的操作说明。
下面介绍各个文件夹的作用:
/data :用于存放生成的lmdb格式文件和mean文件,里面如下图:
当然脚本没有运行时里面是没有mean文件的。
/sh :用于存放生成train.txt、test.txt、lmdb和mean的脚本文件,里面如下图:
/tools :用于存放调用的caffe的convert_imageset和compute_image_mean两个可执行文件,需要手动从你的caffe目录下,build/toools/目录里拷贝到这里,拷贝后里面是这个样的:
/train :用于存放你需要转换成lmdb格式的源训练图片,里面是按类分好的子文件夹,有几类就有几个文件夹,命名从0开始(例:我的训练数据有两类,男和女,那么0代表男,1代表女),如下图所示:
其中0文件夹中存放属于该类的图片(例:男),如下:
另一个1文件夹中存放属于该类的图片(例:女),如下:
/test :用于存放你需要转换成lmdb格式的源测试图片,里面是暗雷分好的子文件夹,有几类就有几个文件夹,命名从0开始(例:同上,也是男女),不过这里需要注意,测试的图片不仅要按类放在各个子文件夹中,还要存放在/test文件夹下,test文件夹内部如下所示:
其中0文件中也存放其中属于该类的图片(例:男),如下:
另一个1文件夹中存放属于该类的图片(例:女),如下:
data_create.sh脚本文件就是我们要运行的文件。
四.运行脚本
将训练图片、测试图片和两个可执行文件都拷入对应位置后,就可以运行脚本了。
在命令行中进入create_lmdb目录,输入下列代码:
./data_create.sh
即可。
运行界面如下:
之后就会在create_lmdb目录下生成train.txt和test.txt两个文件,并且在/create_lmdb/data目录下生成mean.binaryproto,且在两个子目录中生成各自的lmdb文件。
大功告成!
本人博客的链接:http://blog.csdn.net/jiajinrang93
本脚本的新版打包下载地址:http://download.csdn.net/download/jiajinrang93/99762494