徐 淵,周清海,張 智,朱明程
深圳大學(xué)信息工程學(xué)院EDA技術(shù)中心,深圳518060
在全景視頻、高清監(jiān)控、機器視覺及網(wǎng)絡(luò)攝像等數(shù)字視頻圖像應(yīng)用領(lǐng)域,視頻圖像的實時處理速度要求越來越高.傳統(tǒng)的視頻圖像處理模式——電荷藕合器件(charge coupled device,CCD)+圖像格式轉(zhuǎn)換芯片+數(shù)字信號處理(digital signal processing,DSP),已不適應(yīng)上述領(lǐng)域的發(fā)展要求[1].FPGA相對于DSP,具有電路設(shè)計靈活、并行處理及速度高的特點,特別適合這種高度、大數(shù)據(jù)量、算法復(fù)雜度不高的圖像預(yù)處理系統(tǒng)[2-3].因此使用FPGA+CMOS模式的實現(xiàn)圖像預(yù)處理,成為圖像實時采集處理系統(tǒng)實現(xiàn)的一種趨勢[4].
本研究針對CMOS傳感器的特點,提出一種面向FPGA實現(xiàn)的視頻圖像預(yù)處理系統(tǒng),并給出該系統(tǒng)在Xilinx SP605開發(fā)板配合MT9P031 CMOS傳感器的硬件平臺上的實驗結(jié)果.
基于FPGA的CMOS實時預(yù)處理系統(tǒng)主要實現(xiàn)模塊架構(gòu)如圖1.首先,由I2C模塊對CMOS圖像傳感器進行寄存器配置;然后,CMOS圖像數(shù)據(jù)被送入FPGA圖像預(yù)處理系統(tǒng)進行色彩插值、自動白平衡、色彩校正和伽馬校正[5];作為一個完整的系統(tǒng),該預(yù)處理系統(tǒng)還需具備DDR存儲器的接口對處理后的圖像進行緩存,并通過VGA接口顯示或直接寫入存儲器中用于存儲和后續(xù)處理.
CMOS傳感器的彩色成像是在黑白圖像傳感器的基礎(chǔ)上,通過增加彩色濾波陣列(color filter array,CFA)來獲得顏色分量.由于Bayer模式的CFA具有良好的彩色信號感光性及色彩復(fù)原性[6],因而成為最常用的CFA.本研究只對該模式的CFA CMOS傳感器進行討論.
圖1 CMOS實時預(yù)處理系統(tǒng)Fig.1 CMOS pre-processing system
生成彩色圖像需R、G和B 3個顏色分量.其中,R為紅色分量;G為綠色分量;B為藍色分量.然而,在Bayer模式下,每個點僅一個顏色分量,其他顏色分量需由鄰域點生成.通過鄰域點生成欠缺的兩種顏色分量的過程即色彩插值(color interpolation)[7].在數(shù)字成像系統(tǒng)中,色彩插值的優(yōu)劣,決定了從CFA輸出的圖像矩陣中重構(gòu)圖像質(zhì)量的好壞[8].色彩插值方法中,最近鄰域法最簡單,但重構(gòu)圖像質(zhì)量最差;信號相關(guān)性插值法和雙線性法[9]實現(xiàn)難度適中,效果優(yōu)于鄰域法;而更復(fù)雜的方法,如神經(jīng)網(wǎng)絡(luò)法[10]等,可取得質(zhì)量更好的圖像,但硬件資源的消耗與實現(xiàn)的復(fù)雜度亦增大.以下我們討論雙線性法與信號相關(guān)性插值.
圖2是雙線性及信號相關(guān)性插值的示例[8-9].在圖2(a)中,中心點B5僅含B分量,需還原R和G分量,即R5和G5.雙線性法還原公式為
Pei等[11]提出信號相關(guān)性插值法,在雙線性法的基礎(chǔ)上引入輔助量KR和KB,如圖2(b).由式(3)~式(8)可計算相應(yīng)的輔助量
圖2 雙線性及信號相關(guān)性插值示例Fig.2 Bilinear&signal correlation interpolation diagram
再通過式(9)~式(12)對B2和R7進行插值計算
其中,KB2、KR3、KB3、KR6、KB6和KR7為輔助量;式(3)~式(7)中等號右側(cè)的變量,及式(9)~式(12)中B2、G2、R7和G7為圖2(b)中對應(yīng)點的值.
常用的邊界處理算法都較復(fù)雜,為此引入一種簡便有效的邊界保持方法,在求輔助量KR和KB均值前,去掉最大值和最小值,則G7生成式變成
其中,KRmax=max{KR3,KR6,KR8,KR11};KRmin=min{KR3,KR6,KR8,KR11}.
對Kodak的測試圖像lighthouse,分別采用相關(guān)性插值、雙線性插值、相關(guān)性與邊界保持插值、雙線性與邊界保持插值進行測試.通過比較各重構(gòu)圖像的平均峰值信噪比(peak signal to noise ratio,PSNR)來對比各算法效果,結(jié)果如表1.
表1 幾種方法平均PSNR對比Table1 PSNR comparison
由表1可見,相關(guān)性與邊界保持插值方法產(chǎn)生的圖像與原圖最接近,計得的平均PSNR值最高.因此,在插值模塊中,本研究最終選用此算法.
由圖2(b)可知,信號相關(guān)性插值至少需同時提供5×5的圖像數(shù)據(jù)塊,即需一個5×5的圖像窗口生成模塊來提供數(shù)據(jù).為減少對FPGA芯片內(nèi)有限片內(nèi)存儲器的使用,本研究改進了片內(nèi)存儲器的使用方法.用Ram0—Ram4代替移位寄存器構(gòu)成的行緩沖0—4行緩沖,并用如圖3的狀態(tài)機對其進行控制.其中,rdata0—rdata4分別對應(yīng)此狀態(tài)下Ram0—Ram4的讀數(shù)據(jù),Data0—Data4為最終窗口輸出的5個數(shù)據(jù),Data0始終連接窗口輸入Data_in.行結(jié)束信號Line_end為狀態(tài)跳轉(zhuǎn)條件信號.各Ram的讀寫地址相同,其范圍都是0~N(N為圖像列寬減1).
圖3 改進的圖像窗口控制狀態(tài)圖Fig.3 Improved image window control FSM
1.2.1 自動白平衡
通過白平衡模塊,可校正由不同色溫所引起的色差,使物體再現(xiàn)其本來顏色.常用的白平衡方法有灰色世界法[12]和神經(jīng)網(wǎng)絡(luò)法[13](實現(xiàn)復(fù)雜,資源消耗大,不適用于FPGA芯片).灰色世界法的實現(xiàn)過程為,通過增益調(diào)整使圖像的3個分量的平均值Rav=Gav=Bav,具體步驟為:
1)計算圖像中的3個分量均值
2)R、G和B分量的增益分別為
3)處理
其中,Ri和Ro分別為輸入與輸出的R分量.對于G和B分量可做同樣處理.
將用當(dāng)前幀計算得到的增益近似為后1幀的增益,為能在1幀時間內(nèi)完成統(tǒng)計和增益計算,不統(tǒng)計幀圖像中所有數(shù)據(jù),僅統(tǒng)計選定區(qū)域內(nèi)固定的數(shù)目.在計算均值時,可用右移位來實現(xiàn)除法,而在計算增益時,可降低除法器的位寬,以節(jié)省資源,提高速度.
1.2.2 色彩校正
未經(jīng)色彩校正的圖像與真實顏色間的偏差被稱為顏色失真.文獻[14]介紹了幾種常用色彩校正方法,其中矩陣校正法運算簡單,易于硬件實現(xiàn).本研究根據(jù)FPGA芯片特點,采用矩陣校正法,在RGB空間進行色彩校正.校正公式為
其中,Ri、Gi、Bi和Ro、Go、Bo分別為校正前后的RGB值;H為3×3校正矩陣.使色差最小化的H,即為所求校正矩陣.
RGB空間任意兩個顏色(R1,G1,B1)和(R2,G2,B2)之間的色差公式為
將24色標(biāo)準色彩測試標(biāo)板的24個顏色,作為顏色取樣數(shù)據(jù)對象,來獲取校正矩陣.校正過程為
其中,為校正后24個顏色的RGB值為24個顏色的測試RGB值;為所求校正矩陣.
要使24個顏色的色差最小,需使
ΔR21+ΔG21+ΔB21+… +ΔR224+ΔG224+ΔB224最小,而該多項式等于
可得X=(M×MT)TM×NT,故校正矩陣為
用近似方法使N得到標(biāo)準色板上的相應(yīng)值.在相同光照條件下,用一臺標(biāo)準相機,以手動模式拍攝標(biāo)準色板,并以其24個顏色的均值作為標(biāo)準RGB顏色矩陣N.然后使用CMOS傳感器抓取測試圖像的24色RGB值,作為測試矩陣M.由式(21)計得校正矩陣H后,用該矩陣校正測試矩陣M,并得到N'.最后,分別計算M、N'與N之間的色差值.
圖4為校正前后圖像與標(biāo)準圖像色彩對比,圖5為校正前后色差對比.由圖4可見,修正色彩比未修正色彩更接近參照色彩.由圖5也可發(fā)現(xiàn),修正后的色彩更佳.
用上述方法求得的校正矩陣為
為便于硬件實現(xiàn),放大64倍后取整,得
用H1矩陣與CMOS采集的圖像數(shù)據(jù)相乘,再將所得矩陣的各二進制元素進行6 bit的右移運算,得到色彩校正后的色彩圖像.
1.2.3 伽馬校正
由于電子器件如CMOS傳感器和顯示器等的光電響應(yīng)有非線性特性,因此必須對圖像進行伽馬校正.校正過程為 S=X1/γ.其中,γ 取值 1.8 ~2.5.對于此非線性校正過程,本研究采用分段線性伽馬校正法,即用分段線性函數(shù)逼近非線性伽馬校正曲線,如圖6(a).其中,y(x)是關(guān)于輸出亮度x的校正函數(shù),可使用分段點間的直線迫近真實曲線y(x).由圖6(b),一段以a和b為分段點的線段星映射為
圖4 色彩校正結(jié)果Fig.4 Color correction result
圖5 色彩校正前后與標(biāo)準圖像的色差對比Fig.5 Chromatic aberration comparison before and after color correction
其中,x為a和b之間的圖像亮度;c為起始位置縱坐標(biāo);d為結(jié)束點橫坐標(biāo).
令d-c=n,b-a=m,則得最終的實現(xiàn)方程為
根據(jù)Weber Fechner法則[15],人以亮度L的比值ΔL/L為視覺刺激量的,在特定環(huán)境亮度下,人眼所能夠識別亮度的最低值,約等于該比值的2%.考慮到人類的視覺特性,可得
其中,x是理想情況下,系統(tǒng)響應(yīng)為線性時的輸出;g(x)為用線性法得到的轉(zhuǎn)換后的值.整理后得
利用式(26),只要保持m為2的冪次方,就可在FPGA實現(xiàn)中避免除法.以0為起始點,2n為步長,可得一系列分段點為0,2,4,….
綜上可最終確定 x=[0,4,8,16,32,48,64,128,192,256]作為分段點.對0~255實行9段分區(qū),如圖6(c).
針對不同的γ,由y=x1/γ代入確定的x求得相應(yīng)的分段端點的y值;再根據(jù)圖6(c)和前面的定義,就可求得c、m、n和a的對應(yīng)值,并最終實現(xiàn)分段線性伽馬校正.
圖6 分段線性伽馬校正、直線映射與9段分段線性伽馬校正Fig.6 Segmented liner Gamma correction,liner mapping and 9-segmented liner Gamma correction
圖7(a)為相關(guān)性邊界保持插值模塊.數(shù)據(jù)從Data in輸入,按照1.1節(jié)所述算法處理后,輸出Data_out.圖7(b)為自動白平衡模塊.用于控制RGB 3個分量均值統(tǒng)計部分的起始.該信號有效時,將計算得到的3個分量增益存入增益寄存,供后一幀圖像白平衡運算使用.圖7(c)為色彩校正電路.RGB 3路色彩分別輸入校正系統(tǒng),經(jīng)矩陣校正后再分別輸出,供給下一系統(tǒng)使用.圖7(d)為分段線性伽馬校正電路.
圖7 系統(tǒng)各子模塊結(jié)構(gòu)Fig.7 Sub-module of the system
本設(shè)計在Xilinx SP605開發(fā)板和MT9P031 CMOS圖像傳感器上,實現(xiàn)整個系統(tǒng).表2為該傳感器主要資源使用情況.從表2可見,所需資源不多,有利于整個系統(tǒng)的成本控制.
表2 預(yù)處理系統(tǒng)PAR后的資源利用率Table2 Pre-process system resource utilization after P&R
該系統(tǒng)最高頻率達120.758 MHz,處理速度是720P@60fps視頻流所需帶寬的2.29倍;對于高清1080P(1920×1080像素)的圖像,處理速度為61幀/秒,遠高于1080P@30fps標(biāo)準的高清視頻流.對720P@60fps的視頻測試結(jié)果顯示,視頻流暢.圖8為實驗實測圖,視頻圖像畫面與真實物體顏色相差較小,畫面連續(xù)無卡頓感,達到預(yù)計要求.
圖8 實驗實測Fig.8 Experiment result
本研究針對實時CMOS視頻圖像的預(yù)處理的要求,對色彩插值、白平衡、色彩校正和伽馬校正等模塊進行研究,針對硬件實現(xiàn)的特點,對算法進行優(yōu)化,提出適于PFGA實現(xiàn)的電路結(jié)構(gòu),并在單顆PFGA芯片實現(xiàn)整個系統(tǒng).測試結(jié)果表明,系統(tǒng)輸出圖像質(zhì)量良好,且處理速度快.該設(shè)計結(jié)構(gòu)簡單,所耗芯片資源較少,可應(yīng)用于高清監(jiān)控、機器視覺及網(wǎng)絡(luò)攝像等系統(tǒng).
/References:
[1]Hamza D,Pahlevaninezhad M,Jain P K.Implementation of a novel digital active EMI technique in a DSP-based DC-DC digital controller used in electric vehicle(EV)[J].IEEE Transactions on Power Electronics,2013,28(7):3126-3137.
[2]Mariangela Genovese,Ettore Napoli.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(VLSI)Systems,2013,PP(99):doi:10.1109/TVLSI.2013.2249295.
[3]Chen Biwei,Liang Zhiyi,Wang Yanxin,et al.Design of a high speed CMOS imaging system based on FPGA[J].Computer Measurement& Control,2012,20(5):1397-1400.(in Chinese)陳必威,梁志毅,王延新,等.基于FPGA的高幀速CMOS成像系統(tǒng)設(shè)計 [J].計算機測量與控制,2012,20(5):1397-1400.
[4]Ding Haojie,Liu Jingbiao,Sheng Qinghu.Design of video acquisition system based on CMOS image sensor[J].Modern Electronics Technique,2012,35(14):178-188.(in Chinese)丁昊杰,劉敬彪,盛慶華.基于CMOS圖像傳感器的視頻采集系統(tǒng)設(shè)計 [J].現(xiàn)代電子技術(shù),2012,35(14):178-188.
[5]Tai Yonghang,Yun Lijun,Shi Junsheng,et al.A method for AM-OLED gamma correction [J].Opto-E-lectronic Engineering Jan,2012,39(1):131-134.
[6]Bayer B E.Color imaging array:US,3971065 [P].1976-07-20.
[7]Jeon G,Dubois E.Demosaicking of noisy bayer-sampled color images with least-squares luma-chroma demultiplexing and noise level estimation [J].IEEE Transactions on Image Procesing,2013,22(1):146-156.
[8]Hua Lei,Xie Lei,Chen Huifang.A color interpolation algorithm for Bayer pattern digital cameras based on green components and color difference space[C]//International Conference on Progress in Informatics and Computing.Shanghai(China):IEEE Press,2010,2:791-795.
[9]Zhao Huang,Peng Yong.Bilinear interpolation algorithm optimization and application [J]. TV Engineering,2012,36(17):30-32.(in Chinese)趙 煌,彭 勇.雙線性插值算法的優(yōu)化及其應(yīng)用[J].電視技術(shù),2012,36(17):30-32.
[10]Go J,Lee C H.Interpolation using neural network for digital still cameras[C]//International Conference on Consumer Electronics.Los Angles(USA):IEEE Press,2000:176-177.
[11]Pei S C,Tam I.Effective color interpolation in CCD color filter arrays using signal correlation[J].IEEE Transactions on Circuits Systems for Video Technology,2003,13(6):503-513.
[12]Yan Ge.Design of CMOS Image Sensor Automatic White Balance Digital Process Circuit[D].Tianjin:Tianjin U-niversity,2009.(in Chinese).閆 格.CMOS圖像傳感器白平衡數(shù)字處理電路設(shè)計[D].天津:天津大學(xué),2009.
[13]Liu Yucheng,Zhang Yingchao.Image colorimetry segmentation based on white balance algorithm [J].Computer Engineering,2012,38(20):195-196.(in Chinese)劉玉成,張穎超.基于白平衡算法的圖像色度學(xué)分割[J].計算機工程,2012,38(20):195-196.
[14]Xu Xiaozhao,Shen Lansun,Liu Changjiang.Color correction methods and application in image processing [J].Application Research of Computers,2008,25(8):2250-2254.(in Chinese)徐曉昭,沈蘭蓀,劉長江.顏色校正方法及其在圖像處理中的應(yīng)用[J].計算機應(yīng)用研究,2008,25(8):2250-2254.
[15]Ming Jun,Xu Huifang,Yang Yang.Research of space similarity analysis model with Weber-Fechner law [J].Journal of University of Science and Technology of China,2010,40(11):1148-1152.(in Chinese)明 軍,許會芳,楊 楊.Weber-Fechner空間相似分解模型的研究[J].中國科學(xué)技術(shù)大學(xué)學(xué)報,2010,40(11):1148-1152.