当前位置:   article > 正文

常用损失函数(L1、L2、SSIM和MS-SSIM)对比简介_ssim损失

ssim损失

https://research.nvidia.com/publication/loss-functions-image-restoration-neural-networks

常用损失函数(L1、L2、SSIM和MS-SSIM)对比简介

1 介绍

本文的介绍主要是参考论文:Loss Functions for Image Restoration with Neural Networks,而作者是从这三个实验(image super-resolution, JPEG artifactsremoval, and joint denoising plus demosaicking)上来证明这几个损失函数的好坏。

2 损失函数

L1损失函数: 基于逐像素比较差异,然后取绝对值
在这里插入图片描述
L2损失函数: 基于逐像素比较差异,然后取平方
在这里插入图片描述
相对于L1损失函数,L2损失函数会放大最大误差和最小误差之间的差距(比如22 和0.10.1),另外L2损失函数对异常点也比较敏感。如果我们在训练网络的时候,只用L1损失函数或者L2损失函数的时候,很容易陷入到局部最优解中,如果选择交替训练的话,说不定会取得不错的效果。

在这里插入图片描述
在图像质量评价指标中,有一个指标是PSNR(Peak Signal-to-Noise Ratio) 峰值信噪比,它正好对标L1和L2损失函数,但L1和L2是有一个共性:它们都是基于逐像素比较差异,没有考虑人类视觉感知,更没有考虑人的审美观,所以PSNR指标高,并不一定代表图像质量就好。在下面公式中,如果图片中每个像素都由 8 位二进制来表示,那么MAX就为 255

在这里插入图片描述
SSIM(结构相似)损失函数:考虑了亮度 (luminance)、对比度 (contrast) 和结构 (structure)指标,这就考虑了人类视觉感知,一般而言,SSIM得到的结果会比L1,L2的结果更有细节

在这里插入图片描述
MS-SSIM(多尺度结构相似)损失函数:基于多层(图片按照一定规则,由大到小缩放)的SSIM损失函数,相当于考虑了分辨率

在这里插入图片描述
MS-SSIM+L1损失函数:作者这样组合的原因是,MS-SSIM容易导致亮度的改变和颜色的偏差,但它能保留高频信息(图像的边缘和细节),而L1损失函数能较好的保持亮度和颜色不变化。公式中α为0.84,是作者试验出来的,而G为高斯分布参数(MS-SSIM里面也要用到这个)
在这里插入图片描述

3 效果对比

超分辨率:放大图片对比会发现L2中出现光栅失真现象,最好去原论文放大看看
在这里插入图片描述

JPEG去块:放大图片对比会发现L2中还是有比较严重的块状现象,最好去原论文放大看看
在这里插入图片描述
去噪+去马赛克:一眼看出,L2的效果明显差一些,就不用放大了
在这里插入图片描述

我个人觉得评价一张图片的质量好不好,或者那个算法的效果好不好,应该结合主观和客观来评价,下图的客观数据也表明:MS-SSIM+L1损失函数是最好的

在这里插入图片描述

4 总结

 1.既然用了L2损失函数,为何不尝试一下L1损失函数

 2.如果不看PSNR指标,那就用MS-SSIM或者SSIM损失函数吧

 3.如果想获得奇效,试一下组合损失函数也为何不可
  • 1
  • 2
  • 3
  • 4
  • 5

参考资料

  1. https://blog.csdn.net/u013289254/article/details/99694412
  2. https://blog.csdn.net/Kevin_cc98/article/details/79028507
  3. https://blog.csdn.net/jacke121/article/details/90749274
本文内容由网友自发贡献,转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/192965
推荐阅读
相关标签
  

闽ICP备14008679号