概述
无参考图像的清晰度评价方法
from: http://nkwavelet.blog.163.com/blog/static/227756038201461532247117
(1)Brenner 梯度函数
Brenner梯度函数是最简单的梯度评价函数,它只是简单的计算相邻两个像素灰度差的平方,该函数定义如下:
其中:f(x,y) 表示图像f对应像素点(x,y)的灰度值,D(f)为图像清晰度计算结果(下同)。
(2)Tenengrad 梯度函数
Tenengrad 梯度函数采用Sobel算子分别提取水平和垂直方向的梯度值,基与Tenengrad 梯度函数的图像清晰度定义如下:
G(x,y) 的形式如下:
其中:T是给定的边缘检测阈值,Gx和Gy分别是像素点(x,y)处Sobel水平和垂直方向边缘检测算子的卷积,建议使用以下的Sobel算子模板来检测边缘:
(3)Laplacian 梯度函数
Laplacian 梯度函数与Tenengrad梯度函数基本一致,用Laplacian算子替代Sobel算子即可,该算子定义如下:
因此基于Laplacian 梯度函数的图像星清晰度的定义如下:
其中G(x,y)是像素点(x,y)处Laplacian算子的卷积。
(4)SMD(灰度方差)函数
当完全聚焦时,图像最清晰,图像中的高频分量也最多,故可将灰度变化作为聚焦评价的依据,灰度方差法的公式如下:
(5)SMD2 (灰度方差乘积)函数
灰度差分评价函数具有较好的计算性能,但其缺点也很明显,即在焦点附近灵敏度不高,即该函数在极值点附近过于平坦,从而导致聚焦精度难以提高。在文章《一种快速高灵敏度聚焦评价函数》中提出了一种新的评价函数,称之为灰度方差乘积法,即对每一个像素领域两个灰度差相乘后再逐个像素累加,该函数定义如下:
(6)方差函数
因为清晰聚焦的图像有着比模糊图像更大的灰度差异,可以将方差函数作为评价函数:
其中:为整幅图像的平均灰度值,该函数对噪声比较敏感,图像画面越纯净,函数值越小。
(7)能量梯度函数
能量梯度函数更适合实时评价图像清晰度,该函数定义如下:
(8)Vollath函数
Vollath函数定义如下:
其中:为整幅图像的平均灰度值,M和N分别为图像宽和高。
(9)熵函数
基于统计特征的熵函数是衡量图像信息丰富程度的一个重要指标,有信息论可知,一幅图像 f 的信息量是由该图像的信息熵 D(f) 来度量:
其中:Pi 是图像中灰度值为i的像素出现的概率,L为灰度级总数(通常取值256)。根据Shannon信息论,熵最大时信息量最多。将此原理应用到对焦过程,D(f)越大则图像越清晰。熵函数灵敏度不高,依据图像内容不同容易出现与真实情况相反的结果。
(10) EAV点锐度算法函数
徐贵力、张霞等提出了一种基于边缘锐度的算法用于评价图像的清晰度。通过统计图像某一边缘方向的灰度变化情况来评价。计算公式如下:
其中:df/dx为边缘法向的灰度变化率,f(b) - f(a)为该方向的总体灰度变化。该算法只对图像的特定边缘区域做统计,能否代表整幅图像的清晰度仍有疑问,此外计算前需人工选定边缘区域,不便实现程序运算的自动化,因为王鸿南等在论文 图像清晰度评价方法研究 中对上述算法进行了改进,改进如下:
a) 将针对边缘的梯度计算改为逐个像素领域梯度的计算,以便算法能对图像的整体进行评价,并使算法实现自动化。
b) 对方格像素 8 领域的灰度变化进行距离加权,水平和垂直方向的权重为1,而45度和135度方向的权重为 。
c) 对计算结果按图像的大小进行规格化,以便于图像的对比。
经过以上三步改进后的点锐度算法为:
其中:M和N为图像的行数和列数。
(11)Reblur 二次模糊
(12)NRSS 梯度结构相似度
而C1、C2和C3 是为了避免分母为0而设的常数。图像的结构相似度由下式计算可得:
为简单起见可以令
(a)为待评价图像构造参考图像。定义待评价图像为I,而参考图像 ,即对待评价图像I进行低通滤波得到参考图像 。实验表明,基于圆盘模型的均值滤波器和高斯模型的平滑滤波器都可以取得较好的效果,为了更好的与成像系统匹配,建议采用7x7大小且 的高斯平滑滤波器。在需要实时处理的工程应用中7x7均值滤波器并不会是评价效果下降很大。
(13)FFT 图像变换域
待写!
(14)No-Reference Perceptual Quality Assessment of JPEG Compressed Images
在这篇文章中,作者【Zhou Wang】等针对JPEG压缩图片提出了一种新的无参图像质量评价方法。
我们用 f(x, y) 表示一幅图片,图片尺寸为 MxN,计算跨越每个水平线的信号差:
首先计算块效应,块效应的定义就是左右跨越边界的信号差的平均值:
然后计算块内信号差的平均值:
再计算zero-crossing(ZC)率,ZC是边界跨零的意思,也就是说相邻两个点的值的乘积为负数,也就是一正一负,因此对于[1, N - 2]范围内的y,定义如下变量:
于是水平方向的ZC率定义如下:
同理,我们可以计算垂直方向的几个指标值 。最后得到这几个指标的水平和垂直方向的平均值:
有很多方式把这几个指标联系起来组成一个质量评价模型。此处我们采用如下图像质量定义:
其中 是从大量实验中提炼出来的模型参数。本文中所采用的参数值如下:
(15)No-Reference Image Quality Assessment forJPEG/JPEG2000 Coding
这篇文章的作者在前面那篇文章的基础上,重新定义了新的质量指标:
其实 S 就是在(14)中已经得到的质量评价值。
(16)No-Reference Image Quality Assessment using Blur and Noise
A)模糊检测
模糊估计分为两个步骤:首先是边缘检测,然后是模糊确定。此处模糊估计是通过计算当前像素点与领域内像素点均值之差来确定。我们用f(x,y) 表示图片,其中。定义水平绝对差如下:
整个图片的水平绝对差的均值为:
如果当前像素点的 则该像素点就是一个候选的边缘点. 如果比它水平方向两个相邻的点 都大,则该像素点就被确认为一个边缘点。边缘点的判断总结如下:
接下来我们检测边缘点是否模糊。定义:
同理,按照以上的步骤我们可以计算垂直方向的值 。两者之大者称作Inverse Blurriness,用于最终的模糊判定依据。
低于阈值ThB的Inverse Blurriness 被认为是模糊的。实验测试表明此处的阈值ThB取值0.1。最后,边缘模糊的均值和比率为:
B)噪点检测
因为沿边缘的噪点视觉上不明显,因此我们只检测边缘之外的噪点。边缘检测会被噪点影响,因此在检测边缘之前做一个噪点滤波的预处理。在本文中,我们应用均值滤波来消除噪点。均值滤波之后的图像g(x,y)为:
候选的噪点估计如下:
同理可以在垂直方向计算对应的值。然后得到候选的噪点是:
其中N_cand(x,y)表示候选噪点,它在边缘区域为0。
噪点均值和比率为:
C)噪点和模糊的组合
其中w1、w2、w3、w4是权值。通过线性回归分析获取这些权值。本文中这些权值为:
实验
为了测试以上评价方法的准确性,我们才用C语言编程实现以上算法,由于以上算法都是针对灰度图,因此在处理彩色图像的时候,首先将彩色图像转化为灰度图(简单起见,转化算法采用了 grey = (R + G + B) /3)。 测试图片采用了美国德州大学图像与视频工程实验室提供的图像质量评价数据库。该图像数据库包含了29幅原始图像,并利用原始图像生成了包括JPEG压缩、JPEG2000压缩、高斯模糊、Fastfsding(在Fastading通道中传输传输错误)、WhiteNoise(白噪声)五类失真在内的失真图像共779幅。此处我们选用JPEG目录下的部分图片做测试。
DatabaseRelease2jpegimg29.bmp
DatabaseRelease2jpegimg42.bmp (原始图片)
DatabaseRelease2jpegimg77.bmp
DatabaseRelease2jpegimg81.bmp
DatabaseRelease2jpegimg183.bmp
测试数据(阈值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的时候出现失误,这两个图片的质量都非常差
第二组测试图片(省略了图片显示,有兴趣的朋友可以去网上下载):
DatabaseRelease2jpegimg20.bmp (原始图片)
DatabaseRelease2jpegimg23.bmp
DatabaseRelease2jpegimg56.bmp
DatabaseRelease2jpegimg152.bmp
DatabaseRelease2jpegimg215.bmp
DatabaseRelease2jpegimg228.bmp
第二组测试数据(阈值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 |
Remark:
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的时候出现失误,这两个图片质量都非常差。
参考文献:
1. 面向无参考图像的清晰度评价方法研究
2. 图像清晰度评价方法研究
3. 数字图像清晰度评价函数的研究与改进
4. 一种针对图像模糊的无参考质量评价指标
5. 一种快速高灵敏度聚焦评价函数
6. No-Reference Perceptual Quality Assessment of JPEG Compressed Images
7. No-Reference Image Quality Assessment forJPEG/JPEG2000 Coding
8. No-Reference Image Quality Assessment using Blur and Noise
最后
以上就是感动往事为你收集整理的无参考图像的清晰度评价方法的全部内容,希望文章能够帮你解决无参考图像的清晰度评价方法所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复