天天看點

ORBSLAM2學習(六):DLoopDetector理論知識學習0 前言1 工程下載下傳與編譯2 算法原理

0 前言

       DLoopDetector是DBoW2作者的另一個開源項目,github位址為https://github.com/dorian3d/DLoopDetector。它對應的學術論文也是《Bags of Binary Words for Fast Place Recognition in Image Sequences》。像之前的博文(連結)說的,該論文中包含兩部分内容:基于BRIEF描述子建立vocabulary tree,和利用vocabulary tree和一些校驗方法進行回環檢測,DLoopDetector對應的就是後半部分。

       看一下作者的項目介紹:DLoopDetector用于對移動機器人采集的圖像序列做回環檢測,它基于提取特征建立的bag-of-words和database,和局部連續性以及幾何條件的限制。DLoopDetector中會用到DBoW2庫,也需要OpenCV和boost::dynamic_bitset(用于表示BRIEF特征描述子)的支援。

1 工程下載下傳與編譯

       先下載下傳工程,之後需要下載下傳demo運作需要的測試集檔案resources.tar.gz(原位址為https://drive.google.com/uc?export=download&id=1MpZwPjXDAUxKfSTpeCjG0PAUpaeWuo7D,如果下載下傳不了可以到這裡下載下傳)後進入工程所在目錄,依次執行

        mkdir build         cd build

        cp 檔案所在目錄/resources.tar.gz .

        cmake ../         make

       編譯過程中會下載下傳DBoW2和DLib,在build目錄下會生成demo_brief可執行檔案。執行後運作畫面如下,“Trajectory”視窗中紅色線段表示程式檢測到了回環。

ORBSLAM2學習(六):DLoopDetector理論知識學習0 前言1 工程下載下傳與編譯2 算法原理

2 算法原理

       首先把參考論文捋一捋,了解作者的開發思想。着重看論文的第五部分V. LOOP DETECTION ALGORITHM。首先,利用DBoW2我們已經可以計算圖像的相似度了,相似度高的圖像将作為回環檢測的備選圖像。不過由于perceptual aliasing,需要對備選圖像做進一步的驗證,具體步驟如下。

1)Database query

   利用建立的vocabulary tree和database,得到與輸入圖像相似度評分較高的備選圖像集,使用

ORBSLAM2學習(六):DLoopDetector理論知識學習0 前言1 工程下載下傳與編譯2 算法原理

表示。其中vt代表輸入圖像,計算得到它們的相似度評分s(vt, vtj)。之後作者考慮到不同環境下相似度評分尺度不一緻的問題(有的場景變化很大,實際實體位置很接近的圖像之間相似度評分也不高;有的場景反之),對評分做了歸一化處理,公式如下:

ORBSLAM2學習(六):DLoopDetector理論知識學習0 前言1 工程下載下傳與編譯2 算法原理

       公式中分母表示輸入圖像和它的上一幀圖像間的相似度評分。作者提到一些情況下分母會比價小(譬如發生旋轉時)導緻評分偏高,是以對分母有一個大小的限制。之後對得到的歸一化評分也做了大小限制,大于限定值alpha的圖像進入之後的處理。

2)Match grouping

        一般情況下若圖像A和B出現回環的情況,則A和B附近的圖像也傾向于判定為回環,不過這樣的判定意義不大且浪費了計算時間。作者提出把這些時間上相近的圖像劃分為一個island,把輸入圖像和一個island看做一次比對。是以時間上相近的多次比對

ORBSLAM2學習(六):DLoopDetector理論知識學習0 前言1 工程下載下傳與編譯2 算法原理

就變為了一次比對,記為

ORBSLAM2學習(六):DLoopDetector理論知識學習0 前言1 工程下載下傳與編譯2 算法原理

,且比對得分計算為

ORBSLAM2學習(六):DLoopDetector理論知識學習0 前言1 工程下載下傳與編譯2 算法原理

       從得到的幾個islands中選出得分最高的那一組進入後面的操作。

3)Temporal consistency

       作者認為,如果圖像A與B出現回環,則A附近的圖像應該在B附近也會出現回環的情況。是以定義了如下的局部連續性限制:對于比對

ORBSLAM2學習(六):DLoopDetector理論知識學習0 前言1 工程下載下傳與編譯2 算法原理

,它需要存在k個時間上連續的比對

ORBSLAM2學習(六):DLoopDetector理論知識學習0 前言1 工程下載下傳與編譯2 算法原理

。滿足該條件的比對中,選取評分最高的圖像進入後面的操作。

4)Efficient geometrical consistency

       對于輸入圖像A和備選圖像B,作者通過RANSAC方法(可參考連結)計算它們之間的基本矩陣F,其中會用到前面提到的direct index加速特征點之間的比對。若能得到F,則表明滿足了幾何限制條件,回環檢測成立。

       至此DLoopDetector的運作原理分析完畢,下一篇文章将具體分析其源代碼。

繼續閱讀