我如何使用我的tensorflow/keras CNN模型从我的相机(我加载的)预测这个代码?

qyyhg6bp  于 2022-11-25  发布在  其他
关注(0)|答案(1)|浏览(193)

code for predicting on live camera
这是相当简单的我正在尝试做什么,加载我的tensorflow人工智能从文件。试图用它来预测我的现场摄像头(通过谷歌。colab)。
我正在尝试用我制作的人工智能(使用链接中的代码)进行预测,并保存和加载(使用tensorflow:保存load_model)我有一个副本,我在自己的模型中加载,如下所示:

model = load_model("/content/drive/MyDrive/aifolder") # Load from folder saved to.

他们通过以下方式从网上下载:

#face_cascade = cv2.CascadeClassifier(cv2.samples.findFile(cv2.data.haarcascades + 'haarcascade_frontalface_default.xml'))

在标题为网络摄像头视频的代码下,在最底部,他们开始用人工智能预测:

faces = face_cascade.detectMultiScale(gray)

我用我的人工智能模型替换了这一行,如下所示:

#predictions = model.detectMultiScale(gray)  # ( code Commented out) 
predictions = model.predict(gray) #Predict through webcam

我不确定如何校准这个代码以适合我的Tensorflow AI。我真的觉得我缺少了一些非常简单的东西来做这个(比如一个简单的命令)。我是一个初学者,所以我不确定它应该是什么。
编辑:
我已经使用

model.load_model("filepath here")

我现在已经做了:

classes = model.predict(gray)

(而不是之前使用级联模型的方式),我得到以下错误:
ValueError:层“model”的输入0与层不兼容:期望的形状=(无,224,224,3),找到的形状=(32,640)。
我试过改变形状,我可以改变“640”,但我找不出如何改变数字“32”,以便我可以处理到第一层。

xe55xuns

xe55xuns1#

您可以使用tensorflow.image.resize API调整图像大小。错误可能是由于输入层的形状与预测时传递给模型的图像形状不匹配。

import tensorflow as tf 

img=tf.keras.utils.load_img("/content/tulip.jpeg")
img=tf.keras.utils.img_to_array(img)
print(img.shape) # (272, 185)
# Resize the image
img=tf.image.resize(img,(224,224))
print(img.shape)# (224,224,3)

然后,在加载模型后,您可以进行如下预测

classes = model.predict(img)

谢谢你,谢谢你

相关问题