python - 无法通过 OpenCV dnn 模块显示 YOLO 结果
问题描述
我正在尝试通过暗网(AlexeyAB或pjreddie)训练 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 和 Python 进行 YOLO 对象检测
但是当我检查它以获得更大的图像(1280 * 760)时,它可以显示结果。
板检测的正确输出:
解决方案
我解决了。当我们想使用 OpenCV 和 DNN 模块显示结果时,我们必须考虑原始图像的缩放比例。例如,当我有一个160*30
输入图像时,首先我将其转换为416*78
(将宽度或高度之一调整为 416)。现在为了显示结果,我将高度乘以416/78
推荐阅读
- python - 通过经过身份验证的用户 id 获取人员 id
- c++ - 查找名称的最直接声明的名称查找规则在哪里定义?
- c++ - 空对象正在调用一个方法,但程序没有崩溃……如何……为什么?
- vba - 扫雷的 VBA 随机地雷生成
- javascript - 循环遍历对象数组时调用方法
- pm2 - PM2 能否对标记为“错误”的进程采取措施
- android - 如何使用设备的加速度计检测运动增加然后突然停止?
- eigen - 对包含固定大小的 Eigen 类型的结构使用默认的 Eigen::aligned_allocator 是否危险?
- ms-access - 在 Access VBA 中抓取项目并将其从一种形式返回到另一种形式
- ios - Swift 在 UITableViewCells 中保留 UISegmentedControl 值