1. 程式人生 > >caffe常用格式binaryproto和leveldb

caffe常用格式binaryproto和leveldb

       深度學習中,我們所用到的圖片格式大多是jpg,jpeg,png等,而且圖片的大小尺寸有時也會不一樣。但是在caffe中資料型別是lmdb或leveldb,那麼我們需要將圖片格式轉換為caffe環境需要的格式。

一、將圖片轉為db格式

       caffe常用的格式db(leveldb/lmdb),在caffe安裝目錄caffe/.build_release/tools下,convert_imageset.cpp可以將圖片轉換為caffe框架中的直接使用的db檔案。

        使用方式:

convert_imageset [FLAGS] ROOTFOLDER/ LISTFILE DB_NAME

(1)引數1:FLAGS:圖片引數組;

(2)引數2:ROOTFOLDER/:圖片存放的絕對路徑;

(3)引數3:LISTFILE,圖片檔案列表清單,一般為txt檔案,一行一張圖片;

(4)引數4:DB_NAME:最終生成的db檔案存放目錄。

??圖片檔案列表清單生成

!!建立sh指令碼檔案

sudo vi examples/images/create_filelist.sh

create_filelist.sh寫入:

# /usr/bin/env sh

DATA=examples/images

echo "Create train.txt..."

rm -rf $DATA/train.txt

find $DATA -name *xxx.jpg | cut -d '/' -f3 | sed "s/$/ 1/">>$DATA/train.txt

find $DATA -name *xxx.jpg | cut -d '/' -f3 | sed "s/$/ 2/">>$DATA/tmp.txt

cat $DATA/tmp.txt>>$DATA/train.txt

rm -rf $DATA/tmp.txt

echo "Done.."

生成lmdb指令碼檔案:

sudo vi examples/images/create_lmdb.sh
#!/usr/bin/en sh

DATA=examples/images

rm -rf $DATA/img_train_lmdb

build/tools/convert_imageset --shuffle \

--resize_height=256 --resize_width=256 \

/home/xxx/caffe/examples/images/ $DATA/train.txt  $DATA/img_train_lmdb

執行指令碼檔案

sudo sh examples/images/create_lmdb.sh

二、binaryproto

caffe安裝目錄下/home/xxx/caffe/.build_release/tools提供了計算均值的compute_image_mean.cpp檔案,執行:

sudo build/tools/compute_image_mean examples/mnist/mnist_train_lmdb examples/mnist/mean.binaryproto

包含兩個引數:

(1)examples/mnist/mnist_train_lmdb:表示計算均值的資料,格式為lmdb的訓練資料;

(2)examples/mnist/mean.binaryproto:表示計算出來的結果儲存檔案。