a一级爱做片免费观看欧美,久久国产一区二区,日本一二三区免费,久草视频手机在线观看

新聞中心

EEPW首頁 > 嵌入式系統 > 設計應用 > 基于FPGA的Bayer彩色自動白平衡設計與實現

基于FPGA的Bayer彩色自動白平衡設計與實現

作者: 時間:2017-06-05 來源:網絡 收藏

在不同的光源或者天氣條件下光譜特性是互不相同的,這被稱之為色溫。從物理意義上講,人們看到的物體之所以呈現出特定的顏色,是因為光線照向物體時,物體所反射的光在人眼視覺系統中呈現出這種特定的顏色。也就是說,能看到的物體顏色不僅取決于其反射特性,而且還和照向物體的光線有關系,如一張白紙在鎢絲燈下會偏橘黃色調,在熒光燈下會偏綠,而在日光下會有點偏藍。的目的就是自動調整不同色溫光照下圖像的三基色分量的比例,使其看上去和標準光源下拍攝的顏色一致。

目前在工程上應用的算法主要有全局白平衡算法和局部白平衡算法兩大類。全局白平衡算法以“灰度世界法”GWM(Gray World Method)為代表,其認為所拍攝的圖像有豐富的色彩變化,R、G和B三色分量的統計平均值應該相等,并以該均值作為白平衡校準的依據。局部白平衡算法以“鏡面法”PRM(Perfect Reflector Method)為代表,該算法認為一幅圖像中最亮像素點對應于光滑或者鏡子表面的物體,這樣的像素點最大限度反映了照射光線的光譜信息,對這部分點做色彩信息統計并作為色溫校正的依據。全局白平衡算法有較大的局限性,當場景過亮、過暗,或者色彩比較單一時,算法幾乎完全失效。局部白平衡算法的關鍵在于尋找參考白點,而在戶外拍攝的過程中,總是可以找到參考點的,文獻[1]、[2]、[3]介紹了幾種能精確尋找參考點的方法。
在工程上,需要對幀頻較高的原始視頻圖像做實時的白平衡恢復,而目前的方法,算法復雜,計算時間較長,難以實現對視頻流的實時處理。本文就針對以上問題,討論了一種在FPGA上實現的、對視頻流實時白平衡處理的自適應方法。

1 自動白平衡算法

在FPGA設計的過程中,采用局部白平衡的方法,主要有3個基本步驟:

(1)色溫估計

色溫估計是自動白平衡中最重要的一步,根據算法估計當前場景的色溫,給提供依據。文獻[1]利用“鏡面法”,嚴格控制Y、Cb和Cr三分量的關系,在YCbCr空間定義了一個六面體的區域,凡是落入該區域的點都可以作為參考白點。文獻[2]提出先對圖像的R、G和B三個分量分別作直方圖均衡化,然后將直方圖均衡化后的圖像轉換到YCbCr空間,對轉換后的Y分量進行邊沿檢測,在邊沿包含的各個區域中尋找滿足文獻[1]條件的區域,作為參考白點區域。選擇符合一定條件的區域而不是選擇符合一定條件的點,可以提高參考點選擇的準確性,但是直方圖均衡化處理本身存在灰度級“簡并”現象,這也是該文算法的不足。文獻[3]直接在原圖像的YCbCr空間,用LoG算子對Cb和Cr分別作色度邊緣提取,獲得的色度邊緣即為參考白點區域。綜合考慮參考點選擇的準確性和電路設計的難易程度,本文選用文獻[1]的方法選擇參考點。

(2)

是在色溫估計的基礎上,求取色溫修正系數的過程,主要有3種方法:
①查表法[1]。事先統計出一張表,記錄不同的色溫所對應的通道增益,具有速度快的優點。但由于表的容量有限,不能實現各種色溫情況的連續調節。
②平均值法。對于參考白點區域有R=G=B,即Cb和Cr的分量為零。得到各通道的增益如下:

本文引用地址:http://www.j9360.com/article/201706/349300.htm


