ISP中去馬賽克-demosiac入門


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格式的去馬賽克算法研究及硬件實現 浙大 丁文


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM