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