廖書紅, 武 靜, 張海軍, 王浩然, 張紀(jì)旭, 郭曉光
(中國(guó)航空工業(yè)集團(tuán)公司洛陽(yáng)電光設(shè)備研究所,河南 洛陽(yáng) 471000)
近年來(lái),隨著現(xiàn)代空戰(zhàn)技術(shù)的發(fā)展,頭盔顯示器因更適合于飛行作戰(zhàn)使用,成為座艙顯示控制技術(shù)研發(fā)的熱點(diǎn)。新型雙目數(shù)字式頭盔顯示器具有更廣闊的視場(chǎng)范圍、更高的顯示分辨率,更加適用于作戰(zhàn),已成為航空座艙顯示技術(shù)發(fā)展的主流趨勢(shì)。雙目數(shù)字式頭盔顯示器光學(xué)系統(tǒng)的物鏡離軸角更大,導(dǎo)致顯示畫面存在著較單目頭盔顯示器更為嚴(yán)重的畸變,畸變使顯示圖像的大小和形狀發(fā)生變化,降低顯示質(zhì)量和精度[1],必須對(duì)這種畸變進(jìn)行校正,以不影響飛行作戰(zhàn)使用。
解決上述畸變需要采用電路對(duì)圖像實(shí)時(shí)處理校正,即對(duì)進(jìn)入光學(xué)系統(tǒng)的圖像進(jìn)行與光學(xué)系統(tǒng)作用互逆的預(yù)畸變處理,產(chǎn)生預(yù)畸變圖像,預(yù)畸變圖像在光學(xué)系統(tǒng)畸變的作用下,使得最終顯示的圖像與原始圖像一致,上述畸變校正過(guò)程又稱為預(yù)畸變過(guò)程。
目前,國(guó)內(nèi)外對(duì)類似畸變校正系統(tǒng)的研究主要集中于單路圖像預(yù)畸變校正系統(tǒng),文獻(xiàn)[2-4]提出了基于多項(xiàng)式擬合和雙線性插值的方法,實(shí)現(xiàn)了大視場(chǎng)光學(xué)系統(tǒng)的預(yù)畸變校正計(jì)算;文獻(xiàn)[5]實(shí)現(xiàn)了對(duì)廣角鏡頭的數(shù)字圖像畸變校正處理,但校正能力有限。
雙目數(shù)字圖像實(shí)時(shí)預(yù)畸變校正系統(tǒng)要實(shí)時(shí)處理雙路視頻的預(yù)畸變過(guò)程,其計(jì)算量是單路視頻畸變校正過(guò)程的兩倍,且由于雙目頭盔顯示器的光學(xué)系統(tǒng)結(jié)構(gòu)復(fù)雜,其畸變較傳統(tǒng)的單一像源光學(xué)系統(tǒng)更大,采用文獻(xiàn)[2-4]中的多項(xiàng)式擬合方法進(jìn)行位置校正時(shí),擬合誤差增大,由于數(shù)字像源像素位置的離散性,顯示圖形時(shí),邊緣鋸齒感較強(qiáng),影響雙目數(shù)字頭盔顯示器的顯示畫面質(zhì)量。
現(xiàn)有畸變校正實(shí)現(xiàn)[6]并不能完全滿足雙目頭盔顯示器的實(shí)時(shí)畸變校正需求,本文采用基于多項(xiàng)式擬合的位置校正和雙線性插值的灰度校正方法,針對(duì)雙路數(shù)字視頻實(shí)時(shí)預(yù)畸變過(guò)程計(jì)算量大的特點(diǎn),設(shè)計(jì)一種應(yīng)用于雙目數(shù)字式頭盔顯示器的畸變校正電路系統(tǒng)架構(gòu),采用雙目空間索引坐標(biāo)逐像素交叉存儲(chǔ)、DDR3優(yōu)化存儲(chǔ)方案,在不增加電路復(fù)雜度情況下,完成雙路視頻信號(hào)的采集、緩沖、雙目預(yù)畸變處理和圖像的實(shí)時(shí)輸出。同時(shí),針對(duì)顯示圖像邊緣鋸齒感嚴(yán)重,影響視覺(jué)感受,設(shè)計(jì)了適應(yīng)性平滑濾波算法進(jìn)行改進(jìn),減輕圖像邊緣鋸齒,改善畫面品質(zhì)。
預(yù)畸變校正的原理如圖1所示。
圖1 畸變校正示意圖Fig.1 Schematic diagram of distortion correction
畸變校正系統(tǒng)的核心是預(yù)畸變圖像的求解,對(duì)于圖1所示系統(tǒng),記原始圖像為A=A(x,y),預(yù)畸變圖像為B=B(u,v),不考慮光學(xué)系統(tǒng)的放大作用,預(yù)期顯示的圖像與原始圖像同為A(x,y)。記經(jīng)過(guò)畸變校正系統(tǒng)的圖像映射關(guān)系為F,頭盔顯示器光學(xué)系統(tǒng)的圖像映射關(guān)系為G,則有
A(x,y)=G[F[A(x,y)]]
(1)
即映射F和G滿足F=G-1。畸變校正系統(tǒng)的任務(wù)是求解映射關(guān)系F。
盡管可以通過(guò)G求解F,但由于實(shí)際設(shè)計(jì)的光學(xué)系統(tǒng)畸變很難通過(guò)理論來(lái)準(zhǔn)確推導(dǎo),往往直接通過(guò)光學(xué)系統(tǒng)的仿真數(shù)據(jù)去近似擬合映射關(guān)系F。由于光路的可逆性,通常采用逆向設(shè)計(jì)方法,通過(guò)CODE V等光學(xué)仿真軟件追跡不同視場(chǎng)在出瞳中心的主光線,經(jīng)過(guò)光學(xué)系統(tǒng)后在像源處對(duì)應(yīng)的像素位置,從而獲取預(yù)畸變圖像和待顯示圖像的像素位置映射關(guān)系,忽略仿真軟件的誤差,將仿真獲得的像素位置映射關(guān)系作為實(shí)際的像素位置映射關(guān)系。
可以通過(guò)上述逆向設(shè)計(jì)的方法獲取一系列預(yù)畸變圖像和原始圖像控制點(diǎn)的位置映射關(guān)系,記原始圖像(xi,yi)處的點(diǎn)對(duì)應(yīng)預(yù)畸變圖像(ui,vi)處,則可以通過(guò)高階多項(xiàng)式來(lái)擬合預(yù)畸變圖像和原始圖像的像素位置映射關(guān)系,表示為
(2)
將控制點(diǎn)代入上述高階多項(xiàng)式中,當(dāng)控制點(diǎn)足夠多時(shí),可以采用最小二乘法求解出多項(xiàng)式系數(shù)apq和bpq,獲取預(yù)畸變圖像和原始圖像像素點(diǎn)位置關(guān)系映射的擬合。
對(duì)于預(yù)畸變圖像位置(u,v),均可以通過(guò)上述映射關(guān)系求解出對(duì)應(yīng)的原始圖像位置(x,y),由于數(shù)字像源的像素點(diǎn)位置是離散的,通過(guò)式(2)求解出來(lái)的(x,y)不一定準(zhǔn)確落在像素點(diǎn)上,需要通過(guò)雙線性插值算法來(lái)重建(u,v)的灰度值。
灰度值的雙線性插值重建過(guò)程如圖2所示。
圖2 畸變圖像數(shù)學(xué)映射Fig.2 The mathematical mapping of distortion image
記求解出的像素位置(x,y)向下取整對(duì)應(yīng)的像素位置坐標(biāo)為(Tx,Ty),雙線性插值后的灰度值可以表示為
B(u,v)=(1-dx)(1-dy)A(Tx,Ty)+
dxdyA(Tx+1,Ty+1)+dx(1-dy)A(Tx+1,Ty)+
(1-dx)dyA(Tx,Ty+1)
(3)
式中:x=Tx+dx;y=Ty+dy。
引入畸變校正系統(tǒng)后,頭盔顯示器經(jīng)過(guò)光學(xué)系統(tǒng)后顯示的畫面近似與原始畫面相同,但在顯示圖形時(shí),邊緣部分鋸齒較嚴(yán)重,這個(gè)問(wèn)題的來(lái)源有兩個(gè)原因,首先,在采用高次多項(xiàng)式擬合預(yù)畸變圖像和原始圖像之間的映射關(guān)系時(shí),存在擬合誤差,對(duì)于控制點(diǎn),擬合誤差可以表示為
(4)
光學(xué)系統(tǒng)畸變?cè)絿?yán)重,在采用的多項(xiàng)式階次N不變的情況下,擬合誤差越大。以某光學(xué)系統(tǒng)為例,對(duì)其進(jìn)行5階多項(xiàng)式擬合誤差分析,如圖3所示。
圖3 某光學(xué)系統(tǒng)5階多項(xiàng)式擬合誤差Fig.3 The 5-order polynomial fitting error of an optical system
上述擬合誤差帶來(lái)的是對(duì)應(yīng)的理想像素位置不準(zhǔn)確,導(dǎo)致計(jì)算出的灰度值出現(xiàn)偏差。其次,由于數(shù)字像源的像素位置是離散的點(diǎn),對(duì)于映射位置不在像素點(diǎn)時(shí),是采用周圍像素的灰度去近似表示的,沒(méi)有考慮到該點(diǎn)所在的圖形方向性,也抓不住圖形邊緣和紋理變化信息。
采用線性平滑濾波加適應(yīng)性灰度校正的適應(yīng)性平滑濾波技術(shù)可以消除邊緣鋸齒現(xiàn)象,提高顯示畫面的質(zhì)量,增加觀察舒適性。其基本方法是首先對(duì)圖像進(jìn)行3×3的線性平滑濾波操作,操作模板為
(5)
采用上述均值濾波后,顯示的圖形邊緣將會(huì)變得模糊,原有亮度較高的邊緣像素點(diǎn)亮度變低,亮度低的邊緣像素點(diǎn)亮度變高,可以通過(guò)灰度校正函數(shù)增強(qiáng)圖形邊緣對(duì)比度,即
Bnew(u,v)=H[B(u,v)] 。
(6)
面對(duì)機(jī)載顯示系統(tǒng)對(duì)高實(shí)時(shí)性、集成化、小體積、及低功耗等多個(gè)方面的要求[7-9],對(duì)雙目圖像的同步處理以及降低圖像處理的資源消耗是系統(tǒng)實(shí)現(xiàn)的首要問(wèn)題[10]。本文通過(guò)雙目空間坐標(biāo)索引設(shè)計(jì)和DDR3存儲(chǔ)優(yōu)化技術(shù),實(shí)現(xiàn)雙目數(shù)字式頭盔顯示器的雙路顯示圖像的同步畸變校正,通過(guò)優(yōu)化視頻圖像緩存模塊,保證了系統(tǒng)實(shí)現(xiàn)的實(shí)時(shí)性,對(duì)采用傳統(tǒng)畸變校正方法產(chǎn)生的預(yù)畸變圖像,用適應(yīng)性平滑濾波技術(shù)進(jìn)一步改善圖像顯示質(zhì)量。
系統(tǒng)采用FPGA主控芯片[11],高速數(shù)據(jù)存儲(chǔ)器(DDR3)和空間坐標(biāo)索引存儲(chǔ)器(Flash)的硬件設(shè)計(jì)架構(gòu),主要包含視頻接收模塊、數(shù)據(jù)緩存模塊、圖像處理模塊及圖像輸出模塊,系統(tǒng)架構(gòu)如圖4所示。
圖4 畸變校正系統(tǒng)框圖Fig.4 Distortion correction system
系統(tǒng)工作原理如下:首先,軟件擬合計(jì)算出的校正參數(shù)被轉(zhuǎn)換為便于在電路中存儲(chǔ)的空間坐標(biāo)索引。當(dāng)FPGA上電后,從Flash中讀取空間坐標(biāo)索引信息,加載到DDR3存儲(chǔ)器中;通過(guò)圖像接收模塊緩存的圖像灰度信息,配合從DDR3存儲(chǔ)器中讀出的校正參數(shù),通過(guò)FPGA內(nèi)部的硬件乘法器完成雙線性插值,得到預(yù)畸變后該點(diǎn)的圖像灰度值,寫入預(yù)畸變圖像上對(duì)應(yīng)的存儲(chǔ)位置就完成了圖像預(yù)畸變,通過(guò)調(diào)整時(shí)序和輸出緩存將圖像控制以及數(shù)據(jù)信息發(fā)送出去,由圖像發(fā)送模塊傳遞給外部顯示設(shè)備。
灰度雙線性插值算法所需的插值參數(shù)以64位空間坐標(biāo)索引的形式存儲(chǔ),設(shè)計(jì)的空間索引坐標(biāo)結(jié)構(gòu)如表1所示。
表1 空間坐標(biāo)索引結(jié)構(gòu)
結(jié)合單路視頻輸入雙路輸出的圖像應(yīng)用場(chǎng)景,且人眼看到的雙路圖像必須同步疊加的特點(diǎn),為避免兩路視頻處理存在時(shí)延的問(wèn)題,本文采用逐像素交叉存儲(chǔ)方法,同時(shí)在DDR3存儲(chǔ)設(shè)計(jì)中,選用128 bit數(shù)據(jù)位的用戶接口,一次存取兩路空間索引坐標(biāo)數(shù)據(jù),用于雙路圖像的并行處理,如圖5所示。
圖5 DDR3優(yōu)化存儲(chǔ)技術(shù)Fig.5 DDR3 storage optimization
現(xiàn)有的單路預(yù)畸變校正模塊硬件實(shí)現(xiàn)的輸入緩存機(jī)制是在FPGA內(nèi)部例化成4個(gè)等容量的Block RAM,以奇行偶行兩兩分開存儲(chǔ)相同的灰度值[11],在一定程度上造成了資源浪費(fèi)。本文采用4個(gè)Block RAM分別緩存偶行偶列、偶行奇列、奇行偶列、奇行奇列的像素灰度值,如圖6所示。
圖6 優(yōu)化存儲(chǔ)技術(shù)實(shí)現(xiàn)Fig.6 Implementation of optimized storage
在實(shí)現(xiàn)雙線性插值時(shí),對(duì)于插值點(diǎn)坐標(biāo)(Tx,Ty)周圍4個(gè)點(diǎn)的灰度值分別記為
(7)
表2 像素點(diǎn)與地址映射關(guān)系
實(shí)現(xiàn)雙線性插值時(shí),為了同時(shí)得到周圍4個(gè)像素的灰度值,采用這種方式可以實(shí)現(xiàn)4個(gè)插值點(diǎn)坐標(biāo)同步讀取,進(jìn)一步通過(guò)DSP48E硬件乘法器實(shí)現(xiàn)雙線性插值,通過(guò)行列插值[3]分離,只需要3個(gè)DSP48E即可實(shí)現(xiàn)雙線性插值操作,如圖7所示。
圖7 雙線性插值實(shí)現(xiàn)Fig.7 The implementation of bilinear interpolation
根據(jù)頭盔顯示系統(tǒng)的特點(diǎn),在適應(yīng)性平滑濾波中選取的濾波模板和灰度校正函數(shù)分別為
(8)
(9)
每個(gè)位置像素點(diǎn)濾波后的灰度值的計(jì)算涉及到周圍相鄰3行4個(gè)像素點(diǎn)和自身的灰度值,通過(guò)使用2個(gè)行緩存FIFO,保證FIFO輸出始終是需要的像素點(diǎn)的灰度值,由于選用特殊的濾波系數(shù),可以僅通過(guò)移位操作和加法運(yùn)算完成平滑濾波,進(jìn)一步將濾波結(jié)果通過(guò)移位和加法運(yùn)算實(shí)現(xiàn)適應(yīng)性灰度校正。硬件實(shí)現(xiàn)如圖8所示。
以1400×1050@60 Hz分辨率的圖像為例,在ISE12.4開發(fā)環(huán)境下,選用Xilinx V5系列FPGA,利用傳統(tǒng)畸變校正方法實(shí)現(xiàn)雙目畸變校正功能與本文雙目數(shù)字圖像實(shí)時(shí)預(yù)畸變校正技術(shù)進(jìn)行對(duì)比,分別從系統(tǒng)的功耗、FPGA存儲(chǔ)資源利用率、系統(tǒng)實(shí)時(shí)性、精度誤差等方面進(jìn)行分析,實(shí)驗(yàn)數(shù)據(jù)見(jiàn)表3,其中,W為功耗,Block RAM表示資源消耗,Delay表示實(shí)時(shí)性,e-3為精度誤差。傳統(tǒng)畸變校正方法是將文獻(xiàn)[2,4]中的方法進(jìn)行了邏輯復(fù)制實(shí)現(xiàn)。
表3 性能指標(biāo)對(duì)比
在實(shí)驗(yàn)中利用Xpower工具對(duì)FGPA功耗進(jìn)行評(píng)估,由表3可以看出,雙目預(yù)畸變校正方法的功耗低于傳統(tǒng)預(yù)畸變校正方法的實(shí)現(xiàn)方式,與傳統(tǒng)畸變校正方法實(shí)現(xiàn)雙目功能相比,功耗明顯降低,在高溫環(huán)境下效果更加明顯。
采用了圖像緩存優(yōu)化技術(shù)后,與傳統(tǒng)預(yù)畸變校正方法相比,本文實(shí)現(xiàn)的雙目畸變校正方法可節(jié)約50%的Block RAM資源。
本畸變校正系統(tǒng)保證了從接收到輸入圖像源第一個(gè)像素開始,至預(yù)畸變圖像第一個(gè)像素輸出的時(shí)延僅為2.5 ms。以60 Hz分辨率圖像為例,每幀畫面輸出約13.33 ms,目前的處理時(shí)延完全滿足設(shè)計(jì)需求。后級(jí)引入適應(yīng)性平滑濾波技術(shù)并未給系統(tǒng)帶來(lái)較大延時(shí),僅為0.1 ms,幾乎可以忽略。
對(duì)畸變校正系統(tǒng)查找表的誤差分析采用文獻(xiàn)[3]中的均方根誤差作為評(píng)價(jià)指標(biāo),通過(guò)選用精度更高的9階多項(xiàng)式,與傳統(tǒng)畸變校正系統(tǒng)的低階多項(xiàng)式相比,本文實(shí)現(xiàn)的系統(tǒng)誤差降低至原來(lái)的1/3。預(yù)畸變畫面通過(guò)光學(xué)系統(tǒng)后,由平行光管和經(jīng)緯儀測(cè)定,采用本文雙目數(shù)字式畸變校正系統(tǒng),能滿足頭盔顯示系統(tǒng)的精度要求。
采用黑底白字畫面,涵蓋線段、矩形框、圓形、數(shù)字及漢字作為源輸入圖像。針對(duì)兩路不同的空間索引坐標(biāo),分別利用傳統(tǒng)預(yù)畸變校正處理方法、本文無(wú)適應(yīng)性平滑濾波方法以及含適應(yīng)性平滑濾波方法進(jìn)行實(shí)現(xiàn)分析,圖像顯示效果見(jiàn)圖9。
可以看出,雙目數(shù)字圖像實(shí)時(shí)預(yù)畸變校正技術(shù)處理的預(yù)畸變圖像與傳統(tǒng)預(yù)畸變技術(shù)實(shí)現(xiàn)的效果相同,未采用適應(yīng)性濾波技術(shù)的預(yù)畸變處理輸出圖像邊緣鋸齒現(xiàn)象明顯,而經(jīng)過(guò)均值適應(yīng)濾波技術(shù)處理后,圖像鋸齒現(xiàn)象得到改善,尤其在圖像邊緣處效果更加明顯,圖像的清晰度優(yōu)于未采用濾波的實(shí)現(xiàn)。
對(duì)于某些系統(tǒng)顯示精度要求不高的場(chǎng)合,可以采用不加后級(jí)適應(yīng)性平滑濾波的處理,減少系統(tǒng)的資源消耗;對(duì)于顯示精度要求高的場(chǎng)合,可以增加后級(jí)處理,實(shí)時(shí)性也能滿足。可根據(jù)實(shí)際工程應(yīng)用,靈活設(shè)置。
圖9 實(shí)現(xiàn)結(jié)果分析Fig.9 Implementation result analysis
本文提出了一種雙目數(shù)字圖像實(shí)時(shí)預(yù)畸變校正系統(tǒng)實(shí)現(xiàn)架構(gòu),適用于雙目數(shù)字式頭盔顯示器,實(shí)現(xiàn)系統(tǒng)優(yōu)化設(shè)計(jì)及適應(yīng)性平滑濾波技術(shù),該架構(gòu)適合高分辨率、高實(shí)時(shí)性的圖像畸變校正雙路應(yīng)用。相比于傳統(tǒng)架構(gòu),雙路圖像預(yù)畸變校正裝置的體積僅為傳統(tǒng)方法實(shí)現(xiàn)雙目畸變校正功能所需體積的1/2,功耗降低了近1/3,實(shí)時(shí)性也滿足要求。實(shí)驗(yàn)結(jié)果表明,該硬件系統(tǒng)圖像顯示效果優(yōu)異,滿足高分辨率、高實(shí)時(shí)性、低延遲的應(yīng)用需求。
參 考 文 獻(xiàn)
[1] SWAMINATHAN R,NAYAR S K.Nonmetric calibration of wide-angle lenses and polycameras[J].IEEE Transactions on Pattern Analysis & Machine Intelligence,2000,22(10): 1172-1178.
[2] 鄭永瑞,李潔,劉曉宏,等.基于FPGA的視頻圖像實(shí)時(shí)幾何畸變校正[J].電光與控制,2013,20(6):75-78.
[3] 鄭春,周擁軍,溫永強(qiáng).大視場(chǎng)光學(xué)顯示設(shè)備圖像畸變校正算法[J].電光與控制,2011,18(5):23-27.
[4] 鄭永瑞,林秋華,武靜,等.一種位置可調(diào)整的實(shí)時(shí)圖像預(yù)畸變方法[J].電光與控制,2015,22(8):76-79.
[5] 周游,張劍,周少武,等.一種改進(jìn)的廣角鏡頭數(shù)字圖像畸變校正算法[J].計(jì)算機(jī)技術(shù)與自動(dòng)化,2015,34(3):92-95.
[6] 馬廣彬,章文毅,陳甫.圖像幾何畸變精校正研究[J].計(jì)算機(jī)工程與應(yīng)用,2007,43(9):45-48.
[7] MITCHELL D P.Generating antialiased images at low sampling densities[C]//Conference on Computer Graphics and Interactive Techniques,1987:65-72.
[8] LIANG D H,ZHANG Z X,CHEN X D,et al.Real-time distortion correction for visual inspection systems based on FPGA[C]//Electronic Imaging and Multimedia Technology V,2007:68332G-1-68332G-8.
[9] HERNANDEZ A,GARDEL A,PEREZ L,et al.Real-time image distortion correction using FPGA-based system[C]//The 32nd Annual Conference on IEEE Industrial Electronics,2006,32(9):41-43.
[10] 宋光明,楊小岡,曹菲.衛(wèi)星影像仿射畸變的自動(dòng)校正方法[J].計(jì)算機(jī)工程,2006,32(9):41-43.
[11] ZHENG H,LI J.Real-time correction of distortion image based on FPGA[C]//International Conference on Intelligent Computing and Integrated System,2010:167-170.