1. 程式人生 > >目標檢測算法SSD在window環境下GPU配置訓練自己的數據集

目標檢測算法SSD在window環境下GPU配置訓練自己的數據集

等等 過程 采集 span 數據轉換 都是 too bsp nvidia

由於最近想試一下牛掰的目標檢測算法SSD。於是乎,自己做了幾千張數據(實際只有幾百張,利用數據擴充算法比如鏡像,噪聲,切割,旋轉等擴充到了幾千張,其實還是很不夠)。於是在網上找了相關的介紹,自己處理數據轉化為VOC數據集的格式,在轉化為XML格式等等。具體方法可以參見以下幾個博客。具體是window還是Linux請自行對號入座。

Linux:http://blog.sina.com.cn/s/blog_4a1853330102x7yd.html

window:http://blog.csdn.net/buaalei/article/details/55094879

數據轉換好以後,接下來的工作就是在window下搭建SSD訓練環境了,這裏面有很多地雷,我本人也是反復嘗試反復修改幾天後才得以成功。

1 首先看你的電腦配置是否有GPU,如果沒有GPU那就很好辦了,首先下載SSD模型,鏈接:https://github.com/conner99/caffe,(當然也要的人是下載window-caffe的,然後再往裏面添加SSD相關的文件,但是很明顯多此一舉了)。所以我們還是站在巨人的肩膀上吧。

2 下載好了ssd的caffe環境,接下來就是安裝CUDNN,CUDA,PYTHON等的配置,這裏參考的文獻很多我就不再贅敘了,當然如果你是CPU環境,那麽不需要配置CUDNN環境。

3 安裝好了SSD環境後,由於SSD訓練還需要第三方庫,這裏也有提供,鏈接:http://pan.baidu.com/s/1eSaP3rW 密碼:nuja ,具體過程如下:

(1)在caffe-master\src\caffe下新建3rdparty文件夾,裏面添加hungarian.cpp

(2)在caffe-master\include\caffe下新建3rdparty文件夾,裏面添加hungarian.hpp

4 接下來這個一定要改,不改的話會反復出現類似於:error MSB3721: 命令“"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v7.5\bin\nvcc.exe" ....等錯誤。我本人在此被坑幾天,頭發都掉了一地,哎。這裏的解決辦法是在detection_output_layer.cu,detection_output_layer.cpp兩個文件中註釋掉所有出現的regex和rv的語句;然後再detection_output_layer.hpp中將語句#include <boost/regex.hpp>註釋掉。此外,在libcaffe項目下的bbox_util.cu文件,註釋掉thrust相關的內容,如下所示: //#include "thrust/functional.h"

//#include "thrust/sort.h"

.....

//thrust::sort_by_key(&confidence[0],&confidence[0]+num_remain,&idx[0],

//thrurst::greater<Dtype>());*/

5 上面的執行完畢之後,恭喜你基本上可以生成libcaffe、caffe.exe文件,先編譯libcaffe,再caffe(一般都是Release下)。

6 後面就簡單了,寫一個bat命令,設置好相應的solver.prototxt文件就可以開始訓練了。

上面只要按照這個流程來,不要偷懶,基本上沒什麽大問題,而我總是感覺別人說的不一定對,抱著不裝南墻不回頭精神去配置,結果就是大幾天時間揮霍掉了,希望大家謹慎對待,不過,說實在的自己實現這一過程,從數據采集,數據擴充,轉化格式,再到配置SSD環境,再到開始訓練,收獲良多,或許這就是自己動手的好處吧。這裏附上我正在訓練的過程,GPU速度杠杠的。

技術分享圖片

期待能得到好的結果,也祝大家好運。有什麽問題歡迎留言交流,哈哈。最後附上一些好的相關博客:

http://blog.csdn.net/gxb0505/article/details/73702451

http://blog.csdn.net/maweifei/article/details/76685755

https://github.com/weiliu89/caffe

目標檢測算法SSD在window環境下GPU配置訓練自己的數據集