圖像質量評價方法簡述

什麼是圖像質量

圖片和視頻作為信息載體已經變得越來越重要,於是圖像質量的評估變成了一個廣泛又基礎的問題。

對於圖像質量有兩種定義。

定義一:不同成像系統採集,處理,儲存,壓縮,傳輸信號的準確度。

定義二:符合人眼感知的角度評價圖像質量:圖像所有視覺上重要屬性的加權混合。

定義一是從信號處理的角度,關注成像系統中信號的準確性。

定義二是從人眼視覺的角度,關注觀測者的感受,審美水平不同的觀測者,反饋的結果也不同。

那麼從圖像質量的定義上,就引申出了兩種圖像質量的評測方法,客觀評價和主觀評價。

與圖像質量相關的產品,評測方式都已經從單純的客觀評價轉化為主客觀相結合的評價算法。尤其是注重觀者感受的領域,主觀評價的權重已經超過客觀評價的權重。比如手機,無人機,美顏/濾鏡等算法……

其中在手機行業鼎鼎有名的DXO mark,也是通過主客觀結合的方式進行打分。

主觀評價以人作為觀測者,最重要的優勢是能夠真實的反映人的視覺感知,要知道人類的視覺感知系統相當複雜,一部分指標甚至涉及到心理學。

客觀評價方法借助於某種數學模型,給出基於數字計算的結果。可重復,可量化。缺點是場景相對固定,不易對複雜場景進行打分。另外有些指標與人類視覺感知不匹配,這也是制定行業標準的協會(IEEE/ISO)成員正在改進的方向。

*本文測試方法主要應用在對成像系統的整體或部分進行評價。

客觀評價

傳統的客觀評價方式比較固定,並且需要較為嚴苛的光源與測試環境。

測試流程基本可以概括為三個部分:

拍攝圖卡(特定光源)→輸入測試軟件→測試結果

可以看到除去拍攝圖卡部分,其餘兩個過程是很容易實現自動化的。

所以客觀評價的目標是用計算的方式代替人類視覺系統去觀看和認知圖像。只要通過不同的測試卡和光源組合,就可以實驗室中模擬各種環境,並且得到可信的測試結果。

目前世界上主流的測試系統有三家:imatest,DXO 和 Image Engineering。


三個測試系統測試覆蓋的內容基本相同,測試方法和圖卡有各自的優勢。

下面介紹一些客觀評價中常用的維度和測試方法,幫大家快速瞭解客觀評價是怎麼進行的。

清晰度

所有用戶拿到一張照片或者看到一段視頻的時候首先看到的是照片清楚不清楚,幾乎在所有成像系統中清晰度(解析力)都是第一重要的維度。如何評價一個成像系統的解析力也是大家一直在探討的問題。常見的清晰度指標有MTF,SFR,TVline。

MTF

MTF,Modulation Transfer Function。中文為調制傳遞函數。在各個攝像頭鏡頭中經常採用MTF描述鏡頭的MTF曲線,表明鏡頭的能力。這些曲線是通過理想的測試環境下盡量減少其它系統對鏡頭的解析力的衰減的情況下測試得出的。當然,MTF也可以涵蓋對整個成像系統的解析力評價

為了讓大家快速感知MTF是什麼,舉一個大家非常熟悉的例子。下圖是視力檢測的圖卡。清晰的圖像,黑白邊界分明,模糊的圖像,黑色白色混在一起,黑色似乎變淡了。如果我們把視力的測量對應到對鏡頭解析力的測量,視力表就變成了線對,最初的MTF測量就是通過測試不同頻率的線對實現的。

線對圖的上部分為理想圖像,下半部分為模擬的實拍的圖像。

其實這個線對大家都見過,每週二沒有電視節目的時候,都會用一張圖卡代替。而這張圖卡,就包含了MTF測試內容。

MTF是通過找線對中最大亮度點和最小亮度點的對比度來計算的。

計算公式為MTF=(最大亮度-最小亮度)/(最大亮度+最小亮度)。

所以MTF的計算不會出現大於1的情況。

當我們測試了很多不同頻率下的MTF值,通過將這些值和空間頻率進行一一的對照,也就知道了在什麼頻率紋理下的解析能力如何。

對於MTF的概念,講到這裡相信大家有了一個初步的概念。那麼MTF通常的門限是什麼呢?

