引言

  基于低分辨率的图像恢复高分辨图像具有重要意义,近年来,利用深度学习做单张图像超分辨主要有两个大方向:1、减小失真度(distortion, 意味着高PSNR)的图像超分辨,这类方法主要最小化均方误差;2、提高感知质量(perception)的图像。这类方法主要利用GAN来做约束,使得生成的图像和真实的高分辨率图像尽可能符合相同分布。这两大方向存在一种tradeoff,因为通常低失真度(高PSNR)的图像往往感知质量不高,不符合人眼认知,而高感知质量(本文用NRQM指标度量,高NRQM)的图像,用PNSR指标衡量较低。如下图:

  当前有工作考虑分别用两个网络训练生成低失真度和高感知质量的图像,再进行插值融合。然而图像的objective quality和perception quality由图像的不同部分影响,如果将目标图像作为整体优化,提高objective quality时,perception quality会下降,反之亦然。因此本文提出一种新的两图像(低失真度和高感知图像)融合策略。本文利用小波变换将图像分解成低频部分和高频部分,低频部分影响objective quality,高频部分影响perception quality.


Motivation(动机)

  论文将利用CX算法得到的高分辨图像$A_p$(high perception quality)、EDSR算法得到的高分辨图像$A_o$(high objective quality)、GroundTruth进行Haar小波分解,得到一个低频子带和三个高频自带,并展示它们的直方图,发现$A_o$图像低频部分和GroundTruth对应的低频部分分布很接近,而$A_p$的三个高频子带的分布和GroundTruth对应的高频子带分布很接近。


算法:

  将$A_o$分解为 $LL^{o}, LH^{o}, HL^{o}, HH^{o}$, $A_p$分解为$LL^{p}, LH^{p}, HL^{p}, HH^{p}$, 融合后的图像子带$LL^{r}$, $LH^{r}$, $HL^{r}$, $HH^{r}$.算法总体框架如下:

  利用LSE网络,以$LL^{o}$作为输入恢复$LL^{r}$,利用WDST网络,以$LH^{o}$,$LH^{p}$,$LH^{r}$作为网络输入,其中$LH^{r}$作为可训练参数(具体细节后面再说)。$HL^{r}$,$HH^{r}$同理可得。

LSE网络如下:

WDST网络如下:

第一部分:重构$LL^{r}$

  考虑GroundTruth的$LL^{gt}$子带和$LL^{o}$最相似,直接用$LL^{o}$恢复。利用VDSR网络思想,网络学习$LL^{gt}$和$LL^{o}$的残差。损失函数如下:

  

  其中$LL^{r}$为$LL^{o}$和网络的输出。重构网络为LSE网络。

训练细节:

  网络的训练以学习率1e-3,SGD优化算法(动量为0.9,衰减因子1e-4),梯度裁剪完成。


第二部分:重构$LH^{r}$, $HL^{r}$, $HH^{r}$

  拿$LH^{r}$举例,用$LH^{o}$和$LH^{p}$融合得到$LH^{r}$.考虑到$LH^{p}$中的小波系数内容比$LH^{o}$的丰富,非0系数更多,期望将$LH^{p}$中的细节小波系数变换到$LH^{o}$中,因此将$LH^{p}$作为风格输入(style input),$LH^{o}$作为内容输入(content input)。不同于传统的风格迁移算法——输入是像素值,这里的输入小波系数,因此首先将小波系数归一化到0-1(值减去最小值,再除以最大值)

  损失函数有三个:content loss($L_c$), style loss($L_s$)和$L_1$范数损失(保持重构小波系数的稀疏性)。如下:

 其中

    

  这里实际上是基于预训练的VGG作为WDST网络,只有一个参数是可训练的,那就是$LH^{r}$.

训练细节:用的L-BFGS优化算法.$\alpha=1e-3, \omega=0.2, \beta=1, \gamma=1e-5$


实验结果

  定量结果(PSNR/NRQM):

  定性结果:


对比实验:

1、考虑不同小波分解产生的影响:

根据实验可以看出,用不同小波分解对实验结果影响不大。

2、不同高频子带重构,对最终的影响

可以看出三个高频子带都有贡献,相比于$LH, HL$,$HH$的贡献最小,因为$HH$为对角方向信息,不如$LH, HL$他们携带的信息多。


相关链接

http://openaccess.thecvf.com/content_ICCV_2019/papers/Deng_Wavelet_Domain_Style_Transfer_for_an_Effective_Perception-Distortion_Tradeoff_in_ICCV_2019_paper.pdf

