开源技术 * IBM 微讲堂:Kubeflow 系列(观看回放 | 下载讲义) 了解详情

图像分辨率放大器

概述

图像分辨率放大器(Image Resolution Enhancer)能够将像素化的图像放大 4 倍,同时生成照片级真实感的细节。这个神经网络的主干是 生成式对抗网络 (GAN),已根据 OpenImages V4 数据集中的 600,000 张图像对该网络进行了训练。

GAN 基于 SRGAN-tensorflow GitHub 代码库这篇研究论文

模型元数据

领域 应用 行业 框架 训练数据 输入数据格式
视觉 超分辨率 普通 TensorFlow OpenImages V4 图像 (RGB/HWC)

基准

Set5 作者的 SRGAN 此 SRGAN
PSNR 29.40 29.56
SSIM 0.85 0.85
Set14 作者的 SRGAN 此 SRGAN
PSNR 26.02 26.25
SSIM 0.74 0.72
BSD100 作者的 SRGAN 此 SRGAN
PSNR 25.16 24.4
SSIM 0.67 0.67

已根据以下三个数据集评估了这种实现的性能:Set5、Set14 和 BSD100。

尽管本文讨论了 MOS(平均意见得分)作为最有利的指标,但仍评估了 PSNR(峰值信噪比) 和 SSIM(结构相似度指数)指标。从本质上讲,SRGAN 实现用更好的 PSNR 或 SSIM 得分换取了更吸睛的结果。由此生成的输出图像集合将具有更清晰、更逼真的细节。

注意:本文中的 SRGAN 已根据 35 万个 ImageNet 样本进行了训练,而此 SRGAN 已根据 60 万张 OpenImages V4 图片进行了训练。

参考资料

许可

组件 许可 链接
模型 GitHub 代码库 Apache 2.0 许可
模型权重 Apache 2.0 许可
模型代码(第三方) MIT 许可
测试资产 CC BY 2.0 样本 README 文件
CC0 样本 README 文件

此模型的可用部署选项

可以使用以下方式来部署此模型:

  • 通过 Dockerhub 进行部署:

    docker run -it -p 5000:5000 codait/max-image-resolution-enhancer
    
  • 在 Red Hat OpenShift 上部署:

    遵循本教程中有关 OpenShift Web 控制台或 OpenShift Container Platform CLI 的操作说明,并指定 codait/max-image-resolution-enhancer 作为镜像名称。

  • 在 Kubernetes 上部署:

    kubectl apply -f https://raw.githubusercontent.com/IBM/MAX-Image-Resolution-Enhancer/master/max-image-resolution-enhancer.yaml
    

    可以在此处找到有关如何将此 MAX 模型部署到 IBM Cloud 上的生产环境的更详细的教程。

  • 本地部署:遵循 GitHub 上的模型 README文件中的操作说明

用法示例

您可以使用 cURL 来测试或使用此模型

使用 cURL 测试模型

使用 model/predict 端点来加载测试图像(可使用 assets/test_examples/low_resolution 文件夹中的某个测试图像),以便返回高分辨率的输出图像。

在部署模型后,可以在命令行中测试该模型。例如:

curl -F "image=@samples/test_examples/low_resolution/food.png" -XPOST http://localhost:5000/model/predict > food_high_res.png

以上命令会将低分辨率的 food.png 文件发送到该模型,并将高分辨率的输出图像保存到根目录下的 food_high_res.png 文件中。

理想的输入图像是 PNG 文件,其分辨率在 100×100 到 500×500 之间,最好是没有任何捕获后处理和鲜艳的颜色。此模型能够根据像素化图像(低 DPI)来生成细节,但无法校正“模糊”图像。

结果示例 左:输入图像 (128×80)。右:输出图像 (512×320)

资源与贡献

如果您有兴趣为 Model Asset Exchange 项目做出贡献或有任何疑问,遵循此处的操作说明。

本文翻译自:Image Resolution Enhancer(2019-03-29)