趙祚喜,馮 榮,朱裕昌,談 婷
(華南農業大學 工程學院,廣東 廣州 510642)
在航空航天、機械制造、汽車裝配等領域,各種復雜零件的研制、生產和裝配、建模、仿真、分析,需要先進的檢測技術和測量方法。對于越來越多需要進行空間三維測量的工件,傳統的線、面檢測方法已不能滿足生產需要,因此坐標測量技術將作為幾何量測的研究重點[1]。傳統的坐標測量方法一般采用全站儀、三坐標測量儀、激光跟蹤儀等進行三維關鍵點的測量,這些儀器每次只能測量很少的點,測量速度相當慢[2-4]。由于基于計算機視覺的三維定位技術具有非接觸、無破壞以及高分辨率、測量效率高的優點,已逐漸成為幾何量測技術的研究重點[5]。
3D視覺測量系統根據相機是否需要固定分為大致分為兩種測量模式:一種是攝像機固定式的三維測量,即攝像機固定,操作人員手持光筆,將光筆低端的測針接觸物體表面上的被測點,攝像機系統通過光筆上鑲嵌的多個光學特征點,求解出光筆的空間位姿參數,由于測針的幾何位置已知,被測點的三維坐標即可被精確測量出來;另一種是攝像機移動式的三維測量,事先在被測物體表面粘貼標記點,利用手持式高分辨率數碼相機在多個位置對被測物體進行拍攝,測量軟件對圖像自動進行處理并計算出標記點的空間坐標,實例是各種手持3D掃描儀。
在3D視覺定位領域的研究和應用很多。趙永國[6]等在移動機器人避障過程中為獲取障礙物在現實世界坐標系下的三維坐標,利用MATLAB與Triclops SDK數據庫,開發了一套基于雙目視覺的移動機器人避障系統,實測數據表明該套系統具有不錯的避障表現;解則曉[7]等為了對車間生產工件實現高精度、大尺寸的三維坐標現場測量,設計了一套光筆測量系統,該系統由兩臺面陣CCD攝像機、光筆、支架及一臺筆記本電腦組成,通過試驗測試了該系統在有效視場范圍內的測量精度,基本滿足要求不太高的大尺寸現場測量;董英華[8]等為提高其研發的光筆式視覺坐標測量系統的測量精度,采用改進的Tsai標定法實現攝像機的高精度標定,通過數學平均思想提高了測頭中心的穩定性及算法的收斂速度;孔筱芳[9]等提出一種雙目攝像機標定及空間坐標重建方法,采用了高精度GPS代替2D或3D靶標,與傳統的3D靶標標定方法相比,其空間重建坐標相對距離誤差從1.56%減少到0.52%,具有較高的空間坐標重建精度,但GPS不便于安裝到被測物體表面點上,不滿足實際的應用場景。
國內外一些公司已開發出成熟的3D測量產品,國外的有挪威Metronor公司的SOLO系統、美國GSI公司的V-STARS系統和Aicon公司的ProCam系統等[10],國內的有北京天遠三維科技公司的DigiMetric三維攝影測量系統和Robot動作捕捉系統等。SOLO系統主要由相機、測量光筆及測針、筆記本電腦及測量軟件組成,該系統可實現30 m的范圍測量,長度測量精度為25 μm,還可以測量600 mm深度的隱藏點[11];V-STARS/S系統由1套測量型數碼相機、1臺筆記本電腦(含系統軟件)、1根基準尺、1根定向棒、1組人工特征標志點組成,10 m范圍的坐標測量精度達到0.044 mm[12];DigiMetric三維攝影測量系統是在被測物體表面粘貼若干標記點,利用手持式高分辨率數碼相機在多個位置對被測物體進行拍攝,將拍攝所得圖像導入到計算機中,DigiMetric測量系統軟件對圖像自動進行處理并計算出標記點的三維坐標,具有測量環境不受限制,測量范圍不受限制,操作簡單方便等優點,坐標測量精度≤0.1 mm/4 m。
以上的方法往往需要昂貴的儀器、專門的設備因而應用受到限制,例如能同時定位的點數、二次開發能力等的限制,難以在一般的實驗室推廣使用。本文提出一種不需要昂貴儀器的物體點世界坐標系3D定位方法。該方法基于直接線性變換(Direct Linear Transformation,DLT)的物體上點的世界坐標系下的三維定位方法, 適用于單臺相機移動獲取的多視圖實現的靜態結構體點的定位,也適合于多臺相機同時拍攝獲取的機器上點的三維動態定位。根據空間幾何線-線交會原理,利用最小二乘法實現空間點的世界坐標測量,與傳統的測量法相比,該方法能夠實現任意個點的3D世界坐標測量,而且相機位置可移動,使用方便。