③迭代法。設G通道的增益為常數1,R和B通道的增益分別為?自,?滋。迭代法根據參考白點區域Cb和Cr的關系,通過不斷地調節?滋和?自的值,便可得到各通道最終增益值。文獻[1]中提到的方法,在場景出現大量色塊時,容易出現色彩振蕩現象。本文在其基礎上做出了如下改進,增加對白點數目的判斷:判斷是否WhitePointNum>N,只有場景的白點數目大于閾值N時,才認為色溫估計有效,這樣能避免色溫估計無效時對修正系數的誤操作導致的色彩振蕩。增加了對當前色溫的判斷:判斷是否|Cb|+|Cr|M,如果小于閾值M,則認為修正后的圖像已經達到白平衡,不做增益調節。文獻[1]所示方法,只適應于相機的一次拍攝,而攝像機拍攝時間長,場景變化快,所以有必要對每幀或隔幾幀圖像做如圖1的處理,以應對場景色溫的變化。圖1中?滋和?自的初始值為常數1,λ為迭代步長。

(3)色溫校正

在獲得各顏色通道的增益量后,按照下面的等式對原圖像所有像素進行調整。

上述3種增益計算方法中,平均值法和查表法多用于對單張圖片處理,迭代法用于對連續圖片序列的處理。迭代法獲得的修正系數,用于下一幀圖像的色彩校正,每次色溫估計都是在色彩校正的基礎上進行的。

2 系統硬件結構

系統硬件結構如圖2所示。

目前彩色CCD相機,分為3CCD全色相機和單CCD Bayer彩色相機兩大類。全色相機中,光線被分光系統分為R、G和B三色光后,分別投向三塊CCD,這樣在信號輸出時就可以獲得每個像素的三基色信息。Bayer格式的CCD感光表面覆蓋有如圖3所示的CFA,CFA上每個格點僅允許通過一種顏色分量,使每個感光單元只產生一個分量的灰度值。要獲得每個像元的[r,g,b]信息,需要用到色彩空間插值。

Bayer CCD相機與全色相機相比,有價格相對便宜、要求進入光線的照度低、輸出幀頻高等優點,被廣泛應用于工程實踐中。本文所用的Bayer CCD相機有效像元數為1 024×1 024,幀頻為30 Hz,像素時鐘為45 MHz,像素位深度為8 bit,以Camera Link協議輸出。

Camera Link是專門為數字攝像機提出的一種工業級的高速數據連接與傳輸協議。采用LVDS(Low Voltage Differential Signaling)技術,使用較少的連線,卻能達到理論上最大1.923 G b/s的傳輸速率,并且傳輸距離比普通的傳輸方式更遠。Camera Link標準中包含Base、Medium、Full 3種規范,其中Base規范只需要一個26針的連接器即可實現。26 bit信號中包括:5對圖像數據信號(X0,X1,X2,X3,Xclk),X0~X3傳遞圖像數據,Xclk傳遞像素時鐘;4對相機控制線(CC1,CC2,CC3,CC4),相機制造商可以自由定義各控制信號的功能以滿足其特殊產品;2對異步串行通信信號線(SerTC,SerTFG),可用于相機和圖像采集卡之間的異步串行通信;2對屏蔽線,直接接地即可。在本文所述的系統只需要用到5對圖像數據信號線。

本文采用的Camera Link協議芯片為DS90CR288A和DS90CR287,最高工作頻率為85 MHz,能滿足系統設計要求。DS90CR288A把接收到的4路LVDS數據信號和1路LVDS時鐘信號,分別轉換為28 bit的CMOS/TTL并行數據和像素時鐘信號。4路LVDS數據線能傳遞28 bit數據,傳遞頻率是LVDS時鐘信號的7倍,最高可達595 MHz。28 bit數據中包括24 bit像素信號,1 bit幀同步信號(FVAL)、1 bit行同步信號(LVAL),1 bit數據有效信號(DVAL)和1 bit保留信號。在FPGA設計中,只需要應用幀、行同步信號,像素時鐘和有效的像素信號即可完成對圖像數據的處理。DS90CR287的工作過程和DS90CR288A相反,把數據和同步信號轉換為LVDS信號傳遞出去。

系統用的主芯片為Altera公司的Cyclone III系列芯片EP3C16Q240C8,其具有豐富的邏輯資源和觸發器資源,內嵌大量乘法器和豐富的RAM資源,特別適合時序操作和大量數據的并行運算。系統還用到容量2 MB的2塊SRAM,最短訪問周期10 ns,可以把處理后的圖像數據存于其中,供板上其他系統使用。

