Caffe从入门到精通07

【将图像数据转换为leveldb/lmdb文件】

在实际应用中,我们常用到的原始数据是图片文件(jpg、png);而且有可能图片的额大小还不一致,而在caffe中经常使用的是lmdb或leveldb,所以,本文将举例介绍,如何将原始图片转换成caffe中能够运行的leveldb/lmdb文件。

在caffe中,convert_imageset.exe就是这样一个可以将图片文件转换为leveldb/lmdb文件的可执行程序!

该文件的使用格式:

convert_imageset [FLAGS] ROOTFOLDER/ LISTFILE DB_NAME

这四个参数分别为:

FLAGS:图片参数组。包含要转换的格式、要初始化的图片大小等

ROOTFOLDER:图片存放的绝对路径,从caffe-master目录开始

LISTFILE:图片文件列表清单,一般为一个txt文件,一行一张图片

DB_NAME:最终生成的db(leveldb/lmdb)文件存放目录

【以caffe自带图片为例,实战图片数据转换】

下面将以caffe中自带的图片为例,这两张图片的目录是examps/images/,一张是cat.jpg,另一张是fish_bike.jpg,表示两个类别。如下图所示:


1.生成文件列表清单(LISTFILE)

examps/images/文件夹下新建一个train.txt文件,手动输入一下内容:


其中,“1” 和 “2”是分别给这两个图片标注的类别编号。

当然,这是在图片量很少的时候用手动的方法编写,但在图片量很多的时候,就需要编写代码来生成类似的txt文件了。

生成的这个train.txt文件就可以作为第三个参数(LISTFILE)来直接使用了。

2.设定FLAGES参数组

-gray:是否以灰度图的方式打开图片,默认为false

-shuffle:是否随机打乱图片顺序,默认为false

-backend:需要转换成的db文件格式,可选为leveldb,默认为lmdb

-resize_width/resize_height:改变图片的大小。在运行中,要求所有的图片的尺寸一种,因此需要改变图片大小。默认为0,不改变

-check_size:检查所有的数据是否有相同的尺寸,默认为false,不检查

-encoded:是否将原图片编码放入最终的数据中,默认为false

3.编写批处理文件

%[flags] rootfolder listfile db_name %
.\Build\x64\Release\convert_imageset.exe  -backend=leveldb -resize_height=256 -resize_width=256   examples\images\  examples\images\train.txt  examples\images\img_train_leveldb
pause
双击该批处理文件,将会在目标文件下生成相应的db文件。如下图所示:


这样我们就获得了这两张图片的leveldb格式的文件。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值