首页 > 解决方案 > 无法通过 OpenCV dnn 模块显示 YOLO 结果

问题描述

我正在尝试通过暗网(AlexeyABpjreddie)训练 YOLO 对象检测,它非常适合通过显示对象

./darknet detector test cfg/obj.data cfg/yolo-obj.cfg yolo.weights data/test.jpg

我使用 160*30 的图像进行训练和测试。我也是通过 Tiny-YOLOv2 和另一个模型完成的,它可以检测到图像中的所有数字。

但是,当我想显示训练重量和特定图像的结果(如波纹管)并使用 Opencv dnn 模块时,我无法正确显示所有对象(数字)。

使用 OpenCV 和 Python 进行 YOLO 对象检测

使用 YOLOv3 和 OpenCV(Python / C++)进行基于深度学习的目标检测

使用 OpenCV 进行 YOLO 对象检测

使用 OpenCV 和 Python 进行 YOLO 对象检测

探索 OpenCV 的深度学习对象检测库

但是当我检查它以获得更大的图像(1280 * 760)时,它可以显示结果。

输入图像

板检测的正确输出: 3

标签: pythonopencvobject-detectionyolodotnetnuke

解决方案


我解决了。当我们想使用 OpenCV 和 DNN 模块显示结果时,我们必须考虑原始图像的缩放比例。例如,当我有一个160*30输入图像时,首先我将其转换为416*78(将宽度或高度之一调整为 416)。现在为了显示结果,我将高度乘以416/78


推荐阅读