image.png
本文是全参考客观图像质量评估的重要方法SSIM的原始论文。由于SSIM现在在多数领域中被作为指标和损失函数,起到了非常重要的作用,所以温习其设计动机和思路、重构其实现代码,是一份非常有价值的学习经历和实践经验。
本文主要聚焦论文阅读的记录。

  • 以实现为核心内容的一篇博客:https://blog.csdn.net/u014422462/article/details/120069426
  • 更详细全面的梳理:https://en.wikipedia.org/wiki/Structural_similarity

    背景介绍

    评估感知图像质量的客观方法(这里要区别于后面会提到的“主观方法”),传统上试图利用人类视觉系统的各种已知特性,来量化失真图像和参考图像(干净图像或者原始图像)之间的误差(差异)的可见性(the visibility of errors or differences)。在人类视觉感知高度适应于从场景中提取结构信息的假设下,我们针对质量评估,引入了一种基于结构信息退化的替代的补充框架。作为这一概念的一个具体示例,我们开发了一个结构相似性指数(Structural Similarity Index),并通过一组直观的示例,以及在使用JPEG和JPEG2000压缩的图像数据库上与主观评分和最先进的客观方法进行比较,从而展示了其前景。
    在采集,加工,压缩,存储,传输和复制过程中,数字图像会遭受各种各样的扭曲(are subject to a wide variety of distortions),其中任何一个可能都可能导致视觉质量的退化。对于最终由人类查看的图像的应用,量化视觉图像质量的唯一“正确”方法是通过主观评估。但是,实际上主观评估通常不便、耗时且昂贵。客观图像质量评估中研究的目的是制定可以自动预测感知图像质量的定量度量。
    一个客观图像质量指标可能在图像处理应用中,扮演着不同的角色:
  1. 首先,可能被用于动态监控和调整图像质量。例如,一个网络数字视频服务器能够检查正在被按顺序传输的视频的质量,以控制和分配流资源。
  2. 其次,它可用于优化图像处理系统的算法和参数设置。例如,在视觉通信系统中,质量指标可以协助编码器中预滤波(prefiltering)和位分配(bit assignment)算法,以及解码器中最佳重建(optimal reconstruction)、错误消除(error concealment)以及后滤波(postfiltering)算法的最佳设计。
  3. 第三,它可用于评估(benchmark)图像处理系统和算法。

客观图像质量指标可以根据原始图像(无失真,distortion-free)的是否可用而进行分类,这是被用来和扭曲图像进行比较的。

  • 全参考(full-reference):大多数现有方法称为全参考。这意味着假定已知完整的参考图像。
  • 无参考(no-refrence,blind):但是,在许多实际应用中,参考图像不可用,并且希望采用无参考或“盲(blind)”质量评估方法。
  • 有限参考(reduced-reference):在第三种类型的方法中,参考图像仅部分可用,以一组提取特征的形式作为侧面信息来帮助评估失真图像的质量。

本文着重于全参考图像质量评估。
最简单、最广泛使用的全参考质量指标是均方误差(MSE),这是通过平均失真和参考图像像素强度的差异的平方得到的。它也伴随着峰值信号噪声比(PSNR)的相关量 。这些之所以吸引人,是因为它们易于计算,具有清晰的物理含义。并且在优化背景下,数学形式上很方便。但是它们与感知到的视觉质量不太匹配。在过去的三十年中,质量评估方法的发展已经投入了巨大的努力,这些方法利用了人类视觉系统(HVS)的已知特性。大多数提出的感知质量评估模型遵循了修改MSE的策略,以便根据其可见性(visibility)对误差进行惩罚。下面对这些误差敏感(error-sensitivity)的方法进行总结。

基于误差敏感性的图像质量评估

