Darknet-Yolov3不显示检测框问题汇总

Darknet-Yolov3不显示检测框问题汇总_第1张图片

makefile里面的OPENCV配置项是为了能实时显示检测结果框,没有这个也没关系,可以在项目根目录看predicts的接测结果,会通过内置绘图把框画上去,不依赖opencv。

另外一种因为配置失误导致没有检测框的解决方案是:

修改cfg文件,例如cfg/yolov3.cfg

注意看开始几行,上图表示的是训练模式,要改成下图的样子:

这个才是测试模式。这两个模式是有区别的,训练模式下官方权重会有检测结果和检测框,但是自定义的数据集训练出来的权重就没有,如果将模式改为测试模式,那么无论是自定义的还是官方的都有。应该是没有检测结果导致的没有检测框。

/ *------------------------------ 2022年2月16日 更新---------------------------------------*/

最开始试了https://github.com/AlexeyAB/darknet

可惜在2020年以后改成了CUDA10支持的,9系显卡上cuda10没法对上显卡驱动

然后试了https://pjreddie.com/

无非就是

[opencv-python     4.2.0.34]

git clone https://github.com/pjreddie/darknet.git
拖不下来去码云
cd darknet
改makefile,
GPU,CUDNN,OPENCV 设为 1
下载权重 https://pjreddie.com/darknet/yolo/
用迅雷下很快
make

然后来去匆匆 啥都没有 没有检测结果

上一篇博客跑paddlepaddle的时候 为了配合paddle环境 cuda=9.0 cudnn=7.4.1

当然这个版本的yolo我部署过好几次了 

有没有检测框全靠缘分

直到我把GPU=1,CUDNN=0,OPENCV=1之后,检测框出来了,但是检测时间9系显卡0.45秒左右,很慢

所以一定是cudnn搞的鬼,但是cudnn要看cuda的版本,还要看TensorFlow的版本

这是个坑~

可能遇到的问题:

1、darknet-yolo:fatal error: opencv2/opencv.hpp: No such file or directory

sudo apt install libopencv-dev

2、yolov3没有检测框的问题见上面,训练的时候要把CUDNN=1加回来,且batchsize部分不能=1。

3、关于训练的时候-nan的问题,Region xx里面有一个不为nan据说就可以,造成这个现象的原因是数据集的问题。开始用的浣熊数据集,只有Region 82有数据,100个epoch之后没什么变化,可能是训练的不够。换成了一个摄像头检测车辆行人的,Region 82/94/106全都有数据

4、有的时候nan的问题可能是darknet53.conv.74跟你要训练的数据不太相符,直接从头训练可能更好一点。训练命令不写预训练权重地址就可以。

5、tiny-yolov3-voc更快一些

6、恢复训练不成功,直接把最后的权重转存为final.weights。检查一下cfg里面yolo的网络参数文件中,是不是训练模式,测试模式会发生这种现象。

你可能感兴趣的:(深度学习CV方向,tensorflow,深度学习,opencv)