LandmarkBoost: Efficient Visual Context Classifiers for Robust Localization
IROS2018,Marcin Dymczyk, Igor Gilitschenski, Juan Nieto, Simon Lynen, Bernhard Zeis, and Roland Siegwart
摘要/简介
当前点匹配使用的方法倾向于依赖二进制描述符的最近邻搜索来执行2D-3D匹配,并通过位操作保证实时能力。然而,这些方法与地图的大小增加,视点或外观的变化以及环境中存在的视觉混叠相矛盾。
LandmarkBoost–与传统的2D-3D匹配方法相比,将搜索问题转换为分类任务。
我们使用Boost分类器进行分类,并直接获得对应关系作为分类分数。引入一种灵活的视觉上下文,能够有效地计算,并且可以捕捉整个图像平面中的关系。 原始二进制描述符用上下文信息进行增强,通过随机选择区域来构建区域信息BoW特征。评估了LandmarkBoost的检索质量和性能,证明它优于常见的描述符匹配方法。
红色的点是外点,论文说用LandmarkBoost,可以得到更多的满足几何约束(重投影误差)的点且外点明显减少。
疑问:检测到匹配点越多越好吗?-是否能说明得到的模型越好?
问题引出&主要贡献
问题引出:
- 传统特征点方法的位姿估计依赖于特征点的匹配,BRISK/FREAK描述子匹配的精度受到视角重叠/光照/描述子长度的影响,特别的如果应用于大的场景小。小的描述子区域块可能不足以描述其周围特征(建筑尺寸)
(通常描述符取关键点的周围半径为16个像素的点,由于很多角点看起来很相似,所以不足以保证可靠匹配) - 一些提升匹配的方法:
- 检查几何一致性:Broader neighborhood
- Additional Information:eg. Semantic labels
- 不用点匹配,考虑块的描述子进行匹配
- 端到端的方法学习特征
但以上都会增加计算量。
主要贡献
- 大尺度下,基于视觉,计算量不会很大:用视觉上下文信息增强二进制描述子,来对观测点构建一个全面的描述子,从而提高2D-3D的匹配效果
- 将匹配搜索问题变成分类问题,将增强的描述子送至Boosted分类器,匹配信息可以用于后续6D位姿估计
- 运行时间与传统搜索方法相当
算法流程
已有一个先验Landmark数据库(SFM model),对于新的图像在数据库中进行搜索,得到相近的地标点序列。
-
训练分类器
- 输入为待搜索的特征向量v(包含传统描述子和上下文嵌入描述(见2)),输出为从数据库中找到的一系列排好序的匹配地标点。
- 基于JointBoosting(2004)方法,基于简单的决策树进行分类,使得实时的对于上万的类别进行搜索是可能的。
- 需要对每个类别的地标点训练各自的分类器,当然可以通过GPS确定大致的搜索区间(在SFM模型上进行搜索)。
- 训练流程:
- 由多个Weak learner构成:
- 对于loss,为了能具备对千个类别进行分类(这个类别指的什么?认为场景中的特征点可以划分为不同类别?–应该是数据库中的路标点),加入对负样本的处理:
同时,为了增强匹配能力,人为对训练数据中的错误匹配进行数据增强。 - 增加背景类:意味着该特征向量与数据库中的类别匹配不上,拒绝相似但不同的匹配。
-
视觉上下文建模
用逆采样方法在特征点周围随机的构建任意长宽和面积的候选框(类似目标检测),然后对每个区域用词袋模型进行描述作为特征向量。 -
通过分类方法进行定位
- 对于每个特征点,计算其视觉上下文特征向量
- 用分类器进行分类,数据库包含检测的特征点,提取的特征向量(用视觉上下文),3D地标点的位置,找到最好的匹配类别,从而找到最近的路标点。(此处每个路标点为一个类!)(注意此处会用到所有的分类器)
- 特征点和3D路标点的配对再转至2D-3D的匹配,用PnP和RANSAC来估计位姿
主要结果
- 分类精确度:
对于给定数据库,训练了7500-路标点的分类器,Boosting方法能随迭代次数减小训练误差,每个特征向量包含16000维+384维Brief描述子?(1000个特征点附近的随机区域*16维BoW),算法选择了985个上下文特征和1,015个描述符特征。一些特征维度被多个决策树桩使用,并且可以组合以加速分类。 - 运行时间:
…
评价
与原始二进制特征相比,实现了对视觉混叠或外观变化的更高级别的鲁棒性。但是需要原有的比较高精度的3D地图,应用比较受限,没弄明白3D地图的特征如何选取,3D地图是稠密的?文章我觉得写得不太清楚。没有太多启发…用的视觉上下文区域没有目的性会造成大量的计算浪费,且模型只能针对一个场景,一旦场景变换,则需要重新训练分类器,且分类器众多导致存储空间的增加。