caffe:将图像转化为LMDB格式文件

将图片数据转化为LMDB数据
第一步:创建图片文件列表清单,一般为一个txt文件,一行一张图片
第二步:使用Caffe工具命令
convert_imageset [FLAGS] [ROOTFOLDER/] [LISTFILE] [DB_NAME]
需要带四个参数:
FLAGS: 图片参数组
-gray: 是否以灰度图的方式打开图片。程序调用opencv库中的imread()函数来打开图片,默认为false
-shuffle: 是否随机打乱图片顺序。默认为false
-backend:需要转换成的db文件格式,可选为leveldb或lmdb,默认为lmdb
-resize_width/resize_height: 改变图片的大小。在运行中,要求所有图片的尺寸一致,因此需要改变图片大小。 程序调用opencv库的resize()函数来对图片放大缩小,默认为0,不改变
-check_size: 检查所有的数据是否有相同的尺寸。默认为false,不检查
-encoded: 是否将原图片编码放入最终的数据中,默认为false
-encode_type: 与前一个参数对应,将图片编码为哪一个格式:‘png’,’jpg’……
ROOTFOLDER/: 图片存放的绝对路径,从linux系统根目录开始
LISTFILE: 图片文件列表清单,一般为一个txt文件,一行一张图片
DB_NAME: 最终生成的db文件存放目录

1、 实际操作
(a)、首先在建立一个文件夹(samples),然后在该文件夹下面再创建两个文件夹,分别为train和test。train和test两个文件夹下都是不同类的图像(我的是flower和horse两类图像)。
(b) 对两类图像添加label,flower为0,horse为1,然后执行以下命令,得到训练图像中flower的label文件:
[email protected]:~/sampleslstrain/flower|sed"s::flower/:"|sed"s:: 0:” >>t_train.txt
修改命令并执行,得到训练图像中horse的label文件,flower和horse的label文件在同一个txt文件中:
[email protected]:~/sampleslstrain/horse|sed"s::horse/:"|sed"s:: 1:” >>t_train.txt
同理,对test文件夹中的两类图像得到txt格式的label文件:
[email protected]:~/sampleslstest/flower|sed"s::flower/:"|sed"s:: 0:” >>t_test.txt
[email protected]:~/sampleslstest/horse|sed"s::horse/:"|sed"s:: 1:” >>t_test.txt

(c)最后执行以下命令可以得到test图像LMDB格式的文件:
[email protected]:~/samplesconvertimagesetresizewidth=40resizeheight=40/home/dwz/samples/test/./ttest.txt./ttestlmdbtrainLMDBdwz@dwzubuntu0520: /samples convert_imageset –resize_width=40 –resize_height=40 /home/dwz/samples/train/ ./t_train.txt ./t_train_lmdb
注:convert_imageset是caffe的自带函数,将图像转化为LMDB格式的文件;
resize将图像的大小都调整为40*40;
文件的目录必须是绝对目录;
caffe:将图像转化为LMDB格式文件
caffe:将图像转化为LMDB格式文件