董國偉 侯作勛 王震 潘錚 劉明 關晨輝
?
CMOS圖像傳感器自動白平衡算法及其FPGA實現
董國偉 侯作勛 王震 潘錚 劉明 關晨輝
(北京空間機電研究所,北京100094)
為提高圖像處理效果和處理速度,使處理后圖像顏色與人眼視覺主觀感受到的顏色保持一致,文章提出了一種改進的自動白平衡算法。該方法以灰度世界法和全反射理論法為基礎,通過自動評估圖像的色彩豐富性并確定相應的規則動態選取優勢算法進行處理。設計實現了相應的FPGA處理模塊,通過采用高效的并行流水線技術,充分考慮硬件模塊內部潛在的并行度,確保系統的實時處理能力。文章算法的優勢在于對圖像的自適應性和計算的快速性。對不同場景圖像,該方法產生不同的閾值參數,進而選取不同的優勢算法,確保系統的自適應性;對高速視頻圖像,該方法建立了一個簡化的優勢算法選取規則,有利于FPGA硬件電路的實現,從而保證了計算的快速性。仿真試驗表明,基于該算法設計實現的FPGA硬件處理系統,對不同的場景均取得較好的處理效果,針對分辨率為1920像元×1080像元的視頻圖像,達到了優于25幀/s的實時處理速度。該算法硬件電路開銷少,實時性好,適應性強,能有效提高圖像品質,具有廣闊的應用前景。
圖像傳感器 自動白平衡算法 現場可編程門陣列 航天遙感
CMOS圖像傳感器具有集成度高、成本低、動態范圍寬、功耗小,以及抗彌散、抗輻照能力強等優越性能[1]。因此,不僅被廣泛應用于安防監控、工業測量等領域,而且被越來越多的應用于遙感相機、星敏感器、可視遙測、目標跟蹤等空間光學系統中[2],隨著CMOS工藝的發展,CMOS圖像傳感器芯片的集成度不斷提高,基于CMOS傳感器設計的相機已成為市場的主流產品[3]。
數字圖像處理包括圖像插值、白平衡、YUV變換、圖像增強等[4-5]。白平衡的作用是自動調節在不同色溫光照條件下拍攝圖像的顏色,使得這些圖像的視覺主觀感受和標準光源下拍攝的圖像一致[6]。現有的白平衡算法包括:灰度世界算法(Gray World Method,GWM)[7]、全反射理論算法(Perfect Reflector Method,PRM)[7]、GWM和PRM正交組合算法(Quadratic Combining GWM & PRM,QCGP)[7]、模糊規則算法(Fuzzy Rule Method,FRM)[8]、Chikane算法[9]及文獻[10-11]的算法等。其處理效果嚴重依賴于相應算法的運算復雜度。由于應用于CMOS相機系統中的實時圖像處理算法需要采用嵌入式硬件電路實現,因此需要在圖像處理效果、運算時間與計算復雜度等方面進行綜合考慮。在較小硬件開銷的前提下,如何提高圖像處理速度和圖像品質是硬件友好型圖像處理算法的關鍵所在[12]。
本文提出一種基于GWM算法和PRM算法融合的改進算法。目前QCGP算法利用二次方程式把GWM算法和PRM算法結合,既可以對圖像進行白平衡色彩修正且效果不錯,又能保留兩種算法理論的優點。但是由于計算復雜度高,實時性受到制約。本文面向CMOS圖像傳感器應用,設計一種適合FPGA實現的改進型實時自動白平衡算法。通過對GWM算法和PRM算法改進和融合,在適當增加硬件開銷的基礎上,有效提高了系統的處理速度和白平衡處理效果。
作為本文提出算法的基礎,有必要對于GWM、PRM和QCGP算法進行簡要介紹。
1.1 常用GWM、PRM和QCGP算法
任意一幅圖像,當它有足夠的色彩變化,則它的紅R、綠G、藍B的DN(Digital Number)均值會趨于一致。這是自動白平衡算法設計時普遍采納的的基礎理論。基于這一理論假設,GWM算法思路是統計出圖像中紅綠藍三分量DN均值,找到合適的計算方法使三個均值趨于相等。GWM算法思路簡單易于實現,但是當圖像中色彩不豐富時,該算法往往會導致圖像失真。
PRM算法也是在自動白平衡處理時廣泛應用的理論。該理論認為將圖像上“最亮點”作為參考“白點”,并進行相應的白平衡處理可以取得較好的處理效果。實際應用時,一般將“最亮點”定義為三個顏色分量DN值之和的最大值,或者YCbCr(Y表示亮度,Cb、Cr表示色度)空間中的Y最大值。PRM算法具有與GWM算法相同的優點,簡單易實現,但是當圖像的部分區域出現過度曝光時,可能造成該算法失效。實際應用時,僅使用一個點作為參考,其處理效果往往不甚理想。一種改進的方法是選取圖像上最亮部分的均值作為參考進行圖像自動白平衡處理,例如,計算圖像中亮度前20%部分的均值作為參考值[7]。
無論是PRM算法還是GWM算法,都需要圖像滿足兩種算法各自的假設,只有這樣效果才比較理想。如果把這兩種算法的優點組合使用,就能得到一種更好的算法,QCGP算法利用二次方程式把GWM算法和PRM算法結合,既可以對圖像進行白平衡色彩修正且效果不錯,又能保留兩種算法理論的優點。
1.2 本文算法
分析比較可知,GWM算法和PRM算法均存在固有問題。當圖像中色彩不豐富時,采用GWM算法進行處理往往會導致圖像失真;而當圖像的部分區域出現過度曝光時,采用PRM算法進行處理可能失效。而QCGP算法雖然綜合利用了兩種算法的優點,但是由于其算法相對復雜,對于百萬像素的實時圖像數據,其計算時間長,難以滿足實時性要求。
針對上述白平衡算法的固有問題,本文提出了一種改進的自動白平衡算法。通過判斷圖像的均值色差cd,動態選用GWM算法或PRM算法。
圖像均值色差定義如下式所示:
式中 Max(a1,a1,a1)、Min(a1,a1,a1)表示圖像紅、綠、藍DN均值a1、a1、a1的最大值和最小值。
均值色差可以表示圖像色彩豐富度,cd值大,說明紅、綠、藍中的某一色偏多,算法選擇上,使用接近于PRM算法的自動白平衡算法進行處理;cd值小,說明紅、綠、藍三色相當,使用接近于GWM算法的自動白平衡算法進行處理。
算法選擇及接近程度通過閾值參數v來確定,其與cd的關系如下式所示:
式中a=Max(a1,a1,a1);i=Min(a1,a1,a1)。經過多次實驗,當cd≥2,即算法選擇接近PRM算法時,v在60至220區間能夠取得好的效果;當1.5≤cd<2,即算法選擇在PRM算法與GWM算法間過度時,v在40至200區間能夠取得好的效果。
根據閾值參數v,選取圖像中紅、綠、藍DN值同時大于v的像素點作為選取樣點。
v值越大,選取樣點數越少,本文算法與PRM算法接近程度越大;v值越小,選取樣點數越多,本文算法與GWM算法接近程度越大。
統計選取樣點圖像中紅、綠、藍DN均值a2、a2、a2,來確定調整系數、、。確定公式為:
=n/a2;=n/a2;=n/a2(3)
式中n=(a2+a2+a2)/3。
最后偏色校正,對圖像數據中顏色分量數據進行調整,公式如下:
式中′、′、′為白平衡后圖像的三個顏色分量數據。
為了有效提高時序,降低延時,便于優化升級。在FPGA設計時采用模塊化設計方法[13-14],在模塊實現時,采用并行算法和流水線技術[15-17]。FPGA采用Xilinx公司Virtex-2系列XQR2V3000型號芯片。
圖1為CMOS相機FPGA圖像處理系統的總體框圖,其中自動白平衡模塊處于系統的核心位置,并在圖中以灰框標出。