圖1 小孔成像模型示意圖
相機標定的基本方法是通過環境(有專門的幾何形狀已知的標定對象或無專門的標定對象)來確定相機幾何參數的過程,是計算機3D視覺應用的首要步驟,按照使用的標定對象的不同可分為3D,2D,1D及無標定對象[13]。DLT標定方法是一種基于3D標定對象的相機標定方法,即將標定對象上每一個已知控制點(3D世界坐標已知)和相機圖片上的對應的成像點(圖像坐標系下2D像素坐標已知)建立線性模型(式(2)),將相機內外參、幾何失真參數視為未知數,設置多個控制點使所列的方程數不小于未知數數量,再利用最小二乘法實現這些參數的線性估計(不使用旋轉矩陣各個元素之間的非線性約束),原理簡單計算工作量小[13-14]。本章有關DLT方法參考了文獻如下[15],DLT相機標定方法的完整介紹[16]。圖1為小孔成像模型示意圖,在相機標定過程中涉及4個坐標系及3次坐標轉換,分別為世界坐標系W到相機坐標系C的轉換①,相機坐標系C到圖像坐標系I的轉換②,圖像坐標系I到像素坐標系S的轉換③,最終得到像素坐標系S和世界坐標系W間的線性變換關系[17-18]如式(1)所示:
(1)
其中,(ui,vi,1)T為各成像點的像素齊次坐標,b為相機焦距,ku,kv分別為單個像素在u和v方向上的真實尺寸,(u0,v0)為焦點的像素坐標,rij(i,j=1,2,3)為世界坐標系至相機坐標系之間旋轉矩陣R中的元素,(xwi,ywi,zwi) (i=1, 2,…,N)為各標定點的3D世界坐標,(x0,y0,z0)為平移矩陣T,表示相機坐標系原點oc在世界坐標系下的坐標,zci(i=1, 2…N)為各標定點在相機坐標系Z方向上的坐標。
將式(1)展開得式(2):
ui-u0=
vi-v0=
(2)
將式(2)整理為如下式(3),使得式(3)中像素坐標(ui,vi)值只取決于標定點的世界坐標(xwi,ywi,zwi) (i=1, 2,…,N)及11個包括相機內外參數的常數參數Lk(k=1, 2,…,11)。
(3)
參數L1~L11可用內外參數表示為如式(4):
(4)
其中:bu=b/ku,bv=b/kv,D=-(x0r31+y0r32+z0r33)。
將式(3)寫成矩陣形式:
(5)
相機標定中,需要設置N(N≥6)個已知三維坐標的控制點,故式(5)中含有2N個線性方程,令:
(6)
則式(6)可表示為求解非齊次線性方程組的矩陣形式Ax=b,采用最小二乘法可求解出未知量x,即:
x=(ATA)-1ATb.
(7)
包含內外參數的Lk(k=1, 2,…,11)求解出后,需要通過式(4)來求解16個內外參數,包括4個內參數bu,bv,u0,v0和12個外參數rij(i,j=1,2,3),T=[x0y0z0]T,其中外參數rij(i,j=1,2,3)形成的矩陣R3×3為正交旋轉矩陣。這樣就完成了相機的內外參數DLT法的標定。顯然如果是多臺相機實現多視圖測量,則每臺相機要經過上述步驟實現標定;如果是單臺相機移動位置實現的多視圖測量,則沒移動一個位置均要按上述方法標定一次。
如前所述,多視圖包括單臺相機移動位置拍攝同一個場景得到多視圖,也指多臺相機同時拍攝獲取多視圖。前者適合靜態測量場合后者適合于動態測量場合。圖2為物理點的多視圖的3D定位(坐標重建)系統結構和原理示意圖。

