测试darknet预训练YOLOv3模型无检测结果无边界框问题求解
Darknet YOLOv3无检测边界框问题解决步骤
- 调整配置文件推理参数
打开yolov3.cfg找到[net]段落,将训练阶段的参数替换为测试专用参数:
你当前运行日志显示batch=16,属于训练阶段配置,会直接导致推理输出异常。[net] batch=1 subdivisions=1 # 原训练用batch=16、subdivisions=16等参数需注释或删除 - 调低检测置信度阈值
执行测试命令时追加-thresh参数降低阈值,默认阈值过高会过滤掉正常检测结果:./darknet.exe detector test cfg/coco.data yolov3.cfg yolov3.weights data/dog.jpg -thresh 0.25 - 校验权重文件完整性
alexeyAB官方发布的yolov3预训练权重大小为236MB左右,若本地权重文件大小不符,说明下载过程中出现损坏,重新下载完整权重即可解决。 - 核对coco.data配置路径
打开cfg/coco.data文件,确认names = data/coco.names配置的路径正确,若类别映射文件路径错误,会导致检测结果无法正常显示边界框。 - 关闭CUDNN_HALF重新编译
MX450属于轻薄本入门级GPU,部分批次对CUDNN_HALF的FP16推理适配存在异常,你可以在编译darknet时将配置项CUDNN_HALF=1修改为CUDNN_HALF=0,重新编译后再进行测试。 - 验证检测结果有效性
执行测试命令时追加-out result.jpg参数,将检测结果保存为本地图片后打开查看,排除OpenCV弹窗显示异常的问题。
内容的提问来源于stack exchange,提问作者Craeti
相关产品推荐
相关产品推荐

