ISP基本框架及算法介紹


ISP基本框架及算法介紹

      ISP(Image Signal Processor),即圖像處理,主要作用是對前端圖像傳感器輸出的信號做后期處理,主要功能有線性糾正、噪聲去除、壞點去除、內插、白平衡、自動曝光控制等,依賴於ISP才能在不同的光學條件下都能較好的還原現場細節,ISP技術在很大程度上決定了攝像機的成像質量。它可以分為獨立與集成兩種形式。

   

ISP 的Firmware 包含三部分,一部分是ISP 控制單元和基礎算法庫,一部分是AE/AWB/AF 算法庫,一部分是sensor 庫。Firmware 設計的基本思想是單獨提供3A 算法庫,由ISP 控制單元調度基礎算法庫和3A 算法庫,同時sensor 庫分別向ISP 基礎算法庫和3A 算法庫注冊函數回調,以實現差異化的sensor 適配。ISP firmware 架構如下圖所示。

不同的sensor 都以回調函數的形式,向ISP 算法庫注冊控制函數。ISP 控制單元調度基礎算法庫和3A 算法庫時,將通過這些回調函數獲取初始化參數,並控制sensor,如調節曝光時間、模擬增益、數字增益,控制lens 步進聚焦或旋轉光圈等。


1. TestPattern------測試圖像

    Test Pattern主要用來做測試用。不需要先在片上ROM存儲圖片數據,直接使用生成的測試圖像,用生成的測試圖像進行后續模塊的測試驗證。以下是常用的兩種測試圖像。


2. BLC(BlackLevel Correction)------黑電平校正

       Black Level 是用來定義圖像數據為 0 時對應的信號電平。由於暗電流的影響, 傳感器出來的實際原始數據並不是我們需要的黑平衡( 數據不為0) 。 所以,為減少暗電流對圖像信號的影響,可以采用的有效的方法是從已獲得的圖像信號中減去參考暗電流信號。一般情況下, 在傳感器中,實際像素要比有效像素多, 像素區頭幾行作為不感光區( 實際上, 這部分區域也做了 RGB 的 color filter) , 用於自動黑電平校正, 其平均值作為校正值, 然后在下面區域的像素都減去此矯正值, 那么就可以將黑電平矯正過來了。如下圖所示,左邊是做黑電平校正之前的圖像,右邊是做了黑電平校正之后的圖像。


3.LSC(Lens Shade Correction)------鏡頭陰影校正

     由於相機在成像距離較遠時,隨着視場角慢慢增大,能夠通過照相機鏡頭的斜光束將慢慢減少,從而使得獲得的圖像中間比較亮,邊緣比較暗,這個現象就是光學系統中的漸暈。由於漸暈現象帶來的圖像亮度不均會影響后續處理的准確性。因此從圖像傳感器輸出的數字信號必須先經過鏡頭矯正功能塊來消除漸暈給圖像帶來的影響。同時由於對於不同波長的光線透鏡的折射率並不相同,因此在圖像邊緣的地方,其R、G、B的值也會出現偏差,導致CA(chroma aberration)的出現,因此在矯正漸暈的同時也要考慮各個顏色通道的差異性。

    常用的鏡頭矯正的具體實現方法是,首先確定圖像中間亮度比較均勻的區域,該區域的像素不需要做矯正;以這個區域為中心,計算出各點由於衰減帶來的圖像變暗的速度,這樣就可以計算出相應R、G、B通道的補償因子(即增益)。下圖左邊圖像是未做鏡頭陰影校正的,右邊圖像是做了鏡頭陰影校正的。


 

4.DPC(Bad Point Correction)------壞點校正

     所謂壞點,是指像素陣列中與周圍像素點的變化表現出明顯不同的像素,因為圖像傳感器是成千上萬的元件工作在一起,因此出現壞點的概率很大。一般來講,壞點分為三類:第一類是死點,即一直表現為最暗值的點;第二類是亮點,即一直表現為最亮值的點:第三類是漂移點,就是變化規律與周圍像素明顯不同的像素點。由於圖像傳感器中CFA的應用,每個像素只能得到一種顏色信息,缺失的兩種顏色信息需要從周圍像素中得到。如果圖像中存在壞點的話,那么壞點會隨着顏色插補的過程往外擴散,直到影響整幅圖像。因此必須在顏色插補之前進行壞點的消除。


 

