在win10下編譯yolov4

最近在研究yolov4在win10下如何進行編譯,不說廢話了,直接記錄一下我研究的過程以及遇到的錯誤和解決方案,希望能夠幫助大家。

 

0 環境

系統:win 10

GPU:GTX 2080Ti

CUDA:10.0

cuDNN:7.4.1.5

OpenCV:3.0.0

 

1 安裝OpenCV

因爲實驗室win系統還沒有安裝OpenCV,所以需要安裝OpenCV。我下載的版本是OpenCV3.0,下載之後將解壓之後的文件放在了D盤,接着就需要將OpenCV的添加到環境變量中了。

(1) 將OpenCV的build目錄添加到環境變量中

這裏我們需要創建一個新的變量名:OPENCV_DIR,它的值就是你解壓之後OpenCV的build文件的路徑

(2) 將OpenCV的bin的目錄添加到環境變量中

在剛開始的時候,我並沒有將這個路徑添加到環境變量中,最後編譯完成之後,運行darknet.exe文件,報瞭如下錯誤

這個錯誤是說系統並沒有找到OpenCV的opencv_world300.dll文件,所以我們需要將環境bin的路徑添加到系統環境變量中,讓系統知道這個文件的位置

點擊Path,然後進行編輯

點擊新建,然後輸入bin的地址

因爲x64文件夾下有兩個子文件,我就將兩個子文件的bin路徑都添加到了環境變量中了

補充:在yolov4的README中,作者還提到一種方法,就是將opencv的bin文件下的下面兩個文件複製到\darknet\build\darknet\x64文件下

這樣有一個缺點就是,每當你編譯的新的程序需要使用opencv的時候,你就需要複製一次,所以我還是直接添加了bin的環境變量了吧。

 

2 使用visual studio 2015編譯darknet

2.1 問題一

在使用vs2015打開darknet\build\darkent\darknet.sln文件的時候,在vs2015中報如下錯誤:

C:\Users\Administrator\Desktop\darknet\build\darknet\darknet.vcxproj(55,5): 
未找到導入的項目“C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\BuildCustomizations\CUDA 10.0.props”。
請確認 <Import> 聲明中的路徑正確,且磁盤上存在該文件

報這個錯誤主要有兩個原因:

原因一BuildCustomizations夾下沒有CUDA 10.0.props這個文件

解決方案:打開你安裝CUDA的文件,參考下面的路徑,將文件下面的所有文件都複製到VS的BuildCustomizations文件夾下,也就是剛纔報錯的那個文件夾下。

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0\extras\visual_studio_integration\MSBuildExtensions

原因二:BuildCustomizations文件下存放的是你當前系統上的CUDA版本(假如是CUDA 9.0),如果你安裝的不是CUDA 10.0,這樣你就需要修改編譯文件中關於CUDA 10.0的相關內容了,將CUDA 10.0改成CUDA 9.0。我是使用sublime打開darknet.vcxproj文件,然後查到關於CUDA 10.0的信息,然後將其改成你對應的CUDA版本(一共要修改兩處

第一處:

第二處: 

 

2.2 問題二

在編譯之前,我們需要將VS2015中的Debug改成Release,將Win32改成X64

 

2.3 問題三

修改之後,你就可以生成exe文件了,具體如下

在生成過程中,又報了一個錯誤:

“waitKeyEx”: 不是“cv”的成員

然後,我就通過錯誤定位到了源文件位置,

將cv::waitKeyEx()函數改成了cv::waitKey()函數。然後重新生成。成功

 

2.4 問題四

在編譯的過程中又出現了這個錯誤

LINK : fatal error LNK1104: 無法打開文件“opencv_world400d.lib”---VS2017+OpenCV配置過程

我是參考這位老哥的博客

 

3 測試圖片

打開終端,切換到darknet\build\darknet\x64目錄下,然後運行下面的命令:

darknet.exe detector test data/coco.data cfg/yolov4.cfg backup/yolov4.weights

運行的過程中會打印網絡信息,就像這樣:

最後,需要你輸入你要檢測圖片的路徑:

檢測結果如下: 

 

4 測試視頻

輸入下面的命令就可以對視頻進行測試了:

darknet.exe detector demo data/coco.data cfg/yolov4.cfg backup/yolov4.weights data/demo3.mp4 -ext_output

 

 

5 參考博客

[1] yolov4:https://github.com/AlexeyAB/darknet

[2] https://blog.csdn.net/weixin_44285715/article/details/88050563

[3] https://blog.csdn.net/amusi1994/article/details/80261735

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章