0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

相機(jī)圖像處理過程詳解

新機(jī)器視覺 ? 來源:視科儀器SCOCIE ? 2024-01-22 11:21 ? 次閱讀

來源:視科儀器SCOCIE

相機(jī)圖像處理過程

在開始前介紹兩個知識點(diǎn):

集成信號處理器(Integrated signal processor, ISP):

指的是專門用來處理感光件信號并生成最終圖像的硬件,通常會作為一個模塊集成到片上系統(tǒng)。

典型的圖像過程:

光線進(jìn)入鏡頭,到達(dá)【帶有RGB濾光陣列的傳感器】,得到最原始的電信號。這個信號經(jīng)過【ISO增益和原始圖像處理】【RGB去馬賽克】和【降噪】,就會得到raw格式的圖片,對它接著進(jìn)行【白平衡以及色彩空間轉(zhuǎn)換】和【色彩處理】,并【映射到sRGB輸出】,這時圖片已經(jīng)呼之欲出,只要【JPEG壓縮】并【保存成文件】,儲存卡里就會增加一張JPEG格式的照片。

接下按照典型的圖像過程依次介紹:

【帶有RGB濾光陣列的傳感器】

CMOS傳感器是相機(jī)中用于感受光的部分,幾乎所有的消費(fèi)級相機(jī)的傳感器都是基于CMOS技術(shù)。

大家應(yīng)該都見過類似這樣的傳感器尺寸對比圖,傳感器越大,每個像素上接收到的光就越多,從而相對噪聲就越小。智能手機(jī)的傳感器往往是最小的。

9792476c-b76b-11ee-8b88-92fbcf53809c.png

相機(jī)傳感器其實(shí)就是我們理想中的能夠衡量光線強(qiáng)弱的裝置,取同樣長的時間,如果到達(dá)傳感器某個像素點(diǎn)的光亮度變成兩倍,那么該點(diǎn)的數(shù)值也會變成兩倍。但要注意的是,傳感器只能測量光的強(qiáng)弱,并不能區(qū)分顏色,那么我們的彩色是哪里來的呢?這就需要將不同顏色的濾鏡和傳感器結(jié)合起來,實(shí)現(xiàn)這一過程的技術(shù)叫做拜爾陣列(“Bayer” pattern)。

97aa0cb2-b76b-11ee-8b88-92fbcf53809c.png

97c12d66-b76b-11ee-8b88-92fbcf53809c.png

于是我們就得到了具有色彩陣列(color filter array, CFA)的相機(jī)傳感器。通過這樣的設(shè)計,傳感器得到的數(shù)值就可以用來衡量不同通道信號的強(qiáng)弱了。不同的相機(jī)有著各自的傳感器陣列,不同陣列的濾光色就構(gòu)成了相機(jī)色彩空間(raw RGB)的三原色,因此相機(jī)的raw RGB空間不是一個通用的色彩空間。下面兩張圖展示了不同相機(jī)raw RGB空間的原色以及raw圖片的色差。

97db68e8-b76b-11ee-8b88-92fbcf53809c.png

980120c4-b76b-11ee-8b88-92fbcf53809c.png

【ISO增益和原始圖像處理】

傳感器接受光并直接傳過來的信號非常原始,根本不能看,還需要接下來的一系列操作。

首先是ISO增益,這里要先明確一個概念:什么是ISO?

ISO,全稱為International Standardization Organization,它對相機(jī)的對光線的敏感程度,也就是感光度,進(jìn)行了量化規(guī)定,而那已經(jīng)是膠卷時代的事了。對于現(xiàn)代相機(jī),ISO并不是像快門時間或者光圈那樣具有直白的物理含義,而是通過信號處理想要滿足的標(biāo)準(zhǔn)。

為了達(dá)到與設(shè)置相對應(yīng)的ISO,相機(jī)會將接收到的信號進(jìn)行增益,增益倍數(shù)越大,也就對光線越敏感——當(dāng)然,也會對噪音越敏感。下圖展示了不同ISO設(shè)置下的效果(曝光時間進(jìn)行了相應(yīng)的調(diào)整)。

這里需要指出的是,我們經(jīng)常說像素的強(qiáng)度,但其實(shí)像素值是沒有單位的,它取決于曝光時間、增益和硬件本身,因此我們實(shí)際上關(guān)注的是圖像上的相對值,而非絕對值。

原始的圖像處理是指對相機(jī)硬件的一系列校準(zhǔn),包括黑光減法、缺陷像素遮蔽和平場矯正加粗樣式。

