本文主要是介绍Caffe修炼之路(5)——自行制作图片分类数据,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
Caffe修炼之路(5)——自行制作图片分类数据
- (一)前 言
- (二)准备一些图片
- (三)生成图片文件列表
- (四)数据转换
(一)前 言
由于Caffe的输入数据是以lmdb或者leveldb格式的文件,因此我们需要将数据库中的图片转换成caffe能允许的输入格式数据集,这个时候就发现MNIST数据集的怀抱真温暖:
(二)准备一些图片
在caffe-master/data目录下建立新建dogvscat文件夹存放猫狗的图片,如下所示:
注意图片文件的命名要有明显差异!
(三)生成图片文件列表
在进行转换之前,我们首先要生一个图片列表,其中包含图片文件名和标签,创建一个sh脚本文件,命名为create_trainfilelist.sh写入:
# /usr/bin/env sh
DATA=/home/caffe/caffe-master/data/dogvscat
echo "Create train.txt..."
rm -rf $DATA/train.txt
find $DATA -name ca*.jpg | cut -d '/' -f7 | sed "s/$/ 0/">>$DATA/train.txt
find $DATA -name do*.jpg | cut -d '/' -f7 | sed "s/$/ 1/">>$DATA/tmp.txt
cat $DATA/tmp.txt>>$DATA/train.txt
rm -rf $DATA/tmp.txt
echo "Done.."
运行上述文件:
bash create_trainfilelist.sh
生成文件内容如下:
cat1.jpeg 0
cat3.jpeg 0
cat2.jpeg 0
dog2.jpeg 1
dog3.jpeg 1
dog1.jpeg 1
(四)数据转换
在caffe-master/build/tools/文件夹下,有一个convert_imageset.cpp文件,这个文件的作用就是用于将图片文件转换成Caffe框架中能直接使用的db文件,使用格式为:
convert_imageset [FLAGS] ROOTFOLDER/ LISTFILE DB_NAME
参数如下:
- FLAGS: 图片参数组
- ROOTFOLDER: 原始数据集的绝对路径
- LISTFILE: 图片的文件名列表,一般为txt文件,一行一张图片的信息,下面会给出如何生成filelist的方法。
- DB_NAME: 生成的db文件的存放目录
执行下列命令:
build/tools/convert_imageset --gray=false /home/caffe/caffe-master/data/dogvscat/ /home/caffe/caffe-master/data/dogvscat/train.txt /home/caffe/caffe-master/data/dogvscat/train_lmdb --resize_width=224 --resize_height=224
输出:
I0703 17:10:10.721115 7492 convert_imageset.cpp:89] A total of 6 images.
I0703 17:10:10.721850 7492 db_lmdb.cpp:35] Opened lmdb /home/caffe/caffe-master/data/dogvscat/train_lmdb
I0703 17:10:10.816833 7492 convert_imageset.cpp:153] Processed 6 files.
查看生成目录,成功生成lmdb文件:
这篇关于Caffe修炼之路(5)——自行制作图片分类数据的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!