方建榮,蘇 暢,周曉方,俞 軍,沈 磊
(1.上海復(fù)旦微電子集團(tuán)股份有限公司,上海200433;2.復(fù)旦大學(xué)專用集成電路與系統(tǒng)國家重點實驗室,上海200433)
·圖形圖像處理·
一種CMOS圖像傳感器信號處理自動白平衡算法
方建榮1,蘇 暢1,周曉方2,俞 軍2,沈 磊2
(1.上海復(fù)旦微電子集團(tuán)股份有限公司,上海200433;2.復(fù)旦大學(xué)專用集成電路與系統(tǒng)國家重點實驗室,上海200433)
針對常見白平衡算法存在色溫修正性不足或算法復(fù)雜度過高的問題,提出一種基于改進(jìn)的灰度世界算法、改進(jìn)的完美反射算法和單色算法相結(jié)合的三模互補(bǔ)自動白平衡算法。為完美反射算法增加色溫估計約束條件以增強(qiáng)色溫估計的精度,對灰度世界算法增加有效性判斷。結(jié)合完美反射算法和灰度世界算法各自的特點,以彌補(bǔ)單個算法的不足。單色算法利用色溫曲線排除單色場景,避免大片單色區(qū)域造成的白平衡失效。在一個CMOS圖像傳感器的信號處理過程中實現(xiàn)該算法。在不同色溫環(huán)境以及多種場景下進(jìn)行測試,結(jié)果表明該算法對圖像偏色有較好的校正效果和適應(yīng)性。
CMOS圖像傳感器;圖像信號處理算法;自動白平衡;完美反射;灰度世界;色溫曲線;單色
不同光源具有不同的光譜成分和分布,色度學(xué)上稱為色溫[1]。受光源的影響,白色物體在低色溫下偏紅,在高色溫下偏藍(lán)。在晴天、陰天、白熾燈或日光燈等實際生活的場景中,人看到的白色物體總是白色的,這是因為人眼視覺修正的結(jié)果。人腦對物體的顏色具有一定先驗知識[2],可依據(jù)值偵測并更正這種色差。對于CMOS圖像傳感器而言,沒有辦法直接修正這種色溫的改變,須依靠內(nèi)建的白平衡功能進(jìn)行調(diào)整。
近年來國內(nèi)外對于圖像白平衡算法做了大量研究。文獻(xiàn)[3]提出了一種基于色溫估計的自動白平衡算法,該算法的難點是色溫的劃分以及各個色溫下R/G和B/G范圍的確定。文獻(xiàn)[4]提出了基于Raw格式圖像的自動白平衡算法,該算法計算圖像的平均值和方差,并進(jìn)行開平方運算,需要消耗大量的運算資源。文獻(xiàn)[5]提出了一種基于邊緣檢測的圖像自動白平衡算法,該算法的缺點是需要一個圖像3倍大小的存儲器,消耗了大量存儲資源。文獻(xiàn)[6]提出了使用自適應(yīng)顏色樣本的自動白平衡算法,將數(shù)據(jù)從RGB空間轉(zhuǎn)換到Y(jié)CbCr空間計算色溫,然后又轉(zhuǎn)回到RGB空間計算增益,2次轉(zhuǎn)換損失了計算精度。文獻(xiàn)[7]提出了一種實時的自動白平衡算法,由后端處理器參與運算。
在CMOS圖像傳感器的圖像信號處理(Image Signal Processing,ISP)過程中實現(xiàn)自動白平衡,需要綜合考慮算法實現(xiàn)的可行性、資源消耗情況及白平衡的效果?;谝陨峡紤],本文提出一種自動白平衡算法。改進(jìn)的灰度世界算法相對于傳統(tǒng)灰度世界算法[8-9]增加了在YCbCr空間上色溫的有效性判斷,避免灰度世界算法在色彩不夠豐富的場景中失效。針對白點受色溫偏色的影響,改進(jìn)的完美反射算法相對于文獻(xiàn)[10-11]增加了Cb與Cr間的約束條件,提高了色溫估計的精度。另外擴(kuò)展了基于色溫曲線的自動白平衡算法[12]的使用算法,增加單色算法避免將單色圖像處理成灰色。
完美反射算法在白點足夠多的場景中能取得不錯的校正效果,但是接近膚色的顏色容易被誤當(dāng)成白點;物體光滑表面過度曝光的情況下調(diào)整效果也不盡人意。灰度世界算法在色彩豐富的場景中能取得較好的效果,但在場景中存在大量純色物體時,校正效果會出現(xiàn)偏差?;叶仁澜缢惴ㄅc完美反射算法是基于2種不同假設(shè)的算法,在其中一種算法失效時能夠很好地互補(bǔ)。圖1為2種算法的關(guān)系示意圖。
圖1 完美反射和灰度世界關(guān)系示意圖
灰度世界算法和完美反射算法能夠滿足大部分場景,但對于單色場景卻無能為力,此時不進(jìn)行白平衡處理反而是更好的選擇。為了能夠處理單色場景,增加了單色算法。
2.1 完美反射算法
文獻(xiàn)[8-9]提出了一個六面體模型用于白點選擇,該模型考慮了Y與Cb,Cr之間的相關(guān)性,當(dāng)Y為定值時,該模型實際上為正方形,沒有完全考慮白點受色溫影響產(chǎn)生的色偏現(xiàn)象。本文相對于文獻(xiàn)[8-9]增加了對Y上限值的限制,防止圖像中過度曝光點引入到白點統(tǒng)計中,如式(1)所示:
另外,針對白點受色溫影響產(chǎn)生的偏移,增加了色度信息Cb與Cr之間的約束關(guān)系,如式(2)所示:
其中,Angle1為第二象限的限制角度;Angle2為第四象限的限制角度;Bound1~Bound4分別為坐標(biāo)軸上的偏移值,改進(jìn)后的白點選擇區(qū)域如圖2所示。完美反射算法流程如圖3所示。
圖2 改進(jìn)的白點檢測區(qū)域
圖3 完美反射算法流程
根據(jù)式(1)、式(2)的約束條件統(tǒng)計圖像中的白點,若白點數(shù)量大于閾值則判定統(tǒng)計結(jié)果是可靠的,其次計算圖像的色溫和R,G,B通道的增益,最后將增益作用到下一幀圖像的R,G,B通道上從而完成色溫校正。
2.2 灰度世界算法
如果輸入圖像中出現(xiàn)大片單色區(qū)域的情況,會導(dǎo)致該顏色權(quán)重過大,造成灰度世界算法失效。因此,本文只選取R,G,B 3個通道值在一定范圍內(nèi)的點進(jìn)行色溫統(tǒng)計。另外消除亮度過暗的點和過度曝光的點對色溫估計的影響,選擇G通道作為亮度篩選通道。樣本點約束條件如式(3)所示:
其中,Gmin是暗點的約束條件;Gmax是過度曝光點的約束條件;θ為R,G,B的比例系數(shù)。
為了進(jìn)一步增強(qiáng)算法的適用性,在YCbCr空間對色溫進(jìn)行有效性判斷,如式(4)所示。首先計算滿足式(3)樣本點的圖像平均色溫Cbmean和Crmean,然后依據(jù)式(4)進(jìn)行有效性判斷。Cbmin,Cbmax是Cbmean的約束條件,Crmin,Crmax是Crmean的約束條件。
灰度世界算法流程如圖4所示。首先在RGB空間統(tǒng)計光源色溫,在YCbCr空間進(jìn)行色溫有效性判斷。然后計算R,G,B通道的增益。最后將增益作用到下一幀圖像的R,G,B通道上從而完成色溫校正。
圖4 灰度世界算法流程
2.3 單色算法
文獻(xiàn)[12]中色溫曲線用于白點選擇,本文擴(kuò)展了色溫曲線的用途,將色溫曲線用于圖像單色判斷。在標(biāo)準(zhǔn)色溫?zé)粝渲袑σ欢ㄉ珳胤秶ǎ? 000 K,13 000 K],間隔500 K)下的24色color chart中標(biāo)準(zhǔn)白色塊的R/G與B/G進(jìn)行了統(tǒng)計測試,并且利用統(tǒng)計得到的數(shù)據(jù)擬合色溫曲線y=5.16χ2-12.19χ+ 7.95,如圖5中實線所示。在色溫曲線附近定義單色塊的識別區(qū),如圖5中2條虛線之間的區(qū)域。該識別區(qū)的范圍可通過寄存器調(diào)整。單色塊遠(yuǎn)離該識別區(qū),而在識別區(qū)里的則認(rèn)為是白色塊。
圖5 色溫曲線
該算法將一幅圖像劃分為M×N個宏塊,如圖6所示。圖像大小和宏塊分割方法可通過寄存器配置,一方面易于硬件的移植,另一方面滿足所有圖像的判斷。
圖6 圖像劃分
首先計算每個宏塊中三通道的平均值R,G,B,然后計算R/G和B/G的比值,由B/G依據(jù)色溫曲線計算得到理想的R_o/G_o,比較R/G和R_o/G_o的關(guān)系,若R_o/G_o超出了R/G的一定比例,則判定該宏塊為單色,同時累計的單色宏塊數(shù)加1。當(dāng)圖像單色宏塊的數(shù)量達(dá)到一定閾值時,則判斷該圖像為單色圖像,整個算法不進(jìn)行白平衡調(diào)整。具體流程如圖7所示。
圖7 單色算法流程
2.4 三模切換控制
三模切換控制是單色算法、灰度世界算法和完美反射算法的控制核心,負(fù)責(zé)完成3種算法之間的自由切換。三模切換控制示意圖如圖8所示。共有IDLE,MC,PR,GW 4個狀態(tài)。IDLE為無效狀態(tài),MC為單色算法模式,PR為完美反射算法模式,GW為灰度世界算法模式。MC_en,PR_en,GW_en分別為單色算法模式、完美反射算法模式和灰度世界算法模式的有效控制信號。單色算法模式優(yōu)先級最高,完美反射算法模式次之,灰度世界算法模式的優(yōu)先級最低,各個模式之間可以自動切換。
圖8 三模切換控制
為了避免各個模式頻繁切換而導(dǎo)致視覺的差異性,各個模式中增加了退出與進(jìn)入的魯棒性設(shè)計。在單色算法模式中設(shè)置2個宏塊數(shù)量判斷的閾值,分別用于進(jìn)入單色算法模式和退出單色算法模式的判斷。在完美反射算法模式中,設(shè)置2個白點數(shù)量判斷的閾值,分別用于進(jìn)入完美反射算法模式和退出完美反射算法模式的判斷。
為了驗證本文算法的有效性,采用自行研發(fā)的CMOS圖像傳感器在標(biāo)準(zhǔn)色溫?zé)粝渲信臄z24色color chart樣本圖片和單色圖片,并使用Matlab構(gòu)建了其他算法的實驗環(huán)境,以實現(xiàn)對圖像數(shù)據(jù)的讀取和白平衡等操作。
實驗1為各個算法在D65色溫環(huán)境下調(diào)整的效果;實驗2為各個算法在TL83色溫環(huán)境下調(diào)整的效果;實驗3為各個算法在F色溫環(huán)境下調(diào)整的效果。各實驗調(diào)整效果如圖9~圖11所示。
圖9 實驗1調(diào)整效果
圖10 實驗2調(diào)整效果
圖11 實驗3調(diào)整效果
首先從主觀感受判斷,各個算法都對圖像進(jìn)行了白平衡調(diào)整,調(diào)整結(jié)果也基本滿足了主觀要求。其次從客觀角度進(jìn)行判斷,使用Imatest軟件對圖像進(jìn)行白平衡誤差分析,分析結(jié)果如表1所示,Gray19~Gray23分別對應(yīng)color chart中第19塊~第23塊的灰色塊。
表1 白平衡誤差ΔE
從表1中可以看出,雖然RGB最大值法和動態(tài)值法相較于原始圖像白平衡做了較大調(diào)整,但部分調(diào)整結(jié)果沒有達(dá)到Im atest的調(diào)整要求,而本文算法調(diào)整后的誤差都小于0.1,都達(dá)到了Imatest客觀分析的要求。另外文獻(xiàn)[13]提出了基于平均Cb,Cr的白平衡度量方法,白平衡值CSWB如式(5)所示:
其中,Car是圖像特定像素的Cb的平均值;Cab是圖像特定像素的Cr平均值,而特定像素指圖中(Cr/Cb)∈[-1.5,-0.5]的像素。CSWB值越小白平衡效果越好。表2為各個算法的白平衡值的計算結(jié)果。在中間色溫的情況下,本文算法的效果和動態(tài)值法差別不大,但在高色溫和低色溫的情況下,本文算法的優(yōu)勢更加明顯。在高色溫下提高了23%,在低色溫下提高了46%。
表2 各種算法的白平衡值
為了驗證本文算法對于單色場景的處理能力,分別在紅色、綠色、藍(lán)色占主導(dǎo)的場景中進(jìn)行了測試。各個算法的對比測試結(jié)果如圖12~圖14所示。
圖12 實驗4調(diào)整效果
圖13 實驗5調(diào)整效果
圖14 實驗6調(diào)整效果
實驗4為綠色場景,實驗5為紅色場景,實驗6為藍(lán)色場景。從各個算法的效果可以看出,RGB最大值法和動態(tài)值法在單色占主體顏色的場景下基本失效,而本文算法通過色溫曲線的判斷能夠正確識別單色場景,從而對圖像不做白平衡處理。
從以上圖像效果及數(shù)據(jù)可以看出,本文的三?;パa(bǔ)自動白平衡算法有很好的校正效果,可適用于不同的場景。
采用Verilog語言在A ltera的Cyclone IV E系列的器件EP4CE30F23C8L平臺上驗證了本文算法,并且在一個CMOS圖像傳感器中實現(xiàn)了該算法。硬件實現(xiàn)框架如圖15所示。為了減少硬件資源的開銷,在保證色溫估計準(zhǔn)確性的前提下,對輸入數(shù)據(jù)進(jìn)行了采樣,采樣的頻率可通過內(nèi)部寄存器設(shè)置,RGB轉(zhuǎn)YCbCr模塊將輸入的RGB數(shù)據(jù)轉(zhuǎn)換成YCbCr數(shù)據(jù)。單色算法模式在RGB色彩空間實現(xiàn),灰度世界算法模式在完美反射算法模式在YCbCr空間實現(xiàn),控制模塊是整個算法的狀態(tài)機(jī),根據(jù)數(shù)據(jù)的判斷決定采用哪種模式。
圖15 AW B總體架構(gòu)
頂層模塊的仿真波形如圖16所示。將色溫估計的增益GianR,GainG和GainB分別在R,G,B通道進(jìn)行增益運算處理,運算波形符合預(yù)計的算法約定。
圖16 AW B頂層模塊的仿真波形
本文提出了一種基于改進(jìn)的灰度世界、改進(jìn)的完美反射和單色算法相結(jié)合的三?;パa(bǔ)自動白平衡算法?;叶仁澜缢惴ê屯昝婪瓷渌惴ň哂谢パa(bǔ)的特性,兩者結(jié)合能夠處理大部分場景及色溫環(huán)境,且兩者硬件實現(xiàn)簡單,在CMOS圖像傳感器ISP中容易實現(xiàn),但都無法處理單色場景,因此,本文在此基礎(chǔ)上增加了單色處理算法。實驗結(jié)果表明本文提出的自動白平衡算法滿足主觀和客觀的要求。下一步工作可以在現(xiàn)有算法的基礎(chǔ)上繼續(xù)完善:單色算法可增加宏塊在圖像中的位置信息,為每個宏塊分配一定的權(quán)重比例;完美反射算法的白點檢測區(qū)域可按權(quán)重進(jìn)行劃分,使色溫估計更加精準(zhǔn),從而達(dá)到更佳的白平衡效果。
[1] Bilcu R C.Multiframe Auto White Balance[J].IEEE Signal Processing Letters,2011,18(3):165-168.
[2] Barnard K,Cardei V,F(xiàn)unt B.A Comparison of Computational Color Constancy Algorithms-Part II Methodology and Experiments with Synthesized Data[J].IEEE Transactions on Image Processing,2002,11(9):972-984.
[3] 王 敏.基于色溫估計自動白平衡算法研究和實現(xiàn)[D].天津:天津大學(xué),2011.
[4] 李 峰,印蔚蔚.基于Raw格式圖像的自動白平衡方法[J].計算機(jī)工程,2011,37(17):211-213.
[5] 張 鈺,姚素英,胡燕翔.一種基于邊緣檢測的圖像自動白平衡方法[J].光電子·激光,2008,19(6):804-807.
[6] Jang W,Son K,Kim J.Auto White Balance System Using Adaptive Color Samples for Mobile Devices[C]// Proceedings of IEEE Asia Pacific Conference on Circuits and Systems.Washington D.C.,USA:IEEE Press,2008.
[7] Zhang Buyue,Batur A U.A Real-time Auto White Balance Algorithm for Mobile Phone Cam eras[C]// Proceedings of IEEE International Conference on Consumer Electronics.Washington D.C.,USA:IEEE Press,2012:1-4.
[8] Huo Jun-Yan,Chang Yi-Lin,W ang Jing,et al.Robust Automatic White Balance Algorithm Using Gray Color Point in Im ages[J].IEEE Transactions on Consumer Electronics Society,2006,52(2):541-546.
[9] 周榮政,何 捷,洪志良.自適應(yīng)的數(shù)碼相機(jī)自動白平衡算法[J].計算機(jī)輔助設(shè)計與圖形學(xué)學(xué)報,2005,17(3):529-533.
[10] Chikane V,F(xiàn)uh Chiou-Shann.Automatic White Balance for Digital Still Camera[J].IEEE Journal of Information Science and Engineering,2006,30(22):497-509.
[11] Chen Chenglun,Lin Shaohua.Formulating and Solving a Class of Optimization Problem s for High-performance Gray World Automatic White Balance[J].App lied Soft Computing,2009,11(1):523-533.
[12] 金黃斌,自動白平衡算法研究及軟硬件實現(xiàn)[D].杭州:杭州電子科技大學(xué),2011.
[13] 趙全友,潘保昌.改進(jìn)的LoG邊緣自動白平衡算法[J].計算機(jī)應(yīng)用研究,2009,26(2):775-778.
編輯 顧逸斐
An Algorithm of Automatic White Balance for CMOS Image Sensor Signal Processing
FANG Jianrong1,SU Chang1,ZHOU Xiaofang2,YU Jun2,SHEN Lei2
(1.Shanghai Fudan Microelectronics Group Co.,Ltd.,Shanghai200433,China;2.State Key Laboratory of ASIC&System,F(xiàn)udan University,Shanghai 200433,China)
The common automatic white balance algorithm is lack of adaptability or too complicated.An automatic white balance algorithm based on improved gray world algorithm,improved perfect reflection algorithm and mono color algorithm is proposed.In order to enhance the precision of perfect reflection to increase color temperature estimation constraint conditions,the effectiveness of judgment is added on the gray world algorithm.The combination of perfect reflection and gray world algorithm makes up for the deficiency of the two algorithm s effectively.M ono color algorithm using color temperature avoids white balancemal function in the case of one color image.The algorithm is realized in the design of a CMOS image sensor Image Signal Processing(ISP).The test result under different light source and scene shows that the presented method can available adjust image color bias and has strong adaptability.
CMOS image sensor;Image Signal Processing(ISP)algorithm;automatic white balance;perfect reflection;gray world;color temperature curve;mono color
方建榮,蘇 暢,周曉方,等.一種CMOS圖像傳感器信號處理自動白平衡算法[J].計算機(jī)工程,2015,41(9):245-250.
英文引用格式:Fang Jianrong,Su Chang,Zhou Xiaofang,et al.An Algorithm of Automatic White Balance for CMOS Image Sensor Signal Processing[J].Computer Engineering,2015,41(9):245-250.
1000-3428(2015)09-0245-06
A
TP391.41
10.3969/j.issn.1000-3428.2015.09.045
上海市經(jīng)信委軟件和集成電路產(chǎn)業(yè)發(fā)展專項基金資助項目(130303)。
方建榮(1983-),男,碩士,主研方向:CMOS圖像傳感器;蘇 暢,碩士;周曉方,高級工程師;俞 軍,教授級高級工程師;沈 磊,高級工程師。
2014-09-22
2014-10-16 E-m ail:jianrong_fang@163.com