圖2 多視圖的坐標重建示意圖
對于每個視圖下的相機而言,如果光心和像點已知,可唯一確定過測量點的一條直線,依據空間幾何線-線交會原理,可以對測量點進行交會定位,由于鏡頭畸變、像素坐標提取精度、標定點坐標誤差的存在,使得相機多角度確定的各條直線異面,不會相交于同一測量點,因此本文通過最小二乘法來求解被測目標點的空間坐標,假設空間中任意一點P(xw,yw,zw)在相機3個視圖中對應的成像點分別為p1(u1,v1),p2(u2,v2)和p3(u3,v3),3個視圖對應的相機參數Li(i=1,2,…,11)可由式(7)求解得出,由式(3),可得到如下方程:
(8)
單個視圖可列出2個線性方程,則3個視圖可列出關于(xw,yw,zw)的6個線性方程,轉換為矩陣形式,有:
(9)
采用最小二乘法x=(ATA)-1ATb即可求解出被測點P的坐標(xw,yw,zw)。
為評價定位結果提出以下評價指標。將獲得的空間重建點P(xw,yw,zw)與其在世界坐標系下3D坐標真值(xq,yq,zq)進行比較,得到空間點P重建坐標在X,Y,Z方向上的誤差dX,dY,dZ,有:
(10)
由式(11)可得空間重建坐標相對距離誤差為:
(11)
本文提出的DLT多視圖物理點世界坐標系3D定位的基本步驟總結如下:
(1)建立世界坐標系下的3D標定對象:即確定不少于6個不在同一個平面的控制點并確定世界坐標系下的3D坐標??刂泣c包絡體積盡量覆蓋待測點的運動范圍,控制點數盡量多且盡量在包絡體積中均布;
(2)DLT方法完成相機標定得到L參數(式(7))及相機內外參數(式(4))。多臺相機則每臺相機要標定,如果是單臺相機則沒移動一個位置均要標定。見2.1節;
(3)測量待定位物理點對應的圖像點的像素坐標,利用上面2)標定求得的各相機(或同一相機不同位置)的L參數,由式(9)求得這些點的世界坐標系的3D坐標。見2.2節;
(4)如果是多相機實現的多視圖物理點位置的連續動態測量,假定相機位置不動則返回(3)繼續執行直至任務完成;否則返回(2)(即重新標定)繼續執行至任務完成。
進行了單相機移動位置實現的多視圖多個物理點靜態定位試驗并與真實結果(全站儀測量得到)進行了比較驗證。實驗采用美國Vision Research 公司產的Phantom M310高速相機進行圖像采集,傳感器尺寸為25.6×16.0 mm,分辨率為1 280×800,對應像素大小20 μm×20 μm,鏡頭焦距24~85 mm可調,拍攝速率采用1 000 frame/s,光圈值為f/2.8;采用瑞典Image Systems公司的TEMA運動分析軟件測量圖像中標定點及被測點的像素坐標,在這里拍攝的是靜態場景,故只需截取視頻中的1幀圖像導入TEMA軟件中進行處理;采用科利達公司產的KTS-462LL全站儀對目標點的三維坐標進行測量,該儀器的測距精度為2+2ppm×5 km,即測量距離為5 km的誤差為12 mm,試驗在1PJ-3.0型水田平地機上進行,圖3為水田平地機的結構示意圖。

圖3 水田平地機結構示意圖
水田平地機包括機械系統、液壓系統、高程控制系統和水平控制系統四大部分,采用乘坐式井關PG6插秧機的為動力[19-20],以三點懸掛方式與平地機相連,三條平行連桿一端與插秧機底盤旋轉鉸鏈連接(鉸接),另一端與安裝臺鉸接,安裝臺下端有另一個鉸鏈與平地鏟中間連接。安裝臺與平地鏟之間安裝有雙作用油缸驅使二者之間相對轉動實現平地作業中平地鏟處于調平狀態。
按照2.3節所述的基本步驟,進行如下操作。由于試驗涉及到驗證,故具體步驟稍有區別。
(1)設定世界坐標系,設定控制點及待測點
圖4為試驗平臺及試驗布置示意圖,先將圖4(b)中的平地鏟置于水平地面,在測臺架1上建立世界坐標系ow-xwywzw,在平地鏟上粘貼如圖所示的不共面的10個十字架形狀(對角象限分別為白色和黑色)的控制點(像寶馬汽車標志,標志點指該十字的交點),記錄下各標定點在坐標系ow-xwywzw下的三維坐標,在平地鏟上另外粘貼20個標記點作為待測點。一般世界坐標系是靜止的,控制點宜設置在靜止的物體上,而這里是靜態試驗,控制點和待測點均位于同一剛體(平地鏟,水平靜置)不會造成問題。


