首先,
python
接口文件在安裝好的
darknet
目錄下的
python
文件夾,打開就
可以看到
這里的
darknet.py
文件就是
python
接口
用編輯器打開查看最后部分代碼:
使用十分簡單,
先將網絡配置加載進去,
然后進行檢測就行了。
但其實現在還不能直接用,
主要是以下兩點:
1
、在
python
目錄下打開終端,輸入
python?darknet.py
結果如下
錯誤提示:
123456Traceback
(most
recent
call
last):File
“
darknet.py
”
,
line
39,
inlib
=
CDLL(
“
libdarknet.so
”
,
RTLD_GLOBAL)File
“
/home/ubuntu/anaconda3/lib/python3.6/ctypes/init.py
”
,
line
348,
in
initself._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
結果如下:
錯誤提示:
1234Traceback
(most
recent
call
last):File
“
darknet.py
”
,
line
136,
innet
=
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
就行了,如:
123net
=
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")
再次運行: