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

news2025/1/16 21:18:41

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

VPS 、GPS 、SLAM 的区别与联系

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

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

 注:该图来自于商汤openxrlab
(1) 离线建图

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

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

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

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

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

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

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

(2) 在线定位

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

VPS 的商业应用

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

VPS 的挑战

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

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

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

展望

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/626485.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux 负载均衡集群 LVS_NAT模式 LVS_DR模式

集群 由多台主机组成,只做一件事,对外表现为一个整体。 只干一件事 :集群 干不同的事:分布式 企业集群分类 负载均衡群集(load balance cluster) 提高系统响应效率,处理更多的访问请…

Qt6 C++基础入门3 对话框与MainWindow

目录 对话框MainWindow菜单工具栏 对话框 目前的对话框主要有以下几大类 文件对话框( QFile Dialog)消息对话框( QMessageBox)输入对话框( QInputDialog)颜色对话框( QColorDialog)字体对话框( QFontDialog) 这是七大对话框及其基本用法的实例参考,所有代码都写在…

《星岛日报》专访:欧科云链AML,助力数字资产合规及风险防控

6月1日,香港《适用于虚拟资产交易平台营运者的指引》及《打击洗钱指引》正式施行,香港虚拟资产发牌制度正式生效。作为深耕香港市场多年的Web3科技企业,欧科云链OKLink也正式推出的Onchain AML反洗钱合规解决方案,利用多年积累的海…

Windows下安装python和pip

Windows下安装python和pip 1、安装python 注意:windows10 安装时强烈建议不用使用 Windows Store 安装。避免后期python运行时牵扯权限相关问题。 具体步骤: 1、前往python官网下载windows python 安装包 下载文件 2、双击运行安装(强力…

实时日志滚动显示 springboot+vue3

-:后端使用ssemiter保持客户端链接:http 这里不用websocket的原因是,sse很轻,整合方便,可发送日志,消息,群发等都可以。 -:前端使用vue3+ansi_up做页面展示 第一: 刷新页面导致session问题 可以在java的session中记录,如果是同一个客户重新链接的话,直接返回java…

【轴承故障诊断】用于轴承故障诊断的集中时频分析研究(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

SQL SERVER case when的使用方法

一、case when的使用方法 Case具有两种格式。简单Case函数和Case搜索函数。 第一种 格式 : 简单Case函数 : 格式说明     case 列名     when 条件值1 then 选项1     when 条件值2 then 选项2…     else 默认值 end eg:     select     case   job…

2021年国赛高教杯数学建模B题乙醇偶合制备C4烯烃解题全过程文档及程序

2021年国赛高教杯数学建模 B题 乙醇偶合制备C4烯烃 原题再现 C4 烯烃广泛应用于化工产品及医药的生产,乙醇是生产制备 C4 烯烃的原料。在制备过程中,催化剂组合(即:Co 负载量、Co/SiO2 和 HAP 装料比、乙醇浓度的组合&#xff0…

JUC源码分析:通过ReentrantLock阅读AbstractQueuedSynchronizer源码

一、概述 ReentrantLock进行上锁的流程如下图所示,我们将按照下面的流程分析ReentrantLock上锁的流程,在此过程中阅读AbstractQueuedSynchronizer源码。 AQS 的数据结构如下图所示。 AQS大家还记得吗?最核心的是它的一个共享的int类型值叫做…

电脑自动关机是什么原因?如何解决?

案例:有时候我的电脑用着就突然关机,会导致一些没有保存的文件丢失。有没有小伙伴知道电脑为什么会自动关机?怎样做才能避免这个问题? 在使用电脑过程中,遇到电脑自动关机的问题是很常见的。当我们在进行重要任务时&a…

Netty核心源码剖析(四)

1.Netty心跳(heartbeat)服务源码剖析 1>.Netty作为一个网络框架,提供了诸多功能,比如编码解码等,Netty还提供了非常重要的一个服务–心跳机制heartbeat.通过心跳检查对方是否有效,这是RPC框架中是必不可少的功能.下面我们分析一下Netty内部心跳服务源码实现; 2>.Netty提…

电磁仿真需要牢记的内功心法

在射频、微波设计中,各种“强大”的商用电磁仿真软件的功能包罗万象,这篇“内功心法”从算法角度出发,提示大家如何谨慎选择仿真软件。 心法一:场”与“路”的区分 世上本无“路”,“场”近似得多了就变成了“路”&a…

千人规模亚马逊云科技出海日将于6月9日开启,助推企业出海出圈

向全球价值链上游奋进 中国企业增强国际竞争力的关键,是努力朝全球价值链上游奋进,发力技术出海。中国的出海新机遇,背后曾是疫情在全球按下数字互联和数字化升级的快进键,跨境电商、在线社交、移动支付、数字服务等数字经济迎来…

什么是 Vue.js 中的 keep-alive 组件?如何使用 keep-alive 组件?

Vue.js 中的 Keep-alive 组件 Vue.js 是一款流行的前端框架,它提供了许多实用的组件和工具,其中之一就是 Keep-alive 组件。Keep-alive 组件是 Vue.js 的一个高阶组件,它可以帮助我们缓存组件实例,提高应用程序的性能和响应速度。…

python3写一个http接口服务(get, post),给别人调用6

python3写一个http接口服务(get, post),给别人调用6 一、python3写一个http接口服务(get, post),给别人调用6 近年来异步web服务器比较火热,例如falcon/bottle/sanic/aiohttp,今天也来玩玩sanic。 Sanic是一个支持Python 3.7的w…

Vue.js 中的 v-for 中的 key 属性

Vue.js 中的 v-for 中的 key 属性 Vue.js 是一个流行的 JavaScript 前端框架,它提供了一种简单的方式来构建可复用的组件和应用程序。在 Vue.js 中,v-for 指令用于循环渲染一个数组或对象,并将每个元素渲染为一个 DOM 元素。在使用 v-for 指…

数据安全架构设计

在提到安全架构之前,我们先看看安全的定义:安全是产品的质量属性,安全的目标是保障产品里信息资产的保密性(Confidentiality)、完整性(Integrity)和可用性(Availability)…

【大数据学习篇14】centos6安装Mysql

目录 1. centos6.5安装mysql5版本 1.1 以su超级用户,安装Mysql数据库 1.2 启动Mysql数据库 1.3、安装Mysql客户端 1.4 进入Mysql 1.5 设置密码123456,展示所有数据库 1.6 进入数据库test 1.7 创建数据库表 1.8 重新输入密码123456,进…

java代码的freemarker模板将JSP页面转换成word文档导出

使用java代码的freemarker模板将JSP页面转换成word文档导出 使用java代码的freemarker模板将JSP页面转换成word文档导出 一、准备好freemarker模板, 我的模板是这样的 需要特别注意的是,这些名字的写法是很特殊的,这个模板是wps在进行word…

100种思维模型之放大关键行动思维模型-75

很多时候,决定结果大小的是 关键行动的执行程度, 所以我们要适时 放大关键行动 ! 放大关键行动思维模型,一个 告诉我们 事前思考寻找能够破局的关键点,落实时要放大关键点上的行动 的思维模型。 01、何谓放大关键行动…