VPS 和GPS 、SLAM 之间的爱恨情仇

注:该文章首发3D视觉工坊,链接如下3D视觉工坊

VPS 、GPS 、SLAM 的区别与联系

首先简单的阐述一下三者的定义:
VPS全称为Visual Positioning System,即视觉定位系统。手机端(移动时代)的VPS首次出现时间节点为2019年,这一年Google 发布了其产品“Google Maps AR(测试版)”,该产品使用 VPS(视觉定位服务)技术通过相机图像在户外可以实现任意视角的定位与定向,如下图所示:

VPS 和GPS 、SLAM 之间的爱恨情仇_第1张图片

提到GPS(global positioning system)则是大家耳熟众详的全局定位系统,GPS是一种用于确定地理位置和导航的技术,它由一组卫星、地面控制站和接收设备组成。GPS最初由美国国防部开发,于1978年正式投入使用。该技术的目的是提供一种全球性的导航系统,为军事和民用用户提供高精度的定位服务。

关于SLAM(Simultaneous Localization and Mapping),即实时定位与构图技术。SLAM技术出现的时间节点很早,其历史可以追溯到20世纪80年代。早期的SLAM方法主要基于滤波器,后来随着技术不断发展和改进,在算法框架方面,出现了基于因子图的优化方法,如图优化(Graph Optimization)和基于最大似然估计的非线性优化等。而国内SLAM技术大火 的时间节点大概为2016年左右,自动驾驶行业的兴起把SLAM推向了一个新的高度。

而三者的联系与区别如下:

(1)三个技术 都可以实现定位的功能

(2) VPS 和SLAM 是提供6DOF 信息,而GPS 只能提供3DOF信息

(3) VPS 相对于SLAM 和GPS而言是离散数值,VPS因为计算的复杂度无法实现实时的输出

对于SLAM和VPS,在我看来这两种技术往往是相互纠缠、相互成就的关系。首先SLAM依然是一种相对定位技术,如果长时间的跟踪,则难免会出现drift问题。而VPS 这种offline+online 形式一方面可以提供准确的地理位置和姿态信息,另一方面可以当作“锚点”与SLAM系统耦合起来(离散的轨迹+连续的轨迹)得到更鲁棒的任意视角的位姿信息。

除此之外,尽管 SLAM 算法到目前为止已经是非常流行的技术,特别是与惯性单元的融合,但其不能获得手机的地理定位,地理位置是指设备相对于地面参考标记(例如纬度、经度、高度、四元数……)的位置和方向。换句话说,SLAM技术虽然回答了“where am I?”的问题,但是其不能回答我是在“哪个地方的哪”,听起来是有点绕口,举个简单的例子:SLAM技术告诉我当前位置处于一个车库下面,但是并不能提供是北京的车库还是上海的车库,而VPS 解决了这一个问题。

VPS 如何工作

VPS 作为AR 领域或者空间计算中最为核心的技术,其工作原理分为两个部分-offline + online ,即是离线建图和在线定位,VPS 与SLAM结合的技术-AR pipeline 如下所示:

VPS 和GPS 、SLAM 之间的爱恨情仇_第2张图片
(1) 离线建图

计算机视觉中三维重建问题的两种主要方法是SfM(运动结构)和SLAM。这两种方法在算法上相似,但它们的应用领域通常有所不同。SLAM最初是为了实时操作并使用摄像机的视频流而设计的。相反,SfM类型的算法使用在不同距离和视角下获取的图像,然后进行后处理进行重建。所以在建图层面不同参与者不一定需要相同的流程来构建他们的地图,他们需要根据自己的传感器类型、拍摄方式等来选择不同的算法方案。

例如,Google在其服务器上的Google Street View产品中已经有了来自数据库的360度照片,他们的设备如下图。这些照片具有两个特点:

(i)它们是由放置在汽车车顶上的摄像头获取的

(ii)它们使用GNSS进行了地理定位。这就是为什么Google可能使用了SfM类型的算法来构建其点云的原因。使用SLAM方法会得到糟糕的结果,因为这些图像在距离和角度上存在明显差异。

VPS 和GPS 、SLAM 之间的爱恨情仇_第3张图片
除此之外,还有被自动驾驶公司Lyft收购的 Blue Vision Labs ,他们的地图也是通过SfM技术实现,他们是使用开源的三维重建框架-openMVG得到大场景地图(当然你也可以选择使用COLMAP去构建离地图),关于开源的SfM框架可以参考之前写过的简文:

https://www.zhihu.com/question/29885222/answer/1987558319

VPS 和GPS 、SLAM 之间的爱恨情仇_第4张图片

相反的是,在游戏开发公司Niantic,尽管与Google有密切的联系,但是玩家直接使用智能手机进行获取视频图像,所以在这种情况下,用于重建点云的算法更倾向于SLAM类型的算法。

VPS 和GPS 、SLAM 之间的爱恨情仇_第5张图片

VPS 和GPS 、SLAM 之间的爱恨情仇_第6张图片

(2) 在线定位

首先,用户使用智能手机摄像头浏览周围的环境,从视频中提取出一张(或多张)图像,然后将图像发送到云端,与离线构建的地图中的图像进行检索、特征提取、特征匹配后得到当前图像与3D地图中三维点的关联关系,最后通过PnP算法恢复当前的位置与姿态信息,整个pipeline 如下:

VPS 和GPS 、SLAM 之间的爱恨情仇_第7张图片

VPS 和GPS 、SLAM 之间的爱恨情仇_第8张图片

VPS 的商业应用

VPS/AR 有诸多商业应用,如营销和广告、零售和电子商务、实时导航和位置服务、培训和教育、工业和制造、游戏和娱乐等等,这里我们选择最基础也是最实用的应用-导航来简单阐述,提到导航我们都知道高德地图、百度地图等都具备很智能的GPS导航功能。但是当我们使用这些APP时,有多少次问自己:“我是否朝着正确的方向前进?”,此外对于不少人而言,其实他们根本看不懂地图,更不要说去辨别二维地图上光标箭头的朝向信息是否正确,而使用视觉定位系统(VPS),可以在地图上叠加箭头,使导航变得轻而易举。
VPS 和GPS 、SLAM 之间的爱恨情仇_第9张图片

VPS 的挑战

VPS 技术目前位置仍然存在很多问题与挑战,从两个方面进行阐述:

(1) 建图层面: 地图的更新、 地图的存储等

(2) 定位层面:重复结构、低纹理如下图所示

VPS 和GPS 、SLAM 之间的爱恨情仇_第10张图片

展望

空间即入口,入口即计算。谈到AR,我们往往会想起slam技术,而会忽略里面最重要的VPS技术,我坚信在未来VPS将会成为通用的定位系统,借用最近WWDC 2023 Apple Vision Pro 发布会上的一句话“The era of spatial computing is here”。

你可能感兴趣的:(colmap,图像处理,计算机视觉,AR,SLAM,元宇宙,colmap,算法)