无法将 Keras Generator 图像传递给人脸识别

Posted

技术标签:

【中文标题】无法将 Keras Generator 图像传递给人脸识别【英文标题】:not able to pass Keras Generator image to face recognition 【发布时间】:2020-07-18 00:38:34 【问题描述】:

我正在使用 Keras 生成图片来喂 face_recognition 包。

以下代码我用来读取和准备要传递给生成器的图片

image = cv2.imread(imagePath)
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)

image = np.expand_dims(image, axis=0)
imageGen = aug.flow(image, batch_size=1)

然后对于生成的图像使用如下:

for gimage in imageGen:
   face_recognition.face_locations(gimage, 'cnn')

RuntimeError: 不支持的图像类型,必须是 8 位灰度或 RGB 图像。

在传递生成的图片之前,我尝试使用squeeze 解决问题;但它也没有工作

gimage = np.squeeze(gimage, axis=0)

【问题讨论】:

gimage.dtype 是什么? gimage类型是<class 'numpy.ndarray'>@akazuko @akazuko,gimage.dtype:float32。我认为问题就在这里。图像必须是 int。谢谢你的问题。我会努力改变 gimage 值呢?您还可以在问题中添加截断的 gimage 吗? 谢谢@akazuko,请写下关于数据类型有效性的答案,我会接受的 【参考方案1】:

您应该检查 gimage ndarray 的 value dtype。它应该是 uint8 并且根据错误看起来目前它是 float32

【讨论】:

以上是关于无法将 Keras Generator 图像传递给人脸识别的主要内容,如果未能解决你的问题,请参考以下文章

keras:为 fit_generator 使用 ImageDataGenerator 和 KFold 的问题

Keras 用于二元分类预测的 fit_generator() 总是 50%

如何在 Keras 中使用 predict_generator 对未标记的测试数据执行预测?

如何在Keras中使用fit_generator()来加权? [关闭]

由于形状错误,Keras fit_generator()无法正常工作

无法将多个图像传递给服务器 Nodejs