Windows下SSD安裝驗證步驟

2020-08-11 23:54:48

Windows-Faster-rcnn安裝全過程

一,軟體版本及硬體型號

1 軟體版本

Win7、CUDA8、CUDNN5.1 for CUDA8、opencv2.4、VS2013

2 硬體型號

I7700K、記憶體16G、固態硬碟500G、華碩猛禽1080ti

3, win7系統安裝過程

選擇光碟安裝或U盤安裝都可,注:win7系統和win10系統的faster-rcnn安裝過程應該是一樣的

在涉密機上安裝時,需要安裝USB3.0驅動,使用華碩主機板的光碟驅動安裝。

 

二,安裝NVIDIA顯示卡驅動和VS2017

1,查詢NVIDIA驅動:首先去官網(http://www.nvidia.com/Download/index.aspx?lang=en-us)檢視適合自己顯示卡的驅動:

下載的驅動版本如下:

1080Ti版本的最好不要用1070的驅動,去官網下載最新的驅動,下載的是387.92版本

2, 安裝NVIDIA驅動雙擊.exe檔案即可安裝,安裝完畢後,在桌面空白處單擊滑鼠右鍵->個性化->選擇Aero主題,若工作列變爲透明,則說明驅動安裝成功。

3,下載VS2017,安裝VS2017

三,安裝CUDA

1 ,下載CUDA

CUDA是NVIDIA的程式語言平臺,想使用GPU就必須要使用cuda

首先在官網上(https://developer.nvidia.com/cuda-downloads)下載CUDA:

2 ,安裝CUDA:雙擊安裝,選擇預設路徑及元件安裝

環境變數設定:

在計算機上點右鍵,開啓屬性->高階系統設定->環境變數,可以看到系統中多了CUDA_PATH和CUDA_PATH_V8_0兩個環境變數,接下來,還要在系統中新增以下幾個環境變數:

CUDA_SDK_PATH=C:\ProgramData\NVIDIA Corporation\CUDA Samples\v8.0

CUDA_LIB_PATH=%CUDA_PATH%\lib\x64

CUDA_BIN_PATH=%CUDA_PATH%\bin

CUDA_SDK_BIN_PATH=%CUDA_SDK_PATH%\bin\win64

CUDA_SDK_LIB_PATH=%CUDA_SDK_PATH%\common\lib\x64

然後,在系統變數 Path 的末尾新增:

;%CUDA_LIB_PATH%;%CUDA_BIN_PATH%;%CUDA_SDK_LIB_PATH%;%CUDA_SDK_BIN_PATH%;

3,重新啓動計算機。

4,驗證CUDA8.0已正確安裝: 開啓cmd,輸入nvcc -V(若有信心安裝正確,此步可忽略)

結果如下圖:

若出現nvcc fatal : Cannot find compiler 'cl.exe' in PATH"

解決方案:在Path末尾新增cl.exe的路徑:

C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\amd64

四,編譯CUDA8.0自帶的samples

1. 在C:\ProgramData\NVIDIA Corporation\CUDA Samples\v8.0目錄下,用vs2017,開啓Samples_vs20,7.sln如果這時候出現:

此時,是未找到CUDA 8.0.props

解決方案:將C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0\extras\visual_studio_integration\MSBuildExtensions下的4個檔案複製到C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\BuildCustomizations目錄下,重新啓動VS2017

2. 先選擇release模式(debug會很慢),選中解決方案Samples_vs2013,重新生成解決方案

3. 需要說明的是個別例子編譯失敗,比如自己編譯的時候成功135個,失敗10個。失敗的原因是缺乏相應的標頭檔案;失敗也沒有什麼影響

4. 編譯成功後可在C:\ProgramData\NVIDIA Corporation\CUDA Samples\v8.0\bin\win64\Release目錄下面 下麪找到全部例子的可執行檔案

五,安裝cuDNN(上傳版需要去掉賬號)

1 下載cuDNN

cuDNN是GPU加速計算深層神經網路的庫

首先去官網(https://developer.nvidia.com/rdp/cudnn-download)下載cuDNN,需要註冊一個賬號才能 纔能下載:下載for windows7

2, 安裝cuDNN

(1)下載完成後解壓,cuda目錄下有bin,include,lib三個資料夾

(2)拷貝目錄至CUDA8.0的資料夾:分別將cuda\bin、cuda\include、cuda\lib\x64三個目錄中的內容拷貝到C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0對應的bin、include、lib\x64目錄下即可

六, 安裝SSD

1, 下載Windows版本的Caffe-SSD原始碼

下載鏈接:https://github.com/conner99/caffe,選擇ssd-microsoft 分支

2修改CommonSettings.props檔案

(1)開啓caffe-ssd-microsoft資料夾,然後看到一個windows資料夾,然後繼續開啓windows資料夾,看到裏面一個CommonSettings.props.example檔案,複製出來一份,並改名字爲CommonSettings.props

(2) 修改CommonSettings.props檔案

 CudaVersion改爲8.0

<UseCuDNN>true</UseCuDNN>

根據自己顯示卡的計算能力更改CudaArchitecture

<CudaArchitecture>compute_61,sm_61</CudaArchitecture>

3,編譯前自動下載NugetPackages

(1) 將libcaffe設定爲啓動項

(2) 一定要將解決方案改爲「release」,因爲下載的NugetPackages包和這個release是對應的;如果選擇debug,則下載的NugetPackages包也是debug版的,會導致用release編譯時報錯

(3) C/C++ -> 常規 裡的將警告提示爲錯誤修改 爲否

(4)右鍵選擇「生成」,開始下載NugetPackages,由於網速的原因開始的時候不動,不要以爲有問題,檢視C:\Users\jc\AppData\Local\NuGet下的Cache檔案中的內容,會發現檔案在不斷變大;在C:\Users\jc\AppData\Roaming\NuGet中也會產生檔案

(5) 若工程編譯時出現無法載入NugetPackages\opencv2.4.10等錯誤,是因爲NugetPackages包沒有載入成功

解決方法:

1) 如果原來C:\Users\jc\AppData\Local和C:\Users\jc\AppData\Roaming中的NuGet\Cache和NuGet資料夾存在,試着刪除他們重新編譯

2) 如果這兩個資料夾不存在,試着新增他們重新編譯

3) 這兩個資料夾中的內容可能起着引導載入的作用,變化可能會導致編譯的成功

