将数据转换为caffe可用的lmdb格式(convert_data_lmdb.sh 解析)

原创 2016年05月31日 20:48:49

一般用文件存储图像数据的路径及其标注,但是caffe所使用的数据为LMDB格式或者HDF5格式,所以需要进行数据集的格式转换。

例如:训练数据存储在 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."



版权声明:本文为博主原创文章,未经博主允许不得转载。

使用MATLAB生成文件列表(供caffe生成lmdb使用)

caffe生成lmdb的需求后边再说,先讲该程序要实现的:给定一个路径,读取该路径下的所有文件夹及其中的文件,将这些文件复制到另一目录下并重命名,再生成一个文件列表,列表中包括更改后的文件名和对应的类...
  • u011636440
  • u011636440
  • 2016年10月11日 13:48
  • 1915

初试python生成lmdb问题及解决

编译caffe中的pycaffe,将release里的pycaffe的caffe文件夹拷到anaconda里的Lib\site-package里头在ipython里运行代码如下,第一次最好一行一行敲并...
  • sudakuang
  • sudakuang
  • 2016年08月18日 12:48
  • 4353

VOC2012 分割数据 转 lmdb 格式 python 代码

import numpy as np import sys from PIL import Image import lmdb import random import ossys.path.appe...
  • zhangjunhit
  • zhangjunhit
  • 2017年07月28日 10:30
  • 628

制作VOC类型数据集,生成txt,生成lmdb

前言:数据样式参照PASCALVOC 一:搜集图片,或者视频数据等,利用标注工具,形成图片信息以及注释信息。 标注工具,自己编写的,可以拿去使用: 二:通过xml文件以及图片信息形成ImageSe...
  • qq_29133371
  • qq_29133371
  • 2017年02月13日 19:36
  • 2743

将自己数据集转化为lmdb格式

在caffe-master_github/examples/imagenet/路径下有convert_imagenet.sh文件,使用时有以下注意事项(注意点写在了代码注释里):#!/usr/bin/...
  • Cheese_pop
  • Cheese_pop
  • 2017年03月10日 20:54
  • 497

【caffe-Windows】以mnist为例lmdb格式数据

前言 前面介绍的案例都是leveldb的格式,但是比较流行和实用的格式是lmdb,原因从此网站摘取 它们都是键/值对(Key/Value Pair)嵌入式数据库管理系统编程库。虽然lmdb的内存消...
  • zb1165048017
  • zb1165048017
  • 2016年08月19日 15:19
  • 5012

Caffe中图像写入LMDB(以及多标签)和读取LMDB数据

一个大牛写的教程:《A Practical Introduction to Deep Learning with Caffe and Python》,写的很清晰。 将图像写入LMDB import ...
  • langb2014
  • langb2014
  • 2016年11月01日 14:12
  • 7815

读写 LMDB 数据库

1,Caffe: MNIST 数据集格式转换、用 python 读写 LMDB 数据库 2.制作imageset数据库 和上面类似,首先,cd到convet_imageset_da...
  • huixingshao
  • huixingshao
  • 2017年07月26日 22:58
  • 377

caffe学习笔记1:转化自己的数据为(leveldb/lmdb)文件

环境:ubuntu16.04 CPU 经过千难万险将环境配置好之后,MNISt数据集也测试过的,MNIST数据集杀机caffe自带的数据集,如果我们要处理自己的数据的话,我们就需要做一些转化了...
  • heimu24
  • heimu24
  • 2016年12月12日 12:36
  • 851

get_mnist.sh1 get_mnist.sh2 create_mnist-lmdb train_lenet

  • 2017年09月20日 11:08
  • 1KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:将数据转换为caffe可用的lmdb格式(convert_data_lmdb.sh 解析)
举报原因:
原因补充:

(最多只允许输入30个字)