胡 浩,魏 斌,梁 晉,王惠剛,張永慶
(1. 西北工業(yè)大學 航海學院 青島研究院,陜西 西安 710072 2. 河北科技大學 機械工程學院,河北 石家莊 050091 3. 西安交通大學 機械工程學院,陜西 西安 710049)
視覺測量系統(tǒng)正被廣泛用于科學研究和工業(yè)現(xiàn)場,主要任務是從拍攝的二維圖像中解析出對應場景的三維信息,如表征物體幾何形狀的關鍵位置坐標,由此識別或重建物體[1-2]。然而受工作距離、視場范圍及成像分辨之間的相互制約,視覺系統(tǒng)多用于自身所限定視場范圍內(nèi)的尺寸測量和檢測。隨著工業(yè)制造水平的不斷提高,工業(yè)制造及軍用場景對大范圍、大尺寸高精度測量的需求越來越多,如大型裝備空間位置的定位、風洞試驗模型的運動姿態(tài)跟蹤、飛機蒙皮的損傷監(jiān)測、機翼飛行過程中的變形測量、重型直升機旋翼槳葉的動態(tài)分析以及水下遠距離光學三維成像與探測等[3-9]。
相機標定是三維視覺系統(tǒng)的關鍵。在建立相機成像模型后,一般將通過實驗與計算求解其參數(shù)的過程稱之為相機標定,其本質(zhì)是建立二維圖像與三維空間的坐標映射關系[2],標定的精度直接影響三維重建的準確性,尤其是對于大視場大尺寸測量。經(jīng)典的標定方法一般是通過采集具有已知歐式空間結(jié)構(gòu)的標靶圖像來實現(xiàn)的。最常用的R. Y. Tsai 提出的兩步法[10]和張正友提出的棋盤網(wǎng)格平面標定法[11]都需要制作較高精度的標靶來保證標定的最終精度。李文龍等提出的用于渦輪葉片檢測的高精度標定方法標定精度可達0.02 mm,主要用于小視場測量,且需要精確測量所用三個靶球的中心位置[12]。王向軍等提出的利用三坐標設備和發(fā)光二極管對相機進行分區(qū)域標定方法能夠克服大型標靶制造困難和小型標靶在大視場中標定精度低的缺點[13],但由于需要借助三坐標測量設備,難以在實際工程現(xiàn)場使用。Faugeras 等[14]提出的相機自標定的思想,不需要已知標靶歐式空間結(jié)構(gòu)和其他的空間三維信息,僅利用多次成像之間的約束關系來計算相機參數(shù),并將相機內(nèi)參數(shù)、外參數(shù)和標靶三維信息都作為未知量進行整體光束平差解算,目前在工業(yè)測量中最為常用[15-20]。武漢大學馮文灝等研究者[21-24]提出并進一步發(fā)展了基于攝影測量的相機柔性標定方法。Luhmann 等發(fā)展了自動化自標定方法[25]。這些方法在一定條件下能夠?qū)崿F(xiàn)高精度的相機標定,但要求標靶盡可能覆蓋整個視場區(qū)域,并需要制造與測量視場尺寸匹配的標靶。這對于十米及以上更大尺寸的測量,甚至幾十米的超大尺寸測量是不現(xiàn)實的,制造和維護均存在問題[19],如加工難度大、精度低、自身發(fā)生變形、現(xiàn)場移動操作繁瑣等。
由此,本文提出一種大視場視覺系統(tǒng)的分步標定方法,并進行了實驗驗證。近距離采用小尺寸標靶進行相機內(nèi)參數(shù)標定,遠距離視場上布置全局標志點組成控制場,實現(xiàn)相機外參數(shù)標定,最后進行光束平差優(yōu)化,從而獲得相機精確的內(nèi)外參數(shù)。
相機成像可用小孔成像模型近似表示。如圖1 所示,空間三維點P(X,Y,Z)經(jīng)過鏡頭投影中心S(XS,YS,ZS)后,投影到像平面上的像點為p(x,y),o 為 主 點(x0,y0),So為 焦 距f(單 位:mm)。理想情況下,P、S和p三點共線,但由于鏡頭存在各種畸變,使得各像點在像平面上相對其理論位置存在偏差(Δx,Δy)(單位:mm),則相機成像的實際數(shù)學模型為:
圖1 相機成像模型Fig.1 Camera imaging model
坐標系相對于相機坐標系的變換矩陣。
本文標定算法將所有可能的畸變都考慮在內(nèi),采用的畸變模型為:
其中:K1,K2,K3是徑向畸變系數(shù);B1和B2是切向畸變系數(shù);E1和E2是像平面畸變系數(shù);r2=x2+y2;r0是畸變曲線的二次零點。
對于十米及以上大視場的標定,傳統(tǒng)標定方法由于需定制與測量視場尺寸匹配的標靶,導致標定過程較為復雜且精度不高。本文利用相機透視成像模型截面相似性質(zhì),提出將相機的內(nèi)參數(shù)和外參數(shù)分離進行標定的新方法。整個標定流程如圖2 所示,圖中右側(cè)的圓點代表每一步引入計算的數(shù)據(jù)類型。在近距離采用小幅面標靶首先對相機內(nèi)參數(shù)進行標定;在被測空間布置若干個編碼標志點(編碼點),利用多片后方交會原理,計算得到相機的外方位參數(shù)。
圖2 分步標定流程Fig.2 Flowchart of two-step calibration
將方程(1)線性化可得如下誤差方程:
其中:V為像點坐標殘差;X1,X2,X3分別為內(nèi)參數(shù),外方參數(shù)以及物方點坐標的改正數(shù);A,B,C分別為內(nèi)參數(shù),外參數(shù)和空間點坐標對應的偏導數(shù)矩陣;L為觀測值,即圖像點坐標。若以圖像坐標作為觀測值,把相機的內(nèi)參數(shù)、外參數(shù)和空間點坐標作為未知數(shù)來求解,此過程稱為光束平差。
2.1.1 求解標靶標志點的三維坐標及圖像坐標
所用標靶的標志點三維坐標為已知,利用西安交通大學研制的XJTUDP 工業(yè)攝影測量系統(tǒng)測定,該系統(tǒng)測量精度為0.1 mm/4 m,測量過程詳見文獻[20]。將標靶分別在兩個相機各自的視場內(nèi)擺放多個不同的方位,利用相機采集標靶的序列圖像。然后,對采集圖像進行處理,識別并定位標志點,求出其中心的圖像坐標。
2.1.2 角錐體解算外參數(shù)初值
根據(jù)標志點的三維空間坐標和識別出的標志點的二維圖像坐標,采用角錐體法計算相機的外參數(shù),即旋轉(zhuǎn)矩陣R和平移矩陣T。如圖3 所示,該方法利用成像數(shù)學模型中光線頂角相等的原理求解外參數(shù)。假設Q1,Q2和Q3分別是世界坐標系下的三個已知空間點,q1,q2和q3分別為Q1,Q2和Q3所對應的圖像點,根據(jù)相似三角原理:
圖3 角錐體法原理Fig.3 Principle of pyramid method
對于角錐體o-q1q2q3,在圖像坐標系下:
世界坐標系O-XYZ下,對于角錐體o-Q1Q2Q3存在類似關系,
由 于 空 間 點Qi(i=1,2,3)在 世 界 坐 標 系O-XYZ下的坐標和相應的像點qi在像空間坐標系o-xyz中的坐標均為已知,所以oq1、oq2、oq3、q1q2、q2q3、q1q3、Q1Q2、Q2Q3和Q1Q3的 長 度為已知。其中,oQ1、oQ2和oQ3三個長度是未知數(shù),式(7)為非線性方程,采用最小二乘迭代法求解。求得三邊長度oQ1、oQ2和oQ3之后,可得三個空間點在像空間坐標系下的對應坐標。
則旋轉(zhuǎn)矩陣R為:
其中:Qw和Qc分別為三個空間點在世界坐標系和像空間坐標系下的重心。
則平移矩陣T為:
2.1.3 內(nèi)參數(shù)精確求解
得到標志點三維坐標和相機外參數(shù)后,對應的誤差方程(4)可簡化為:
以像點坐標殘差優(yōu)化目標,將相機內(nèi)參數(shù)的初值設為其出廠的參數(shù),然后代入方程(12)采用最小二乘算法解算得到相機內(nèi)參數(shù)X1。
在前截面通過小尺寸標靶分別標定得到每個相機的內(nèi)參數(shù)后,在后截面則通過布置若干編碼標志點來標定相機的外參數(shù)。
利用XJTUDP 工業(yè)攝影測量系統(tǒng)重建后截面編碼標志點的三維坐標。如圖4 所示,第一步,采用單相機從多個角度拍攝被測區(qū)域布置的編碼標志點,得到一組圖像。第二步,進行標志點檢測,得到標志點亞像素級的圖像坐標。第三步,選用兩幅圖像進行相對定向,計算出五個外參數(shù),并重建出至少5 個編碼點的三維坐標作為控制點。第四步,根據(jù)這些圖像包含的控制點數(shù)目,依次循環(huán)處理剩余的圖片;首先利用控制點定向該圖片,然后與已經(jīng)定向好的圖片分別搜索公共的未重建的編碼標志點,然后重建出來。所有圖片都定向完畢后,利用光束平差算法同時調(diào)整內(nèi)、外參數(shù)和物體點的三維坐標。最后加入比例尺和溫度補償,最終得到物體點的三維坐標。
圖4 攝影測量三維重建處理流程Fig.4 Flow chart of 3D reconstruction process of the photogrammetry
本文采用圖5 所示的編碼標志點,白色實心圓點周圍帶有同心編碼環(huán)帶,每個點都擁有唯一的編碼ID,有利于降低同一圖像中多個標志點的誤匹配。首先,采用Canny 算法搜索標志點中間實心圓的邊緣,并利用橢圓最小二乘擬合算法來求解其中心圖像坐標。然后,從中心向編碼環(huán)徑向作內(nèi)外邊界的連線,在連線上等距離采樣5 次,以5 次采樣的中值與標志點的灰度閥值(統(tǒng)計)作比較,大于閥值則本環(huán)帶的編碼為1,否則為0;每36°(對應于10 位的編碼標志點)重復上述操作,旋轉(zhuǎn)一周后得到形如“0101101111”的二進制編號。
圖5 編碼標志點Fig.5 Coding mark point
由于編碼標志點在圖像中的角度不同,得到的序列也會不同,所以先將其轉(zhuǎn)換為十進制、得到一個確定數(shù)值,然后將這個序列循環(huán)向右移位,每移動一位得到一個新序列和對應的十進制數(shù)值,N 位編碼會得到N 個十進制數(shù)值,取其中最小值作為編碼的ID 值。
以測得的編碼標志點三維坐標為控制點,對兩個測量相機的位姿分別進行絕對定向求解其外參數(shù)。已知標志點的三維坐標和內(nèi)參數(shù),求解外參數(shù)的過程稱為后方交會,對應的誤差方程為:
得到外參數(shù)X2后,將相機內(nèi)參數(shù)、外參數(shù)以及后截面上標志點的三維坐標一起代入方程(4),并利用列文伯格-馬夸爾特(LM)方法[17]求解R,T的最優(yōu)解,并引入比例系數(shù),從而完成相機內(nèi)外參數(shù)的整體優(yōu)化標定。
最后,將標定得到的外參數(shù)轉(zhuǎn)換到以相機1為基準的坐標系下,從而完成對大視場視覺測量系統(tǒng)相機的整體標定。
為驗證所述標定方法的可行性和精度,設計了如下標定實驗。首先搭建如圖6 所示的大視場實驗環(huán)境,在長10 m、高3 m 的墻面上隨機粘貼若干編碼點(黑底白點,內(nèi)圓直徑40 mm)。構(gòu)建雙目視覺測量系統(tǒng),硬件組成:BFLY-PGE-50H5M 相機(分辨率2 448×2 048 pixels,像元尺寸3.45 μm)2 個、Schneider 8 mm 定焦鏡頭2個、工作站1 臺、相機觸發(fā)控制箱1 臺、三腳架2個、標定十字架(十字型標靶,表面粘貼直徑為15 mm 的編碼標志點)1 套、500 W 高亮度LED光源1 套、設備線纜若干,直徑200 mm 的10 位編碼點1 套。
圖6 標定實驗現(xiàn)場Fig.6 Experiment environment
3.1.1 內(nèi)參標定
如圖7 所示,將標靶分別在兩個相機的視場內(nèi)擺放8 個不同的方位,利用相機采集標定圖像并識別編碼點的圖像坐標和編碼ID 值,如圖8。根據(jù)光束平差方程求解編碼點三維坐標和相機內(nèi)參數(shù)值。相機內(nèi)參數(shù)計算結(jié)果見表1。
圖7 內(nèi)參標定示意圖Fig.7 Schematic diagram of internal parameter calibration
圖8 內(nèi)參標定圖像采集及編碼點識別Fig.8 Image acquisition and coding point recognition for internal parameter calibration
表1 相機內(nèi)參數(shù)標定結(jié)果Tab.1 Result of internal parameter calibration
3.1.2 外參標定
如圖9 所示,拍攝墻面上編碼點的多組圖像(5~9 幅即可),并利用工業(yè)近景攝影測量系統(tǒng)重建出這些編碼點的三維坐標,然后將兩個相機對準編碼點同時采集1 幅圖像,基于多片后方交會原理解算得到相機的外參數(shù),結(jié)果見表2。
表2 雙目相機的外參數(shù)Tab.2 Result of external parameter calibration
圖9 外參標定圖像采集及編碼點識別Fig.9 Image acquisition and coding point recognition for internal parameter calibration
為評估標定方法精度,根據(jù)標定得到的兩相機的內(nèi)外參數(shù),將重建出的標靶上編碼點的三維坐標反投影到相機的像平面上,計算其重投影誤差,通過重投影誤差來定量評估標定精度。
圖10 所示為其中3 個姿態(tài)下標靶上編碼點在左相機(相機1)像平面上的重投影誤差分布,可以看出測得的編碼點三維坐標在左圖像上的投影點與實際圖像點偏差基本一致。重投影誤差小于0.08 個像素,表明本文標定方法能夠在十米大視場下保持較好的標定精度。
圖10 重投影誤差分布圖Fig.10 Error distribution of reprojection
為進一步驗證本文標定方法在大視場三維測量中的精度表現(xiàn),參照德國VDI-VDE 2634 part 1 三維光學測量精度驗證標準,采用圖11 中所示標稱長度為6 100.056 5 mm(出廠校檢精度為0.003 mm)的因瓦合金高精度標尺作為長度基準,利用標定后的雙目視覺測量系統(tǒng)對標尺進行多次測量并重建出其三維長度,然后與標尺的標稱長度進行對比,根據(jù)得到的相對誤差來評價該系統(tǒng)的三維測量精度。
圖11 因瓦合金標尺Fig.11 Invar alloy standard ruler
測量時,手持標尺在測量視場內(nèi)移動,盡量使運動范圍充滿整個測量空間,運動過程中保持標尺端兩個標志點面向相機方向,重復拍攝并測量標尺兩端點間的長度,然后將測量結(jié)果與其標稱值比較,得到標尺長度測量的相對誤差。
兩相機拍攝的標尺部分位姿圖像見圖12,測量結(jié)果見表3。從實驗結(jié)果可以看出,使用本文標定方法,在測量幅面寬度為10 m 時,標尺長度多次測量的相對誤差最大值為0.007%。
圖12 左右相機拍攝的標尺部分運動位姿的圖像Fig.12 Images of the ruler in different positions
表3 長度測量結(jié)果Tab.3 Result of length measurement
綜上,本文方法僅需采用小尺寸標靶、并在測量視場后截面布置若干編碼點(10~30 個),即可快速方便的完成十米測量視場相機的準確標定。
在某型直升機旋翼試驗塔上開展了10 m 直徑槳葉高空旋翼測量試驗,旋翼高速運轉(zhuǎn)時無地面效應,實驗現(xiàn)場如圖13 所示。首先利用小尺寸的標靶在室內(nèi)完成相機內(nèi)參數(shù)的標定,然后將雙目視覺測量系統(tǒng)安裝到旋翼的正下方,直接在旋翼表面隨機布置若干編碼點,并以此為標定的特征點進行相機外參數(shù)的快速標定和優(yōu)化。
圖13 旋翼塔測量實驗現(xiàn)場Fig.13 Experiment site of the rotor tower
在槳葉根部沿著槳葉運行方向做1 條垂直于槳軸A 的異面直線L,旋翼運動時該直線變?yōu)長',角度相對變化量即為總距角,如圖14 所示。旋翼轉(zhuǎn)速為514 r/min,當槳葉轉(zhuǎn)入相機視場時,連續(xù)采集旋翼運動圖像,測量得到的三維變形結(jié)果如圖15 所示。當輸入總距角為0°時,擬合旋翼平飛基準平面,槳軸方向即為基準面的垂線方向。異面直線L和L'則通過測得的槳葉根部三維數(shù)據(jù)擬合得到。
圖14 旋翼總距角Fig.14 Total pitch angle of the rotor
圖15 旋翼三維全場變形測量結(jié)果Fig.15 Result of three-dimensional deformation of the rotor
以擬合的基準平面為參考平面,機械操控輸入總距角從0°、2°、4°、6°度依次變化,測得旋翼槳葉根部總距角如圖16 所示,測得槳葉根部總距角與機械操控輸入總距角誤差在0.1°內(nèi),符合實際運動規(guī)律。本試驗得到了旋翼塔上直升機槳葉的三維全場變形數(shù)據(jù),解決了大視場下高速旋翼槳葉全場變形的三維測量難題,為分析直升機動力學及其相互耦合問題分析提供了科學數(shù)據(jù)。
圖16 總距角測量結(jié)果Fig.16 Result of total pitch angle of the rotor
本文提出了一種大視場視覺測量系統(tǒng)多相機內(nèi)、外參數(shù)的分步標定方法,并設計實驗進行了可行性和精度驗證。對于高空旋翼變形測量,近距離首先用小幅面標靶完成內(nèi)參數(shù)的標定,然后在遠距離被測空間布置若干個編碼標志點,利用多片后方交會原理解算外參數(shù),最后通過光束平差優(yōu)化進一步得到相機準確的內(nèi)外參數(shù)。實驗表明,該方法標定后高速旋翼總距角的測量誤差小于0.1°。該方法可實現(xiàn)相機內(nèi)外參數(shù)的分離標定,即內(nèi)參數(shù)標定在實驗室內(nèi)進行,外參數(shù)標定在現(xiàn)場實現(xiàn),因此具備較好的工程價值。
后續(xù)工作將重點圍繞如何去除后截面標定所需的編碼點進行,即直接利用被測目標表面已有的特征(如隨機斑點、紋理線、角點等),與前截面識別的標志點融合,在保證標定精度的同時進一步簡化大視場視覺測量系統(tǒng)的標定流程。