& darknet_video.py采用Python对darknet训练的模型进行测试,其中调用了yolo的DLL库。
(YOLO DLL 或 SO库 编译详见:
/AlexeyAB/darknet “How to use Yolo as DLL and SO libraries”板块。)
将编译完成的库文件 yolo_cpp_dll.dll 或 yolo_cpp_dll_no_gpu.dll 另存再加载时会产生报错:
from ctypes import *
winGPUdll = "./yolo_cpp_dll.dll"
lib = CDLL(winGPUdll, RTLD_GLOBAL)
File "C:\Users\xx\Anaconda3\lib\ctypes\__init__.py", line 351, in __init__
self._handle = _dlopen(self._name, mode)
OSError: [WinError 126] 找不到指定的模块。
而在darknet-master\build\darknet\x64下加载dll时,不会出现该问题。
则原因定位为:加载yolo_cpp_dll.dll 时,该dll还依赖其他动态库, 需将其依赖的动态库一并拷贝,可调用成功yolo_cpp_dll.dll。 yolo_cpp_dll.dll依赖的库为:。只有也被Python访问到,方可load yolo_cpp_dll.dll。