如何调用训练好的h5模型调用摄像头进行水果识别
时间: 2024-06-11 22:10:00 浏览: 156
基于yolov7实现水果(香蕉、橙子、苹果)识别检测源码+训练好模型+配置文件+评估指标曲线.zip
5星 · 资源好评率100%
以下是一些步骤,可用于调用训练好的h5模型来进行水果识别:
1. 导入所需的库和模块,包括TensorFlow,OpenCV和NumPy。
2. 加载训练好的h5模型,使用Keras的load_model函数。
3. 使用OpenCV打开摄像头并捕捉视频流。
4. 对每一帧图像进行预处理,以使其符合模型的输入要求。预处理可能包括调整图像大小、归一化像素值等。
5. 将预处理后的图像输入到模型中进行预测。模型将输出一组概率值,表示该图像属于每个类别的可能性。
6. 在输出中选择概率最高的类别,并将其显示在视频流中。
7. 循环执行步骤3到6,以连续捕捉和识别摄像头中的图像。
以下是一个示例代码,可用于参考:
```python
import cv2
import numpy as np
from tensorflow.keras.models import load_model
# 加载训练好的模型
model = load_model('fruits_model.h5')
# 定义类别标签
class_labels = ['apple', 'banana', 'orange']
# 打开摄像头
cap = cv2.VideoCapture(0)
while True:
# 获取摄像头中的视频流
ret, frame = cap.read()
# 预处理图像,使其符合模型的输入要求
img = cv2.resize(frame, (224, 224))
img = img.astype('float32') / 255
img = np.expand_dims(img, axis=0)
# 对图像进行预测
probs = model.predict(img)[0]
class_idx = np.argmax(probs)
class_label = class_labels[class_idx]
# 在图像中显示预测结果
cv2.putText(frame, class_label, (20, 30), cv2.FONT_HERSHEY_SIMPLEX, 1, (0, 255, 0), 2)
cv2.imshow('Fruit Detection', frame)
# 按下q键退出循环
if cv2.waitKey(1) & 0xFF == ord('q'):
break
# 释放摄像头并关闭窗口
cap.release()
cv2.destroyAllWindows()
```
此代码将循环捕捉摄像头中的图像,并将其传递给模型进行预测。它将在每个图像中显示预测结果,并在按下q键时退出循环。请注意,此示例代码仅用于参考,您可能需要根据自己的模型和应用程序需求进行修改。
阅读全文