李正寧, 劉 春, 吳杭彬
(同濟(jì)大學(xué) 測繪與地理信息學(xué)院,上海 200092)
雙目相機(jī)系統(tǒng)由2臺相互位置固定并同步曝光的相機(jī)組成,因其對周圍環(huán)境信息的感知能力以及對三維場景的重建能力,近年來被廣泛應(yīng)用于機(jī)器人、深空探測器、無人駕駛車等平臺[1-2].為得到準(zhǔn)確的感知信息和三維場景模型,使用之前需對雙目相機(jī)系統(tǒng)進(jìn)行檢校,隨后獲取精確的相機(jī)內(nèi)、外方位元素.
傳統(tǒng)的雙目相機(jī)檢校方法需要特定的檢校器材和專門的操作人員,如被廣泛使用的基于棋盤格的檢校方法[3].該方法要求棋盤格板平整,并且要求相機(jī)系統(tǒng)以不同的姿態(tài)對棋盤格進(jìn)行多次拍攝.為了減少拍攝數(shù)量,Geiger等[4]在場景中布設(shè)多塊不同姿態(tài)的棋盤格板通過一次拍攝進(jìn)行檢校,該方法雖然簡化了傳統(tǒng)棋盤格檢校方法,但仍需要檢校器材和檢校場地.Carrera等[5]提出了基于即時定位和地圖構(gòu)建(SLAM)的相機(jī)動態(tài)檢校方法.通過環(huán)境中特征點(diǎn)識別來建立環(huán)境三維模型,并以此為基準(zhǔn)計算相機(jī)位置,從而檢校雙目相機(jī)系統(tǒng).然而,該方法僅檢校了相機(jī)的外方位元素,未能更新相機(jī)的內(nèi)方位元素和尺度信息,因此得到的內(nèi)、外方位元素的精度較低.為此,Heng等[6]引入里程計來恢復(fù)尺度信息,并聯(lián)合優(yōu)化相機(jī)的內(nèi)、外方位元素,但該方法仍需要額外的檢校器材即里程計輔助,并且尺度估計的精度由里程計的精度決定,為獲取較高的精度需配合價格高昂的高精度里程計.
本文改進(jìn)了基于SLAM的動態(tài)檢校方法,提出了基于場景模型的雙目相機(jī)內(nèi)、外方位元素動態(tài)檢校方法.對于相機(jī)檢校參數(shù)未知并且場景模型缺失的情況,通過建立具有絕對尺度的場景三維模型,初步解算內(nèi)、外方位元素,并采用聯(lián)合優(yōu)化對相機(jī)系統(tǒng)進(jìn)行初始檢校.若相機(jī)在某場景已經(jīng)完成初始檢校,則利用已經(jīng)建立的場景模型,恢復(fù)三維點(diǎn)與二維影像的特征關(guān)聯(lián),通過聯(lián)合優(yōu)化相機(jī)檢校參數(shù)對相機(jī)系統(tǒng)進(jìn)行更新檢校.
本文檢校方法針對的雙目相機(jī)模型是由2個基于中心投影的單目相機(jī)模型組成.雙目相機(jī)檢校即對2個單目相機(jī)各自的相機(jī)參數(shù)(內(nèi)方位元素)以及2個相機(jī)之間相互的位置與姿態(tài)(外方位元素)進(jìn)行檢校.各項(xiàng)參數(shù)及其相對關(guān)系如圖1所示.
圖1 雙目相機(jī)內(nèi)、外方位元素示意圖Fig.1 Intrinsic and extrinsic parameters of stereo-camera
通過中心投影的相機(jī)模型[7]建立了場景三維點(diǎn)與像平面點(diǎn)之間的關(guān)系,如下所示:
x=PX
(1)
(2)
式中:f為相機(jī)焦距;(u0,v0)為像主點(diǎn)坐標(biāo);s為相機(jī)畸變參數(shù).假設(shè)第p個三維場景點(diǎn)Xp被n張影像觀測到,其對應(yīng)影像上的二維特征點(diǎn)xnp,并且假設(shè)三維場景點(diǎn)和影像的相對位置和姿態(tài)即[Rn|tn]是已知的.因此,相機(jī)的內(nèi)方位元素為
(3)
式中:K[Rn|tn]Xp代表了三維場景點(diǎn)在n張影像上的投影,其對應(yīng)的影像同名二維特征點(diǎn)為xnp.理論上三維場景點(diǎn)的投影與同名二維特征點(diǎn)的誤差為零,但是由于三維場景點(diǎn)和影像的位置和姿態(tài)存在誤差,因此借助梯度下降算法優(yōu)化內(nèi)方位元素矩陣K,使得投影誤差最小.在優(yōu)化過程中,內(nèi)方位元素的初始焦距可以從相片的exif信息中獲取,初始相主點(diǎn)坐標(biāo)取影像的中心,通過梯度下降法優(yōu)化式(3),最后得到的最優(yōu)K矩陣為內(nèi)方位元素的初步估計值.
雙目相機(jī)所需檢校的外方位元素是指右相機(jī)相對于左相機(jī)的位置和姿態(tài)即[RE|tE]并且
TLn=RETRn+tE
(4)
式:(TLn,TRn)為第n個像對中左右相機(jī)的位置和姿態(tài),TLn=[RLn|tLn],TRn=[RRn|tRn].假設(shè)(TLn,TRn)已知,則外方位元素[RE|tE]可以由第n個像對中左右像片的位置和姿態(tài)求得,如下所示:
(5)
(6)
由于在現(xiàn)有解算雙目相機(jī)內(nèi)、外方位元素的過程中,分別計算并優(yōu)化了內(nèi)、外方位元素,未考慮其相互影響,因此本文基于重投影誤差最小化建立了目標(biāo)方程,對相機(jī)的內(nèi)、外方位元素進(jìn)行聯(lián)合優(yōu)化.雙目相機(jī)的內(nèi)、外方位元素的檢校所要解決的聯(lián)合優(yōu)化問題可以表示為
(7)
基于場景模型的雙目相機(jī)檢??梢苑譃?種情況:初始檢校和更新檢校.初始檢校是指在某未知場景中對未檢校的雙目相機(jī)進(jìn)行檢校,檢校過程中場景的全局模型以及相機(jī)內(nèi)、外方位元素未知;更新檢校是指在某已知場景中對已經(jīng)檢校的雙目相機(jī)進(jìn)行檢校,檢校過程中相機(jī)系統(tǒng)的歷史檢校參數(shù)和全局場景模型均為已知.若選定某一場景作為相機(jī)檢校場地,則第1次檢校對應(yīng)初始檢校,而其后定期的檢校對應(yīng)更新檢校.圖2給出了2種情況下動態(tài)檢校系統(tǒng)的具體工作流程.
由于初始檢校時場景模型未知,因此在檢校前需要根據(jù)待檢校的雙目相機(jī)獲取場景的影像數(shù)據(jù),利用SFM技術(shù)獲取全局場景三維模型[10].因雙目相機(jī)的檢校參數(shù)未知,本文在建模階段將雙目相機(jī)視為2個單目相機(jī)模型,相機(jī)的初始焦距從相片的exif信息中獲取或由所用鏡頭的焦距和傳感器像元大小估算,初始相主點(diǎn)坐標(biāo)取影像的中心.本文遵循SFM技術(shù)的標(biāo)準(zhǔn)流程:影像特征提取匹配、模型重建初始化、影像配準(zhǔn)和光束法平差.根據(jù)2個單目相機(jī)獲得的影像重建場景局部三維模型,同時根據(jù)式(3)估計內(nèi)方位元素初值.此外,為保證建模精度以及長時間內(nèi)模型與現(xiàn)實(shí)場景的一致性,在選擇場景時首選靜態(tài)剛性結(jié)果的場景,如地下車庫環(huán)境、室內(nèi)環(huán)境等.同時,為了減少建模的累積誤差,在數(shù)據(jù)采集時以軌跡閉合的方式進(jìn)行,并在構(gòu)建模型的過程中以環(huán)閉的方式去修正建模的累積誤差.
圖2 雙目相機(jī)動態(tài)檢校流程Fig.2 Calibration process of stereo-camera
本文對2個單目相機(jī)在局部模型坐標(biāo)系分別進(jìn)行建模,因此建模結(jié)果的模型坐標(biāo)系不統(tǒng)一,并且基于單目視覺的三維重建無法恢復(fù)模型的絕對尺度信息,導(dǎo)致所獲得的三維結(jié)構(gòu)不具有可量測性.為獲取統(tǒng)一的場景模型并且恢復(fù)尺度信息,本文在檢校場景中布設(shè)了視覺標(biāo)志點(diǎn),利用全站儀布設(shè)觀測網(wǎng)來測量三維坐標(biāo),為通過單目視覺建立的三維模型提供全局坐標(biāo)參考和絕對尺度信息.
在識別出影像中視覺標(biāo)志點(diǎn)后,通過標(biāo)志點(diǎn)點(diǎn)號查詢獲取標(biāo)志點(diǎn)在三維模型中的坐標(biāo)和由全站儀測量的坐標(biāo),采用七參數(shù)法[11]進(jìn)行坐標(biāo)轉(zhuǎn)換,將2個由單目相機(jī)建立的三維模型轉(zhuǎn)換到統(tǒng)一坐標(biāo)系并恢復(fù)尺度信息.考慮到局部三維模型之間存在重疊,為了減少全局場景中重復(fù)的三維點(diǎn),同時降低建模的誤差,將統(tǒng)一模型中的三維點(diǎn)投影至二維影像平面,得到影像中關(guān)聯(lián)的二維特征點(diǎn).若2個三維點(diǎn)之間的二維特征相似度大于一定閾值,則認(rèn)為空間中的三維點(diǎn)為同一點(diǎn),且該點(diǎn)的三維坐標(biāo)為原始2個三維點(diǎn)坐標(biāo)的平均值.
在SFM技術(shù)實(shí)施過程中,恢復(fù)了各時刻單目相機(jī)的位置與姿態(tài),并且在坐標(biāo)轉(zhuǎn)換過程中將其轉(zhuǎn)換為統(tǒng)一的全局模型坐標(biāo)系,因此可根據(jù)第1.2節(jié)估算雙目相機(jī)外方位元素初值.最后,根據(jù)式(7)聯(lián)合優(yōu)化內(nèi)、外方位元素.
在實(shí)際使用過程中,雙目相機(jī)的檢校參數(shù)可能會隨著環(huán)境的改變、器材的磨損或形變等發(fā)生變化,因此在進(jìn)行初始檢校后,需定期對雙目相機(jī)進(jìn)行更新檢校,以確保雙目相機(jī)的檢校參數(shù)能夠更加客觀和真實(shí)地描述相機(jī)系統(tǒng)的幾何關(guān)系.
當(dāng)雙目相機(jī)在某個場景中已經(jīng)完成了初始檢校時,則當(dāng)前場景的全局模型已經(jīng)建立,并且相機(jī)的內(nèi)、外方位元素已知.在更新檢校過程中,無需再進(jìn)行三維建模,僅需建立影像中二維特征點(diǎn)與場景模型中三維點(diǎn)的關(guān)聯(lián).本文場景模型中的三維點(diǎn)是由影像中二維特征點(diǎn)估算的,因此三維點(diǎn)的屬性不僅包含三維坐標(biāo)信息,還包含了對應(yīng)影像二維點(diǎn)的特征描述子信息.以此作為關(guān)聯(lián),利用詞袋(BoW)法[12]建立模型中三維點(diǎn)與影像同名二維特征點(diǎn)的關(guān)聯(lián).考慮到關(guān)聯(lián)中可能存在的誤匹配,利用N點(diǎn)透視(PnP)算法[13]并結(jié)合隨機(jī)抽樣一致性算法(RANSAC)[14]剔除誤匹配,估計相機(jī)的位置和姿態(tài)信息.將相機(jī)的位置和姿態(tài)以及上一次檢校得到的相機(jī)參數(shù)作為初值代入式(7),以重投影誤差最小化為目標(biāo)進(jìn)行聯(lián)合優(yōu)化,對相機(jī)檢校參數(shù)進(jìn)行更新.
更新檢校是以初始檢校為基礎(chǔ),其檢校流程更加簡便,無需人工參與,且不依賴于檢校設(shè)備.
從檢校流程角度來看,本文方法與基于SLAM的檢校方法[5]較為接近,但本文方法增加了內(nèi)方位元素檢校、視覺標(biāo)志點(diǎn)測量過程和聯(lián)合優(yōu)化過程.因此,本文的檢校方法相比于基于SLAM的檢校方法能夠更加完整地檢校相機(jī)系統(tǒng)的內(nèi)、外方位元素.
本文方法與傳統(tǒng)棋盤格檢校方法在檢校流程上有較大的差異,因此將檢校過程中人工參與程度和檢校對于特定設(shè)備和場地的依賴程度進(jìn)行對比.首先,對比2種檢校方法中人工參與程度.本文提出的基于場景的相機(jī)檢校方法,為了建立坐標(biāo)統(tǒng)一且具有絕對尺度參考的場景模型,僅需在初始檢校過程中進(jìn)行人工地布設(shè)以及場景中視覺標(biāo)志點(diǎn)測量,后續(xù)更新檢校則不需進(jìn)行重復(fù)人工檢校,并且其他雙目相機(jī)也可利用相同場景進(jìn)行檢校而無需重復(fù)人工測量.對于傳統(tǒng)棋盤格檢校方法,不同雙目相機(jī)在不同時間的檢校均需要人工參與,并且檢校人員操作的規(guī)范程度直接影響了檢校的精度.然后,對比2種檢校方法的檢校流程.本文方法在對雙目相機(jī)進(jìn)行多次檢校時所需的人工參與較少,就檢校的自動化程度而言要優(yōu)于傳統(tǒng)棋盤格檢校方法.最后,從檢校所需的設(shè)備和場地對2種檢校方法進(jìn)行對比.由于本文方法借助于場景模型進(jìn)行檢校,因此要求場景為靜態(tài)剛性結(jié)構(gòu),這類場景中地物多為靜態(tài)且相互位置關(guān)系穩(wěn)定,能為檢校提供良好的觀測數(shù)據(jù);傳統(tǒng)棋盤格檢校方法則需要以棋盤格板作為檢校設(shè)備,從中提取棋盤格的角點(diǎn)作為觀測數(shù)據(jù).本文檢校方法中用于檢校的場景模型為檢校提供更多的觀測數(shù)據(jù),并且觀測數(shù)據(jù)在三維空間中和二維影像平面中的分布更加均勻,而傳統(tǒng)棋盤格檢校方法提供的觀測數(shù)據(jù)有限,并且受限于棋盤格的大小,很難同時覆蓋雙目相機(jī)中左右2幀影像.
為驗(yàn)證本文方法,選用1臺無人駕駛車作為實(shí)驗(yàn)平臺,在地下車庫環(huán)境進(jìn)行了實(shí)驗(yàn).無人駕駛車平臺搭載1組雙目相機(jī)、數(shù)據(jù)采集存儲系統(tǒng)和輔助照明系統(tǒng),如圖3所示.其中,雙目相機(jī)由2個位置關(guān)系固定且同步觸發(fā)的工業(yè)相機(jī)組成,工業(yè)相機(jī)的型號為FLIR Blackfly 2.3 MP.考慮到傳輸帶寬和數(shù)據(jù)采集存儲系統(tǒng)的寫入速度,采集過程中設(shè)置的相機(jī)觸發(fā)頻率為2 Hz.數(shù)據(jù)采集存儲系統(tǒng)同步接收拍攝的影像,并根據(jù)時序?qū)ζ溥M(jìn)行編號存儲.輔助照明系統(tǒng)為光線不足的地下環(huán)境提供額外的照明,確保獲取影像的質(zhì)量.實(shí)驗(yàn)場地長約35 m,寬約25 m,并且首尾相連為一個環(huán)形.實(shí)驗(yàn)場景內(nèi)共布設(shè)了90處視覺標(biāo)志點(diǎn)(見圖4),利用全站儀測量其坐標(biāo).為驗(yàn)證本文的初始檢校方法,控制無人車在場地中運(yùn)行了3圈,數(shù)據(jù)采集時間約為10 min,共采集約600對有效相片.為驗(yàn)證更新檢校方法,控制無人車在場地中運(yùn)行了1圈,共采集200對有效相片.
實(shí)驗(yàn)中,對同一雙目相機(jī)分別利用基于場景模型的檢校方法、基于SLAM的檢校方法[5]和傳統(tǒng)棋盤格檢校方法[3]進(jìn)行檢校,并對檢校結(jié)果進(jìn)行對比.對于傳統(tǒng)棋盤格檢校方法,通過拍攝60張不同角度、位置的棋盤格影像進(jìn)行檢校.對于基于SLAM的檢校方法,利用600對影像進(jìn)行檢校.對于本文基于場景模型的初始檢校方法利用600對影像建立場景的三維模型并進(jìn)行檢校,對于本文基于場景模型的更新檢校方法,利用200對影像進(jìn)行檢校.幾次實(shí)驗(yàn)在同一時間段內(nèi)完成,以確保雙目相機(jī)的內(nèi)、外方位元素沒有發(fā)生較大變化.
圖3 實(shí)驗(yàn)平臺Fig.3 Experiment platform
圖4 實(shí)驗(yàn)環(huán)境與視覺標(biāo)志點(diǎn)Fig.4 Experiment environment and visual marks
4種檢校方法得到的雙目相機(jī)外方位元素比較如表1所示,內(nèi)方位元素比較如表2所示.
表1 外方位元素比較Tab.1 Extrinsic parameter comparison
注:α、β、γ為外方位元素角度,X、Y、Z為外方位元素位置.
表2 內(nèi)方位元素數(shù)值比較Tab.2 Intrinsic parameter comparison
基于SLAM的檢校方法和本文檢校方法設(shè)定的相機(jī)內(nèi)方位元素初值為:f=1 450,u0=960,v0=600,s=0.由于基于SLAM的檢校方法僅針對外方位元素進(jìn)行了檢校,因此其檢校結(jié)果中的內(nèi)方位元素仍為初值,與本文檢校方法和傳統(tǒng)棋盤格檢校方法相比精度較低.在外方位元素估計中,基于SLAM的檢校方法無法恢復(fù)絕對尺度信息,其估計得到的外方位元素中平移參數(shù)僅表示為單位向量的形式而不具有單位;本文檢校方法和傳統(tǒng)棋盤格檢校方法則均能恢復(fù)絕對尺度信息,因此平移參數(shù)具有單位.由分析結(jié)果可知,基于SLAM的檢校方法不能對相機(jī)的內(nèi)、外方位元素進(jìn)行全面檢校,在實(shí)際應(yīng)用中尚需結(jié)合其他檢校方法以恢復(fù)內(nèi)方位元素以及絕對尺度.
對于本文提出的初始檢校方法和更新檢校方法,兩者實(shí)驗(yàn)結(jié)果較為接近,說明2次實(shí)驗(yàn)期間相機(jī)的內(nèi)、外方位元素未發(fā)生變化,與實(shí)際情況相符,這也證明了本文初始檢校方法和更新檢校方法的一致性與可靠性.
對于本文檢校方法與傳統(tǒng)棋盤格檢校方法,兩者均能對相機(jī)系統(tǒng)進(jìn)行全面檢校并恢復(fù)絕對尺度.本文檢校方法在聯(lián)合優(yōu)化后的平均重投影誤差為0.68像素,傳統(tǒng)棋盤格檢校方法得到的重投影誤差為0.59像素,兩者較為接近.這表明本文檢校方法構(gòu)建的場景模型精度與傳統(tǒng)棋盤格檢校方法估計角點(diǎn)的精度相當(dāng),均符合檢校的需求.比較2種方法得到的內(nèi)、外方位元素.外方位元素旋轉(zhuǎn)角的差值約為0.03°,平移的差值約為5 mm;內(nèi)方位元素的差值約為10~20像素.雖然這2種方法得到的檢校結(jié)果接近,但是仍存在一定的差值.由于2種方法求得的都是內(nèi)、外方位元素的估計值,內(nèi)、外方位元素的真實(shí)值未知,因此無法僅從參數(shù)角度分析和評價2種方法所得結(jié)果的精度.為了進(jìn)一步比較結(jié)果精度,本文將這2種方法得到的檢校參數(shù)應(yīng)用于雙目影像校正、雙目視覺定位算法.
(1)雙目影像校正結(jié)果驗(yàn)證
雙目影像校正即利用雙目相機(jī)的內(nèi)、外方位元素校正雙目影像的畸變和光軸位置,最終得到無畸變并且光軸平行的雙目影像.理論上經(jīng)過雙目影像校正后的雙目影像同名點(diǎn)的縱坐標(biāo)值相等[15],但是由于檢校參數(shù)中的誤差,校正后的同名點(diǎn)縱坐標(biāo)存在差值,同名點(diǎn)縱坐標(biāo)的差值越小說明檢校參數(shù)的精度越高.本文實(shí)驗(yàn)利用待檢校的雙目相機(jī)拍攝了50對雙目影像作為測試影像(未參與檢校).分別利用2種方法得到的檢校參數(shù)對測試影像進(jìn)行雙目校正,比較左右相片中同名點(diǎn)縱坐標(biāo)的差值結(jié)果,如圖5所示.
圖5 雙目影像校正結(jié)果Fig.5 Results of stereo rectification
如圖5所示,傳統(tǒng)棋盤格檢校方法對應(yīng)的左右影像縱坐標(biāo)平均差值為1.70像素,而本文檢校方法的平均差值為1.53像素.比較校正后影像同名點(diǎn)縱坐標(biāo)的平均差值可知,利用本文檢校方法得到的檢校結(jié)果進(jìn)行雙目校正時,可以得到更加精確的雙目校正結(jié)果,這也證明了本文檢校方法得到的檢校結(jié)果精度優(yōu)于傳統(tǒng)棋盤格檢校方法.
(2)雙目視覺定位結(jié)果驗(yàn)證
雙目視覺定位是雙目相機(jī)的一個重要應(yīng)用,雙目檢校的精度也很大程度上決定了雙目定位的精度[16].因此,本文實(shí)驗(yàn)將2種方法得到的檢校結(jié)果應(yīng)用于雙目定位算法,并設(shè)定定位算法的其他參數(shù)相同,最后通過評估雙目視覺定位的精度來評價檢校結(jié)果,如圖6所示.圖6中,X、Y表示定位在二維平面上的橫縱坐標(biāo).
本文實(shí)驗(yàn)的位置真實(shí)值由全站儀測量場景特征點(diǎn)坐標(biāo)反算自身位置獲取.對比圖6中雙目定位結(jié)果可以看出,基于場景模型的檢校方法對應(yīng)的雙目視覺定位的精度優(yōu)于傳統(tǒng)棋盤格檢校方法參數(shù)對應(yīng)的定位結(jié)果.傳統(tǒng)棋盤格檢校方法對應(yīng)的定位誤差為0.87 m,相對定位誤差為1.30%;基于場景模型的檢校方法對應(yīng)的定位誤差為0.53 m,相對定位誤差為0.08%.進(jìn)一步分析2種方法對應(yīng)的定位累積誤差,如圖7所示.雙目視覺定位算法的定位誤差隨著解算的像對數(shù)量增加而累積,通過提高每一幀影像的定位精度本文檢校方法可以有效減少0.05%的累積誤差.通過比較雙目視覺定位算法的精度,驗(yàn)證了本文檢校方法得到的檢校結(jié)果精度優(yōu)于傳統(tǒng)棋盤格檢校方法得到的檢校結(jié)果精度.
圖6 雙目視覺定位結(jié)果Fig.6 Results of stereo visual odometry
圖7 雙目視覺定位累積誤差對比Fig.7 Accumulated error comparison of stereo visual odometry
本文針對雙目相機(jī)提出了基于場景模型的檢校方法.該檢校方法通過預(yù)先建立場景模型,并利用場景模型對雙目相機(jī)的內(nèi)、外方位元素進(jìn)行檢校.根據(jù)不同檢校需求,本文檢校方法可分為初始檢校和更新檢校,初始檢校針對場景和檢校參數(shù)未知的情況,更新檢校針對場景和檢校參數(shù)已知但需更新的情況.從檢校流程角度分析,本文檢校方法的自動化程度優(yōu)于傳統(tǒng)棋盤格檢校方法,并且為檢校提供了數(shù)據(jù)更多、分布更均勻的三維點(diǎn).通過在地下車庫環(huán)境中的實(shí)驗(yàn),驗(yàn)證了本文方法檢校的完整性優(yōu)于基于SLAM的檢校方法,檢校精度優(yōu)于傳統(tǒng)棋盤格檢校方法.