無參考圖像的清晰度評價方法
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 梯度結構相似度
Wang等利用人類視覺系統(HVS)非常適於提取目標的結構信息的特點,提出了圖像結構相似度概念(SSIM),認為只要能計算目標結構信息的變化,就能夠得到感知圖像失真值。楊春玲等基於此思路,將該方法引入到計算全參考圖像的清晰度評價中,認為圖像的清晰度可以使用目標圖像與參考圖像間的結構相似度來表示,而圖像間的結構相似度包含以下三個部分的比較:
而C1、C2和C3 是為了避免分母為0而設的常數。圖像的結構相似度由下式計算可得:
為簡單起見可以令
謝小甫等進一步改進了楊春玲等的方法,根據結構相似度的相關思想結合人煙視覺系統的相關特點,設計了無參考圖像清晰度的評價指標(NRSS),計算方法如下:
(a)為待評價圖像構造參考圖像。定義待評價圖像為I,而參考圖像 ,即對待評價圖像I進行低通濾波得到參考圖像
。實驗表明,基於圓盤模型的均值濾波器和高斯模型的平滑濾波器都可以取得較好的效果,為了更好的與成像系統匹配,建議采用7x7大小且
的高斯平滑濾波器。在需要實時處理的工程應用中7x7均值濾波器並不會是評價效果下降很大。
(b)提取圖像 I 和 的梯度信息。利用人眼對水平和垂直方向的邊緣信息最為敏感的特性,使用Sobel算子分別提取水平和垂直方向的邊緣信息,定義 I 和
的梯度圖像是G 和
。
(c)找出梯度圖像 G 中梯度信息最豐富的 N 個圖像塊。將圖像G划分為 8x8 的小塊,塊間的步長為4,即相鄰塊有50%重疊,這是為了避免丟失重要的邊緣。計算每塊的方差,方差越大說明梯度信息越豐富,找出其中方差最大的N塊,記為,對應的
中的對應塊定義為
。N的值大小直接影響評價結果,同時也影響算法運行時間。在后面的實驗中設 N = 64。
(d)計算結構清晰度NRSS。先計算每個xi和 yi的結構相似度SSIM(xi, yi),其中SSIM計算方法參見前面的定義,則圖像的無參考結構清晰度定義為:
(13)FFT 圖像變換域
待寫!
(14)No-Reference Perceptual Quality Assessment of JPEG Compressed Images
在這篇文章中,作者【Zhou Wang】等針對JPEG壓縮圖片提出了一種新的無參圖像質量評價方法。
JPEG圖片是基於8x8塊的DCT變換的編碼技巧,它是有損的因為對DCT變換系數做量化的時候會產生量化誤差。量化就會導致模糊和塊效應。模糊主要是因為丟失了高頻的DCT系數。塊效應是由於塊邊界的不連續性,因為每個分塊的量化是獨立的。
我們用 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。
噪點均值和比率為:
其中Sum_Noise是N(x,y)之和,Noise_cnt是噪點總數目。
C)噪點和模糊的組合
此處我們的圖像質量評價指標定義如下:
其中w1、w2、w3、w4是權值。通過線性回歸分析獲取這些權值。本文中這些權值為:
實驗
為了測試以上評價方法的准確性,我們才用C語言編程實現以上算法,由於以上算法都是針對灰度圖,因此在處理彩色圖像的時候,首先將彩色圖像轉化為灰度圖(簡單起見,轉化算法采用了 grey = (R + G + B) /3)。 測試圖片采用了美國德州大學圖像與視頻工程實驗室提供的圖像質量評價數據庫。該圖像數據庫包含了29幅原始圖像,並利用原始圖像生成了包括JPEG壓縮、JPEG2000壓縮、高斯模糊、Fastfsding(在Fastading通道中傳輸傳輸錯誤)、WhiteNoise(白噪聲)五類失真在內的失真圖像共779幅。此處我們選用JPEG目錄下的部分圖片做測試。
首先來看看第一組測試圖片:
DatabaseRelease2\jpeg\img29.bmp
DatabaseRelease2\jpeg\img42.bmp (原始圖片)
DatabaseRelease2\jpeg\img77.bmp
DatabaseRelease2\jpeg\img81.bmp
DatabaseRelease2\jpeg\img183.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的時候出現失誤,這兩個圖片的質量都非常差
第二組測試圖片(省略了圖片顯示,有興趣的朋友可以去網上下載):
DatabaseRelease2\jpeg\img20.bmp (原始圖片)
DatabaseRelease2\jpeg\img23.bmp
DatabaseRelease2\jpeg\img56.bmp
DatabaseRelease2\jpeg\img152.bmp
DatabaseRelease2\jpeg\img215.bmp
DatabaseRelease2\jpeg\img228.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的時候出現失誤,這兩個圖片質量都非常差。
參考文獻:
2. 圖像清晰度評價方法研究
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