YOLO V4 :win10+cpu環境的體驗


1、前言

  Yolo V3已經體驗了,接下來是V4版本。

  關於V4版本,學術界褒貶不一。從工業界實際應用角度看,V4做了不少的優化,精度提升了10%,速度提升了12%。詳細參見:

 

  因此,V4必須要體驗和研究一下。

 

2、下載和安裝

  關於windows環境下,使用yolo V4,參考了網上的幾篇文章,大同小異,如:https://blog.csdn.net/weixin_43723614/article/details/105772081

  V4版本最好有GPU,奈何我的筆記本電腦配置的顯卡是:Intel(R) UHD Graphics 620,沒法用GPU。

  因此我只能用CPU版本。於是cuda10.0和cuDNN7的安裝就省略了。

 

2.1、下載v4代碼

  代碼地址:https://github.com/AlexeyAB/darknet

  Download zip或git clone方式都可以(我都試過一遍)。

 

2.2、安裝OpenCV

  到官網下載,我下載的是open 4.2.0版本,win10系統,支持VS2015。(opencv-4.2.0-vc14_vc15.exe)。

  這個實際是個壓縮包,exe執行解壓縮。

  然后按照引用網文的做法,配置OPENCV_DIR環境變量,在Path中增加:opencv\build\x64\vc14\bin的路徑(其它路徑可不加)。

 

2.3、使用gcc編譯的問題

  一開始,我按照V3的編譯的方法,即使用cygwin來編譯。

  用cygwin64 terminal工具,直接在代碼的根目錄下,輸入make,編譯OK,生成了darknet.exe。

  執行圖片檢測:

darknet.exe detect cfg/yolov3.cfg yolov3.weights test.jpg

  可以的。

  再下載一個yolov4.weights文件,執行:

darknet.exe detect cfg/yolov4.cfg yolov4.weights test.jpg

  也是可以的。

  但opencv沒有用起來,提示:

OpenCV isn't used - data augmentation will be slow.

Not compiled with OpenCV, saving to predictions.png instead

  於是修改makefile文件,將第4行的:OPENCV=0改為OPENCV=1。

  於是問題來了。

  1)首先是,pkg-config命令不能識別(makefile文件的第90行),通過更新cygwin的安裝,增加pkg-config項,得以解決。

  2)其次,提示:需要將包含opencv.pc文件的目錄,配置到環境變量PKG_CONFIG_PATH。我上網查了一下,這是linux的opencv版本才有的文件。

  折騰了一番,還是搞不定opencv。不得已,使用網上的CMake的方法。

 

2.4、使用CMake

  參考之前引文的方法,先到官網下載CMake,然后類似配置。

  配置VS2015 VC14。

  關於配置,我的電腦不支持GPU,因此ENABLE_CUDA、ENABLE_CUDANN、ENABLE_CUDANN_HALF不勾選。

  一個小坑:USE_INTEGRATED_LIBS必須勾選,我一不小心去掉勾選,結果報了一堆下列錯誤:

錯誤 C2011 “timespec”:“struct”類型重定義 darknet E:\workspace\darknet\3rdparty\pthreads\include\pthread.h 320

  配置(configure)完成后,然后generate,沒有問題。然后再點擊open project,打開VS2015。

  選擇:release、x64,build all。

  OK。

  將編譯生成的darknet.exe復制到:\build\darknet\x64\目錄下。此為darknet.exe的運行環境。

 

3、效果體驗

  圖片檢測:

darknet.exe detector test cfg/coco.data yolov4.cfg yolov4.weights -ext_output dog.jpg

  視頻檢測:

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

  由於只使用CPU,沒有GPU,openCV顯示視頻非常卡頓(FPS=0.2)。網上說,2G內存都沒法試驗,會內存溢出。我的電腦內存有16G,故只是慢一些。


免責聲明!

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



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