圖像數據轉換成lmdb文件

在根目錄下的tools文件夾下,提供了文件:convert_imageset。文件的左右是用於將圖片文件轉換成caffe框架中能直接使用的db文件。

文件使用格式:

convert_imageset [FLAGS] ROOTFOLDER/ LISTFILE DB_NAME

需要帶4個參數:

FLAGS:圖片參數組

ROOTFOLDER/:圖片存放的絕對路徑,從根目錄開始

LISTFILE:圖片文件列表清單,一般爲一個txt文件,一行一張照片

DB_NAME:最終生成的db文件存放目錄

如果圖片已經下載到本地,那麼首先需要創建一個列表清單,保存爲txt。

以下以caffe中自帶的圖片爲例,創建腳本生成train.txt文件

sudo vi examples/images/create_lmdb.sh
# /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.."

接下來了解FLAGS這個參數組:

-gray:是否以灰度圖的方式打開圖片。程序調用opencv中的imread打開圖片,默認false。

-shuffle:是否隨機打亂圖片順序。默認爲false。

-backend:需要轉換成的db文件格式,可選爲leveldb或lmdb,默認後者。

-resize_width/resize_height:改變圖片的大小。

-check_size:檢測所有的數據是否有相同的尺寸。默認爲false,不檢查。

-encoded:是否將原圖片編碼放入最終的數據中,默認爲false。

-encoded_type:與前一個參數對應,將圖片編碼爲哪一個格式:png,jpg

 

接下來可以調用命令來生成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

 

 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章