最近做的项目需要用Yolov3的视频帧识别目标并将结果输出,在网上看了很多修改detector.c源文件重定向输出文件和批量c,但试了很多都没有成功,可能是版本的问题,所以这里建议如果只是输出信息和批量测试,并不需要修改源码,而只需要调用darknet本身的python接口就可以了,如下:
这是官方给的python接口,无需修改重编译darknet原项目,只需在python代码中修改或重定向输出即可
我用的是darknet_video.py识别视频流,而在使用darknet_video.py之前,需要编译一下
图中的yolo_cpp_dll.sln项目,编译方式和darknet.sln一样,先修改yolo_cpp_dll.vcxproj配置文件,然后添加opencv等目录,步骤都是和编译darknet.sln一样的。编译完后会得到一个yolo_cpp_dll.dll文件,有了这个文件,才可以运行darknet_video.py文件。
(如果是识别图片,直接看darknet.py的代码就可以了,无需编译其他东西)
接下来看代码,下面的函数YOLO()是调用darknet进行视频识别的主函数,如下: