天天看点

2.4倍加速!PRAM:最新开源的视觉定位!解锁以地图为中心的学习

作者:3D视觉工坊

来源:3D视觉工坊

添加小助理:dddvision,备注:方向+学校/公司+昵称,拉你入群。文末附行业细分群

视觉定位旨在估计已知环境中给定图像的旋转和位置,可以粗略地分为绝对姿态回归(APR),场景坐标回归(SCR)和分层方法(HM)。APR隐式地将地图嵌入到高级特征中,并使用多层感知器(MLP)预测6DoF姿态;它们对于大规模场景特别快速,但由于隐式3D信息表示而精度有限。SCR直接为所有像素回归3D坐标,并使用PnP和RANSAC估计姿态。尽管在室内环境中具有很高的精度,但SCR难以扩展到室外大规模场景。HM采用全局特征在数据库中搜索参考图像,然后建立查询图像和参考图像提取的关键点之间的对应关系。这些2D-2D匹配被提升为2D-3D匹配,并用于使用PnP和RANSAC作为SCR的绝对姿态估计。尽管在大规模场景中具有出色的精度和适应性,但HM对于全局和局部2D描述符的参考图像具有高存储成本,并且对于全局参考搜索和穷举2D-2D匹配,时间成本高。

2.4倍加速!PRAM:最新开源的视觉定位!解锁以地图为中心的学习

提问:我们能否找到一种高效而准确的解决方案来实现视觉大规模定位? 人类通过识别特定对象及其空间关系来快速定位自己。例如,埃菲尔铁塔告诉我们我们在巴黎;国王学院揭示了我们在英国剑桥市中心;烤箱意味着我们在厨房。当对识别结果不确定时,我们将对象的详细结构与我们记忆中的结构进行对齐以进行验证。如果将这些技术用于视觉定位任务,则可以显着提高特别是在大规模环境中的效率。

2.4倍加速!PRAM:最新开源的视觉定位!解锁以地图为中心的学习

然而,由于存在两个主要挑战。第一个挑战是如何在现实世界中定义地标。一些先前的研究通过在对象实例上定义地标来探索这一点。尽管它们在某些场景中表现出有希望的性能,但这些方法不能像人类的识别系统那样扩展到任何地方。相反,这篇文章从包含环境中所有地方的3D地图中寻找,并采用分层聚类策略直接在3D点上定义地标。这能够自动将任何地方定义为地标,而无需费力的标记,并因此解决了第一个挑战。第二个挑战是如何有效地识别大量地标。例如,对于大小为512×512的图像,预测层输出512兆字节的特征以识别512个地标,特别是在计算资源有限的边缘设备上,这会影响效率。为了解决这个问题,这篇文章建议将稀疏关键点的地标识别作为对稠密像素的替代。

下面一起来阅读一下这项工作~

标题:PRAM: Place Recognition Anywhere Model for Efficient Visual Localization

作者:Fei Xue, Ignas Budvytis, Roberto Cipolla

机构:剑桥大学

原文链接:https://arxiv.org/abs/2404.07785

代码链接:https://gitdhub.com/feixue94/pram

官方主页:https://feixue94.github.io/pram-project/

3D视觉Daily

,赞13

人类在已知环境中有效地定位自己,首先识别某些对象上定义的地标及其空间关系,然后通过将识别对象的详细结构与记忆中的对象进行对齐来验证位置。受此启发,我们提出了任何地点识别模型(PRAM),以像人类一样高效地执行视觉定位。PRAM由两个主要组件组成------识别和注册。具体而言,首先采用了自监督的以地图为中心的地标定义策略,使室内或室外场景中的地点充当唯一的地标。然后,从图像中提取的稀疏关键点被用作变换器基础的深度神经网络的输入,用于地标识别;这些关键点使PRAM能够以高效的时间和内存效率识别数百个地标。关键点以及识别出的地标标签进一步用于查询图像和3D地标地图之间的注册。与以前的分层方法不同,PRAM丢弃了全局和局部描述符,并减少了超过90%的存储空间。由于PRAM利用识别和基于地标的验证分别替代全局参考搜索和穷举匹配,因此其运行速度比先前的最新方法快2.4倍。此外,PRAM为视觉定位开辟了新的方向,包括多模态定位、以地图为中心的特征学习和分层场景坐标回归。

PRAM的优势在于:

(1)通过识别地标,PRAM确定了粗略位置,与使用全局描述符进行参考搜索相比,具有恒定的时间和内存复杂度,提高了时间和内存效率。