ICCV2019 oral:Wavelet Domain Style Transfer for an Effective Perception-distortion Tradeoff in Single Image Super-Resolution的更多相关文章

  1. Image Style Transfer:多风格 TensorFlow 实现

    ·其实这是一个选修课的present,整理一下作为一篇博客,希望对你有用.讲解风格迁移的博客蛮多的,我就不过多的赘述了.讲一点几个关键的地方吧,当然最后的代码和ppt也希望对你有用. 1.引入: 风格 ...

  2. 项目总结四:神经风格迁移项目(Art generation with Neural Style Transfer)

    1.项目介绍 神经风格转换 (NST) 是深部学习中最有趣的技术之一.它合并两个图像, 即 内容图像 C(content image) 和 样式图像S(style image), 以生成图像 G(ge ...

  3. 课程四(Convolutional Neural Networks),第四 周(Special applications: Face recognition & Neural style transfer) —— 2.Programming assignments:Art generation with Neural Style Transfer

    Deep Learning & Art: Neural Style Transfer Welcome to the second assignment of this week. In thi ...

  4. pytorch实现style transfer

    说是实现,其实并不是我自己实现的 亮出代码:https://github.com/yunjey/pytorch-tutorial/tree/master/tutorials/03-advanced/n ...

  5. DeepLearning.ai-Week4-Deep Learning & Art: Neural Style Transfer

    1 - Task Implement the neural style transfer algorithm Generate novel artistic images using your alg ...

  6. Perceptual Losses for Real-Time Style Transfer and Super-Resolution and Super-Resolution 论文笔记

    Perceptual Losses for Real-Time Style Transfer and Super-Resolution and Super-Resolution 论文笔记 ECCV 2 ...

  7. fast neural style transfer图像风格迁移基于tensorflow实现

    引自:深度学习实践:使用Tensorflow实现快速风格迁移 一.风格迁移简介 风格迁移(Style Transfer)是深度学习众多应用中非常有趣的一种,如图,我们可以使用这种方法把一张图片的风格“ ...

  8. 《Perceptual Losses for Real-Time Style Transfer and Super-Resolution》论文笔记

    参考 http://blog.csdn.net/u011534057/article/details/55052304 代码 https://github.com/yusuketomoto/chain ...

  9. [C4W4] Convolutional Neural Networks - Special applications: Face recognition & Neural style transfer

    第四周:Special applications: Face recognition & Neural style transfer 什么是人脸识别?(What is face recogni ...

随机推荐

  1. linux环境jacoco接入

    我们通常会将测试覆盖率分为两个部分,即“需求覆盖率”和“代码覆盖率”. 需求覆盖:指的是测试人员对需求的了解程度,根据需求的可测试性来拆分成各个子需求点,来编写相应的测试用例,最终建立一个需求和用例的 ...

  2. 在centos7下获取git代码(部署代码)

    一.准备好账号 现在我们写的前端页面都放在公司自己搭建的gitlab上,使用的是 SSH KEY 访问的,所以我们先注册了一个账号 "1374669657@qq.com" . 二. ...

  3. ASP.NET + MVC5 入门完整教程八 -—-- 一个完整的应用程序(下)

    https://blog.csdn.net/qq_21419015/article/details/80802931 SportsStore 1.导航 添加导航控件 如果客户能够通过产品列表进行分类导 ...

  4. [lua]紫猫lua教程-命令宝典-L1-01-12. 临时补充2

    1.lua的环境变量和函数 (1)_G表  (个人习惯遍历下_G 看看当前环境支持什么库 很多库不是默认就支持的 需要按照流程导入或者加载) 一个全局变量(非函数),内部储存有当前所有的全局函数和全局 ...

  5. python-第三方库的理解及某个函数的源代码

    第三方库,是一个总称,里面有各个模块,而具体使用的函数是模块里的. 库包含多个模块, 每个模块里包含多个函数. import AAAA     就是引用AAAA这个库,这个库里的模块函数都可以用,只是 ...

  6. css transform 2D3D转换

    2D转换 translate 移动 <style> div{ width: 100px; height: 100px; } .box{ border: 1px dashed red; fl ...

  7. const与#define的区别、优点

    const与#define的区别 编译器处理方式不同 define宏是在预处理阶段展开. 补充:预处理器根据以#开头的命令,修改原始的程序.比如我们常见的#include <stdio.h> ...

  8. Git 把码云上被fork项目源码merge到fork出来的分支项目

    Git 把码云上被fork项目源码merge到fork出来的分支项目 By:授客 QQ:1033553122 需求描述 被fork的项目有更新代码,希望把更新的代码merge到fork分支项目 解决方 ...

  9. snowflake 雪花算法 分布式实现全局id生成

    snowflake是Twitter开源的分布式ID生成算法,结果是一个long型的ID. 这种方案大致来说是一种以划分命名空间(UUID也算,由于比较常见,所以单独分析)来生成ID的一种算法,这种方案 ...

  10. 调用 flutter 第三方时间组件

    https://pub.flutter-io.cn/packages/flutter_cupertino_date_picker flutter_cupertino_date_picker: ^1.0 ...