首先來看下CMOS圖像傳感器長啥樣:
我們都知道計算機不能處理模擬信號,只能處理數字信號,所以現實世界的光影也不能直接被計算機處理,所以要記錄數字影像,那么我們必須把真實的影像通過數字化轉變為計算機能讀取寫入的格式。因此我們就需要一種東西,能夠把光信號轉換為電信號,這也就是CCD和CMOS的由來,由于成本和功耗等等原因我們現在看到的數字相機和手機都是CMOS,具體原因展開太麻煩所以也就不詳細說了。
每一個CMOS像素都包括感光二極管(Photodiode)、浮動式擴散層(Floating diffusion layer)、傳輸電極門(Transfer gate)、起放大作用的MOSFET、起像素選擇開關作用的M0SFET.在CMOS的曝光階段,感光二極管完成光電轉換,產生信號電荷,曝光結束后,傳輸電極門打開,信號電荷被傳送到浮動式擴散層,由起放大作用的MOSFET電極門來拾取,電荷信號轉換為電壓信號。所以這樣的CMOS也就完成了光電轉換、電荷電壓轉換、模擬數字轉換的三大作用,通過它我們就能把光信號轉化為電信號,最終得到數字信號被計算機讀取,這樣,我們就已經擁有了記錄光線明暗的能力,但這還不夠,因為我們需要色彩。
現代彩色CMOS的原理也很簡單,直接在黑白圖像傳感器的基礎上增加色彩濾波陣列(CFA),從而實現從黑白到彩色的成像。很著名的一種設計就是Bayer CFA(拜耳色彩濾波陣列)。一個很有趣的事就是,我們用來記錄光影的CMOS,和我們用來輸出光影的顯示器,原理也剛好是向相反的,CMOS把光轉化為電信號最后以數字格式記錄,顯示器把解碼的數字格式從電信號重新轉化為光。光電之間的轉換也就構成了我們人類數字影像的基礎。好了回到正題,為什么是RGB三種顏色?為什么G的占比要高于R和B呢?
這是因為人視網膜上的感光細胞分為兩種:視錐細胞和視桿細胞,分別對應人眼的明視覺和暗視覺。視錐細胞又分三種:紅色感光細胞、綠色感光細胞、藍色感光細胞,它們對照明的明暗條件敏感度較低,只有當光照強度達到一定條件錐細胞才能夠起作用。視桿細胞對光照的敏感度較高,可以在光照條件很暗的情況下對景物成像,卻不能感受顏色。這也解釋了為什么在晚上的時候人仍然能夠看到物體,卻不能有效地分辨物體的顏色的現象跟顏色有關的三種視錐細胞,每一種都對RGB三種顏色最敏感。
注意,是最敏感,所以藍視錐細胞不僅能感應藍色,也可以感應到綠和一部分紅色,綠視錐細胞不僅能感應綠,也可以感應一部份藍和紅,最后紅視錐細胞也是如此。所以通過三種視錐細胞感應到不同波長光譜的比例,人類就能識別出視覺上除了紅綠藍之外的其他顏色。
人造的大部分顯示器,也都是利用這個特性來欺騙人類看到紅綠藍之外的顏色,比如上圖就是我的顯示器在顯示黃色時實際發出的光譜,根本就沒有黃色,這就是一個騙子顯示器,但是通過對人眼視覺特性的利用,我們看到的就是黃色。1931年,CIE(國際標準照明委員會)建立了一系列表示可見光譜的顏色空間標準,定義了CIE-RGB基色系統。規定了RGB系統的三原色光波長分別為700nm,546.1nm,435.8nm的紅光(R)、綠光(G)、藍光(B)。
通過混色實驗可以得到上圖的一組曲線,它們表示在380nm-780nm范圍內當各個光譜能量一樣時,某一波長的光譜色與
混色結果一樣,并稱這三條曲線為CIE1931 RGB系統光譜三刺激值曲線,這與后文中我們要提到的標定有很大關系。
這還可以延伸一下,由于計算顏色三刺激值時會出現負值,所以CIE又設計出了一套CIE-XYZ系統,用X, Y, Z來代表紅綠藍三原色,上圖也就是CIE1931 XYZ系統光譜三刺激值曲線。
著名的CIE 1931 xy色度圖也就是從此而來,我們可以用它描述出任意的一種人眼可見色彩。當然后來為了更精確的修正,還有CIE 1976 u'v色度圖,我們的很多評測也都使用了這個標準。因此,在理論上只需要記錄RGB,也就能還原出我們眼睛看到的所有顏色了。
另一個事實是:皮皮蝦擁有16種視錐細胞,所以如果讓它看我們的顯示器,它只會覺得你給我看的這是個什么玩意???
好了我們回到濾鏡顏色的問題上。對于基于Bayer CFA的設計,當我們拍攝右側圖1的場景時,CMOS所有像素傳回來的圖像直接組合的結果就是右側圖2,當我們將濾鏡顏色加到像素上會得到圖3,很明顯這也不應該是我們最后看到的圖像。所以由3到4的過程,就需要插值算法來補足,之前真假4800萬像素的爭論也就是在這一步。
對于Bayer CFA設計的CMOS,有常用的插值算法,比如相鄰像素插值、雙線性插值、三次多項式插值等,它們的目的都是為了還原出全部的RGB三個通道分量,比如雙線性插值就是這么算的:對于只有紅色分量的像素:例如R32:
對于只有綠色分量的像素:例如G33
對于只有藍色分量的像素:例如B43
通過還原得到完整的RGB分量,我們就能得到一幅沒有缺損的圖像了,但是這就是終點了嗎?并不是,我們不能直接把這樣的圖像存儲,因為這其中有一個很重要的問題:Bayer CFA經過插值之后,CFA的色特性與人眼的視覺特性并不一定重合,所以圖像中的像素顏色可能都是偏色的,這里可能是光學透鏡的光譜特性導致,也可能是Bayer CFA上的彩色濾鏡光譜特性導致,跟拍攝的環境光也有很大關系。所以還有一步,那就是校正標定。校正標定之中最重要的則是伽馬校正和顏色校正,先看伽馬校正:在現實世界中,幾乎所有的顯示器、攝影膠片以及很多電子照相機的光電轉換特性都是非線性的。這些非線性部件的輸出與輸入之間的關系通常用冪函數表示。理想狀態下,色彩強度(Intensity)與電子束的電壓信號之間成線性關系,但實際情況剛好想法,色彩強度與輸入的電壓信號之間是非線性關系。顯示器的輸出強度和輸出電壓的響應大致成冪指數關系,下方式子表示輸出的強度隨著輸入電壓的增長成指數增長,通常我們就把這個冪指數稱為伽馬(Gamma):
為了使圖像在顯示器上的效果和實際情形更為接近,在攝像機獲取圖像后,必須進行伽馬校正,把上邊式子的非線性關系校正為線性關系:
其中,是經過校正處理后的圖像的像素值;是沒有經過校正的像素值;伽馬值γ表示校正的程度,γ=1時,不進行校正,γ值越大,像素灰度值的校正程度越大。顏色校正:由于不同廠家在制造CMOS時使用的彩色濾光片不同,CMOS對不同波段的光電響應度不同,都會導致相機的光譜響應曲線不同,比如這是某一個CMOS的光譜相應曲線:
很容易的就會發現彩色相機RGB三刺激值曲線圖和之前我們提到過的CIE 1931-RGB系統有很大差別。
想減小這種差異,就要對原始圖像的像素灰度值(R,G,B)進行必要的補償,帶來和人眼感知相近的顏色,這其中的工作就是顏色標定。好了,鋪墊了這么久,終于講到那當我們把RGGB換成RYYB,用黃色濾鏡替代綠色會怎么樣了。
黃光的光譜主波是570-590納米,剛好被夾在紅綠主波之間,所以只要彩色濾鏡的光譜特性設計得足夠好,那么理論上黃色也就能記錄紅+綠,下圖就是一個我假象的光譜響應示意圖:
在這種非常理想的條件下,RYYB的感光總量肯定可以超過RGGB,不過這也給插值算法補全RGB的那一步帶來了一定困難,插值不理想的話后期色彩標定也會出現問題。
而且現實情況也是要復雜得多,這里找到了一篇論文:Raj Shrestha, V. et al. Polarization-tuned Dynamic Color Filters Incorporating a Dielectric-loaded Aluminum Nanowire Array. Sci. Rep. 5, 12450; doi: 10.1038/srep12450 (2015).在這之中就有相當多的彩色濾鏡,甚至有直接將黃光主波壓制,保留紅綠藍光譜的彩色濾片設計。
文章轉載來源:https://tech.qudong.com/2019/0402/558867.shtml
-
傳感器
+關注
關注
2552文章
51359瀏覽量
755647 -
CMOS
+關注
關注
58文章
5733瀏覽量
235865 -
圖像傳感器
+關注
關注
68文章
1915瀏覽量
129636
發布評論請先 登錄
相關推薦
評論