黑光減法(Black light subtraction)是說對無光像素值的矯正。我們希望沒有接收到光的像素值是0,但由于傳感器本身的噪聲,事情往往不是這樣。同時這個噪聲并不是恒定的,它會隨著溫度的變化而改變。為了進(jìn)行校準(zhǔn),可以通過黑屏設(shè)置一系列無光的像素,得到光學(xué)黑的信號,再從整體中減去,實(shí)現(xiàn)校準(zhǔn)。

98544704-b76b-11ee-8b88-92fbcf53809c.png

缺陷像素遮蔽(Defective pixel mask)是為了處理CMOS傳感器中的壞點(diǎn)。這一校準(zhǔn)會在工廠中進(jìn)行,通過拍攝無光的圖像,來發(fā)現(xiàn)數(shù)值異常的點(diǎn)來制作遮蔽,被遮蔽處的壞像素會被周圍點(diǎn)的插值所代替(也就是估算出這個點(diǎn)的值)。

平場矯正(Flat-field correction)是由于均勻落在傳感器上的光在圖像中可能并不均勻,這可能是由鏡頭、傳感器在相機(jī)中位置誤差等原因引起的,提前記錄這一變化并予以矯正,從而得到一個“平”的圖像。

【RGB去馬賽克】

還記得拜爾陣列嗎?那個聰明的設(shè)計讓我們的傳感器得以分辨顏色,但同時也使得我們的圖片變得離散。我們得到了每個像素點(diǎn)的RGB三通道之一的值,但我們實(shí)際上希望得到每個像素點(diǎn)的三個值,所以我們需要進(jìn)行插補(bǔ)。

讓我們來看一個最最簡單的插補(bǔ)算法。

999ff93c-b76b-11ee-8b88-92fbcf53809c.png

在位置5,拜爾陣列只給了我們R值,G和B就需要用周圍的其他位置來進(jìn)行估算,這里采用了平均值??梢韵胍娺@樣的算法基于“相近位置顏色都差不多”的假設(shè),那么當(dāng)遇到不同顏色的分界處,這樣的假設(shè)自然就不再成立,于是可以加入一個邊界判斷,發(fā)展成“邊界感知”型插值算法(聽起來還蠻高大上的)。

99ca06e6-b76b-11ee-8b88-92fbcf53809c.png

上面的算法僅是為了幫助理解,實(shí)際上在IPS中進(jìn)行的算法會復(fù)雜也強(qiáng)大得多,有時候去馬賽克的過程還會有一些附加效果,如高光調(diào)整(Highlight clipping)、銳化、降噪等。

【降噪】

所有的傳感器都自帶噪音,大多數(shù)相機(jī)會在模數(shù)轉(zhuǎn)換后加入一個降噪。

而對于高端相機(jī),可以能會根據(jù)不同的ISO設(shè)置采用不同的降噪策略,當(dāng)ISO較高時會采取更激進(jìn)的降噪。手機(jī)的相機(jī)因為傳感器較小,往往都會采取激進(jìn)的降噪策略,所以手機(jī)自拍比較好看。

這里同樣給出一個最簡單的算法來對降噪有一個感性認(rèn)識。

噪音往往比較突兀,因此可以使用模糊來減小噪音。但模糊也會影響細(xì)節(jié),因此考慮將去掉部分中信號較強(qiáng)的區(qū)域補(bǔ)回圖像(甚至?xí)訌?qiáng)以后補(bǔ)回來)。

于是就得到了我們的算法:

99dda23c-b76b-11ee-8b88-92fbcf53809c.png

【白平衡以及色彩空間轉(zhuǎn)換】

到這里,我們已經(jīng)得到了raw RGB空間里的圖片,除了顏色怪異,多少是能看了。接下來就要好好處理一下顏色。

我們希望把raw RGB這一依賴于設(shè)備的色彩空間轉(zhuǎn)換到一個無關(guān)設(shè)備的色彩空間里。在這里采用CIE XYZ為例子,實(shí)際上大多數(shù)相機(jī)會使用一個叫ProPhoto RGB的色彩空間。

轉(zhuǎn)換分為兩步,白平衡和色彩空間轉(zhuǎn)換。

白平衡也就是矯正RGB相等的點(diǎn)(白點(diǎn)),只要對三個通道分別進(jìn)行放縮就行了,也就是一個對角矩陣的事。

但怎么定義白點(diǎn)呢?

如果由用戶手動設(shè)置,這件事就比較簡單。相機(jī)一般會提供一些預(yù)設(shè)的白平衡數(shù)據(jù),用戶根據(jù)拍照的光照環(huán)境進(jìn)行選擇。下圖是一些預(yù)設(shè)白平衡的例子。

