首先,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")
再次運行:
出現這個就說明成功了,之后就可以在上面添加自己的代碼了。