图像质量评估各项指标(二)——结构相似性SSIM

前言:前面的一片文章中较为系统的归纳了图像质量评价的各种指标,其中使用的最多的就是PSNR和SSIM,鉴于PSNR较为简单,本文专门介绍SSIM的思想以及它的实现。

前一篇文章参考:图像质量评估各项指标(一)

一、从均方误差MSE和峰值信噪比PSNR说起


计算图像降噪后的质量,最 直接的思路即比较降噪后的图像与真实图像(distortion-free)之间的差剖面,即可视误差,通过 visibility of errors 评价图像质量。PSNR 和 MSE 就是基于这种简单直接的思路确定的指标,

MSE(Mean Squared Error),顾名思义,定义略。

PSNR(Peak Signal to Noise Ratio),峰值信噪比,即峰值信号的能量与噪声的平均能量之比,通常表示的时候取 log 变成分贝(dB),由于 MSE 为真实图像与含噪图像之差的能量均值,而两者的差即为噪声,因此 PSNR 即峰值信号能量与 MSE 之比。定义式如下:


​    第二个等式由于图像像素点数值以量化方式保存,bits 即每个像素点存储所占的位数。因此 MaxValue 即为 2^bits - 1。

计算PSNR

def cal_psnr(im1, im2):
     mse = (np.abs(im1 - im2) ** 2).mean()
     psnr = 10 * np.log10(255 * 255 / mse)
     return psnr

由于 灰度等级gray scale 存成 8bit ,故最大值255。

当时上面的评价指标有一个大的问题,那就是
由于基于差剖面的简单计算不符合人类视觉系统(Human Visual System,HVS)的评价结果,因此需要对评价方式进行重新考量。如果图片的最终目的是对人类展示的话,那么质量应该以人的主管测评为准。但是由于主管评价不方便且费时,因此我们试图用客观的 图像质量评价来对图像进行评价,使其接近 HVS 的特点。由于 HVS 具有可以抓取图像的结构特征的特点,因此设计(结构相似性) Structural Similarity 进行评价,即 SSIM

注意:PSNR和SSIM都是全参考的(full reference)的,也就是需要无噪声的真实图像作为参考依据。

 

二、结构相似性SSIM

SSIM的基本思路是,通过以下三个方面来对两幅图像的相似性进行评估,即

1. luminance,亮度
2. contrast,对比度
3. structure,结构

算法的框图基本如下:

 

基本流程为:

(1)对于输入的x和y,首先计算出(亮度测量)luminance measurement,进行比对,得到第一个相似性有关的评价;

(2)再减去luminance的影响,计算(对比度测量)contrast measurement,比对,得到第二个评价;

(3)再用上一步的结果除掉对比度的影响,再进行structure的比对。最后将结果combine,得到最终的评价结果。

从实现角度来讲,

(1)亮度luminance用均值表征,以标准图像x为例,当然还有另外一张作为对比的图像y,公式是一样的,如下:

(2)对比度contrast用经过均值归一化之后的方差表征,以标准图像x为例,当然还有另外一张作为对比的图像y,公式是一样的如下:

 

(3)结构用相关系数(就是统计意义上的 r ,协方差与方差乘积的比值)。

相关系数本来的公式如下:

在这里即为:

其中,有:

注意:

上面的计算我们在实际应用的时候一般不这样去逐像素计算,一般采用高斯核函数(即高斯卷积)计算图像的均值、方差以及协方差,而不是采用遍历像素点的方式,以换来更高的效率。

 

具体的计算公式如下所示:

(1)亮度luminance测量值——实际上式ux,uy的函数

(2)对比度contrast测量值——实际上是δx和δy的函数

(3)结构structure测量值——实际上是δxy与δx,δy的函数

其中,有:

最终的结构相似性公式如下:

其中三个参数α,β,γ 用来表示这三个模块的重要性。

其中SSIM表示相似度,这个算子应当满足作为度量的基本性质,即

  • Symmetry,交换x和y顺序不影响结果。
  • Boundedness,值要有界,这里时小于等于1.。
  • Unique maximum,最大值,即1,只有当 x = y 时候取到。

为了得到简化形式,令

于是得到下面的简化公式:

这就是一般我们计算的表达式。

所以结构相似度指数从图像组成的角度将结构信息定义为独立于亮度、对比度的反映场景中物体结构的属性,并将失真建模为亮度、对比度和结构三个不同因素的组合。用均值作为亮度的估计,标准差作为对比度的估计,协方差作为结构相似程度的度量。

补充:

但是由于SSIM应该应用于局部,这是为了拟合人类视觉的局部性的特点,因此实际上我们用 mean-SSIM或者MSSIM,对各个local window的SSIM求平均。什么意思呢?

实际上就是先将一副图像划分成一些区域,对每一个区域求一个SSIM的值,然后一幅图像上面的所有区域的SSIM的平均值作为整个图像的SSIM值。

 

三、SSIM的实现

(1)方式一:python的skimage库中实现了一些常见的评价指标如

from skimage.measure import compare_mse     #均方误差
from skimage.measure import compare_psnr    #峰值信噪比
from skimage.measure import compare_ssmi    #结构相似性

(2)自己实现:代码如下

 

 

 

 

  • 14
    点赞
  • 101
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值