視力表中,當我們將將能看清E開口方向的時候,會去查對應的視力數值來表示我們的視力。MTF也是類似,MTF「看清開口」的標準一般是跌落至50%或30%,此時去查對應頻率,這個頻率越高,表明清晰度越好。

通常,會以MTF50 or MTF30會作為清晰度的指標。

另外這裡需要補充一點。由於圖片分辨率的限制,一個黑白線對,最少也要兩個像素才能表示,所以一個像素為0.5週期。0.5cycles/pixel即為奈奎斯特頻率。如果MTF50的頻率大於了奈奎斯特頻率,那麼在實際圖像中,這個頻率的細節會出現混疊,而不是真正達到MTF=50的清晰程度。

上圖是imatest測試出來的MTF結果,細心的同學可能發現了,這個MTF的結果是通過SFR圖卡得到的。說好的線對在哪裡?其實由於線對圖卡的種種缺點,(個人感覺主因是圖卡精細度要求太高)。已經被其他計算方式代替了。既然這裡用到了SFR圖卡,那麼我們繼續來說SFR。

SFR

SFR(Spatial Frequency Response)空間頻率響應,是用於測量隨著空間頻率的線條增加對單一影像的所造成影響。簡而言之SFR就是MTF的另外一種測試方法。這種測試方法在很大程度上精簡了測試流程。SFR的最終計算是希望得到MTF曲線。SFR的計算方法和MTF雖然不同但是在結果上是基本一致的,也就是說得到了SFR的值,就有了MTF。

圖像清晰度國際測量標準中(ISO12233),給出了五種測試圖卡。第一張TVline 直接人眼讀取。另外四種均是通過計算SFR來獲得MTF。這五張圖卡如下:

1.斜邊法

上圖中第二到第四張圖卡,都是斜邊法的計算方式。它只需要一個黑白的斜邊即可換算出約略相等於所有空間頻率下的MTF

計算過程在ISO-12233-2014(或者2000)中有詳細的計算。流程圖如下:

其中核心的計算步驟:

SFR是通過對斜邊進行超採樣,得到一條更加細膩的黑白變換的直線(ESF)。邊緣擴展函數ESF(Edge Spread Function)。大家可以把下面的圖想象成一條線。

之所以SFR的測試圖是一張斜邊,是希望通過斜邊中的多條線進行超採樣,得到一條灰度變換更加平滑的線。這樣減少在後面進行頻域轉換之後值上的誤差。

然後通過這條直線求導,得到變化率(LSF)。然後對將這個變化率進行傅里葉變換就能得到SFR。

這裡回答一個問題,為什麼用斜邊法測量的MTF會大於1。

 

因為圖像被銳化後,超採樣得到的ESF不是平滑的,圖像的邊界會有明顯的rining現象存在。正是由於過度銳化現象,使得MTF大於1。

左側為正常圖像,右側為過度銳化對應圖像(大概30%的過度銳化)。

2.西門星圖

這個圖卡的計算方式類似線對,ISO提供了對應的公式將星圖轉換為線對。從而推導出MTF 或SFR。

這種計算方式的好處是可以看到各個方向的MTF。

並且不易被銳化影響。

3.利用NPS(噪聲功率譜)計算MTF——枯葉圖:

枯葉圖MTF,有一種叫法叫texture MTF。

用枯葉圖計算出來的MTF,與其他模式(尤其是傾斜邊緣)相比,它們受邊緣銳化的影響較小,因此可以提供紋理細節的估計值,這些估計值與感知觀察的相關性更好。

*NPS為噪聲ACF的傅里葉變換

理論公式為SF =MTF^2 *SG

SG輸入信號的NPS

SF輸出信號的NPS

TVline

TVline 就比較易於理解了,可以肉眼就可以讀數得到,並且可以直接轉換成MTF。

由於無法自動化讀數,現在基本上已經被淘汰了。

ISO文檔里的圖例:虛線以上的認為是清晰的部分,虛線以下認為模糊。

acutance —— 由MTF衍生出來的計算方式

MTF已經能夠反映清晰度的情況。但仍然存在不符合人眼感知的情況。於是ISO和IEEE兩個組織均提出了新的指標:acutance。其公式中加入了人類視覺感知的參數。

簡單來說就是兩點。

1.觀測距離和顯示器參數。

