Bags of Binary Words | 詞袋模型解析

作者:Liam

來源:微信公衆號|3D視覺工坊(系投稿)

3D視覺精品文章彙總:https://github.com/qxiaofan/awesome-3D-Vision-Papers/

Bags of Binary Words for Fast Place Recognition in Image Sequences

原來論文中很詳細的講述了閉環和重定位過程中的操作,當看對應代碼的時候,最好先看看這些過程的說明。

Bags of Binary Words | 詞袋模型解析

 

摘要

本文提出了一種利用FAST+BRIFE得到的單詞包進行視覺位置重識別的新方法。首先離散化二進制描述符空間生成一個詞彙樹,然後利用這個樹來加速匹配點的幾何驗證。本文的方法利用相同的參數在不同的數據集上做了測試都沒有假陽性的結果。包括特徵提取的整個過程在有26300張圖片的序列中僅需要22ms/幀。

介紹

對於需要長時間運行的SLAM系統,魯棒的重定位模塊十分重要。在跑實驗的時候如果沒有閉環檢測,如果系統長時間的運行後又到了先前到過的場景,這個時候傳統的識別方法就會失效,閉環檢測可以提供正確的數據關聯來獲得全局一致性的地圖。同樣的方法可以用在機器人由於突然的運動,遮擋或者運動模糊造成的軌跡丟失的重定位。在[1]中,作者證明了在小環境下map-to-image(尋找相機的最新幀與地圖上的特徵之間的對應。)的方法有着不錯的效果。但是在大場景下,image-to-image(或appearance-based尋找來自相機的最新圖像與之前看到的圖像之間的對應關係)的方法表現的更好,比如快速的appearance-base(FAB-MAP)的大規模建圖更好.基本的技術是利用機器人實時收集的圖像來建立一個數據庫,當進來新的圖像的時候可以檢索得到與之最相近的圖像,如果他們足夠的相似,就認爲他們是一個閉環。最近幾年,很多算法都利用這個方法實現[2][3][4][5][6],即基於圖像匹配,將它們作爲詞袋空間中的數值向量進行比較.詞袋模型可以進行非常有效和快速的圖像匹配,但是它們並不是閉環檢測的完美解決方案,這主要是由於perceptual aliasing(感知混淆)(我的理解是可能是相似的場景,比如同樣的走廊)造成的。爲此,我們在後面進行了檢查匹配圖像的幾何一致性的驗證步驟。閉環檢測算法的瓶頸通常是特徵提取,這在計算週期上比其他步驟要耗時十倍左右。這可能會導致SLAM算法在兩個解耦的線程中運行:一個執行主要的SLAM功能,另一個只是進行閉環檢測,就像[5]中的那樣。

本文利用普通的CPU和單目相機可以實時的檢測閉環,建立圖像間的對應點的匹配。本文的方法基於詞袋模型和幾何檢測(有幾個重要的新特性使它比目前的方法快得多)。最重要的速度改善的原因是因爲利用了版本修改後的BRIEF描述子和FAST。BRIEF描述子是一個二進制的向量,其中每個位是圍繞關鍵點的給定像素對之間的強度比較的結果。雖然簡短的描述符很難對比例和旋轉保持不變,但我們的實驗表明,它們對於平面攝像機運動的閉環是非常健壯的,這是移動機器人的常見情況,在特殊性和計算時間之間提供了一個很好的折中。本文引入了一組離散化二進制空間的單詞,並使用一個直接索引(除了通常的反向索引之外)對其進行擴充。這是第一次利用二進制單詞進行閉環檢測。反向索引用於快速檢索可能與給定圖像相似的圖像。提出了一種利用直接索引有效獲取圖像間點對應的新方法,加快了閉環驗證的幾何檢驗速度。爲了驗證是一個閉環,我們驗證了圖像匹配的時間一致性。本文的創新之處在於,它提供了一種技術,可以在查詢數據庫時防止在同一位置收集的圖像相互競爭。我們通過將匹配過程中描述相同位置的圖像分組來實現這一點。通過實驗證明本方法可以在52毫秒內運行整個閉環檢測過程,包括特徵提取,其中包含26300張圖像(平均22毫秒),這比以前的技術要好一個數量級。

相關工作

