無參考影象的清晰度評價方法 (影象清晰度的評價指標)
無參考影象的清晰度評價方法
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