将数据转换为caffe可用的lmdb格式(convert_data_lmdb.sh 解析)
2016-05-31 20:48
357 查看
一般用文件存储图像数据的路径及其标注,但是caffe所使用的数据为LMDB格式或者HDF5格式,所以需要进行数据集的格式转换。
例如:训练数据存储在 train.list中,测试数据存储在val.list中,其内容为每张图像的路径及其标注。
利用convert_data_lmdb.sh,将其转换为LMDB格式。
例如:训练数据存储在 train.list中,测试数据存储在val.list中,其内容为每张图像的路径及其标注。
利用convert_data_lmdb.sh,将其转换为LMDB格式。
#!/usr/bin/env sh #用 env 启动脚本,不同机器脚本解析器可能装在不同的路径下,用env能解决系统找不到解析器的兼容性问题。一般:#!/bin/bash -> 解析器为bash; #!/bin/sh -> 解析器为sh #这个代码的主要功能在于将数据转换成caffe能使用的lmdb格式的数据 # Create the image to lmdb inputs TOOLS=/usr/local/caffe-master/build/tools #caffe工具的路径,本代码使用其中的convert_imageset.cpp,compute_image_mean.cpp #图像文件的存放位置,图像 .jpg 格式 TRAIN_DATA_ROOT=/home/zhuangni/code/FaceDetection/ReprocessData/alfw/crop_images VAL_DATA_ROOT=/home/zhuangni/code/FaceDetection/ReprocessData/alfw/crop_images #保存图像文件路径及标注的 .list 文件 的路径 IMAGE_LIST_ROOT=/home/zhuangni/code/FaceDetection/ReprocessData/alfw #LMDB文件的存放位置 ROOT_LMDB=/home/zhuangni/code/FaceDetection/Data # 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=48 RESIZE_WIDTH=48 else RESIZE_HEIGHT=0 RESIZE_WIDTH=0 fi if [ ! -d "$TRAIN_DATA_ROOT" ]; then # -d file , 文件目录为真 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 1 #退出 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 1 fi echo "Creating train lmdb..." #设置打印所有日志消息 GLOG_logtostderr=1 $TOOLS/convert_imageset \ #将图像数据转换为lmdb格式 --resize_height=$RESIZE_HEIGHT \ #参数选择,convert_imageset.cpp里有各参数的说明 --resize_width=$RESIZE_WIDTH \ --shuffle \ #是否随机读取 $TRAIN_DATA_ROOT \ $IMAGE_LIST_ROOT/train_2.list \ #保存图像文件路径及标注的 .list 文件 $ROOT_LMDB/train echo "Creating val lmdb..." GLOG_logtostderr=1 $TOOLS/convert_imageset \ --resize_height=$RESIZE_HEIGHT \ --resize_width=$RESIZE_WIDTH \ --shuffle \ $VAL_DATA_ROOT \ $IMAGE_LIST_ROOT/val_2.list \ $ROOT_LMDB/val $TOOLS/compute_image_mean $ROOT_LMDB/train \ #计算图像的均值 $ROOT_LMDB/mean.binaryproto echo "Done."
相关文章推荐
- jQuery.param自动将键值对转换为请求传递的参数
- Dom操作html详细
- JS数据处理[对json数据的一些简单处理转为数组或者键值对]
- javascript删除数组某个元素
- jquery中this的用法
- SharedPreferences导航
- 【前端】装了React dev tool 之后,为毛开发者工具看不到react的tab!!!
- web前端开发分享-css,js
- I NEED A OFFER!
- CSS定位
- jQuery 事件与应用
- javascript-第一节-js基础语法
- HTML5+CSS3-第六节(动画、视频、音频、canvas)
- 简单代码,测试一下json.dump and json.loads
- 前端工程师平时都是干什么的?就单纯的HTML+CSS+Javascript吗?
- web前端与java后台开发哪个前景、待遇好?
- HTML5+CSS3-第四节(背景渐变、多栏布局column)
- HTML5+CSS3-第三节(文本对齐方式、文本修饰线、设定文本大小写、文本阴影、盒子阴影、盒子倒影、渐变色彩、)
- HTML5+CSS3-第二节(浏览器前缀、css新特征、文本溢出、新的颜色设定、透明设定、文本填充色、文本边框色、圆角)
- HTML5+CSS3-第一节(文档类型声明、新增标签)