相機(jī)成像原理之sensor篇

和你一起終身學(xué)習(xí),這里是程序員 Android

經(jīng)典好文推薦,通過(guò)閱讀本文,您將收獲以下知識(shí)點(diǎn):

一、Sensor的硬件結(jié)構(gòu)
二、Sensor的曝光

一、Sensor的硬件結(jié)構(gòu)

1. 每個(gè)像素的結(jié)構(gòu)

每個(gè)像素點(diǎn)的最上方有個(gè)微透鏡,增加透光量。有鏡頭就有CRA的問(wèn)題,超出一定角度的光線無(wú)法被收集,需要和鏡頭進(jìn)行匹配。

像素的結(jié)構(gòu)
2. sensor的縱向結(jié)構(gòu)

光透過(guò)電路會(huì)發(fā)生反射,造成每個(gè)像素點(diǎn)之間的干擾。背照式的結(jié)構(gòu)(感光層在電路的上方)不會(huì)受到電路的影響。

sensor的縱向結(jié)構(gòu)
3. CFA(color filter array)

每個(gè)像素點(diǎn)上覆蓋有一種顏色的濾光片,從而去感知每種顏色的亮度。

濾光片CFA

Bayer格式:綠色分量為總像素?cái)?shù)的一半,紅色藍(lán)色為總像素的四分之一。

3.1 MONO sensor

由于濾光會(huì)帶來(lái)亮度上的損失,有種MONO sensor,沒(méi)有濾光片的處理,亮度會(huì)大大提高(有文章說(shuō)可以提高四倍),但是這就感知不到顏色了,所以又叫黑白sensor。

3.2 光譜響應(yīng)曲線

下圖是IMX290每個(gè)紅綠藍(lán)濾光片的光譜響應(yīng)曲線。

IMX290光譜響應(yīng)曲線

這是人眼視錐細(xì)胞對(duì)光譜的響應(yīng)曲線

人眼視錐細(xì)胞對(duì)光譜的響應(yīng)曲線

由于人眼和sensor對(duì)光譜的感應(yīng)曲線不同,同一個(gè)物體感知到的顏色不同。因此顏色需要一個(gè)轉(zhuǎn)換關(guān)系。ISP中的CCM(色彩校正矩陣)就此誕生,利用一個(gè)3x3的矩陣,將sensor感知到的RGB顏色,校準(zhǔn)成我們看到的RGB顏色。

3.3 紅綠燈變色問(wèn)題

這里穿插一個(gè)監(jiān)控?cái)z像頭常遇到的問(wèn)題,拍紅燈的時(shí)候,經(jīng)常會(huì)拍成黃燈和白燈,這是為什么呢?

因?yàn)榧t燈的光譜在780~620nm之間,從光譜響應(yīng)曲線中可以看到,紅像素最敏感,然后是綠像素,最后是藍(lán)色像素。

當(dāng)感光度比較小的時(shí)候,紅色像素的亮度遠(yuǎn)遠(yuǎn)大于綠色和藍(lán)色,肯定是呈現(xiàn)出紅色。感光度比較大時(shí),綠色像素也能有很高的亮度,而紅色像素早已經(jīng)飽和了,不在增加,這個(gè)時(shí)候呈現(xiàn)的顏色就是紅色+綠色=黃色。感光度很大的時(shí)候,RGB都飽和了,紅綠藍(lán)加在一起就是白色。
解決方法:

降低曝光
換用藍(lán)玻璃IRCUT:在650nm以上的紅光,綠像素的感應(yīng)也很強(qiáng)。換用藍(lán)玻璃IR可以有效減少綠像素的干擾。同時(shí)它也可以比較徹底的濾除630nm以上波長(zhǎng)的紅光,減少過(guò)曝的問(wèn)題。
3.4 去馬賽克
由于sensor每個(gè)像素點(diǎn)只能感知到一種顏色,因此想要得到每個(gè)像素點(diǎn)的RGB值,需要進(jìn)行插值,這個(gè)過(guò)程就是去馬賽克(Demosiac)。

demosiac
4. IR-CUT

大家都知道,攝像頭有個(gè)IR-CUT,那為什么要加IR-CUT filter 呢?IR-CUT是紅外濾光片,可以濾除紅外光。

從IMX290的光譜敏感性曲線可以看到sensor到了1000的波長(zhǎng)還能進(jìn)行光電轉(zhuǎn)換,而人眼只能到700nm,也就是可以說(shuō)sensor 的“可見(jiàn)光”和人眼的不一樣,而且范圍遠(yuǎn)遠(yuǎn)比人眼的要大。

