转载请注明出处:

http://www.cnblogs.com/darkknightzh/p/5909121.html

参考网址:

http://www.cnblogs.com/wangxiaocvpr/p/5096265.html

可以根据caffe-master\examples\imagenet \readme.md进行理解。

1 生成LmDB格式文件

caffe中通过图像生成lmdb格式文件的程序为examples/imagenet/create_imagenet.sh。该文件调用build/tools/convert_imageset(对应的源码为tools/convert_imageset.cpp)。

为了不改变原来的程序,在examples内新建testCreateLmDB文件夹。新建create_imagenet.sh,并输入:

 #!/usr/bin/env sh
# Create the imagenet lmdb inputs
# N.B. set the path to the imagenet train + val data dirsset -e EXAMPLE=examples/testCreateLmDB
DATA=/home/xxx/database/CASIA
TOOLS=build/tools TRAIN_DATA_ROOT=/home/xxx/database/CASIA/
VAL_DATA_ROOT=/home/xxx/database/CASIA/ # Set RESIZE=true to resize the images to 256x256. Leave as false if images have
# already been resized using another tool.
RESIZE=true
if $RESIZE; then
RESIZE_HEIGHT=
RESIZE_WIDTH=
else
RESIZE_HEIGHT=
RESIZE_WIDTH=
fi if [ ! -d "$TRAIN_DATA_ROOT" ]; then
echo "Error: TRAIN_DATA_ROOT is not a path to a directory: $TRAIN_DATA_ROOT"
echo "Set the TRAIN_DATA_ROOT variable in create_imagenet.sh to the path" \
"where the ImageNet training data is stored."
exit
fi if [ ! -d "$VAL_DATA_ROOT" ]; then
echo "Error: VAL_DATA_ROOT is not a path to a directory: $VAL_DATA_ROOT"
echo "Set the VAL_DATA_ROOT variable in create_imagenet.sh to the path" \
"where the ImageNet validation data is stored."
exit
fi echo "Creating train lmdb..." GLOG_logtostderr= $TOOLS/convert_imageset \
--resize_height=$RESIZE_HEIGHT \
--resize_width=$RESIZE_WIDTH \
--shuffle \
$TRAIN_DATA_ROOT \
$DATA/train_all.txt \
$EXAMPLE/face_train_lmdb echo "Creating val lmdb..." #GLOG_logtostderr= $TOOLS/convert_imageset \
# --resize_height=$RESIZE_HEIGHT \
# --resize_width=$RESIZE_WIDTH \
# --shuffle \
# $VAL_DATA_ROOT \
# $DATA/val.txt \
# $EXAMPLE/face_val_lmdb echo "Done."

之后,在caffe根目录打开终端,并输入sh examples/testCreateLmDB/create_imagenet.sh

说明:

1) 程序第6行EXAMPLE为当前文件在caffe目录的相对路径。

2) 程序第7行DATA为train_all.txt所在的文件夹(如果train_all.txt就在TRAIN_DATA_ROOT文件夹内,则DATA和TRAIN_DATA_ROOT一样),如下图:

其中第一列为数据库中所有文件的文件名相对于数据库目录的位置,第二列为图像类别。

3) 第10行TRAIN_DATA_ROOT为训练数据的绝对路径。

4) 第11行VAL_DATA_ROOT为验证数据的绝对路径。

5) 程序第15行RESIZE为是否对图像进行缩放。如果直接读图像的话,可以使用

new_height: 128

new_width: 128

进行缩放。但是使用lmdb的话,貌似没办法在prototxt里面设置缩放,只能在创建lmdb数据库时,进行缩放。缩放时,更改程序17、18行的RESIZE_HEIGHT和RESIZE_WIDTH。经测试,如果不缩放的话,生成数据库大小为28.2G,缩放后,生成数据库大小为21.2G(此处和图像具体大小有关,给出数据只为了说明缩放应该在哪里设置。)

6. 程序第46行EXAMPLE/face_train_lmdb为生成的LmDB文件所在的路径。注意:EXAMPLE/oriface_train_lmdb文件夹最好为空,或者删除该文件夹,否则可能会提示:

2 生成mean.binaryproto文件

为了不更改源文件,在testCreateLmDB内新建make_imagenet_mean.sh,并输入:

 #!/usr/bin/env sh
# Compute the mean image from the imagenet training lmdb
# N.B. this is available in data/ilsvrc12 EXAMPLE=examples/testCreateLmDB
DATA=examples/testCreateLmDB
TOOLS=build/tools $TOOLS/compute_image_mean $EXAMPLE/face_train_lmdb \
$DATA/face_train_mean.binaryproto echo "Done."

说明:

1) 程序第3行EXAMPLE为当前程序所在目录(实际上为face_train_lmdb库文件所在目录。见第9行)。

2) 程序第4行DATA为需要生成的face_train_mean.binaryproto所在目录(见程序第10行)。

3) 生成的face_train_mean.binaryproto文件大小为192KB。

