新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于FPGA的Bayer彩色自動白平衡設(shè)計與實現(xiàn)

基于FPGA的Bayer彩色自動白平衡設(shè)計與實現(xiàn)

作者: 時間:2017-06-05 來源:網(wǎng)絡(luò) 收藏

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

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

1 自動白平衡算法

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

(1)色溫估計

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

(2)

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

本文引用地址:http://butianyuan.cn/article/201706/349300.htm


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

(3)色溫校正

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

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

2 系統(tǒng)硬件結(jié)構(gòu)

系統(tǒng)硬件結(jié)構(gòu)如圖2所示。

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

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

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

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

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

3 EDA設(shè)計

FPGA的設(shè)計采取自頂向下的模塊化設(shè)計方法,系統(tǒng)的一級框圖如圖4所示。

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

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

電路中色溫校正模塊,色溫統(tǒng)計模塊和增益計算模塊連接形成一個負(fù)反饋回路,能根據(jù)場景色溫的變化,實時修正增益系數(shù),使修正后的圖像穩(wěn)定在白平衡狀態(tài)。

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


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






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

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


4 實驗結(jié)果

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

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

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



評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