9a17e5dc-b76b-11ee-8b88-92fbcf53809c.png

如果沒有手動指定,就會啟用自動白平衡(auto white balance, AWB)算法,這件事就會變得很難,算法必須要能夠確定任意照片的場景光亮。

這樣的算法往往假設(shè)“白色”就是對場景光源的自然反射,如果我們可以定義圖像中哪些像素屬于“白色”,就可以得到場景光照的RGB表示。注意,這里的“白色”并不一定是白色,也有可能是灰色(白色就是最亮狀態(tài)的灰色),有時我們會稱這樣的像素點(diǎn)為“消色差”或者“中性區(qū)”。

這里介紹兩個簡單的算法,灰色世界算法Gray world和白塊算法White patch。

灰色世界算法假設(shè)一個場景的平均反射光是消色差的(也就是灰色的),因此首先算出平均值再進(jìn)行白平衡轉(zhuǎn)換即可。

9a38f38a-b76b-11ee-8b88-92fbcf53809c.png

9a4e62b0-b76b-11ee-8b88-92fbcf53809c.png

如果白平衡在去馬賽克之前,那么不同通道的像素數(shù)量將會不一樣。

前面說過,每個像素絕對值意義不大,有相對的就行,所以可以將綠通道取1。

接下來看白塊算法,這個算法假設(shè)場景中的高亮點(diǎn)就是我們想要找的白點(diǎn)。也就是以最大值的RGB作為白色的數(shù)值。

基于這樣的假設(shè),算法工作如下:

9a66e74a-b76b-11ee-8b88-92fbcf53809c.png

9a811bce-b76b-11ee-8b88-92fbcf53809c.png

上圖是這兩種算法的效果展示。

這兩種算法都是非?;A(chǔ)的算法,當(dāng)圖像有大面積單色時很容易失?。ū热缢{(lán)天),對于AWB的算法研究有很多論文研究,相機(jī)往往也會有自己獨(dú)特的白平衡算法。注意,這些算法并不一定為了復(fù)原場景光照而設(shè)計,而是會出于審美考慮,留有一些色差。

進(jìn)行了白平衡,接下來就要進(jìn)行色彩空間轉(zhuǎn)換(color space transform, CST),將圖片從raw RGB空間轉(zhuǎn)換到獨(dú)立于設(shè)備的色彩空間,如CIE XYZ。

白平衡僅能努力接近真實(shí)的色彩恒定,因此在相機(jī)上進(jìn)行的色彩空間轉(zhuǎn)換還會包含一個依賴于工廠預(yù)設(shè)的插值。在工廠中會對不同的CCT預(yù)設(shè)色彩轉(zhuǎn)換矩陣CST,在實(shí)際處理時,用場景的CCT根據(jù)預(yù)設(shè)的CST矩陣進(jìn)行插值,得到想要的CST矩陣。

9aa9c592-b76b-11ee-8b88-92fbcf53809c.png

9abadfa8-b76b-11ee-8b88-92fbcf53809c.png

【顏色操作】

現(xiàn)在我們得到了處于CIE XYZ空間的圖片,距離我們常見的處于sRGB的jpg文件只剩一步之遙,但在此之前,還有一個讓每家相機(jī)各顯身手的舞臺,這就是【顏色操作】步驟。

各家相機(jī)會施展不同的秘法,來讓照片變得更加好看。這個步驟有很多叫法:色彩調(diào)控、沖洗階段(photo-finishing)、色彩渲染、YUV處理引擎。一般會允許用戶對這個階段進(jìn)行一定的控制和選擇,下圖來自佳能的用戶手冊。

這些色彩操作可以分為兩類,三維和一維的,三維變換同時處理三個通道,一維曲線則是作用于每個通道,下圖是一些變換的例子。這里說到的查詢表(look up table, LUT)就相當(dāng)于函數(shù)或者說映射。

wKgZomWt37eALV2uAABZE--3jk4244.png

wKgZomWt36OAQo7eAADL5uJahcE063.png

9b356354-b76b-11ee-8b88-92fbcf53809c.png

可以看到,這些變換幾乎都是非線性的變換,經(jīng)過了這一步,像素值的強(qiáng)弱就不再能夠反映場景中光線的強(qiáng)弱了(當(dāng)然可能在此之前就已經(jīng)有過非線性操作了)。

【映射到sRGB輸出】

