張慧麗 ,彭曉東 ,謝文明 ,陳 璐
(1.中國科學院國家空間科學中心北京100190;2.中國科學院大學北京101408)
在機器人智能化領域,自主定位與導航是關鍵性的技術?,F(xiàn)有的室內(nèi)定位技術大部分都是結合視覺SLAM來實現(xiàn)的。在VSLAM算法流程中,為了解決飄移提高全局定位精度,設有回環(huán)檢測(loop closure)環(huán)節(jié)?;丨h(huán)檢測是指機器人在判斷自身進入歷史同一地點后,通過全局一致性算法進行地圖優(yōu)化,消除累積軌跡誤差和地圖誤差的過程[1]?;丨h(huán)檢測本質上是場景識別問題[2]。此外,當設備重新開機后,也需要確定自身在歷史所建地圖中的位置。這兩種情況下,都需要找到當前幀圖像與歷史數(shù)據(jù)間的對應關系來解出兩個場景描述間的相對空間關系。針對上述問題,主要有Raul Mur-Artal等學者提出的基于 BoW(Bag of Words)的ORB-SLAM算法[3-4],微軟的HoloLens及谷歌的Tango則是比較成熟的商業(yè)應用產(chǎn)品?,F(xiàn)有的這些方法一般是基于圖像局部特征,在光照條件穩(wěn)定且良好的情況下定位效果良好,但不能很好地適應動態(tài)光照的情形。由于日夜周期和天氣變化及人類改變環(huán)境的不可預測的性質,例如通過打開和關閉燈,普遍的家庭環(huán)境經(jīng)歷顯著的且通常不可預測的照明變化[5]。在動態(tài)光照環(huán)境下,由于光照變化會對圖像的整體灰度分布、邊緣信息以及彩色圖像的色度空間產(chǎn)生非常大的影響[6],進而會影響到在上述基于特征點的場景匹配與定位方法的準確性,嚴重降低定位的精度。在局部特征描述子中,Harris算子基于自相關矩陣的特征值,對尺度和照明變化敏感;SIFT,SURF等圖像局部描述子只是對圖像平均灰度強度的簡單均勻縮放[7-8]。將顏色直方圖信息合并到圖像特征描述子中的方法在性能方面產(chǎn)生了有限的提高[9]。Creusot在文獻[10]提出通過機器學習尋找具有光照不變性特征的方法,然而實驗研究表明這些方法中沒有一種本身足夠克服光照方向變化引起的圖像變化問題[11]。其次,基于特征點定位的方法提取場景的信息較少,特定環(huán)境如動態(tài)光照下定位效果不理想。
如前所述,目前在環(huán)境中光照變化下利用純視覺傳感器進行場景識別仍然具有很大的挑戰(zhàn)性。因此本文考慮將圖像數(shù)據(jù)源轉換到點云,采用三維點云的特征來代替現(xiàn)有的二維圖像特征,采用點云的對象特征代替點特征,將VSLAM中現(xiàn)有的基于原始圖像特征拓展到基于三維點云的對象特征進行數(shù)據(jù)關聯(lián)的做法具有更好的魯棒性,且有效提高最終相對定位的精度。這是由于相對于二維圖像,三維點云具有更豐富的信息。使用三維特征進行識別相對于使用光學圖像特征進行識別的優(yōu)點:相對于光學圖像,距離圖像提供了更多的幾何信息(深度);從距離圖像提取的特征一般不受尺度、旋轉和光照的影響;利用距離圖像估計物體的三維位姿比光學圖像更精確[12]。本文對傳感器獲得的圖像對進行再處理得到點云,再對點云進行基于區(qū)域特征即改進的CVFH特征的描述,使其具有對由光照變化引起的噪聲、遮擋、視點變化具有一定的不變性。
目前基于VSLAM的自主定位算法不能很好地適用于動態(tài)光照環(huán)境,特別是其中的回環(huán)檢測及重定位環(huán)節(jié),對兩個差異巨大的光照條件下的圖像進行基于特征點的識別與匹配存在諸多問題,從而導致定位的失敗或者定位精度的下降。問題的關鍵是如何在不同光照環(huán)境情況下找到共性的特征描述,也就是隨時間緩慢變化的低頻特征。針對光照變化下的圖像識別問題,由于雙目VSLAM或者光照非急劇變化的單目VSLAM來說,可以使用采用圖像對經(jīng)過處理后得到的點云進行識別和定位。與隨著光照變化產(chǎn)生劇烈相應變化的圖像特征不同,兩幀圖像產(chǎn)生的點云是場景中存在物體的三維位置信息。雖然兩種光照條件下的圖像灰度表現(xiàn)大大不同,但從圖像得到場景中物體的位置理論上則具有不變性。雖然由于圖像中的陰影,會產(chǎn)生一些噪聲點,但是對于光照較為良好的區(qū)域,仍可以得到保留了場景中低頻特征的點云,從而使得此情況下基于點云的識別與匹配具有可行性。
針對室內(nèi)場景定位的不足,我們提出對真實室內(nèi)場景匹配與定位方法的改進,考慮室內(nèi)真實情況下的動態(tài)光照場景下的應用,提出了基于視覺傳感器經(jīng)處理得到的點云進行特征提取、匹配及相對位姿解算的方法。此方法主要包括3個部分:1)對輸入的圖像序列經(jīng)過數(shù)據(jù)關聯(lián)得到的點云,在經(jīng)過簡單的去燥的預處理工作后,進行改進的CVFH特征的提取。這一步驟包括對點云的分割以得到穩(wěn)定的對象區(qū)域,以及對象區(qū)域點云的CVFH(Clustered Viewpoint Feature Histogram)特征向量的計算。2)對提取的兩個點云的CVFH特征向量進行匹配及其優(yōu)化。特征的匹配通過建立K-D樹,采用最鄰近檢索得到。之后的匹配優(yōu)化采用RANSAC(Random Sampling Consensus,隨機采樣一致性)剔除誤匹配。3)計算得到匹配上的對應區(qū)域的重心點,基于SVD(Singular Value Decomposition,奇異值分解)計算粗匹配下的轉換矩陣。之后將其作為精匹配下的ICP(Iterative Closest Point,迭代最近點)算法的初值計算得到更精確的匹配結果。
圖1 技術路線圖
CVFH特征描述子是在物體識別領域廣泛使用的一種半全局特征描述子,由Aldoma et al.在文獻[13]中提取。CVFH特征描述子是對全局特征描述子VFH的一種拓展,可以處理由各種傳感器如Kinect得到的由于噪聲、傳感器及分割誤差而存在缺失和空洞的場景的點云數(shù)據(jù)。CVFH特征描述子的基本思想:首先使用區(qū)域生長分割在穩(wěn)定平滑區(qū)域中劃分出代表一個個對象的部分,然后為每個部分計算VFH特征。因此只要至少有一個區(qū)域完全可見,就可以在場景中找到對象。CVFH特征向量中還包括構成一個對象的點云中心點的分布信息的SDC(shape distribution component)。
由于CVFH特征中原本的分割得到穩(wěn)定區(qū)域的算法只是簡單的基于區(qū)域增長的分割算法。這種方法利用區(qū)域增長算法,依據(jù)法線相似并且處于直接鄰域等規(guī)則將點云劃分為一個個的穩(wěn)定區(qū)域,但是這種分割方法不具有穩(wěn)定性。當兩個不同點云分割時選取的種子點往往不同,從而導致兩個點云分割得到的穩(wěn)定區(qū)域大不相同。為了解決這一問題,采用點云分割算法LCCP(Locally Convex Connected Patches)替代CVFH中原有的點云分割算法。改進的CVFH特征描述子的基本思想是:首先將點云聚合為一個個的面片,然后基于一定的規(guī)則將面片聚合成對象,從而使最終得到的區(qū)域分割結果更穩(wěn)定,更具魯棒性。
LCCP點云分割算法的基本思想是:先采用Supervoxel(超體素)算法將體素化后的點云聚合為面片,然后根據(jù)超體素間的凹凸關系將其聚合為更穩(wěn)定的體對象。超體素分割本質上也是一種特殊的區(qū)域生長算法。當點云完成超體素分割之后,點云被分成了一個個同質化的面狀區(qū)域[14]。為了形成人類認知中的對象體,需對面狀區(qū)域基于凹凸性,將關系為凸的相鄰小區(qū)域聚類成較大的體對象。凹凸關系的判斷依據(jù)如公式(1)。
其中,
上述向量S為兩平面法向量的叉積,Θ為兩相鄰的超體素的中心連線與公共邊之間的夾角。圖2顯示了改進的CVFH特征在分割部分能生成更具有穩(wěn)定性的區(qū)域即對象。左為超體素分割的結果圖,右為之后根據(jù)凹凸性合并后的結果圖。提取一個個對象的CVFH特征即308維的特征向量后,通過建立待匹配的兩個點云的K-D樹來完成檢索匹配。
圖2 改進的CVFH特征的分割效果
通常的匹配情形是通過對物體的完整精細描述的CAD模型在固定的坐標系下設置虛擬的視點,計算在不同視點下的改進的CVFH特征作為檢索的數(shù)據(jù)庫并建立K-D樹。當用Kinect等傳感器獲得物體的一個視點下的點云并計算此時的改進的CVFH特征后,在上述K-D樹中采用最鄰近距離檢索,從而能夠獲得當前位姿的最接近的估計。這種匹配方法對于只有兩個視角的點云的情況下的匹配需要做一些調(diào)整,即直接將源點云中一個個對象的特征在目標點云中進行檢索和匹配。由于只利用了單個對象的特征進行匹配,未考慮對象間的空間幾何拓撲關系特征,匹配結果中存在很多的誤匹配。如:一個點云中的一個對象的特征與另一個點云中的多個對象的特征匹配上了。這時需要對匹配的結果進行優(yōu)化。常用的匹配優(yōu)化算法包括霍夫變換、隨機采樣一致性及粒子濾波等方法[15]。這些方法實際上是基于統(tǒng)計的思想,即假設正確的匹配能占原始匹配結果的中多數(shù)。文中采用的是RANSAC來過濾誤匹配。RANSAC算法的流程如下:
1)選取原數(shù)據(jù)的隨機子集作為假設的內(nèi)點。
2)計算一個適用于假設的內(nèi)點的模型。
3)根據(jù)模型特定的損失函數(shù),篩選出適合估計模型的屬于共集的點。
4)使用共集的所有數(shù)據(jù)對模型進行評估并改進。
將RANSAC應用于對象的特征匹配時,由于目標模型是兩個點云間的相對關系的轉換矩陣,因此需要知道對象的位置。本文采用對象的重心點的三維坐標表示對象的位置。采用對應對象的重心點作為RANSAC過濾步驟的輸入,進行匹配優(yōu)化。當完成匹配優(yōu)化后,可通過計算兩個點云間的轉換矩陣來求兩者之間的相互關系,即可定位設備的當前位姿。通常在已知兩組點云的對應點的情況下,可采用基于SVD的方法計算粗匹配下的旋轉矩陣R和位移T。之后為了獲得更精確的定位結果,通過ICP計算精匹配下的轉換矩陣。
本研究選取了典型的室內(nèi)環(huán)境進行實驗。實驗場景的主體部分是一張桌子及放置于至上的用于作為匹配單元的一個個的規(guī)則的物體(書本、紙箱、牛奶盒及等等)。如下圖所示,實驗使用ZED雙目相機一共拍攝了此場景在6組光照條件I1,I2,…,I6下在兩個不同視角下的RGB圖像,并獲得了這些情形下的12組點云A1,A2,…,A6,及B1,B2,…,B6。為了更直觀地評價定位效果,在這兩個視角下保持ZED相機的姿態(tài)不變,僅沿著垂直于相機主光軸的方向平移了0.59 m的距離。本文算法基于PCL庫實現(xiàn)。
將以上2個視角下6組光照條件下的12張圖像作數(shù)據(jù)源,使用ORB-slam中使用采用的Dbow2庫來進行回環(huán)檢測的定位實驗。結果顯示使用Dbow2庫時完全檢測不到回環(huán)。通過圖3中ORB特征的提取與匹配也可直觀地看出不同光照情況下存在很多誤匹配的情況,從而導致回環(huán)失敗。
圖3 兩種光照下的ORB特征匹配示意圖
使用文中的方法,對6組光照和位置均發(fā)生改變的情形,可以得到穩(wěn)定的分割區(qū)域及其特征描述,最終多組點云的定位結果及與其他方法的對比如表1所示。實驗所用RGB圖像源如圖4所示,分別在全局光照(日光燈)及局部光照(手電筒)的情況下拍攝的。3種全局光照的情形通過控制室內(nèi)兩盞日光燈的開得到,3種局部光照的情形通過改變手電筒的位置和光照方向得到。圖4第一行為在兩不同全局光照及位置變化下的圖像,即得到A1,B2組點云的實驗條件。第二行左圖為全局光照下的圖像,右圖為局部光照下的圖像,即得到A2,B4組點云實驗條件。其他組所得點云對的實驗條件以此類推。
圖4 實驗所用RGB圖像對
表1 多種光照條件下定位結果
在光照變化及相機位置變化0.59 m的情況下,采用ICP方法、采用CVFH特征進行粗匹配下的轉換矩陣計算再用ICP方法做精匹配及本文的方法分別計算得到平移矩陣。表1中的數(shù)字表示根據(jù)該平移矩陣得到的相對定位值與真值0.56 m的誤差值??煽闯鲈诠庹兆兓h(huán)境下,相比直接采用ICP或者采用CVFH特征匹配加上ICP做精匹配的方法,使用本文的算法往往可以得到更為精確的定位結果。
通過實驗可以看到在某些動態(tài)光照場景下,使用傳統(tǒng)方法的回環(huán)檢測過程會失敗,而采用本文中的方法,仍能達到很好的定位效果。且在某些場景下,因此,本文的基于點云的方法在定位精度及魯棒性方面比現(xiàn)有的VSLAM中基于特征點的方法更優(yōu)。
但是,本文假設傳感器圖像中可見場景的范圍足夠大,包含大面積的支撐平面如地面、天花板、墻面這些部分,而在后續(xù)的識別匹配環(huán)節(jié)沒有有效利用這些空間結構信息,只是將其作為背景剔除。后續(xù)擬通過提取這些背景結構和對象之間的空間幾何關系作為對象特征的一部分用于匹配,從而提高特征的可分性。
文中用于獲得對象的分割方法在穩(wěn)定性方面還存在一些不足。后續(xù)擬通過引入一種評價對象的對象性(Objectness)的標準,從對稱性、緊湊型、凹凸性等方面入手[16],對形成的對象進行進一步的處理,從而使最后分割得到的對象更具有穩(wěn)定性。
本文最后用來定位即計算兩個點云間的轉換矩陣時直接使用了對象的重心點作為三維位置的表示。這種位置表示方式由于點云的缺失及噪聲會存在很大的偏差,對最后的定位精度會產(chǎn)生很大的影響。因此之后的研究擬在完成對象匹配后,通過一定的策略(如ICP)篩選出每個對象中完全匹配上的超體素,用其重心點來計算相對轉換矩陣。