darknet 的python接口使用


首先,python接口文件在安裝好的darknet目錄下的python文件夾,打開就可以看到

這里的darknet.py文件就是python接口

用編輯器打開查看最后部分代碼:

使用十分簡單,先將網絡配置加載進去,然后進行檢測就行了。但其實現在還不能直接用,主要是以下兩點:

1、在python目錄下打開終端,輸入 python darknet.py 結果如下
錯誤提示:

Traceback (most recent call last): 
File “darknet.py”, line 39, in 
lib = CDLL(“libdarknet.so”, RTLD_GLOBAL) 
File “/home/ubuntu/anaconda3/lib/python3.6/ctypes/init.py”, line 348, in init 
self._handle = _dlopen(self._name, mode) 
OSError: libdarknet.so: cannot open shared object file: No such file or directory 

原因是darknet.py需要依賴 libdarknet.so文件,該文件其實就在安裝好的darknet目錄下,把libdarknet.so和darknet.py放在同一目錄下就行了。

2、處理好 libdarknet.so 目錄后,再次運行 python darknet.py 結果如下:
錯誤提示:

Traceback (most recent call last): 
File “darknet.py”, line 136, in 
net = load_net(“cfg/tiny-yolo.cfg”, “tiny-yolo.weights”, 0) 
ctypes.ArgumentError: argument 1:……….. : wrong type 

原因是net = load_net(“cfg/tiny-yolo.cfg”, “tiny-yolo.weights”, 0)這個函數最后會將”cfg/tiny-yolo.cfg”, “tiny-yolo.weights”這些參數傳給剛才說到的libdarknet.so這個庫中,而這個庫是用c/c++來寫的,所以出現了這個錯誤。解決方法是在出錯的字符串前面添加一個b就行了,如:

net = load_net(b"cfg/tiny-yolo.cfg", b"tiny-yolo.weights", 0)
meta = load_meta(b"cfg/coco.data")
r = detect(net, meta, b"data/dog.jpg")

再次運行:

出現這個就說明成功了,之后就可以在上面添加自己的代碼了。


免責聲明!

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



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