SSIM 原理及公式

本文介绍了SSIM(StructuralSimilarityIndex)图像质量评估方法,相比于MSE,它更注重结构相似性。文章详细解释了SSIM的三个组成部分(亮度、对比度和结构)以及如何计算它们的相似度。此外,还提到了MeanSSIM的计算方式,并讨论了相关概念如方差、标准差和协方差。
摘要由CSDN通过智能技术生成

date: 2022-01-18 12:53


什么是SSIM?

Structural Similarity 结构相似性,源自论文《Image Quality Assessment: From Error Visibility to Structural Similarity》(图像质量评估:从错误可见性到结构相似性)。

在SSIM 被提出之前被广泛应用的是MES,因为它计算简单,物理意义明确。

MSE公式:

M S E = 1 m n ∑ i = 0 m − 1 ∑ j = 0 n − 1 [ I ( i , j ) − K ( i , j ) ] 2 MSE=\frac1{mn}\sum_{i=0}^{m-1}\sum_{j=0}^{n-1}[I(i,j)-K(i,j)]^2 MSE=mn1i=0m1j=0n1[I(i,j)K(i,j)]2

就是 element-wise 地计算重建图像与输入图像的像素差的平方,然后在全图上求平均。
下图可以看出,MSE 反应的距离和人力的直观感受有很大差别。

左侧为原图,中间为把灰度值调整为原来额0.9 倍的图,右侧为高斯模糊的图。以MSE 为评价指标则右图与原图更接近,和人类观感不同。

由于MSE不能表达人的视觉系统对图片的直观感受(涉及生物学),因此作者提出了更为科学的SSIM 评价指标。SSIM 更侧重于两图的结构相似性,而不是逐像素计算亮度的差异。作者声称其比MSE 更能反应人类视觉系统对两幅图相似性的判断。

SSIM 评价如何实现?

作者将两幅图的相似性比较拆成了三个维度:亮度(luminance) l ( x , y ) l(x,y) l(x,y),对比度(contrast) c ( x , y ) c(x,y) c(x,y),结构(structure) s ( x , y ) s(x,y) s(x,y)
最终x和y 的相似度为这三者的函数:

S ( x , y ) = f ( l ( x , y ) , c ( x , y ) , s ( x , y ) ) S(x,y) = f(l(x,y),c(x,y),s(x,y)) S(x,y)=f(l(x,y),c(x,y),s(x,y))

作者设计的三个公式定量计算三者的相似性,公示的设计遵顼三个原则:
对称性: s ( x , y ) = s ( y , x ) s(x,y)=s(y,x) s(x,y)=s(y,x)
有界性: s ( x , y ) < = 1 s(x,y)<=1 s(x,y)<=1
极限值唯一: s ( x , y ) = 1 s(x,y)=1 s(x,y)=1 当且仅当 x=y

亮度

如果一幅图有 N 个像素点,每个像素点的像素值为xi,那么该图像的平均亮度为:
图像亮度平均值:

μ x = 1 N ∑ i = 1 N x i \mu_x=\frac{1}{N}\sum_{i=1}^Nx_i μx=N1i=1Nxi

亮度相似度:

l ( x , y ) = 2 μ x μ y + C 1 μ x 2 + μ y 2 + C 1 l(x,y)=\frac{2\mu_x\mu_y+C1}{\mu_x^2+\mu_y^2+C1} l(x,y)=μx2+μy2+C12μxμy+C1

C 1 C_1 C1 是防止分母为0 的系数

C 1 = ( K 1 L ) 2 C_1=(K_1L)^2 C1=(K1L)2

K1 是一个常数,取值0.01,L 是灰度的动态范围,和图像数据的类型有关,如果是uint8 类型则L=255,如果是float则L=1。公式堆成且始终小于等于1,当x=y时为1。

对比度

对比度反应的时图像明暗变化的剧烈程度,也就是像素值的标准差。公式:

σ x = ( 1 N − 1 ∑ i = 1 N ( x i − μ x ) 2 ) 1 / 2 \sigma_x=(\frac{1}{N-1}\sum_{i=1}^N{(x_i-\mu_x)^2})^{1/2} σx=(N11i=1N(xiμx)2)1/2

对比度的相似度公式和亮度相似度公式极为相似,只不过把均值换成了方差。作者定义:

c ( x , y ) = 2 σ x σ y + C 2 σ x 2 + σ y 2 + C 2 c(x,y)=\frac{2\sigma_x\sigma_y +C_2}{\sigma_x^2+\sigma_y^2+C_2} c(x,y)=σx2+σy2+C22σxσy+C2

其中

C 2 = ( K 2 L ) 2 C_2=(K_2L)^2 C2=(K2L)2

K2 一般在代码中取0.03。对比度相似公式堆成且小于等于1。

结构相似度

对于一幅图而言,亮度和对比度是标量,而结构无法用要给标量表示,而应该用全图所有像素组成的向量表示。同时,研究结构相似度时应该排除亮度和对比度的影响,即排除均值和标准差的影响。因此作者研究的是归一化的两个想想: ( x − μ x ) / σ x (x-\mu_x)/\sigma_x (xμx)/σx ( y − μ y ) / σ y (y-\mu_y)/\sigma_y (yμy)/σy 之间的关系。

结构比较函数:

s ( x , y ) = σ x y + C 3 σ x σ y + C 3 s(x,y) = \frac{\sigma_{xy} + C_3}{\sigma_x \sigma_y + C_3} s(x,y)=σxσy+C3σxy+C3

协方差公式

σ x y = 1 N − 1 ∑ i = 1 N ( x i − μ x ) ( y i − μ y ) \sigma_{xy}=\frac{1}{N-1}\sum_{i=1}^N(x_i-\mu_x)(y_i-\mu_y) σxy=N11i=1N(xiμx)(yiμy)

SSIM

结合前面三个公式

S S I M ( x , y ) = f ( l ( x , y ) , c ( x , y ) , s ( x , y ) ) SSIM(x,y) = f(l(x,y),c(x,y),s(x,y)) SSIM(x,y)=f(l(x,y),c(x,y),s(x,y))

令C3=C2/2,c(x,y) 和 s(x,y) 的分母可以约分,最终得到SSIM 公式:

S S I M ( x , y ) = ( 2 μ x μ y + C 1 ) ( 2 σ x y + C 2 ) ( μ x 2 + μ y 2 + C 1 ) ( σ x 2 + σ y 2 + C 2 ) SSIM(x,y)=\frac{(2\mu_x\mu_y+C_1)(2\sigma_{xy}+C_2)}{(\mu_x^2+\mu_y^2+C_1)(\sigma_x^2+\sigma_y^2+C_2)} SSIM(x,y)=(μx2+μy2+C1)(σx2+σy2+C2)(2μxμy+C1)(2σxy+C2)

然而上面的公式不能应用于整幅图,因为在整幅图的跨度上均值和方差往往变化剧烈。作者采用 sliding window 以步长为 1 计算两幅图各个对应 sliding window 下的 patch 的 SSIM,然后取平均值作为两幅图整体的 SSIM,称为 Mean SSIM。简写为 MSSIM。
假如整幅图有 M 个 patch,那么 MSSIM 公式为:

M S S I M ( X , Y ) = 1 M ∑ j = 1 M S S I M ( x j , y j ) MSSIM(X, Y) =\frac{1}{M} \sum_{j=1}^M SSIM(x_j,y_j) MSSIM(X,Y)=M1j=1MSSIM(xj,yj)

使用MSSIM 计算相似度:

图像处理中的SSIM

参考链接

  1. SSIM 的原理和代码实现

补充概念

方差

定义:用于衡量一组数据的离散程度。在统计描述中,方差用来计算每一个变量(观察值)与总体均数之间的差异。

σ 2 = 1 N ∑ ( X − μ ) 2 \sigma^2=\frac{1}{N}\sum(X-\mu)^2 σ2=N1(Xμ)2

σ \sigma σ 为总体方差, X X X为变量, μ \mu μ为总体均值, N N N为总体例数。

标准差(Standard Deviation)

定义:标准差(Standard Deviation) ,是离均差平方的算术平均数的算术平方根,用σ表示。标准差也被称为标准偏差,或者实验标准差,在概率统计中最常使用作为统计分布程度上的测量依据。

σ = ∑ ( X − μ ) 2 N \sigma=\sqrt{\frac{\sum(X-\mu)^2}{N}} σ=N(Xμ)2

标准差越小说明数据越集中。

协方差(Covariance)

协方差用来刻画两个随机变量 X , Y 之间的相关性

如果两个变量的变化趋势一致,也就是说如果其中一个大于自身的期望值,另外一个也大于自身的期望值,那么两个变量之间的协方差就是正值。

如果两个变量的变化趋势相反,即其中一个大于自身的期望值,另外一个却小于自身的期望值,那么两个变量之间的协方差就是负值。

协方差的公式如下:

σ ( x , y ) = 1 N ∑ ( x i − μ x ) ( y i − μ y ) \sigma(x,y)=\frac{1}{N}\sum(x_i-\mu_x)(y_i-\mu_y) σ(x,y)=N1(xiμx)(yiμy)

方差就是协方差的一种特殊形式,当两个变量相同时,协方差就是方差了。

公式2:

C o v = E [ ( X − μ x ) ( Y − μ y ) ] Cov = E[(X -\mu_x)(Y-\mu_y)] Cov=E[(Xμx)(Yμy)]

可以有如下理解:如果有X,Y两个变量,每个时刻的“X值与其均值之差”乘以“Y值与其均值之差”得到一个乘积,再对这每时刻的乘积求和并求出均值。

余弦相似度

c o s ( θ ) = ∑ i = 1 n ( X i ∗ Y i ) ( ∑ i = 1 n ( X i ) 2 ) ∗ ( ∑ i = 1 n ( Y i ) 2 ) cos(\theta)=\frac{\sum_{i=1}^n(X_i * Y_i)}{\sqrt(\sum_{i=1}^n(X_i)^2) * \sqrt(\sum_{i=1}^n(Y_i)^2)} cos(θ)=( i=1n(Xi)2)( i=1n(Yi)2)i=1n(XiYi)

余弦值越接近1,就表明夹角越接近0度,也就是两个向量越相似,夹角等于0,即两个向量相等,这就叫"余弦相似性"。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值