圖1 CMOS相機FPGA圖像處理系統總體框圖
圖2給出了自動白平衡模塊的結構圖。該模塊按照功能劃分為三個子模塊,分別是色溫估計、增益計算和偏色校正子模塊。
其中,色溫估計子模塊統計輸入圖像數據信息,計算出均值色差cd和閾值參數v;增益計算子模塊對圖像數據再次統計,選出樣點和確定調整系數、、;偏色校正子模塊是根據調整系數、、對圖像數據進行校正,輸出校正后的白平衡圖像。

圖2 自動白平衡模塊結構圖
在計算閾值參數時,需要統計整幅圖像信息。確定調整系數時,同樣要統計相同圖像信息,因此,會出現滯后現象,即本幅圖像用的閾值參數v,是上一幅圖像計算出來的。為了有效解決這一問題,在設計時,單獨把色溫估計子模塊置于前端數據流中,即緊鄰CMOS驅動模塊。經過該結構調整,當計算出閾值參數v時,圖像數據恰好存入SDRAM中;而當圖像數據從SDRAM中讀出時,這幅圖像的閾值參數v已送入后面的增益計算模塊中,調整和細化后的電路結構如圖3所示。

圖3 改進的自動白平衡模塊結構框圖
電路結構調整后,由于CMOS驅動模塊輸出的是Bayer格式圖像,而非插值后的彩色圖像,因此,色溫估計子模塊在統計圖像信息時,需要以2×2塊作為一個紅綠藍像素單元進行統計。Bayer格式圖像2×2塊中包含了1個紅色分量、2個綠色分量和1個藍色分量,其中2個綠色分量取均值作為該像素單元的綠色分量。本文圖像分辨率為1920像元×1080像元,以2×2塊為紅綠藍像素單元,實際統計像素為960像元×540像元。
色溫估計子模塊中,統計均值功能實現時,電路采用并行結構設計,把2×2塊像素單元中的紅綠藍分量分離開來,分成三路并行處理;每路數據都是對整幅圖像進行統計均值,因此需要高位寬累加器和除法器,高位寬器件會加大系統延時,為減少延時,采用按行統計均值的思想,先計算出行均值,再對行均值累加,求出整幅圖像的均值。由于圖像數據是連續輸入的,為了實時計算,累加器和除法器采用流水線技術,以累加器為例,圖4給出了三級流水線設計的累加器電路圖,實現=+累加和運算,其中為8bit,為30bit;均值色差功能電路用于統計三均值(a1、a1和a1)的最大值a和最小值i。a與i的比值為均值色差cd,為滿足精度要求和避免小數運算,電路設計上采用先乘后除的思路,而乘法采用移位操作,這樣減少了硬件開銷,左移4bit,計算出的值相當于cd乘16;閾值產生功能電路實現了式(2)的邏輯運算,對cd值所在區間進行判斷,為避免產生大的組合邏輯而影響時序,先用寄存器產生相應的標志位,再根據標志位、最大值和最小值,選擇出閾值v。

