首页 > 解决方案 > 给定 Keras 预测,如何在 OpenCV 中绘制边界框?

问题描述

我的代码是:

model = ResNet50(weights='imagenet')

ret_val, frame = video_capture.read()
frame = cv2.resize(frame,(224,224))
cv2.imshow(windowName, frame)
frame = np.expand_dims(frame, axis=0)
frame = preprocess_input(frame)

preds = model.predict(frame)
print('Predicted:', decode_predictions(preds, top=3)[0])

我得到的结果是:

Predicted: [('n04550184', 'wardrobe', 0.40715462), ('n04209239', 'shower_curtain', 0.09730709), ('n04005630', 'prison', 0.04603362)]

我没有,x, y, w, h所以我不知道在哪里绘制边界框。

有小费吗?

标签: pythonopencvkerasresnet

解决方案


你不能使用 ResNet。ResNet 有一个 FC 层来处理位置信息。尝试改用 YOLO。它具有非常有效的位置和对象分类功能。另一个解决方案不是使用 Keras,而是使用 OpenCV 的内置 Haar Wavelet Transforming Cascade。此链接包含训练 OpenCV Haar Cascade 所需的所有知识。


推荐阅读