標籤:size think val 需要 好的 還需要 creat 也有 命名
環境:Windows
最近用Caffe跑了一下AlxNet網路,現在總結一下資料處理部分:(處理過的資料打包連結:http://pan.baidu.com/s/1sl8M5ad 密碼:ph1y)
(1)獲得資料集,途徑有:
1.Benchmark(資料庫) AFLW FDDB
2.最新論文(2016)
3.Thinkface論壇
資料量:龐大的資料量支撐,最少1w張(正,負樣本各一萬張),格式如下:
xxxx.jpg x1,y1,x2,y2(標註label),即人臉所在矩形框的座標
xxxx.jpg x1,y1,w,h
我是從Thinkface論壇上直接下載的經過裁剪的人臉資料;
(2)利用下載下來的資料集製作正負樣本以及.txt檔案:
以下是我的方法,可能有點笨拙:
1.先建立imageset_2檔案夾作為總的工程檔案夾,然後在其中建立兩個檔案夾,一個命名為0,一個命名為1,分別放入裁剪好的人臉資料和非人臉資料,再對圖片進行重新命名(人臉圖片命名為face_xxxx,非人臉圖片命名為non_face_xxxx);
2.再建立mix、val、train檔案夾(train檔案夾中再建立兩個檔案夾,一個命名為0,一個命名為1),編寫一個python小程式,將0和1中的圖片經過混合後放入mix檔案夾,在mix檔案中取10%放入val檔案夾作為測試資料,再取剩下的90%將其中的人臉圖片放入train檔案夾中的0檔案夾,非人臉圖片放入1檔案夾(正樣本5800張,負樣本20000張左右);
3.先製作train.txt,在train中的0檔案夾中寫一個.bat檔案,內容如下:
dir /b/s/p/w *.jpg > train_0.txt
上述命令在建立的train_0.txt檔案寫入0中的每張圖片的絕對路徑,然後再使用txt的替換功能去掉絕對路徑,再在後面加上Label值,形式如下:
對於1也如上進行操作,得到的train_1.txt中的內容如下:
然後再將兩個檔案中的內容整合到train.txt檔案中,就得到了我們需要的train.txt檔案;
對於val.txt檔案我們也進行類似操作,不過我們也要先將val檔案夾中的圖片分到0和1兩個檔案夾(因為val裡既有人臉圖片也有非人臉圖片,無法使用替換功能),然後製作val.txt檔案;
(3)將正負樣本轉換為lmdb格式:
在Windows下調用caffe安裝根目錄下BUild->x64->Debug中有一個convert_imageset.exe檔案來製作lmdb檔案(有的人有可能只有.cpp,那麼就還需要經過VS的編譯產生.exe)
在Linux下則調用examples->imagenet中的create_imagenet.sh檔案,並進行改寫(參見網上相關部落格)
這裡我介紹的是如何在windows下轉換lmdb格式(要自己寫.bat檔案,滿滿的淚。。。。)
首先在Imageset_2檔案夾中寫一個create_imageset_2.bat檔案,內容如下:
然後執行就會在後面相應的路徑中建立lmdb檔案;
(4)映像預先處理
使用Build中的compute_image_mean.exe將映像減去均值,.bat檔案內容如下:
得到對應的.binaryproto檔案
(5)修改solver.prototxt和train.prototxt檔案
簡單一點,我們只需要修改其中的路徑即可(注意,路徑用\\或者/,千萬不要用\!!!!!!!!)
用CPU的話,solver:CPU,GPU的話相應修改即可。
(6)訓練網路:
編寫train.bat檔案開始訓練,內容如下:
雙擊就開始訓練了:
配置:i7,8G,CPU訓練,已經一天了還沒好,強烈建議GPU!!!!
《Caffe下跑AlxNet之資料處理過程》