要被评估质量的图像信号可以被看做是无失真的参考信号和误差信号的加和。一个广泛采用的假设是,感知质量的损失直接相关于误差信号的可见性。该概念的最简单实现是MSE,它客观地量化了误差信号的强度。但是两个具有相同MSE的失真图像可能具有非常不同的误差类型,其中一些误差比其他的更为明显。相关文献中提出的大多数感知图像质量评估方法试图根据误差信号的可见性来加权其不同方面,这取决于人类的心理物理测量或动物的生理测量(psychophysical measurements in humans or physiological measurements in animals)。这种方法是由Mannos和Sakrison [The effects of a visual fidelity criterion on the encoding of images]开创的,多年来,许多研究人员都扩展了这种方法。关于图像和视频质量评估算法的综述可以在[Perceptual quality metrics applied to still image compression, Perceptual criteria for image quality evaluation, Objective video quality assessment, Issues in vision modeling for perceptual video quality assessment]中找到。

整体框架

基于误差敏感性的方法一般满足下面这个通用的框架。
image.png

  • 预处理:这个阶段通常执行各种基本操作,以消除被比较图像中的已知失真。
    • 首先,失真和参考信号被适当地缩放和对齐。
    • 其次,信号可能被转换为更适合HVS(人类视觉系统)的颜色空间。
    • 第三,质量评估指标可能需要通过点式非线性转换,将存储在计算机存储器中的数字像素值转换为在显示器上像素的亮度值。
    • 第四,可以应用用于模拟眼镜的点扩散函数的低通滤波器。
    • 最后,可以使用非线性点操作来修改参考图像和失真图像,以模拟光适应
  • 对比灵敏度函数滤波(CSF Filtering):对比灵敏度函数描述了HVS对视觉刺激中存在的不同空间和时间频率的敏感性。一些图像质量指标包括根据此函数加权信号的阶段(通常使用近似CSF频率响应的线性滤波器实现)。但是,许多最近的指标选择在通道分解阶段之后后实现CSF作为基础敏感性归一化因子。
  • 通道分解(channel decomposition):图像通常分为子带(subbands)(在心理物理学文献中通常称为“通道”),这些子带对空间和时间频率以及方向有选择性。虽然某些质量评估方法实施了复杂的通道分解,据信与主要视觉皮层中的神经反应密切相关。但是许多指标使用更简单的转换,例如离散余弦变换(DCT)或可分离的小波转换。也有人尝试了调谐到各种时间频率的频道分解以进行视频质量评估。
  • 误差归一化:根据某个遮蔽模型,计算并归一化每个通道中分解的参考和失真信号之间的误差(差异),这考虑到一个事实,即一个图像成分(component)的存在将降低另一个在空间或时间位置、空间频率或方向上接近的图像成分的可见性。归一化机制通过空间变化的可见性阈值加权通道中的误差信号。每个点上的可视性阈值是根据邻域中参考和/或失真系数的能量和对于通道的基础敏感性而计算的。这里的邻域中的系数可能包括来自同一通道和其他通道的空间邻域内的系数。归一化过程旨在将误差转换为最小可觉差just noticeable difference, JND)的单位上。一些方法还考虑对比相应饱和度(contrast response saturation)的影响。
  • 误差汇聚(Error Pooling):所有质量指标的最后阶段必须在图像的空间范围内以及横跨不同通道下组合归一化误差信号到单一数值上。对于大多数质量评估方法,汇聚过程去使用minkowski范数的形式。minkowski汇聚操作可能先横跨空间然后横跨频率,或者反之。它们之间有一定的非线性,或者可能具有不同的指数系数。一个反映不同区域的相对重要性的空间映射也可能被用来提供空间多样性加权。

    存在的局限性

    误差敏感类方法的基本原理是,通过量化误差的可见性,可以最好地估计感知质量。这基本上是通过模拟HVS早期阶段的功能属性来实现的,其特征是心理物理和生理实验。尽管这种针对该问题的自底而上的方法几乎已经被普遍接受,但必须认识到其局限性。特别是HVS是一个复杂且高度非线性的系统,但是大多数早期视觉模型都是基于由受限和简单的刺激(restricted and simplistic stimuli)来表征的线性或准线性算子(linear or quasilinear operators)。因此,错误敏感方法必须依靠许多强有力的假设和依据不足的概括(strong assumptions and generalizations)。这已经被许多之前的作者们指出了,我们在这里仅提供一个简短的摘要。

  • “质量”定义问题:传统方法的最根本问题是图像质量的定义。特别是,尚不清楚错误可见性应该等同于质量损失,因为某些失真可能清晰可见,但并不令人反感(objectionable)。一个明显的示例将是图像强度乘以一个全局尺度因子。[The relationship between image fidelity and image quality]中的研究还表明,图像保真度和图像质量之间仅有中等的相关性。

  • 超阈值(Suprathreshold)问题。基于许多错误敏感性模型的心理物理实验被专门设计以估计阈值。在这个阈值上,刺激几乎看不见。然后使用这些测量的阈值来定义视觉误差敏感性度量,例如CSF和各种遮蔽效应(masking effects)。但是,很少有心理物理研究表明是否可以将这种阈值附近的模型推广到表征感知失真明显大于阈值水平的情况,就像大多数图像处理的情况一样。在超出阈值的范围内(in the suprathreshold range),是否可以使用可见性阈值将不同通道之间的相对视觉失真进行归一化?最近一些工作中尝试去结合超阈值心理物理学(incorporate suprathreshold psychophysics)来分析图像失真。
  • 自然图像复杂度问题。大多数心理物理实验都是使用相对简单的模式(例如斑点,条状或正弦光栅)进行的。例如,CSF通常是使用全局正弦图像从阈值实验获得的。通常使用两个(或可能几个)不同模式的叠加(superposition)来表征掩蔽现象。但是,所有这些模式都比现实世界图像要简单得多,这可以被认为是大量简单模式的叠加。针对几个简单模式之间相互作用的模型可以泛化去评估数十个或数百个模式之间的相互作用吗?这种基于有限数量简单刺激的实验足以构建可以预测具有复杂结构的自然图像的视觉质量的模型吗?尽管目前尚不清楚这些问题的答案,但最近建立的Modelfest数据集同时包括了简单和复杂的模式,并应该会促进未来的研究。
  • 去相关性(Decorrelation)问题。当人们选择使用Minkowski度量来在空间上汇总误差时,人们隐含地假设不同位置的误差在统计上是独立的。如果在汇聚之前的处理消除了输入信号中的依赖关系,则将是正确的。然而,从经验上讲,线性通道分解方法(例如小波变换)并非如此。已经表明,自然图像的通道内和通道间之间的小波系数之间存在很强的依赖关系。实际上,最优秀的小波图像压缩技术通过利用这种强依赖性而实现了成功。从心理物理上讲,已使用各种视觉掩蔽模型来考虑系数之间的相互作用。从统计学上讲,已经表明,设计良好的非线性增益控制模型,其中的参数被优化以减少依赖性,而不是用于拟合来自遮蔽实验的数据,可以大大降低变换系数的依赖性。在最近的工作中表明,变换和遮蔽模型的最佳设计可以减少统计和感知上的依赖性。这些模型可以在多大程度上改善当前质量评估算法的性能,还仍待观察。
  • 认知互动(Cognitive Interaction)问题。众所周知,认知理解和交互式视觉处理(例如,眼动)会影响图像的感知质量。例如,如果提供不同的指示,人类观察者将对同一图像给出不同的质量分数。有关图像内容或注意力和关注点的先验信息,也可能影响图像质量的评估。但是,大多数图像质量指标都不考虑这些效果,因为它们很难被量化且不太好理解。

    基于结构相似性的图像质量评估

    自然图像信号是高度结构化的:它们的像素表现出很强的依赖性,尤其是当它们在空间上临近时,并且这些依赖性具有有关视觉场景中物体结构的重要信息。 Minkowski误差指标基于点级别信号差异,这些信号差异与实际信号结构无关。尽管基于误差敏感性的大多数质量度量都使用线性变换来分解图像信号,但这些措施并未消除强依赖性,如前一节所述。我们新方法的动机是找到一种更直接的方法来比较参考和失真信号的的结构。

    新的思想体系(New Philosophy)

    image.png
    文献[Rate scalable Foveated image and video communications, Why is image quality assessment so difficult]针对图像质量的度量的设计提出了一个新框架,其基于人类视觉系统高度适于从视野中提取结构信息。因此,结构信息变化的度量可以为感知的图像失真提供良好的近似值。
    通过与错误敏感性体系进行比较,可以最好地理解这种新的想法。
  1. 首先,错误敏感性方法估计感知误差以量化图像降解,而新思路则认为图像退化是结构信息变化中被感知的变化。一个示例如图2所示,其中原始的“船”图像通过应用不同的失真而改变,每个图像都调整为相对于原始图像几乎相同的MSE。尽管如此,这些图像的感知质量截然不同。用误差敏感性理论体系的话,很难解释为什么对比度拉伸的图像具有很高的质量,因为它很容易辨别出其参考图像的视觉差异。但是这一现象很容易通过新的理念来理解,因为几乎所有参考图像的结构信息都被保留了,因为它可以通过简单的点级别的逆线性亮度变换来近乎完全地恢复原始信息(除了发生饱和的非常明亮和黑暗区域)。另一方面,来自原始图像的一些结构信息在JPEG压缩和模糊的图像中永久丢失,因此会有比对比度拉伸和均值偏移的图像更低的质量分数。
  2. 其次,误差敏感度范式是一种自下而上(bottom-up)的方法,模拟了HVS中相关的早期组件的功能。而新的范式是一种自上而下的方法,模仿了整个HVS的假设的功能。一方面,这也就避免了前面提到的超阈值问题,因为它并不依赖阈值心理物理学来量化被感知的失真。从另一方面,认知互动问题也在某种程度上被削弱,因为,对被观察对象结构的探测被认为是整个视觉观察过程的目的,包括高级和交互过程。
  3. 第三,自然图像复杂性和去相关的问题在某种程度上也避免了,因为新思路并没有试图通过积累相关于心理物理理解的简单模式的误差来预测图像质量。取而代之的是,新思路提出直接评估两个复杂结构信号之间的结构变化。

    SSIM指数(The SSIM Index)

    我们从图像形成的角度构建了SSIM质量度量的特例。对这种方法的实例化在之前的工作中已经做过,并在简单测试中实现了有希望的结果。在本文中,我们概括了该算法,并提供了更广泛的验证结果。
    被观察的物体的表面的亮度是光照强度和反射率的乘积,但是场景中物体结构与光照无关。因此,要探索图像中的结构信息,我们希望分离光照的影响。我们将图像中的结构信息定义为代表场景中对象结构的属性,与平均亮度和对比度无关。由于场景中亮度和对比度是不断变换的,因此在我们的定义中,使用局部亮度和对比度(实际SSIM的计算是在不同的patch内部分别计算的)
    image.png
    上图展示的就是提出的质量评价系统。
    假设x和y是两个非负的图像信号,它们彼此对齐(例如,从每个图像中提取的空间块)。如果我们认为其中一个信号具有完美的质量,那么相似性度量可以用作对第二个信号质量的定量测量(quantitative measurement)。该系统将相似性度量任务分为三个方面的比较:亮度,对比度和结构。
  • 首先,比较每个信号的亮度。假设信号离散,亮度层面就使用平均亮度来评估。亮度比较函数就是一个关于两个信号平均亮度的函数。
  • 第二,我们从信号中移除平均亮度,在离散形式中,得到的差值信号对应着输入信号向量在超平面上的投影。我们使用标准差作为信号对比度的评估标准。这里使用离散形式下无偏估计的形式。对比度比较是两个信号的对比度的函数。
  • 第三步,通过减去军之后除以标准差来归一化信号。因此两个被比较的信号有着单位标准差。结构比较函数基于两个归一化信号构成。

