在上一篇文章中,我们介绍了对图像质量进行评价的必要性、主观评价和客观评价的两种标准,以及设计符合人类直觉的评价标准的困难性和重要性。
本来这篇文章想把我们的主角SSIM讲完,但是发现前面需要写的铺垫有点长hhh,所以本文是作为一个过渡,系统的讲解一下设计图像评价标准的过程和目前的缺点,SSIM的详细讲解将在下一篇文章中介绍(保证下一篇是最后一篇,别打我QAQ)
提前预告一下,这一篇可能比较无聊==,但是对在脑海中构建一个整体框架还是挺有帮助的~
基于误差敏感性的图像质量评价
在对图像质量进行评价时,我们会拿到一些未失真的原始图像信号和一个失真图像信号,之后我们将失真图像与未失真图像通过一定的方法进行比较,最终得到一个失真图像与原始图像的误差。我们一般会假设失真图像质量与得到的误差直接相关,这样这个误差最终就被认为是衡量图像质量的标准。
这里面最简单的例子就是MSE,但MSE效果是在太差(参照前面讲的,同一个MSE对应不同质量的图片),于是近年来新的方法不断被提出。在这里我们介绍一下提出一个新的基于**误差敏感性(error sensitivity)**的评价标准的一般步骤,以及现有的方法有什么局限性。
一般步骤
评价标准的设计过程一般分为预处理、CSF滤波、通道分解、误差归一化、误差池化5步,下面分别简单介绍,这个部分大略看看就好不需要完全理解~
- 预处理(pre-processing):首先,拿到图像一般不能直接用,需要做些预处理,对图像信号进行一些基本变换,比如缩放、排列,或者转换颜色空间(color space),以及针对显示设备逐像素进行变换等等。
- CSF滤波(CSF Filtering):接下来可能要对对预处理得到的图像信号使用CSF进行加权。CSF的全称是contrast sensitivity function,按照字面翻译过来就是对比度敏感性函数。这个函数描述了人类视觉系统(HVS)对视觉刺激的时空频率的敏感程度。
CSF一般会用一个线性滤波器来近似实现。不过在现在的一些研究当中,是在后面提到的通道分解之后,用基频灵敏度归一化(base-sensitivity normalization)实现CSF。 - 通道分解(Channel Decomposition):图像一般由多个**通道(channel)**组成(比如最常见的RGB+alpha通道)。经过前面两步处理的图像信号,往往需要再分解成多个不同的通道。
把图像信号分解成若干通道时,可以考虑视觉皮层的神经元的特性,也可以只做一些很简单的变换,比如离散余弦变换(discrete cosine transformDCT)、*可分离的小波变换(separable wavelet transform)*等等。 - 误差归一化(Error Normalization):分解完通道,我们混通过指标中的定义计算出失真图像与参照图像在每个通道的误差。但是需要注意,各个通道计算出的误差的数量级可能不一样,需要归一化到相当的水平。
- 误差池化(Error Pooling):现在到了最后一步,就是把空间上各部分和各通道的误差使用某种方法“合成”为一个数字,也就是我们最终得到的误差啦~
其中,一个很经典的“合成”方法是使用闵可夫斯基范数(Minkowski Norm),公式是这样滴:
E ( { e l , k