Windows下Caffe實現圖像分類

前言:最近參加百度點石大賽,完成商家招牌的分類和檢測,把實驗過程簡單記錄下來,具體步驟以下。html

環境配置:windows下的visual studio2013和caffe(cpu版本)環境搭建請看我另外一篇博客:http://www.cnblogs.com/wmr95/articles/9021748.htmlwindows

下面寫寫具體實驗流程:網絡

1.首先把比賽平臺下的數據集下載放到caffe-master路徑下data文件夾中,如圖:工具

首先數據提供的是train和test圖片數據及label的txt文件,具體如圖所示:測試

其中train文件夾下的圖片和train.txt中的內容如圖:ui

2.接下來根據圖片和label信息獲得lmdb格式文件train_lmdb新建一個create_lmdb.bat 文件,內容爲:spa

E:\caffe-master\Build\x64\Release\convert_imageset.exe --resize_height=128 --resize_width=128 --shuffle --backend="lmdb" E:\caffe-master\data\signboard\train\ E:\caffe-master\data\signboard\train.txt train_lmdb  

pause

簡單解釋一下,第一個顯然是你編譯好的caffe中的exe工具,第二和第三指定對圖像進行resize(由於原圖大小尺寸不一),第四個是shuffle參數,隨機打亂一下label的txt列表,第六個--backend指定生成lmdb格式(還能夠指定爲leveldb,另一種格式),第七個指定train文件夾下的圖片,第八個指定train的label信息,最後一個指定獲得的train_lmdb(這個不能添加路徑,由程序本身建立文件夾,若是提早有這個文件夾會報錯)。3d

執行成功截圖:code

在當前路徑下獲得train_lmdb文件,如圖所示:htm

3.根據獲得的lmdb格式文件train_lmdb獲得均值文件

新建一個compute_image_mean.bat文件,代碼內容爲:

E:\caffe-master\Build\x64\Release\compute_image_mean.exe E:\caffe-master\data\signboard\train_lmdb mean.binaryproto
     
pause  

具體意思大概看下就瞭解,不具體解釋了。運行成功截圖爲:

 在當前路徑下獲得的mean.binaryproto文件爲:

4.接下來就準備網絡模型的事情了(簡單舉個例子,我這裏先採用的是cifar10的網絡,接下來以這個爲例)

先將examples下的cifar10拷貝一份命名爲signboard,這裏主要用到兩個prototxt文件:

train_test.prototxt的內容須要作修改:(mean_file和source須要指定路徑,另外咱們是進行100分類,最後的output由10改成100)

這裏須要注意,由於咱們沒有獲得test_lmdb文件,這裏須要把phase的TEST部分刪除,只留下TRAIN部分。

而後再修改solver.prototxt文件:

由於訓練過程當中不包含測試集,因此這裏須要把test部分註釋,不然會出現「Unknown bottom blob 'data' (layer 'conv1',bottom index 0)」的錯誤。

錯誤截圖爲:

5.完成數據處理和網絡模型後,就能夠進行訓練模型了,在caffe-master根目錄下新建一個trian_signboard.bat文件,代碼內容爲:

.\Build\x64\Release\caffe.exe train --solver=.\examples\signboard\cifar10_quick_solver.prototxt  
pause

在caffe-master根目錄下執行這個.bat文件就能夠訓練了,開心的飛起~~訓練過程截圖爲:

這只是初步的把分類實驗跑起來,後期打算作數據加強和finetune操做。期待競賽有個好成績~~

相關文章
相關標籤/搜索