这是去年计算成像学领域的一篇论文(链接:https://ieeexplore.ieee.org/document/7797130/ ),重在讨论如何损失函数对图像恢复的影响。在目前的图像恢复任务中主要使用的还是L2损失函数,L2损失的好处有很多,例如可以直接提高PSNR等指标。但是L2指标与人类感知的图像质量相关性较差,例如其假设噪声与图像的局部区域无关。在有些情况下,L1损失函数获得的图像质量会更好。这里论文调研了L1损失,SSIM和MS-SSIM,并将L1损失函数和MS-SSIM结合起来构建新的损失函数。但是目前为止,基于SSIM的指标还没有应用到损失函数中。
L1损失函数
同L2损失函数相比,L1损失函数不会过度惩罚两张图的差异,因此它具有不同的收敛属性。L1损失函数可以表示为:
ℓ1(P)=1N∑p∈P|x(p)−y(p)|(1)
其微分形式表示如下:
∂ℓ1(P)/∂x(p)=sign(x(p)−y(p))(2)
在实验中,L1函数在许多问题上的表现要比L2函数好。
SSIM损失函数
SSIM结构性指标定义如下:
SSIM(p)==2μxμy+C1μ2x+μ2y+C1⋅2σxy+C2σ2x+σ2y+C2l(p)⋅cs(p)(1)(2)(3)
SSIM的值一般是越大越好的,所以这里损失函数设定为:
SSIM(P)=1N∑p∈P1−SSIM(p)(4)(3)
但是SSIM计算时是和周围像素比较,上式显然没有考虑像素在边界的情况,所以损失函数可以改写为:
SSIM(P)=1−SSIM(p̃ ),(5)(4)
此时后面的p’代表中心点的像素。
最后,SSIM的微分形式为:
∂SSIM(P)∂x(q)==−∂∂x(q)SSIM(p̃ )−(∂l(p̃ )∂x(q)⋅cs(p̃ )+l(p̃ )⋅∂cs(p̃ )∂x(q)),(5)(5)
其中
∂l(p̃ )∂x(q)=2⋅GσG(q−p̃ )⋅(μy−μx⋅l(p̃ )μ2x+μ2y+C1)(6)
,
∂cs(p̃ )∂x(q)=2σ2x+σ2y+C2⋅GσG(q−p̃ )⋅[(y(q)−μy)−cs(p̃ )⋅(x(q)−μx)],(7)
MS-SSIM
σG
的大小影响图像的效果,较小会失去保持局部的能力,较大会保持边缘噪声,因此使用多尺度的SSIM即MS-SSIM,定义如下:
MS-SSIM(p)=lαM(p)⋅∏j=1Mcsβjj(p)(6)(8)
损失函数类似SSIM,可以表示为
MS-SSIM(P)=1−MS-SSIM(p̃ ).(7)(9)
微分形式为:
∂MS-SSIM(P)∂x(q)=(∂lM(p̃ )∂x(q)+lM(p̃ )⋅∑i=0M1csi(p̃ )∂csi(p̃ )∂x(q))⋅∏j=1Mcsj(p̃ ),(8)(10)
MS-SSIM和L1结合
MS-SSIM和SSIM对亮度和色彩变化可能会更迟钝,但是可以较好的保持高频信息,L1则可以较好的保持颜色亮度特征,因此可以将它们结合起来,综合损失函数如下:
Mix=α⋅MS-SSIM+(1−α)⋅GσMG⋅ℓ1,(9)(11)
这里
α
设定为0.84。
结果
图像去噪,超分辨和图像去伪影的对比表分别如下所示,可以看出混合后的效果最好:
论文还对损失函数的收敛性进行研究,说明L1收敛性比L2更好,如下图所示,在切换损失函数前,L1下降更快,说明L2之前可能陷入局部最小。