Improving Image-Based Localization by Active Correspondence Search 论文方法总结
Improving Image-Based Localization by Active Correspondence Search 论文摘要
T.Sattler发表于2012年ECCV的论文,继续跟随大神的脚步慢慢熟悉visual localization的相关知识及方法细节,本文中Sattler继续了他上一篇论文中研究的直接2D-3D的匹配方法,主要目的是进一步降低直接匹配导致的计算量过大的文体,本文中使用了上一篇论文中提到3D-2D匹配方法,利用该方法提出了一种更优秀的匹配优先级设置标准。
关于上一篇论文“Fast Image-Based Localization using Direct 2D-to-3D Matching”的总结可翻看链接https://blog.****.net/weixin_42326336/article/details/102517018
1.简介
本文中提出了一种优秀的从大量三维点云中提取测试图像的姿态的方法。最大的贡献是同时使用2D-3D以及3D-2D的方法进行搜索,综合两种不同方法的优势。作者将这种方法称为active search。
第一章中其他人的相关研究在此不进行总结,可翻看原文,不是很难理解,只是很多文中提到的方法需要再去翻看其他原文。
2.Image-Based Localization Problem
对于给定的三维点云,image-based localization要完成的任务是把一个测试用的2维图像与三维点进行匹配并还原二维图像在三维坐标中的位置姿态信息。本文中的三维点云是利用大量二维图像集运行SFM算法还原出的三维模型,因此每个三维点都有其SFM算法中计算出的二维特征。因此,利用测试图像中的feature与三维点的point匹配,在寻找到足够多的配对后,即可利用RANSAC算法实现位姿信息还原。
2.12D-3D与3D-2D的对比
由于测试图像中的features数量级远远小于三维点云的points,因此从3D-2D的单次搜索效率很高,但是这种方法的搜索精度较低;相对的2D-3D的精度要高很多,一旦feature与多个point相近,则利用ratio test能够轻易淘汰掉该次匹配。
2.2优先搜索策略
一旦能够利用某些方法减少搜索范围,那么搜索时间将大幅降低,本文基于Sattler上一篇文章中提出的优先搜索策略,融合了3D-2D的优势,进一步提高了该方法的效果。
3.Active Correspondence Search
所有points都已经离线分配到视觉词袋中。在实际处理中,测试图像中的全部SIFT描述子也会被分配到视觉词袋中。与上一篇论文中的排序策略相同,按照词袋中的point数量升序排列。配对准则也是使用SIFT ratio test。
3.1Active Correspondence Search 具体细节
引入词袋的单一匹配方法会导致匹配数量过少。部分文章允许单个feature匹配多个词袋。而本文中使用active correspondence search:当一个2D-3D的匹配点被确定后,在3D模型中该point的周围的点有较高概率匹配到feature。本文中选择将距离被匹配的point最近邻的N3D个point添加到优先列表中,同样使用词袋搜索的方法进行匹配,具体操作课件第四章
3.2优先级设置
Sattler在先前文章中只引入了根据词袋中的point数量进行排序的方法,本文中加入了3D-2D的反向匹配,但是需要讨论的问题是何时进行反向匹配:当我们认为3D-2D更为重要,即co-visibility更重要时,算法在2D-3D正向匹配到一次后,立刻进行反向匹配,并将临近的N3D个point都进行完成后再进行2D-3D的正向匹配,这样会导致在相邻的地方寻找到大量的匹配,导致匹配的不稳定性以及精度。如果过分重视正向匹配,只有搜索了全部feature后还匹配数量仍然少于限定阈值时才进行反向匹配,则引入这一方法的效果非常不明显。因此本文中使用了混合的形式:每次完成2D-3D的匹配后,都将3D-2D的待匹配点也按照其对应词袋中的特征数量进行排序并插入到优先级队列中去。
3.3计算复杂度
(暂时不是考虑重点)
3.4与现有模型进行比较
本文的方法效果优于单纯使用3D-2D加速匹配的算法的效果。
4.算法运行
本篇论文核心的算法处理流程从图片中看到Sattler将ratio test的阈值设置为0.6Sattler将ratio test的阈值设置为0.6 。
在词袋中的points特征表示中,本文中使用Sattler之前论文中使用integer mean per vw方法。kd-tree使用10层的结构,具体方法参见论文“Fast approximate nearest neighbors with automatic algorithm conguration”。设定匹配点对的阈值为100,达到阈值后使用6-point DLT算法。
反向进行3D-2D的算法步骤基本与正向相同,需要将测试图像中全部的feature分配到词袋中,将point按照正向处理完全相同的方法进行SIFT ratio test。本文中认为2D-3D的匹配是最精确的,因此,3D-2D匹配与2D-3D冲突时,以2D-3D为主。
反向搜索由于测试图像中的feature数量远远小于point,因此只使用2-3层词袋数,当测试图像的feature数量小于5k则使用2层,否则使用3层。
5.吸收额外的可视性信息
虽然active matching的效率优于软匹配,但是仍然需要补充一定的可视性信息来降低计算量。本文中利用了在三维重建是使用的图像来估计不同视角下不同点的可视性,利用这个信息我们能够剔除一部分point。由于这种粗略的剔除,有些实际匹配点被误删了,这个篇文章利用相机的一种基础策略来恢复误删部分。
5.1对point的剔除
本文中移除所有在重建图像中没有与被匹配的point同时出现的point。
5.2RANSAC阶段前的预滤波
在执行RANSAC算法前,本文认为对于全部的匹配点中,指向不同部分的匹配无法同时可见,因此文章中仅保留匹配密度最高的部分进行RANSAC,去除异常点。注意这个方法对3D-2D匹配的影响很小,因为很难在异常的2D-3D的匹配周围找到3D-2D的匹配。
5.3对于相机设定的利用
上述剔除可能过于aggressive,因此本文利用了k-临近的图片,其拍摄角度在60°以内时,将它们归入一个集合,在剔除时,只要对应point的图像在此集合内则认为是相同相机拍摄的。
6.实验结果
本章进行了多个实验,分别验证了active search算法的匹配效果;算法处理时间;利用相机设定后的效果提升;与其他state-of-art算法的对比。
实验结果在此进行简要总结,以后要使用时再进行详细记录,目前阶段不进行深入研读。
本文中active search算法在匹配实验中,效果与单纯的2D-3D匹配类方法实现的效果基本相同,明显优于单纯使用3D-2D的方法。实时证明,混合的方式能够较好的综合匹配成功率以及定位精度。
6.1对于相机信息的利用
本文中实验了5.3节对于相机信息的利用的方法,修改了一定的k值来确定最优的效果,结果显示,当k取10时综合效果最优。