正勇,卜春光, 劉 宸
(1.中國科學(xué)院 沈陽自動化研究所 機器人學(xué)國家重點實驗室,遼寧 沈陽 110016;2.中國科學(xué)院大學(xué),北京 100049; 3.沈陽理工大學(xué) 機械工程學(xué)院,遼寧 沈陽 110016)
外參標(biāo)定方法可以分為在線標(biāo)定[1~3]與離線標(biāo)定兩大類。在線標(biāo)定法是在無人車運行過程中實時校準(zhǔn)外參矩陣,能夠修正行駛過程中顛簸等因素造成外參偏移,但需要通過離線標(biāo)定或者人工測量的方式得到初始值以提高收斂速率。離線標(biāo)定分成如下三類:棋盤格法;特殊幾何外形標(biāo)定體法;角點法。
Zhang Q[4]提出了一種基于黑白棋盤格的外參標(biāo)定方法[5],方法簡單可靠,但該方法并不能直接得到完整的旋轉(zhuǎn)矩陣,并不是最優(yōu)的三維旋轉(zhuǎn)群SO(3),另外該方法通過代數(shù)方法推導(dǎo)而來,沒有明確的幾何意義。Park S U等人[6]將Zhang Q的方法推廣至三維激光雷達(dá)與相機標(biāo)定問題,但未優(yōu)化標(biāo)定結(jié)果,也未對標(biāo)定參數(shù)、結(jié)果等進(jìn)行分析。Vasconcelos F等人[7]提出了一種新的基于棋盤格的二維激光雷達(dá)與相機標(biāo)定方法[8],方法較Zhang Q的方法有更精確的初始解,可以有效降低采樣幀數(shù)較小情況下迭代優(yōu)化過程中解發(fā)散的概率,但計算量大,整個算法也較為復(fù)雜。Unnikrishnan R等人[9]在CMU的2005年技術(shù)報告中提出了一種基于平面對應(yīng)性的三維激光雷達(dá)與相機的外參標(biāo)定方法,利用平面對應(yīng)性分別求解平移與旋轉(zhuǎn)分量,求解公式十分簡潔,但也存在一些不足:利用數(shù)學(xué)方法推導(dǎo)出求解公式,求解過程不直觀明了;未分析外參精度;未分析失效情況;只優(yōu)化外參矩陣,未利用點云、圖像數(shù)據(jù)對內(nèi)外參進(jìn)行全局優(yōu)化。
本文針對對偶空間中面變換矩陣的分解,提出了一種新的基于平面對應(yīng)性的外參標(biāo)定方法。該方法求解原理、推導(dǎo)過程簡單,更加簡單易懂。仿真結(jié)果表明:本文方法有很好的初始解,在樣本數(shù)量較小的情況下仍然可以得到穩(wěn)定精確的解。
圖1為包含相機、三維激光雷達(dá)、棋盤格標(biāo)定板的標(biāo)定系統(tǒng)??紤]原點分別在O、O′的相機坐標(biāo)系和激光坐標(biāo)系。外參標(biāo)定問題即為求解歐幾里得變換T,使得
(1)
式中Q,Q′分別為點在相機坐標(biāo)系和激光坐標(biāo)系中的非齊次表示;R為3×3旋轉(zhuǎn)矩陣;t為3×1平移向量。
圖1 坐標(biāo)系定義
如果2個笛卡爾坐標(biāo)系下點的射影變換方程為X′=Y×X,在該變換下面П變換為[9]
Π′=T-T×Π
(2)
對于外參標(biāo)定問題,變換T為歐氏變換矩陣,在對偶空間中
(3)
使用張正友相機標(biāo)定法和隨機一致性采樣(random sample consensus,RANSAC)[10]分別從圖像和點云中提取棋盤面在相機坐標(biāo)系和激光坐標(biāo)系下的齊次表示ΠC,ΠL
Si=-tTRΠLi
(4)
(5)
本文提出的外參矩陣標(biāo)定算法可以分解成:
1)使用RANSAC和張正友相機標(biāo)定法分別計算出棋盤面在激光坐標(biāo)系和相機坐標(biāo)系下的齊次表示ΠLi,ΠCi,其中,i=1…N;
4)聯(lián)立式(4)、式(5),計算歐氏矩陣平移分量。
圖2 對偶空間中歐氏變換分解
使用非線性優(yōu)化的方法最小化棋盤格在相機和激光坐標(biāo)系下的重投影誤差以提高外參、相機內(nèi)參標(biāo)定精度。
(6)
e=κeL+eC
(7)
式中κ為權(quán)值,相機成像重投影誤差一般為0.2個像素,當(dāng)激光雷達(dá)的誤差為±0.03 m的時候,κ可以選擇10。最后,使用Levenberg-marquardt方法優(yōu)化初始標(biāo)定結(jié)果。
1)如果某次標(biāo)定樣本所有幀的棋盤面相互平行或者趨近平行,那么面在對偶空間中的非齊次表示歸一化后將重合或者趨近重合,因此,無法標(biāo)定出旋轉(zhuǎn)分量。
2)棋盤面經(jīng)過相機或者激光雷達(dá)原點,這種情況下無法提取棋盤面在激光或者相機坐標(biāo)系下的表示。若已知面坐標(biāo),理論上可以求解出外參的旋轉(zhuǎn)分量,但不能求解平移分量。
為了對比不同算法標(biāo)定精度,在MATLAB下進(jìn)行了仿真實驗,仿真參數(shù)如表1所示。
表1 MATLAB仿真參數(shù)
以激光坐標(biāo)系Y′O′Z′作為垂直面,X′O′Y′作為水平面,在水平視場角60°、垂直視場角60°內(nèi),生成一距離激光坐標(biāo)系原點2~4 m的點為棋盤格坐標(biāo)系原點,棋盤格坐標(biāo)系相對于激光坐標(biāo)系RPY角分別在±30°,±90°,90°±30°范圍內(nèi),如果棋盤格所有角點都能在相機成像面上成像,則記錄一幀數(shù)據(jù)。
對于原始不含噪聲的仿真數(shù)據(jù),本文方法能準(zhǔn)確標(biāo)定出外參矩陣。
對棋盤格角點添加±0.5個像素的隨機噪聲,每個激光束采樣到的距離信息添加±0.03 m的隨機噪聲以模擬真實數(shù)據(jù)。
仿真實驗對比3種標(biāo)定算法未優(yōu)化結(jié)果:本文方法、文獻(xiàn)[8]方法、文獻(xiàn)[5]方法。仿真系統(tǒng)對標(biāo)定結(jié)果的評價函數(shù)為
(8)
(9)
(10)
式(8)~式(10)分別為外參矩陣平移分量、旋轉(zhuǎn)分量、外參矩陣與真值差的2-范式。
圖3、表2分析了采樣幀數(shù)對標(biāo)定結(jié)果的影響(每組實驗重復(fù)500次)。根據(jù)式(10)的評價指標(biāo),隨著采樣幀數(shù)增加,3種算法500次實驗誤差均值、均方根值均在降低,當(dāng)采樣幀數(shù)大于11幀時,標(biāo)定誤差趨于穩(wěn)定。
圖3 不同采樣幀數(shù)對變換矩陣影響
采樣幀數(shù)均值本文方法文獻(xiàn)[8]文獻(xiàn)[5]均方根本文方法文獻(xiàn)[8]文獻(xiàn)[5]50.0700.0723.0800.0870.0924.42060.0530.0540.9620.0450.0461.48270.0430.0440.4050.0290.0290.60780.0370.0390.2190.0310.0320.29190.0320.0340.1370.0220.0230.181100.0280.0290.0990.0190.0190.108110.0270.0280.0770.0170.0170.073120.0230.0240.0660.0130.0140.055130.0230.0240.0530.0140.0150.047140.0210.0220.0470.0120.0130.035150.0210.0220.0450.0120.0120.033
圖4分析了不同算法標(biāo)定精度。每次采樣11幀數(shù)據(jù),根據(jù)式(8)~式(10)評價3種算法平移分量、旋轉(zhuǎn)分量、變換矩陣誤差,重復(fù)實驗500次。通過對比可以看出,相對于文獻(xiàn)[5]的方法,本文以及文獻(xiàn)[8]的方法有明顯的優(yōu)勢。對比表3~表5的數(shù)據(jù),相對于文獻(xiàn)[8]的方法,本文方法在平移分量與整個變換矩陣精度上稍占優(yōu)勢,在旋轉(zhuǎn)分量上精度稍低,2種方法精度相同。
圖4 不同算法標(biāo)定誤差對比
圖5為根據(jù)式(7)計算的重投影誤差。隨著采樣幀數(shù)的提高,重投影誤差逐漸降低。從重投影誤差也可以看出本文與文獻(xiàn)[8]精度上明顯優(yōu)于文獻(xiàn)[5]的方法。
表3 不同算法旋轉(zhuǎn)誤差對比
表4 不同算法平移誤差對比
表5 不同算法變換矩陣誤差對比
圖5 重投影誤差
圖6分析了本文方法旋轉(zhuǎn)分量、平移分量、變換矩陣精度隨采樣幀數(shù)提高的變化情況。采樣幀數(shù)較少時,外參矩陣精度較低,當(dāng)采樣幀數(shù)增加時,誤差均值、均方根值均降低,說明標(biāo)定誤差在逐步降低并且標(biāo)定一次獲取高精度標(biāo)定結(jié)果的概率在增加,當(dāng)采樣幀數(shù)大于11時,解的精度趨于穩(wěn)定,但依舊隨著采樣幀數(shù)的增加而緩慢提高。
圖6 不同采樣幀數(shù)對本文方法3種誤差的影響
仿真實驗對比的3種算法均基于平面對應(yīng)性。本文與文獻(xiàn)[8]的方法未優(yōu)化解精度相似,且明顯優(yōu)于文獻(xiàn)[5]的方法。經(jīng)分析比較,文獻(xiàn)[5]采用了原始的點云數(shù)據(jù),而另外2種方法采用了最小二乘法提取出的平面坐標(biāo),消除了部分噪聲,因此,相同數(shù)據(jù)源下精度更高。
本文方法在如圖7(a)所示的轉(zhuǎn)臺上測試,轉(zhuǎn)臺使用Pointgrey FL3—GE—03S2C—C工業(yè)千兆以太網(wǎng)相機以及Velodyne VLP—16三維激光雷達(dá)。激光雷達(dá)共有16個激光束,垂直分辨率為0.2°,水平分辨率為0.1°~0.4°,最遠(yuǎn)探測距離為100 m并且能保證典型距離下±0.03m的精度。相機的分辨率為640×480,搭配工業(yè)低畸變焦距4 mm的鏡頭。黑白棋盤格標(biāo)定板尺寸為9×9,每個棋盤格的大小為90 mm×90 mm。獲取12幀圖像、點云數(shù)據(jù),人工指定棋盤面在點云中的位置,使用0.03 m允許誤差的RANSAC算法分割出棋盤面。圖7(b)為激光雷達(dá)采集的一幀完整數(shù)據(jù),方框標(biāo)記為標(biāo)定板在點云中的位置。圖7(c)為根據(jù)本文方法標(biāo)定出外參矩陣后將激光點云投影到圖像上的結(jié)果,從棋盤格邊界位置可以看出,標(biāo)定結(jié)果較為精準(zhǔn)。圖8為本次標(biāo)定實驗優(yōu)化算法每次迭代后的重投影誤差曲線,取κ=10。
圖7 實驗臺及投影結(jié)果
圖8 重投影誤差隨迭代次數(shù)變化曲線
提出了一種新的基于平面對應(yīng)性的方法標(biāo)定三維激光雷達(dá)與相機之間的外參矩陣,引入了對偶空間中面變換矩陣的分解,求解過程直觀明了。利用該方法原理解釋了外參標(biāo)定過程中失效場景原因。對比3種算法標(biāo)定誤差的仿真實驗表明:本文方法可以得到高精度外參矩陣,且在數(shù)據(jù)較少(最少3幀)的情況下依然可以標(biāo)定出外參。利用點云、圖像數(shù)據(jù)對內(nèi)外參進(jìn)行全局優(yōu)化并使用真實數(shù)據(jù)驗證了本文算法可靠性。
參考文獻(xiàn):
[1] Rodríguez-Garavito C H,Ponz A,García F,et al.Automatic laser and camera extrinsic calibration for data fusion using road plane[C]∥2014 the 17th International Conference on Information Fusion,IEEE,2014:1-6.
[2] Levinson J,Thrun S.Automatic online calibration of cameras and lasers[C]∥Robotics:Science and Systems,2013:24-28.
[3] 王偉華,宋申民.一種簡易的攝像機標(biāo)定方法[J].自動化技術(shù)與應(yīng)用,2010,29(1):101-103.
[4] Zhang Q,Pless R.Extrinsic calibration of a camera and laser range finder(improves camera calibration)[C]∥Proceedings of 2004 IEEE/RSJ International Conference on Intelligent Robots and Systems,IROS 2004,IEEE,2004:2301-2306.
[5] Zhang Z A flexible new technique for camera calibration[J].IEEE Transactions on Pattern Analysis and Machine Intelligence,2000,22(11):1330-1334.
[6] Park S U,Chung M J.Extrinsic calibration between a 3D laser scanner and a camera using PCA method[C]∥2012 the 9th International Conference on Ubiquitous Robots and Ambient Intelligence(URAI),2012.
[7] Vasconcelos F.A minimal solution for the extrinsic calibration of a camera and a laser-rangefinder[J].IEEE Transactions on Pattern Analysis & Machine Intelligence,2012,34(11):2097-2107.