DBoW2算法 精析

ORB-SLAMKintinuous中都使用到了一種閉環(huán)檢測算法DBoW2,下面結合論文對該算法做詳細介紹益兄。


DBow2算法主要用于重定位或者稱作閉環(huán)檢測弓柱,英文叫l(wèi)oop closure或者place recognition。DBoW2算法中使用的特征點是ORB特征痊乾,這是一種結合了FAST特征和BRIEF描述子的特征(值得注意的是ORB-SLAM中使用的是ORB結合DBoW2回環(huán)檢測喘批,Kintinuous使用的是SURF特征結合DBoW回環(huán)檢測)撩荣。作者將特征點的描述子(description)空間離散化,構建了詞樹(vocabulary tree)饶深。然后用這種樹為幾何驗證(geometric verification)階段快速尋找點的對應餐曹。
本文下面將分為三個部分對該算法進行介紹:

1.二值特征(binary feature)

ORB特征是一種結合了FAST特征和BRIEF描述的一種特征,F(xiàn)AST關鍵點是一種角點敌厘,它通過在一個半徑為3的Bresenham圓中比較一些像素的灰度來獲得台猴,然后在每一個FAST特征點的周圍都選取一個方形的patch計算BRIEF描述子。BRIEF描述子是用一個二值向量來表示的俱两,向量中的每一位都是patch中灰度值進行比較的結果饱狂,patch大小和向量的長度都是事先給定好的,可以根據實際需要選擇合適的值宪彩。

圖1.BRIEF描述的計算

上圖中的Lb表示向量的長度休讳,ai和bi表示在patch中隨機選取的兩個坐標,這兩個坐標的選取是服從正態(tài)分布的尿孔。
使用BRIEF描述子最主要的優(yōu)勢是由于它的描述子是二值的俊柔,因此可以利用異或(xor)快速計算和比較。

2.圖像數(shù)據的建立(image database)

image database由一個多級的詞包(hierarchical bag of words)(實際上是一棵詞樹vocabulary tree)以及直接索引(direct index)和逆向索引(inverse index)構成活合。下面上圖:

圖2.Vocabulary tree雏婶,Direct index和Inverse index,三者構成了這個Image database芜辕。Vocabulary words就是這個葉節(jié)點尚骄,Inverse index存儲了words在圖像中出現(xiàn)的權重值块差,Direct index存儲了圖像的特征以及在這棵vocabulary tree上一定的層上與這些特征相關聯(lián)的節(jié)點侵续。

bag-of-words使用視覺詞表(visual vocabulary)將圖像轉化為一個稀疏的數(shù)值向量倔丈,visual vocabulary可以離線生成,將訓練集圖像(training)的描述空間(descriptor space)離散成W個視覺詞匯(visual words)状蜗。
建立這個vocabulary tree可以分為三步:

  • 從訓練圖像中離線提取desciptor
  • 對提取到的descriptors進行聚類需五,聚類方法是k-means生成種子后的k-medians聚類,得到了vocabulary tree的第一層轧坎,共k個節(jié)點
  • 接下來的每一層都進行與第一步相同的操作宏邮,最終得到W個葉節(jié)點。

每一個word都會根據其在訓練集中的關聯(lián)性得到一個權重值缸血。但是那些出現(xiàn)頻率非常高的words蜜氨,顯然它們的辨識度很低,因此會相應降低它們的權重捎泻。加權方法使用的是tf-idf(term frequency - inverse document frequency)飒炎。

順便說一下這tf-idf,這是一種標準的計算權重的方法笆豁,它的計算方法為t = (word在當前文檔出現(xiàn)的次數(shù)/當前文檔的總詞數(shù))*log(整個數(shù)據集中的文檔數(shù)/數(shù)據集中出現(xiàn)該word的文檔數(shù)) 郎汪。應用在視覺領域中,將文檔換成圖像即可闯狱。

每一幅圖像都被轉換成一個詞包向量v(bag-of-words vector)煞赢,其特征點的描述子被從根節(jié)點到葉節(jié)點以最小化Hamming距離的方式傳遞下去。
兩個bag-of-words相似性可以用score來表示哄孤,score的計算方式如下圖:

圖3.bag-of-words相似性計算

伴隨著bag-of-words照筑,還會維持一個inverse index,它為每一個word存儲一個圖像列表录豺,表明它都在哪些圖像中出現(xiàn)過朦肘。這方便了我們對image database的訪問,只比較那些有相同word的圖像即可双饥。除此之外媒抠,這篇文章還使用了direct index,它為每一幅圖像的特征都存儲了與該特征相關聯(lián)的第l層的節(jié)點(l的值預先給出)咏花。這會為后面的geometric verification帶來好處趴生。

3.閉環(huán)檢測算法

A.Database的訪問

根據上文的相似度score,計算出一個歸一化相似度score昏翰。

圖4.歸一化相似度

從式中可以看出苍匆,使用當前幀與前一幀的相似度作為期望score,當兩幀之間的相似度非常小的時候棚菊,會錯誤地得到一個很高的值浸踩。為了排除這種影響,作者為其設置了閾值统求,也就是說當前后兩幀相差很大時不做回環(huán)檢測检碗。

B.群組匹配(match grouping)

為了避免短時間內的多幀圖像訪問database据块,要將一定時間間隔的圖像劃為一組(island),將當前幀圖像與這組圖像相似度的和作為群組相似度折剃,選擇相似度最高的組作為匹配另假,然后進行后續(xù)的暫時一致性驗證(temporal consistency)。
這樣的island也有助于正確的匹配怕犁,因為一旦當前幀與某一幀形成閉環(huán)边篮,那么必然與其前后幀都有很高的相似度,這樣就會形成一個很長的island奏甫,群組相似度也會有助于匹配長island戈轿。

C.暫時一致性(Temporal consistency)

如果某幀圖像匹配到了一個組,那么一定和這個組前k個組相似度也很高阵子,因為這k+1個組是相互覆蓋的凶杖。

D.幾何驗證(geometric verification)

驗證幾何一致性的關鍵在于利用RANSAC,通過在兩幀圖像上的12個點對應款筑,找到一個基本矩陣智蝠。
建立點對應就需要尋找特征點的最近鄰點,這時候就需要用到我們前面提到的direct index奈梳。要查找圖像上的一個特征點杈湾,只需要在l層上該特征點所對應節(jié)點上尋找即可。l的值需要預先設定攘须,l值設為零漆撞,那么就只能去葉節(jié)點找,找到的對應點很少于宙。如果l值設置為根節(jié)點浮驳,相當于在所有節(jié)點中尋找,沒有做任何優(yōu)化捞魁。


以上就是DBoW2算法的全部內容至会。
持續(xù)更新,歡迎提出質疑或與作者就相關問題進行討論谱俭。


參考文獻:
Bags of Binary Words for Fast Place Recognition in Image Sequences

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末奉件,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子昆著,更是在濱河造成了極大的恐慌县貌,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,884評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件凑懂,死亡現(xiàn)場離奇詭異煤痕,居然都是意外死亡,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,755評論 3 385
  • 文/潘曉璐 我一進店門摆碉,熙熙樓的掌柜王于貴愁眉苦臉地迎上來祟敛,“玉大人,你說我怎么就攤上這事兆解。” “怎么了跑揉?”我有些...
    開封第一講書人閱讀 158,369評論 0 348
  • 文/不壞的土叔 我叫張陵锅睛,是天一觀的道長。 經常有香客問我历谍,道長现拒,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,799評論 1 285
  • 正文 為了忘掉前任望侈,我火速辦了婚禮印蔬,結果婚禮上,老公的妹妹穿的比我還像新娘脱衙。我一直安慰自己侥猬,他們只是感情好,可當我...
    茶點故事閱讀 65,910評論 6 386
  • 文/花漫 我一把揭開白布捐韩。 她就那樣靜靜地躺著退唠,像睡著了一般。 火紅的嫁衣襯著肌膚如雪荤胁。 梳的紋絲不亂的頭發(fā)上瞧预,一...
    開封第一講書人閱讀 50,096評論 1 291
  • 那天,我揣著相機與錄音仅政,去河邊找鬼垢油。 笑死,一個胖子當著我的面吹牛圆丹,可吹牛的內容都是我干的滩愁。 我是一名探鬼主播,決...
    沈念sama閱讀 39,159評論 3 411
  • 文/蒼蘭香墨 我猛地睜開眼辫封,長吁一口氣:“原來是場噩夢啊……” “哼惊楼!你這毒婦竟也來了?” 一聲冷哼從身側響起秸讹,我...
    開封第一講書人閱讀 37,917評論 0 268
  • 序言:老撾萬榮一對情侶失蹤檀咙,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后璃诀,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體弧可,經...
    沈念sama閱讀 44,360評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,673評論 2 327
  • 正文 我和宋清朗相戀三年劣欢,在試婚紗的時候發(fā)現(xiàn)自己被綠了棕诵。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片裁良。...
    茶點故事閱讀 38,814評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖校套,靈堂內的尸體忽然破棺而出价脾,到底是詐尸還是另有隱情,我是刑警寧澤笛匙,帶...
    沈念sama閱讀 34,509評論 4 334
  • 正文 年R本政府宣布侨把,位于F島的核電站,受9級特大地震影響妹孙,放射性物質發(fā)生泄漏秋柄。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 40,156評論 3 317
  • 文/蒙蒙 一蠢正、第九天 我趴在偏房一處隱蔽的房頂上張望骇笔。 院中可真熱鬧,春花似錦嚣崭、人聲如沸笨触。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,882評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至咧叭,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間持寄,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,123評論 1 267
  • 我被黑心中介騙來泰國打工娱俺, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留稍味,地道東北人。 一個月前我還...
    沈念sama閱讀 46,641評論 2 362
  • 正文 我出身青樓荠卷,卻偏偏與公主長得像模庐,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子油宜,可洞房花燭夜當晚...
    茶點故事閱讀 43,728評論 2 351

推薦閱讀更多精彩內容