[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