徐曉蘇,游穎輝
(1. 微慣性儀表與先進(jìn)導(dǎo)航技術(shù)教育部重點(diǎn)實(shí)驗(yàn)室,南京 210096;2. 東南大學(xué)儀器科學(xué)與工程學(xué)院,南京 210096)
移動(dòng)機(jī)器人在服務(wù)、工業(yè)自動(dòng)化等領(lǐng)域具有廣泛應(yīng)用[1]。視覺(jué)同步定位與建圖(Simultaneous Localization and Mapping, SLAM)是一種基于圖像的相機(jī)運(yùn)動(dòng)估計(jì)方法,在移動(dòng)機(jī)器人的導(dǎo)航與控制中起到至關(guān)重要的作用,尤其在無(wú)外部信號(hào)作為參考時(shí)。在近二十年里,國(guó)內(nèi)外在視覺(jué)SLAM領(lǐng)域有了較多研究,包括基于穩(wěn)定特征的特征點(diǎn)法[2-4]、基于像素灰度的直接法[5,6]、同時(shí)參照灰度和特征的半直接法[7]、通過(guò)迭代最近點(diǎn)法(Iterative Closest Point, ICP)跟蹤相機(jī)的方法[8]等。特征點(diǎn)法對(duì)于光照變化較為魯棒,但存在計(jì)算描述子耗時(shí)較長(zhǎng)、無(wú)法充分利用環(huán)境信息等問(wèn)題。直接法可以充分利用環(huán)境信息且不依賴環(huán)境紋理,但無(wú)法有效應(yīng)對(duì)光照變化的環(huán)境[9]。半直接法可以避免灰度變化的影響,但仍然受制于圖像信息的準(zhǔn)確度?;谶吘墝?duì)準(zhǔn)的視覺(jué)SLAM方法類似于半直接法,提取圖像中的邊緣特征,通過(guò)邊緣對(duì)準(zhǔn)實(shí)現(xiàn)運(yùn)動(dòng)估計(jì),能夠充分利用環(huán)境信息,并對(duì)光照變化有一定穩(wěn)定性[10],可以克服目前主流方法的缺點(diǎn)。
基于邊緣對(duì)準(zhǔn)的視覺(jué)定位方法可以追溯到Eade E等人的研究[11],該方法首次實(shí)現(xiàn)了基于粒子濾波的利用邊緣特征的視覺(jué)里程計(jì)?;趦?yōu)化的方法則發(fā)端于Tarrio J J等人于2015年公開(kāi)的一種基于邊緣特征的單目視覺(jué)里程計(jì),該研究首次說(shuō)明了邊緣對(duì)準(zhǔn)是一個(gè)高效的可并行的操作[12]。Zhou Y等人于2019年提出的基于Canny檢測(cè)子的視覺(jué)里程計(jì)Canny-VO[13],該方法提出了邊緣配準(zhǔn)中常用的歐式域距離變換的兩種替代方法:近似最近鄰域和定向最近鄰域,并將邊緣的旋轉(zhuǎn)加入到優(yōu)化中。文獻(xiàn)[14]提出的實(shí)時(shí)魯棒的邊緣對(duì)準(zhǔn)SLAM(RESLAM)利用隨機(jī)蕨實(shí)現(xiàn)了回環(huán)檢測(cè)。目前的多數(shù)基于邊緣對(duì)準(zhǔn)的方法都未考慮圖像光度變化對(duì)于邊緣提取的影響,更未在設(shè)計(jì)算法時(shí)設(shè)計(jì)離線或在線光度標(biāo)定的環(huán)節(jié)。在光度標(biāo)定的相關(guān)研究中,文獻(xiàn)[6]通過(guò)對(duì)數(shù)據(jù)集的圖像曝光時(shí)間、相機(jī)的Gamma響應(yīng)函數(shù)以及詳細(xì)的鏡頭畸變因子進(jìn)行了離線光度標(biāo)定來(lái)提高視覺(jué)里程計(jì)性能,Paul Bergmann等人在2018年提出了一種對(duì)自動(dòng)曝光的視頻流進(jìn)行光度校正的方法[15],并和文獻(xiàn)[6]提出的算法進(jìn)行組合,有效提升了定位精度和建圖效果。
針對(duì)圖像光度變化導(dǎo)致不同圖像提取的邊緣特征分布差異較大的問(wèn)題。本文對(duì)文獻(xiàn)[14]所提出的基于RGB-D相機(jī)的算法進(jìn)行了優(yōu)化改進(jìn),集成了在線光度標(biāo)定模塊,提升了進(jìn)行邊緣提取時(shí)的圖像質(zhì)量,在數(shù)據(jù)集上驗(yàn)證了在算法中集成在線光度標(biāo)定對(duì)于定位精度有一定提升;在此基礎(chǔ)上,對(duì)殘差項(xiàng)的殘差權(quán)重函數(shù)進(jìn)行設(shè)計(jì),提升了系統(tǒng)多次運(yùn)行的穩(wěn)定性。
本文基于機(jī)器人軟件平臺(tái)(Robot Operating System, ROS)實(shí)現(xiàn)集成在線光度標(biāo)定的邊緣對(duì)準(zhǔn)視覺(jué)里程計(jì),其整體流程如圖1所示。該方法分為光度標(biāo)定節(jié)點(diǎn)以及包含前端跟蹤線程、局部建圖線程、全局建圖線程的里程計(jì)節(jié)點(diǎn)。通過(guò)訂閱傳感器節(jié)點(diǎn)或者數(shù)據(jù)集發(fā)布的話題獲取圖像,獲取的圖像首先被讀入光度標(biāo)定節(jié)點(diǎn)。在光度標(biāo)定節(jié)點(diǎn),對(duì)圖像進(jìn)行提取角點(diǎn)、角點(diǎn)跟蹤、估計(jì)參數(shù)等一系列操作,再通過(guò)發(fā)布話題的方式將校正后的圖像發(fā)布。里程計(jì)節(jié)點(diǎn)訂閱經(jīng)過(guò)光度標(biāo)定后的圖像消息,在跟蹤線程對(duì)圖像幀先進(jìn)行提取圖像邊緣的操作,然后通過(guò)距離變換構(gòu)建殘差方程,迭代求解殘差方程實(shí)現(xiàn)邊緣對(duì)準(zhǔn),進(jìn)而實(shí)現(xiàn)對(duì)相機(jī)運(yùn)動(dòng)的跟蹤,然后進(jìn)行關(guān)鍵幀選擇。在局部線程內(nèi)則對(duì)跟蹤線程選擇的關(guān)鍵幀進(jìn)行回環(huán)編碼的計(jì)算,構(gòu)建非線性優(yōu)化滑動(dòng)窗口,對(duì)滑動(dòng)窗口中的變量進(jìn)行局部?jī)?yōu)化,對(duì)關(guān)鍵幀的位姿進(jìn)行優(yōu)化,優(yōu)化完成后根據(jù)設(shè)置的條件執(zhí)行邊緣化策略以維持滑窗中的變量維數(shù)在一定數(shù)量;編碼后的關(guān)鍵幀被存入關(guān)鍵幀數(shù)據(jù)庫(kù),用于進(jìn)行回環(huán)檢測(cè)、回環(huán)驗(yàn)證等環(huán)節(jié),最后利用位姿圖構(gòu)建全局優(yōu)化對(duì)位姿做進(jìn)一步優(yōu)化。
圖1 算法整體流程圖Fig.1 The overall flow chart of the algorithm
光度標(biāo)定節(jié)點(diǎn)通過(guò)提取角點(diǎn)建立圖像之間的數(shù)據(jù)關(guān)系實(shí)現(xiàn)跟蹤,進(jìn)而完成對(duì)曝光時(shí)間、漸暈等參數(shù)的估計(jì),再對(duì)圖像做校正并發(fā)布圖像消息話題。
場(chǎng)景點(diǎn)被光源照亮?xí)r,將光線反射到空間中,反射的總光量稱為該三維點(diǎn)的輻射L。如果移動(dòng)觀察者接收到該點(diǎn)的輻射與觀察者的觀察角度無(wú)關(guān),則稱該場(chǎng)景點(diǎn)的輻射表現(xiàn)為蘭伯特反射。場(chǎng)景點(diǎn)的輻射被相機(jī)的感光元件接收,記感光元件上位置x接收到的輻射照度為I(x)。理想情況下,不同空間位置具有相同輻射的場(chǎng)景點(diǎn)會(huì)產(chǎn)生相同的傳感器輻射照度。然而,對(duì)于大多數(shù)相機(jī)而言,采集到的圖像像素強(qiáng)度從圖像中心向圖像邊界下降。這種現(xiàn)象被稱為漸暈效應(yīng),一般是由于光線被透鏡部分阻塞或者由于透鏡的幾何形狀引起的。則感光元件上的輻射照度I(x)可以通過(guò)I(x) =V(x)L表示,V: Ω→ [ 0,1]為漸暈因子,與圖像感光元件中的位置x?Ω相關(guān)。由于感光元件的輻射照度在曝光時(shí)間窗口內(nèi)隨時(shí)間累積,假設(shè)在時(shí)間窗口內(nèi)的傳感器感光元件的輻射照度恒定,對(duì)于曝光時(shí)間e內(nèi)累積的輻射照度為Iacc(x) =eI(x) 。f: ?→ [ 0 ,255]為相機(jī)響應(yīng)函數(shù)(Camera Response Function, CRF),從而場(chǎng)景點(diǎn)輻射L與圖像輸出的像素強(qiáng)度O之間的對(duì)應(yīng)關(guān)系可以表示為:
使用經(jīng)驗(yàn)響應(yīng)模型(Empiric model of Response,EMoR)對(duì)CRF進(jìn)行建模,并利用基函數(shù)hk(x)組合得到如下的全局響應(yīng)函數(shù):
其中ck?R,f0(x)為通過(guò)原理成分分析(Principle Component Analysis, PCA)獲得的平均響應(yīng)。本文假設(shè)漸暈的分布符合徑向漸暈?zāi)P?,即衰減因子在圖像中心是對(duì)稱的,進(jìn)一步地假設(shè)漸暈的中心和圖像的中心一致,則漸暈因子可以用一個(gè)六階多項(xiàng)式進(jìn)行擬合。
其中R(x)是圖像點(diǎn)x相對(duì)于圖像中心的歸一化半徑。
對(duì)于給定的圖像F,式(1)中的各項(xiàng)參數(shù)僅輸出的像素強(qiáng)度O已知,因此進(jìn)行光度標(biāo)定還需選擇一定數(shù)量的場(chǎng)景點(diǎn)通過(guò)重投影建立圖像幀之間的聯(lián)系。通過(guò)提取Shi-Thomais角點(diǎn),并采用具有自適應(yīng)增益的Kanade-Lucas-Tomasi(KLT)光流跟蹤算法來(lái)獲取點(diǎn)對(duì)之間的聯(lián)系。同時(shí)為了更好地校正漸暈,需要提取的角點(diǎn)均勻分布在圖像上,因此將圖像分成一系列小塊再提取角點(diǎn)。同時(shí)為了增加觀測(cè)量,在跟蹤的角點(diǎn)周圍的像素塊也被用于計(jì)算重投影殘差。
記輸入的圖像幀集合為Fp,跟蹤的場(chǎng)景點(diǎn)集合為P,對(duì)于在Fp中可視的場(chǎng)景點(diǎn)p?P,通過(guò)跟蹤點(diǎn)對(duì)可以建立如式(4)所示的殘差方程[15]。
通常需要較多的圖像來(lái)求解優(yōu)化式(4)中的所有參數(shù),曝光時(shí)間可以通過(guò)圖像相鄰幀之間的時(shí)差來(lái)估計(jì),而漸暈?zāi)P秃晚憫?yīng)模型則需要多個(gè)圖像幀來(lái)估計(jì)。因此在本文算法中,將需要估計(jì)的參數(shù)進(jìn)行分離估計(jì)。每新進(jìn)一幀圖像,先用當(dāng)前估計(jì)的漸暈和響應(yīng)函數(shù)校正圖像,再估計(jì)曝光時(shí)間。因此式(4)可改寫(xiě)為[15]:
其中,M為當(dāng)前圖像幀集合的大小,Pi記為在第i幀可視的場(chǎng)景點(diǎn),f-1是逆響應(yīng)函數(shù)。對(duì)于固定的場(chǎng)景點(diǎn)的輻射照度pL,式(5)僅曝光時(shí)間是未知量,求解時(shí)間隨變量維度線性增長(zhǎng),可以快速求解。全部參數(shù)的優(yōu)化估計(jì)通過(guò)在后端優(yōu)化過(guò)程中對(duì)式(4)求解得到。在本文中對(duì)圖像進(jìn)行光度標(biāo)定的效果如圖2所示,圖像質(zhì)量得到了明顯改善,提取的邊緣特征分布更加均勻。
圖2 光度標(biāo)定前后的圖像Fig.2 Images before and after photometric calibration
視覺(jué)里程計(jì)通過(guò)提取經(jīng)過(guò)光度標(biāo)定的圖像中的邊緣,并利用距離變換進(jìn)行邊緣對(duì)準(zhǔn),實(shí)現(xiàn)對(duì)相機(jī)運(yùn)動(dòng)的估計(jì),并在后端構(gòu)建滑動(dòng)窗口對(duì)位姿再進(jìn)行優(yōu)化。
對(duì)于在t時(shí)刻接收到的圖像It和深度圖像Zt,假設(shè)已完成了對(duì)準(zhǔn)和時(shí)間同步,也即對(duì)于圖像It上的像素u=(x,y),在Zt中的對(duì)應(yīng)深度z=Zt(u)。
定義像素點(diǎn)u在三維空間對(duì)應(yīng)的場(chǎng)景點(diǎn)為P,則從像素點(diǎn)u計(jì)算三維點(diǎn)P的逆投影函數(shù)如下:
其中,fx、fy、cx、cy為相機(jī)的內(nèi)參,通過(guò)對(duì)相機(jī)標(biāo)定獲得。對(duì)應(yīng)地,將三維點(diǎn)P投影至像素坐標(biāo)系的投影函數(shù)具有如下的形式:
式中,ξji為圖像幀F(xiàn)i到Fj的相對(duì)變換,對(duì)應(yīng)的位姿變換矩陣為T(mén)ji。
在每幀圖像中,通過(guò)對(duì)齊當(dāng)前幀F(xiàn)j與關(guān)鍵幀F(xiàn)i對(duì)應(yīng)的邊緣檢測(cè)結(jié)果來(lái)估計(jì)兩幀之間的相對(duì)運(yùn)動(dòng)ξji,在對(duì)齊過(guò)程中,將關(guān)鍵幀F(xiàn)i中的具有有效深度的所有像素點(diǎn)εi重投影至當(dāng)前幀F(xiàn)j,并與當(dāng)前幀檢測(cè)到的最近的邊緣像素對(duì)齊。在本文中通過(guò)在歐氏距離域上計(jì)算距離變換來(lái)預(yù)先計(jì)算圖像中每個(gè)像素到有效邊緣像素的距離,從而得到重投影的邊緣像素距離變換殘差:
其中,Dj為當(dāng)前幀F(xiàn)j的距離變換,ui為關(guān)鍵幀F(xiàn)i中邊緣像素的位置。聯(lián)合參考關(guān)鍵幀中的所有具有有效深度的像素點(diǎn)的距離變換殘差,構(gòu)建優(yōu)化方程:
Huber權(quán)重系數(shù)的計(jì)算公式如下:
T-分布的計(jì)算公式如下:
式中,k、vσ、 均為根據(jù)傳感器誤差特性擬合得到的系數(shù)。
為了提高算法的精度,在局部建圖線程構(gòu)建滑動(dòng)窗口對(duì)邊緣像素的深度、相機(jī)位姿和相機(jī)內(nèi)參進(jìn)行聯(lián)合優(yōu)化。記滑動(dòng)窗口中的圖像幀集合為W,將滑動(dòng)窗口中的每一幀激活的邊緣像素點(diǎn)分別投影到其他幀上,類似于式(11),得到:
式中,Ai為第i個(gè)關(guān)鍵幀中激活的殘差項(xiàng)集合,δr為誤差權(quán)重系數(shù),r是包含優(yōu)化后的相機(jī)內(nèi)參C和逆深度參數(shù)ρi的殘差項(xiàng):
其中,為利用優(yōu)化后的關(guān)鍵幀相對(duì)世界的變換矩陣ξi,ξj重投影至關(guān)鍵幀F(xiàn)j。通過(guò)Gauss-Newton優(yōu)化方法最小化式(11),從而有:
式中,W??n×n為對(duì)角權(quán)重矩陣,r為殘差序列,J為r的Jacobian矩陣,對(duì)式(14)迭代求解得到優(yōu)化后的參數(shù)。
為了減少后端非線性優(yōu)化的計(jì)算量,在前端跟蹤結(jié)束后,對(duì)于當(dāng)前幀分別計(jì)算以下4個(gè)關(guān)鍵幀指標(biāo)。
1)平均平方光流Mfov用于衡量視場(chǎng)內(nèi)邊緣像素的整體光度變化。
式中u為邊緣像素坐標(biāo),u′為重投影后的像素坐標(biāo),n為邊緣像素的數(shù)量。
2)無(wú)旋轉(zhuǎn)的平均平方光流Mtran用于衡量因平移引起的光度變化。
式中ut為僅做平移變換后的像素坐標(biāo)。
3)無(wú)位移的平均平方光流Mrota用于衡量因旋轉(zhuǎn)引起的光度變化。
式中ur為僅做旋轉(zhuǎn)變換后的像素坐標(biāo)。
4)參考關(guān)鍵幀投影到當(dāng)前幀的像素點(diǎn)數(shù)量Nin和未投影到當(dāng)前幀的像素點(diǎn)數(shù)量Nout。
當(dāng)以上指標(biāo)符合式(20)(21)所示的條件之一時(shí),將當(dāng)前幀作為新的關(guān)鍵幀。
滑動(dòng)窗口內(nèi)的關(guān)鍵幀需要維持在一定的數(shù)量,因此需要采取邊緣化部分關(guān)鍵幀的策略,關(guān)鍵幀的邊緣化策略有兩種選擇方式。
1)該關(guān)鍵幀中的邊緣像素點(diǎn)在優(yōu)化過(guò)程中激活的數(shù)量少于設(shè)置的閾值θvis,則該關(guān)鍵幀被邊緣化。
2)若不存在符合上述條件的關(guān)鍵幀,則保留最新的兩幀關(guān)鍵幀,對(duì)其余的關(guān)鍵幀計(jì)算幀間的歐氏距離得分si,邊緣化部分關(guān)鍵幀使其在空間上分布均勻。
式中,di,j為兩個(gè)關(guān)鍵幀之間的歐氏距離。
回環(huán)檢測(cè)分為發(fā)現(xiàn)回環(huán)候選幀,利用回環(huán)候選幀的信息修正位姿估計(jì),再驗(yàn)證回環(huán)檢測(cè)是否正確。本文的回環(huán)檢測(cè)是基于隨機(jī)蕨詞袋設(shè)計(jì)的,其流程如下。
2)利用回環(huán)信息修正位姿估計(jì)。當(dāng)相似度得分大于設(shè)置的閾值θHam,則將當(dāng)前幀視為回環(huán)候選幀加入到回環(huán)處理過(guò)程,以關(guān)鍵幀相對(duì)世界坐標(biāo)系的位姿作為節(jié)點(diǎn),滑動(dòng)窗口關(guān)鍵幀之間的相對(duì)位姿作為邊,構(gòu)建如下的位姿圖優(yōu)化問(wèn)題。圖3(a)展示了這一過(guò)程,其中箭頭方向表示將該幀投影到另一幀。
3)回環(huán)驗(yàn)證。將由候選回環(huán)關(guān)鍵幀及其鄰近關(guān)鍵幀構(gòu)成的回環(huán)驗(yàn)證關(guān)鍵幀集合V投影到當(dāng)前幀,計(jì)算邊緣投影重疊的數(shù)量,圖3(b)展示了這一過(guò)程。為了避免重復(fù)計(jì)算,對(duì)回環(huán)驗(yàn)證關(guān)鍵幀集合中的關(guān)鍵幀先統(tǒng)計(jì)圖像中邊緣像素的出現(xiàn)次數(shù)。對(duì)于關(guān)鍵幀iF計(jì)算如下的計(jì)數(shù)地圖:
圖3 回環(huán)檢測(cè)示意圖Fig.3 Schematic diagram of loop detection
式中ξci為關(guān)鍵幀F(xiàn)i到當(dāng)前幀F(xiàn)cur的位姿變換,N為回環(huán)驗(yàn)證關(guān)鍵幀V中關(guān)鍵幀數(shù)量,對(duì)于整個(gè)回環(huán)驗(yàn)證關(guān)鍵幀集合V的計(jì)數(shù)地圖有:
將候選回環(huán)關(guān)鍵幀中具有有效深度的邊緣像素點(diǎn)投影至計(jì)數(shù)地圖,對(duì)于集合V中每一幀,生成大小為N+1的直方圖來(lái)計(jì)算邊緣重疊數(shù)量。如果結(jié)果符合式(28),則通過(guò)驗(yàn)證。
式中,wi為權(quán)重系數(shù)?;丨h(huán)驗(yàn)證通過(guò)后更新位姿。
采用TUM RGB-D數(shù)據(jù)集驗(yàn)證本文所提出的算法。針對(duì)光度標(biāo)定、誤差權(quán)重系數(shù)、回環(huán)驗(yàn)證的改進(jìn)效果,并與ORB-SLAM3[4]進(jìn)行對(duì)比。該數(shù)據(jù)集包含39個(gè)室內(nèi)環(huán)境的圖像序列,使用Kinect相機(jī)以30 Hz的頻率錄制的,包含格式為BGR8的RGB圖像、格式為32FC的深度圖像,軌跡真值是通過(guò)具有16個(gè)高速攝像頭的動(dòng)作捕捉系統(tǒng)以100 Hz獲得的,是驗(yàn)證單目或基于RGB-D相機(jī)的視覺(jué)里程計(jì)性能常用的數(shù)據(jù)集。
實(shí)驗(yàn)平臺(tái)為具有16 GB運(yùn)行內(nèi)存,AMD Ryzen7-4800U計(jì)算處理單元的個(gè)人電腦,操作系統(tǒng)為Ubuntu20.04.2LTS,ROS版本為noetic。將本文提出的兩種改進(jìn)算法與RESLAM[14]、ORB-SLAM3[4]進(jìn)行對(duì)比,驗(yàn)證算法性能。兩種改進(jìn)算法分別是集成光度在線標(biāo)定利用Huber魯棒核函數(shù)構(gòu)造殘差項(xiàng)系數(shù)的RESLAM(下文稱RESLAM_PMH)、集成光度標(biāo)定并且利用T分布構(gòu)造殘差項(xiàng)系數(shù)的RESLAM(下文稱RESLAM_PMT)。
本文采用的評(píng)價(jià)指標(biāo)為絕對(duì)軌跡誤差(Absolute Trajectory Error,ATE)平移部分的均方根誤差(Root Mean Squared Error,RMSE)。時(shí)間點(diǎn)i的絕對(duì)軌跡誤差計(jì)算公式如下:
式中,S是估計(jì)位姿Pi到位姿真值Qi的剛體運(yùn)動(dòng)變換矩陣。本文中主要通過(guò)對(duì)比各算法的絕對(duì)軌跡誤差的大小說(shuō)明算法的精度高低。
為了分析集成光度標(biāo)定模塊后對(duì)算法性能的影響,并且為了避免隨機(jī)的數(shù)值波動(dòng)對(duì)評(píng)估結(jié)果的影響,本文以數(shù)據(jù)集中的freg1/xyz序列采用RESLAM、RESLAM_PMH、RESLAM_PMT、ORB-SLAM3算法分別進(jìn)行了20次實(shí)驗(yàn)并求其絕對(duì)軌跡誤差的平均值,其結(jié)果如圖4所示。
圖4 算法的20次運(yùn)行結(jié)果Fig.4 The resultsof 20runsof thealgorithms
由圖4可知,基于特征點(diǎn)法的ORB-SLAM3的算法性能在具有較為豐富紋理的freg1_xyz的序列上的運(yùn)行結(jié)果最佳,而RESLAM_PMH、RESLAM_PMT經(jīng)過(guò)光度標(biāo)定后相對(duì)RESLAM都有較大的提升。且RESLAM_PMT在freg1/xyz序列上相較RESLAM和RESLAM_PMH的多次運(yùn)行結(jié)果精度更高,更穩(wěn)定。更進(jìn)一步地展示實(shí)驗(yàn)組中的其中這一組軌跡及其在x、y、z各軸的對(duì)比如圖5-6所示。
圖5 展示了三種算法估計(jì)的freg1/xyz軌跡,可以看出RESLAM_PMT估計(jì)的軌跡在序列的大部分段與真實(shí)軌跡較為接近,直觀地反映了該算法的改進(jìn)對(duì)定位精度有所提升。圖6展示了各算法估計(jì)的軌跡與真實(shí)軌跡的x,y,z軸運(yùn)動(dòng)分量對(duì)比,可知RESLAM_PMT估計(jì)的運(yùn)動(dòng)軌跡的各軸分量與真實(shí)軌跡更為接近,在y軸和z軸上精度提升表現(xiàn)得更為明顯,圖中橫軸為以相對(duì)起始時(shí)刻的時(shí)間偏移量,起始時(shí)刻以科學(xué)計(jì)數(shù)的方式標(biāo)注在橫軸末尾。
圖5 freg1/xyz序列軌跡Fig.5 freg1/xyz sequence trajector y
圖6 x、y、z軸運(yùn)動(dòng)軌跡分量Fig.6 x, y,z axismotiontrajectory comp onents
對(duì)freg3/nostructure_texture_near_withloop序列進(jìn)行半稠密重建,圖7展示了三種算法的建圖效果,序列中存在回環(huán)使得RESLAM和RESLAM_PMH的建圖中紅色方框內(nèi)重建的海報(bào)圖形有較大的重疊,而RESLAM_PMT則更為清晰。
圖7 三種算法的稀疏建圖Fig.7 The sparse mapping of three algorithms
在數(shù)據(jù)集中的多個(gè)序列上運(yùn)行算法,其絕對(duì)軌跡誤差的均方根誤差如表1所示,其中的“/”表示只有部分軌跡,也即視覺(jué)定位失效時(shí)間較長(zhǎng)。
從表1中可以看出ORB-SLAM3的算法性能在具有較多紋理的序列中保持著最佳的定位精度,但在freg3/structure_notexture_far序列中存在失效的情況。而本文所設(shè)計(jì)的RESLAM_PMH和RESLAM_PMT方法,在大多數(shù)序列上都優(yōu)于原有的RESLAM方法,平均軌跡均方根誤差分別由0.073 m提高到0.053 m和0.033 m,分別提高27.3%和55.3%。
表1 各算法絕對(duì)軌跡誤差均方根誤差(單位:m)Tab.1 Root mean square error of absolute trajectory error of each algorithm(Unit: m)
本文提出了一種集成在線光度標(biāo)定的邊緣對(duì)準(zhǔn)視覺(jué)SLAM方法。首先集成在線光度標(biāo)定設(shè)計(jì)了RESLAM_PMH算法,對(duì)圖像的漸暈效應(yīng)、曝光時(shí)間進(jìn)行估計(jì),并依此校正圖像像素的強(qiáng)度,提升圖像的質(zhì)量;并對(duì)位姿估計(jì)中殘差項(xiàng)的權(quán)重系數(shù)進(jìn)行選擇,設(shè)計(jì)了RESLAM_PMT算法,提高系統(tǒng)對(duì)于較大殘差的抑制效果;綜合提升了算法的定位精度和建圖效果。
在數(shù)據(jù)集中的多個(gè)序列上進(jìn)行多組對(duì)比實(shí)驗(yàn),驗(yàn)證了集成在線光度標(biāo)定后,基于邊緣對(duì)準(zhǔn)的視覺(jué)SLAM算法定位精度和建圖效果均有所提升。同時(shí)與目前較為先進(jìn)的基于特征點(diǎn)法的開(kāi)源算法ORB-SLAM3進(jìn)行對(duì)比,反映了基于邊緣對(duì)準(zhǔn)算法在精度上略有不足,但在較為特殊的弱紋理環(huán)境下相較特征點(diǎn)法具有明顯優(yōu)勢(shì),這為后續(xù)的研究提供了較好的借鑒。