5.GB(Green Balance)------綠平衡

    由於感光器件制造工藝和電路問題,Gr,Gb數值存在差異,將出現格子迷宮現象可使用均值算法處理Gr,Gb通道存在的差異,同時保留高頻信息。

   另外一個說法是:

    Sensor芯片的Gr,Gb通道獲取的能量或者是輸出的數據不一致,造成這種情況的原因之一是Gr,GB通道的半導體制造工藝方面存在差異,另一方面是Microlens的存在,特別是sensor邊緣區域,GB,Gr因為有角度差異,導致接收到的光能不一致。如果兩者差異比較大,就會出現類似迷宮格子情況。主要是考慮G周圍的G的方法進行平均化


6.Denoise-----去除噪聲

    使用 cmos sensor 獲取圖像,光照程度和傳感器問題是生成圖像中大量噪聲的主要因素。同時, 當信號經過 ADC 時, 又會引入其他一些噪聲。 這些噪聲會使圖像整體變得模糊, 而且丟失很多細節, 所以需要對圖像進行去噪處理空間去噪傳統的方法有均值濾波、 高斯濾波等。

    但是, 一般的高斯濾波在進行采樣時主要考慮了像素間的空間距離關系, 並沒有考慮像素值之間的相似程度, 因此這樣得到的模糊結果通常是整張圖片一團模糊。 所以, 一般采用非線性去噪算法, 例如雙邊濾波器, 在采樣時不僅考慮像素在空間距離上的關系, 同時加入了像素間的相似程度考慮, 因而可以保持原始圖像的大體分塊, 進而保持邊緣。


 

7.Demosaic------顏色插值

    光線中主要包含三種顏色信息,即R、G、B。但是由於像素只能感應光的亮度,不能感應光的顏色,同時為了減小硬件和資源的消耗,必須要使用一個濾光層,使得每個像素點只能感應到一種顏色的光。目前主要應用的濾光層是bayer GRBG格式。如下圖所示:

    這樣,經過濾色板的作用之后,每個像素點只能感應到一種顏色。必須要找到一種方法來復原該像素點其它兩個通道的信息,尋找該點另外兩個通道的值的過程就是顏色插補的過程。由於圖像是連續變化的,因此一個像素點的R、G、B的值應該是與周圍的像素點相聯系的,因此可以利用其周圍像素點的值來獲得該點其它兩個通道的值。目前最常用的插補算法是利用該像素點周圍像素的平均值來計算該點的插補值。如下圖所示,左側是RAW域原始圖像,右側是經過插值之后的圖像。


 

8.AWB(Automatic White Balance)------自動白平衡

    人類視覺系統具有顏色恆常性的特點,因此人類對事物的觀察可以不受到光源顏色的影響。但是圖像傳感器本身並不具有這種顏色恆常性的特點,因此,其在不同光線下拍攝到的圖像,會受到光源顏色的影響而發生變化。例如在晴朗的天空下拍攝到的圖像可能偏藍,而在燭光下拍攝到的物體顏色會偏紅。因此,為了消除光源顏色對於圖像傳感器成像的影響,自動白平衡功能就是模擬了人類視覺系統的顏色恆常性特點來消除光源顏色對圖像的影響的。


 

9.CCM(Color Correction Matrix)------顏色校正

    顏色校正主要為了校正在濾光板處各顏色塊之間的顏色滲透帶來的顏色誤差。一般顏色校正的過程是首先利用該圖像傳感器拍攝到的圖像與標准圖像相比較,以此來計算得到一個校正矩陣。該矩陣就是該圖像傳感器的顏色校正矩陣。在該圖像傳感器應用的過程中,及可以利用該矩陣對該圖像傳感器所拍攝的所有圖像來進行校正,以獲得最接近於物體真實顏色的圖像。

    一般情況下,對顏色進行校正的過程,都會伴隨有對顏色飽和度的調整。顏色的飽和度是指色彩的純度,某色彩的純度越高,則其表現的就越鮮明;純度越低,表現的則比較黯淡。RGB三原色的飽和度越高,則可顯示的色彩范圍就越廣泛。


 

