黃東兆,趙前程
(湖南科技大學機械設備健康維護湖南省重點實驗室,湖南 湘潭 411201)
單個相機都受一定的視野范圍限制,為了滿足高精度、寬視野的工業(yè)測量任務,通常需要用多個相機組建一個具有更大視覺空間范圍的測量系統(tǒng).對每個相機進行內(nèi)參標定,只能在單個相機坐標系下建立視覺測量模型.由于各相機坐標系彼此獨立,因此所有相機的測量結(jié)果需要統(tǒng)一到其中一個相機坐標系或一個全局坐標系中來表達.統(tǒng)一的過程被稱為多相機測量系統(tǒng)位姿關(guān)系的全局標定.通常使用“金規(guī)校準”(需1個制作精確的標準件作為參考基準)與“銀規(guī)校準”(需1個經(jīng)過坐標測量機標定后的標準件作為參考基準)對多相機系統(tǒng)進行全局標定,但在日常搬運中要防止標準件不受損害是相當困難的.因此,張廣軍[1]提出了使用雙電子經(jīng)緯儀或單電子經(jīng)緯儀加靶標進行全局標定的方法.該方法精度高,但電子經(jīng)緯儀價格昂貴,普適性受限.其他一些方法[2-3]無需貴重儀器,但僅適用于立體視覺測量系統(tǒng),不能應用于單目視覺系統(tǒng).多相機測量系統(tǒng)全局標定的本質(zhì)是確定系統(tǒng)中相機兩兩之間的相對位姿關(guān)系[4],只要任意兩相機間的相對位姿關(guān)系確定了,就完成了多相機系統(tǒng)的全局標定.筆者提出了一種基于雙平面靶標的兩相機相對位姿關(guān)系的標定方法,在闡述其原理的基礎上通過仿真標定與實際標定實驗來驗證其可行性.
多相機全局標定裝置如圖1所示,兩靶標之間為剛性聯(lián)接.兩相機的位姿關(guān)系的標定如圖2所示.
圖1 多相機全局標定裝置Fig. 1 Global Multi-Camera Calibration Device
圖2 兩相機間相對位姿關(guān)系的標定Fig. 2 Two-Camera Calibration for Relative Pose Relation
基于雙平面靶標的兩相機間相對位姿關(guān)系的標定方法,需要2個靶標通過一根長桿組成剛性聯(lián)接,兩靶標間的相對位姿在標定前可以未知.當使用該裝置時,相機1,2分別獨自拍攝靶標1,2的圖像.假設靶標1坐標系到相機1坐標系的變換矩陣是A,靶標2坐標系到靶標1坐標系的變換矩陣是M,相機2坐標系到靶標2坐標系的變換矩陣是B,相機2坐標系到相機1坐標系的變換矩陣是N.M與N在標定前都是未知的,在標定后可以通過求解得到.對任何一幅圖像而言,變換矩陣A,B,M與N之間的關(guān)系為
N=AMB.
(1)
其中:
將(1)式展開,得到
(2)
進一步將(2)式轉(zhuǎn)換為
CD=E.
(3)
其中:C=(W1W2),這里
當標定裝置置于不同位置(至少2個位置)并拍攝多幅圖像后,將獲得這些圖像特征點的坐標,即可求得A與B,故C與E可知,從而由(3)式求得D.當D已知后,即可求得M.(1)式可以轉(zhuǎn)換為
BN-1=M-1A-1.
(4)
由于M已知,且多幅圖像所對應的A與B已知,因此可由(4)式解得N-1,進而求得N.
將標定裝置隨機放置20個位置,對靶標上的特征點進行仿真投影,得到特征點在圖像坐標系中的坐標.附加0.1個像素的白噪聲后,基于這20個位置的仿真投影數(shù)據(jù)可以計算出N.為了更加直觀地解讀N的標定誤差,用α,β,γ,Tx,Ty,Tz的誤差來間接描述N的標定誤差.將上述仿真實驗重復100次,實驗結(jié)果如圖3所示.
圖3 矩陣N的標定誤差的間接描述Fig. 3 Indirect Description for Calibration Error of Matrix N
從圖3可知,α與β的誤差為 ±0.2°,誤差較大,不滿足誤差 ±0.03°的要求,因此需要改進方法以滿足精度要求.
圖4 改進方法的標定原理Fig. 4 Calibration Diagram of Improved Method
改進方法的標定原理如圖4所示.兩靶標可繞同一根剛性軸旋轉(zhuǎn),該軸同時也是兩靶標的聯(lián)接軸,兩靶標的旋轉(zhuǎn)中心點位于聯(lián)接軸線上,兩中心點的相對距離在標定過程中恒定不變.當標定裝置底座置于某一位置時,無論怎么旋轉(zhuǎn)靶標,靶標的旋轉(zhuǎn)中心點在靶標坐標系與相機坐標系中的坐標都是不變的.
將標定裝置置于平面上的2個不同位置,旋轉(zhuǎn)靶標時拍攝圖像.通過圖像求得兩靶標在兩位置的旋轉(zhuǎn)中心點坐標與旋轉(zhuǎn)軸線向量,進而求得兩相機的相對位姿關(guān)系.詳細過程如下:
(1)求解兩靶標在各自相機坐標系中的旋轉(zhuǎn)中心點坐標與旋轉(zhuǎn)軸線向量.將標定裝置依次置于同一平面的2個不同位置(圖4),旋轉(zhuǎn)靶標,每個位置拍攝不少于20幅圖像.通過這些圖像數(shù)據(jù),可以求得兩靶標在位置1,2處的旋轉(zhuǎn)中心點坐標與旋轉(zhuǎn)軸線向量[5](在各自對應的相機坐標系中).為了便于闡述算法,以從相機向靶標方向看為準,設定兩靶標的旋轉(zhuǎn)軸線向量均指向右邊.
(2)構(gòu)建聯(lián)系兩相機位姿關(guān)系的局部坐標系.以靶標1為例,在相機1坐標系中建立局部坐標系O1X1Y1Z1的過程如下:假設靶標1在位置1,2處的旋轉(zhuǎn)中心點坐標分別是(x1,y1,z1)和(x2,y2,z2),兩中心點處于同一平面內(nèi),在位置1,2的旋轉(zhuǎn)軸線單位向量分別是(n1,n2,n3)和(m1,m2,m3);以(x1,y1,z1)作為坐標系原點O1的坐標,以(n1,n2,n3)作為X1軸方向向量,將向量(x2-x1,y2-y1,z2-z1)單位化后作為Y1軸方向向量,Y1軸方向向量平行于放置標定裝置的地面;將X1軸方向向量與Y1軸方向向量叉積后得到Z1軸方向向量,Z1軸垂直于地面.同理,可在相機2坐標系中建立與靶標2相關(guān)的局部坐標系O2X2Y2Z2.
(3)求解兩相機坐標系間的變換矩陣.由于在位置1時靶標1,2的旋轉(zhuǎn)軸線方向向量是相同的,都經(jīng)過聯(lián)接它們的旋轉(zhuǎn)軸,因此在一個全局坐標系中,局部坐標系O1X1Y1Z1與O2X2Y2Z2的X軸方向向量也是相同的.又由于O1X1Y1Z1與O2X2Y2Z2的Z軸方向垂直于放置標定裝置的平面,因此它們的方向也是相同的.由于兩局部坐標系的X和Z軸的方向是相同的,因此Y軸方向也是相同的.故從兩局部坐標系中的任何一個變換到另一個只需要平移變換,不需要旋轉(zhuǎn)變換.
假設局部坐標系O1X1Y1Z1到相機1坐標系的變換矩陣是M1,局部坐標系O2X2Y2Z2到相機2坐標系的變換矩陣是M2,相機2坐標系到相機1坐標系的變換矩陣是MN,局部坐標系O2X2Y2Z2到O1X1Y1Z1的變換矩陣是MM(變換只需平移,無需旋轉(zhuǎn),故RM是單位矩陣),其中:
兩相機的內(nèi)部參數(shù)均設為αx=αy=3 000,k1=k2=p1=p2=0,u0=512,v0=640,決定兩相機相對位姿關(guān)系的MN的歐拉角與平移向量(3個分量)設為α=β=γ=0°,Tx=2 500 mm,Ty=Tz=0 mm,決定兩靶標相對位姿關(guān)系的M的歐拉角與平移向量(3個分量)設為α=γ=0°,β=-60°,Tx= 1 250 mm,Ty=0 mm,Tz=2 165.063 5 mm.將標定裝置分別置于相機前1 500,1 700 mm,在每個位置旋轉(zhuǎn)靶標并拍攝30幅圖像,得到特征點在圖像坐標系中的坐標,附加0.1個像素白噪聲后的MN的標定誤差如圖5所示,附加0.3個像素白噪聲后的MN的標定誤差如圖6所示.在1 500,1 700 mm位置旋轉(zhuǎn)靶標,分別拍攝60幅圖像,附加0.3個像素白噪聲后的MN的標定誤差如圖7所示.
圖5 附加0.1個像素白噪聲時MN的標定誤差(30幅圖像)Fig. 5 Calibration Errors of Matrix MN (30 Images,0.1 Pixels of White Noise Error)
圖6 附加0.3個像素白噪聲時MN的標定誤差(30幅圖像)Fig. 6 Calibration Errors of Matrix MN (30 Images,0.3 Pixels of White Noise Error)
圖7 附加0.3個像素白噪聲時MN的標定誤差(60幅圖像)Fig. 7 Calibration Errors of Matrix MN (60 Images,0.3 Pixels of White Noise Error)
從仿真結(jié)果可以看出,當每個位置拍攝圖像不少于30幅且圖像特征點提取誤差小于0.3個像素時,兩相機的相對位姿關(guān)系的標定精度能滿足誤差±0.03°的要求.
圖8 現(xiàn)場簡易標定裝置Fig. 8 Simple Calibration Device on Site
為了驗證改進標定方法的可行性,筆者利用現(xiàn)場簡易標定裝置(圖8)做了標定實驗.兩靶標上旋轉(zhuǎn)中心點的距離為1 800 mm,實驗步驟如下:
(ⅰ)將標定裝置置于相機測量范圍內(nèi)11個不同的位置,在每個位置旋轉(zhuǎn)靶標時拍攝30幅圖像.為了避免因地面不平而產(chǎn)生晃動,在裝置上安裝了可調(diào)升降的螺釘.在對應的相機坐標系中,計算出左、右靶標在不同位置的旋轉(zhuǎn)中心點坐標與旋轉(zhuǎn)軸線向量,選用其中第1,2個位置的中心點坐標與軸線向量,標定出兩相機的相對位姿關(guān)系.
(ⅱ)選擇第2個位置,在左相機坐標系中,計算得到左靶標的旋轉(zhuǎn)中心點坐標p1與其旋轉(zhuǎn)軸線向量n1;在右相機坐標系中,計算得到右靶標的旋轉(zhuǎn)中心點坐標p2與其旋轉(zhuǎn)軸線向量n2.
(ⅲ)根據(jù)前面標定得到的兩相機相對位姿關(guān)系矩陣,將步驟(ⅱ)獲得的右靶標旋轉(zhuǎn)中心點坐標與旋轉(zhuǎn)軸向量統(tǒng)一到左相機坐標系(這里以左相機坐標系為全局坐標系)中,得到在左相機坐標系中的旋轉(zhuǎn)中心點坐標p2a與旋轉(zhuǎn)軸向量n2a.
(ⅳ)計算點p1與p2a之間的距離T,向量n1與n2a之間的夾角θ.
(ⅴ)依次選擇第3~11個位置,重復步驟(ⅱ)—(ⅳ),計算相應的距離T與夾角θ,結(jié)果列于表1.
表1 簡易標定裝置距離T的偏差與夾角θ
從表1可知,兩靶標的旋轉(zhuǎn)中心點距離的標定誤差為±3 mm,兩向量之間的夾角小于0.29°(理論上夾角為0°).這些誤差的產(chǎn)生原因可能是由于裝置的制造和安裝的精度不高(如旋轉(zhuǎn)部件加工較粗糙,導致兩靶標的同軸度誤差較大),以及地面的不平整等,但總體上具有一定的可行性.
為了提高簡易標定裝置的標定精度,通常的做法是提高裝置的制造和安裝的精度,同時在裝置的旋轉(zhuǎn)軸上固定一個圓水準泡,將可調(diào)升降的螺釘與水準泡相組合,從而盡量保證裝置置于任何一個位置時,旋轉(zhuǎn)軸都能保持水平.
為了完成多相機相對位姿關(guān)系的高精度標定,并對標定結(jié)果的精度進行評估,筆者設計并制造了高精度標定裝置(圖9),并對3D汽車四輪定位儀中多相機全局位姿關(guān)系進行出廠標定.該標定裝置上兩靶標旋轉(zhuǎn)中心點間的距離是1 903 mm,實驗步驟同簡易標定裝置一樣,實驗結(jié)果列于表2.
圖9 高精度標定裝置Fig. 9 High Precision Calibration Device
位置T/mmθ/(°)位置T/mmθ/(°)21 903.190.024 071 903.380.009 031 902.950.026 481 902.560.026 941 902.620.023 391 902.670.016 751 903.020.010 2101 903.390.025 861 903.200.016 0111 902.800.013 7
從表2可知,在提高標定裝置的制造與安裝的精度后,該標定方法具有較高的標定精度,能滿足出廠標定要求.聯(lián)接兩靶標的旋轉(zhuǎn)部件可通過左右兩側(cè)的導軌在底座上前后滑動進行標定,從而使標定方法具有精度高、操作方便與標定快捷的優(yōu)點.該裝置已應用于國內(nèi)某廠家兩相機或四相機3D四輪定位儀中的相機全局位姿關(guān)系的出廠標定.
為了解決多相機視覺測量系統(tǒng)的全局標定方法在精度、成本、便捷性等方面的矛盾,筆者提出了一種成本較低、精度高、操作簡便的兩相機相對位姿關(guān)系的標定方法,可進一步推廣應用到多相機的全局標定.該方法不同于傳統(tǒng)的多相機全局標定方法,具有較廣泛的應用價值.