(原)caffe中通过图像生成lmdb格式的数据的更多相关文章

  1. 利用caffe生成 lmdb 格式的文件,并对网络进行FineTuning

    利用caffe生成 lmdb 格式的文件,并对网络进行FineTuning 数据的组织格式为: 首先,所需要的脚本指令路径为: /home/wangxiao/Downloads/caffe-maste ...

  2. 使用JSONObject类来生成json格式的数据

    JSONObject类不支持javabean转json 生成json格式数据的方式有: 1.使用JSONObject原生的来生成 2.使用map构建json格式的数据 3.使用javabean来构建j ...

  3. Java中使用OpenSSL生成公钥私钥进行数据加解密

    当前使用的是Linux系统,已经安装OpenSSL软件包. 一.使用OpenSSL来生成私钥和公钥1.执行命令openssl version -a 验证机器上已经安装openssl $ openssl ...

  4. mysql中存不进去json_encode格式的数据

    主要是因为json_encode格式的数据,中间带有\,在存入数据库的时候,会把反斜杠删除了. 所以,想要存进去的话,需要在外层调用一下函数addslashes();这个函数会在每个反斜杠的前面添加反 ...

  5. mysql自定义函数并在存储过程中调用,生成一千万条数据

    mysql 自定义函数,生成 n 个字符长度的随机字符串 -- sql function delimiter $$ create function rand_str(n int) returns VA ...

  6. php 生成json格式的数据

    放到引入的公共函数里边 if (!function_exists('format_json')) { /** * 格式化API输出的json * @param $return_code string ...

  7. 【目标检测实战】目标检测实战之一--手把手教你LMDB格式数据集制作!

    文章目录 1 目标检测简介 2 lmdb数据制作 2.1 VOC数据制作 2.2 lmdb文件生成 lmdb格式的数据是在使用caffe进行目标检测或分类时,使用的一种数据格式.这里我主要以目标检测为 ...

  8. 简述WPF中的图像像素格式(PixelFormats)

    原文:简述WPF中的图像像素格式(PixelFormats) --------------------------------------------------------------------- ...

  9. Caffe系列2——Windows10制作LMDB数据详细过程(手把手教你制作LMDB)

    Windows10制作LMDB详细教程 原创不易,转载请注明出处:https://www.cnblogs.com/xiaoboge/p/10678658.html 摘要: 当我们在使用Caffe做深度 ...

随机推荐

  1. NDK编译Python2.7.5

    [背景] 网上有一些ndk编译python的做法,但按照教程做总是不成功,可能是环境版本不一样,导致很多地方的配置都不成功. 网上的教程大多只有做法,没有解释,即使按照教程编译成功,很多细节都不知道为 ...

  2. angularjs:[1] ui-router 权限控制

    1:简单的登录检查 $stateProvider .state('index', { url: "/", templateUrl: 'views/forwards/intro.ht ...

  3. 阿里云Centos7使用yum安装MySQL5.6的正确姿势

    阿里云Centos7使用yum安装MySQL5.6 阿里云Centos7使用yum安装MySQL5.6 前言:由于某些不可抗力,我要在自己的阿里云服务器上搭建hadoop+hive+mysql+tom ...

  4. HTML布局总结

    网页的三大元素结构(内容html标签)+表现(布局CSS)+行为(js) CSS选择器1.标记选择器2.类别选择器(.red)3.ID选择器(#name)4.复合选择器(交集选择器  标记选择器+类别 ...

  5. IE10-IE11在NET4.0下出现“__doPostBack未定义”解决方案

    IE10在NET4.0下出现"__doPostBack未定义"的办法 参考文章: http://blogs.msdn.com/b/scott_hanselman/archive/2 ...

  6. Gizmos绘制塔防游戏网格

    1.画线脚本写法及地面调整 首先,新建脚本GridMap 新建绘制网格方法(初始数值为10*10) 在类中创建变量 //定义地图宽度 public int m_mapWidth = 10; //地图高 ...

  7. web后台获取不到session中的值(loading sessions from persistent storage),后改用JS传值

    线上的程序似乎从session中取不到domain数据,重启了一下tomcat查看log日志发现,居然有报错.错误信息如下 22-Sep-2016 00:52:16.562 SEVERE [local ...

  8. window下配置ssh key

    在windows下通过msysGit(Git for windows.Git Bash)配置SSH Keys连接GitHub. 1.检查本机是否有ssh key设置 $ cd ~/.ssh 或cd . ...

  9. 《转》ACTIONBAR-PULLTOREFRESHLIBS+沉浸式在部分手机上的布局错乱,目前知道的三星系统(TouchWiz)

    转载:http://www.cnblogs.com/wubingshenyin/p/4413672.html(原文连接) 前段时间看见ActionBar-PullToRefreshLibs用来刷新很好 ...

  10. python 反向查找

    python 字符串反向查找大部分在正向查找前面加入r eg: str.rfind('str') str.rsplit(',')