基於外觀的位置識別由於取得了優異的結果,在機器人領域引起了極大的關注,這方面的一個例子是fabmap系統,它使用一個全景相機來檢測閉環,在軌跡爲70公里和1000公里的序列中召回率分別爲48.4%和3.1%,沒有假陽性。FAB-MAP用詞袋錶示圖像,並使用一個“Chow-Liu”tree來離線學習單詞的共視概率。FAB-MAP已經成爲閉環檢測的黃金標準,但是當圖像長時間在相似的場景中運行的時候,其魯棒性會下降,這可能是使用前置相機時的情況。在Fast and incremental method for loop-closure detection using bags of visual words的工作中,兩個視覺單詞(外觀和顏色)以增量的方式在線創建。這兩個單詞一起作爲貝葉斯過濾器的輸入,貝葉斯過濾器估計兩個圖像之間的匹配概率,考慮到以前的情況下的匹配概率。與這些概率方法相比,我們依靠時間一致性檢查來考慮以前的匹配,提高了檢測的可靠性。爲了進行候選幀檢驗,我們通常利用幾何驗證。利用極線約束來檢驗最好的匹配候選幀。而且利用直接索引的方式更快的計算對應點。Robust place recognition with stereo sequences利用雙目視覺里程計來得到實時的環境地圖,利用詞袋模型的方法檢測閉環。它們的幾何檢查包括計算匹配圖像之間的空間變換。但是,他們不考慮與以前匹配的一致性,這導致他們需要把幾何檢查應用在多個幾個閉環檢測的候選對象。在大多數閉環檢測的系統中利用的是尺度不變的SIFT或者SUFT。因爲他們對尺度光照和旋轉具有不變性,而且在輕微的視角變化中表現出良好的行爲,然而,這些特徵通常需要100到700毫秒之間進行計算。還有其他類似的特徵可以減少運算時間,例如SIFT描述子或者降低維度的SIFT。Konolige利用緊湊的隨機樹特徵使工作有了質的變化。這個方法計算當前圖像塊和其他先前離線訓練過的圖像塊的相似度。通過計算描述子來連接這些圖像塊中相似的值,最後利用random orthoprojections的方法降低維度。這就可以產生一個很快的描述子來滿足實時性的要求。本文和[3]的相似之處就是也利用了高效的特徵。BRIEF描述子或者是尺度不變的BRISK和旋轉不變的FAST及BRIEF(orb)特徵都是二進制、僅需要很少時間去計算的。作爲一種優勢,它們的信息非常緊湊,因此佔用的內存更少,比較起來也更快。這允許更快地轉換到單詞空間。

二進制特徵

在圖像中提取特徵和描述子是很耗時的,本文中利用FAST特徵點和BRIEF描述子,FAST關鍵點的提取類似檢測角點,在半徑爲3的圓中比較像素點的灰度值。因爲只有很少一部分像素點需要比較(一般135)所以這些點可以很快得到。對於每一個FAST特徵點,我們檢測它周圍一個連續的塊狀的BRIEF描述子。描述子是二進制的向量,其代表圖像塊中兩個像素點灰度值的比較結果。圖像塊需要預先利用高斯核函數濾波。根據先前給定的圖像塊大小Sb,在圖像塊中利用離線的方法隨機的選擇像素點對。除了Sb,我們也要設置Lb:描述子的長度。對於一個點p,它的描述子向量B(p)根據下式決定:

Bags of Binary Words | 詞袋模型解析

 

Bags of Binary Words | 詞袋模型解析

 

BRIEF描述子速度很快,一個256位的描述子僅需要17.3μm因爲每個描述子就是一個二進制的vector,所以可以直接比較兩個向量不同的位來得到兩個向量的距離(漢明距離),即兩個向量可以直接進行異或運算。SIFT和SUFT的描述子是由浮點數組成的,經常需要計算歐式距離。

圖像數據庫

爲了檢測閉環,我們利用分層的單詞和直接及反向索引組成圖像數據庫。詞袋是一種使用視覺詞彙表將圖像轉換成稀疏的數字向量的技術,允許我們管理大量的圖像。視覺詞袋是通過離線的將描述符空間離散成W個視覺單詞生成的。通過離散化二進制描述子空間,可以創建了更緊湊的詞袋。對於有層次的詞袋,詞彙表的結構是樹狀的。爲了得到詞袋,我們從一些訓練圖像中提取豐富的特徵,首先利用k-means++ seeding來執行k-medians clustering以離散化檢測到的描述子。中值導致非二進制的描述子截斷成0。這些簇構成詞彙表樹的第一級節點。通過使用與每個節點關聯的描述符重複此操作創建後續級別,直到Lw次。最後,我們得到了一棵有W葉子節點的樹,W個葉子節點就是詞彙表中的單詞。每個單詞都根據其在訓練集中的相關性賦予權重,減少那些頻繁出現的單詞的權重,因爲他們辨別性很弱。我們在這裏定義頻率這個術語-inverse document frequency(tf-idf)。然後爲了轉換一個在t時刻得到的

Bags of Binary Words | 詞袋模型解析

 

兩個結構(詞袋和反向索引)通常是單詞包方法中用於搜索圖像的惟一結構。但是作爲一種新穎的通用方法,我們還利用直接索引存儲每個圖像的特徵。我們根據單詞在樹中的層數l對節點進行分離,從葉節點開始,層數爲l = 0,直到根節點l = Lw。對於每個圖像It,我們存儲他的直接索引。l層的節點是其中出現的單詞的祖先,以及與每個節點關聯的本地特徵ftj列表。我們利用直接索引和單詞樹的均值來在BRIEF空間中大概的找到圖像的最近鄰。直接索引只計算屬於一個word或者在第l層有共同根節點的對應點的特徵來加速之間的幾何驗證。當一個新的圖像添加到數據庫直接索引更新,當獲得了候選的匹配而且進行了幾何驗證,則可以存取直接索引。

閉環檢測算法

爲了檢測到閉環,本文用了作者以前的工作[5][6],主要包含以下這四個過程:

A.數據庫查詢

我們利用圖像數據庫來存儲和檢索和給定的圖像相似的圖像,當最新的圖像進來了

Bags of Binary Words | 詞袋模型解析

 

B.Match Grouping(匹配分組)

Bags of Binary Words | 詞袋模型解析

 

C.時間一致性

當獲得了最佳的匹配分組V_T'以後,我們檢測他和之前序列的時間一致性。在本篇論文中,作者利用[5]和[6]擴展了時間一致性。(v_t,V_T')一定要和以前連續的k個分組得分連續,然後在V_T'分組中找到相似度得分最高的,然後把他看成一個候選幀,這個候選幀最後經過幾何驗證纔可以被確定。

D.幾何一致性檢測

我們在兩個匹配的閉環候選幀用幾何檢測。這個檢驗是通過它至少12個對應點利用隨機樣本一致性(RANSAC)找到I_t和I_t'之間的一個基礎矩陣。爲了計算這些對應點,我們必須將序列圖像的局部特徵與匹配圖像的局部特徵進行比較。有幾種方法來得到這種比較:

暴力搜索:通過比較I_t和I_t'之間特徵的描述子之間的距離,根據最近鄰距離比例策略搜索對應點。每個圖像的複雜度都是n^2

第二種技術是通過在k維(k-d)樹中排列描述符向量來計算近似最近鄰[7]

我們可以利用詞袋加速特徵匹配。因此,在向數據庫添加圖像時,我們在直接索引中存儲節點和特徵的列表。爲了在I_t和I_t'獲得對應點,直接查找I_t'幀的直接索引,僅對在詞袋中l級的相同節點中的特徵進行比較。這個條件加快了特徵匹配的計算速度。參數l是預先確定的,需要在It和It'之間獲得的特徵點的數量和花費的時間之間進行權衡。當l=0時,只比較屬於同一單詞的特徵(正如我們在[12]中所表示的那樣),這樣可以達到最高的加速,但是隻能獲得很少的匹配點。這使得閉環檢測過程的召回減少,因爲一些正確的閉環由於缺乏對應點而被捨棄。另一方面,當l=Lw時,召回不受影響,但執行時間也沒有提高(最後一層就和暴力匹配是一樣的)。我們只需要基本矩陣進行驗證,但注意,在計算之後,我們可以提供與下面運行的任何SLAM算法匹配的圖像之間的數據關聯,而不需要額外的成本(有了F矩陣就可以解算RT了)。

參考文獻:

1.A comparison of loop closing techniques in monocular SLAM

2.FAB-MAP: Probabilistic localization and mapping in the space of appearance

3.Robust place recognition with stereo sequences

4.Fast and incremental method for loop-closure detection using bags of visual words

5.CI-graph SLAM for 3D reconstruction of large and complex environments using a multicamera system

6.Robust place recognition with stereo sequences

7.Fast Approximate Nearest-Neighbor Search with k-Nearest Neighbor Graph

本文僅做學術分享,如有侵權,請聯繫刪文。

3D視覺工坊-ORB-SLAM3源碼交流羣

已建立3D視覺工坊-ORB-SLAM3源碼微信交流羣!想要進ORB-SLAM3源碼交流羣的同學,可以直接加微信號:CV_LAB 。加的時候備註一下:研究方向+學校+暱稱,即可。然後就可以拉你進羣了。

強烈推薦大家關注「3D視覺工坊」今日頭條和「3D視覺工坊」微信公衆號,可以快速瞭解到最新優質的3D視覺論文。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章