【问题标题】:How to save an image that has been visualized/generated by a Keras model?如何保存由 Keras 模型可视化/生成的图像?
【发布时间】:2021-03-23 19:01:17
【问题描述】:

我正在使用detecto 模型来可视化图像。所以基本上我将图像传递给这个模型,它会在对象上绘制一条边界线并显示可视化图像。

from keras.preprocessing.image import load_img
from keras.preprocessing.image import save_img
from keras.preprocessing.image import img_to_array
from detecto import core, utils, visualize

image = utils.read_image('retina_model/4.jpg')
model = core.Model()

labels, boxes, scores = model.predict_top(image)
img=visualize.show_labeled_image(image, boxes,)

现在,我正在尝试将此可视化图像转换为 Numpy 数组。我正在使用下面的行将图像转换为 numpy 数组:

img_array = img_to_array(img)

它给出了错误:

Unsupported Image Shape

我只想在我的网站上显示这个模型的输出可视化图像。计划是将图像转换为 numpy 数组,然后使用以下行通过代码保存图像:

save_img('image1.jpg', img_array)

所以我打算下载这个可视化图像(这个模型的输出),以便我可以将下载的图像显示到我的网站上。如果有其他方法可以做到这一点,请告诉我。

【问题讨论】:

    标签: numpy machine-learning keras object-detection


    【解决方案1】:

    Detecto 的文档说 utils.read_image() 已经返回一个 NumPy 数组。

    但是您将 visualize.show_labeled_image() 的返回值传递给 Keras 的 img_to_array(img)

    查看visualize.show_labeled_image()的Detecto源码,没有返回类型,所以默认返回None。所以我认为你的问题是你没有将有效的图像传递给 img_to_array(img),但是没有。

    我认为不需要调用 img_to_array(img),因为您已经将图像作为 NumPy 数组。但请注意,根据 Detecto 的文档,utils.read_image() 是“相当于使用 OpenCV 的 cv2.imread 函数并从 BGR 转换为 RGB 格式”。确保这是你想要的。

    【讨论】:

      猜你喜欢
      • 2019-12-27
      • 2021-05-05
      • 2021-12-23
      • 2019-05-11
      • 1970-01-01
      • 2019-08-15
      • 2020-07-13
      • 2022-11-16
      • 1970-01-01
      相关资源
      最近更新 更多