經(jīng)過了這一步,我們可以將圖片【映射到sRGB輸出】了。這在之前已經(jīng)解釋過,會先從CIE XYZ映射到linear sRGB,再經(jīng)過伽馬變換(2.2)得到sRGB空間。

【JPEG壓縮】

接著要進(jìn)行【JPEG壓縮】,這是為了減小文件大小而進(jìn)行的有損壓縮。

其中較難理解的是離散余弦變換(Discrete Cosine Transform , DCT)變換的步驟,在這里做感性介紹,幫助理解。

DCT可以理解為對傅里葉變換的采樣,變換結(jié)果都是實(shí)數(shù)。傅里葉變換能夠?qū)⒃驹跁r域的信號轉(zhuǎn)換到頻域上,對于圖像來說,就是將原本在空間上分布的像素值信號,轉(zhuǎn)變?yōu)椴煌l率的二維三角函數(shù)的帶權(quán)重加和。同時結(jié)合一個經(jīng)驗:低頻的信息要比高頻的信號更重要(可以想象一個低頻余弦和高頻余弦加和,結(jié)果就是一個長了毛刺的山坡——山坡的信息更為重要),從而進(jìn)行一個量化的操作(相當(dāng)于濾波),將更多低頻的信息保留,從而減小數(shù)值尺度的同時盡可能保留重要信息,這之后會再進(jìn)行編碼,提取數(shù)據(jù)的特征存儲,從而實(shí)現(xiàn)更高的壓縮比例。

在DCT上進(jìn)行量化操作的數(shù)量會影響品質(zhì),操作越多,得到的圖像質(zhì)量就越低。在相機(jī)中往往可以選擇jpeg格式的質(zhì)量。

【保存成文件】

接下來就是【保存成文件】了,給照片加上日期時間、相機(jī)設(shè)定、輸出的色彩空間、地理位置等等信息,寫到存儲卡里,就大功告成了。

9b482f5c-b76b-11ee-8b88-92fbcf53809c.png

國際色彩聯(lián)盟(International Color Consortium, ICC)是一個負(fù)責(zé)制定色彩操作國際標(biāo)準(zhǔn)的組織,下圖是來自ICC-ISO 22028的流程圖,可以看到更多關(guān)于處理流程的細(xì)節(jié)。在這里,與raw RGB相關(guān)的RGB值都被稱為“場景相關(guān)的”(scene referred),而轉(zhuǎn)換到sRGB空間以后,就被稱為“輸出相關(guān)的”(output referred)。

9b5de0b8-b76b-11ee-8b88-92fbcf53809c.png

還要注意的是,sRGB色彩空間和JPEG正在慢慢被取代,sRGB是為了90年代的顯示器設(shè)計的,太過于古老了。JPEG也在逐步被壓縮率更高的HEIC編碼取代。蘋果設(shè)備上已經(jīng)開始用heic替代jpeg了,同時蘋果設(shè)備使用Display P3的色彩空間,它是一種數(shù)字電影提倡的DCI-P3空間的變體,比sRGB要大25%,也包含了伽馬變換。越來越多的安卓設(shè)備也會開始支持這個色彩空間。

再次強(qiáng)調(diào)一下,上面的這些步驟僅僅是一個指南,現(xiàn)代相機(jī)中的處理流程會更加復(fù)雜。對于不同品牌/型號的相機(jī),操作的順序可能會有不同,(如在去馬賽克之后再白平衡),操作的方法也可能不一樣(如把銳化和去馬賽克結(jié)合)。

而對于工業(yè)/機(jī)器視覺相機(jī),其ISP往往提供的是最小程度的處理,如有的只會進(jìn)行白平衡,再在raw RGB空間上進(jìn)行伽馬變換,因此很多時候輸出的圖像仍然在設(shè)備的色彩空間內(nèi)。

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 處理器
    +關(guān)注

    關(guān)注

    68

    文章

    19032

    瀏覽量

    228448
  • 圖像處理
    +關(guān)注

    關(guān)注

    27

    文章

    1272

    瀏覽量

    56500
  • 相機(jī)
    +關(guān)注

    關(guān)注

    4

    文章

    1317

    瀏覽量

    53365
  • 片上系統(tǒng)
    +關(guān)注

    關(guān)注

    0

    文章

    185

    瀏覽量

    26728

原文標(biāo)題:相機(jī)圖像處理過程