(2)通过预测地标标签,PRAM过滤掉可能的异常关键点,这些关键点在地图中没有相应的3D点,以避免冗余计算。请注意,如果2D关键点是内点或外点,则仅取决于它是否具有地图中相应的3D点。

(3)预测的地标允许注册模块执行快速的语义感知2D-3D注册,而不是将2D-2D匹配提升到2D-3D匹配在HM中。因为与参考图像相关联的大量冗余2D描述符被丢弃了,这进一步提高了时间效率。

(4)PRAM灵活扩展到多模态定位。识别使定位成为高级感知任务,而不是经典的低级任务;任何其他信号例如GPS、文本、语音都可以编码为附加的令牌以用于识别增强。

(5)PRAM的其他启发,例如大规模场景坐标回归、用于定位的稳健关键点选择和地图稀疏化等。

通过稀疏自定义路标识别和快速路标2D - 3D验证进行定位。

2.4倍加速!PRAM:最新开源的视觉定位!解锁以地图为中心的学习

基于3D地标的地图稀疏化。

2.4倍加速!PRAM:最新开源的视觉定位!解锁以地图为中心的学习

3D地图和地标。 作者将每个数据集看作一个整体,因此可视化的地标仅来自于示例场景,还包括示例场景中的地标数量和数据集中的地标总数。

2.4倍加速!PRAM:最新开源的视觉定位!解锁以地图为中心的学习

地标匹配。 可视化了预测的地标(左),地标匹配(中)和注册后的内点(右)。包括7Scenes (第1行)、Cambridge Landmarks (第2行)和Aachen (第3行)数据集上的结果。预测的地标标签表明哪些关键点(左,红色)是潜在的离群点(在地图中没有3D点)。此外,通过只聚焦具有相同标签的点,基于地标的匹配更加高效和准确。

2.4倍加速!PRAM:最新开源的视觉定位!解锁以地图为中心的学习

(1)提出了一种新的定位框架,称为PRAM,它允许我们在任何地方高效进行定位。

(2)全面分析了APR、SCR、HM和PRAM的准确性和效率。结果表明,PRAM在大规模场景的准确性方面优于APR和SCR,并且比HM具有更高的时间和内存效率。

(3)PRAM为高效准确的大规模定位开辟了新方向,例如多模态定位、稀疏场景坐标回归、地图稀疏化等。对室内7Scenes、12Scenes数据集和室外Cambridge Landmarks和Aachen数据集的实验表明,PRAM比先前的最先进的HM小50倍,快2.4倍。

篇文章提出了用于视觉定位的任何地方模型(PRAM)。首先使用局部特征方法SFD2来提取3D重建的稀疏关键点;然后对重建的3D点进行分层聚类,以自我监督的方式自动定义地标;最后,稀疏关键点及其空间关系被用作Token,被馈送到基于Transformer的识别模块中用于识别地标标签。在测试时,稀疏关键点及其预测的地标进一步用于在地图中的2D关键点和3D点之间进行快速语义感知配准以进行姿态估计。

地标定义。 地图中的3D点首先作为2D投影投影投影到地平面。然后,采用分层的方法对基于空间连接的2D投影进行聚类。与参考图像相比,地标地图以紧凑的方式表示大尺度的城市,具有512个地标。

2.4倍加速!PRAM:最新开源的视觉定位!解锁以地图为中心的学习

通过稀疏识别进行定位的流水线。 对于给定的查询图像,首先使用SFD2模型提取稀疏关键点。然后,将这些关键点的描述符和位置嵌入输入到视觉转换器中进行地标预测。接下来,预测标签为0的离群点被丢弃,以便进行有效的注册。左边的关键点及其标签用于选择候选地标进行配准。对于每个选定的候选地标,在查询和相应的虚拟参考帧之间进行地标匹配。最后,使用PnP和RANSAC估计绝对位姿。

2.4倍加速!PRAM:最新开源的视觉定位!解锁以地图为中心的学习

如表2所示,为了评估识别性能,分别报告了每个数据集中白天和夜晚图像的平均top@1精度(正确关键点数/所有关键点数)。PRAM通过为每个查询图像使用约400个关键点,精度超过80%。以大约4,000个关键点作为输入,在Cambridge Landmarks上获得约87.9%的精度。而对于Aachen数据集,由于白天图像的大视角变化,精度降至69.8%。光照变化和缺少夜晚图像进一步损害了性能,导致夜晚图像的精度为49.7%。