圖4 累加器電路圖
增益計算子模塊中,在樣點選取功能電路實現時,采用并行結構,分四路并行處理,前三路為樣點像元DN值統計,后一路為樣點數統計。先選取圖像中紅、綠、藍DN值都大于v的像元作為樣點,然后對所有樣點進行累加,計算出均值a2、a2和a2;增益產生功能電路實現了對應式(3)的數值計算。首先計算出n=(a2+a2+a2)/3;后計算出、和。同樣為提高精度和避免小數運算,電路中n左移10bit,使計算出的結果、和放大1023倍,有效位精確到小數點后三位。
偏色校正子模塊中,電路設計采用并行結構和流水線技術,分三路進行偏色校正。由于每路都要實現連續乘法運算,為提高實時性,專門設計了一個四級流水線乘法器,用移位和加法操作來實現實時乘法運算,節省了硬件資源,其電路圖如圖5所示,圖中實現=×運算,其中為16bit,為8bit,為24bit。LS表示向左移位操作,LS后數字表示左移位數,來自信號,為8bit位寬,每2bit為一個選擇器的選擇信號。
以上電路實現采用同步化設計[18],系統時鐘為80MHz,統一時鐘上升沿采樣。系統延時有兩部分組成,一是從CMOS傳感器讀出圖像數據并存儲到外部SDRAM中的時間;二是從外部SDRAM按行讀出圖像數據并實時處理的時間。本文這兩部分時間分別是11ms和27ms,這兩部分時間之和為最小幀周期38ms,因此最大幀頻為26.3幀/s。

圖5 乘法器電路圖
為了驗證算法的有效性,本文進行了多項測試:1)對多種不同色彩的圖像進行測試,并對各種白平衡算法進行對比;2)統計圖像的信息,并對各種白平衡算法進行比較;3)對CMOS相機系統進行實際測試,驗證圖像自動白平衡算法效果。
為了驗證算法的魯棒性,每項測試均選取不同類型圖像進行多次測試。下面以其中的兩幅圖像為例進行分析說明。
圖6和圖7分別為色彩豐富和色彩單一場景圖像的處理效果,其中(a)為原始圖像,(b)、(c)、(d)和(e)分別為GWM算法、PRM算法、QCGP算法和本文算法白平衡后的圖像。

圖6 色彩豐富圖像自動白平衡算法對比

圖7 色彩單一圖像自動白平衡算法對比
比較可知,圖6中,GWM算法和本文提出算法的處理效果較好,QCGP算法次之,PRM算法效果差。造成PRM算法效果差的原因是圖像中有部分區域出現過曝光。圖7中,本文算法和PRM算法效果最好,QCGP算法次之,GWM算法失效。
由對比驗證可知,本文算法兼具了GWM算法和PRM算法的優勢。
由于本文的白平衡算法是在RGB域中進行處理的,因此專門統計了經四種算法處理后圖像的RGB均值,如表1所示。同時也給出了本文算法處理過程中的樣點均值和調整系數,如表2所示。
表1 圖像均值對比表