4, 編譯libcaffe

(1)編譯caffe時,報錯:錯誤 4622 error C1189: #error : ERROR macro is defined. Define GLOG_NO_ABBRE

解決方法:

是一個宏定義的地方出現了衝突

在工程加上預編譯宏GLOG_NO_ABBREVIATED_SEVERITIES:

C/C++   -->  前處理器   -->   前處理器定義   -->  加上GLOG_NO_ABBREVIATED_SEVERITIES,儲存

參考網址:http://blog.csdn.net/pi9nc/article/details/20995817

(2)編譯caffe時,報錯:與boost相關的regex正則表達式庫出現問題,在專案中我們不需要正則表達式,所以將相關語句註釋掉即可

解決方法:

1) 開啓libcaffe/include/layers/detection_output_layer.hpp,將與regex相關的標頭檔案註釋掉:

2) 開啓libcaffe/src/layers/detection_output_layer.cpp,將所有出現regex和rv的語句註釋掉

3) 開啓libcaffe/cu/layers/detection_output_layer.cu,將所有出現regex和rv的語句註釋掉

(3). 編譯,報錯:expected an identifier in caffe.pb.h

解決方法:修改libcaffe/cu/util/bbox_util.cu,註釋掉所有帶thrust的語句

(4). 編譯,報錯:找不到」.\caffe\3rdparty\hungarian.h」檔案;找不到」.\src\caffe\3rdparty\hungarian.cpp」檔案

解決方法:下載檔案:http://pan.baidu.com/s/1mhYuf7y,密碼:3jp2

將裏面的hungarian.hhungarian.cpp檔案拷貝出來

1) 在D:\caffe-ssd-microsoft\include\caffe中新建資料夾3rdparty,將hungarian.h檔案拷貝進來

2) 在D:\caffe-ssd-microsoft\src\caffe中新建資料夾3rdparty,將hungarian.cpp檔案拷貝景來

3) 不需要在libcaffe工程中新增,重新編譯,編譯器會自動在libcaffe中新增兩個檔案及對應的3rdparty資料夾

4). 編譯成功後接着編譯caffe工程,因爲ssd_detect.exe的執行依賴caffe.exe

5). 編譯ssd_detect工程,最後得到ssd_detect.exe檔案

5執行ssd_detect.exe報錯解決方法

(1). 在caffe-ssd-microsoft下新建sse_dect.bat檔案,新增內容

D:/caffe-ssd-microsoft/Build/x64/Release/ssd_detect.exe D:/caffe-ssd-microsoft/models/VGGNet/VOC0712/SSD_512x512/deploy.prototxt D:/caffe-ssd-microsoft/models/VGGNet/VOC0712/SSD_512x512/VGG_VOC0712_SSD_512x512_iter_16000.caffemodel D:/caffe-ssd-microsoft/examples/images/pictures.txt

對照上面的指令新增檔案  ,雙擊執行.bat檔案

(2). 出現錯誤

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

F0306 10:40:29.101408 39034 upgrade_proto.cpp:79] Check failed: ReadProtoFromTextFile(param_file, param) Failed to parse NetParameter file: models/VGGNet/VOC0712/SSD_300x300/deploy.prototxt

*** Check failure stack trace: ***

解決方法:

對照linux下的caffe.proto檔案進行更改,在1302行PriorBoxParameter中的末尾新增step、offset等成員:

(3)出現錯誤

caffe.NetParameter:1617:29:Invalid escape sequence in string literal

錯誤原因:

在windows中路徑分隔符是’\’,直接把windows中的路徑複製到protobuf檔案中在解析的時候會出現這個錯誤

解決方法:將‘\’改爲‘/’或者‘\\’

models\VGGNet\VOC0712\SSD_512x512\deploy.prototxt中最後幾行的輸出路徑改爲‘/’格式的

參考網址:http://imweirui.com/blog/2017/06/14/caffe-%E5%85%B3%E4%BA%8E%E9%94%99%E8%AF%AFerror-parsing-text-format-caffe-netparameter-1417-invalid-escape-sequence-in-string-literal/

(4) 出現錯誤

D:\caffe-ssd-microsoft\data\VOC0712缺少test_name_size.txt

解決方法:在D:\caffe-ssd-microsoft\data\VOC0712中新增test_name_size.txt(從linux版本中拷貝)

(5) 解決以上錯誤後重新編譯,即可執行ssd_detect.exe