YOLO2 window7+cpu版本

  

    研究RCNN系列算法,到現在的YOLO和SSD,因爲平臺原因(窮哭),都嘗試在Window+cpu環境下測試已有模型效果。網上有很多教程,這裏記錄下yolo2的配置過程。

平臺:window+cpu

yolo2代碼:https://github.com/AlexeyAB/darknet


一、下載鏈接裏的yolo2工程,打開darknet-master\build\darknet下的darknet_no_gpu.sln工程,查看工程屬性,作者已經配置好了opencv和pthreads,如下圖,但是opencv的路徑需要自己修改下。附件依賴庫主要是opencv_core249.lib,
opencv_highgui249.lib,opencv_imgproc249.lib三個文件。直到成功編譯工程,會在darknet-master\build\darknet\x64下生成darknet_no_gpu.exe可執行文件。




二、主函數在darknet.c文件裏,如下圖。


要運行起來,需要新建一個cmd文件。參照darknet-master\build\darknet\x64下的darknet_voc.cmd文件新建darknet_no_gpu.cmd文件,因爲是調用上面生成的darknet_no_gpu.exe,所以內容改爲


到這一步還需要一個yolo-voc.weights文件,從官網https://pjreddie.com/darknet/yolo/下載相應的模型參數文件(點擊那個weights下載,只要是yolo2版本的都行),放到darknet-master\build\darknet\x64路徑下。


雙擊運行darknet_no_gpu.cmd,窗口爲


輸入圖像路徑回車即可得結果


三、這樣只能每次跑一張圖像,如果要連續測試可以修改detector.c文件裏的test_detector函數,如果要用到cv空間的一些功能,在文件前面添加using namespace std;using namespace cv;把detector.c改爲detector.cpp,這時注意:因爲yolo都是純c編寫的,darknet.c文件會調用到detector.cpp裏的函數,那邊需要把detector.cpp裏面頭文件包含的部分加上

extern “C”

{

#include “xxx.h”

}

同時,全局函數要在前面聲明並加上extern “C”。如

extern "C" void run_detector(int argc, char **argv);


參考博客:http://blog.csdn.net/qq_14845119/article/details/53589282


-----------------------------------------------------------------------------------------

補充:window+gpu版本也成功運行

打開darknet-master\build\darknet下的darknet.sln工程,然後在工程屬性中進行配置,加入cuda和cudnn(如果不加cudnn,只用GPU,速度並不快,大概一張圖像1s左右)的lib文件和include路徑。我用的是CUDA7.5和cudnn7.5,cudnn有編譯好的庫文件,解壓出來是一個cuda文件夾,裏面有include、lib、dll三個文件夾,把裏面的文件放到CUDA下的對應的include、lib、dll文件夾中,然後設置環境變量那些。一般配置好後就可以跑了。

-----------------------------------------------------------------------------------------

 2018年4月20日注:YOLO不斷更新,目前已到YOLOv3,YOLOv2的代碼作者也做了更新,建議根據最新資源進行配置,AlexeyAB一般都會針對作者的改動及時更新工程,且進行優化。windows環境配置方面比較複雜,linux比較簡單,只是需要python和linux基礎,建議學習這兩個知識,有助於深度學習研究開發。


發佈了34 篇原創文章 · 獲贊 64 · 訪問量 21萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章