10.RGB Gamma------Gamma校正

    伽馬校正的最初起源是CRT屏幕的非線性,研究CRT電子槍的物理表明,電子槍的輸入電壓和輸出光之間滿足5.2冪函數關系,即熒光屏上顯示的亮度正比於輸入電壓的5/2次方,這個指數被稱為伽馬。這種關系源於陰極、光柵和電子束之間的靜電相互作用。由於對於輸入信號的發光灰度,不是線性函數,而是指數函數,因此必需校正。校正原理如下圖1-9所示:

    但是實際情況是,即便CRT顯示是線性的,伽馬校正依然是必須的,是因為人類視覺系統對於亮度的響應大致是成對數關系的,而不是線性的。人類視覺對低亮度變化的感覺比高亮度變化的感覺來的敏銳,當光強度小於1lux時,常人的視覺敏銳度會提高100倍t2118]。伽馬校正就是為了校正這種亮度的非線性關系引入的一種傳輸函數。校正過程就是對圖像的伽瑪曲線進行編輯,檢出圖像信號中的深色部分和淺色部分,並使兩者比例增大,從而提高圖像對比度效果,以對圖像進行非線性色調編輯。由於視覺環境和顯示設備特性的差異,伽馬一般取2.2~2.5之間的值。當用於校正的伽馬值大於1時,圖像較亮的部分被壓縮,較暗的部分被擴展;而伽馬值小於1時,情況則剛好相反。

    現在常用的伽馬校正是利用查表法來實現的,即首先根據一個伽馬值,將不同亮度范圍的理想輸出值在查找表中設定好,在處理圖像的時候,只需要根據輸入的亮度,既可以得到其理想的輸出值。在進行伽馬校正的同時,可以一定范圍的抑制圖像較暗部分的噪聲值,並提高圖像的對比度。還可以實現圖像現顯示精度的調整,比如從l0bit精度至8bit精度的調整。上圖分別是未做Gamma校正的,下圖是做了Gamma校正的。


 

11.RGBToYUV

    YUV 是一種基本色彩空間, 人眼對亮度改變的敏感性遠比對色彩變化大很多, 因此, 對於人眼而言, 亮度分量 Y 要比色度分量 U、 V 重要得多。 另外,YUV色彩空間分為YUV444,YUV422,YUV420等格式,這些格式有些比原始RGB圖像格式所需內存要小很多,這樣亮度分量和色度分量分別存儲之后,給視頻編碼壓縮圖像帶來一定好處。


 

12.WDR(Wide Dynamic Range)------寬動態

    動態范圍(Dynamic Range)是指攝像機支持的最大輸出信號和最小輸出信號的比值,或者說圖像最亮部分與最暗部分的灰度比值。普通攝像機的動態范圍一般在1:1000(60db)左右,而寬動態(Wide Dynamic Range,WDR)攝像機的動態范圍能達到1:1800-1:5600(65-75db)。

  寬動態技術主要用來解決攝像機在寬動態場景中采集的圖像出現亮區域過曝而暗區域曝光不夠的現象。簡而言之,寬動態技術可以使場景中特別亮的區域和特別暗的區域在最終成像中同時看清楚。


13.3DNR

         3dnr 是結合空域濾波和時域濾波的一種降噪算法。大概思路是檢測視頻的運動水平,更具運動水平的大小對圖像像素進行空域濾波和時域濾波的加權,之后輸出濾波之后的圖像。


 

14.Sharp------銳化

    CMOS輸入的圖像將引入各種噪聲,有隨機噪聲、量化噪聲、固定模式噪聲等。ISP降噪處理過程中,勢必將在降噪的同時,把一些圖像細節給消除了,導致圖像不夠清晰。為了消除降噪過程中對圖像細節的損失,需要對圖像進行銳化處理,還原圖像的相關細節。如下圖所示,左圖是未銳化的原始圖像,右圖是經過銳化之后的圖像。


