CV | Structure-Preserving Super Resolution with Gradient Guidance 基于梯度保留结构的超分算法SPSR学习笔记

16 篇文章 0 订阅

题记:

从18年开始,我第一次接触超分(Super-Resolution)这个方向;到过去一年,我的大部分精力都在这个任务的学习、落地、及深入探索上。所以,我决定写下这几篇论文学习笔记,也算是对过去学习的一个总结。

本文是就发表在CVPR2020上的超分算法“Structure-Preserving Super Resolution with Gradient Guidance”——基于梯度保留结构的超分算法SPSR的学习笔记。

在这里说几句题外话,随着超分在学术界和工业界获得越来越多的关注,超分这个研究方向也延伸出很多的子方向和后续方向,如18年开始陆续得到关注的Blind Super-Resolution(未知退化方法的超分)、Real-World Super-Resolution(真实不成对数据的超分任务)、以及Video Super-Resolution(视频超分任务)。

这篇工作,SPSR,仍然是基于成对数据bicubic interpolation degradation的超分算法,也就是最初SRCNN被提出要解决的问题——针对成对的低清和高清数据进行超分重建,训练集的低清图像通过对高清图像进行双三线性插值下采样(bicubic downsampling)得到。后续的SRGAN、ESRGAN都是针对这类任务的改善,ESRGAN将bicubic degradation的超分任务性能推向一个瓶颈值,模型结构也变得非常的复杂(高达23个RRDB)。所以,笔者认为在2020年的CVPR上提出的SPSR也算是初心可贵,仍有学者在针对最本质的超分重建进行改进。

1. 现有问题

  • 在超分重建的图像中,总是存在不被预期的结构性损失和误差。例如在一些图案的边缘处,超分算法应该加强锐化,在图案的内部超分算法也不应该生成错误的纹理。
  • 同样,基于GAN的超分算法可以生成一些高保真的超分结果,但同时也会引入几何畸变(geometric distortions),尤其在边缘和精细的纹理处。

2. 主要贡献

  • 本文提出了一个保留结构的超分算法(Struture-Preserving Super Resolution method)。SPSR主要消除了1.中提到的问题,并同时保留了基于GAN结构的优点,可以生成观感愉悦的超分结果。
  • 在SPSR中,梯度图(gradient maps)主要在两个方面帮助算法重建超清图像:
    • 一方面,作者设计了一个额外梯度的分支来预测超分辨率的梯度图,以提供额外的结构性先验,辅助超分重建。
    • 另一方面,作者提出了一个梯度损失函数(gradient loss),对超分图像增加了一个二阶约束。

3. 方法介绍

3.1 概览

SPSR的整体建构如下图所示。虽然框图中表现的不是很明显,SPSR同样沿用了GAN结构,它的主要贡献点体现在生成器上。该生成器由两个网络结构分支构成——超分分支和梯度分支。超分分支和SRGAN、ESRGAN类似,主要创新点在于梯度分支。

梯度分支的输入是LR低清图像的梯度图,在每个梯度模块Grad Block中都会结合SR分支的特征图进行处理,最终得到重建的超清梯度图Reconstructed Grad。超清梯度图一方面会受到作者提出的新loss监督,另一方面会参与到超分分支的输出监督中。

 整个生成模型抽象化公式可表示如下:(当然看上去和其他的算法可能没什么区别233333)

 

3.2 结构细节

3.2.1 梯度分支 Gradient Branch

梯度图像的求解过程如下公式所示,整个求解过程是传统的图像处理里求梯度常用的算法: 

对图像I中的横轴和纵轴方向求差,然后计算二范数,M(I)是梯度输出。

3.2.2 保留结构的超分分支 Structure-Preserving SR Branch

该分支包含两个部分:

  • 第一部分是沿用经典的超分网络的结构,由多个卷积层组成的卷积块叠加而成。SPSR中沿用的是ESRGAN中的RRDB(毕竟经典)。
  • 第二部分是超分分支会将过程中输出的特征图传给梯度分支,以辅助得到更准确的梯度特征;梯度分支的最终输出会回传给超分分支,辅助得到最终保留了边缘结构的超分结果。

3.3 目标函数

3.3.1 经典的损失函数(Conventional Loss)

第一个经典的损失函数是生成的超分图像和高清图像做L1范数(L1-norm)绝对差值:

第二个经典的损失函数是沿用SRGAN、ESRGAN里使用的感知损失(perceptual loss)即利用一个预训练好的模型,如VGG,对超分图像和高清图像求特征值,然后以特征值的L1-norm结果为监督指标:

接下来的loss就是超分算法GAN结构中常用的,也不过多赘述了,具体的细节可以看SRGAN、ESRGAN和GAN

 

3.3.2 梯度损失函数(Gradient Loss)

梯度损失函数算是本文的另一大创新点。如下图所示,作者分析在高清图像中图案的边缘处会有明显的差异,比如一片蓝天映衬下的树叶,树叶边缘和蓝天相接部分的表观特征差异很大。

以信号可视化的方式展现如下图(a),而超分模型的输出大多如(b),某种程度上弱化了边缘差异。如若我们有一个可以强化边缘的超分模型,可视化效果如(c)。它们对应的梯度结果分别是(d),(e)和(f)。从梯度结果可以看出,有一个锐化的超分输出,在梯度域会有很大的改善。

作者继续分析,若可以增加一个二阶梯度约束到优化目标上,超分模型就有可能学到更多有用的信息。于是就以此为启发设计了梯度损失函数,以削弱超分图像和高清图像在梯度空间的差异。

梯度损失函数由两部分构成:

  • 一项是针对每个像素的损失值,有点类似于公式(3),只不过是在梯度图像上进行计算:
  • 另一项是作用在梯度图的判别模型上——区分当前输入给判别模型的梯度图像块是合成的超分结果,还是原始HR图像的梯度图像。公式表示如下:

 

3.3.3 总损失函数

汇总以上这么多的loss,SPSR的总损失函数可表示为:

可能乍一眼看会眼花,但基本设计思路是沿着整个SPSR的两个分支——超分分支和梯度分支,进行对应设计的,仔细观察会发现超分分支和梯度分支的每个项都是对应的。

4. 实验结果

又来到重头戏实验结果po图环节啦~先上PSNR表,还是如之前所说,在ESRGAN的性能瓶颈下,还在往前探索的模型其实有给到我鼓励哈哈,不追热点,好好做好研究和改进。

接下来是视觉效果图~更多效果大家可以去看原文SPSR。 

以上~欢迎大家评论区讨论!

没想到这篇笔记写了三个月,希望接下来继续坚持!

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值