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

作者:李城  

推荐大家关注3DCV,一个关注3D技术,更关注3D产业的公众号。点击下方卡片,关注3DCV公众号:

VPS 、GPS 、SLAM 的区别与联系

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

a2f7b6b03624dfa898ab309e440cf839.png

提到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 如下所示:

0c43b958d54d33e222a46246c01cc990.png

     注:该图来自于商汤openxrlab

(1) 离线建图

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

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

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

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

9b2a5da0398928446bcca30f33fcfd46.png           谷歌地图采集设备

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

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

640bc58f791abc7ed22179431ef67df7.png

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

f6ed2d481f58d17430e90e2a2e139455.png d154ce5f460520874033880632c6b4db.png

(2)  在线定位

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

a4e83821ea999c83e9282bc577891056.png 22d98f7c7aa9c63c932416a27e97f5dd.png
VPS 的商业应用

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

VPS 的挑战

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

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

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

展望

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

—END—


高效学习3D视觉三部曲

第一步 加入行业交流群,保持技术的先进性

目前工坊已经建立了3D视觉方向多个社群,包括SLAM、工业3D视觉、自动驾驶方向,细分群包括:[工业方向]三维点云、结构光、机械臂、缺陷检测、三维测量、TOF、相机标定、综合群;[SLAM方向]多传感器融合、ORB-SLAM、激光SLAM、机器人导航、RTK|GPS|UWB等传感器交流群、SLAM综合讨论群;[自动驾驶方向]深度估计、Transformer、毫米波|激光雷达|视觉摄像头传感器讨论群、多传感器标定、自动驾驶综合群等。除了这些,还有求职、硬件选型、视觉产品落地等交流群。大家可以添加小助理微信: dddvisiona,备注:加群+方向+学校|公司, 小助理会拉你入群。

53f83d335b8e4c634ab373698151ec1e.jpeg
添加小助理微信:dddvisiona, 拉你入群
第二步 加入知识星球,问题及时得到解答

针对3D视觉领域的视频课程(三维重建、三维点云、结构光、手眼标定、相机标定、激光/视觉SLAM、自动驾驶等)、源码分享、知识点汇总、入门进阶学习路线、最新paper分享、疑问解答等进行深耕,更有各类大厂的算法工程人员进行技术指导。与此同时,星球将联合知名企业发布3D视觉相关算法开发岗位以及项目对接信息,打造成集技术与就业、项目对接为一体的铁杆粉丝聚集区,6000+星球成员为创造更好的AI世界共同进步,知识星球入口:「3D视觉从入门到精通」

学习3D视觉核心技术,扫描查看,3天内无条件退款 51ff0a0bb38d910e9bab084cd265e7c0.jpeg
高质量教程资料、答疑解惑、助你高效解决问题
第三步 系统学习3D视觉,对模块知识体系,深刻理解并运行

如果大家对3D视觉某一个细分方向想系统学习[从理论、代码到实战],推荐3D视觉精品课程学习网址:www.3dcver.com

工业3D视觉方向课程:

[1]机械臂抓取从入门到实战课程(理论+源码)

[2][从零搭建一套结构光3D重建系统理论+源码+实践

[3]三维点云处理:算法与实战汇总

[4]彻底搞懂基于Open3D的点云处理教程!

[5]3D视觉缺陷检测教程:理论与实战!

[6]如何学习相机模型与标定?(代码+实战)

SLAM方向课程:

[1]彻底剖析激光-视觉-IMU-GPS融合SLAM算法:理论推导、代码讲解和实战

[2](第二期)彻底搞懂基于LOAM框架的3D激光SLAM:源码剖析到算法优化

[3]彻底搞懂视觉-惯性SLAM:VINS-Fusion原理精讲与源码剖析

[4]彻底剖析室内、室外激光SLAM关键算法和实战(cartographer+LOAM+LIO-SAM)

[5]ORB-SLAM3理论讲解与代码精析(第2期)

[6]ROS2从入门到精通:理论与实战

视觉三维重建

[1]彻底搞透视觉三维重建:原理剖析、代码讲解、及优化改进)

自动驾驶方向课程:

[1]单目深度估计方法:算法梳理与代码实现

[2]面向自动驾驶领域的3D点云目标检测全栈学习路线!(单模态+多模态/数据+代码)

[3]如何将深度学习模型部署到实际工程中?(分类+检测+分割)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值