结构相似性指标(structural similarity index,SSIM index)是一种用以衡量两张数位影像相似程度的指标,本文记录相关内容。
简介
结构相似性指标(structural similarity index,SSIM index)是一种用以衡量两张数位影像相似程度的指标。当两张影像其中一张为无失真影像,另一张为失真后的影像,二者的结构相似性可以看成是失真影像的影像品质衡量指标。相较于传统所使用的影像品质衡量指标,像是峰值信噪比(PSNR),结构相似性在影像品质的衡量上更能符合人眼对影像品质的判断。
结构相似性的基本观念为自然影像是高度结构化的,亦即在自然影像中相邻像素之间有很强的关联性,而这样的关联性承载了场景中物体的结构资讯。人类视觉系统在观看影像时已经很习惯抽取这样的结构性资讯。因此,在设计影像品质衡量指标用以衡量影像失真程度时,结构性失真的衡量是很重要的一环。
定义
给定两个信号 x 和 y ,两者的结构相似性定义为: 其中, l(mathbf{x},mathbf{y})比较 mathbf{x}和 mathbf{y}的亮度, c(mathbf{x},mathbf{y})比较 mathbf{x}和 mathbf{y}的对比度, s(mathbf{x},mathbf{y})比较 mathbf{x}和 mathbf{y}的结构 (structure) , alpha>0,quadbeta>0,quadgamma>0, 为调整 l(mathbf{x},mathbf{y})、 c(mathbf{x},mathbf{y})、 s(mathbf{x},mathbf{y})相对重要性的参数, mu_x 及 mu_y、 sigma_x 及 sigma_y分别为x和y的平均值和标准差, sigma_{xy}为x和y的协方差, C_1、 C_2、 C_3皆为常数,用以维持 l(mathbf{x},mathbf{y})、 c(mathbf{x},mathbf{y})、 s(mathbf{x},mathbf{y})
,如此一来:
性质
- 对称性
- 局限性
结构相似性指标的最大值为1,亦即
- 单一最大值
当衡量的两个信号完全相同时,若且唯若结构相似性指标的值为1。
使用
得到:
在计算两张影像的结构相似性指标时,会开一个局部性的视窗,一般为
比较
一般认为,结构相似度指标比均方误差(MS)更适合用来判断两张图像的相似度,原因是结构相似性指标同时考虑图片亮度、对比与结构资讯,这跟人类的视觉系统的判断基准较为接近。MSE只考虑两张图片的平均亮度误差而不考虑结构化的资讯,所以当图片有些微的亮度改变时,MSE改变会很剧烈,但小亮度改变并不会造成人类把两张图片判断成完全不同。
另外一种计算相似度的方法是使用正规化均方根误差(NRMSE),NRMSE是基于MSE的公式,再除上其中一张图像的亮度,这样的处理使得NRMSE对于整体亮度变化比较不敏感,并且让数值落在比较受限的范围内以便于比较,然而NRMSE没有考虑结构化资讯的问题依旧存在。
测试
下面使用了五张照片做实验,辅助说明:
- Image A:原图
- Image B:(Image A * 0.5) 128
- Image C:255 - Image A
- Image D:Image A 叠加影子后的结果
- Image E:对照组
对人类的视觉系统来说,Image A、B、C、D 是一群较为相似的图片,Image E 则是与其他图片毫无相关。
这里是使用Image A跟其他图片进行相似度的比较,一共使用三种方法:均方误差(MSE)、正规化方均根差(NRMSE)、结构相似度指标(SSIM)。
| A | B | C | D | E |
---|---|---|---|---|---|
MSE | 0.000 | 4443.170 | 7214.947 | 5445.344 | 4592.340 |
NRMSE | 0.000 | 0.489 | 0.623 | 0.541 | 0.497 |
SSIM | 1.000 | 0.744 | -0.909 | 0.713 | 0.047 |
然而在上述的比较实验可以发现,只有结构相似度指标能够正确反映这个关联,结构相似性指标在Image B、C、D之中都得到了较高的相似度(其中Image C为负相关),而唯有Image E得到了接近零的相似度。这代表使用结构相似性指标能够知道Image A、B、C、D之间很相似,而Image E跟其他图片不相似。反之,MSE与NRMSE皆无法在结果上反映出Image E与其他图片的差别。
限制
结构相似性指标有其限制,对于影像出现位移、缩放、旋转(皆属于非结构性的失真)的情况无法有效的运作。为解决此问题,另已发展出在小波域进行运算的结构相似性指标,称作复小波结构相似性指标(complex wavelet SSIM,CW-SSIM)。
当图片出现平移、旋转或是缩放时,结构相似度指标会改变得十分剧烈,并很容易将两张类似的图片视为不相似的。原因与在计算SSIM时所使用的局部性视窗有关,平移、旋转或是缩放都会导致视窗内的像素结构完全改变,使SSIM无法正确估计相似度。
测试
下面的实验是使用Image A 跟Image F、G、H计算相似度
- Image F: Image A 往右平移30像素
- Image G: Image A 逆时针旋转30度
- Image H: Image A 长宽各缩短6.25%
可以看到Image A仅向右移30像素就导致了两张图片前后的SSIM为0.11,上述实验足以说明结构相似性指标的确对这些操作很敏感,要解决这类的问题可以使用复小波结构相似性。
变形
多尺度结构相似性
多尺度结构相似性(multi-scale SSIM,MS-SSIM)尝试去解决结构相似度里面,依赖特定大小的视窗进行计算的问题,因为如果输入的图片的解析度不同,使用者往往需要更改结构相似性的参数,才能得到较合理的结果。多尺度结构相似性,则是把输入图片经过若干次的低通滤波器与两倍下采样,每次下采样之后都计算一次结构相似度。最后的结果会同时考量所有不同尺寸的图片计算出的结构相似性,由此达到指标能自适应不同解析度的图片的目的。Multi-Scale SSIM Complex Wavelet SSIM 或是 CW-SSIM的作者认为MS-SSIM能得到比SSIM相等或是更好的评量结果。
结构相异性
结构相异性(structural dissimilarity,DSSIM)正好是结构相似性的相反。当两张图片相等时,结构相异性为0。反之当两张图片很不相似时,结构相异性可以趋近无限大。
复小波结构相似性
结构相似性虽然能大致符合人类的视觉系统的感受,但若图片遇到几何上的转换,例如平移、旋转与缩放时,结构相似性会无法正确描述两张图片的相似程度。因此复小波结构相似性(complex wavelet SSIM,CW-SSIM)针对了这个问题进行了改良,CW-SSIM的作者8认为与其使用亮度(magnitude)进行比较,不如用相位来进行比较较具有代表性,因此CW-SSIM会在复小波域中计算区域性的相位,并用相位的差异来计算相似性,公式如下:
其中
参考资料
- https://zh.wikipedia.org/zh-hans/結構相似性
文章链接: https://cloud.tencent.com/developer/article/2372743