2.人眼不同頻率的細節感受不一致,對比敏感度函數CSF()。

同時通過實驗表明,當acutance超過0.8851後,大眾將無法感知清晰度的提升(實際的觀測距離不一定和標準一致,)。

*the CPIQ document defines an 「objective metric」 (OM = 0.8851 – acutance for acutance = 0.8851; OM = 0 otherwise) that increases with increasing blur. It claims that perceived quality does not improve for acutance greater than 0.8851. The result of a rather complicated equation shows that a change in OM of 0.02 (2%) corresponds roughly to 1 JND.

測量清晰度,通常有兩個目標。量化清晰度且符合人眼感知,量化因銳化導致的artifact。

所以在客觀評測中我們通常選用指標如下:

SFR:

acutance

MTF50/MTF50P

overshoot/undershoot

枯葉圖:

acutance

MTF50/MTF50P

同時會將枯葉圖和SFR的MTF曲線進行比較。
噪聲

噪聲的定義:成像系統中不想要的信號響應變化。

也就是說,不應該出現在圖像里的內容,我們統統可以成為噪聲。在大多數情況下,噪聲被認為是質量下降。

噪聲的分類維度很多。

按頻率分:high/mid/low frequency noise

按顏色分:luma noise / chroma noise

按時空分:spatial noise / temporal noise

*仔細想下,這些分類其實都是為了方便後處理噪聲。

還可以按噪聲的形狀:塊狀/椒鹽噪聲。按產生原因:sensor noise, power noise。
噪聲的數學表達

噪聲通常以RMS(標準差)噪聲來衡量。測量噪聲通常需要一些帶有灰階的圖卡。以24色卡舉例。

#19~#24為白到黑灰階可以計算出圖像不同intensity的噪聲水平。

假設在計算#22色塊噪聲水平,

那麼計算首先會對#22色塊取均值,之後做標準差

取均值:

μ=1/n(∑Xi) ;i =1 ,n

標準差:

