将低分辨率图像转换成高清图像

方案1:waifu2x


waifu2x 是一个可以将低分辨率图片转化成高分辨率图片(图片超分辨率)的深度学习项目,是针对动漫风格图片设计的,当然也可以自行训练用于其它风格的图片。

输入:

较低分辨率的动漫风格图片

输出:

清晰、去噪、高分辨率的动漫风格图片

项目主页:

https://github.com/nagadomi/waifu2x

使用方法:


Step1:配置运行环境

硬件需求

  • NVIDIA GPU

软件环境

LuaRocks 软件包 (包括 torch7 默认软件包)

  • lua-csnappy
  • md5
  • uuid
  • csvigo
  • turbo

安装软件环境

Install CUDA

参考: NVIDIA CUDA Getting Started Guide for Linux

下载 CUDA

安装依赖软件包

安装 Torch7

参考: Getting started with Torch

安装 luarocks 软件包:


Step2: 获取 waifu2x 源码


Step3: 测试运行 waifu2x

在命令行里测试运行 waifu2x:


Step4: 在网页里使用 waifu2x

然后访问 http://localhost:8812/ 就可以在网页中使用 waifu2x 了。


Step5: 使用 waifu2x 去除图片“噪声”


Step6: 使用 waifu2x 增强图片分辨率!


Step7: 去除噪声 + 增强图片分辨率!


Step8:批量处理图片

输出支持 “%s” and “%d”(比如 %06d). “%s”将会代替源文件的基本名。 “%d” 将会代替序列排号。
比如, 如果输入文件是 “piyo.png”,那么“%s_%03d.png” 将代替 “piyo_001.png”。

可以参考 “th waifu2x.lua -h”。


Step9:在非动漫图片下使用(照片模式)

请添加 “-model_dir models/photo” 到命令参数中,即可使用 weifu2x 处理照片等图片。


训练自己的 waifu2x

提示: 如果你有 cuDNN 库,那么你可以使用“-backend cudnn”参数来启用 cudnn kernel。你也可以将已训练的模型转换为 cuDNN 模式,使用“tools/rebuild.lua”。


Step1:准备数据

创建一个文件列表。

训练时应该是用无噪声的高分辨率图像。在我的例子中,我是使用 6000 张高分辨率无噪声的数据训练的 waifu2x 模型。

使用下面的命令转换图片。


Step2:训练一个一级去噪声模型

你可以在这里查看模型的效果:“models/my_model/noise1_best.png”。


Step3:训练一个二级去噪模型

你可以在这里查看模型的效果:“models/my_model/noise2_best.png”。


Step4:训练一个提升图片2倍分辨率的模型!

你可以在这里查看模型的效果:“models/my_model/nscale2.0x_best.png”。


Step5: 训练一个去噪+提升分辨率的模型

你可以在这里查看模型的效果:“models/my_model/noise1_scale2.0x_best.png”。

参考文献

waifu2x 启发自 SRCNN [1]。

  • [1] Chao Dong, Chen Change Loy, Kaiming He, Xiaoou Tang, "Image Super-Resolution Using Deep Convolutional Networks", http://arxiv.org/abs/1501.00092

Leave A Comment?