近年来在谷歌、Niantic等推动下,视觉定位对于AR应用的重要性越来越明显,尤其是在室内导航场景,定位精度可超越传统GPS方案。为了进一步提升视觉定位、深度视觉地图构建的准确性,NianticLabs在CVPR2023期间公布了ACE方案(AcceleratedCoordinateEncoding),中文直译是加速的坐标编码,宣称可实现更高效的视觉定位效果。
实际上,视觉重定位技术已经存在几十年,传统的方案通过识别图像中的关键点(边角轮廓)来构建地图、生成基于稀疏点云的3D模型。在重定位阶段,传统方案根据3D点云来读取地图中的关键点,并根据相机的位置来对齐3D地图与环境图像。而现阶段,机器学习、神经网络在计算机视觉领域已经得到广泛应用,神经网络常用于寻找更好的关键点,改进图像与地图的匹配结果。
优于传统DSAC*方案
此前比较常用的视觉定位方案基于DSAC*(可微样本共识),好处是准确性高,缺点是训练网络模型需要数小时到数天。DSAC*一次只能处理一张映射图像,而且需要大量冗余计算,因此大约需要15小时才能测绘一个场景。
这对于大多数AR应用程序来说都是不切实际的,而且扩展成本非常高。相比之下,ACE方案只需要5分钟就能实现精准的视觉定位,可将网络训练速度提高300倍,同时保证准确性。
简单来讲,Niantic训练神经网络学习世界的外观,然后结合摄像头实现高精度、低成本重定位。据悉,ACErelocalizer目前已经在LightshipVPS系统中使用了一年多时间,已经在全球有20万个支持VPS重定位的区域,可很好的结合传统定位技术。
主动学习地图
与传统方案不同,ACE可以更好的理解物理场景,完全使用3D地图来取代神经网络。
逼真可信的AR依赖于高精度的定位,确定用户设备的位置和视角,并将虚拟内容固定在适当的位置,与物理场景融合。即使用户在几个月后重新访问该内容,也能在同一位置找到它。
GPS和IMU传感器在理想情况下精度可达几米,但对AR来讲不够精准,误差还需要降至厘米级。ACE在几分钟内即可完成地图创建,重定位过程只需几毫秒,准确性也相当高。该方案的重新定位主要分为两个阶段:
1)根据具有已知姿势的图像集合构建环境的3D地图,即映射阶段;
2)将新的查询/访问图像与3D地图匹配,来确定准确的位置和姿态,即重定位阶段。
ACE完全用3D地图代替神经网络,这个3D地图与所有映射图像一致,不需要重建点云。当给出一个新的图像查询任务,神经网络可以准确地告诉我们每个像素在场景空间中的对应点,并通过对齐对应关系来推断相机姿态。
ACE使用的神经网络足够轻量化,仅占用4MB内存就能代表整个地图,在单GPU上运行的速度高达40fps,在常见的智能手机上速度可达20fps。
另外,只需要5分钟就能从包含姿态数据的RGB图像中生成3D场景并创建神经地图,还可以通过一帧RGB图像来估计相机姿态、重新定位。
为什么ACE速度快?
DSAC*基于场景坐标回归框架,是十年前提出的技术。另外,它需要两个阶段的训练,一次优化一张映射图像的场景重投影误差:一张图像提供了大量用于学习的像素,但具有高度的重投影误差,损失和梯度也是如此。
相比之下,ACE只需要训练减少像素级插帧误差,能同时优化所有映射图像的地图,无需处理图像损失,因此训练效率更高。
最终的优化非常稳定,Niantic指出:我们训练ACE的速度可以比5分钟更快,以获得仍然可用的结果。训练时间为甚至可缩短至10秒(不包括20秒的数据准备)。
值得注意的是,ACE可以非常适合较大规模的户外场景,不过内存占用和较短的映射时间一定程度上限制其功能。因此,Niantic将较大的场景分成较小的块,并为每个块训练一个ACE模型。在重定位过程中,每个ACE模型独立估计一个姿势,并选择具有最高内点计数的一个。如果能同时使用多个GPU,训练ACE模型可以更快速。参考: