DBoW2算法 精析

ORB-SLAMKintinuous中都使用到了一种闭环检测算法DBoW2,下面结合论文对该算法做详细介绍。


DBow2算法主要用于重定位或者称作闭环检测,英文叫loop closure或者place recognition。DBoW2算法中使用的特征点是ORB特征,这是一种结合了FAST特征和BRIEF描述子的特征(值得注意的是ORB-SLAM中使用的是ORB结合DBoW2回环检测,Kintinuous使用的是SURF特征结合DBoW回环检测)。作者将特征点的描述子(description)空间离散化,构建了词树(vocabulary tree)。然后用这种树为几何验证(geometric verification)阶段快速寻找点的对应。
本文下面将分为三个部分对该算法进行介绍:

1.二值特征(binary feature)

ORB特征是一种结合了FAST特征和BRIEF描述的一种特征,FAST关键点是一种角点,它通过在一个半径为3的Bresenham圆中比较一些像素的灰度来获得,然后在每一个FAST特征点的周围都选取一个方形的patch计算BRIEF描述子。BRIEF描述子是用一个二值向量来表示的,向量中的每一位都是patch中灰度值进行比较的结果,patch大小和向量的长度都是事先给定好的,可以根据实际需要选择合适的值。

图1.BRIEF描述的计算

上图中的Lb表示向量的长度,ai和bi表示在patch中随机选取的两个坐标,这两个坐标的选取是服从正态分布的。
使用BRIEF描述子最主要的优势是由于它的描述子是二值的,因此可以利用异或(xor)快速计算和比较。

2.图像数据的建立(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就是这个叶节点,Inverse index存储了words在图像中出现的权重值,Direct index存储了图像的特征以及在这棵vocabulary tree上一定的层上与这些特征相关联的节点。

bag-of-words使用视觉词表(visual vocabulary)将图像转化为一个稀疏的数值向量,visual vocabulary可以离线生成,将训练集图像(training)的描述空间(descriptor space)离散成W个视觉词汇(visual words)。
建立这个vocabulary tree可以分为三步:

  • 从训练图像中离线提取desciptor
  • 对提取到的descriptors进行聚类,聚类方法是k-means生成种子后的k-medians聚类,得到了vocabulary tree的第一层,共k个节点
  • 接下来的每一层都进行与第一步相同的操作,最终得到W个叶节点。

每一个word都会根据其在训练集中的关联性得到一个权重值。但是那些出现频率非常高的words,显然它们的辨识度很低,因此会相应降低它们的权重。加权方法使用的是tf-idf(term frequency - inverse document frequency)。

顺便说一下这tf-idf,这是一种标准的计算权重的方法,它的计算方法为t = (word在当前文档出现的次数/当前文档的总词数)*log(整个数据集中的文档数/数据集中出现该word的文档数) 。应用在视觉领域中,将文档换成图像即可。

每一幅图像都被转换成一个词包向量v(bag-of-words vector),其特征点的描述子被从根节点到叶节点以最小化Hamming距离的方式传递下去。
两个bag-of-words相似性可以用score来表示,score的计算方式如下图:

图3.bag-of-words相似性计算

伴随着bag-of-words,还会维持一个inverse index,它为每一个word存储一个图像列表,表明它都在哪些图像中出现过。这方便了我们对image database的访问,只比较那些有相同word的图像即可。除此之外,这篇文章还使用了direct index,它为每一幅图像的特征都存储了与该特征相关联的第l层的节点(l的值预先给出)。这会为后面的geometric verification带来好处。

3.闭环检测算法

A.Database的访问

根据上文的相似度score,计算出一个归一化相似度score。

图4.归一化相似度

从式中可以看出,使用当前帧与前一帧的相似度作为期望score,当两帧之间的相似度非常小的时候,会错误地得到一个很高的值。为了排除这种影响,作者为其设置了阈值,也就是说当前后两帧相差很大时不做回环检测。

B.群组匹配(match grouping)

为了避免短时间内的多帧图像访问database,要将一定时间间隔的图像划为一组(island),将当前帧图像与这组图像相似度的和作为群组相似度,选择相似度最高的组作为匹配,然后进行后续的暂时一致性验证(temporal consistency)。
这样的island也有助于正确的匹配,因为一旦当前帧与某一帧形成闭环,那么必然与其前后帧都有很高的相似度,这样就会形成一个很长的island,群组相似度也会有助于匹配长island。

C.暂时一致性(Temporal consistency)

如果某帧图像匹配到了一个组,那么一定和这个组前k个组相似度也很高,因为这k+1个组是相互覆盖的。

D.几何验证(geometric verification)

验证几何一致性的关键在于利用RANSAC,通过在两帧图像上的12个点对应,找到一个基本矩阵。
建立点对应就需要寻找特征点的最近邻点,这时候就需要用到我们前面提到的direct index。要查找图像上的一个特征点,只需要在l层上该特征点所对应节点上寻找即可。l的值需要预先设定,l值设为零,那么就只能去叶节点找,找到的对应点很少。如果l值设置为根节点,相当于在所有节点中寻找,没有做任何优化。


以上就是DBoW2算法的全部内容。
持续更新,欢迎提出质疑或与作者就相关问题进行讨论。


参考文献:
Bags of Binary Words for Fast Place Recognition in Image Sequences

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,569评论 4 363
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,499评论 1 294
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 109,271评论 0 244
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,087评论 0 209
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,474评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,670评论 1 222
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,911评论 2 313
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,636评论 0 202
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,397评论 1 246
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,607评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,093评论 1 261
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,418评论 2 254
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,074评论 3 237
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,092评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,865评论 0 196
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,726评论 2 276
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,627评论 2 270

推荐阅读更多精彩内容