最终,三个组件组合起来获得最终的相似性度量。重要的一点是,三个组件是相对独立的。例如,亮度和/或对比度的变换并不会影响图像结构。
为了完整的定义这一相似性度量,我们需要定义三个函数,和一个最终的组合函数。同时,最终的相似性度量应该满足以下条件:

  1. 对称性:不因两个输入信号位置的交换而变化。
  2. 有界性:度量值应当小于等于1。
  3. 最大值唯一:当且仅当两个信号完全相等时,度量值为1。

这里对亮度比较和对比度比较都使用了“相对亮度或者相对对比度”和“对应倒数”的调和平均数的形式,即Image quality assessment: from error visibility to structural similarity - 图5,虽然无从得知这一形式设计的初衷或者动机是什么,但是从实际的函数图像可以看到,这个函数仅当x=y时获得最大值1,而且二者差异越大结果越趋近于0。但是由于分母存在为0的情况,所以这里两个比较函数都各自引入了一个固定的常数来维持稳定性。
image.png
对于亮度比较,引入的常数Image quality assessment: from error visibility to structural similarity - 图7。这里的L表示实际处理图像像素值的动态范围边界,例如对于8bit图像,值就是255,而这里的K1是一个小的常数,实际设置为0.01。而且这样的形式也明显满足前述的三个条件。该等式也与Weber’s law,即韦伯定律一致。韦伯定律已被广泛用于建模HVS中的光适应性(也称为亮度掩蔽)。根据韦伯定律,对于一个大范围的亮度值而言,刚好可以注意到的(最小可觉的,just-noticeable)亮度变化的幅度与背景亮度大致成正比。换句话说,HVS对相对亮度变化敏感,而不是绝对亮度变化。通过让R表示亮度变化相对于背景亮度的比例,可以重写退化信号的亮度为参考信号的(1+R)倍。从而可以得到关于R和参考图像亮度值之间的公式。由于包含参考图像亮度值的一项实际非常小,所以可以忽略。也就是这一公式就关于相对亮度变化了,这与韦伯定律定性上是一致的。
而对比度比较直接将上式子中的平均值替换为标准差,而K1替换为远小于1的K2即可,实际中K2使用0.03。这一定义同样满足三条要求,而且重要的一点是,当失真图像与参考图像之间的对比度变化一定时,相较于参考图像对比度较低的时候,这一度量对于参考图像对比度较高时更不敏感(即参考图像对比度本身就低,失真图像对比度稍微一变化就很明显,而参考图像对比度高的时候,失真图像对比度轻微的变化就不那么容易看得出来了)。这和HVS的遮蔽效应是一致的。
最后是结构比较。这通过减去平均亮度和方差归一化后的信号构成。具体而言,这关联了两个包含着图像结构信息的单位向量(这里似乎默认归一化后的图像信号中主要就是结构信息)。二者的相关性(这里使用向量的内积表示向量的相关性)是一个简单有效的用于量化结构相似性的度量。要注意的是,归一化后的两个向量的相关性(内积)计算实际上是等价于原始信号x和y之间的相关系数的。于是二者的结构对比函数可以直接基于x和y的相关系数的形式进行定义,同样的,在分子分母上引入了一个常数C3。另一个角度看,相关系数也可以看作是两个去均值的向量之间的夹角余弦值。因为两个向量元素对应相乘后的加和对应的就是向量的内积。所以也可以得到,这里的结构对比函数的取值范围是-1到1。
最终组合这三个对比函数从而得到计算信号x和y之间相似性度量的SSIM指数。具体公式如下:
image.png
这里的三个指数超参数都是整数,用于调节不同组件的相对重要性。而且该形式同样也满足前面提到的三个条件。为了简化表示,这里默认将指数全部设置为1并且C3设置为C2的一半:C3=C2/2。由此可以得到一个更加紧凑的形式:
image.png
在作者的前期工作[Rate scalable Foveated image and video communications, A universal image quality index]中的universal quality index(UQI)实际上对应于该式子在C1=C2=0时的情况,这会在分母趋于0的时候导致不稳定的结果。
image.png
SSIM指数与更传统的质量指标之间的关系可以在图像成分的矢量空间中以几何的角度说明。这些图像成分可以是像素强度或其他提取的特征,例如变换后的线性系数。图4显示了围绕三个不同示例参考矢量绘制的等距轮廓,每个轮廓代表一个参考图像的局部内容。为了便于展示,这里仅显示二维空间,但总体而言,维度应与要比较的图像成分的数量相匹配。每个轮廓代表一组相对于封闭参考图像,具有相等失真的图像。

  • 图4(a)显示了简单的Minkowski度量的结果。每个轮廓的尺寸和形状相同(这里是一个圆,因为我们假设指数为2)。也就是说,感知距离对应于欧几里得距离。
  • 图4(b)显示了Minkowski度量,其中不同的图像成分的加权方式不同。例如,这可能是根据CSF加权,就像许多模型中一样。在这里,轮廓是椭圆,但仍然是相同的尺寸。这些被显示为与轴对齐,但通常可以将其倾斜到任何固定方向。
  • 许多最近的模型都包含对比度遮蔽行为,该行为的作用是根据信号幅度重新缩放等失真轮廓,如图4(c)所示。这可能被视为一种自适应失真度量:它不仅取决于信号之间的差异,还取决于信号本身。
  • 图4(d)显示了对比度遮蔽(幅度加权)并跟着成分加权的组合。另一方面,我们提出的方法分别计算两个独立数量的比较:矢量长度及其角度。因此,轮廓将与极坐标系的轴对齐。
  • 图 4(e)和4(f)显示了以不同指数计算的两个示例。同样,这可能被视为一种自适应失真度量,但是与以前的模型不同,轮廓的大小和形状都适用于实际信号(underlying signal)。

最近一些使用分裂归一化(divisive normalization)来描述掩蔽效应的模型也表现出依赖于信号的轮廓方向,尽管图4(e)和(f)中的极坐标系统轴的准确对齐在这些方法中未观察到。

使用SSIM来图像质量评估

对于图像质量评估,在局部而非全局应用SSIM更好一些。

  1. 首先,图像统计特征通常在空间上是高度非平稳性的。
  2. 其次,可能依赖或不依赖局部图像统计的图像失真,也可能是空间变化的。
  3. 第三,在典型的观看距离处,人类观察者在一个时间实例上,图像中只有一个局部区域可以被用高分辨率感知(因为HVS的Foveation特征)。
  4. 最后,局部质量度量可以提供图像的空间变化的质量图,该图提供了有关图像质量退化的更多信息,并且在某些应用中可能很有用。

在作者之前的关于UQI的工作中,SSIM中几个局部统计量都是在一个局部的8x8大小的窗口中计算的,这逐像素滑动,从而覆盖整个图像。每一步中,局部统计和SSIM指数被在局部窗口中计算。这个方法伴随着一个问题,最终的SSIM指数图通常展现出不受欢迎的块状锯齿。本文中通过使用11x11的圆形对称(circular-symmetric)的高斯加权函数(标准差1.5,并且所有权重参数加和固定为1)来加权局部计算过程。最终的质量图展现出了局部各向同性的特性(locally isotropic property)。
对于两个采纳数K1和K2,前文中提到,分别使用0.01和0.03。这些值有些任意,但是我们发现,在当前的实验中,SSIM算法的性能对这些值的变化不敏感。
实践中,人们通常会需要一个单独的整体质量评估,因此通过对不同窗口的结果值进行平均,从而得到最终的平均SSIM,即MSSIM。但是这一过程实际上可以根据应用需求来变化,也可以计算不同样本之间的加权平均。例如,感兴趣图像处理系统可能会对图像不同的分割区域提供不同的权重。正如另一个例子,一些工作中已经观察到,不同的图像纹理会对人类视觉关注点有不同程度的吸引。一个平滑变化的foveated加权模型(例如[Embedded foveation image coding])可以被用来定义这一权重。然而这篇工作中,我们仅仅使用均值加权。