那么就會(huì)導(dǎo)致什么問(wèn)題呢,最大的問(wèn)題就是顏色不一樣,因?yàn)槿搜凼歉惺艿降氖窃诳梢?jiàn)光在可見(jiàn)光范圍內(nèi)的響應(yīng),而sensor感受到的卻是在400-1000范圍內(nèi)的響應(yīng)。因此我們需要加上一個(gè)IR-cut 使sensor感受的波段和人眼一樣。

還有一個(gè)原因:當(dāng)光線進(jìn)入鏡頭,由于折射率不同,可見(jiàn)光和紅外光會(huì)在靶面的不同位置成像,IR-CUT可以減少紅外光產(chǎn)生的偽像。

4.1 拓展:RGB-IR sensor

補(bǔ)充一種sensor,這種sensor不用IR-CUT,除了有RGB三種CFA,還增加了一種專(zhuān)門(mén)只通過(guò)紅外光的CFA。由光譜圖我們可以知道,普通sensor中的綠像素不僅僅能感知綠色,還能感知到紅外波段的光,實(shí)際上是綠色+IR(紅外光)。RGB-IR的sensor有個(gè)IR像素只感知紅外光,兩者相減就可以得到可見(jiàn)光的綠色。

RGB-IR format

這樣就用數(shù)字濾光代替了IR-CUT。我覺(jué)得更有應(yīng)用場(chǎng)景的地方在于,夜間場(chǎng)景下開(kāi)紅外燈,不僅可以感知到紅外,還能感知到顏色,是一種待開(kāi)發(fā)的黑光技術(shù)。

5. 黑電平

黑電平(Black Level Correction)也就是黑色的最低點(diǎn),以8bit數(shù)據(jù)來(lái)說(shuō),指在經(jīng)過(guò)一定校準(zhǔn)的顯示裝置上,沒(méi)有一行光亮輸出的視頻信號(hào)電平。定義圖像數(shù)據(jù)為0時(shí)對(duì)應(yīng)的信號(hào)電平。

黑電平產(chǎn)生的原因:

CMOS傳感器采集的信息經(jīng)過(guò)一系列轉(zhuǎn)換生成原始RAW格式數(shù)據(jù)。以8bit數(shù)據(jù)為例,單個(gè)pixel的有效值是0-255,但是實(shí)際AD芯片(模數(shù)轉(zhuǎn)換芯片)的精度可能無(wú)法將電壓值很小的一部分轉(zhuǎn)換出來(lái),因此,sensor廠家一般會(huì)在AD的輸入之前加上一個(gè)固定的偏移量,使輸出的pixel value在5(非固定)-255之間,目的是為了讓暗部的細(xì)節(jié)完全保留,當(dāng)然同時(shí)也會(huì)損失一些亮部細(xì)節(jié),由于對(duì)于圖像來(lái)說(shuō),我們的關(guān)注度更傾向于暗部區(qū)域,ISP后面會(huì)有很多增益模塊(LSC、AWB、Gamma等),因此亮區(qū)的一點(diǎn)點(diǎn)損失是可以接受的。
sensor的電路本身會(huì)存在暗電流,導(dǎo)致在沒(méi)有光線照射的時(shí)候,像素單位也有一定的輸出電壓,暗電流這個(gè)東西跟曝光時(shí)間和gain都有關(guān)系,不同的位置也是不一樣的。因此在gain增大的時(shí)候,電路的增益增大,暗電流也會(huì)增強(qiáng),因此很多ISP會(huì)選擇在不同gain下減去不同的黑電平的值。
ISP pipeline中的黑電平校正(Black Level Correction) :

拍幾張不同增益下的全黑圖像,算出每個(gè)增益下對(duì)應(yīng)的黑電平值。isp會(huì)在raw圖之后減去這個(gè)黑電平值。這一般是ISP的第一步。

6. 壞點(diǎn)

傳感器芯片由于工藝的原因產(chǎn)生一些有缺陷的像素點(diǎn),這些像素點(diǎn)可能比鄰近的像素點(diǎn)更暗或者更亮。

ISP pipeline中的的壞點(diǎn)校正:

在判定某像素為壞點(diǎn)后,會(huì)根據(jù)鄰近像素點(diǎn)的值計(jì)算得到一個(gè)值以替代該壞點(diǎn)。

二、Sensor的曝光

sensor的曝光時(shí)間和快門(mén)時(shí)間是一個(gè)概念,都是sensor的感光時(shí)間。曝光(快門(mén))時(shí)間越長(zhǎng),圖像就越亮。