文章出處:【微信號:vision263com,微信公眾號:新機(jī)器視覺】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    求教labview圖像處理過程

    本人論文是用labview對CCD拍下的圖片進(jìn)行圖像處理,有木有大神可以告訴一下
    發(fā)表于 06-12 12:42

    vison assistant中的圖像處理過程

    新手求教!在vision assistant中驗證圖片時在圖像處理畫面可以看到圖像處理過程,但完成退回到labview中后,為什么在顯示的 圖片中看不到
    發(fā)表于 06-24 15:55

    用NI Vision Assistant生成的vi運(yùn)行時不顯示處理過程

    大家好,我最近在用vision assistant時遇到了問題,在assistant里處理過程可以顯示,但當(dāng)我選擇好要顯示的數(shù)據(jù),導(dǎo)出成vi后,這些選擇的測試數(shù)據(jù)是有的也是正常的,但是輸出圖像里沒有處理過程還是一張原始
    發(fā)表于 06-08 10:49

    ni vision assistant生成的VI圖像運(yùn)行時不顯示處理過程(就是圖像的抓取點(diǎn)這些東西)

    ni vision assistant生成的VI圖像運(yùn)行時不顯示處理過程(就是圖像的抓取點(diǎn)這些東西)
    發(fā)表于 04-18 09:22

    CMOS傳感器數(shù)碼相機(jī)是什么?

    使用一個35毫米的膠片來曝光和存儲圖像,而數(shù)碼相機(jī)的曝光采用CMOS傳感器,存儲照片使用內(nèi)置的閃存或可移動存儲卡。但這并不是全部,更復(fù)雜的問題來自于處理過程。CMOS傳感器由一個光電二極管陣列組成,當(dāng)拍
    發(fā)表于 09-23 06:36

    單片機(jī)中斷的處理過程是怎樣進(jìn)行的?

    單片機(jī)中斷系統(tǒng)的優(yōu)點(diǎn)是什么?單片機(jī)中斷的處理過程是怎樣進(jìn)行的?
    發(fā)表于 09-23 06:57

    CPU的內(nèi)部處理過程是怎樣的

    CPU是什么?CPU主要由哪幾部分構(gòu)成?CPU的內(nèi)部處理過程是怎樣的?
    發(fā)表于 10-19 09:21

    單片機(jī)中斷的作用是什么?處理過程是怎樣的?

    單片機(jī)中斷的作用是什么?處理過程是怎樣的?
    發(fā)表于 11-01 07:07

    污水處理過程儀表技術(shù)的研究現(xiàn)狀

    污水處理過程固有的非線性、時變性特征對傳感器的可靠性、適應(yīng)性提出了很高的要求。污水處理過程涉及多種傳感器,多數(shù)傳感器是污水處理過程所特有的,分別為人們提供所監(jiān)
    發(fā)表于 12-20 15:11 ?10次下載

    污水處理過程儀表技術(shù)的研究現(xiàn)狀

    污水處理過程固有的非線性、時變性特征對傳感器的可靠性、適應(yīng)性提出了很高的要求。污水處理過程涉及多種傳感器,多數(shù)傳感器是污水處理過程所特有的,分別為人們提供所監(jiān)
    發(fā)表于 01-07 15:39 ?15次下載

    數(shù)字電視的典型的處理過程

    典型的處理過程 下面介紹數(shù)字電視的幾個典型的處理過程。
    發(fā)表于 07-31 14:23 ?1471次閱讀
    數(shù)字電視的典型的<b class='flag-5'>處理過程</b>

    用MATLAB程序進(jìn)行圖像處理

    matlab進(jìn)行圖像處理過程方法指導(dǎo)...
    發(fā)表于 11-30 18:02 ?13次下載

    淺析單片機(jī)中斷處理過程

    中斷處理過程可分為中斷響應(yīng)、中斷處理和中斷返回三個階段。
    的頭像 發(fā)表于 11-06 14:31 ?1.7w次閱讀
    淺析單片機(jī)中斷<b class='flag-5'>處理過程</b>

    PCB前處理過程中有什么問題

    PCB前處理過程很大程度上影響到制程程序中進(jìn)展順利情況與制程的優(yōu)劣
    的頭像 發(fā)表于 04-10 17:47 ?2713次閱讀

    MATLAB圖像處理實(shí)例詳解

      一、 實(shí)驗?zāi)康模骸 ?. 熟悉圖像數(shù)據(jù)在計算機(jī)中的存儲方式;  2. 掌握圖像直方圖均衡化這一基本處理過程?! 《?、 實(shí)驗條件:  PC微機(jī)一臺和MATLAB軟件?! ∪?、 實(shí)驗內(nèi)容:  1.
    發(fā)表于 07-18 15:06 ?5次下載