特征法視覺SLAM逆深度濾波的三維重建
摘要:針對(duì)現(xiàn)有特征法視覺SLAM只能重建稀疏點(diǎn)云、非關(guān)鍵幀對(duì)地圖點(diǎn)深度估計(jì)無(wú)貢獻(xiàn)等問(wèn)題,本文提出一種特征法視覺SLAM逆深度濾波的三維重建方法,可利用視頻序列影像實(shí)時(shí)、增量式地構(gòu)建相對(duì)稠密的場(chǎng)景結(jié)構(gòu)。具體來(lái)說(shuō),設(shè)計(jì)了一種基于運(yùn)動(dòng)模型的關(guān)鍵幀追蹤流程,能夠提供精確的相對(duì)位姿關(guān)系;采用一種基于概率分布的逆深度濾波器,地圖點(diǎn)通過(guò)多幀信息累積、更新得到,而不再由兩幀三角化直接獲取;提出一種基于特征法與直接法的后端混合優(yōu)化框架,以及基于平差約束的地圖點(diǎn)篩選策略,可以準(zhǔn)確、高效解算相機(jī)位姿與場(chǎng)景結(jié)構(gòu)。試驗(yàn)結(jié)果表明,與現(xiàn)有方法相比,本文方法具有更高的計(jì)算效率和位姿估計(jì)精度,而且能夠重建出全局一致的較稠密點(diǎn)云地圖。
3D reconstruction with inverse depth filter of feature-based visual SLAM
ZHANG Yi,JIANG Ting,JIANG Gangwu,YU Anzhu,YU Ying
Institute of Surveying and Mapping, Information Engineering University, Zhengzhou 450001, China
Foundation support: The National Natural Science Foundation of China (Nos. 41501482; 41471387; 41801388)
First author: ZHANG Yi (1989—), male, PhD candidate, majors in digital photogrammetry and visual SLAM. E-mail:276690308@qq.com.
Abstract: Aiming at the problem that the current feature-based visual SLAM can only reconstruct a sparse point cloud and the ordinary frame does not contribute to point depth estimation, a novel 3D reconstruction method with inverse depth filter of feature-based visual SLAM is proposed, which utilizes video sequence to incrementally build a denser scene structure in real-time. Specifically, a motion model based keyframe tracking approach is designed to provide accurate relative pose relationship. The map point is no longer calculated directly by two-frame-triangulation, instead it is accumulated and updated by information of several frames with an inverse depth filter based on probability distribution. A back-end hybrid optimization framework composed of feature and direct method is introduced, as well as an adjustment constraint based point screening strategy, which can precisely and efficiently solve camera pose and structure. The experimental results demonstrate the superiority of proposed method on computational speed and pose estimation accuracy compared with existing methods. Meanwhile, it is shown that our method can reconstruct a denser globally consistent point cloud map.
Key words:visual simultaneous localization and mapping3D reconstructioninverse depth filtermotion modelback-end hybrid optimization framework
視覺即時(shí)定位與地圖構(gòu)建(visual simultaneous localization and mapping, VSLAM)技術(shù),以視頻序列影像為輸入,能夠在恢復(fù)相機(jī)運(yùn)動(dòng)軌跡的同時(shí),實(shí)時(shí)重建未知場(chǎng)景的三維結(jié)構(gòu),可用于無(wú)人機(jī)、車輛、機(jī)器人等平臺(tái)的智能環(huán)境感知、自動(dòng)駕駛與導(dǎo)航[1],也可用于應(yīng)急測(cè)繪、災(zāi)害與突發(fā)事件監(jiān)測(cè)、虛擬與增強(qiáng)現(xiàn)實(shí)等場(chǎng)景,具有廣闊的應(yīng)用前景與市場(chǎng)潛力[2-3]。
目前視覺SLAM算法主要采用基于關(guān)鍵幀優(yōu)化的特征法[4-6]進(jìn)行實(shí)現(xiàn),其基本流程是:首先從每幅影像中提取出具有可重復(fù)性與顯著區(qū)分性的點(diǎn)、線特征;使用不變性描述符在后續(xù)幀中對(duì)特征進(jìn)行匹配,利用多視圖幾何原理恢復(fù)相機(jī)位姿與結(jié)構(gòu),然后通過(guò)光束法平差[7]進(jìn)行聯(lián)合優(yōu)化。
在諸多特征法SLAM中最具代表性的是ORB-SLAM[8-9],它采用統(tǒng)一的ORB[10](oriented FAST and rotated BRIEF)特征進(jìn)行計(jì)算,在室內(nèi)外環(huán)境中均能穩(wěn)健、實(shí)時(shí)運(yùn)行,可在大視角差異下完成重定位與閉環(huán)檢測(cè),并且由像點(diǎn)匹配累積的共視[6]信息可用于構(gòu)建強(qiáng)壯的平差與圖優(yōu)化[11]網(wǎng)絡(luò),有利于得到全局最優(yōu)解。ORB-SLAM的主要缺陷在于,地圖點(diǎn)通過(guò)兩關(guān)鍵幀三角化直接得到,對(duì)于短基線視頻影像,其深度不確定性較大,為避免粗差必須采取嚴(yán)格的篩選策略,導(dǎo)致所構(gòu)點(diǎn)云地圖十分稀疏。此外,ORB-SLAM的非關(guān)鍵幀在追蹤完后即被拋棄,其對(duì)地圖點(diǎn)深度信息無(wú)貢獻(xiàn),造成了資源浪費(fèi)。
從應(yīng)用層面看,稀疏點(diǎn)云僅可用于傳感器的自身定位,而較高級(jí)的視覺導(dǎo)航、避障、虛擬增強(qiáng)現(xiàn)實(shí)、模型重建、語(yǔ)義識(shí)別等應(yīng)用,都需要更加稠密的地圖表達(dá)。為此,直接法相關(guān)技術(shù)獲得了更多關(guān)注,它根據(jù)像素亮度差異直接構(gòu)建優(yōu)化問(wèn)題求解相機(jī)位姿,并采用一種基于概率分布的深度濾波器模型[12-14],利用多幀影像更新地圖點(diǎn)深度信息。早期的直接法多根據(jù)稠密深度圖進(jìn)行計(jì)算,以最大化利用影像信息并增加穩(wěn)健性[15-17],這類算法一般需要GPU加速來(lái)滿足計(jì)算要求。文獻(xiàn)[14, 18]使用具有顯著梯度的像素,在CPU上完成了較稠密的實(shí)時(shí)重建;文獻(xiàn)[13, 19]提出了僅需少量像素的稀疏直接法,使算法具有更強(qiáng)的適用性。
直接法不必進(jìn)行特征提取與匹配,因而具備了更高的計(jì)算效率,但它易受相機(jī)曝光、環(huán)境光源等因素影響,當(dāng)場(chǎng)景亮度變化劇烈時(shí)可能導(dǎo)致求解失敗,穩(wěn)健性不足[2]。另外,直接法優(yōu)化基于像素本身進(jìn)行操作,該過(guò)程需要完整的影像數(shù)據(jù),對(duì)于大規(guī)模場(chǎng)景來(lái)說(shuō),由于設(shè)備存儲(chǔ)空間有限,直接法難以進(jìn)行全局質(zhì)量控制。為此文獻(xiàn)[20]將概率分布構(gòu)圖方法應(yīng)用于ORB-SLAM中,使得其在保留特征法優(yōu)點(diǎn)的同時(shí),能夠重建出精確的稠密場(chǎng)景結(jié)構(gòu)。但由于其構(gòu)圖模塊獨(dú)立于ORB-SLAM系統(tǒng)并具有若干關(guān)鍵幀的延遲,嚴(yán)格意義上并不屬于在線處理,并且構(gòu)圖結(jié)果無(wú)法用于后續(xù)幀的位姿追蹤,作用有限。
在總結(jié)前文算法的基礎(chǔ)上,本文提出一種特征法視覺SLAM逆深度濾波的三維重建方法,無(wú)須GPU加速即可實(shí)時(shí)、增量式地重建出較為稠密的點(diǎn)云地圖。在前端中,設(shè)計(jì)了一種基于運(yùn)動(dòng)模型的參考關(guān)鍵幀追蹤流程,能夠有效利用視頻影像先驗(yàn)約束獲取精確的相對(duì)位姿關(guān)系;建模并分析了深度估計(jì)誤差,采用一種基于概率分布的逆深度濾波器構(gòu)圖方法,可得到更加稠密的地圖點(diǎn)。在后端中,提出一種基于特征法與直接法混合的優(yōu)化框架以及基于平差約束的點(diǎn)位篩選策略,可以準(zhǔn)確、高效地恢復(fù)相機(jī)位姿與場(chǎng)景結(jié)構(gòu)。
1 總體流程與關(guān)鍵技術(shù)1.1 總體流程
本文核心思路是:地圖點(diǎn)不再由兩幀三角化直接得到,而是先構(gòu)造為種子點(diǎn),經(jīng)多幀信息融合直至深度收斂后再插入地圖。為此設(shè)計(jì)總體流程如圖 1所示,系統(tǒng)以O(shè)RB-SLAM為基礎(chǔ)框架,仍采用前后端結(jié)合的三線程結(jié)構(gòu),主要改動(dòng)集中于追蹤與局部構(gòu)圖線程,以粗體表示。
圖 1本文方法總體流程Fig. 1Flowchart of the proposed algorithm |
圖選項(xiàng) |
對(duì)于輸入的每一幀視頻序列影像,首先在前端追蹤線程中提取ORB特征,利用運(yùn)動(dòng)模型提供的幀間先驗(yàn)約束,將參考關(guān)鍵幀的地圖點(diǎn)投影至當(dāng)前幀,進(jìn)行特征匹配與位姿估計(jì);然后在逆深度濾波器中對(duì)參考關(guān)鍵幀的種子點(diǎn)進(jìn)行極線匹配并更新其深度;最后判斷該當(dāng)前幀是否應(yīng)作為新關(guān)鍵幀插入局部構(gòu)圖線程。
后端局部構(gòu)圖線程收到新關(guān)鍵幀后,首先將原參考關(guān)鍵幀中所有深度收斂的種子點(diǎn)激活為新的地圖點(diǎn),并與鄰近關(guān)鍵幀的其他局部地圖點(diǎn)一起投影至新關(guān)鍵幀以建立更多匹配;隨后根據(jù)各地圖點(diǎn)的觀測(cè)情況,采用一種基于特征法與直接法的混合框架優(yōu)化方法,聯(lián)合求解局部相機(jī)位姿與場(chǎng)景三維結(jié)構(gòu);在剔除掉地圖野點(diǎn)與重復(fù)關(guān)鍵幀后,將新關(guān)鍵幀作為后續(xù)影像的追蹤參考幀,其未匹配的特征點(diǎn)構(gòu)造為新的種子點(diǎn);最后,將新關(guān)鍵幀送入閉環(huán)線程以實(shí)現(xiàn)最優(yōu)全局一致性。
1.2 運(yùn)動(dòng)模型追蹤參考關(guān)鍵幀
準(zhǔn)確的極線幾何關(guān)系是本文逆深度濾波器順利更新種子點(diǎn)深度的前提,因此前端系統(tǒng)需提供當(dāng)前幀Ic關(guān)于參考關(guān)鍵幀Ir的精確相對(duì)位姿Tcr∈SE(3)。然而ORB-SLAM采用逐幀追蹤的方式,當(dāng)前幀并不直接與參考幀進(jìn)行匹配,Tcr只能通過(guò)間接方式求出,由于存在誤差累積等因素,該方法用于逆深度濾波器的效果較差。為此本文設(shè)計(jì)了一種新的追蹤方式,可直接計(jì)算當(dāng)前幀關(guān)于參考關(guān)鍵幀的相對(duì)位姿Tcr,基本流程如圖 2所示。
圖 2運(yùn)動(dòng)模型追蹤參考關(guān)鍵幀流程Fig. 2Flowchart of tracking reference keyframe with motion model |
圖選項(xiàng) |
由于視頻影像通常具有較高幀率,相機(jī)運(yùn)動(dòng)一般比較平穩(wěn),具備豐富的先驗(yàn)信息,能夠?yàn)樽粉櫹到y(tǒng)提供良好的初值。常速運(yùn)動(dòng)模型假設(shè)短時(shí)間內(nèi)相機(jī)幀間相對(duì)位姿保持不變,即
?(1)
式中,Tv∈SE(3)即為常速運(yùn)動(dòng)模型。由于參考幀Ir位姿Trw已知,上一幀Ic-1的相對(duì)位姿Tc-1,r=Tc-1,w·Trw-1也為已知,于是當(dāng)前幀Ic與參考幀Ir的相對(duì)位姿初值就可以按照式(2)計(jì)算
?(2)
由此就得到了一個(gè)的初值假設(shè),考慮到相機(jī)不規(guī)則運(yùn)動(dòng)的可能性,還需構(gòu)建多種其他假設(shè),包括雙倍運(yùn)動(dòng)假設(shè)、零運(yùn)動(dòng)假設(shè)等。算法首先采用常速假設(shè),將參考關(guān)鍵幀的地圖點(diǎn)投影至當(dāng)前幀,得到預(yù)測(cè)的像點(diǎn)坐標(biāo),然后在一定半徑范圍內(nèi)搜索最優(yōu)特征匹配,如果匹配數(shù)量不足就擴(kuò)大搜索范圍重新搜索。當(dāng)取得足夠數(shù)量的匹配后,進(jìn)行位姿優(yōu)化并采用自由度為2、置信度95%的χ2測(cè)試剔除野點(diǎn)。如果上述過(guò)程失敗,就采用其他假設(shè)繼續(xù)嘗試。該方法能夠準(zhǔn)確、穩(wěn)健地恢復(fù)當(dāng)前幀關(guān)于參考幀的相對(duì)位姿Tcr,同時(shí)能夠充分利用先驗(yàn)信息加速匹配過(guò)程。
1.3 逆深度濾波器
由于視頻序列影像幀間基線較短,直接通過(guò)兩幀計(jì)算的像點(diǎn)深度誤差往往較大,深度濾波器的基本思想是通過(guò)多次觀測(cè)融合更新像素深度。假設(shè)像點(diǎn)P的深度dp服從均值為μ,方差為δ2的正態(tài)分布,且系統(tǒng)每追蹤一幀,都可以通過(guò)極線搜索尋找該點(diǎn)在新幀上的匹配點(diǎn),進(jìn)而觀測(cè)到該點(diǎn)的深度μobs并估算方差δobs2,假設(shè)這次觀測(cè)仍服從正態(tài)分布,進(jìn)行高斯融合可以得到
?(3)
由式(3)可知,觀測(cè)融合后深度估計(jì)的方差會(huì)減小,當(dāng)其小于某一閾值并趨于穩(wěn)定時(shí),就認(rèn)為該點(diǎn)的深度值收斂。本文采用文獻(xiàn)[13]提出的方法對(duì)深度估計(jì)誤差進(jìn)行建模。如圖 3所示,設(shè)左影像Ir為參考關(guān)鍵幀,右影像Ic為已追蹤的當(dāng)前幀,O1、O2分別為兩幀相機(jī)光心位置,基線長(zhǎng)b,P為同名像點(diǎn)p1p2經(jīng)三角化得到的空間點(diǎn),其在左影像中的深度值為dp,P、O1、O23點(diǎn)的夾角分別記為α、β、γ,l2為p1在當(dāng)前幀Ic中對(duì)應(yīng)的極線。
圖 3深度估計(jì)誤差模型Fig. 3Error model of depth estimation |
圖選項(xiàng) |
假設(shè)在Ic上經(jīng)過(guò)極線匹配得到的同名點(diǎn)p2存在一個(gè)像素的誤差,相應(yīng)的深度值及夾角變?yōu)閐′p、β′與γ′。此時(shí)P點(diǎn)深度dp的誤差δp為
(4)
理論上,深度濾波器只需不斷將當(dāng)前幀得到的深度估值與方差作為新的觀測(cè),與已有數(shù)據(jù)進(jìn)行融合即可。然而實(shí)際過(guò)程中,由于位姿估計(jì)不夠準(zhǔn)確、匹配錯(cuò)誤等諸多原因,觀測(cè)值可能存在粗差,將會(huì)對(duì)融合結(jié)果產(chǎn)生較大影響,因此必須對(duì)該過(guò)程進(jìn)行優(yōu)化。
首先,文獻(xiàn)[21]發(fā)現(xiàn)逆深度(即深度值的倒數(shù))的統(tǒng)計(jì)直方圖更接近正態(tài)分布,因此在計(jì)算出P點(diǎn)深度值dp后,將其換算為逆深度ρp=1/dp,相應(yīng)的誤差計(jì)算公式為
(5)
其次,考慮到單像素的亮度與梯度沒有明顯的可區(qū)分性,易受噪聲影響,本文采用文獻(xiàn)[19]提出的8像素-圖像塊模型,用各像素的梯度均值作為中心像素的梯度,并按照距離平方和(sum of squared distance,SSD)測(cè)度進(jìn)行極線搜索匹配,能夠保證較高的準(zhǔn)確度并兼顧效率,如圖 4所示,其中p1為待匹配點(diǎn),pmin與pmax分別是按照最大與最小逆深度值(ρp±3δρ)計(jì)算的空間點(diǎn)P投影到當(dāng)前幀的像點(diǎn),兩點(diǎn)連線即為極線段向量l2。
圖 4圖像塊模型與極線搜索Fig. 4Patch model and epipolar line search |
圖選項(xiàng) |
此外,匹配點(diǎn)像素梯度與極線的夾角也對(duì)深度濾波器有重要影響,隨著像素梯度與極線段夾角的增加,極線匹配的不確定性也會(huì)增加[22]。由于視頻影像幀率較高,幀間相對(duì)旋轉(zhuǎn)較小,可將參考幀Ir上p1點(diǎn)的圖像塊平均梯度gp作為當(dāng)前幀Ic匹配點(diǎn)p2梯度的近似,于是由像素梯度與極線夾角造成的誤差可被定義為
?(6)
式中,n2表示極線段l2的法向量。由式(6)可知,當(dāng)l2與gp平行時(shí),Ep取得最小值,反之當(dāng)l2與gp垂直時(shí)Ep取得最大值。在實(shí)際計(jì)算過(guò)程中,若Ep小于某一閾值,并且極線搜索的最優(yōu)匹配SSD小于次優(yōu)匹配的一半以上,就認(rèn)為該點(diǎn)的深度觀測(cè)有效,可以對(duì)其進(jìn)行高斯融合。
1.4 后端混合局部?jī)?yōu)化框架
后端優(yōu)化是維持SLAM系統(tǒng)一致性的關(guān)鍵,在ORB-SLAM中該問(wèn)題可以通過(guò)局部光束法平差解決,但由于本文方法地圖點(diǎn)是通過(guò)深度濾波算法構(gòu)造的,在初始化時(shí)僅能夠被當(dāng)前關(guān)鍵幀觀測(cè),無(wú)法按照重投影誤差最小化原理進(jìn)行優(yōu)化。為此本文提出一種基于特征法與直接法的后端混合局部?jī)?yōu)化框架。
首先,對(duì)于觀測(cè)數(shù)大于等于3的地圖點(diǎn),采用光束法平差聯(lián)合求解相機(jī)位姿與地圖點(diǎn)位置。然后,對(duì)每個(gè)觀測(cè)數(shù)小于3的地圖點(diǎn),將其投影到其他關(guān)鍵幀,按照直接法輻射誤差最小化原理,對(duì)該點(diǎn)深度值進(jìn)行優(yōu)化。該過(guò)程可以用因子圖的形式表達(dá),如圖 5所示,MP1與MP2表示待優(yōu)化的地圖點(diǎn),HostKF表示構(gòu)造這兩個(gè)地圖點(diǎn)的主幀,LocalKF表示與主幀存在共視連接的局部關(guān)鍵幀,Ob表示地圖點(diǎn)投影到目標(biāo)關(guān)鍵幀形成了一次觀測(cè)(觀測(cè)的主幀與目標(biāo)幀分別用紅線和藍(lán)線表示)。
圖 5直接法深度優(yōu)化因子圖Fig. 5Factor graph of direct depth optimization |
圖選項(xiàng) |
假設(shè)圖像塊模型中的各像素具有相同的逆深度值,以MP1為例,其深度優(yōu)化目標(biāo)函數(shù)為
(7)
以及對(duì)應(yīng)的誤差項(xiàng)
?(8)
式中,優(yōu)化目標(biāo)ρ1為地圖點(diǎn)MP1在主幀HostKF中的逆深度;IH表示主幀影像灰度函數(shù);Ij表示第j個(gè)觀測(cè)目標(biāo)幀的影像灰度函數(shù);pi與p′i分別表示MP1投影在IH和Ij上的8像素-圖像塊的第i個(gè)像素。建立誤差方程式并線性化后,可按照最小二乘原理迭代求解。
采用該優(yōu)化框架的好處非常明顯:首先,觀測(cè)數(shù)較多的地圖點(diǎn)往往具有較好的穩(wěn)健性,平差系統(tǒng)能夠減少野點(diǎn)風(fēng)險(xiǎn),準(zhǔn)確恢復(fù)相機(jī)位姿與場(chǎng)景結(jié)構(gòu)[23],如圖 6(a);其次,這類地圖點(diǎn)數(shù)量稀疏,平差負(fù)擔(dān)小;而經(jīng)直接法優(yōu)化的地圖點(diǎn),如圖 6(b),盡管比較稠密,但未知數(shù)僅有一個(gè),且各點(diǎn)解算過(guò)程相互獨(dú)立,可采用并行策略進(jìn)行加速,從而提高優(yōu)化效率。
圖 6不同類型地圖點(diǎn)Fig. 6Different types of map points |
圖選項(xiàng) |
由于誤匹配等原因,系統(tǒng)在運(yùn)行過(guò)程中不可避免會(huì)出現(xiàn)地圖野點(diǎn),需予以剔除。對(duì)于新構(gòu)建的地圖點(diǎn),ORB-SLAM根據(jù)其在后續(xù)若干關(guān)鍵幀中的匹配情況進(jìn)行篩選,該策略無(wú)法用于本文直接法優(yōu)化的地圖點(diǎn)(匹配數(shù)不足,總是會(huì)被剔除)。為此,提出一種基于平差約束的篩選策略,每次后端優(yōu)化完成后,檢查所有新構(gòu)建的地圖點(diǎn),如果滿足以下任一條件,就會(huì)被標(biāo)記為野點(diǎn)并剔除。
(1) 經(jīng)局部光束法平差優(yōu)化后,重投影誤差未通過(guò)χ2測(cè)試被標(biāo)記為野點(diǎn)的;
(2) 經(jīng)直接法優(yōu)化后,能量函數(shù)超過(guò)閾值被標(biāo)記為野點(diǎn)的;
此外,如果一個(gè)地圖點(diǎn)被標(biāo)記為野點(diǎn),并且其主幀是最新的兩個(gè)關(guān)鍵幀之一,就重新將該點(diǎn)構(gòu)造為種子點(diǎn)進(jìn)行深度濾波。本文策略能夠在排除野點(diǎn)的同時(shí),有效增加點(diǎn)云密度。
2 試驗(yàn)與分析2.1 試驗(yàn)數(shù)據(jù)與評(píng)價(jià)方法
利用3組數(shù)據(jù)進(jìn)行驗(yàn)證,如圖 7所示,第1組數(shù)據(jù)選自開源TUM RGB-D數(shù)據(jù)集[24],采用移動(dòng)機(jī)器人搭載Kinect相機(jī)拍攝,拍攝環(huán)境為室內(nèi),本文僅利用其中的RGB數(shù)據(jù),數(shù)據(jù)集提供了完整的相機(jī)參數(shù)以及由高精度IMU獲取的位姿數(shù)據(jù)作為評(píng)價(jià)真值。
圖 7試驗(yàn)數(shù)據(jù)Fig. 7Data examples |
圖選項(xiàng) |
第2、3組數(shù)據(jù)由大疆精靈4無(wú)人機(jī)相機(jī)獲取,其中第2組采用手持方式,拍攝對(duì)象為室內(nèi)機(jī)房,第3組采用航拍方式,拍攝對(duì)象為室外建筑,相機(jī)預(yù)先經(jīng)過(guò)標(biāo)定并對(duì)原始影像進(jìn)行了幾何畸變校正,3組數(shù)據(jù)均包含完整閉合回路,基本信息見表 1。依據(jù)本文方法,在Ubuntu16.04系統(tǒng)下開發(fā)了驗(yàn)證算法ZY-SLAM,所用PC配置為:Inter Core i7 2.6 GHz、DDR3 16 GB,未采用GPU加速。
表 1試驗(yàn)數(shù)據(jù)基本信息Tab. 1Data description of test images
測(cè)試數(shù)據(jù) | 影像大小/像素 | 幀率/(幀/s) | 影像幀數(shù) | 平面范圍/m2 | 拍攝環(huán)境 |
TUM_Desk | 640×480 | 30 | 2964 | 5×6 | 室內(nèi) |
UAV_Lab | 1280×720 | 20 | 3231 | 18×12 | 室內(nèi) |
UAV_Building | 1920×1080 | 10 | 1840 | 160×120 | 室外 |
由于本文方法基于ORB-SLAM框架實(shí)現(xiàn),故以其作為主要比較對(duì)象,考慮到ORB-SLAM只能得到稀疏點(diǎn)云,而較為稠密的三維結(jié)構(gòu)表達(dá)又是直接法視覺里程計(jì)(visual odometry, VO)的研究熱點(diǎn),因此采用當(dāng)前具有代表性的DSO[19](后文稱DSO-VO,區(qū)別于SLAM)共同比較,按如下3種方法分析本文方法性能:
(1) 通過(guò)比較系統(tǒng)處理影像的整體及關(guān)鍵環(huán)節(jié)運(yùn)行時(shí)間,驗(yàn)證算法的計(jì)算效率;
(2) 通過(guò)計(jì)算軌跡誤差,分析算法的相機(jī)位姿估計(jì)精度;
(3) 通過(guò)目視檢查,評(píng)價(jià)算法的重建效果。
2.2 計(jì)算效率分析
表 2顯示了采用本文方法與ORB-SLAM對(duì)TUM_Desk數(shù)據(jù)進(jìn)行處理的系統(tǒng)運(yùn)行時(shí)間對(duì)比(由于DSO計(jì)算流程存在較大差異,這里未進(jìn)行對(duì)比)。本文方法的總體效率優(yōu)于ORB-SLAM,每幀平均處理時(shí)間約36 ms,幀率28 fps,基本滿足實(shí)時(shí)要求。
表 2系統(tǒng)總體運(yùn)行時(shí)間對(duì)比Tab. 2Comparison of system overall runtime
ORB-SLAM | ZY-SLAM | ||||
主要操作 | 平均耗時(shí)/ms | 主要操作 | 平均耗時(shí)/ms | ||
追蹤線程 | ORB特征提取 | 25.6 | ORB特征提取 | 25.6 | |
初始位姿估計(jì) | 3.6 | 運(yùn)動(dòng)追蹤 | 3.4 | ||
追蹤局部地圖 | 15.6 | 深度濾波 | 2.9 | ||
局部構(gòu)圖線程 | 插入關(guān)鍵幀 | 17.7 | 種子點(diǎn)激活 | 21.6 | |
地圖點(diǎn)篩選 | 0.1 | 追蹤局部地圖 | 18.2 | ||
地圖點(diǎn)構(gòu)造 | 22.7 | 局部光束法平差 | 184.6 | ||
匹配融合 | 122.2 | 直接法深度優(yōu)化 | 56.9 | ||
局部光束法平差 | 229.8 | 重復(fù)幀與野點(diǎn)剔除 | 11.5 | ||
重復(fù)幀剔除 | 11.1 | 構(gòu)造新種子點(diǎn) | 20.1 | ||
逐幀處理時(shí)間/ms | 45 | 36 | |||
地圖點(diǎn)數(shù)量/萬(wàn) | 0.6 | 14 |
考慮到本文方法地圖點(diǎn)數(shù)量超過(guò)ORB-SLAM的20倍,綜合效率提升非常顯著,這主要得益于:①追蹤線程中,本文方法采用追蹤參考關(guān)鍵幀的方式進(jìn)行位姿估計(jì),不再逐幀追蹤局部地圖,節(jié)省了大量資源;②局部構(gòu)圖線程中,影響計(jì)算效率的主要是局部平差。本文算法采用的混合優(yōu)化框架,能夠在準(zhǔn)確恢復(fù)相機(jī)位姿與場(chǎng)景結(jié)構(gòu)的同時(shí),有效降低平差規(guī)模,不僅可以減少局部平差優(yōu)化被中斷的次數(shù),也可以更好地平衡追蹤與局部構(gòu)圖這兩個(gè)并行線程的關(guān)系,使系統(tǒng)更加流暢。
上述試驗(yàn)結(jié)果也證明由深度濾波構(gòu)造地圖點(diǎn)的方式更適合SLAM系統(tǒng)。從效率角度看,深度濾波利用若干相鄰幀影像更新深度,由于基線較短,極線搜索范圍小,匹配成功率高,計(jì)算負(fù)擔(dān)低,系統(tǒng)運(yùn)行更平滑,更符合增量式重建的特點(diǎn),而ORB-SLAM為保證深度估計(jì)的可靠性,只在關(guān)鍵幀上進(jìn)行極線匹配,雖然基線較長(zhǎng),但搜索范圍大,耗時(shí)較長(zhǎng),同時(shí)由于影像函數(shù)的高度非凸性,可能存在若干接近最優(yōu)匹配的“次優(yōu)匹配”結(jié)果。從實(shí)用性角度看,深度濾波過(guò)程中,倘若某次觀測(cè)出現(xiàn)粗差,只需跳過(guò)該次觀測(cè),系統(tǒng)仍可利用后續(xù)觀測(cè)準(zhǔn)確估計(jì)深度,而在ORB-SLAM中,地圖點(diǎn)由兩關(guān)鍵幀直接計(jì)算,為避免粗差就需采用多種組合策略進(jìn)行約束,實(shí)際能夠通過(guò)測(cè)試的點(diǎn)對(duì)非常少,這也是ORB-SLAM只能輸出稀疏點(diǎn)云的主要原因。
2.3 相機(jī)軌跡誤差分析
位姿估計(jì)是SLAM系統(tǒng)的核心,其精度受地圖點(diǎn)精度的影響,并且反過(guò)來(lái)也直接影響所構(gòu)建的地圖點(diǎn)。由于本文方法屬于單目視覺SLAM,存在尺度不確定性,且位姿估值可以被定義在任何坐標(biāo)系下,無(wú)法直接與真值進(jìn)行比較,本文采用軌跡誤差來(lái)衡量算法的位姿估計(jì)精度。其思路是,先利用最小二乘得到位姿估值序列與真值序列的相似變換S∈Sim(3),將估值換算至同尺度真值坐標(biāo)系下再計(jì)算各幀的相對(duì)變換。軌跡誤差一般只計(jì)算平移分量,這是因?yàn)樗又庇^,并且也潛在地受到角度差異的影響[24]。此外,對(duì)于第2、3組無(wú)人機(jī)影像數(shù)據(jù),由于缺乏高精度POS實(shí)測(cè)的位姿真值,本文利用ContextCapture[25]軟件對(duì)影像數(shù)據(jù)進(jìn)行三維建模并將其空三結(jié)果作為評(píng)價(jià)真值使用。結(jié)果如表 3所示。
表 3不同方法位姿估計(jì)軌跡誤差比較Tab. 3Trajectory error comparison of pose estimation among different methods
cm | |||||||||||
Dataset | ORB-SLAM | ZY-SLAM | DSO-VO | ||||||||
RMS | Std | Max | RMS | Std | Max | RMS | Std | Max | |||
TUM_Desk | 0.81 | 0.31 | 1.52 | 0.72 | 0.28 | 1.61 | 6.14 | 3.06 | 11.07 | ||
UAV_Lab | 8.78 | 4.26 | 16.08 | 6.20 | 2.64 | 12.11 | 63.34 | 27.53 | 124.97 | ||
UAV_Building | 14.24 | 4.76 | 25.24 | 11.80 | 4.20 | 24.96 | 147.36 | 90.28 | 445.96 |
本文方法的位姿估計(jì)精度較ORB-SLAM有所提升,分析原因如下:①由深度濾波獲取的地圖點(diǎn)融合了多幀觀測(cè)結(jié)果,相比于直接通過(guò)兩幀三角化得到地圖點(diǎn)的方式,信息利用更加充分,三維位置更加準(zhǔn)確,對(duì)位姿估計(jì)產(chǎn)生積極影響;②由于地圖點(diǎn)數(shù)量較多,后端光束法平差可以僅采用觀測(cè)數(shù)多的點(diǎn)估計(jì)相機(jī)位姿,有助于減小野點(diǎn)對(duì)最小二乘系統(tǒng)的影響;③特征點(diǎn)匹配率更高,一定程度上增加了多余觀測(cè),能夠提高位姿估計(jì)的穩(wěn)健性。圖 8顯示了不同數(shù)據(jù)集的關(guān)鍵幀特征點(diǎn)匹配率,本文方法在大部分情況下均高于ORB-SLAM。
圖 8關(guān)鍵幀特征點(diǎn)匹配率Fig. 8Matching ratio of keyframe feature points |
圖選項(xiàng) |
此外,本文方法與ORB-SLAM的位姿估計(jì)精度明顯高于DSO-VO,這是因?yàn)榍皟煞N方法均可利用閉合回路約束減少累積誤差影響,而DSO-VO不具備此功能,軌跡誤差的累積效果在圖 9中尤為明顯。
圖 9相機(jī)平面軌跡與地面真值Fig. 9Camera plane trajectories and ground truth |
圖選項(xiàng) |
2.4 三維重建效果
在準(zhǔn)確恢復(fù)相機(jī)位姿的前提下,本文方法無(wú)須GPU加速即可重建出較為稠密的場(chǎng)景三維結(jié)構(gòu),如圖 10所示,從而使虛擬現(xiàn)實(shí)、機(jī)器感知、語(yǔ)義識(shí)別等更高級(jí)別的地圖應(yīng)用成為可能。這主要得益于,逆深度濾波器可以構(gòu)造大量地圖點(diǎn),且一個(gè)地圖點(diǎn)無(wú)論觀測(cè)情況如何,都可以通過(guò)后端混合框架進(jìn)行優(yōu)化。觀察可發(fā)現(xiàn),本文方法點(diǎn)云地圖中包含許多非角點(diǎn)的物體輪廓、邊緣信息,這是ORB-SLAM無(wú)法實(shí)現(xiàn)的。
圖 10本文方法重建效果Fig. 10Reconstruction examples of proposed method |
圖選項(xiàng) |
與此同時(shí),本文方法可以準(zhǔn)確地識(shí)別并進(jìn)行閉環(huán)改正[26],得到全局一致的位姿與地圖信息,而DSO盡管也具備優(yōu)異的局部重建性能,但由于其采用的直接法平差需利用完整影像數(shù)據(jù),在資源受限的情況下難以進(jìn)行全局質(zhì)量控制,導(dǎo)致所構(gòu)建地圖出現(xiàn)重影,如圖 11、圖 12所示,影響重建效果與準(zhǔn)確性。
圖 11UAV_Lab數(shù)據(jù)局部重建細(xì)節(jié)對(duì)比Fig. 11Local reconstruction details of UAV_Lab data |
圖選項(xiàng) |
圖 12UAV_Building數(shù)據(jù)局部重建細(xì)節(jié)對(duì)比Fig. 12Local reconstruction details of UAV_Building data |
圖選項(xiàng) |
3 結(jié)論
本文提出一種特征法視覺SLAM逆深度濾波的三維重建方法,關(guān)鍵在于地圖點(diǎn)深度不再由兩幀三角化直接獲取,而是由基于概率分布的逆深度濾波器累計(jì)更新得出。除了計(jì)算效率與位姿估計(jì)精度方面的優(yōu)勢(shì),更重要的是,該方法能夠在保證全局一致性的前提下,顯著提升重建點(diǎn)云密度,準(zhǔn)確、高效地恢復(fù)場(chǎng)景結(jié)構(gòu)細(xì)節(jié),為視覺SLAM在機(jī)器人智能感知、自動(dòng)駕駛、應(yīng)急測(cè)繪等領(lǐng)域的進(jìn)一步應(yīng)用提供了新思路。未來(lái)將針對(duì)點(diǎn)云的去噪策略與平滑約束、重建精度定量評(píng)價(jià)等問(wèn)題繼續(xù)開展研究,同時(shí)也將采用更多類型的影像數(shù)據(jù)進(jìn)行更加廣泛的測(cè)試。
-
三維
+關(guān)注
關(guān)注
1文章
516瀏覽量
29337 -
SLAM
+關(guān)注
關(guān)注
24文章
434瀏覽量
32301 -
視覺
+關(guān)注
關(guān)注
1文章
153瀏覽量
24277
原文標(biāo)題:特征法視覺SLAM逆深度濾波的三維重建
文章出處:【微信號(hào):vision263com,微信公眾號(hào):新機(jī)器視覺】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
一種基于點(diǎn)、線和消失點(diǎn)特征的單目SLAM系統(tǒng)設(shè)計(jì)

【AIBOX 應(yīng)用案例】單目深度估計(jì)

一種基于基礎(chǔ)模型對(duì)齊的自監(jiān)督三維空間理解方法

使用DLP LightCrafter4500投影結(jié)構(gòu)光進(jìn)行三維重建遇到的疑問(wèn)求解
TIDA-00254設(shè)計(jì)demo中的三維重建的深度值是平行于投影儀光軸還是基線?
三維測(cè)量在醫(yī)療領(lǐng)域的應(yīng)用
三維測(cè)量技術(shù)在工業(yè)中的應(yīng)用
商湯科技運(yùn)用AI大模型實(shí)現(xiàn)實(shí)景三維重建
CASAIM與邁普醫(yī)學(xué)達(dá)成合作,三維掃描技術(shù)助力醫(yī)療輔具實(shí)現(xiàn)高精度三維建模和偏差比對(duì)
MG-SLAM:融合結(jié)構(gòu)化線特征優(yōu)化高斯SLAM算法

建筑物邊緣感知和邊緣融合的多視圖立體三維重建方法

留形科技借助NVIDIA平臺(tái)提供高效精確的三維重建解決方案
基于大模型的仿真系統(tǒng)研究一——三維重建大模型

評(píng)論