當(dāng)控制快門(mén)時(shí)間,仍然達(dá)不到期望的亮度,就需要調(diào)節(jié)sensor的感光度(ISO)。CMOS sensor的感光度就是它的增益。增益是用模擬或數(shù)字的方法進(jìn)行放大,不可避免的會(huì)放大噪聲,因此拍攝時(shí)一般快門(mén)優(yōu)先。

當(dāng)拍攝高速運(yùn)動(dòng)的物體或者手抖的時(shí)候,容易產(chǎn)生運(yùn)動(dòng)模糊,就需要降低快門(mén)時(shí)間。

sensor的曝光方式有兩種,卷簾曝光和全局曝光。

1. 卷簾曝光(rolling shutter)

sensor曝光是每一行依次開(kāi)始曝光的,所以圖像中每一行的起始曝光時(shí)間是不一致的,目前大部分sensor屬于這種。下圖是卷簾曝光拍攝高速運(yùn)動(dòng)的物體的現(xiàn)象。

卷簾曝光失真

這是IMX290的sensor曝光與輸出示意圖


IMX290 曝光序列

黃色區(qū)域是sensor處于感光的時(shí)間,藍(lán)色區(qū)域是sensor每一行數(shù)據(jù)的輸出時(shí)間,紅色是曝光開(kāi)始的時(shí)間。XHS是進(jìn)行每個(gè)操作的最小時(shí)間單位。

從時(shí)間先后來(lái)看,一幅圖像是從第一行開(kāi)始曝光,一個(gè)XHS之后,再?gòu)牡诙虚_(kāi)始曝光,依次類(lèi)推。圖像的第一行曝光結(jié)束后,進(jìn)行輸出,輸出數(shù)據(jù)的時(shí)間是一個(gè)XHS,依此類(lèi)推。

卷簾曝光帶來(lái)的問(wèn)題

日光燈下有橫條紋

日光燈屬于頻閃燈,跟當(dāng)?shù)氐墓╇婎l率有關(guān),如果當(dāng)?shù)氐墓╇娛?0Hz的正弦波(國(guó)內(nèi)),日光燈就會(huì)以100Hz的頻率閃爍。sensor每行的起始曝光時(shí)間是不同的,這就導(dǎo)致了每一行曝光時(shí)的亮度不同。因此會(huì)出現(xiàn)橫條紋

解決方法:

控制曝光時(shí)間是1/100的整數(shù)倍,這樣每行的曝光時(shí)間都是一個(gè)周期的整數(shù)倍,亮度就保持一致了。
控制幀率為25/50幀,不能解決橫條紋的問(wèn)題,但是可以讓每幀圖像中的橫條紋固定在相同的位置。1/25是1/100的整數(shù)倍,可以使不同圖像中每一行曝光的開(kāi)始時(shí)間都相差四個(gè)周期。保證了每張圖像中同一行的亮度是一致的。
拍攝快速運(yùn)動(dòng)的物體會(huì)有失真

因?yàn)槊恳恍衅毓忾_(kāi)始的時(shí)間不同,當(dāng)物體快速運(yùn)動(dòng)時(shí),每行抓拍下來(lái)的物體位置都不同,造成了物體的變形。

解決方法:

加大圖像輸出的速度(提高幀率也可行,本質(zhì)上改變的就是輸出速度)
調(diào)整抓拍的時(shí)間和角度,比如遠(yuǎn)處的車(chē)輛每幀移動(dòng)的像素點(diǎn)較少,可以去抓拍稍遠(yuǎn)處的車(chē)輛
使用全局曝光的sensor

2. 全局曝光(global shutter)

每一行的起始曝光和終止曝光的時(shí)間一致,目前只有電警設(shè)備上用到,價(jià)格昂貴。因?yàn)殡娋O(shè)備有爆閃燈,爆閃燈亮的時(shí)間很短。如果使用卷簾曝光的sensor,一幅圖像才曝光幾行燈就熄滅了,所以必須要用全局曝光的傳感器。

原文鏈接: https://www.qinxing.xyz/posts/e6f0524a/
至此,本篇已結(jié)束。轉(zhuǎn)載網(wǎng)絡(luò)的文章,小編覺(jué)得很優(yōu)秀,歡迎點(diǎn)擊閱讀原文,支持原創(chuàng)作者,如有侵權(quán),懇請(qǐng)聯(lián)系小編刪除,歡迎您的建議與指正。同時(shí)期待您的關(guān)注,感謝您的閱讀,謝謝!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容