在无参考图像的质量评价中,图像的清晰度是衡量图像质量优劣的重要指标,它能够较好的与人的主观感受相对应,图像的清晰度不高表现出图像的模糊。本文针对无参考图像质量评价应用,对目前几种较为常用的、具有代表性清晰度算法进行讨论分析,为实际应用中选择清晰度算法提供依据。
其中:为整幅图像的平均灰度值,该函数对噪声比较敏感,图像画面越纯净,函数值越小。
如果一幅图像已经模糊了,那么再对它进行一次模糊处理,高频分量变化不大;但如果原图是清楚的,对它进行一次模糊处理,则高频分量变化会非常大。因此可以通过对待评测图像进行一次高斯模糊处理,得到该图像的退化图像,然后再比较原图像和退化图像相邻像素值的变化情况,根据变化的大小确定清晰度值的高低,计算结果越小表明图像越清晰,反之越模糊。这种思路可称作基于二次模糊的清晰度算法,其算法简化流程如下图:
Wang等利用人类视觉系统(HVS)非常适于提取目标的结构信息的特点,提出了图像结构相似度概念(SSIM),认为只要能计算目标结构信息的变化,就能够得到感知图像失真值。杨春玲等基于此思路,将该方法引入到计算全参考图像的清晰度评价中,认为图像的清晰度可以使用目标图像与参考图像间的结构相似度来表示,而图像间的结构相似度包含以下三个部分的比较:
为简单起见可以令
谢小甫等进一步改进了杨春玲等的方法,根据结构相似度的相关思想结合人烟视觉系统的相关特点,设计了无参考图像清晰度的评价指标(NRSS),计算方法如下:
(b)提取图像 I 和 的梯度信息。利用人眼对水平和垂直方向的边缘信息最为敏感的特性,使用Sobel算子分别提取水平和垂直方向的边缘信息,定义 I 和 的梯度图像是G 和 。
(c)找出梯度图像 G 中梯度信息最丰富的 N 个图像块。将图像G划分为 8x8 的小块,块间的步长为4,即相邻块有50%重叠,这是为了避免丢失重要的边缘。计算每块的方差,方差越大说明梯度信息越丰富,找出其中方差最大的N块,记为,对应的中的对应块定义为 。N的值大小直接影响评价结果,同时也影响算法运行时间。在后面的实验中设 N = 64。
(d)计算结构清晰度NRSS。先计算每个xi和 yi的结构相似度SSIM(xi, yi),其中SSIM计算方法参见前面的定义,则图像的无参考结构清晰度定义为:
JPEG图片是基于8x8块的DCT变换的编码技巧,它是有损的因为对DCT变换系数做量化的时候会产生量化误差。量化就会导致模糊和块效应。模糊主要是因为丢失了高频的DCT系数。块效应是由于块边界的不连续性,因为每个分块的量化是独立的。
于是水平方向的ZC率定义如下:
图像质量受很多因素影响,例如:亮度、对比度、色调、边界、噪声、模糊等。在本文中,我们假定噪声和模糊是影响图像质量最重要的两个因素。简单起见,只对彩色图像的亮度分量做模糊和噪声监测。本文的图像质量评价算法框架图如下:
A)模糊检测
模糊估计分为两个步骤:首先是边缘检测,然后是模糊确定。此处模糊估计是通过计算当前像素点与领域内像素点均值之差来确定。我们用f(x,y) 表示图片,其中 。定义水平绝对差如下:
如果当前像素点的 则该像素点就是一个候选的边缘点. 如果 比它水平方向两个相邻的点 都大,则该像素点就被确认为一个边缘点。边缘点 的判断总结如下:
同理,按照以上的步骤我们可以计算垂直方向的值 。两者之大者称作Inverse Blurriness,用于最终的模糊判定依据。
低于阈值ThB的Inverse Blurriness 被认为是模糊的。实验测试表明此处的阈值ThB取值0.1。最后,边缘模糊的均值和比率为:
B)噪点检测
因为沿边缘的噪点视觉上不明显,因此我们只检测边缘之外的噪点。边缘检测会被噪点影响,因此在检测边缘之前做一个噪点滤波的预处理。在本文中,我们应用均值滤波来消除噪点。均值滤波之后的图像g(x,y)为:
候选的噪点估计如下:
同理可以在垂直方向计算对应的值。然后得到候选的噪点是:
其中N_cand(x,y)表示候选噪点,它在边缘区域为0。
噪点均值和比率为:
其中Sum_Noise是N(x,y)之和,Noise_cnt是噪点总数目。
C)噪点和模糊的组合
此处我们的图像质量评价指标定义如下:
其中w1、w2、w3、w4是权值。通过线性回归分析获取这些权值。本文中这些权值为:
首先来看看第一组测试图片:
测试数据(阈值T = 50)
算法 | img29 | img42 | img77 | img81 | img183 |
Brenner | 791.45 | 1050.36 | 844.41 | 898.57 | 754.88 |
Tenengrad | 10.88 | 12.72 | 11.51 | 11.92 | 10.59 |
Laplacian | 8.507 | 14.47 | 9.05 | 9.86 | 9.08 |
SMD | 18.57 | 24.71 | 20.94 | 22.57 | 14.32 |
SMD2 | 168.19 | 293.15 | 196.84 | 217.17 | 128.57 |
Variance | 2107.86 | 2134.98 | 2083.19 | 2100.05 | 2110.90 |
Energy | 677.48 | 941.98 | 713.81 | 754.95 | 668.54 |
Vollath | 1940.97 | 1897.70 | 1910.28 | 1912.10 | 1940.81 |
Entropy | 7.00 | 7.38 | 7.26 | 7.38 | 5.24 |
EAV | 75.88 | 93.71 | 83.70 | 89.16 | 60.85 |
JPEG | 2.08 | 9.25 | 3.95 | 5.16 | -1.53 |
JPEG2 | 2.12 | 4.99 | 3.90 | 4.60 | 1.04 |
Remark:
1)肉眼可以分辨以上五幅图像的质量排名为:img42 > img81 > img77 > img29 > img183
2)与主观感知一致的算法有:Brenner、Tenengrad、SMD、SMD2、Energy、Entropy、EAV、JPEG、JPEG2
3)Variance、Vollath算法所得数据非常接近,无法分辨出图像质量。
4)Laplacian在判断img29 和 img183的时候出现失误,这两个图片的质量都非常差
第二组测试数据(阈值T = 50)
算法 | img20 | img23 | img56 | img152 | img215 | img228 |
Brenner | 756.67 | 500.89 | 615.53 | 553.55 | 418.77 | 725.29 |
Tenengrad | 8.00 | 6.17 | 7.08 | 6.66 | 5.56 | 7.73 |
Laplacian | 11.36 | 6.04 | 8.02 | 6.87 | 5.78 | 10.86 |
SMD | 19.41 | 13.40 | 17.16 | 15.44 | 8.67 | 19.56 |
SMD2 | 231.65 | 120.85 | 169.69 | 141.39 | 81.10 | 224.10 |
Variance | 2773.79 | 2631.73 | 2690.92 | 2650.81 | 2649.59 | 2724.18 |
Energy | 775.58 | 466.00 | 581.42 | 510.01 | 421.47 | 743.86 |
Vollath | 2601.47 | 2535.77 | 2565.37 | 2542.39 | 2564.13 | 2558.90 |
Entropy | 7.15 | 6.84 | 7.28 | 7.21 | 4.16 | 7.29 |
EAV | 73.86 | 54.71 | 67.48 | 61.76 | 37.02 | 74.89 |
JPEG | 9.59 | 3.03 | 6.38 | 4.93 | -1.87 | 8.62 |
JPEG2 | 5.00 | 3.03 | 4.88 | 4.51 | 1.03 | 4.99 |
1)肉眼可以分辨以上图片的质量排名为:img20 > img228 > img56 > img152 > img23 > img215
2)与主观感知一致的算法有:Brenner、Tenengrad、Laplacian、SMD2、Energy、JPEG、JPEG2
3)Vollat、Entropy算法失误比较多。
4)SMD、EAV在判断img20 和 img228的时候出现失误,这两个图片质量都非常好,肉眼有时候很难分辨,因此这种失误在可以接受的范围。
5)Variance 在判断img23 和 img215的时候出现失误,这两个图片质量都非常差。
7. No-Reference Image Quality Assessment forJPEG/JPEG2000 Coding