Demosiac是整個ISP imaging pipeline的核心算法,將bayer pattern的圖像轉換成RGB。
那么我們這篇博文呢,希望從以下幾個角度,對Demosiac做一個入門,給大家一些基本的概念。
0 什么Bayer pattern,他是怎么產生的
1 什么是去馬賽克,為什么需要去馬賽克
2 如何去馬賽克,基本依據是什么
3 去馬賽克中的難點
4 any other choices?
==========================
0 什么Bayer pattern,他是怎么產生的
==========================
我們知道,CMOS其實只能記錄光子的能量,並不能記錄光波的波長(即色彩信息),所以,為了得到圖像的顏色信息,前人們想到了一種辦法,就是在每一個像素面前加帶顏色的濾光片,這樣就知道某一顏色分量的光強了,柯達的工程師提出了下面這種pattern,也叫CFA(color filter array)
BGBGBGBGBGBGBGB
GRGRGRGRGRGRGR
這樣就可以記錄色彩信息了
背后的邏輯當然是這樣的
1.綠色pixel為什么比其他兩種顏色多呢? 因為人眼對綠色(550nm左右)最敏感啊
2.為什么是這三種顏色呢?三原色嘛
3.那么這樣每個像素還是只有一種色彩呀,怎么能得到每個像素的所有色彩呢? 真聰明,這個就是我們做demosiac的目的了
好啦,知道了為什么需要做demosiac,我們就可以繼續了
==========================
1 什么是去馬賽克,為什么需要去馬賽克
===========================
看了上面關於bayer的介紹,其實很好理解我們為什么需要去馬賽克了,這是我們色彩恢復的重要的一步。將bayer模式的raw圖像轉換成為RGB的圖像。
===========================
2 如何去馬賽克,基本依據是什么
===========================
簡單來說就是插值,鄰域像素的色彩都有了,我們肯定是可以插值出本像素的值的。不過簡單的雙線性插值的方法總是在IQ上面有缺陷的。
在圖像的邊緣,會產生偽彩色,這一點不難理解。
下面介紹一種目前常用的demosiac插值方法。
demosiac的插值一般遵循以下幾個原則:
1.先對G分量進行插值,因為G的像素個數是GB的兩倍
2.插值時采用方向性插值,即如果是垂直的邊緣,則采用上下的像素進行插值,而不選用左右
3.Hamilton提出的patent奠定了基礎,基本原理就是色差恆定,即相鄰點的R(i,j)-G(i,j) = R(i, j+1)-G(i, j+1)
4.另外各個顏色分量在同一像素點處的高頻分量可認為是相同的
一個簡單的實現demoisac的流程是這樣的
A.先獲取圖像中的物體的邊緣
B.根據邊緣信息重建G分量
C.根據哈密爾頓提出的色差恆定理論,重建R和B
D.一些后處理,包括偽彩色抑制和zipper cancelling等
這兩年也出現了基於deep learning的demosiac方法,以后有機會可以跟寫一篇文章來解析一下。
===========================
3 去馬賽克中的難點
===========================
去馬賽克算法會產生兩種缺陷,色彩混疊和拉鏈效應。就是上面D這個步驟要解決的兩個問題。
關於色彩混疊,在后文中我們會介紹他的形成,而色彩混疊的解決方法也很多,其中一種就是中值濾波,對
U = R-G
V = B-G
U和V進行中值濾波,可以保證在邊界處抑制色彩混疊
==========================
4 any other cholces?
===========================
講了半天去馬賽克,其實就是因為最初我們用了bayer pattern,不能夠在一個像素處拿到所有的RGB三種色彩的值,所以才有了這么多的處理。
其實很多人對Bayer這種pattern頗有微詞,它至少有以下兩點不足
1.G和RB的采樣率不同,導致色彩混疊。G的采樣率比RB都要高,這樣,RB不能像G那樣准確的恢復出原始被采樣圖像的色彩,就會有假的色彩花紋在圖像的高頻部分產生。
典型的色彩混疊的例子,注意圖中的白色柵欄
2.濾光片的存在導致光能的丟失
那么有公司提出了全彩色CMOS的概念,每一個像素可以拿到RGB三種色彩強度信息,無需demosiac插值,基本原理如下圖
當然造價之類的肯定是比bayer的要高,所以目前普遍使用的還是bayer的sensor。
最后向大家推薦一本書《image processing for embeded devices》,非常棒,ISP中用到的各種基本算法都有涉及,類似於文獻綜述。里面有一章專門講去馬賽克和抗混疊的。
參考文獻
1. https://www.dpreview.com/articles/3560214217/resolution-aliasing-and-light-loss-why-we-love-bryce-bayers-baby-anyway
2. image pricessing for embeded devices
3. 基於bayer格式的去馬賽克算法研究及硬件實現 浙大 丁文