Caffe源码解读(七):将图片数据转化为LMDB数据
来源:互联网 发布:java依赖注入 编辑:程序博客网 时间:2024/05/17 04:11
caffe编译完成后在build/tools/目录下会生成一个convert_imageset工具,用来把图像数据转化成lmdb或者leveldb数据
convert_imageset的使用方法
第一步:创建图片文件列表清单
列表清单一般为一个txt文件,一行一张图片
第二步:执行convert_imageset
convert_imageset [FLAGS] [ROOTFOLDER/] [LISTFILE] [DB_NAME]
需要带四个参数:
FLAGS: 图片参数组,包括:
- -gray: 是否以灰度图的方式打开图片。程序调用opencv库中的imread()函数来打开图片,默认为false
- -shuffle: 是否随机打乱图片顺序。默认为false
- -backend:需要转换成的db文件格式,可选为leveldb或lmdb,默认为lmdb
- -resize_width/resize_height: 改变图片的大小。在运行中,要求所有图片的尺寸一致,因此需要改变图片大小。 程序调用opencv库的resize()函数来对图片放大缩小,默认为0,不改变
- -check_size: 检查所有的数据是否有相同的尺寸。默认为false,不检查
- -encoded: 是否将原图片编码放入最终的数据中,默认为false
- -encode_type: 与前一个参数对应,将图片编码为哪一个格式:‘png’,’jpg’……
ROOTFOLDER/: 图片存放的绝对路径,从linux系统根目录开始
LISTFILE: 图片文件列表清单,一般为一个txt文件,一行一张图片
DB_NAME: 最终生成的db文件存放目录
使用举例
这里我要生成两个LMDB数据,分别用来存储训练数据和测试数据。
步骤1:生成列表清单
初始数据为jpg格式图片,label分两类female和male,female用0表示,male用1表示。train目录存放训练数据,test目录存放测试数据。文档结构如下:
使用shell命令把每个图像数据按照“相对路径+图像文件名称+空格+label”的格式生成清单文件,命令如下:
ls train/female | sed "s:^:female/:" | sed "s:$: 0:" >> t_train.txtls train/male | sed "s:^:male/:" | sed "s:$: 1:" >> t_train.txtls test/female | sed "s:^:female/:" | sed "s:$: 0:" >> t_test.txtls test/male | sed "s:^:male/:" | sed "s:$: 1:" >> t_test.txt
生成的训练清单文件t_train.txt如下:
female/2017030201.jpg 0female/2017030202.jpg 0female/2017030203.jpg 0female/2017030204.jpg 0female/2017030205.jpg 0male/2017030206.jpg 1male/2017030207.jpg 1male/2017030208.jpg 1male/2017030209.jpg 1male/2017030210.jpg 1
生成的训练清单文件t_test.txt如下:
female/2017030211.jpg 0female/2017030212.jpg 0female/2017030213.jpg 0female/2017030214.jpg 0female/2017030215.jpg 0male/2017030216.jpg 1male/2017030217.jpg 1male/2017030218.jpg 1male/2017030219.jpg 1male/2017030220.jpg 1
**注意:清单中的文件路径是相对地址,相对的是convert_imageset命令的参数ROOTFOLDER。**ROOTFOLDER是个绝对地址。
步骤2:转化成LMDB
convert_imageset --resize_width=40 --resize_height=40 /home/chuwanxing/test_samples/caffe/data/train/ ./t_train.txt ./t_train_lmdb
这里指定了ROOTFOLDER为/home/chuwanxing/test_samples/caffe/data/train/,清单文件t_train.txt,生成的lmdb文件t_train_lmdb。通过–resize调用opencv把数据大小统一成40×40。
这样就完成了训练数据的转化,训练数据同样的操作,不赘述。
0 0
- Caffe源码解读(七):将图片数据转化为LMDB数据
- 将图片数据转化为LMDB数据
- 【深度学习框架Caffe学习与应用】第三课 将图片数据转化为LMDB数据``
- 将非图片数据转化为caffe可用的LMDB的方法
- caffe将若干张图片转化为lmdb文件
- Caffe下将mnist手写图片数据转化成lmdb格式
- caffe中将jpg数据转化为lmdb格式的文件
- caffe:将图像转化为LMDB格式文件
- caffe,将数据转换为lmdb/leveldb,convert_imageset.cpp 解析
- caffe如何将图片数据写成lmdb格式
- Caffe:如何将图片数据转换成lmdb文件
- caffe学习笔记1:转化自己的数据为(leveldb/lmdb)文件
- 将自己数据转化为cifar10支持的lmdb
- 将自己数据集转化为lmdb格式
- 将数据转换为caffe可用的lmdb格式(convert_data_lmdb.sh 解析)
- caffe中如何将自己的图片转化为LMDB类型
- caffe非图像数据转换为lmdb
- caffe-图片转为lmdb数据集
- Unity面试编程题
- Android Shape自定义纯色圆角按钮
- 121. Best Time to Buy and Sell Stock
- Caffe源码解读(六): Caffe的I/O模块
- Leetcode 193. Valid Phone Numbers
- Caffe源码解读(七):将图片数据转化为LMDB数据
- 爬虫Debug
- 圆与三角形-51NOD 1298
- JAVA零基础入门(2)
- 从ImageLoader看设计模式
- centos6.5系统 使用rxtx串口转USB收数据
- 关于寂寞
- ssm框架整合后jsp页面找不到action----讨厌的404错误
- ajax较为复杂应用