田立坤, 劉曉宏, 李 潔
(1.光電控制技術(shù)重點實驗室,河南洛陽 471009; 2.中國航空工業(yè)洛陽電光設(shè)備研究所,河南洛陽 471009)
在光電成像系統(tǒng)顯示設(shè)備中,因為大視場光學(xué)系統(tǒng)本身特性的問題,光學(xué)系統(tǒng)引起的畸變影響了成像的幾何位置,降低了光學(xué)顯示系統(tǒng)的顯示精度,惡化了顯示畫面的觀察效果。為了取得更好的顯示效果,國內(nèi)外學(xué)者分別提出對數(shù)字像源畫面進(jìn)行像差幾何校正的各種數(shù)學(xué)模型和校正方案來消除畸變帶來的影響。文獻(xiàn)[1]考慮了鏡頭的徑向畸變特性,采用二元多項式法進(jìn)行空間幾何坐標(biāo)校正,在攝像機(jī)標(biāo)定過程中只需按照線性方法即可,因此運算速度快,適用于實時在線系統(tǒng)的標(biāo)定,但校正精度有待提高。文獻(xiàn)[2]認(rèn)為可以先提取圖像中的畸變曲線,通過優(yōu)化畸變參數(shù)擬合線段的方法將曲線自動轉(zhuǎn)換為理想的豎直線,此方法模型建立過程較為復(fù)雜,但較好地解決了大視場鏡頭的徑向畸變問題。文獻(xiàn)[3]根據(jù)圖像對稱的特點,將表達(dá)像素幾何位置的直角坐標(biāo)系轉(zhuǎn)為極坐標(biāo)系,該方法結(jié)合了CORDIC算法,比較適合在FPGA硬件平臺上實現(xiàn),較好地實現(xiàn)了圖像畸變校正,適用范圍較廣。
對于大視場數(shù)字化顯示器等復(fù)雜的顯示設(shè)備,畸變特性模型未知而難以準(zhǔn)確建立,所以本文提出雙隱含層BP(Back-Propagation)神經(jīng)網(wǎng)絡(luò)方法進(jìn)行畸變校正。該方法不需要預(yù)先確定樣本數(shù)據(jù)的數(shù)學(xué)模型,僅通過樣本數(shù)據(jù)的學(xué)習(xí)即可建立非線性映射關(guān)系,相對于傳統(tǒng)神經(jīng)網(wǎng)絡(luò)算法具有更強(qiáng)的數(shù)據(jù)處理能力和更高的校正精度。
圖像畸變校正需要解決的問題是確定非線性幾何失真變換模型,目前較為常見的方法為多項式擬合法。設(shè)一幅顯示設(shè)備幾何失真后畸變圖像的抽樣點像素點坐標(biāo)為(x,y),校正圖像中相對應(yīng)的抽樣點坐標(biāo)為(u',v')。畸變圖像中任一點(x,y)與校正圖像中對應(yīng)點(u',v')的變換關(guān)系表示為
式中:aij和bij為多項式的系數(shù);N為多項式次數(shù)。
多項式擬合法畸變校正模型是利用最小二乘法,以多項式為表達(dá)形式建立原始圖像與校正圖像的空間變換映射關(guān)系?;冃UP桶凑兆钚《朔ㄟM(jìn)行求解,均方誤差表現(xiàn)形式[4]為
其中,L為抽樣點的個數(shù)。對擬合誤差平方和分別求導(dǎo),求解出多項式擬合系數(shù),得到誤差均方和最小。即
由此得到
式中:s=0,1,…,N;t=0,1,…,N - s;s+t≤N。令 M=1+2+…+N+(N+1)=(N+1)(N+2)/2。
常用的多項式擬合方法采用最小二乘法求解,計算量較大,計算過程中抽樣點不宜選取過多。為了達(dá)到計算量與擬合精度的平衡,需要經(jīng)過多次實驗和比較才能得到最優(yōu)校正效果的多項式擬合最高次數(shù)。由于校正精度不高以及灰度插值算法選擇的原因,多項式擬合方法得到的校正圖像會有圖像退化的現(xiàn)象。
BP神經(jīng)網(wǎng)絡(luò)按拓?fù)浣Y(jié)構(gòu)分屬前向網(wǎng)絡(luò),采用由導(dǎo)師訓(xùn)練反向傳播的學(xué)習(xí)方法,實質(zhì)上是一種梯度下降局部搜索算法,即利用梯度作為啟發(fā)信息在局部范圍內(nèi)沿最優(yōu)方向搜索局部最優(yōu)點。傳統(tǒng)BP神經(jīng)網(wǎng)絡(luò)是一種具有3層神經(jīng)元的神經(jīng)網(wǎng)絡(luò),包括輸入層、隱含層、輸出層。本文提出建立4層神經(jīng)元的神經(jīng)網(wǎng)絡(luò),即有雙層隱含層,結(jié)構(gòu)如圖1所示,上下層之間實現(xiàn)全連接,而每層神經(jīng)元之間無連接。當(dāng)一對學(xué)習(xí)樣本提供給網(wǎng)絡(luò)后,神經(jīng)元的激活值從輸入層經(jīng)各中間層向輸出層傳播,在輸出層的各神經(jīng)元獲得網(wǎng)絡(luò)的輸入響應(yīng)。接下來,按照減少目標(biāo)輸出與實際輸出之間誤差的方向,從輸出層反向經(jīng)過各中間層回到輸入層,從而逐層修正各連接權(quán)值。隨著這種誤差逆向的傳播修正不斷進(jìn)行,網(wǎng)絡(luò)對輸入模式響應(yīng)的正確率也不斷上升[5]。
圖1 BP神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)圖Fig.1 Structure of BP neural network
傳統(tǒng)的BP算法有收斂速度慢、容易“陷進(jìn)”局部極值等缺點,因此出現(xiàn)了很多改進(jìn)的BP神經(jīng)網(wǎng)絡(luò)算法。BP神經(jīng)網(wǎng)絡(luò)改進(jìn)主要有兩種途徑:一種是采用啟發(fā)式學(xué)習(xí)算法;另一種則是采用更有效的優(yōu)化算法。其中,基于數(shù)值優(yōu)化理論的LM(Levenberg-Marquardt)算法收斂速度最快,而且精度也較高,故本文采用LM算法對神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練。
設(shè)M個輸入節(jié)點,L個輸出節(jié)點,隱含層有q個神經(jīng)元,則誤差函數(shù)E為
LM算法中權(quán)值和閾值的學(xué)習(xí)過程變換公式[6-7]為
式中:μkI保證G可逆,否則JT(wk)J(wk)可能不可逆,無法計算;J(wk)為雅克比矩陣,含有網(wǎng)絡(luò)訓(xùn)練誤差的一階導(dǎo)數(shù),是權(quán)值和閾值的函數(shù)[8]。
LM算法訓(xùn)練方法是梯度下降法與高斯-牛頓法的結(jié)合,既有高斯-牛頓法的局部收斂性,又具有梯度下降法的全局特性。該方法依賴于μ的幅值,光滑地在牛頓法(當(dāng)μ→0)和梯度下降法(當(dāng)μ→∞)兩種極端情況之間變化。采用LM優(yōu)化方法,可以使學(xué)習(xí)時間更短,在實際應(yīng)用中效果較好[9]。
由于現(xiàn)在的數(shù)字顯示設(shè)備具有大視場、高像素等特點,這就需要處理大量的數(shù)據(jù)?;贚M算法的BP神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)搜索能力和數(shù)據(jù)處理能力強(qiáng),收斂速度最快,而且精度也較高,因此,本文提出了基于LM算法的雙隱含層BP神經(jīng)網(wǎng)絡(luò)校正模型。
通過光學(xué)工程軟件CODE V對數(shù)字像源分析,可均勻抽取設(shè)備顯示畸變圖像和像源原始圖像21×21個抽樣點作為樣本數(shù)據(jù)[10]。數(shù)據(jù)表示形式為原始圖像和顯示圖像抽樣點的直角坐標(biāo),分別作為BP神經(jīng)網(wǎng)絡(luò)輸入樣本數(shù)據(jù)和輸出樣本數(shù)據(jù)。由于BP網(wǎng)絡(luò)處理的數(shù)據(jù)數(shù)值相差較大,所以必須將樣本數(shù)據(jù)進(jìn)行歸一化處理,以防止小數(shù)值信息被大數(shù)值信息所淹沒。傳遞函數(shù)正切S型函數(shù)在值域[-1,-0.9]和[0.9,1.0]區(qū)域內(nèi)曲線變化極為平坦,因此合適的歸一化處理應(yīng)該是將各輸入物理量歸至[-0.9,0.9]之間。通過以上分析可知,可以采用式(10)來進(jìn)行歸一化處理
式中,pi為圖像 X 軸或 Y 軸坐標(biāo),i=1,2,…,441。
經(jīng)過規(guī)格化后的BP神經(jīng)網(wǎng)絡(luò)樣本數(shù)據(jù)為二維數(shù)組,數(shù)值全部在[-0.9,0.9]范圍內(nèi),這樣可以大大加快神經(jīng)網(wǎng)絡(luò)的訓(xùn)練速度。與此同時,在對BP神經(jīng)網(wǎng)絡(luò)模型進(jìn)行仿真校正時,要對網(wǎng)絡(luò)輸出數(shù)據(jù)進(jìn)行相應(yīng)的反歸一化處理,這樣才能得到接近原始圖像的校正圖像。
BP神經(jīng)網(wǎng)絡(luò)訓(xùn)練過程中,輸入數(shù)據(jù)為畸變圖像規(guī)格化后的二維數(shù)據(jù),輸出數(shù)據(jù)為原始圖像反規(guī)格化前的二維數(shù)據(jù),故輸入層和輸出層選擇兩個神經(jīng)單元。為了加大處理數(shù)據(jù)的容量并提高畸變圖像和原始圖像之間的擬合精度,本文采用雙層隱含層結(jié)構(gòu)。隱含層的神經(jīng)元數(shù)目選擇是一個十分復(fù)雜的問題,往往需要根據(jù)設(shè)計者的經(jīng)驗和多次實驗來確定,因而不存在一個理想的數(shù)學(xué)解析式表示。隱含層單元數(shù)目太多會導(dǎo)致學(xué)習(xí)時間過長、誤差不一定最佳,也會影響網(wǎng)絡(luò)的容錯性。通過改變訓(xùn)練函數(shù)、學(xué)習(xí)函數(shù)等參數(shù)以及網(wǎng)絡(luò)隱含層神經(jīng)元的數(shù)目來觀察訓(xùn)練情況,分析和對比后最終確定最優(yōu)BP神經(jīng)網(wǎng)絡(luò)校正模型。分析實驗結(jié)果可知,2-45-30-2拓?fù)浣Y(jié)構(gòu)建立的神經(jīng)網(wǎng)絡(luò)模型在此次研究的顯示設(shè)備畸變校正中取得最優(yōu)的校正效果。
傳遞函數(shù)是一個神經(jīng)元及網(wǎng)絡(luò)的核心。神經(jīng)網(wǎng)絡(luò)傳遞函數(shù)分為線性型、對數(shù)S型傳遞函數(shù)、正切S型傳遞函數(shù)3種。S型傳遞函數(shù)具有非線性放大增益,對任意輸入的增益等于在輸入曲線中該輸入點處的曲線斜率值。本文采用正切S型傳遞函數(shù)[11]
f(x)的值域為[-1,1],此函數(shù)導(dǎo)數(shù)的值域為[0,0.25],f(x)輸出要達(dá)到±1附近很困難,這意味著可通過將輸出數(shù)據(jù)控制在[-0.9,0.9]范圍內(nèi)的辦法來提高訓(xùn)練速度和精度。
為了比較文獻(xiàn)[10]中多項式擬合方法與本文雙隱含層BP神經(jīng)網(wǎng)絡(luò)畸變校正方法,本文以3種指標(biāo)綜合、全面地衡量空間變換所能達(dá)到的校正精度。
1)偏移距離。
水平方向為
垂直方向為
偏移距離直觀地給出空間變換的校正誤差,可以偏移距離的最大值Exmax和Eymax作為校正精度指標(biāo)。
2) 均方根誤差[12]。
均方根誤差用ERMS表示。
均方根誤差反映了校正圖像與原始圖像偏離的程度。
3)全視場范圍擬合位置精度[8]。
即原始抽樣點(u',v')到校正后對應(yīng)點(u,v)的距離D2與原始抽樣點(u',v')到視場中心點(m,n)的距離D1的比值,其中,視場中心m=0,n=0.584。此精度指標(biāo)更符合大視場顯示設(shè)備的畸變特性。
利用Matlab提供的BP神經(jīng)網(wǎng)絡(luò)工具箱,在Matlab7.1平臺上進(jìn)行仿真。改進(jìn)的BP神經(jīng)網(wǎng)絡(luò)選取網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)為2-45-30-2,訓(xùn)練函數(shù)為trainlm,學(xué)習(xí)函數(shù)為learngd,經(jīng)296次訓(xùn)練后收斂。仿真結(jié)果表明,本文提出的雙隱含層BP神經(jīng)網(wǎng)絡(luò)校正模型收斂速度和收斂精度達(dá)到非常好的效果,完全滿足預(yù)期要求,即X軸、Y軸最大偏移距離E≤10-4,均方根誤差ERMS≤10-6,平均全視場范圍擬合位置精度δ≤10-5。訓(xùn)練結(jié)果如圖2所示。
圖2 改進(jìn)的BP神經(jīng)網(wǎng)絡(luò)訓(xùn)練結(jié)果Fig.2 Result of improved BP network training
雙隱含層BP神經(jīng)網(wǎng)絡(luò)校正圖像前后仿真圖如圖3和圖4所示,校正圖像與原始圖像在空間位置上十分相近。
圖3 畸變圖像Fig.3 Distorted image
圖4 改進(jìn)的BP神經(jīng)網(wǎng)絡(luò)校正圖像Fig.4 Corrected image of improved BP network
實驗結(jié)果表明:為了達(dá)到計算量與擬合精度的平衡,傳統(tǒng)多項式擬合校正模型最優(yōu)最高次數(shù)N=8。由表1可以看出,多項式擬合校正前后21×21抽樣點X坐標(biāo)和Y坐標(biāo)最大偏移距離分別為8.690×10-2mm和2.154 ×10-1mm,均方根誤差為1.651 ×10-3。而基于雙隱含層BP神經(jīng)網(wǎng)絡(luò)畸變校正模型的抽樣點校正前后X坐標(biāo)和Y坐標(biāo)最大偏移距離精確到3.498×10-8mm和2.830 ×10-8mm,均方根誤差達(dá)到 2.035 ×10-10。平均全視場范圍擬合位置精度也由7.06×10-3提高到2.195×10-9。綜上可知,與傳統(tǒng)多項式擬合方法相比,雙隱含層BP神經(jīng)網(wǎng)絡(luò)校正模型的各項精度指標(biāo)提高明顯,校正效果達(dá)到預(yù)期目標(biāo)。
表1 BP神經(jīng)網(wǎng)絡(luò)法與多項式擬合法校正精度比較表Table 1 Precision comparison for BP network method and polynomial fitting method
BP神經(jīng)網(wǎng)絡(luò)具有自學(xué)習(xí)、自組織、較好的容錯性和優(yōu)良的非線性逼近能力,可以在不確知畸變數(shù)學(xué)模型情況下,建立畸變圖像與原始圖像之間的高精度映射關(guān)系,實現(xiàn)相對簡單。雙隱含層BP神經(jīng)網(wǎng)絡(luò)算法相對于其他校正方法處理數(shù)據(jù)能力更強(qiáng),校正精度優(yōu)勢明顯,故BP神經(jīng)網(wǎng)絡(luò)畸變模型適用于精度要求較高的顯示設(shè)備,對工程應(yīng)用具有一定的指導(dǎo)意義。為了提高雙隱含層BP神經(jīng)網(wǎng)絡(luò)處理數(shù)據(jù)速度,可以嘗試將神經(jīng)網(wǎng)絡(luò)與其他優(yōu)化算法如粒子群算法、遺傳算法相結(jié)合,進(jìn)而在硬件平臺達(dá)到實時性圖像畸變校正,這方面有待進(jìn)一步研究。
[1] 林慧英,蘇建,劉玉梅.基于圖像畸變矯正的攝像機(jī)標(biāo)定方法[J].吉林大學(xué)學(xué)報,2007,37(2):433-437.
[2] SONG G Y,LEE J W.Correction of radial distortion based on line-fitting[J].International Journal of Control,Automation and Systems,IEEE,2010,18(3):615-621.
[3] LIN Qiang,ALLINSON N M.Spatial optical distortion correction in an FPGA[J].Signal Processing Systems Design and Implementation,IEEE,2006,6:268-273.
[4] FAN Xintian,SUN Qiang,LU Zhenwu.The geometric distortion correction of uncooled large-sized relative aperture infrared imaging system[J].Infrared Components and Their Applications,SPIE,2005,5640:391-395.
[5] 王洪元,史國棟.人工神經(jīng)網(wǎng)絡(luò)技術(shù)及其應(yīng)用[M].北京:中國石化出版社,2002.
[6] CHU C,WIDJAJA D.Neural network system for forecasting method selecting[J].Decision System,1994(12):13-14.
[7] 王自強(qiáng),李銀妹,樓立人,等.BP神經(jīng)網(wǎng)絡(luò)用于光鑷力的非線性修正[J].光學(xué)精密工程,2008,16(1):6-10.
[8] 侯亞麗,李鐵.基于LM優(yōu)化算法的BP神經(jīng)網(wǎng)絡(luò)目標(biāo)識別方法[J].探測與控制學(xué)報,2008,30(1):53-57.
[9] 董廠虹.Matlab神經(jīng)網(wǎng)絡(luò)與應(yīng)用[M].北京:國防工業(yè)出版社,2005.
[10] 鄭春,周擁軍,溫永強(qiáng).大視場光學(xué)顯示設(shè)備圖像畸變校正算法[J].電光與控制,2011,18(5):23-27.
[11] 史澤林,康嬌,孫銳.基于BP神經(jīng)網(wǎng)絡(luò)的大視場成像畸變校正方法[J].光學(xué)精密工程,2005,13(3):348-353.
[12] ZHAO Xiaochuan,LUO Qingsheng.An image distortion correction algorithm based on quadrilateral fractal approach controlling points[J].IEEE,2009:2676-2681.