Caffe 将原始图像数据转换成leveldb/lmdb格式
来源:互联网 发布:php 替换字符串 编辑:程序博客网 时间:2024/05/04 10:59
caffe框架使用的数据格式通常是lmdb和leveldb,但是我们经常用到的是图片文件,如jpg,jpeg,png,tif等格式的,而且有可能图片的大小还不一致。
转换过程中,需要准备两部分内容:
1:train.txt和test.txt带有标签的图像地址列表文件,
2:执行文件。
第一部分如下图所示
注意:必须保证路径正确,并且在标签后面不能出现空格,否则会出现找不到文件的错误。()
我们可以查看源代码,convet_imageset.cpp中有这样一段:
int label; while (std::getline(infile, line)) { pos = line.find_last_of(' '); label = atoi(line.substr(pos + 1).c_str()); lines.push_back(std::make_pair(line.substr(0, pos), label)); }
第二部分:
在convet_imageset.cpp文件main函数中给出执行文件的写法如下:
ROOTFOLDER/: 图片存放的绝对路径
LISTFILE: 图片文件列表清单,一般为一个txt文件,一行一张图片(带有标签)
DB_NAME: 生成的db文件存放位置
我们来了解一下FLAGS参数组的内容:
DEFINE_bool(gray, false, "When this option is on, treat images as grayscale ones");DEFINE_bool(shuffle, false, "Randomly shuffle the order of images and their labels");DEFINE_string(backend, "lmdb", "The backend {lmdb, leveldb} for storing the result");DEFINE_int32(resize_width, 0, "Width images are resized to");DEFINE_int32(resize_height, 0, "Height images are resized to");DEFINE_bool(check_size, false, "When this option is on, check that all the datum have the same size");DEFINE_bool(encoded, false, "When this option is on, the encoded image will be save in datum");DEFINE_string(encode_type, "", "Optional: What type should we encode the image as ('png','jpg',...).");
–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’……
编写执行文件,创建.bat脚本。
.\Build\x64\Release\convert_imageset.exe –gray=true –backend=leveldb –shuffle=true –resize_height=22 –resize_width=22 test/ test.txt leveldb
大功告成!
调了一上午的错误,终于在Release下跑通了。。。我觉得应该写一个改错误的文章了。。。。有空多看看源码吧
- Caffe 将原始图像数据转换成leveldb/lmdb格式
- ubuntu14.04+caffe 图像数据转换成db(leveldb/lmdb)
- Caffe:图像数据转换成ldb(leveldb/lmdb)文件
- Caffe学习:图像数据转换成db(leveldb/lmdb)文件
- 将自己的图像数据转换成caffe需要的db(leveldb/lmdb)文件
- 深度学习文章3:将自己的图像数据转换成caffe需要的db(leveldb/lmdb)文件
- caffe,将数据转换为lmdb/leveldb,convert_imageset.cpp 解析
- 用caffe将自己的图像数据转换成lmdb
- Caffe学习系列(11):图像数据转换成db(leveldb/lmdb)文件
- Caffe学习系列(11):图像数据转换成db(leveldb/lmdb)文件
- caffe学习系列:图像数据转换成db(leveldb/lmdb)文件
- Caffe学习系列(11):图像数据转换成db(leveldb/lmdb)文件
- Caffe学习系列(11):图像数据转换成db(leveldb/lmdb)文件
- Caffe学习系列(11):图像数据转换成db(leveldb/lmdb)文件
- Caffe学习系列(11):图像数据转换成db(leveldb/lmdb)文件
- Caffe学习系列(11):图像数据转换成db(leveldb/lmdb)文件
- (12)caffe总结之图像数据转换成db(leveldb/lmdb)文件
- 将图像转换成lmdb格式
- MarkDowm 好玩之处
- dom实例
- Camtasia Studio 8.6.0 中文汉化版安装教程(图)附下载
- Android的WebView的常用设置和方法
- 深入浅出Mybatis系列(五)---TypeHandler简介及配置(mybatis源码篇)
- Caffe 将原始图像数据转换成leveldb/lmdb格式
- android相对布局
- 接口的运用及注意事项
- 关于maven工程下springmvc资源路径配置
- 无法删除excel2007的解决办法
- ios10.3应用内评分
- AMQP之QPID和RabbitMQ
- mysql优化——profile
- jvm读书笔记之对象是否存活