竇建宇,潘翀,2,*
1. 北京航空航天大學 流體力學教育部重點實驗室,北京 100083 2.北京航空航天大學 寧波創(chuàng)新研究院 先進飛行器與空天動力創(chuàng)新研究中心,寧波 315800
體視粒子圖像測速(Stereo Particle Image Velocimetry, SPIV)是在二維(2D)PIV技術(shù)的基礎(chǔ)上發(fā)展起來的一種使用2臺相機測量激光照射平面(2D)內(nèi)流體三分量速度場(3C)的技術(shù),使用該技術(shù)可以獲得待測平面內(nèi)的2D3C速度場[1]。SPIV測量的關(guān)鍵之一就是建立多臺相機成像的二維像素空間到三維物理空間的映射[2]。建立這個映射的過程叫做空間標定,具體過程是:通過幾何尺寸和空間位置已知的標定板獲得標定特征點在物理空間和像素空間上的坐標對,再選取合適的標定模型(也稱映射函數(shù))來描述兩者之間的映射關(guān)系,通過最小二乘法來獲取標定模型中的待定系數(shù),從而建立完整的映射關(guān)系。其中,標定模型形式的選擇對標定精度有較大的影響,常用的標定模型包括小孔模型或多項式模型[3-5]。
小孔模型是根據(jù)小孔光學成像原理建立的理想模型。雖然小孔模型的物理意義清晰,但也存在一些缺點,如:需要額外的算法來處理相機拍攝時的畸變[6],擬合過程相對復雜,拓展到多個相機進行聯(lián)合標定時算法的復雜度較高等[4]。
多項式模型通過多項式函數(shù)直接進行像素空間坐標與物理空間坐標之間的映射。相比于小孔成像模型,多項式模型在數(shù)學上更加簡單[7];同時,多項式模型是唯象的全局擬合,可以在一定程度上處理相機畸變。但是,為精確模擬相機鏡頭產(chǎn)生的徑向畸變和切向畸變,多項式通常需要達到六階[8],但SPIV常用的多項式標定函數(shù)往往只取到二階或三階,因此對相機畸變的處理能力有限[9]。
除此之外,神經(jīng)網(wǎng)絡(luò)也被應(yīng)用于相機標定。1998年Yoo和Lee提出了神經(jīng)網(wǎng)絡(luò)直接標定法[10],使用神經(jīng)網(wǎng)絡(luò)建立泛化的映射關(guān)系,對于處理大畸變場景表現(xiàn)出較好的效果?,F(xiàn)有研究集中于神經(jīng)網(wǎng)絡(luò)模型在大相機畸變場景下的精度[11]、神經(jīng)網(wǎng)絡(luò)模型在有噪聲情況下的標定精度和神經(jīng)網(wǎng)絡(luò)模型的訓練方式[10]等的研究。但鮮有針對SPIV實驗場景下的空間標定模型研究,也缺乏對標定模型抑制輸入誤差能力的研究。本文使用仿真方法,研究空間標定過程中的輸入性誤差對小孔模型和多項式模型標定精度的影響和誤差傳播特性,在此基礎(chǔ)上結(jié)合神經(jīng)網(wǎng)絡(luò)的高階擬合能力和聯(lián)合標定能力,搭建可替代小孔模型/多項式模型的神經(jīng)網(wǎng)絡(luò)空間標定模型,進一步通過對比研究證實本文所發(fā)展的神經(jīng)網(wǎng)絡(luò)模型對于輸入性誤差有更好的抑制能力,并且可以更好地適應(yīng)大畸變等極端測量條件。
從產(chǎn)生方式上分,SPIV的標定誤差有兩大來源,第1類是輸入性誤差,即輸入到標定模型中的標定數(shù)據(jù)中存在的誤差,這部分誤差與標定模型無關(guān),是標定時引入的誤差[12];第2類是缺陷性誤差,即由標定模型在某方面的先天缺陷所產(chǎn)生的誤差,比如由于小孔模型的理想化處理導致其無法處理相機畸變而產(chǎn)生的標定誤差,是一種系統(tǒng)性偏差[13]。
本文研究的輸入性誤差是指提取標定點像素空間坐標時產(chǎn)生的特征點識別誤差。標定點在像素空間的位置通常使用圖像處理算法自動化識別[14-15]。盡管可以使用亞像素插值等手段來提高精度[16],但是光照角度、光照強度、感光芯片的隨機白噪聲等因素都會影響到算法的識別精度,因此圖像處理算法識別到的角點距離真實角點往往存在一定的偏差。標定點識別誤差如圖1所示。在實際標定中,標定點識別誤差基本在1 pixel以下。由于具有隨機性,基于單相機的小孔模型和多項式模型對這類誤差都沒有很好的處理辦法,實驗中常常通過改善光照條件和提高相機分辨率等方式減小這部分誤差。而采用多相機聯(lián)合標定的方法,可以在統(tǒng)計意義上一定程度地抵消這一隨機誤差。
圖1 標定點識別誤差示意圖Fig.1 Illustration of calibration point identification error
本文探討的缺陷性誤差主要指畸變產(chǎn)生的誤差。光學系統(tǒng)往往帶有視場畸變,其本質(zhì)是在某些區(qū)域(一般是遠離成像中心點的區(qū)域)的成像具有明顯的非線性特性。畸變會導致成像扭曲變形,小孔模型和多項式模型在標定時都會因為無法擬合成像中的高階部分而產(chǎn)生誤差[17]。此外,雙目/多目系統(tǒng)中相機光軸和測試平面法線方向存在夾角也會帶來缺陷性誤差。對于兩臺相機在同側(cè)對稱布置的SPIV構(gòu)型,當相機夾角較小時,測試平面法線方向上的定位精度較差;而當夾角較大時,測試平面內(nèi)的定位精度較差[17-19]。
本文定義一無量綱量,即誤差衰減系數(shù),來描述輸入性誤差通過標定模型的傳播特性,其定義為
a=10×lg(ein/eout)
(1)
如前文所述,建立從像素空間到現(xiàn)實空間的映射的過程叫做空間標定,其根本是建立一個數(shù)學模型,將像素空間位置對應(yīng)到現(xiàn)實空間中。
相機標定的過程通常需要將相機調(diào)整至實驗狀態(tài)(包括空間位置和姿態(tài)等外部參數(shù)和相機光圈、焦距等內(nèi)部參數(shù)),在待實驗平面處放置標定靶,標定靶上有精確打印的空間坐標已知的特征點陣(通常是圓點或者棋格板的角點),使用相機拍攝標定板,通過數(shù)值圖像處理技術(shù)提取圖片中特征點在像素空間的坐標,選取合適的映射關(guān)系(如多項式模型或小孔模型),將特征點陣在物理空間中的坐標和像素空間中的坐標進行配對,使用最小二乘擬合出映射函數(shù)中的待定系數(shù),即可得到針對特定實驗狀態(tài)的映射函數(shù)[18, 20]。為了獲得對垂直于標定靶平面的縱深方向的準確標定,還需要在垂直實驗平面的方向移動標定靶,拍攝一系列縱向位置改變的標定靶圖像,再對各個縱向位置的標定平面分別擬合出映射關(guān)系[21]。
常用的2種標定數(shù)學模型是小孔模型和多項式模型,下面分別簡要介紹。
小孔模型是根據(jù)小孔成像原理建立的一套模型。在該模型中,將相機成像的過程理想化為小孔成像。小孔成像原理示意圖如圖2所示。從物理實現(xiàn)來看,通常將成像過程分解為3個部分[4]:將待成像物體剛體變換到焦平面;將焦平面上的物體投影到成像平面,即傳感器處;最后將成像平面的信息采樣到每一個像素點上。
圖2 小孔成像模型示意圖[4]Fig.2 Schematic diagram of pinhole imaging model[4]
通常將小孔模型涉及到的參數(shù)分為內(nèi)參和外參兩組,前者是相機內(nèi)部的參數(shù),與焦距、光圈、感光芯片的尺寸等有關(guān)[22],而后者與相機在拍攝時的空間位置和角度有關(guān)。一個典型的小孔模型可表達為
(2)
式中:x和y為像素空間坐標;Xw、Yw、Zw為現(xiàn)實空間坐標;Zc為現(xiàn)實空間做剛體變換后坐標原點在成像平面坐標系中的Z軸坐標;等式右側(cè)前2個矩陣為內(nèi)參矩陣,dx和dy為感光芯片上單個像素的物理尺寸,x0和y0為感光芯片中心點位置,f為相機的等效焦距;第3個矩陣為外參矩陣,R為旋轉(zhuǎn)矩陣,T為平移向量。
(3)
式中:ai、bi和ci為待擬合系數(shù),i=0,1,…,9。另外,有些SPIV的標定算法并不通過多項式表達沿激光平面法線方向的Z分量,而是通過三角定位來處理Z分量[9]。
神經(jīng)網(wǎng)絡(luò)是一類模仿神經(jīng)系統(tǒng)學習過程的算法。使用神經(jīng)網(wǎng)絡(luò)取代傳統(tǒng)空間標定模型的優(yōu)勢在于以下幾個方面:① 空間標定過程的輸入輸出關(guān)系簡單且確定,適合使用神經(jīng)網(wǎng)絡(luò)進行描述;② 神 經(jīng)網(wǎng)絡(luò)通常比給定階數(shù)的多項式具有更強的高階擬合能力,因此便于處理高畸變、非均勻放大率的場景[23];③ 神經(jīng)網(wǎng)絡(luò)具有聯(lián)合標定能力,即其輸出結(jié)果可以同時受到所有輸入信息的影響,因此易于擴展到多相機聯(lián)合標定。本文中的神經(jīng)網(wǎng)絡(luò)的使用方法與其他模型相同。神經(jīng)網(wǎng)絡(luò)也有其自身的缺陷,比如在建立模型的階段,神經(jīng)網(wǎng)絡(luò)的訓練時間較長,本文中神經(jīng)網(wǎng)絡(luò)訓練需要20 min,而多項式模型的建立僅需要0.3 s;在使用標定結(jié)果對1 000個點進行三維重構(gòu)時,神經(jīng)網(wǎng)絡(luò)耗時12.743 9 s,三階多項式耗時0.036 2 s。
本文選用級聯(lián)誤差反向傳播神經(jīng)網(wǎng)絡(luò)(BP神經(jīng)網(wǎng)絡(luò))來建立SPIV空間標定模型,其原因是BP神經(jīng)網(wǎng)絡(luò)適用于空間標定這類高階函數(shù)擬合問題[22],同時其發(fā)展也相對成熟,通過調(diào)整網(wǎng)絡(luò)節(jié)點數(shù)量、隱含層數(shù)量及訓練方法可以方便地優(yōu)化其在空間標定中的性能[24]。
圖3 SPIV標定神經(jīng)網(wǎng)絡(luò)模型示意圖Fig.3 Schematic diagram of neural network model for SPIV calibration
為了尋找合適的神經(jīng)網(wǎng)絡(luò)參數(shù),本文針對神經(jīng)網(wǎng)絡(luò)的隱含層數(shù)、節(jié)點數(shù)和訓練方法等進行了對比測試。神經(jīng)網(wǎng)絡(luò)的參數(shù)尤其是其層數(shù)和節(jié)點數(shù)具有隨意性,并且暫時只有經(jīng)驗公式可供參考,對各個參數(shù)逐一測試時間成本過大。考慮到影響神經(jīng)網(wǎng)絡(luò)結(jié)果的一組矛盾分別是過擬合和欠擬合,過擬合指的是神經(jīng)網(wǎng)絡(luò)過于復雜,過度學習了樣本的特點,以至于把其中的誤差當成了樣本規(guī)律;欠擬合指的是神經(jīng)網(wǎng)絡(luò)學習能力不足,以至于不能完全學習樣本的規(guī)律[25]。所以本文嘗試找出抗過擬合能力較強的訓練方式以避免過擬合,隨后選擇一略大的網(wǎng)絡(luò)層數(shù)和網(wǎng)絡(luò)節(jié)點數(shù)避免欠擬合。
神經(jīng)網(wǎng)絡(luò)的訓練方法指的是在訓練過程中利用樣本更新權(quán)值的方法。不同的訓練方法對于神經(jīng)網(wǎng)絡(luò)性能的影響比較大。對于各種訓練方法的具體原理已經(jīng)超出本文的范圍,將不再贅述。本文使用仿真測試的方法,對比了LM(Levenberg-Marquardt)訓練法、貝葉斯正則化方法和動量訓練法在不同網(wǎng)絡(luò)復雜程度下的表現(xiàn)。仿真實驗的技術(shù)細節(jié)在第4節(jié)給出。
一般認為LM法收斂速度較快,貝葉斯方法抗過擬合能力強,動量法可以避免局部最優(yōu)問題。對比計算中分別選擇具有1~4層隱含層的神經(jīng)網(wǎng)絡(luò)。增加隱含層數(shù)可以較大地提高神經(jīng)網(wǎng)絡(luò)的高階擬合能力,即對于相同總節(jié)點數(shù)的神經(jīng)網(wǎng)絡(luò),擁有更多層數(shù)的網(wǎng)絡(luò)擁有更強的高階擬合能力,同時也更容易產(chǎn)生過擬合。但使用更多層的神經(jīng)網(wǎng)絡(luò)有利于減少總的節(jié)點數(shù),以減小計算量。對比時,本文設(shè)定的訓練結(jié)束條件為計算達到50 000步或者計算時間超過20 min或者代價函數(shù)梯度小于10-6。在此情況下,影響計算精度的幾個因素分別是收斂速度、網(wǎng)絡(luò)復雜程度和訓練方法抗過擬合能力。表1給出3種訓練方法在不同隱含層和節(jié)點數(shù)下,在第4節(jié)給出的缺省標定場景下的空間標定誤差,空間標定誤差的計算方法在4.1節(jié)中具體給出。從表1可見,動量法的誤差始終較大,LM法和貝葉斯正則化方法誤差都是隨著隱含層層數(shù)的增加先減后增,在三層五節(jié)點時達到最小誤差,其中貝葉斯正則化方法得到的誤差更小。因此,本文選用三層五節(jié)點網(wǎng)絡(luò),并使用貝葉斯正則化方法進行訓練。
表1 隱含層數(shù)、節(jié)點數(shù)和訓練方法對神經(jīng)網(wǎng)絡(luò)標定誤差的影響
為了得到標定特征點在像素空間和物理空間的真實位置,以及定量控制輸入性誤差,本文使用仿真實驗而非實物實驗來對比研究各種標定模型的誤差傳遞特性,從而證明神經(jīng)網(wǎng)絡(luò)標定的優(yōu)勢。
本文使用基于小孔模型的空間投影算法將物理空間中的標定點陣投影至左右2個相機的像素空間,從而形成訓練數(shù)據(jù)集和測試數(shù)據(jù)集。為盡可能還原真實情景,使用的投影算法考慮了相機的焦距、分辨率、傳感器單元尺寸等相機內(nèi)部參數(shù)[26],以及標定板和相機的空間位置關(guān)系等外部參數(shù),同時還模擬了相機鏡頭的畸變(包含徑向畸變和切向畸變)和特征點識別誤差。特征點識別誤差通過在特征點的像素空間坐標位置上疊加高斯白噪聲來模擬,用高斯白噪聲的標準差來定量刻畫特征點識別誤差的強度。
在仿真模擬中,標定靶上的特征點規(guī)則排列,在標靶平面內(nèi)包含20×20個點,物理空間中標定靶在法線方向上等間距移動10次,從而形成20×20×10的訓練集點陣。測試集為標定靶移動所覆蓋的三維空間中隨機分布的20 000個測試點。典型的訓練集截面和測試集截面如圖4所示。
圖4 訓練點陣及測試點陣示意圖Fig.4 Illustration of slice of training dot array and testing dot array
對比測試過程如下:首先使用同一組訓練集訓練神經(jīng)網(wǎng)絡(luò)、多項式模型及小孔模型,然后使用同一組測試集計算各模型的輸出誤差,輸出誤差定義為每個測試點的模型輸出(ξ)與其真實物理空間坐標之差的絕對值,使用測試集中所有點的輸出誤差(包含X、Y、Z這3個分量)的L2范數(shù)作為此次測試的誤差量度。為了保證實驗結(jié)果的可靠性,對于每一個工況,都進行30次重復實驗,取平均值作為最終結(jié)果。
4.2~4.4節(jié)中模擬的基準實驗工況為:相機至拍攝平面0.75 m,兩相機對稱布置在實驗平面同側(cè),無特殊說明時相機間夾角為60°,待測量平面(激光片光照明平面)的厚度為2 mm;相機的等效焦距50 mm,分辨率為2 594 pixel×2 048 pixel,像素單元為正方形、單個像素單元邊長為4.8 μm。后續(xù)測試將討論聯(lián)合標定、特征點識別誤差和相機畸變對標定精度的影響。
為了證明聯(lián)合標定可以在一定程度上增強標定模型對于輸入誤差的抑制能力,首先對比使用和未使用聯(lián)合標定的神經(jīng)網(wǎng)絡(luò)在抑制誤差傳播上的性能表現(xiàn)。使用聯(lián)合標定時,神經(jīng)網(wǎng)絡(luò)的輸入為左右相機的4個坐標(以下簡稱雙目標定);未使用聯(lián)合標定時,需要對左右2個相機分別訓練一套神經(jīng)網(wǎng)絡(luò)(以下簡稱單目標定)。
圖5給出有/無聯(lián)合標定能力的神經(jīng)網(wǎng)絡(luò)的誤差衰減系數(shù)a隨輸入誤差的變化。如前所述,使用像素平面上特征點位置的高斯白噪聲來模擬輸入誤差(特征點識別誤差),所模擬的輸入誤差的標準差范圍為0.012 5~3.2 pixel。需要注意的是,真實的標定實驗中,特征點識別誤差一般不超過1 pixel。從圖中可以看出,單目標定時(無聯(lián)合標定),神經(jīng)網(wǎng)絡(luò)在輸入誤差較小(<1 pixel)時無法抑制誤差傳遞(a<0),但雙目標定(有聯(lián)合標定)可以在一個很大的輸入誤差范圍內(nèi)抑制誤差傳遞。因此,下文中用到的神經(jīng)網(wǎng)絡(luò)標定將采用雙目聯(lián)合標定。遵循一般做法,多項式模型采用單目標定;此外,小孔模型無法采用雙目聯(lián)合標定。
圖5 聯(lián)合標定能力對標定精度的影響Fig.5 Influence of joint calibration capability on calibration accuracy
標定模型對于輸入誤差的響應(yīng)特性可以在一定程度上反映該模型的魯棒性和高階擬合能力。一般來說,高階擬合能力和魯棒性是相互制約的。本節(jié)在典型工況(相機等效焦距50 mm、相機夾角60°)下對比研究了4種標定模型(神經(jīng)網(wǎng)絡(luò)、三階與二階多項式和小孔模型)對輸入誤差的響應(yīng)。仿真結(jié)果如圖6所示??梢?,神經(jīng)網(wǎng)絡(luò)模型和三階多項式模型的性能優(yōu)于二階多項式和小孔模型,兩者均能在很大的輸入誤差范圍內(nèi)抑制誤差傳遞,且前者相對更優(yōu)。而二階多項式和小孔模型在輸入誤差較小(<1 pixel)時放大了誤差(a<0)。
圖6 輸入誤差對誤差處理能力的影響Fig.6 Influence of input error on error processing ability
為減小相機畸變對標定的影響,在SPIV實驗中應(yīng)盡量避免使用小等效焦距的相機。如前所述,神經(jīng)網(wǎng)絡(luò)的高階擬合能力較強,在處理具有高畸變的工況時應(yīng)該具有更好的表現(xiàn)。本節(jié)研究相機畸變對標定模型精度的影響。在典型工況(60°相機夾角,輸入誤差標準差為0.4 pixel)下,相機具有固定的拍攝距離和畸變系數(shù),等效焦距發(fā)生變動。因為畸變系數(shù)和等效焦距共同決定畸變大小,因此可以近似用等效焦距來表征畸變的大小。
圖7給出誤差衰減系數(shù)隨相機等效焦距的變化曲線。所評估的4種模型中,神經(jīng)網(wǎng)絡(luò)仍然具有最好的表現(xiàn),只在極短焦距時出現(xiàn)a<0的情況,且隨著焦距的增大(畸變的減小)a數(shù)值趨于穩(wěn)定。相比之下,三階多項式也具有抑制誤差傳遞的能力,但性能不及神經(jīng)網(wǎng)絡(luò)。
圖7 相機畸變對誤差處理能力的影響Fig.7 Influence of camera distortion on error processing ability
為了驗證仿真實驗中的結(jié)論,本文針對神經(jīng)網(wǎng)絡(luò)、多項式模型和小孔模型進行了測試。實驗中的輸入誤差未知,因此實驗中使用絕對誤差而非誤差衰減系數(shù)作為衡量標準。
實驗中使用2臺??低暤墓I(yè)CCD相機(MV-CH050-10UM),其分辨率為2 000 pixel×2 000 pixel, 相機與標定平面法線的夾角為3°,標定空間為170 mm×170 mm×1 mm。棋盤格標定板由高精度位移臺定位,實驗中一共拍攝10個標定平面,相鄰標定平面的法向間距為0.1 mm。實驗現(xiàn)場如圖8所示。
圖8 實驗場景Fig.8 Experimental scene
空間定位的絕對誤差如表2所示。絕對誤差由4.1節(jié) 給出的方法來評估。從表中可見,神經(jīng)網(wǎng)絡(luò)標定模型相比于其他標定模型具有更高的定位精度。三階多項式略優(yōu)于二階多項式,兩者明顯優(yōu)于小孔模型。實驗結(jié)果與仿真結(jié)果定性一致。
表2 4種空間標定模型的實測標定誤差
本文針對SPIV兩相機空間標定的誤差產(chǎn)生和傳播特性發(fā)展了一種基于神經(jīng)網(wǎng)絡(luò)的SPIV空間標定模型,使用仿真實驗手段和實驗測試證實:
1) 神經(jīng)網(wǎng)絡(luò)模型具備可擴展的聯(lián)合標定能力,可通過隨機誤差相互補償?shù)姆绞接行б种戚斎胝`差在標定-重構(gòu)過程中的傳播;而多項式模型和小孔模型在一般場景下均會放大輸入誤差。
2) 神經(jīng)網(wǎng)絡(luò)模型的高階擬合能力使其尤其適合于大畸變場景。
3) 在常見的SPIV光學參數(shù)下,神經(jīng)網(wǎng)絡(luò)模型的空間定位誤差僅為三階多項式的1/4。
神經(jīng)網(wǎng)絡(luò)模型因其可擴展性,可以方便地使用更多相機開展聯(lián)合標定,后續(xù)將嘗試將神經(jīng)網(wǎng)絡(luò)模型用于層析PIV的三維空間標定。