Caffe:如何将图片数据转换成lmdb文件
1 图片信息的转换
在caffe中经常使用的数据类型是lmdb或leveldb;不是常见的jpg,jpeg,png,tif等格式;因此,需要进行格式转换,通过输入你自己的图片目录(下有的大量图片)转换成一个lmdb库文件输出;这个过程一般由caffe工具convert_imageset完成,该工具在编译过的caffe-master/build/tools目录下;
2 格式转换需要的条件
格式转换准备条件有:1)编译好caffe,而且convert_imageset存在; 2)被转换的图片和目录,注意这些都有格式要求 3)两个标签文件train.txt,val.txt; 4)用命令编辑好的shell脚本create-lmdb.sh;
3 被转换图片文件和存放目录
按照下面图示安排转换目录:注意该例子中,图片分为0类和1类两个集合;

4 标签文件train.txt和val.txt
转换过程,除了上面提到的图片文件目录,还需要这些图片的标签文件;该文件存放图片文件路径,以及该图片的标签(属于哪个类);一般来说,标签文件有两个,一个描述训练集合-train.txt,一个描述测试集合-val.txt,这两个文件格式有轻微差别,标签文件格式如下:
train.txt文件:
/T10034.jpg
/096377_01M36.JPG
/T580.jpg
/T4151.jpg
/100333_00F42.JPG
/076902_04M36.JPG
注意:该文件包含路径/1和/0;分别存放0,1两类图片。
val.txt文件:
T10034.jpg
221169_02M52.JPG
T580.jpg
T4694.jpg
332136_01M17.JPG
181085_02M28.JPG
133417_02M37.JPG
注意:该测试集的标签文件无需分类存储;与train.txt和val.txt相伴随的目录结构图对照;显然,文件内容和目录是密切关联的;
5 如何生成标签文件train.txt和val.txt
当图片规模达到上千万级别,上述两个文件的生成需要程序实现,网上的找到一个shell脚本如下,
# /usr/bin/env sh
DATA=examples/images
echo "Create train.txt..."
rm -rf $DATA/train.txt
find $DATA -name *cat.jpg | cut -d '/' -f3 | sed "s/$/ 1/">>$DATA/train.txt
find $DATA -name *bike.jpg | cut -d '/' -f3 | sed "s/$/ 2/">>$DATA/tmp.txt
cat $DATA/tmp.txt>>$DATA/train.txt
rm -rf $DATA/tmp.txt
echo "Done.."
将该文件拷贝到caffe-master目录下执行,会在caffe-master/example/images目录下生成如下的一个train.txt文件:
cat.jpg
fish-bike.jpg
只要将上述文件稍加修改,不难产生你需要的脚本。
6 用脚本命令生成lmdb
编写一个shell文件create_lmdb.sh,内容如下:
#!/usr/bin/en sh
DATA=examples/images
rm -rf $DATA/img_train_lmdb
build/tools/convert_imageset --shuffle \
--resize_height= --resize_width= \
/home/my_name/caffe/examples/images/train $DATA/train.txt $DATA/img_train_lmdb
7 执行脚本
设置参数-shuffle,打乱图片顺序。设置参数-resize_height和-resize_width将所有图片尺寸都变为256*256.
/home/my_name/caffe/examples/images/train 为图片保存的绝对路径。最后,运行这个脚本文件
# sudo sh examples/images/create_lmdb.sh
就会在examples/images/ 目录下生成一个名为 img_train_lmdb的文件夹,里面的文件就是我们需要的db文件。
Caffe:如何将图片数据转换成lmdb文件的更多相关文章
- Caffe框架,图像数据转换成LMDB数据格式
小码农最近在研究深度学习,对所学知识做点记录,以供以后翻阅.在Caffe框架中,数据的格式都是LMDB的,如何将图像数据转换成这个格式呢? 首先,将图像数据和标签生成txt文档,执行一下代码: fin ...
- 【caffe-windows】 caffe-master 之 训练自己数据集(图片转换成lmdb or leveldb)
前期准备: 文件夹train:此文件夹中按类别分好子文件夹,各子文件夹里存放相应图片 文件夹test:同train,有多少类就有多少个子文件夹 trainlabels.txt : 存的是训练集的标签 ...
- 【caffe-windows】 caffe-master 之图片转换成lmdb or leveldb
前期准备: 文件夹train:此文件夹中按类别分好子文件夹,各子文件夹里存放相应图片 文件夹test:同train,有多少类就有多少个子文件夹 trainlabels.txt : 存的是训练集的标签 ...
- caffe(11) 图像数据转换成db文件
在深度学习的实际应用中,我们经常用到的原始数据是图片文件,如jpg,jpeg,png,tif等格式的,而且有可能图片的大小还不一致.而在caffe中经常使用的数据类型是lmdb或leveldb,因此就 ...
- 调用caffe脚本将图片转换为了lmdb格式
#!/usr/bin/env sh # Create the imagenet lmdb inputs # N.B. set the path to the imagenet train + val ...
- Caffe使用:如何将一维数据或其他非图像数据转换成lmdb
caffe事儿真多,数据必须得lmdb或者leveldb什么的才行,如果数据是图片的话,那用caffe自带的convert_image.cpp就行,但如果不是图片,就得自己写程序了.我也不是计算机专业 ...
- 图片合并成PDF,两个PDF的合并
需求: 将多张手机照片合并成一个PDF,并于另一个成型PDF合并 过程: 使用全能扫描王处理一遍,拆剪掉多余部分,并提高亮度增加文字对比度 合并: 使用Faststone Capture合并图片即可. ...
- Caffe学习系列(11):图像数据转换成db(leveldb/lmdb)文件
在深度学习的实际应用中,我们经常用到的原始数据是图片文件,如jpg,jpeg,png,tif等格式的,而且有可能图片的大小还不一致.而在caffe中经常使用的数据类型是lmdb或leveldb,因此就 ...
- caffe 图片数据的转换成lmdb和数据集均值(转)
转自网站: http://blog.csdn.net/muyiyushan/article/details/70578077 1.准备数据 使用dog/cat数据集,在训练项目根目录下分别建立trai ...
随机推荐
- idea设置代码块
转:https://blog.csdn.net/boy_Kenny/article/details/55223078?utm_source=blogxgwz4 idea设置代码块 1.代码模板场景介绍 ...
- 22.一个球从100m高度自由下落,每次落地后返跳回原高度的一半,再反弹。求它在第10次落地时,共经过多少米,第10次反弹多高。
#include <stdio.h> #include <stdlib.h> int main() { ,hn=sn/; int i; ;i<=;i++) //注意i是从 ...
- 二,编程语言类别,和python变量基础
编程语言类别 机器语言:由二进制组成,直接控制操作硬件,执行效率高,开发效率低. 汇编语言:用英文代替二进制,直接操作控制硬件,执行效率高,开发效率低. 高级语言: 编译型,如C语言,类似谷歌翻译,先 ...
- vim分屏操作
启动分屏 1.使用大写O参数进行垂直分屏 $ vim -On file1 file2 ... 2.使用小写o参数进行水平分屏 $ vim -on file1 file2 ... 注: n是数字,表示分 ...
- controller向layout传值
Yii2,layout中使用Controller的值,Controller向layout传值的两种方式. yii2中在通过Controller向layout中传值,layout中访问Controlle ...
- django中向用户发送邮件信息
发送邮件来让用户激活,因此,邮件中需要包含用户信息.但用户信息需要加密才可以.因此加密采用的是itsdangerous中的TimedJSONWebSignatureSerializer. 参考链接:h ...
- Ubuntu16.04的sublime text3 的安装教程
1. sublime text3的官网位置 https://www.sublimetext.com/3 2.apt安装方式 1. 安装 GPG -key: wget -qO - https://do ...
- CentOS7中使用yum安装Nginx的方法
最近无意间发现Nginx官方提供了Yum源.因此写个文章记录下. 1.添加源 默认情况Centos7中无Nginx的源,最近发现Nginx官网提供了Centos的源地址.因此可以如下执行命令添加源: ...
- 记录 spf13-vim 遇到的问题
一.spf13-vim 常用快捷键: https://blog.csdn.net/BjarneCpp/article/details/80608706 https://www.cnblogs.com/ ...
- 《Linux内核原理与分析》第四次作业
跟踪分析Linux内核的启动过程 使用实验楼的虚拟机打开shell 使用 gdb 跟踪调试内核 使用 qemu qemu -kernel linux-3.18.6 /arch/x86/boot/baI ...