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文件:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Friedrich Yuan

拒绝白嫖,从我做起!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值