实验结果

许多图像质量评估算法已显示,在对同一原始图像使用相同类型的失真(例如JPEG压缩)创建的失真图像时,结果始终如一。但是,当应用到来自于不同的参考图像和/或包括各种不同类型失真的一系列图像时,这些模型的有效性显着降低。因此,跨图像和跨失真测试对于评估图像质量度量的有效性至关重要。虽然不可能彻底展示一系列此类示例,但是图2中的图像为测试质量评估算法的跨失真能力提供了令人鼓舞的起点(an encouraging starting point)。MSE和MSSIM度量的结果在图中给出。显然,MSE表现更差。MSSIM的值展现出了与定性的视觉外观更好的一致性。

最好和最坏案例验证

image.png
我们还开发了一种更有效的方法来检查我们的客观度量与感知质量之间的关系。从一个失真图像开始,我们上升/下降MSSIM的梯度,同时限制MSE维持初始失真图像的梯度。
具体而言,我们迭代两个线性代数步骤,由于MSSIM是可微的,最终这个过程会收敛到客观度量的局部最大或者最小值。这些最佳和最坏情况的图像以及初始失真图像的视觉检查提供了一个视觉指示,这表明了被客观度量认为的最不重要或最重要的失真类型。因此,这是揭示质量度量的感知含义(perceptual implications)的一种权宜和直接方法。
如图5所示,其中初始图像被高斯白噪声污染。可以看出,原始图像的局部结构在最大MSSIM图像中保存得很好。另一方面,在MSSIM最坏的图像中,图像结构发生了巨大变化,在某些情况下,对比度都被逆转了。

