[caffe学习笔记][01][图像数据转换成db文件]

说明:

在深度学习的实际应用中,我们经常用到的原始数据是图片文件,如jpg,png等格式,而且有可能图片的大小还不一致。在caffe中经常使用的数据类型是lmdb或leveldb,因此就需要把原始图片文件转换成caffe中能够运行的lmdb/leveldb文件。

把图片转换成数据库需要分两步。第一步是生成图片清单文件,也就是图片路径与对应的类别。第二步是根据图片清单文件把图片存进数据库中。

步骤:

1.生成图片清单文件

touch create_filelist.sh

vim create_filelist.sh

 1 #!/usr/bin/bash
 2 
 3 DATA=train               #遍历目录train或test
 4 
 5 echo "Create train.txt..."
 6 rm -rf $DATA/$DATA.txt   #删除原有的文件列表
 7 
 8 for dir in `ls $DATA`    #遍历目录下的每个文件夹
 9 do
10     if [ -d $DATA/$dir ] #如果是文件夹,则提取文件夹下文件路径加上文件夹名写入文件列表文件
11     then
12         find $DATA/$dir -name *.png | cut -d \'/\' -f3 | sed "s/^/$dir\/&/g; s/$/& $dir/g" >> $DATA/$DATA.txt
13     fi
14 done
15 echo "Done..."

2.图像转换为数据库

touch create_lmdb.sh

vim create_lmdb.sh

 1 #!/usr/bin/bash
 2 
 3 DATA=train                                                #文件夹名
 4 LMDB=train_lmdb                                           #数据库名
 5 HEIGHT=28                                                 #图像高度
 6 WIDTH=28                                                  #图像宽度
 7 BUILD=/home/yuandanfei/caffe/build/tools/convert_imageset #图片转数据库路径
 8 ROOTFOLDER=/home/yuandanfei/work/caffe/mnist/data         #图片根路径
 9 
10 rm -rf $LMDB
11 
12 $BUILD --shuffle \
13 --resize_height=${HEIGHT} \
14 --resize_width=${WIDTH} \
15 $ROOTFOLDER/$DATA/ \
16 $ROOTFOLDER/$DATA/$DATA.txt $LMDB

参考资料:

https://www.cnblogs.com/denny402/p/5082341.html

https://www.cnblogs.com/linux-wangkun/p/5745584.html