圖4 試驗平臺及現場布置示意圖(平地機測試臺上的寶馬點為標定點;平地鏟上的寶馬點為待測點)
Fig.4 Test platform and sketch map of the test site(BMW points on test setup for leveler are calibration points; BMW points on land-leveling plow are measured points)
(2)DLT方法完成相機標定得到L參數
調整相機的位置及焦距,使得標定點及待測點在視場中清晰可見,采集此視圖1下的圖像,記為I1,按相同方法采集視圖2和視圖3下的圖像,記為I2和I3;TEMA軟件完成圖像標記點的跟蹤識別和像素坐標的讀取,并按2.1節方法完成各位置下的相機標定。
(3)測量各待定位物理點對應的圖像點的像素坐標;
(4)結果驗證。采用全站儀測量待測點的世界坐標作為世界坐標系真實3D位置:
①建立全站儀坐標系oq-xqyqzq
將全站儀架設到適宜位置,手動調平,建立以全站儀激光發射中心oq為坐標原點,坐標軸方向與世界坐標系坐標軸方向一致的全站儀坐標系oq-xqyqzq;
②全站儀測量待測點坐標
測量得到這些點在全站儀坐標系oq-xqyqzq下的三維坐標,然后將所有的被測點坐標與測得的世界坐標系原點坐標相減,即可將所有被測點在全站儀坐標系下的坐標轉換到世界坐標系下。
本實驗利用測試臺架(平地鏟)上粘貼的10個標定點的空間坐標及各標定點在圖像Ij(j=1,2,3)的像素坐標,通過最小二乘法及高斯-牛頓迭代法完成各視圖下的相機標定,然后根據空間幾何線-線交會原理,利用最小二乘法實現被測點的世界坐標測量,表1為部分標定點Pi(i=1,2,…,10)的世界坐標及在圖像Ij(j=1,2,3)中的像素坐標信息,表2為部分被測點Qn(n=1,2,…,20)在圖像Ij(j=1,2,3)中的像素坐標信息。表3為求得的各視圖參數Lk(i=1,2,…,11),表4為利用高斯-牛頓迭代法求得的各視圖相機內外參數,試驗采用的各視圖相機分辨率均為1 280×800,則像平面中焦點O的理想像素坐標為(640,400),從表4可以看出,3個視圖的相機標定結果中,焦點橫坐標最大偏差為65.28 pixel,焦點縱最大偏差為63.36 pixel,這與標定過程中各標定點空間坐標測量誤差及對應的像素坐標提取誤差有關。

表1 部分標定點的坐標

表2 部分被測點的像素坐標

表3 各視圖相機參數Lk求解結果

表4 各視圖相機內外參數求解結果
分別利用全站儀與本文方法對平地鏟上20個被測點進行測量,并計算各被測點在X,Y,Z方向上的誤差dX,dY,dZ,結果如圖5所示,其中藍色折線為被測點在世界坐標系ow-xwywzw下的三維坐標(由全站儀獲得),綠色折線為相機測得的各被測點在X,Y,Z方向上的坐標,紅色折線為相機測得的被測點坐標相對于全站儀測得坐標的誤差,表5為被測點在X,Y,Z方向上的平均誤差,從圖5可以看出(彩圖見期刊電子版),相機測得被測點坐標與全站儀測得的坐標位置基本吻合,被測點坐標在X,Y,Z方向上的絕對誤差均值為4.19 mm,3.97 mm,3.69 mm,空間相對距離誤差為0.81%。
表5 被測點在X,Y,Z方向上的平均誤差
Tab.5 Average error of measured points inX,Y, andZdirections

X方向Y方向Z方向Error相機測量0.004 20.004 00.003 70.008 1

圖5 被測點的世界坐標在X,Y,Z方向的誤差
(1)本文提出的基于DLT的世界坐標系多視圖3D定位方法,既適用于單臺相機移動獲取的多視圖實現的靜態結構體點的定位,也適合于多臺相機同時拍攝獲取的機器上點的三維動態定位,能夠實現任意多個物理點的世界坐標測量,原理上測量結果不受相機位置影響。該方法不需要專門的儀器設備,對一般的結構和機器系統的測繪、運動分析適用。
(2)在水田平地機上進行了單相機移動位置得到的多視圖多物理點靜態定位試驗。驗證采用本方多個目標點進行了世界坐標測量,與全站儀的測量結果相比,該方法測得的坐標在X,Y,Z方向的平均絕對誤差為4.19 mm,3.97 mm,3.69 mm,空間相對距離誤差為0.81%,滿足一般測量精度要求。
(3)為進一步DLT相機標定與物理點的3D定位的精度除了使用更多的控制點、更多的視圖等措施[15]外,還需要對相機的徑向和切向失真進行校正,這可以在DLT標定步驟中對失真參數進行標定,此時需要使用16個L參數,需要的不共面的控制點為8個[15]。此外Matlab有相機標定工具箱,借助該工具箱可以驗證本方法第2步得到的相機標定結果。