• 安裝cuda7.5

官網下載鏈接:CUDA 7.5 Downloads Archive

根據自己的系統選擇好下載就行,安裝很容易,跟著提示一直點就行,最好安裝在它的默認路徑

ps:也可以安裝cuda8.0 但是後面會遇到一些問題,後面再說。

  • 下載Caffe-SSD的源碼

github地址:conner99/caffe

  • 修改屬性表

解壓下載後的壓縮包,進入windows文件夾,CommonSettings.props.example複製一份命名為CommonSettings.props,然後用編輯器打開。

<CudaVersion>7.5</CudaVersion>

第六行,如果是cuda7.5的話不用改,8.0的話做相應修改。我用GPU沒用CPU,沒用到matlab跟python的介面,也暫時沒用cudnn(用了好像有點問題,以後解決了再更新),因此其餘部分也不需要修改。

  • 下載兩個文件

下載鏈接:pan.baidu.com/s/1mhYuf7

密碼:3jp2

我沒有上傳在自己網盤,直接從這個博客找的下載地址。

解壓得到ssd_new文件夾,將ssd_newsrccaffe路徑下的3rdparty文件夾複製到caffe-ssd-microsoftsrccaffe路徑下,將ssd_newincludecaffe路徑下的3rdparty文件夾複製到caffe-ssd-microsoftincludecaffe路徑下。

  • 用vs2013打開項目,修改相應代碼

1.libcaffe工程中,打開detection_output_layer.hpp、detection_output_layer.cpp 、detection_output_layer.cu注釋掉跟regex相關的代碼段。

2.打開bbox_util.cu,注釋掉帶thrust的代碼段。

3.修改ssd_detect.cpp代碼,顯示單幀圖片檢測結果。

以上修改代碼具體可以參考這個博客,圖文並茂,寫的很好。

4.當然,除了顯示單幀圖片檢測結果,我們用的更多的是視頻檢測,這段修改代碼沒在博客中找到,參考檢測單幀圖片的代碼,我自己修改了下。下圖中有3處 //____________包圍的就是需要額外添加的代碼。

  • 準備得差不多了,將libcaffe工程設置為啟動項(右鍵單擊設置),並且將其屬性頁下:C/C++裡面的將警告視為錯誤設置為否。右鍵點生成。
  • 測試。

生成成功之後,新建個detect_test.bat文件,在裡面分別寫入:

1.ssd_detect.exe路徑;

2.deploy.prototxt文件路徑;

3.訓練好的caffemodel文件路徑;

4.detect_test.txt路徑,這個文件裡面寫入測試圖片/視頻的絕對路徑;

5.--file_type image/video;

6.--confidence_threshold 檢測閾值。

中間用空格隔開。

例如我的這個文件就長這個樣子:

  • 可能遇到的錯誤。

[libprotobuf ERROR ..srcgoogleprotobuftext_format.cc:274] Error parsing text -format caffe.NetParameter: 938:9: Message type "caffe.PriorBoxParameter" has no field named "step"

[libprotobuf ERROR ..srcgoogleprotobuftext_format.cc:274] Error parsing text -format caffe.NetParameter: 938:9: Message type "caffe.PriorBoxParameter" has no field named "offset"

我分別試過2個辦法,有時候成功,有時候不行。

1.打開caffe-ssd-microsoftsrccaffe的cafffe.proto文件,在message PriorBoxParameter裡面添加step和offset。

2.刪除deploy.prototxt文件裡面的全部有step和offset的行。


推薦閱讀:
相關文章