无法将 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()来加权? [关闭]