- 如果你用了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里面用了,这一部分很简单 代码我就不放了