Darknet環境搭建與簡單測試


最近在研究視頻分析相關技術,朋友推薦了darknet開源庫,其中主要使用yolo算法,想了解yolo的朋友請自行百度,下面直接說正題。

一、運行環境

  OS:Windows 10

  顯卡:GTX 1070 Ti

  編譯器/IDE:CMake-3.15.0-rc4-win64x64, Visual Studio 2017,C++編譯工具集:V141,Python2.7

二、依賴庫

  Darknet-master(從github下載,默認使用yolov3)

  OpenCV:4.1.1(從github下載)

  CUDA: 10.1

  CUDNN:10.1(使用這玩意兒做分析時占用GPU資源占用很低)

三、OpenCV編譯

  OpenCV主要使用CMake生成vcxproj項目工程文件,然后使用vs2017進行編譯。

  操作步驟:

  1. 使用CMake-gui.exe工具(需要下載一些東西,而且比較慢,脫機環境下要提前把依賴文件下載好)。

   

 

   注意:上圖中BULID_opencv_world選項選中和不選中差異巨大,編譯Darknet-CUDNN版本所需要OpenCV依賴庫必須選中該選項才能編譯出來;普通版本采用默認配置就行(不選中)。筆者是在兩個目錄下分別編譯了兩個不同的版本,免得混淆。

 

  2. 打開vs工程文件,編譯版本。編譯很慢,耐心等待。筆者直接使用Release x64。

   

 

 

  3. 配置環境變量。本人對CMAKE語法不熟悉,折騰了很久,還是配環境變量來得快。這個步驟主要是為編譯Darknet,熟悉CMAKE語法的同學可以修改CMakeList.txt文件或cmake命令加參數應該也可以搞定。

   

 

  4. 使用CMake-gui.exe生成Darknet在windows平台工程文件,同上面操作。(如果提示OpenCV_DIR、OpenCVConfig類似的錯誤,就是沒找到opencv目錄,上面配好了應該不會有問題。)

    

 

     圖上有CUDNN相關警告,我沒有管它,后面直接改的vcxproj工程配置。

 

  5. 配置工程。注意,有兩個目錄下有darknet.vcxproj文件。

   

    這個是沒有CUDNN版本的

    

 

     這個是帶CUDNN版本的

    編譯時如果通不過,多半是由於包含目錄、庫目錄配置不對導致的,改掉就行。

 

四、測試

  1. 測試前還需要下載神經網絡權重文件,筆者測試只用了yolov3.weights、yolov3-tiny.weights兩個文件。

  2. 准備測試圖片或視頻文件,下面只帖視頻文件測試命令和測試結果。

    視頻文件信息:1080p h264 2Mbps 25fps

    權重文件:yolov3.weights

    

 

   只列出重要的,使用yolov3-tiny.weights,FPS要高得多,但准確率有所下降。

   結論:

      1. 顯存基本等於單進程占用 * 進程數,max process = 3主要是因為打開4路進程顯存不夠用。

      2. 總的fps比較固定,開啟多個進程意義不大。(使用yolov3-tiny.weights時多進程fps總和明顯大於單進程fps,可能跟解碼、IO速度有關,也就是說,算法復雜度低可考慮使用多進程,復雜度較高就沒必要了)

      3. 內存占用、CPU雖然有消耗,但與GPU相比,瓶頸主要還是在GPU上。

      4. cudnn優勢非常明顯,強烈建議使用(NVIDIA自己的東西還是好用)。

 

今天先寫到這里,下一步研究一下API使用和模型訓練。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM