賈雨萌,劉甜甜,李振華
(北京信息科技大學 信息與通信工程學院,北京 100085)
如今,智能機器人的應(yīng)用越來越普遍,機器人的使用環(huán)境、使用場合也變得更加豐富。機器人所處的環(huán)境往往難以預(yù)測,智能機器人的定位和導航大都依靠SLAM算法實現(xiàn)。SLAM(Simultaneous Localization and Mapping, SLAM),即同步定位與地圖構(gòu)建。SLAM算法的出現(xiàn),基本解決了路徑規(guī)劃、空間感知及檢測和躲避障礙物等問題。SLAM技術(shù)的內(nèi)容和實現(xiàn)趨于多樣化、多元化。本文分析了具有代表性的RGB-D SLAM技術(shù),并對其提出了一些改進。
根據(jù)數(shù)據(jù)源的不同,SLAM技術(shù)主要分為基于激光的SLAM與基于視覺的SLAM。隨著圖像處理技術(shù)的深入研究,以攝像機為傳感器的SLAM系統(tǒng)得到了快速發(fā)展。視覺SLAM通過處理機器人(相機)拍攝的照片構(gòu)建環(huán)境地圖,其優(yōu)勢在于成本低、場景表達能力強,被認為是未來SLAM的主要發(fā)展方向。
視覺SLAM的功能實現(xiàn)主要包括傳感器(攝像機)數(shù)據(jù)的搜集(Camera and IMU),前端視覺(慣性)測程,后端優(yōu)化,閉環(huán)及映射等,還包括重新定位等。其中,RGB-D SLAM技術(shù)以RGB-D相機作為傳感器,可以直接獲取圖像中物體的深度。
RGB-D即RGB和Depth Map。RGB即紅、綠、藍顏色標準,紅、綠、藍三個通道的變化和它們之間的疊加可以得到人類視力所能感知的所有顏色。這個標準是目前應(yīng)用范圍最廣的顏色系統(tǒng)之一。
Depth Map(深度圖)是包含與視點場景對象表面距離有關(guān)信息的圖像或圖像通道。其中,Depth Map 類似灰度圖像,它的每個像素值是傳感器距離物體的實際距離。通常RGB圖像和Depth圖像存在配準關(guān)系,因而像素點之間具有一對一對應(yīng)關(guān)系。
在3D計算機圖形和計算機視覺中,深度圖像是一種圖像或圖像通道,其中包含與場景對象表面到視點距離有關(guān)的信息。
在自主移動小車實例中,基于RGB-D SLAM 的方法可以實現(xiàn)環(huán)境全局地圖的建立與小車實時定位功能。
RGB-D SLAM算法的具體實現(xiàn)如圖1所示。流程圖分為前端和后端兩部分。前端采集圖像信號,處理相機捕獲的圖像信息并對圖像進行特征提取與匹配,提取關(guān)鍵幀構(gòu)建地圖的同時估計位姿并對位姿進行優(yōu)化。此外,還可以計算相鄰圖像間的關(guān)系對運動進行估計,并通過特征點法計算小車的運動。后端主要處理前端產(chǎn)生噪聲干擾的數(shù)據(jù),盡可能減少誤差,使得到的地圖較為精確。前端出現(xiàn)的漂移現(xiàn)象可通過算法進行后端優(yōu)化和回環(huán)檢測來消除:后端優(yōu)化主要處理采集圖像信息時產(chǎn)生的噪聲;回環(huán)檢測通過比較和處理同一位置的地圖及位姿來消除漂移量。從前端輸入數(shù)據(jù),到后端處理數(shù)據(jù),通過回環(huán)檢測減少誤差,實現(xiàn)地圖的構(gòu)建。
圖1 RGB-D SLAM算法流程
1.2.1 相機建模及特征提取
相機建模依據(jù)小孔成像原理。通過投影得到相機的內(nèi)參矩陣與外參矩陣在世界坐標系、相機坐標系及圖像坐標系之間的轉(zhuǎn)換關(guān)系:
式中:、、為特征點在世界坐標系中的坐標;、為該點在圖像坐標系中的投影坐標;()為映射函數(shù)。
RGB-D SLAM算法的實現(xiàn)過程中,對前端進行特征提取時使用ORB(Oriented FAST and Rotated BRIEF, ORB)特征點進行計算。ORB 特征點算子結(jié)合加速分割測試特征(Featuresfrom Accelerated Segment Test, FAST)角點檢測算法與二進制魯棒獨立基本特征(Binary Robust Independent Elementary Features, BRIEF)描述子算法。其中,ORB 算子使圖像具有尺度不變性;FAST角點檢測算法對每個像素點周圍各點與該點灰度值之差的絕對值與閾值ε進行比較,并統(tǒng)計前者大于后者的數(shù)量,當>12時,則標記為角點:
式中:()、()分別為第點、臨近點的灰度值;BRIEF特征點描述子通過比較測試點對的灰度值來描述圖像。
1.2.2 后端工作及地圖構(gòu)建
后端主要對前后幀的圖像,選擇漢明距離作為特征之間的相似性度量,提高特征匹配的準確率。經(jīng)前后幀的特征點匹配后,采用迭代最近點(Iterative Closest Point, ICP)算法進行相機的位姿估計。
關(guān)鍵幀的提取可以通過奇異值分解(Singular Value Decomposition, SVD)算法實現(xiàn)。首先得到2幀圖像對應(yīng)的位姿變化,然后根據(jù)位姿前后的變化和2幀圖像間的時間差來選取關(guān)鍵幀,減少不必要的冗余數(shù)據(jù)。
將關(guān)鍵幀對應(yīng)的三維點云地圖加入局部地圖中,并對局部地圖的相機位姿與路標地圖點進行優(yōu)化。通過對關(guān)鍵幀的檢測,識別之前訪問的場景,增加圖模型的回環(huán)約束,消除累積誤差,得到全局一致的地圖。
在上述地圖構(gòu)建過程中,主要通過對關(guān)鍵幀的檢測來進行。但這需要每一幀圖像與前面的整個圖像做一遍特征匹配,計算量極大。根據(jù)時間差選取關(guān)鍵幀,對關(guān)鍵幀進行匹配的做法雖然能夠減少一部分運算量,但回環(huán)檢測效果不佳。因此,提出使用特征點做回環(huán)檢測,即詞袋模型的方法。
圖2所示為經(jīng)典回環(huán)檢測,圖3所示為詞袋模型。
圖2 經(jīng)典回環(huán)檢測
圖3 詞袋模型
詞袋模型被廣泛應(yīng)用在文件分類領(lǐng)域,通過統(tǒng)計單詞出現(xiàn)的頻率,比較它們的權(quán)重后進行分類。詞袋模型應(yīng)用在計算機視覺領(lǐng)域,就是把特征看成是單詞,通過比較兩張圖片中單詞的一致性,來判斷兩張圖片是否屬于同一場景。為了能夠把特征歸類為單詞,需要對機器人進行海量訓練才能達到效果。
在ORB特征提取的基礎(chǔ)上,使用詞袋模型方法進行回環(huán)檢測。首先,找到根節(jié)點并設(shè)置權(quán)重,具體算法流程如圖4所示。
圖4 詞袋模型節(jié)點算法流程
確定個中心點和1個閾值,之后將提取得到的特征與各中心點的距離最小值作為特征的類,然后計算每個類新的中心點,重復(fù)此步驟直至每個特征與它的類中心點的距離小于閾值。結(jié)束上述步驟后設(shè)置節(jié)點權(quán)重,并計算。
根據(jù)上述步驟生成一個詞典,并用叉樹表示該詞典,如圖5所示。其中,第一層是根節(jié)點,由上述方法得到;每一層的個節(jié)點也聚類成類,得到下一層;最后一層為葉子節(jié)點,即words。
圖5 K叉樹
使用Term Frequency-Inverse Document Frequency(TFIDF)計算節(jié)點權(quán)重,即
式中:η為某葉子節(jié)點w的權(quán)重;n為w中的特征數(shù)量;為所有特征數(shù)量。
在圖像中建立坐標軸,權(quán)重最大的2個節(jié)點為a(x,y)和b(x,y),計算它們之間的距離:
節(jié)點權(quán)重與節(jié)點距離組合,形成詞袋模型:
詞袋模型構(gòu)建完成后,通過對兩幀圖像的詞袋模型中的節(jié)點計算相似度,減少算法累積的誤差。
需要指出的是,只有當詞典的容量足夠大時,詞庫提取的準確率才會高。在實際操作中,如果詞典容量不夠大,那么相似圖像與無關(guān)圖像的相似度對比就不明顯,回環(huán)檢測的效果不佳。
本文介紹了一種使用詞袋模型改進的RGB-D SLAM技術(shù)。在保持RGB-D SLAM算法優(yōu)點的同時,對回環(huán)檢測的過程進行了優(yōu)化,加速了特征匹配,有效減少了運算量,提高了回環(huán)檢測的效率。
SLAM技術(shù)持續(xù)更新,計算機視覺在智能機器人領(lǐng)域的應(yīng)用也日益廣泛,越來越多的機器人進入人們的生活,為生活帶來便捷。