2.4倍加速!PRAM:最新开源的视觉定位!解锁以地图为中心的学习

表3显示了中位位置和方向误差以及在误差阈值为(5cm,5◦)时的成功率。PRAM(≈1cm,0.3◦)在中位误差方面与SP+SG(≈1cm,0.1◦)和SFD2+IMP(≈1cm,0.1◦)的表现相近。在7Scenes上的更好性能来自于语义匹配,这对于相似结构(例如7Scenes中的楼梯)更加稳健。在12Scenes上报告了略差的精度(97.8%),因为在无纹理区域(例如12Scenes中的office2/5a)的识别和2D-3D匹配方面SFD2特征不足。SFD2+IMP通过利用20个候选图像建立对应关系解决了这个问题,因此效果更好。

2.4倍加速!PRAM:最新开源的视觉定位!解锁以地图为中心的学习

在表4是在Cambridge Landmarks上的定位结果。

2.4倍加速!PRAM:最新开源的视觉定位!解锁以地图为中心的学习

表5是APRs、SCRs、HMs和PRAM的地图大小。

2.4倍加速!PRAM:最新开源的视觉定位!解锁以地图为中心的学习

这篇文章提出了一种适用于所有场景的高效准确的定位模型(PRAM)。具体来说,引入了一种地图中心的地标定义策略,以分层方式从下到上生成自定义地标。这种策略能够将任何地方都作为地标,打破了常用语义标签的限制。此外,PRAM通过识别地标而不是在整个数据库中搜索参考图像来有效地执行视觉定位,能够丢弃昂贵的全局和重复的二维局部描述符。此外,识别出的地标进一步用于地标匹配,而不是通过穷举匹配来减少时间成本。在室内7Scenes、12Scenes和室外CambridgeLandmarks以及Aachen数据集上的实验表明,PRAM比以前的分层方法更快速、内存效率更高,同时保持了准确性。

作为一种新的定位框架,PRAM具有地标定义等局限性,同时也开辟了新的定位方向,例如多模态识别、地图中心特征学习和分层场景坐标回归等。

对更多实验结果和文章细节感兴趣的读者,可以阅读一下论文原文~

本文仅做学术分享,如有侵权,请联系删文。

3D视觉工坊交流群

目前我们已经建立了3D视觉方向多个社群,包括2D计算机视觉、大模型、工业3D视觉、SLAM、自动驾驶、三维重建、无人机等方向,细分群包括:

2D计算机视觉:图像分类/分割、目标/检测、医学影像、GAN、OCR、2D缺陷检测、遥感测绘、超分辨率、人脸检测、行为识别、模型量化剪枝、迁移学习、人体姿态估计等

大模型:NLP、CV、ASR、生成对抗大模型、强化学习大模型、对话大模型等

工业3D视觉:相机标定、立体匹配、三维点云、结构光、机械臂抓取、缺陷检测、6D位姿估计、相位偏折术、Halcon、摄影测量、阵列相机、光度立体视觉等。

SLAM:视觉SLAM、激光SLAM、语义SLAM、滤波算法、多传感器融合、多传感器标定、动态SLAM、MOT SLAM、NeRF SLAM、机器人导航等。

自动驾驶:深度估计、Transformer、毫米波|激光雷达|视觉摄像头传感器、多传感器标定、多传感器融合、自动驾驶综合群等、3D目标检测、路径规划、轨迹预测、3D点云分割、模型部署、车道线检测、Occupancy、目标跟踪等。

三维重建:3DGS、NeRF、多视图几何、OpenMVS、MVSNet、colmap、纹理贴图等

无人机:四旋翼建模、无人机飞控等

除了这些,还有求职、硬件选型、视觉产品落地、最新论文、3D视觉最新产品、3D视觉行业新闻等交流群

添加小助理: dddvision,备注:研究方向+学校/公司+昵称(如3D点云+清华+小草莓), 拉你入群。

3D视觉工坊知识星球

3DGS、NeRF、结构光、相位偏折术、机械臂抓取、点云实战、Open3D、缺陷检测、BEV感知、Occupancy、Transformer、模型部署、3D目标检测、深度估计、多传感器标定、规划与控制、无人机仿真、三维视觉C++、三维视觉python、dToF、相机标定、ROS2、机器人控制规划、LeGo-LAOM、多模态融合SLAM、LOAM-SLAM、室内室外SLAM、VINS-Fusion、ORB-SLAM3、MVSNet三维重建、colmap、线面结构光、硬件结构光扫描仪,无人机等。

继续阅读