首先,
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")
再次运行: