结构相似性指数(Structural Similarity Index, SSIM)是一个用于衡量两幅图像之间相似度的指标,它由周海翔等人在2004年提出。SSIM旨在改进传统的均方误差(MSE)和峰值信噪比(PSNR),因为这些传统方法往往不能很好地反映人类视觉系统(HVS, Human Visual System)对图像质量变化的感知。
SSIM考虑了三个方面的信息:亮度(luminance)、对比度(contrast)以及结构信息(structure)。这三个因素是基于人类视觉系统的特性而选取的,因为人类对于图像的感知主要取决于这些特征。SSIM公式可以表示为:
SSIM ( x , y ) = [ l ( x , y ) ] α ⋅ [ c ( x , y ) ] β ⋅ [ s ( x , y ) ] γ \text{SSIM}(x,y) = [l(x,y)]^\alpha \cdot [c(x,y)]^\beta \cdot [s(x,y)]^\gamma SSIM(x,y)=[l(x,y)]α⋅[c(x,y)]β⋅[s(x,y)]γ
其中 ( x ) 和 ( y ) 分别代表参考图像和待比较图像; l ( x , y ) l(x,y) l(x,y)、 c ( x , y ) c(x,y) c(x,y)和 s ( x , y ) s(x,y) s(x,y)分别是亮度、对比度和结构的相似性度量; α \alpha α, β \beta β, γ \gamma γ是非负的加权参数,默认情况下都设置为1。
亮度相似度 l ( x , y ) l(x,y) l(x,y)通常定义为两个图像平均亮度的相似度,对比度相似度 c ( x , y ) c(x,y) c(x,y) 定义为两个图像对比度的相似度,而结构相似度 s ( x , y ) s(x,y) s(x,y)则衡量的是两个图像之间的结构信息的一致性。
为了计算方便,实际应用中的SSIM值通常简化为如下形式:
SSIM ( x , y ) = ( 2 μ x μ y + C 1 ) ( 2 σ x y + C 2 ) ( μ x 2 + μ y 2 + C 1 ) ( σ x 2 + σ y 2 + C 2 ) \text{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)
这里:
- μ x \mu_x μx 和 μ y \mu_y μy分别是图像 x x x和 y y y 的平均亮度;
- σ x 2 \sigma_x^2 σx2 和 σ y 2 \sigma_y^2 σy2分别是图像 x x x 和 y y y的方差,即对比度;
- σ x y \sigma_{xy} σxy是图像 x x x 和 y y y 的协方差,反映了它们之间的结构相似性;
- C 1 C_1 C1 和 C 2 C_2 C2 是用来稳定除法运算的小常数,防止分母为零的情况发生。
SSIM的取值范围一般是在 -1 到 1 之间,其中 1 表示完全相同,0 表示没有线性相关,-1 表示完全负相关。然而,在实际应用中,SSIM的值很少会达到 -1 或者低于 0,因此更常见的取值范围是 0 到 1 之间,值越大表示两张图片越相似。
SSIM已经被广泛应用于图像处理和计算机视觉领域,如图像压缩、图像恢复、图像融合等任务中,作为评估图像质量的一个重要标准。