在JPEG和JPEG2000图像数据库上的测试

我们比较了由JPEG和JPEG2000压缩图像组成的图像数据库上不同质量评估模型的跨失真和跨图像的性能。使用JPEG或JPEG2000,将29个高分辨率24位/像素RGB彩图(通常为768x512或类似尺寸)在一系列质量等级上进行压缩,总共产生175个JPEG图像和169个JPEG2000图像。比特率分别在0.150至3.336和0.028至3.150位/像素的范围内,并且非均匀选择以至于在整个范围内,主观质量得分的分布大致均匀。受试者从舒适的座椅距离中查看了图像(此距离仅受到适度控制,以允许数据反映自然观看条件),并被要求在连续的线性尺度上提供对质量的感知,该线性尺度分为五个相等的区域,并标记为标记“Bad”,“Poor”,“Fair,“Good”和“Excellent”。每个JPEG和JPEG2000压缩图像分别由13~20名受试者和25名受试者查看。他们主要是男性大学生。
每个受试者的原始分数被使用均值和方差进行归一化(即转化为Z-scores),然后完整数据被放缩填充到1到100。在移除异常值(大多数受试者没有异常值)后,针对每个图像计算平均意见分数(Mean opinion scores (MOSs))。JPEG,JPEG2000和所有图像的主观得分的平均标准差(对于每个图像)分别为6.00、7.33和6.65。图像数据库以及每个图像的主观得分和标准差,已在Internet上提供
每个JPEG和JPEG2000压缩图像的亮度分量在局部的2x2窗口上取均值,并在计算MSSIM值之前,将其降采样2倍。我们对当前数据集进行的实验表明,使用其他色彩分量并不能显着改变模型的性能,尽管对于彩色图像质量评估通常不应认为这是正确的。与许多其他感知图像质量评估方法不同,在将算法应用于数据库之前,没有采用任何的训练过程,因为所提出的方法旨在用于通用图像质量评估(与单独的图像压缩相反)。
image.png
image.png
图6和7显示了一些数据集不同质量等级的图像,和他们各自的SSIM指数图和相对误差图。注意在低比特速率下,JPEG和JPEG2000算法中的粗量化通常会导致图像中的细节区域的平滑表示(例如,图6(d)中的瓷砖和图7(d)中的树木)。与其他类型的区域相比,这些区域在诸如绝对误差之类点差异度量中可能不会更糟。但是,由于图像细节的结构信息几乎完全丢失,因此它们的视觉质量较差。将图6(g)与图6(j)和图7(g)与6(j)进行比较,我们观察到SSIM指数在捕获这样差的质量区域方面更好。还要注意,对于图7(c)等有着密集的强的边缘结构的图像,即使在相对较高的比特率下,也很难减少压缩图像中的点误差,如图7(l)所示。但是,压缩图像提供可接受的感知质量,如图7(f)所示。实际上,尽管图7(f)的视觉质量比图7(e)好,但其绝对误差图图7(l)似乎比图7(k)差,正如他们的PSNR值所证实的那样。 而SSIM指数图图7(h)和7(i)在感知的质量度量中提供了更好的一致性。
image.png
用于比较的质量评估模型包括PSNR,著名的Sarnoff模型,UQI和MSSIM。MOS相对于每个模型的预测的散点图如图8所示。如果将PSNR视为评估其他图像质量指标有效性的基准方法,则Sarnoff模型在此测试中表现确实良好。这与先前发表的工作中的测试结果相反,那些工作中,大多数模型,包括sarnoff模型在内,被汇报在统计上等同于根平方误差和PSNR。对于UQI论文中简单的跨失真测试,UQI方法的性能要比MSE好得多,但在图8中没有提供令人满意的结果。我们认为,在几乎平坦的区域,对比度比较的公式的分母接近零,这使算法不稳定。通过插入小常数C1和C2,MSSIM完全避免了这个问题,并且散点图表明,它提供了对主观分数的非常好的预测。
为了提供有关客观质量评估模型的性能的定量度量,我们遵循视频质量专家组(VQEG)Phase I FR-TV测试中采用的性能评估过程,其中使用了四个评估指标。首先,在拟合过程中使用logistic函数在客观/主观分数之间提供非线性映射。拟合曲线如图8所示。指标1是方差加权回归分析后客观/主观得分之间的相关系数。度量2是非线性回归分析后客观/主观得分之间的相关系数。这两个指标组合,提供了预测准确性(prediction accuracy)的评估。第3个指标是目标/主观得分之间的斯皮尔曼秩相关系数(Spearman rank-order correlation coefficient)。它被认为是预测单调性(prediction monotonicity)的量度。最后,指标4是非线性映射后预测的异常比例(超出标准差2倍范围的预测数量的百分比),这是预测一致性(prediction consistency)的量度。有关这些指标的更多详细信息可以在[Final Report From the Video Quality Experts Group on the Validation of Objective Models of Video Quality Assessment. [Online] Available: http://www.vqeg.org/]中找到。除此之外,我们还计算了非线性回归后的平均绝对预测误差(MAE)和均方根预测误差(RMS),和方差加权回归之后的加权平均绝对预测误差(WMAE)和加权均方根预测误差(WRMS)。表I中给出了所有要比较的模型的评估结果。对于这些标准中的每一个,MSSIM的性能都比所有其他模型要好。
image.png

讨论

在本文中,我们总结了基于误差敏感性进行质量评估的传统方法,并列举了其局限性。我们提出了将结构相似性用作图像质量度量设计一个替代的动机原理(an alternative motivating principle)。为了证明我们的结构相似性概念,我们开发了一个SSIM指数,并表明在对344张JPEG和JPEG2000压缩图像的主观质量的实验度量的比较中,它与其他方法相比更有利。
尽管提出的SSIM索引方法实质上是从不同的设计原理中启发的,但可以看做是对传统方法的补充。仔细的分析表明,SSIM索引和几个最近开发的基于分裂归一化(divisive-normalization)的遮蔽模型在测量信号失真方面都表现出输入依赖性行为。这两种方法似乎最终可能会收敛到类似的解决方案。
关于的SSIM指数形式实际上还有许多问题值得研究。

  1. 首先,需要研究针对各种图像处理算法的SSIM指数的优化。例如,它可以用于图像压缩算法设计中的率失真优化(rate-distortion optimizations)。这不是一件容易的事,因为SSIM形式在数学上比MSE更麻烦。
  2. 其次,SSIM的应用范围可能不限于图像处理。实际上,由于它是一种对称度量,因此可以将其视为比较任意两个信号的相似性度量。信号可以是离散的或连续的,并且可以存在任意维度的空间中。

从图像形成的角度来看,我们将提出的SSIM视为结构相似性思想体系的特定实现。在相同的体系下,可能出现与提出的SSIM有很大不同的其他方法。对结构信息和结构失真概念的创造性调查可能会推动这些创新的成功。

代码实现

参考了多份代码,最终实现了一版基于PyTorch的可微分的MSSIM的代码:
这份代码的实现过程中参考了许多的现有工作,同时也因此注意到了不同实现之间的差异。主要的不同还是在使用PyTorch模拟高斯滤波器的设计上,由于使用的是F.conv2d来实现,这里就需要考虑padding和核的形式的问题。

  • 关于padding,两份主要的参考中,分别使用的是0窗口大小//2,为此我将padding的设置接口暴露给了用户,按照实际需求自行调整即可。
  • 关于核的形式,两份参考也有差异。一个实现使用的是集成形式的多维高斯核,即先把针对不同维度的数值相同但是形状不同的高斯核乘起来,再去卷积数据,而另一个则是分别在不同的维度,按照从高维到低维的顺序依此处理,这就造成了结果上的轻微差异。为此我也将选择权交给了使用者,提供了一个额外的设置参数,即是否使用“集成”形式的核。最终多种测试下,与两个库均可对齐。