3 EDA設計

FPGA的設計采取自頂向下的模塊化設計方法,系統的一級框圖如圖4所示。

寫SRAM模塊根據幀、行同步信號、像素時鐘以及行、列偏移量,獲得有效像素的起止,把像素數據存入SRAM。白平衡處理過程就在寫SRAM模塊中完成。“雙向開關”由FVAL_In信號觸發,起到信號線切換的作用,完成乒乓操作。當寫SRAM模塊把數據寫入SRAM_A的同時,讀SRAM模塊從SRAM_B讀取數據,當寫SRAM模塊把數據寫入SRAM_B的同時,讀SRAM模塊從SRAM_A讀取數據。讀SRAM模塊讀取SRAM中的像素數據并以Camera Link 協議的形式傳出。從整體效果上看,數據能源源不斷地流過系統。

寫SRAM模塊中白平衡過程如圖5 所示。

電路中色溫校正模塊,色溫統計模塊和增益計算模塊連接形成一個負反饋回路,能根據場景色溫的變化,實時修正增益系數,使修正后的圖像穩定在白平衡狀態。

在色溫統計的過程中沒有必要對全平面像素做統計,為了編程和設計的方便,本文在每個4×4的塊中選兩點做色溫統計,如圖3中的(2,1)和(1,2)兩個點。在色彩空間轉換之前需要進行色彩插值,恢復待測像素的三原色數據[r,g,b],用線性插值法恢復的算法如下。


恢復每一個像素的[r,g,b]值,需要用到相鄰的3×3范圍的像素值,然而相機數據是逐行依次輸出的,所以必須暫存至少3行的像素值。本文引入一塊8 KB的DPRAM,可以存儲8行的像素信息。色溫校正模塊把數據寫入外部SRAM的同時也把數據存入了內部的DPRAM,存滿了8 KB的空間后,從地址0重新開始寫入。把DPRAM分為上下兩半頁,每存好半頁后, Bayer轉RGB模塊便從剛存的半頁中尋址,讀取數據,進行插值轉換。
用Quartus II設計的DPRAM宏模塊,如圖6所示。可以看出輸入DPRAM的信號都是在時鐘上升沿鎖存的,輸出不鎖存。訪問DPRAM以及完成插值過程可用“12狀態法”實現,如圖7所示。實驗仿真圖,如圖8所示。






時間分析:相機輸入4行數據的時鐘周期數至少為1 144×4=4 576 T,上述過程操作時間為:1 024/4×12=3 072 T,所以上述轉換過程能在色溫校正模塊填滿半頁DPRAM的時間內完成,且不會產生訪問DPRAM沖突。在滿足時間的條件下,可以尋址更多的點,采用更復雜的插值方法做轉換。

色溫統計模塊,在接收到轉換信號后,完成RGB到YCbCr色彩空間轉換,并把符合式(5)的點的Cb和Cr值累加,在一幀末的時候,完成除法運算,輸出滿足條件點的Cb和Cr的平均值以及Control信號。


4 實驗結果

在試驗的過程中參數(χ,α,β,γ,φ,M,N)分別設定為(120,30,30,50,100,8,2000)。圖9為在熒光燈下的偏綠圖像及其各通道直方圖,圖10為硬件白平衡后的圖像及其直方圖。圖11、圖12是戶外拍攝圖像及恢復的情況。

由圖9、圖10可以看出熒光燈下的物體偏綠,且G通道直方圖高灰度級的像素明顯多于其他通道。處理后的圖像視覺效果較好,各通道像素灰度級趨于均衡。通過實驗發現,處理后的圖像比原圖偏亮,這可以通過前級調光系統實現更好的處理效果。

本文分析了目前的自動白平衡算法,結合EDA設計的特點,對迭代法進行了改進,能有效抑制色彩振蕩。系統能根據場景色溫的變化,實時調整色溫修正系數,恢復場景的真實色彩。結合當前相機常用的Camera Link接口,在一塊芯片上實現了圖像預處理,減小了CPU運算負擔,系統功耗小,應用前景較好。



評論


相關推薦

技術專區

關閉