朱 晨
(1.中國科學院上海微系統(tǒng)與信息技術研究所上海200050;2.上海科技大學信息科學與技術學院,上海201210;3.中國科學院大學北京101407)
多相機系統(tǒng)在虛擬現(xiàn)實[2]、三維地圖構建[5]和機器人視覺[12]中被大量應用。對這些系統(tǒng)中的所有相機間的外參(相對位置與姿態(tài))進行精確而又高效的標定對于這些應用的成功至關重要。因而,多種標定方法被提出以用于應對沒有重疊視場[9-10,12-13,16-17]或是在線標定[11,14-15]等場景。我們在本文中展示一種基于平面SfM[1]的、無需相機間具有重疊視場的標定方法。該方法可以看成手眼標定[3-4]在多相機系統(tǒng)中的一種擴展,它無需平面具有特定的圖案(如棋盤格等)。在本文的實驗部分,我們將展示通過一些由隨機平面圖案構成的標定物或是一般的室內(nèi)場景進行標定,從而驗證該方法的廣泛應用場景與實際價值。
本文考慮標定Nc≥2個相對位置固定的相機之間外參的問題。參考相機Cr和某相機Ci間的外參表示將Ci變換到Cr的旋轉和平移變換,表示為:
rir為Rir對應的羅格斯旋轉向量。我們進行外參標定的方法基于Structure form Motion(SfM),通過對相機在N個位置獲得的圖片進行特征提取與計算來估算場景中主要平面的幾何參數(shù),并在同時估算相機的運動參數(shù)。通過剛體約束和運動參數(shù),進一步估算與優(yōu)化相機外參。用表示Ci坐標系中的第j個SURF特征點,為Ci的第k個位置相對于初始位置的旋轉與平移,則在此過程中特征點的變換方程為:
相機Ci,Cr間滿足的剛體約束為:
其中si為表示尺寸不定性的非負標量。解以上方程便可得到相機間的關系以及運動參數(shù)。圖1顯示了這些變量間的關系。
圖1 變量關系
相機的外參可以通過檢測與跟蹤場景中的某個平面來估算,而平面在一般的室內(nèi)室外場景中都很常見。
給定Ci拍攝的N張圖片,我們首先匹配圖片中的SURF特征來得到M個特征點的軌跡,每條軌跡可寫為,其中P,q分別代表起始幀和結束幀,為第k個特征點在第k幀中的坐jj標。在三維坐標系中的平面表示為,其中d為該平面到相機的距離。該平面上的所有點的變換滿足一個單應性變換關系。記,則
我們提出一種改進版的TRASAC[1]算法對場景中的平面進行檢測與追蹤。該算法與RANSAC類似,需要多次嘗試擬合運動參數(shù),然后選擇最好的參數(shù)。TRASAC算法在每次嘗試中,先隨機選擇2個連續(xù)幀(Fk-1,F(xiàn)k),然后再隨機選擇4條軌跡來估算Hk(k+1)。接下來,將投影誤差的軌跡劃分到,表示該軌跡屬于該平面。然后在相鄰幀F(xiàn)k+1屬于的軌跡中隨機選擇4條,再次重復同樣過程,直到所有幀之間的單應矩陣都已經(jīng)算得。
由于在我們的應用中相機移動的距離可能較大,SURF特征點出現(xiàn)誤匹配的可能性更高,我們需要更加嚴格的標準濾除誤匹配的特征點。所以,我們對獲得的軌跡做進一步的過濾,僅保留誤差屬于一定閾值內(nèi)的軌跡,即:
最終,我們可以獲得從第一幀到第k幀的單應矩陣。
給定Ci的單應矩陣后,我們可以計算對應的。我們最多可以得到4個解,其中物理可行解有2個。通過獲取N≥3組單應矩陣,我們就可以找到唯一解。
得到每個相機的運動參數(shù)后,根據(jù)[7]可知,其中。我們通過解如下的優(yōu)化問題獲得Rir:
該優(yōu)化問題有閉合解
其中
通過如上方式獲得的參數(shù)不是全局最優(yōu)解,因為單應矩陣是通過2幀之間的關系得到的,并不一定與所有N幀的數(shù)據(jù)一致。我們介紹一種基于平面的集束調(diào)整法來同時優(yōu)化參考相機的外參,其他所有相機到參考相機的變換參數(shù)以及平面場景的幾何參數(shù)。
其中
這里∈為將一條軌跡歸為離群值的懲罰系數(shù)。與適用于普通3D場景的SfM不同的地方在于,該方法不需要估算特征點的3D坐標,因而它更為魯棒。
為了優(yōu)化如上的非線性目標函數(shù),我們采用一種交替優(yōu)化的方式,在估算場景結構和運動參數(shù),以及劃分軌跡集合間交替:
給定參數(shù),通過比較劃分為離群值和非離群值的乘法大小對軌跡分類:
在本章我們通過實驗來驗證本文的模型在仿真數(shù)據(jù)和真實數(shù)據(jù)上的表現(xiàn),并與現(xiàn)有的其他標定方法進行對比,以驗證其有效性。
圖2 仿真實驗相機與特征點位置示意圖
在仿真數(shù)據(jù)實驗中,我們主要與SOCP[4]和基于分支定界的[3]對比。我們使用和這兩種方法類似的實驗設定。我們構造一個雙攝像機組合{Cr,Ct},估算這兩個相機之間的位置關系。這兩個相機的位置關系如圖2所示。
其中,rtr=[1.452 0,-0.660 7,-1.160 7],ttr=[12.256 0,-225.416 6,-128.985 1]。我們生成100個位于相機前方700單位矩形區(qū)域內(nèi)均勻隨機分布的100個特征點。我們還另外隨機生成了9組位置以排除隨機因素。由于特征點的位置估算存在誤差,我們在8種不同的噪聲大小下測試各個方法估算相機位置的誤差。我們采用基于平面的SfM對SOCP的估算進行初始化。
實驗結果如圖3和圖4所示。可見本文的方法在各種噪聲水平下均優(yōu)于其余2種方法。
圖3 仿真實驗旋轉向量誤差對比
圖4 仿真實驗平移參數(shù)對比
在本組實驗中,我們標定固定在相機架上的16個GoPro Hero 4相機之間的位置關系。我們選擇其中一個相機作為參考相機,標定過程中使其采集一個棋盤格的照片,并使用[8]檢測棋盤格角點,剩余的15個相機則對著7張隨機的平面圖樣,通過SURF特征匹配以及平面SfM估算運動參數(shù)。
我們采集40組圖片,將標定后得到的結果與Matlab標定工具箱的標定結果進行對比,結果如圖5圖6所示。其中,Matlab工具包的標定結果為使用棋盤格依次標定相鄰相機所得。由圖可見,本文的方法能在真實場景中較為準確地標定相機外參。
圖5 旋轉參數(shù)與Matlab工具箱的偏差
圖6 平移參數(shù)與matlab工具箱的偏差
在本文中,我們介紹了一種魯棒而又靈活的多相機外參標定法,它不要求相機有重疊的視野,通過場景中的平面結構來估算相機運動參數(shù)以及相機外參,并進一步通過集束調(diào)整優(yōu)化相機參數(shù)。該方法在仿真實驗和真實數(shù)據(jù)實驗中都取得了較好的效果。