Windows Caffe(三) 映像資料轉化為Caffe可以啟動並執行資料

來源:互聯網
上載者:User

標籤:class   截取   gravity   測試資料   刪除   img   leveldb   參數   準備   

在運行Caffe內建的兩個例子的時候,我們的資料都來自互連網,是直接下載的二進位檔案。

但我們大多數情況下使用的是原始的圖片資料(如.jpg .png等),接下來研究如何將原始的圖片資料轉化為caffe可以啟動並執行資料。

1、準備圖片資料caffe安裝完成之後,在example/images檔案下會有四張.jpg圖片,cat.jpg, cat gray,jpg, cat_gray.jpg, fish-back.jpg2、產生圖片清單我們寫需要一個sh指令碼,調用Linux命令產生圖片的清單。Windows下如何運行shell指令碼,第一個實驗有說。編寫指令碼的原因是我們有大量的訓練資料和測試資料,手寫清單不大現實。具體操作在example/images檔案夾下建立一個create_filelist.sh 檔案,檔案內容如下:
# /usr/bin/env shDATA=D:/Caffe/Caffe_BVLC/examples/imagesecho "Create train.txt..."exec 2>>log.txtrm -rf $DATA/train.txtfind $DATA -name *cat.jpg | cut -d ‘/‘ -f6 | sed "s/$/ 1/">>$DATA/train.txtfind $DATA -name *bike.jpg | cut -d ‘/‘ -f6 | sed "s/$/ 2/">>$DATA/tmp.txtcat $DATA/tmp.txt>>$DATA/train.txtrm -rf $DATA/tmp.txtecho "Done.."
這裡對指令碼做下大致的解釋DATA=D:/Caffe/Caffe_BVLC/examples/images 圖片所在位置
exec 2>>log.txt 將執行期間所遇到的錯誤寫入log.txt檔案夾下rm -rf遞迴強制移除find $DATA -name *cat.jpg | cut -d ‘/‘ -f6 | sed "s/$/ 1/">>$DATA/train.txt 在$DATA目錄下,尋找*cat.jpg檔案,cut表示截取路徑,-f6表示第六層目錄下(根據自己的情況修改)。sed表示在每行後面加上標註。
cat $DATA/tmp.txt>>$DATA/train.txt 將temp.txt檔案中的內容寫到train.txt檔案後面,相當於兩個檔案合并。
運行該檔案,會產生一個train.txt的檔案。3、產生lmdb格式的檔案將圖片資料轉化為lmdb格式的檔案需要使用caffe提供的convert_imageset檔案該檔案所在目錄:D:\Caffe\Caffe_BVLC\Build\x64\Release
該檔案的使用格式:convert_imageset [FLAGS] ROOTFOLDER/ LISTFILE DB_NAME分析一下convert_imageset的四個參數

FLAGS

-gray: 是否以灰階圖的方式開啟圖片。程式調用opencv庫中的imread()函數來開啟圖片,預設為false
-shuffle: 是否隨機打亂圖片順序。預設為false
-backend:需要轉換成的db檔案格式,可選為leveldb或lmdb,預設為lmdb
-resize_width/resize_height: 改變圖片的大小。在運行中,要求所有圖片的尺寸一致,因此需要改變圖片大小。 程
序調用opencv庫的resize()函數來對圖片放大縮小,預設為0,不改變
-check_size: 檢查所有的資料是否有相同的尺寸。預設為false,不檢查
-encoded: 是否將原圖片編碼放入最終的資料中,預設為false
-encode_type: 與前一個參數對應,將圖片編碼為哪一個格式:‘png‘,‘jpg‘......
ROOTFOLDER

圖片存放的路徑

LISTFILE

檔案清單

DB_NAME

最終產生的lmdb或leveldb所存放的路徑

具體操作

在example/images檔案夾下建立一個create_lmdb.sh 指令碼,指令碼內容如下:

DATA=D:/Caffe/Caffe_BVLC/examples/imagesrm -rf $DATA/img_train_lmdbD:/Caffe/Caffe_BVLC/Build/x64/Release/convert_imageset.exe --shuffle --resize_height=256 --resize_width=256 $DATA $DATA/train.txt $DATA/img_train_lmdb
執行該指令碼,會在該目錄下產生一個新的檔案,如所示:

至此,將原始的圖片資料轉化為caffe能夠執行的lmdb資料實驗 完成。

如有疑問,歡迎一起探討!



Windows Caffe(三) 映像資料轉化為Caffe可以啟動並執行資料

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.