链接:
介绍
论文介绍了一种新的无参考图像质量指标模型,这个新的模型称为 NIQE(Natural Image Quality Evaluator)。
这个模型的设计思路是基于构建一系列的用于衡量图像质量的特征,并且将这些特征用于拟合一个多元的高斯模型。这些特征是从一些简单并且高度规则的自然景观中提取的。另外,模型实际上是衡量一张待测图像在多元分布上的差异,这个分布则是由一系列的正常的自然图像中提取的这些特征所构建的。
构建模型
空间域上的特征,称之为 Spatial Domain NSS。
它按照如下的方式进行计算,首先是提取图像中的一个个 patch,然后做下面这样的一个归一化。
$$\hat{I}(i, j)=\frac{I(i, j)-\mu(i, j)}{\sigma(i, j)+1}$$其中各项如下所示:
$$\mu(i, j)=\sum_{k=-K}^{K} \sum_{l=-L}^{L} w_{k, l} I(i+k, j+l)$$
$$\sigma(i, j)=\sqrt{\sum_{k=-K}^{K} \sum_{l=-L}^{L} w_{k, l}[I(i+k, j+l)-\mu(i, j)]^{2}}$$这里的 $\mu$ 就是高斯权重。在最初的设计中,这里的高斯权重是一个 3x3 的模板。
看到上面的公式,这里就很明确了。
上述实际上是一个基于高斯平均值以及高斯标准差的归一化计算,相对于其他的一些指标,NIQE 仅仅是计算正常的自然图像中的这个指标,因此不正常的图像多多少少会在这个指标上同正常图像的计算值会有一个歧离,从这个意义上讲,理论上 NSS 可以适用于各种图像退化种类,基于这种思想设计的 IQA 可以权衡各种图像退化,而不是像某些指标那样仅仅是在某些退化种类上有很好的的表现。patch 的选择
如果需要计算上述的 NSS 指标,毫无疑问的是会造成图像被分裂为一个一个的 patch,在 NIQE 的算法设计中,只有一部分 patch 是有用的,这就涉及到一个 patch 的选择问题;这里实际上有一个启发,比如我们关注一个分辨率退化图像时,我们会挑选那些原本应该是 sharp 的局部边缘进行观察,判断其分辨率是否受损,而不会整个图像的所有 patch 都观察一遍。
这里定义了一种局部形变系数:
$$\delta(b)=\sum \sum_{(i, j) \in \text {patch} b} \sigma(i, j)$$
这里的形变系数设置了一个阈值,在论文作者的实验中,这个阈值设置的是 0.75,大于 0.75 的 patch 可以选入进行下一步计算;这一步的操作是很好理解的,因为毕竟往往是形变系数越大的 patch 说明里面的内容越复杂,其实就是说明这里的内容所包含的信息更多。这里的 $\sigma$ 就是上面步骤所述的 $\sigma$ 计算。描述 patch
上面的内容已经说明了 patch 的空间域特征以及如何选择 patch,现在的问题在于如何设计指标来刻画我们选择的 patch,这种刻画按照设计是一种借鉴高斯分布思想的指标。
首先定义高斯分布类型的指标 GGD:
$$f(x ; \alpha, \beta)=\frac{\alpha}{2 \beta \Gamma(1 / \alpha)} \exp \left(-\left(\frac{|x|}{\beta}\right)^{\alpha}\right)$$
这里的 $\Gamma$ 是一个 gamma 函数:
$$\Gamma(a)=\int_{0}^{\infty} t^{a-1} e^{-t} d t \quad a>0$$
根据论文的说法,这里的 $\alpha$ 和 $\beta$ 是可以通过论文[1]的计算方式获得。NIQE 指标设计本身在这一步很大程度上借鉴了参考论文的计算。
最终定义并计算了如下的特征:对于 $\forall x \leq 0$,
$$f\left(x ; \gamma, \beta_{l}, \beta_{r}\right)= \frac{\gamma}{\left(\beta_{l}+\beta_{r}\right) \Gamma\left(\frac{1}{\gamma}\right)} \exp \left(-\left(\frac{-x}{\beta_{l}}\right)^{\gamma}\right)$$对于 $\forall x \geq 0$,
$$f\left(x ; \gamma, \beta_{l}, \beta_{r}\right)= \frac{\gamma}{\left(\beta_{l}+\beta_{r}\right) \Gamma\left(\frac{1}{\gamma}\right)} \exp \left(-\left(\frac{x}{\beta_{r}}\right)^{\gamma}\right)$$$$\eta=\left(\beta_{r}-\beta_{l}\right) \frac{\Gamma(2 / r)}{\Gamma(1 / r)}$$
最后,patch 的值就可以经过上述的公式计算出的指标来。
标准的指标获得
根据上面描述的总体思路,该算法在于从大量自然图像中计算出合理的指标来,然后再计算退化图像相对于这个指标的”距离”。那么就可以分为两步。- 第一步计算出这个指标来。
- 第二步如何来衡量这个“距离”。
首先第一步,从上面可以看出借助于高斯行分布的特征设计具有一定的合理性(当然这里的合理性估计是由参考文献给出的),在这里我就可以定义出一组高斯型分布的密度函数:
$$f_{X}\left(x 1, x 2, \ldots x_{k}\right)=\frac{1}{(2 \pi)^{k / 2}\left|\sum\right|^{1 / 2}} \exp \left(-\frac{1}{2}(x-v)^{T} \sum^{-1}(x-v)\right)$$
为什么定义这样的一种分布?因为论文作者认为自然正常图像的特征就应该以高斯分布类型存在。
这里的就是上面所述的 $\eta$ 计算值,$\upsilon$ 和 $\sum$ 就是上述高斯分布的均值和协方差矩阵。作者通过定义了这样的分布,然后在标准的自然正常图像上进行计算,可以刻画出这样的一个正常图像所代表的分布,并且可以根据这些自然图像的分布数据,可以估计出上述的 $\upsilon$ 以及 $\sum$ 这个过程就像一般高斯分布中估计出均值和方差一样。到这里就可以得到正常图像的刻画指标。
除此之外,论文还定义了不正常图像与正常图像指标间的”距离”:
$$\left.D\left(\nu_{1}, \nu_{2}, \Sigma_{1}, \Sigma_{2}\right)=\sqrt{\left(\left(\nu_{1}-\nu_{2}\right)^{T}\left(\frac{\Sigma_{1}+\Sigma_{2}}{2}\right)^{-1}\left(\nu_{1}-\nu_{2}\right)\right.}\right)$$
其中 $\nu_{1}$ 和 $\nu_{2}$ 分别代表退化图像和正常图像的均值向量(mean vectors), $\Sigma_{1}$ 和 $\Sigma_{2}$ 分别代表退化图像和正常图像的协方差矩阵(covariance matrices)。
个人想法
- 论文利用高斯分布来处理这些特征,有一个基本前提是,假设这里所涉及的特征在真实的图像中所反映的也是服从高斯分布的,但关于这一点这里没有证明而是假定这是一个事实。严格上来说,不严谨但不能说没有使用价值。
- 论文仅仅采用空间域的特征,可能在某些场合并不十分合适,比如严格按照 patch 的分割方式获得一系列 patch,如果将不同的 patch 在空间上的位置进行对调,这样每一个 patch 都还能符合该算法的要求,但是很显然那其实可以是一个马赛克状的退化图像。
- 该方法显然不能很好地像 SSIM 那样可以方便地拓展到图像局部的判断,它这里只是一个全局的判断。
参考文献
[1] K. Sharifi and A. Leon-Garcia, “Estimation of shape parameter for generalized Gaussian distributions in subband decompositions of video,” IEEE Trans. Circ. Syst. Video Technol., vol. 5, no. 1, pp. 52–56, 1995.