<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

相機圖像處理過程詳解

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

來源:視科儀器SCOCIE

相機圖像處理過程

在開始前介紹兩個知識點:

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

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

典型的圖像過程:

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

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

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

CMOS傳感器是相機中用于感受光的部分,幾乎所有的消費級相機的傳感器都是基于CMOS技術。

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

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

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

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

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

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

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

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

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

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

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

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

為了達到與設置相對應的ISO,相機會將接收到的信號進行增益,增益倍數越大,也就對光線越敏感——當然,也會對噪音越敏感。下圖展示了不同ISO設置下的效果(曝光時間進行了相應的調整)。

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

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

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

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

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

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

【RGB去馬賽克】

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

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

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

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

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

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

【降噪】

所有的傳感器都自帶噪音,大多數相機會在模數轉換后加入一個降噪。

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

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

噪音往往比較突兀,因此可以使用模糊來減小噪音。但模糊也會影響細節,因此考慮將去掉部分中信號較強的區域補回圖像(甚至會加強以后補回來)。

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

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

【白平衡以及色彩空間轉換】

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

我們希望把raw RGB這一依賴于設備的色彩空間轉換到一個無關設備的色彩空間里。在這里采用CIE XYZ為例子,實際上大多數相機會使用一個叫ProPhoto RGB的色彩空間。

轉換分為兩步,白平衡和色彩空間轉換。

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

但怎么定義白點呢?

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

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

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

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

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

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

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

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

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

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

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

基于這樣的假設,算法工作如下:

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

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

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

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

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

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

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

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

【顏色操作】

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

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

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

wKgZomWt37eALV2uAABZE--3jk4244.png

wKgZomWt36OAQo7eAADL5uJahcE063.png

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

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

【映射到sRGB輸出】

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

【JPEG壓縮】

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

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

DCT可以理解為對傅里葉變換的采樣,變換結果都是實數。傅里葉變換能夠將原本在時域的信號轉換到頻域上,對于圖像來說,就是將原本在空間上分布的像素值信號,轉變為不同頻率的二維三角函數的帶權重加和。同時結合一個經驗:低頻的信息要比高頻的信號更重要(可以想象一個低頻余弦和高頻余弦加和,結果就是一個長了毛刺的山坡——山坡的信息更為重要),從而進行一個量化的操作(相當于濾波),將更多低頻的信息保留,從而減小數值尺度的同時盡可能保留重要信息,這之后會再進行編碼,提取數據的特征存儲,從而實現更高的壓縮比例。

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

【保存成文件】

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

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

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

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

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

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

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

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 處理器
    +關注

    關注

    68

    文章

    18538

    瀏覽量

    223718
  • 圖像處理
    +關注

    關注

    26

    文章

    1238

    瀏覽量

    56042
  • 相機
    +關注

    關注

    4

    文章

    1266

    瀏覽量

    52720
  • 片上系統
    +關注

    關注

    0

    文章

    160

    瀏覽量

    26506

原文標題:相機圖像處理過程

文章出處:【微信號:vision263com,微信公眾號:新機器視覺】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    求教labview圖像處理過程

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

    vison assistant中的圖像處理過程

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

    用NI Vision Assistant生成的vi運行時不顯示處理過程

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

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

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

    單片機中斷的處理過程是怎樣進行的?

    單片機中斷系統的優點是什么?單片機中斷的處理過程是怎樣進行的?
    發表于 09-23 06:57

    CPU的內部處理過程是怎樣的

    CPU是什么?CPU主要由哪幾部分構成?CPU的內部處理過程是怎樣的?
    發表于 10-19 09:21

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

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

    污水處理過程儀表技術的研究現狀

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

    污水處理過程儀表技術的研究現狀

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

    數字電視的典型的處理過程

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

    用MATLAB程序進行圖像處理

    matlab進行圖像處理過程方法指導...
    發表于 11-30 18:02 ?13次下載

    淺析單片機中斷處理過程

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

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

    PCB前處理過程很大程度上影響到制程程序中進展順利情況與制程的優劣
    的頭像 發表于 04-10 17:47 ?2537次閱讀

    Vulkan圖形處理過程中遇到的問題

    在本篇文章中,我們將提到Vulkan 圖形處理過程中夾雜計算任務時遇到的各式問題。為更準確地了解我們的話題,可查看文章第一部分。
    的頭像 發表于 09-04 11:45 ?2251次閱讀

    MATLAB圖像處理實例詳解

      一、 實驗目的:  1. 熟悉圖像數據在計算機中的存儲方式;  2. 掌握圖像直方圖均衡化這一基本處理過程?! 《?、 實驗條件:  PC微機一臺和MATLAB軟件?! ∪?、 實驗內容:  1.
    發表于 07-18 15:06 ?5次下載
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>