σ=((1/(n-1))*(Σ(μ-Xi)²);i=1,n

噪聲的指標

SNR信噪比

由於噪聲和信號總是混在一起,如果一張圖片去除噪聲的同時也消除了信號,那麼也不是優質的圖像。所以為了評判圖像的好壞,經常用SNR信噪比來表示。

剛才說我們用均勻的灰塊圖卡來測量噪聲,也就是把灰塊的均值當做理想的信號。

噪聲就是該區域的標準差。

計算所選區域的SNR = 均值/標準差

我們一般用dB表示:

所以SNR(dB)= 20 log 10(S / N)。

SNR最顯著的缺點就是容易被降噪算法作弊。一張SNR很高的圖片可能塗抹嚴重。另外相同SNR的兩張圖,噪聲感受可能差別很大。
Visual noise

SNR不能反映出觀測者的噪聲感知。相同的SNR,人眼噪聲水平感受區別巨大。

為瞭解決這個問題。IE在ISO15739標準中提出了Visual noise來表示人眼對噪聲的感知。

加入了三個參數。

1.觀測距離和顯示器參數。

2.人眼不同頻率的噪聲感受不一致,對比敏感度函數CSF()。

3.人眼對彩噪和亮噪感受不一致,V = σL* + 0.852 σu* + 0.323 σv*

計算流程如下:

噪聲的頻譜

在噪聲的分類中講到,有按照噪聲形態進行區分。實際上,噪聲的形態也是非常重要的噪聲指標。細碎的噪聲更容易被人眼接受,甚至在一些膠片攝影玩家眼中適當的噪聲增加了照片的質感。

下圖是三種形態的噪聲,很明顯第一張圖的噪聲更容易被人眼接受。

imatest 提供在噪聲的測試中提供了噪聲的頻譜圖。有助於我們分析噪聲的頻率,可能的情況下,高頻噪聲優於低頻噪聲。

色彩

除了印刷品/機器視覺/染色等嚴格依賴色彩準確性的領域。色彩的好壞已經無法單純靠客觀數值反應,而且還出現了調調飽和度,改改濾鏡這種影響色彩準確性,反而更討喜的現象。

於是在對成像系統的客觀評價中,色彩通常不會設置嚴格的指標。主要通過主觀感受來判斷色彩好壞。

*這裡需要注意,如果評價對象為圖像算法或者成像系統中的某些模塊(比如銳化,降噪,tonemapping),色彩不應發生明顯變化。

我們一般描述一個顏色,除了用相近的自然景物代替(天藍色,番茄色,橘色),還會說深淺(飽和度),明暗(明度),偏紅還是偏綠(色調)。

飽和度,明度,色調也就構成了色彩的三要素。常見的色彩空間如HSV,HSL,每一個坐標軸也分別對應了一個色彩要素。

CIE Lab中的色差計算

建立色彩空間,是為了方便的表示色彩。那麼有了兩個顏色的坐標,就可以開始進行色差計算。

這時我們遇到了第一個問題,應該如何選擇色彩空間。

標準的制定者考慮了兩點。

1.色彩空間必須符合人眼視覺,能夠比較線性的色彩。

2.要在設備無關的色彩空間中進行計算,不能因為換了個顯示方式,影響色差計算。

於是CIE Lab就在這樣的需求中誕生了。L表示亮度,ab分別表示色彩分量。

當時認為CIE Lab是一個如果均勻線性空間,於是初代的色差公式就是兩個顏色在色彩空間中的歐式距離:

delta_Eab = sqrt(delta_L.^2 + delta_a.^2 + delta_b.^2);
delta_Cab = sqrt(delta_a.^2 + delta_b.^2);
其中delta E為整體色彩,deltaC 排除了亮度的影響(不計算L值)

之後色差公式在應用中逐漸被認識到一些缺點仍然存在。CIE 2000年又再次更新了標準。這次的公式更加符合人眼感知。

公式如下:

中間變量的計算過程被我省略了,只展示了最終的公式。有興趣的同學可以到附錄下載CIE 2000色差公式matlab函數。

LCH 中的色彩三要素

我們在CIE Lab中已經得到了色差,能夠表示色彩準確度。

如果再細分維度,要是能把色彩三要素都測量出來就好了。所以很方便的,我們把Lab轉到LCH色彩空間。L值表示亮度,C表示chroma 飽和度,H表示色相hue。

直接相減。就得到了對應的delta Luma/Chroma/hue。

sRGB轉換到CIE Lab /LCH

sRGB是設備相關的色彩空間,為能在顯示器上正確的顯示,sRGB經過了gamma的處理。所以要把sRGB轉換成Lab,首先要抵消gamma的影響,然後轉換到XYZ色彩空間,再由XYZ色彩空間轉換到 Lab。

X = r_gamma * 0.4124564 + g_gamma * 0.3575761 + b_gamma * 0.1804375
Y = r_gamma * 0.2126729 + g_gamma * 0.7151522 + b_gamma * 0.0721750
Z = r_gamma * 0.0193339 + g_gamma * 0.1191920 + b_gamma * 0.9503041

Xn = 0.95047; %95.047;
Yn = 1.0; %100.0;
Zn = 1.08883; %108.883;

l = 116 * labfun(Y/Yn) – 16;
a = 500 * (labfun(X/Xn)-labfun(Y/Yn));
b = 200 * (labfun(Y/Yn)-labfun(Z/Zn));

Lab2LCH

這部分比較簡單。Lab中的L和LCH中的L值完全一樣。

c = math.sqrt(a ** 2 + b ** 2)
h = (math.atan2(b, a) * 180 / math.pi + 360) % 360
h = h * math.pi / 180

色差公式計算,RGB轉lab/LCH已經用excel做好了工具。後續文章會單獨講解並提供出來;

麥克亞當橢圓MacAdam Ellipsis

MacAdam建立了一個實驗,其中訓練有素的觀察者以大約48 cd / m 2的固定亮度觀察了兩種不同的顏色。一種顏色(「測試」顏色)是固定的,但另一種顏色可由觀察者調整,觀察者被要求調整該顏色,直到它與測試顏色匹配為止。當然,這種匹配並不是完美的,因為人眼像任何其他樂器一樣,準確性有限。MacAdam發現,觀察者進行的所有匹配在CIE 1931色度圖上都變成了橢圓形。在色度圖上的25個點進行測量,發現圖中橢圓的大小和方向根據測試顏色而有很大不同。下面的色度圖顯示了MacAdam為特定觀察者測量的這25個橢圓。

通過這個實驗,再次證明瞭detal E公式的一些缺點:不太符合人眼認知。

同時我們也得到了一些更重要的結論:

1.人眼對顏色的敏感性,不同顏色是不一樣的。

2.如果將這個範圍量化出來映射到Lab空間,全部以橢圓形呈現,且方向不一致。

那麼如果我們想把顏色的誤差限制在一個範圍,那麼這個範圍在Lab上應該是橢圓形的。下面我們一起看看DXO的客觀測試是怎麼做的。

DXO色彩客觀標準

DXO的色彩測試分為三個部分,色彩準確性,白平衡,色彩均勻性。其中均勻性與硬件強相關(color shading)這裡不做介紹。

色彩準確性:

在dxo測試中,色差依然被定義在Lab空間下計算。

其中整體色差為主要參考值。

Delta E <8 被認為色卡顏色與理論顏色相似

Delta E<15 被認為色卡顏色與理論顏色不同,但可接受,供應商有自己的選擇

Delta E>15 色彩還原效果很差,可能有曝光和白平衡問題

另外飽和度和色調的差異,DXO 也在 lab 中進行表示計算。

白平衡:

作為顏色保真的副產物,DxO的分析軟件提供了一種白平衡的度量方法,白平衡誤差的評估使用顏色保真度誤差平均值和最大值(灰色塊上的值),但是不包括黑色和白色。

Delta E <5 精確的白平衡

Delta E <8 正確的白平衡

Delta E <11 感知上存在錯誤,但是可以接受

Delta E >11錯誤的白平衡

另外除了delta E的標準,DXO 也引入了類似麥克亞當橢圓的機製作為限制(門限沒有引用國際標準,是DXO內部經驗的積累總結)。限定了色差的方向。

報告色彩部分展示(數據為台灣廠商2017年的旗艦機型)

曝光

曝光和色彩一樣,很難用客觀參數來定義正確的亮度。下面這兩張圖,亮度差別很大,左圖人像更優,但是白紙和衣服過曝。右圖動態範圍更好,但是人像稍暗。我們很難評價出哪幅圖片的亮度更好。亮度還原準確,不一定感受也好。

18%灰卡

首先我們來談談怎麼去準確還原亮度。

假設一個物體100%漫反射可見光,那在人類的眼中該物體就應該是絕對的白色。

如果一個物體0%反射可見光,拿在人類眼中,就應該是絕對的黑色。

如果我們把絕對黑色和絕對白色還原到8bit的圖片里,那白色就是255,黑色就是0。

那中間亮度就是122。如果人眼對光線的感受也是線性的,那50%反射率的物體,就應該是中性灰。

不過通過實驗測定,18%反射率的物體,才是人眼感知上的中間亮度。

於是在客觀評價中,如果18%灰卡在圖像中正好達到顯示亮度範圍的中間值,就被認為是準確的曝光。

全局對比度和局部對比度

對比度一般能代表圖像中的明暗對比強弱。黑白對比強烈的圖片,看起來更加通透,有衝擊力。

Contrast ratio:

Global Contrast = (Lmax-Lmin)/(Lmax+Lmin)

下面兩張圖的全局對比度接近,但是感官上差異很大。是因為局部對比度的差異。

我們把一張圖分為很多小塊,分別計算每個小塊的對比度再求和平均,就是局部對比度。

動態範圍 dynamic range

通俗來講,動態範圍是用來里描述畫面中從最暗的陰影部分到最亮的高光部分的光量強度分布範圍。缺省情況下用分貝(db)表示,也可以用比特(bit)表示。例如描述一個場景說它的動態範圍很廣,意思就是說,這個場景中從陰影部分到高光部分之間的曝光數值相差很大,畫面的對比度高,層次豐富。當你拍攝一張照片的時候,實際上有兩個動態範圍是你需要考慮的:第一個是你要拍攝的場景的動態範圍,第二個是你的相機的感光元件的動態範圍。

動態範圍一般用透射式36階動態範圍卡測試。但是這張圖卡設計的太過理想,如果測試設備沒有對中性灰測光,或者一些hdr算法通過檢測過曝區域大小動態改變包圍曝光EV時,測試結果很難和主觀對應。

所以在DXO評測中,通常使用結合實景的客觀測試環境。

缺點不能量化圖片的DR,只能量化當前環境的DR。

客觀評價中,測試維度和測試方法仍然有很多局限待改進。

而且嚴重依賴實驗室場景,無法對線上視頻形成監控。只能應用在成像系統或者算法的評測中。