Tab.1 Comparison of mean values of images
表2樣點均值及調整系數

Tab.2 Mean value of sampling points and modulation coefficients
從表1中可以看出,在色彩豐富的圖6中,本文算法與GWM算法的RGB均值接近;在色彩單一的圖7中,本文算法與PRM算法的RGB均值接近。從而驗證了算法效果在圖像色彩豐富時,接近GWM算法;在圖像色彩不豐富時,接近于PRM算法。
圖8和圖9為本文提出的算法對一般自然場景測試時的處理效果。圖中,(a)為白平衡前圖像,(b)為白平衡后的圖像。

(a)白平衡前圖像 (b)白平衡后圖像
(a)Image before auto white balance proccessing (b)Image after auto white balance proccessing
圖8 CMOS相機室外圖像
Fig.8 Outdoor images by CMOS camera

(a)白平衡前圖像 (b)白平衡后圖像
(a)Image before auto white balance proccessing (b)Image after auto white balance proccessing
圖9 CMOS相機室內圖像
Fig.9 Indoor images by CMOS camera
由圖可知,本文實現的圖像自動白平衡算法,在實際測試時,無論是室內還是室外,都取得比較好的效果。
本文提出了一種基于圖像色彩豐富度評估的自動白平衡算法,在RGB彩色空間域中,綜合利用了GWM算法和PRM算法的優勢,進而通過FPGA實現了上述算法,通過高效的并行流水線技術,同時充分考慮硬件模塊內部的潛在并行度,滿足了系統的實時性要求。在圖像分辨率為1920像元×1080像元的情況下,處理幀頻大于等于25幀/s。該算法硬件開銷少,實時性好,適應性強,能有效提高圖像品質,具有廣闊的應用前景。
[1] 王軍, 李國宏. CMOS圖像傳感器在航天遙感中的應用[J]. 航天返回與遙感, 2008, 29(2): 42-47. WANG Jun, LI Guohong. The Application of CMOS Image Sensor in Space Remote Sensing[J]. Spacecraft Recovery & Remote sensing, 2008, 29(2): 42-47. (in Chinese)
[2] 尤政, 李濤. CMOS 圖像傳感器在空間技術中的應用[J]. 光學技術, 2002, 28(1): 31-35. YOU Zheng, LI Tao. Application of CMOS Image Sensor in Space Technology[J]. Optical Technique, 2002, 28(1): 31-35. (in Chinese)
[3] KLEINFELDER S. High-speed, High-sensitivity, Low-noise Scientific CMOS Image Sensors[C]//Microelectronics: Design, Technology, and Packaging. Perth, Australia: SPIE, 2003: 194-205.
[4] BILCU R C. Multiframe Auto White Balance[J]. Signal Processing Letters IEEE, 2011, 18(3): 165-168.
[5] 郭惠楠, 曹劍中, 周祚峰, 等. 彩色數字圖像色彩平衡的客觀性評價方法[J]. 紅外與激光工程, 2013, 42(z1): 214-218. GUO Huinan, CAO Jianzhong, ZHOU Zuofeng, et al. Objective Evaluation Approach of Color Balance for Colorful Digital Image [J]. Infrared and Laser Engineering, 2013, 42(z1): 214-218. (in Chinese)
[6] VUONG Q K, YUN S H, KIM S. A New Auto Exposure and Auto White-Balance Algorithm to Detect High Dynamic Range Conditions Using CMOS Technology[C]//Proceedings of the World Congress on Engineering and Computer Science 2008, San Francisco, October 22-24, 2008.
[7] LIU Y C, CHAN W H, CHEN Y Q. Automatic White Balance for Digital Still Camera[J]. IEEE Transactions on Consumer Electronics, 1995, 41(3): 460-466.
[8] WANG J, LIU Y, LIU F, et al. A Method of Automatic White Balance Using Fuzzy Logic[C]//IEEE Circuits and Systems Society. The 2000 IEEE Asia-Pacific Conference on Circuits and Systems, Tianjin, China: IEEE, 2000: 615-617. DOI: 10.1109/APCCAS.2000:913576.
[9] CHEN C L, LIN S H. Formulating and Solving a Class of Optimization Problems for High-performance Gray World Automatic White Balance[J]. Applied Soft Computing, 2011, 11(1): 523-533.
[10] WENG C C, CHEN H, FUH C S. A Novel Automatic White Balance Method for Digital Still Cameras[J]. Images & Recognition, 2006, 4(12): 3801-3804.
[11] LIN J. An Automatic White Balance Method Based on Edge Detection[C]//Alexander Belozertsev. 2006 IEEE International Symposium on Consumer Electronics. St. Petersburg, Russia: IEEE. 2006: 1-4.
[12] 王敏, 李斌橋, 徐江濤. 基于色溫估計的自動白平衡算法研究[J]. 光電子·激光, 2011(12): 1872-1875. WANG Min, LI Binqiao, XU Jiangtao. Auto White Balance Algorithm Based on Color-temperature Estimation[J]. Journal of Optoelectronics·Laser, 2011(12): 1872-1875. (in Chinese)
[13] GENOVESE M, NAPOLI E. ASIC and FPGA Implementation of the Gaussian Mixture Model Algorithm for Real-time Segmentation of High Definition Video[J]. IEEE Transactions on Very Large Scale Integration Systems, 2013, 22(3): 537-547.
[14] 楊會玲, 王軍, 楊會偉. 高幀頻CMOS實時圖像采集系統設計[J]. 微計算機信息, 2008, 24(30): 309-311. YANG Huiling, WANG Jun, YANG Huiwei. Design of High Frame Frequency CMOS Real-time Image Acquisition System[J]. Microcomputer Information, 2008, 24(30): 309-311. (in Chinese)
[15] 陳必威, 梁志毅, 王延新, 等. 基于FPGA的高幀速CMOS成像系統設計[J]. 計算機測量與控制, 2012, 20(5): 1397-1400. CHEN Biwei, LIANG Zhiyi, WANG Yanxin, et a1. Design of a High Speed CMOS Imaging System Based on FPGA[J]. Computer Measurement & Control, 2012, 20(5): 1397-1400. (in Chinese)
[16] 陳國柱, 劉濤, 李元宗. 基于FPGA的圖像采集與存儲系統的設計[J]. 機械工程與自動化, 2007(4): 44-46. CHEN Guozhu, LIU Tao, LI Yuanzong. Design of Image Sampling and Storage System Based on FPGA[J]. Mechanical Engineering & Automation, 2007(4): 44-46. (in Chinese)
[17] 王建華, 劉纏牢, 陳大川, 等. 基于DSP+FPGA技術的實時視頻采集系統的設計[J]. 國外電子測量技術, 2007, 26(9): 42-44. WANG Jianhua, LIU Chanlao, CHEN Dachuan, et al. Design of Real-time Video Processing System Based on DSP+FPGA[J]. Foreign Electronic Measurement Technology, 2007, 26(9): 42-44. (in Chinese)
[18] DIAZ J, ROS E, PELAYO F, et al. FPGA Based Real-time Optical-flow System[J]. IEEE Transactions on Circuits & Systems for Video Technology, 2006, 16(2): 274-279.
Design and FPGA Implementation of Auto White Balance Method for CMOS Image Sensor
DONG Guowei HOU Zuoxun WANG Zhen PAN Zheng LIU Ming GUAN Chenhui
(Beijing Institute of Space Mechanics & Electricity, Beijing 100094, China)
In order to improve image processing quality and boost processing rate so that the processed images? colors become as same as the colors of human vision feeling, the paper proposes a kind of improved auto white balance method for CMOS camera image processing system. The proposed method is based on the gray world method and the perfect reflector method, and it can choose the proper method between the above two methods automatically by estimating the richness of color in the images. The corresponding FPGA processing modules are designed to implement the methods. Especially, the high-performance parallel pipelined technology and the inner potential parallel processing ability of the modules ensure the real-time processing ability of the complete camera system. The advantages of method mentioned in this article are adaptability and fast processing rate. This method has different threshold parameters for different scenes with appropriate algorithm for each scene to ensure adaptability. Also, it set up a simplified algorithm selecting rules for high speed video whose hardware is easier to implement on FPGA which can guarantee faster processing rate. The simulations and the experiments show that the FPGA system implemented the proposed method can achieve the good processing performance in different sceneries and it can process the 1920×1080 image resolution videos at a speed of 25 fps. This method with high real-time performance and strong adaptability and less cost on hardware as well would have wide prospect on imaging processing field.
image sensor; auto white balance method; field-programmable gate array; space remote sensing
(編輯:龐冰)
TN2
A
1009-8518(2016)03-0082-09
10.3969/j.issn.1009-8518.2016.03.010
董國偉,男,1982年生,2010年獲東北大學控制理論與控制工程專業碩士學位,工程師,研究方向為遙感相機視頻電子學設計。E-mail:dgw1230@126.com。
2016-03-02