Skip to content

StellEdge/meta-ESRGAN

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

33 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

基于注意力机制的LR超分辨率网络

使用残差密集块(Residual Dense Block,简称RDB)作为网络的基础结构,在此基础上采用了残差嵌套结构(Residual with Residual Dense Block,简称RRDB)作为网络的基本单元,由多个RRDB构成网络的特征提取结构。在每个RRDB内部引入了各个通道之间的自注意力机制,以强调不同特征对于图像还原的不同作用。最终以pixel-shuffle方法放大特征图,进行卷积,获得最终输出的高清图像。

a)从RGB到HSV到LAB

基于RGB色彩空间进行的图像放大存在一定程度的色彩偏差。这是由于,RGB约束条件对图片本身的观感约束不够理想,一个通道的变化往往会导致最终颜色的巨大变化,但三个通道同时同方向改变时又只会引起图像亮度的微小变化,与实际人眼对色彩的评判标准并不一致。 由此本小组将视线转移至针对人的主观观感的色彩衡量标准。HSV是面向用户的一种常用色彩空间,但是并不适用于描述人主观感受到的色彩偏差,其中H通道作为色调信息,微小偏差依然会引起图像色彩的巨大变化,相应的,V通道对亮度的影响对人眼而言并不明显。同时,由RGB空间转换至HSV空间时需要对各个通道内颜色值取最大最小,运算过程中可能出现无穷以及0值,不利于神经网络的反向传播,不能提供面向硬件的便利性。因此HSV色彩空间依旧无法解决这一问题。 LAB色彩空间是根据Commission International Eclairage(CIE)在1931年所制定的一种测定颜色的国际标准建立的。最终需要的实际上是能够有效将人的感知差异表现在RGB空间上的差异衡量算法,因此,基于这种色彩空间的思想,我们采用了基于感知的权重化的欧几里得距离[3][4]进行计算,公式如下: 在这一基础上进行Loss定义,计算ΔC2的和的平均值作为Loss。

但是这一Loss具有L2型Loss普遍具有的缺点[16]。相关文章指出:L2Loss对于大的误差惩罚强,对小的误差的惩罚低,与图片清晰度衡量标准方向不一致,且L2收敛性能较差。因此,将其改造为类似的L1形式是有帮助的。将ΔR2、ΔG2、ΔB2改为|ΔR|、|ΔG|、|ΔB|可获得一个类似的L1Loss形式,以此为依据也可进行训练。

b)元学习

本小组最初尝试使用metaSGD为网络添加基于元学习的优化器,以期改善网络得到的结果。但是由于传统的基于多任务的元学习需要产生多个任务batch进行训练,需要更多的显存以支持快速运算,这是无法实现的。因此在完成metaSGD所需的代码后无法成功运行,本小组最终放弃了meta-SGD的思路。 接下来本小组将目光转移至存在已久的元学习思想——注意力机制[17]。我们知道,在超分辨率工作进行的过程中,最终的评判机制多依赖于人眼的主观标准指定,因而各种不同的特征对图像整体清晰程度之间的贡献是不同的。从算法角度考虑,就是每种特征虽然都对复原图像有一定帮助,但是在其中各个特征起到的作用应该是不同的。所以,特征向量的每个Channel应该有其不同的权重。这一权重的确定依赖于向量中其他各个通道中特征的情况共同决定。这样,就自然而然地形成了类似自注意力机制(self-attention mechanism)的思想。不管是传统残差网络还是改进之后的RDB\RRDB结构,都只是在垂直方向上增加了网络的数据流通性,而没有考虑水平上的数据流通问题,如此改进用较小的参数代价进一步丰富了网络内部的连接结构。 因此本小组对RRDB的输出根据各通道情况进行权重调整,每一个通道的权重都依赖于当前RRDB输出所有通道的情况。

各个通道特征具有的模式通过通道混淆以及特征提取得到交流,最终还原为64个通道的模式权重,由Sigmoid激活函数约束在0~1的范围之内。将RRDB的各个输出通道与得到的各个通道的权重系数相乘,就能得到自注意力机制调整后的输出。这种结构加快了网络的收敛速度,提升了网络区分不同特征针对性还原的能力。传统RCAN对通道注意力机制的研究已经有一些成果[18],但是对于RCAN中提到的,直接将通道内容取平均值的做法并不妥当。这一过程中,有相当多的信息已经损失,特征图本身的模式也应是相当重要的,故通道注意力分配器应该具有相当的特征提取能力,以及融合通道的能力。因此本小组添加了具有3个卷积层的简易特征提取结构,对特征图的内容进行界定,节约运算能力,在较小尺度的特征图上再进行平均取样,以减少信息的流失。之所以没有选择全连接层,也是出于运算复杂性的考量。

c) 相对判别器过度预测惩罚机制

本项目采用了基于类图灵测试机制的相对判别器,同时为生成器增加了“使真实图片被判定起来更假”的任务。一定程度上提升了相对判别器的性能。 传统的相对判别器在预测两者之间相对真实程度时可能出现过大或过小的值,如超过1或等于0,出现过拟合现象,导致后续的学习不再有效。为了解决这一问题,本小组将相对判别器的学习目标设定为真相对假为0.9,假相对真为0.1。这样减小了过拟合的风险。

d) 低分辨率组合(pixel-shuffle)[5][6]

大多数先前的SR网络属于高分辨率网络(HR Networks),这一类网络将低分辨率特征图插值升采样后进行卷积操作。而改进过后的低分辨率网络(LR Networks)将多个低分辨率上的特征图合并为高分辨率特征图后再进行卷积。利用改进的pixel-shuffle机制,可以提高网络的表现能力。 因此,升采样器将重新设计。

重新设计的升采样器收敛更快,保留了原始图片中的分布模式信息,但是存在另外的问题。Pixel-shuffle后的输出多具有空间上规律性的网格状噪音,需要大量后续的卷积层对其进行调整。但是本次设计过程中由于精力所限并没有为pixel-shuffle层提供足够多的后续卷积,最终的图片还存在这种噪声。之后如果能使用更多的卷积层(如在每个pixel-shuffle层后添加至少一个RRDB块),实现一边升采样一边卷积的结构的话,推测其效果将会得到相当好的优化。

NOTE:这是一个学习性项目,使用该代码造成的一切后果作者概不负责。

About

add meta-learning methods to ESRGAN base

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages