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文件的更多相关文章

  1. Caffe框架,图像数据转换成LMDB数据格式

    小码农最近在研究深度学习,对所学知识做点记录,以供以后翻阅.在Caffe框架中,数据的格式都是LMDB的,如何将图像数据转换成这个格式呢? 首先,将图像数据和标签生成txt文档,执行一下代码: fin ...

  2. 【caffe-windows】 caffe-master 之 训练自己数据集(图片转换成lmdb or leveldb)

    前期准备: 文件夹train:此文件夹中按类别分好子文件夹,各子文件夹里存放相应图片 文件夹test:同train,有多少类就有多少个子文件夹 trainlabels.txt : 存的是训练集的标签  ...

  3. 【caffe-windows】 caffe-master 之图片转换成lmdb or leveldb

    前期准备: 文件夹train:此文件夹中按类别分好子文件夹,各子文件夹里存放相应图片 文件夹test:同train,有多少类就有多少个子文件夹 trainlabels.txt : 存的是训练集的标签  ...

  4. caffe(11) 图像数据转换成db文件

    在深度学习的实际应用中,我们经常用到的原始数据是图片文件,如jpg,jpeg,png,tif等格式的,而且有可能图片的大小还不一致.而在caffe中经常使用的数据类型是lmdb或leveldb,因此就 ...

  5. 调用caffe脚本将图片转换为了lmdb格式

    #!/usr/bin/env sh # Create the imagenet lmdb inputs # N.B. set the path to the imagenet train + val ...

  6. Caffe使用:如何将一维数据或其他非图像数据转换成lmdb

    caffe事儿真多,数据必须得lmdb或者leveldb什么的才行,如果数据是图片的话,那用caffe自带的convert_image.cpp就行,但如果不是图片,就得自己写程序了.我也不是计算机专业 ...

  7. 图片合并成PDF,两个PDF的合并

    需求: 将多张手机照片合并成一个PDF,并于另一个成型PDF合并 过程: 使用全能扫描王处理一遍,拆剪掉多余部分,并提高亮度增加文字对比度 合并: 使用Faststone Capture合并图片即可. ...

  8. Caffe学习系列(11):图像数据转换成db(leveldb/lmdb)文件

    在深度学习的实际应用中,我们经常用到的原始数据是图片文件,如jpg,jpeg,png,tif等格式的,而且有可能图片的大小还不一致.而在caffe中经常使用的数据类型是lmdb或leveldb,因此就 ...

  9. caffe 图片数据的转换成lmdb和数据集均值(转)

    转自网站: http://blog.csdn.net/muyiyushan/article/details/70578077 1.准备数据 使用dog/cat数据集,在训练项目根目录下分别建立trai ...

随机推荐

  1. 2.常用adb命令的使用

    使用电脑连接手机,查看手机的唯一编号,如果是模拟器,就是显示地址和端口号: adb devices 使用adb安装app应用: adb install apk路径和包名 -r 允许覆盖安装 -s 将a ...

  2. SQLI DUMB SERIES-11

    (1)检测构造方式 由此看出输入的用户名以及密码都被一对单引号所包含. 方法一: (2) 模拟真实环境,以用户的身份登录. (3)用burp抓包.开启抓包,输入用户名和密码,会自动跳到这个页面,右键, ...

  3. vue中使用axios给生产环境和开发环境配置不同的baseUrl

    第一步:设置不同的接口地址 找到文件:/config/dev.env.js 代码修改为: var merge = require('webpack-merge') var prodEnv = requ ...

  4. hello2 源码解析

    在hello2的项目中,采用的是Java servlet  技术来采取对项目的整体框架的搭建.编写另一个greeting的java文件,实现了一个greeting的java类来覆盖url的doGet方 ...

  5. 《Netty in action》 读书笔记

    声明:这篇文章是记录读书过程中的知识点,并加以归纳总结,成文.文中图片.代码出自<Netty in action>. 1. 为什么用Netty? 每个框架的流行,都一定有它出众的地方.Ne ...

  6. Maven+Spirng+Mybatis+CXF搭建WebService服务

    https://jingyan.baidu.com/article/39810a23b1de2fb637fda66c.html

  7. The query below helps you to locate tables without a primary key:

    SELECT tables.table_schema, tables.table_name, tables.table_rows FROM information_schema.tables LEFT ...

  8. 解压zipfile & tarfile

    def __un_zip(self, file_path): """解压.zip格式文件到同名目录下,若解压之前就存在该目录说明已解压,跳过解压过程,返回该目录" ...

  9. react学习笔记1一基础知识

    1.React 是一个用于构建用户界面的 JAVASCRIPT 库2.React 特点: a.声明式的设计 b.采用虚拟dom,最大限度的减少dom操作 C.组件化,可以复用 D.单向响应的数据流,减 ...

  10. springMVC配置文件web.xml与spring-servlet.xml与spring-jdbc.xml与logback.xml与redis.properties与pom.xml

    springMVC注解:@Controller @Service @Repository 分别标注于web层,service层,dao层. web.xml <?xml version=" ...