15.AE(Automatic Exposure)----自動曝光

    不同場景下,光照的強度有着很大的差別。人眼有着自適應的能力因此可以很快的調整,使自己可以感應到合適的亮度。而圖像傳感器卻不具有這種自適應能力,因此必須使用自動曝光功能來確保拍攝的照片獲得准確的曝光從而具有合適的亮度。

    AE 模塊實現的功能是:根據自動測光系統獲得當前圖像的曝光量,再自動配置鏡頭光圈、sensor快門及增益來獲得最佳的圖像質量。自動曝光的算法主要分光圈優先、快門優先、增益優先。光圈優先時算法會優先調整光圈到合適的位置,再分配曝光時間和增益,只適合p-iris 鏡頭,這樣能均衡噪聲和景深。快門優先時算法會優先分配曝光時間,再分配sensor增益和ISP 增益,這樣拍攝的圖像噪聲會比較小。增益優先則是優先分配sensor增益和ISP 增益,再分配曝光時間,適合拍攝運動物體的場景。

    自動曝光的實現一般包括三個步驟:光強測量、場景分析和曝光補償。光強測量的過程是利用圖像的曝光信息來獲得當前光照信息的過程。按照統計方式的不同,分為全局統計,中央權重統計或者加權平均統計方式等。全局統計方式是指將圖像全部像素都統計進來,中央權重統計是指只統計圖像中間部分,這主要是因為通常情況下圖像的主體部分都位於圖像的中間部分;加權平均的統計方式是指將圖像分為不同的部分,每一部分賦予不同的權重,比如中間部分賦予最大權重,相應的邊緣部分則賦予較小的權重,這樣統計得到的結果會更加准確。場景分析是指為了獲得當前光照的特殊情況而進行的處理,比如有沒有背光照射或者正面強光等場景下。對這些信息的分析,可以提升圖像傳感器的易用性,並且能大幅度提高圖像的質量,這是自動曝光中最為關鍵的技術。目前常用的場景分析的技術主要有模糊邏輯和人工神經網絡算法。這些算法比起固定分區測光算法具有更高的可靠性,主要是因為在模糊規則制定或者神經網絡的訓練過程中已經考慮了各種不同光照條件。在完成了光強測量和場景分析之后,就要控制相應的參數使得曝光調節生效。主要是通過設定曝光時間和曝光增益來實現的。通過光強測量時得到的當前圖像的照度和增益值與目標亮度值的比較來獲得應該設置的曝光時間和增益調整量。在實際情況下,相機通常還會采用鏡頭的光圈/快門系統來增加感光的范圍。

    在進行曝光和增益調整的過程中,一般都是變步長來調整的,這樣可以提高調整的速度和精度。一般來講,增益和曝光的步長設定如下圖所示:

    從上圖中可以看出,在當前曝光量與目標量差別在range0以內的時候,說明當前曝光已經滿足要求,不需要進行調整;差別在rangel的范圍內時,則說明當前曝光與要求的光照有差別,但差別不大,只需要用較小的步長來進行調節即可;當差別在range2的時候,則表明差別較大,需要用較大步長來進行調節。在實現過程中還需要注意算法的收斂性。

       當計算出正確的亮度參數后,一般並不會讓其立刻在下一幀圖像就生效。這是因為如果增益變化較大,圖像就會產生閃爍,主觀感受不好。通常人們更喜歡畫面平滑過渡,因此每幀圖像的增益變化不宜過大。實現平滑的方法就是給新的參數人為施加一個阻尼,使其緩慢地向新參數過渡。用數學公式描述就是

g(n)= (1-s) * g(n-1) +s * g_target

  不妨取 s=0.2,此時每個g參數包含80%的舊參數和20%的目標參數,經過若干幀后舊參數自然衰減,新參數收斂到目標參數,即 g(n)=g_target

  從數學上看 (1-0.2)^10=0.1, (1-0.2)^30=0.001, 說明10幀之后(約0.3秒)舊參數的比重下降到10%,30幀之后(約1秒)舊參數的比重可忽略。對於典型的安防應用場景,一般建議經過8~16幀圖像過渡到理想亮度。而對於運動和車載型應用,由於場景動態變化大且快,一般建議經過3~4幀圖像過渡到理想亮度。


免責聲明!

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



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