[已解决]OpenCV调用yolov3的检测精度下降问题 | darknet检测结果和opencv检测结果不一致问题

it2023-03-22  81

如果你用了opencv调用yolov3的weights,names,cfg做目标检测,你会发现用 ./darknet detector test xxx.... 出来的检测结果不一致,大部分任务都还ok,个别任务的精度就低的离谱。AlexeyAB版和Pjreddie版我都试过了,AlexeyAB版更离谱。目前解决办法是回归本源,用darknet/python/darknet.py这个代码实现接口,本质是调用libdarknet.so动态链接库,Linux下面是so,Windows下面是dll。要注意两件事:

1、里面的权重,names之类的配置文件要用绝对路径,相对路径会报错。

2、路径前面要加b 比如      b"/home/nvidia/darknet/backup/yolov3_550000.weights"     这样,不然会报错。

 

这个接口速度与原始darknet速度一致,RTX2080下推断速度22帧/秒,检测精度与darknet也没有差别,简直完美优化权重初始化方式,改写成函数调用,可以直接放在flask里面用了,这一部分很简单 代码我就不放了

 

最新回复(0)