為影象分類任務準備影象資料集
Caffe 具有針對影象分類任務定製的內建輸入層(即,每個輸入影象的單個整數標籤)。此輸入 Data
層構建在 lmdb 或 leveldb 資料結構上。為了使用 Data
層,必須用所有訓練資料構建資料結構。
Caffe’s tihuan 的快速指南 3
建立
你必須做的第一件事是建立 caffe 和 caffe 的工具(convert_imageset
是這些工具之一)。
在安裝了 caffe 和 make
之後,確保你也執行了 make tools
。
驗證是否在 $CAFFE_ROOT/build/tools
中建立了二進位制檔案 convert_imageset
。
準備資料
影象: 將所有影象放在一個資料夾中(我在這裡稱之為/path/to/jpegs/
)。
標籤: 建立一個文字檔案(例如,/path/to/labels/train.txt
),每個輸入影象有一行<path / to / file>。例如:
img_0000.jpeg 1
img_0001.jpeg 0
img_0002.jpeg 0
在這個例子中,第一個影象標記為 1
,而另外兩個影象標記為 0
。
轉換資料集
在 shell 中執行二進位制檔案
~$ GLOG_logtostderr=1 $CAFFE_ROOT/build/tools/convert_imageset \
--resize_height=200 --resize_width=200 --shuffle \
/path/to/jpegs/ \
/path/to/labels/train.txt \
/path/to/lmdb/train_lmdb
命令列解釋:
- 在呼叫
convert_imageset
之前將GLOG_logtostderr
標誌設定為 1 表示將日誌訊息重定向到 stderr 的日誌記錄機制。 --resize_height
和--resize_width
將所有輸入影象調整為相同尺寸200x200
。--shuffle
隨機更改影象的順序,並不保留/path/to/labels/train.txt
檔案中的順序。- 以下是 images 資料夾,標籤文字檔案和輸出名稱的路徑。請注意,在呼叫
convert_imageset
之前,輸出名稱不應該存在,否則你將收到可怕的錯誤訊息。
其他可能有用的標誌:
--backend
- 允許你在lmdb
資料集或levelDB
之間進行選擇。--gray
- 將所有影象轉換為灰度。--encoded
和--encoded_type
- 將資料以編碼(jpg / png)壓縮形式儲存在資料庫中。--help
- 顯示一些幫助,檢視來自 tools / convert_imageset.cpp 的 Flags 下的所有相關標誌 **
你可以檢視 $CAFFE_ROOT/examples/imagenet/convert_imagenet.sh
以獲取如何使用 convert_imageset
的示例。
有關更多資訊,請參閱此主題