该文章针对现行sisr网络的不断加深导致的收敛过慢问题,提出了像素级的自训练模型。
网络框架的基本思路为,采用任意SISR网络,将低分辨率图像LR输入到超分网络中生成SR图像,利用生成的SR图像与HR图像进行逐块的ssim值比较生成一张SSIM图片,后利用一个高斯核将ssim图片转换成一个权重矩阵并分别与SR与HR进行逐元素相乘,根据ssim计算得出的结果,在原有像素值的基础上使像素值差异较大的位置的像素差异进一步增大,从而可以使损失更好的注意到像素值差异较大的位置并加快梯度下降速度
PIXEL-LEVEL SELF-PACED LEARNING FOR SUPER-RESOLUTION
下面来详细分析如何生成ssim图与权重矩阵,首先SSIM图是由SR图片与HR图片逐块比较生成的,具体为使用一个圆高斯对称矩阵来生成均值与方差
PIXEL-LEVEL SELF-PACED LEARNING FOR SUPER-RESOLUTION
此处的圆高斯对称矩阵取自03年ssim提出的论文采用sima=1.5,window_size=11来计算ssim所需要的均值和方差,首先介绍下圆高斯对称矩阵,如图gauss算出的值为0-10这11个数距离中心点5的距离的的关系值(类似于插值法距离中心约近关系越密切值越接近,越远关系越疏远值偏离越大)
PIXEL-LEVEL SELF-PACED LEARNING FOR SUPER-RESOLUTION
由上图可知以中间点0.2660为分界线上下对称,即距中间点距离相同的点的值一样,接下来要利用该一维向量创建圆高斯对称矩阵。
PIXEL-LEVEL SELF-PACED LEARNING FOR SUPER-RESOLUTION
如上图所示.mm()函数取自torch.mm()为乘法运算,此处使用1D_window进行自身相乘构造矩阵,.t(),取自torch.t()为transpose的简化函数,只能输入两个维度并对这两个维度进行转换,因为进行gaussian函数后1d_window为一维向量,要使其生成矩阵必须添加维数因此通过unsqueeze在1维度添加了一个维度,此时为shape为(11,1)
PIXEL-LEVEL SELF-PACED LEARNING FOR SUPER-RESOLUTION
后要生成圆高斯对称矩阵就要再利用1d_window生成一个(1,11)的对称矩阵,便用.t()函数对1d_window进行转置并用mm函数进行相乘,生成圆高斯对称矩阵,由于本文目的为生成一个类似于卷积的操作来计算图像块与块之间的ssim因此在此通过添加维度将高斯对称矩阵添加到四维便于后文作为卷积核的参数输入,生成的圆高斯对称矩阵如下
PIXEL-LEVEL SELF-PACED LEARNING FOR SUPER-RESOLUTION
由上图可知这个11×11的矩阵在每一行和每一列都关于中间值对称,从而构造了一个值与距离核心位置有关对称矩阵,后引入了variable,这个函数的主要功能为构造网络,现行网络能够梯度下降的原因在于在每个conv或者pool中都设置好了variable使其知道能否进行梯度下降,在此我们不需要进行梯度下降更改圆高斯对称矩阵的值因此此处graph默认为false,并将2d_window扩展为与输入图片channel一致即为3,此时expand函数就是通过将上述矩阵复制了三次从而将第一个维度改变为3
PIXEL-LEVEL SELF-PACED LEARNING FOR SUPER-RESOLUTION此处引入F.CONV2D与torch.nn.conv2d不同,前者为一个函数后者为一个类,后者是由前者构造出的。F.CONV2D的参数为input、weight、bias、stride(二维行一维列一维)、padding、dilation、group(分组),其中input中的shape四维0,1,2,3分别对应minibatch,inchannels,ih,iw,weight为设置卷积核参数也为四维shape的0,1,2,3分别对应outchannels,inchannels/group,h,w,本文设置weight时的group=3所以而inputchannel也为3所以此时第二个维度设置为1,因分三组进行卷积此时卷积核维度为3,1,11,11,图像维度为1,3,h,w因此将卷积核分为1,1,11,11
图像分为,1,1,w,h,进行卷积即每个卷积核对一层特征图进行卷积(作为卷积核由expand产生内部矩阵数值一样),并利用卷积出的等大小特征图作为均值图,方差图以及协方差图,计算ssim,此时ssim为特征图,在pytorch的内置函数中一般是将得到的ssim特征图进行全局池化后取平均得到数值,在此本文为了实现像素级的注意力,选择保留ssim图。
PIXEL-LEVEL SELF-PACED LEARNING FOR SUPER-RESOLUTION
第二阶段为生成权重矩阵阶段,提出了另一个高斯函数
PIXEL-LEVEL SELF-PACED LEARNING FOR SUPER-RESOLUTION
该函数的特点在于最大值为γ,且在ms=μ时取到最大值,本文将γ设为2,而由于ssim取值范围在【-1,1】,所以当ssim为-1时使ma达到最大以更好的突出该像素块,使该像素块得到学习。sigama是一个人为设定的现行函数线性函数
PIXEL-LEVEL SELF-PACED LEARNING FOR SUPER-RESOLUTION
其中α为1β为0,具体代码如下
PIXEL-LEVEL SELF-PACED LEARNING FOR SUPER-RESOLUTION
至此就可以很好的让网络注意到未能得到很好学习的部分(ssim值低)从而加快学习速度。
此网络还有一个问题在于,是否需要将权值矩阵乘到HR图片上,从表面上看只将权值矩阵乘到SR上可以使网络更好的注意到未能达到良好ssim效果的部分,但这样操作极大可能会因为梯度过大导致梯度下降一步跨越过大,而造成梯度死亡。
此网络的实验部分如图
PIXEL-LEVEL SELF-PACED LEARNING FOR SUPER-RESOLUTION
由图知添加pspl后可以更快收敛并且可以提升一定的效果。

相关文章:

  • 2022-12-23
  • 2021-12-16
  • 2021-11-08
  • 2021-06-08
  • 2022-01-11
  • 2021-11-01
  • 2021-10-09
猜你喜欢
  • 2021-07-09
  • 2021-10-13
  • 2021-09-05
  • 2021-08-10
  • 2021-04-18
  • 2021-09-17
  • 2021-09-06
相关资源
相似解决方案