python - 给定 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
所以我不知道在哪里绘制边界框。
有小费吗?
解决方案
你不能使用 ResNet。ResNet 有一个 FC 层来处理位置信息。尝试改用 YOLO。它具有非常有效的位置和对象分类功能。另一个解决方案不是使用 Keras,而是使用 OpenCV 的内置 Haar Wavelet Transforming Cascade。此链接包含训练 OpenCV Haar Cascade 所需的所有知识。
推荐阅读
- spring-boot - Spring Boot批量使用只读帐户导出数据
- ios - onMessage 在 iOS 上运行多个异步任务
- angular - 当角度发生错误时,createEffect 会导致持续加载
- python - 如何使用python在excel中的单元格范围内的单元格范围内添加数据验证
- mysql - 如何将表 postgres 从 docker 导出到本地 macos
- python - 类型对象'multichoice'没有属性'_default_manager'
- docker - 在ubuntu中安装docker并启动问题
- python - 为什么使用 py2app 模块创建 mac 文件时出现错误?
- javascript - 最初打开下拉列表的第三项并允许它在单击时关闭
- angular - 在 Ionic/Angular 中清除导航历史