在windows下用python調用darknet的yolo接口


0,目標

本人計算機環境:windows7 64位,安裝了vs2015專業版,python3.5.2,cygwin,opencv3.3,無gpu

希望實現用python調用yolo函數,實現物體檢測。

 

1,踩過的坑

一開始下載了github上最熱的開源項目https://github.com/pjreddie/darknet

采用cygwin編譯,make后生成了darknet.exe, libdarknet.so和libdarknet.a。

在windows命令行采用darknet.exe,加上參數運行圖片中的物體檢測,一切OK,一切看起來如此美好。

然而,當我運行darknet.py時,始終無法正常運行。

 

如果在cygwin下運行,就報錯segmentation fault 。

 就此問題糾結了一周左右,深刻反省之余在github上偶然發現有個發行版號稱“Windows and Linux version of Darknet Yolo v3 & v2 Neural Networks for object detection”

是上述正統發行版的一個Fork。哈哈,有救了。

2,windows乞丐配置如何編譯EXE和DLL?

從https://github.com/AlexeyAB/darknet網站下載源碼,分別編譯exe和dll文件。

編譯exe。打開darknet_no_gpu.sln,按照其中有opencv,無gpu的配置方法,在vs2015中對一些路徑進行修改,然后編譯,生成exe。測試運行正常!

編譯dll。 打開yolo_cpp_dll_no_gpu.sln,刪除屬性中有關cuda的特性(以符合乞丐版的特性@^@),然后編譯,生成dll。

此處需注意,有可能編譯報錯“無法運行rc.exe”。此時請參考下文解決:

https://stackoverflow.com/questions/14372706/visual-studio-cant-build-due-to-rc-exe

 

 3,windows乞丐配置也能跑darknet.py?

是的。有了DLL,darknet.py調用庫中的函數都正常了。如下圖所示。

可見,.so文件在windows運行環境下,在python中調用會失敗,必須是.dll文件windows才能正常加載。

《完》

 


免責聲明!

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



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