在python中利用h5模型调用摄像头识别水果并框出水果所在位置以及注明其标签
时间: 2024-06-11 13:09:08 浏览: 191
以下是一个使用h5模型调用摄像头识别水果并框出水果所在位置并注明其标签的示例代码:
```python
import cv2
import numpy as np
import tensorflow as tf
from tensorflow import keras
# 加载模型
model = keras.models.load_model('fruit_model.h5')
# 定义水果类别
classes = ['apple', 'banana', 'orange']
# 打开摄像头
cap = cv2.VideoCapture(0)
while True:
# 读取摄像头的一帧
ret, frame = cap.read()
# 将帧转换为模型输入的格式
img = cv2.resize(frame, (224, 224))
img = np.expand_dims(img, axis=0)
img = img / 255.0
# 使用模型进行预测
pred = model.predict(img)[0]
fruit_class = classes[np.argmax(pred)]
fruit_prob = np.max(pred)
# 在图片上框出水果位置并注明标签和概率
cv2.putText(frame, '{}: {:.2f}%'.format(fruit_class, fruit_prob * 100),
(10, 30), cv2.FONT_HERSHEY_SIMPLEX, 1, (0, 255, 0), 2)
cv2.imshow('frame', frame)
# 等待按下q键退出
if cv2.waitKey(1) & 0xFF == ord('q'):
break
# 释放摄像头并关闭窗口
cap.release()
cv2.destroyAllWindows()
```
需要注意的是,这里的h5模型是使用Keras训练得到的,因此需要先安装Keras库并训练得到一个合适的模型。同时,需要将模型保存为h5格式以便加载。
阅读全文