基于深度学习的图像超分辨率 损失函数总结

本文总结了近年来在基于深度学习的图像超分辨率论文中使用过的损失函数,欢迎补充。



1. L1损失

L1损失,也被称为最小绝对偏差(LAD),最小绝对误差(LAE)。
计算的是实际值与目标值之间绝对差值的总和。在有监督的图像超分辨率任务中,目标是使得生成的图像(SR)尽可能接近真实的高分辨率图像(HR),使用L1损失计算的则是SR和HR对应像素位置的值的误差。
使用L1损失的模型(有的模型使用了不止一种损失函数,此处罗列的为损失函数中包含L1损失的方法):LapSRN、EDSR、RDN、CARN、ESRGAN、CARN、MSRN、RCAN、ESRGAN、SAN、SRFBN… … 最近几年越来越多的方法使用L1损失。

在这里插入图片描述

2. L2损失

L2损失,也叫均方误差损失(MSE),计算的是实际值与目标值之间绝对差值的平方总和。
使用L2损失的模型:SRCNN、DRCN、FSRCNN、ESPCN、DRRN、SRResNet…
很多论文已经证明了使用L2损失函数会产生模糊的图像,所以好像最近用得不是很多。

在这里插入图片描述

3. 感知损失 Perceptual loss

SRResNet提出:MSE损失(下式)函数使重建结果有较高的PSNR,但是缺少了高频信息,出现过度平滑的纹理。感知损失是将真实图片卷积得到的feature与生成图片卷积得到的feature作比较,可以得到更多的图像细节。
在这里插入图片描述
感知损失的公式如下(使用VGG作为特征提取网络时):
基于深度学习的图像超分辨率 损失函数总结_第1张图片
用φi,j()获取经VGG19网络内的第i个池化层之前的第j个卷积层进行特征提取后的结果。感知损失可以看作计算的是SR和HR特征图(feature map)之间的L2损失。

4.robust Charbonnier loss—— LapSRN

Charbonnier Loss是LapSRN使用的损失函数,LapSRN的结构如下图所示。
共有两个分支,特征提取分支用于计算残差图像,图像重建分支用于重建高分辨率图像(好像说了句废话)。
两个分支的输入都是低分辨率图像,在上面一个分支,通过对输入图像做卷积和转置卷积操作,可以得到放大后的预测残差图像,在下分支中,对低分辨率图像做上采样操作,再将得到的结果与预测的残差图像相加,就可得到该阶段的“高分辨率”图像,以此类推。通过级联学习,在不同阶段可以得到不同尺度的残差,得到对应的重构结果,继而得到最终结果。

基于深度学习的图像超分辨率 损失函数总结_第2张图片


Charbonnier Loss定义为:

基于深度学习的图像超分辨率 损失函数总结_第3张图片
其中, ρ ( x ) = x 2 + ϵ 2 ρ (x) = \sqrt{x^2 + \epsilon^2} ρ(x)=x2+ϵ2 y s i y^ i_s ysi表示网络在s阶段得到的输出图像, y ^ s i \hat y^ i_s y^si表示在该阶段的参考图像,由真实的HR图像下采样得到。 y s = x s + r s y_s = x_s + r_s ys=xs+rs, r s r_s rs为残差图像, x s x_s xs为对LR做上采样后的图像。






暂时写到这里啦!
之后读到别的方法会继续补充,欢迎一起讨论

你可能感兴趣的:(超分辨率,计算机视觉,深度学习)