训练速度提升300倍,Niantic最新VPS视觉定位方案亮相

news2024/11/26 15:23:00

近年来在谷歌、Niantic等推动下,视觉定位对于AR应用的重要性越来越明显,尤其是在室内导航场景,定位精度可超越传统GPS方案。为了进一步提升视觉定位、深度视觉地图构建的准确性,Niantic Labs在CVPR 2023期间公布了ACE方案(Accelerated Coordinate Encoding),中文直译是加速的坐标编码,宣称可实现更高效的视觉定位效果。

unnamed (3)

实际上,视觉重定位技术已经存在几十年,传统的方案通过识别图像中的关键点(边角轮廓)来构建地图、生成基于稀疏点云的3D模型。在重定位阶段,传统方案根据3D点云来读取地图中的关键点,并根据相机的位置来对齐3D地图与环境图像。而现阶段,机器学习、神经网络在计算机视觉领域已经得到广泛应用,神经网络常用于寻找更好的关键点,改进图像与地图的匹配结果。

优于传统DSAC*方案

此前比较常用的视觉定位方案基于DSAC*(可微样本共识),好处是准确性高,缺点是训练网络模型需要数小时到数天。DSAC*一次只能处理一张映射图像,而且需要大量冗余计算,因此大约需要15小时才能测绘一个场景。

Niantic:为什么说Lightship VPS定位比传统方案快300倍

这对于大多数AR应用程序来说都是不切实际的,而且扩展成本非常高。相比之下,ACE方案只需要5分钟就能实现精准的视觉定位,可将网络训练速度提高300倍,同时保证准确性。

ezgif-5-f2689e79cc

简单来讲,Niantic训练神经网络学习世界的外观,然后结合摄像头实现高精度、低成本重定位。据悉,ACE relocalizer目前已经在Lightship VPS系统中使用了一年多时间,已经在全球有20万个支持VPS重定位的区域,可很好的结合传统定位技术。

主动学习地图

与传统方案不同,ACE可以更好的理解物理场景,完全使用3D地图来取代神经网络。

逼真可信的AR依赖于高精度的定位,确定用户设备的位置和视角,并将虚拟内容固定在适当的位置,与物理场景融合。即使用户在几个月后重新访问该内容,也能在同一位置找到它。

unnamed (4)

GPS和IMU传感器在理想情况下精度可达几米,但对AR来讲不够精准,误差还需要降至厘米级。ACE在几分钟内即可完成地图创建,重定位过程只需几毫秒,准确性也相当高。该方案的重新定位主要分为两个阶段:

1)根据具有已知姿势的图像集合构建环境的3D地图,即映射阶段;

2)将新的查询/访问图像与3D地图匹配,来确定准确的位置和姿态,即重定位阶段。

ezgif-2-3c62ebc353

ACE完全用3D地图代替神经网络,这个3D地图与所有映射图像一致,不需要重建点云。当给出一个新的图像查询任务,神经网络可以准确地告诉我们每个像素在场景空间中的对应点,并通过对齐对应关系来推断相机姿态。

ACE使用的神经网络足够轻量化,仅占用4MB内存就能代表整个地图,在单GPU上运行的速度高达40fps,在常见的智能手机上速度可达20fps。

另外,只需要5分钟就能从包含姿态数据的RGB图像中生成3D场景并创建神经地图,还可以通过一帧RGB图像来估计相机姿态、重新定位。

为什么ACE速度快?

DSAC*基于场景坐标回归框架,是十年前提出的技术。另外,它需要两个阶段的训练,一次优化一张映射图像的场景重投影误差:一张图像提供了大量用于学习的像素,但具有高度的重投影误差,损失和梯度也是如此。

maxresdefault (12)

相比之下,ACE只需要训练减少像素级插帧误差,能同时优化所有映射图像的地图,无需处理图像损失,因此训练效率更高。

最终的优化非常稳定,Niantic指出:我们训练ACE的速度可以比5分钟更快,以获得仍然可用的结果。训练时间为甚至可缩短至10秒(不包括20秒的数据准备)。

值得注意的是,ACE可以非常适合较大规模的户外场景,不过内存占用和较短的映射时间一定程度上限制其功能。因此,Niantic将较大的场景分成较小的块,并为每个块训练一个ACE模型。在重定位过程中,每个ACE模型独立估计一个姿势,并选择具有最高内点计数的一个。如果能同时使用多个GPU,训练ACE模型可以更快速。参考:Niantic

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

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

相关文章

[MySql]表的增删查改

目录 前言: 1.插入数据 2.查询数据 2.1全列查询 2.2指定查询 2.3别名 2.4去重 2.5排序 2.6条件查询 2.7聚合查询 2.7.1group by语句 2.7.2havin语句 2.8联合查询 2.8.1内连接 2.8.2外连接 2.8.3自连接 2.8.4子查询 3.修改 4.删除 前言: 本次大多数使用…

【计算机视觉】MobileSAM论文解读:比SAM小60倍,比FastSAM快4倍,速度和效果双赢

文章目录 一、导读二、摘要三、Introduction三、Related work3.1 SAM:泛化和通用功能性3.2 ViT:轻巧高效 四、Mobile-Friendly SAM4.1 Background and Project Goal4.1.1 Background on SAM4.1.2 Project goal 4.2 Proposed Method4.2.1 耦合蒸馏4.2.2 从…

这个工具,补齐了 JMeter性能分析最后一公里短板

要说现在企业中主流的性能测试工具是什么? 答案肯定有 JMeter。 但是Jmeter 贵为测试工具界的“大牛”,在性能分析能力方面,还是有些欠缺的。 像Allen巨佬在高级性能实际教学的过程中就会经常遇到,学生截取一个监听器的图&…

使用传统的jdbc方式操作数据库

现在开发中有了mybatis、jdbcTemplate之后,已经很少公司会直接使用jdbc来连接数据库了,但是无论是mybatis还是jdbcTemplate,其底层都是jdbc。 这篇文章就主要介绍一下怎么通过jdbc来连接数据库。 在这之前,创建数据库jdbc&#xf…

JS相关介绍

1.JS引入: 内部:直接在html文件内部使用script标签调用 外部:另外新建JS文件,再在html文件中调用 2.输入输出: 输入:prompt(请输入您的姓名:) 输出:document.write(你们真是天才) 注…

2.9 Bootstrap 辅助类

文章目录 Bootstrap 辅助类文本背景其他更多实例关闭图标插入符快速浮动内容居中清除浮动显示和隐藏内容屏幕阅读器 Bootstrap 辅助类 下面将讨论 Bootstrap 中的一些可能会派上用场的辅助类。 文本 以下不同的类展示了不同的文本颜色。如果文本是个链接鼠标移动到文本上会变…

【自定义类型】(结构体、枚举、联合)

结构体内存对齐: 计算结构体的大小 结构体成员不是按照顺序在内存中连续存放的而是有一定的对齐规则的 结构体内存对齐的规则: 1、结构体的第一个成员永远放在相比于结构体变量起始位置的偏移量为0的位置。 2、从第二个成员开始,往后的每…

我打赌!这个 SQL 题,大部分人答不出来

周末的时候,一个读者问了我一个很有意思的问题,是关于 MySQL 中 update 加锁的问题。 他用下面这张数据库表,做了个 MySQL 实验的时候。 发现事务 B 的 update 不会阻塞,而事务 C 的 update 会阻塞,都是对 id 10 这条…

使用 uniswap 模拟交易时遇到一个问题

使用 uniswap 模拟交易时遇到一个问题 Error: VM Exception while processing transaction: socket hang upat web3.js:6365:9(39)at send (web3.js:5099:62(29))at <eval>:1:20(11)我的入参是 > eth.sendTransaction({from:0xe26a357fcc5A010421A49B8a5A99Af14CDe2…

Elasticsearch 中的矢量搜索:设计背后的基本原理

作者&#xff1a;Adrien Grand 你是否有兴趣了解 Elasticsearch 用于矢量搜索&#xff08;vector search&#xff09;的特性以及设计是什么样子&#xff1f; 一如既往&#xff0c;设计决策有利有弊。 本博客旨在详细介绍我们如何选择在 Elasticsearch 中构建矢量搜索。 矢量搜索…

科研 | 入门大全

文章目录 1. 读文献1.1 文献查阅与管理、如何快速找到与研究方向相关文章如何快速了解国内外发展现状找到后&#xff0c;怎么高效阅读&#xff1f;需要逐词逐句阅读吗&#xff1f;需要顺序阅读&#xff1f;读完之后&#xff0c;好像懂了&#xff0c;好像也没懂读过的文章&#…

通过GWO算法对8个发电机进行了最佳调度编码(Matlab代码实现)

目录 &#x1f4a5;1 概述 &#x1f4da;2 运行结果 &#x1f389;3 参考文献 &#x1f468;‍&#x1f4bb;4 Matlab代码 &#x1f4a5;1 概述 通过GWO&#xff08;Grey Wolf Optimization&#xff09;算法对8个发电机进行最佳调度编码是一种优化问题的解决方法。GWO算法灵…

【C++】C++异常机制

文章目录 C异常C语言传统的错误处理方式C错误处理方式异常的使用方法异常的使用规范异常安全问题异常规范自定义异常体系STL中的异常体系异常的优缺点 C异常 C语言传统的错误处理方式 终止程序&#xff0c;如assert直接断言报错&#xff0c;缺陷&#xff1a;非常麻烦&#xff…

密码学总结杂七杂八的wp

快捷键 折叠&#xff08;展开&#xff09;所有代码这里是指按下快捷键后凡事.py文件里可折叠的都折叠。 折叠所有代码&#xff1a;Ctrl Shift - &#xff08;减号&#xff09; 展开所有代码&#xff1a;Ctrl Shift &#xff08;加号&#xff09; 折叠&#xff08;展开&…

Linux运维面试题(一)之网络基础类面试题

Linux运维面试题&#xff08;一&#xff09;之网络基础类面试题 1.简述ISO/OSI的七层模型的分层与作用2.TCP/IP 四层&#xff08;网络接口层&#xff09;/五层模型&#xff08;数据链路层物理层&#xff09;3.TCP协议与UDP协议工作在哪一层&#xff0c;作用是什么&#xff1f;4…

Java安全——JAAS

Java安全 从保护终端用户不受攻击的角度讨论&#xff1a; 默认沙箱可以保护终端用户不受恶意java程序的破坏数字签名可以保护终端用户数据的完整性加密则可以保护终端用户数据的机密性 如何防止终端用户的破坏的&#xff1f; 鉴别与授权&#xff08;Java Authentication and Au…

渗透专题丨Vulnhub-DC-1靶机打靶

打开靶机&#xff0c;使用nmap进行网段扫描&#xff1a; 排除主机和kali IP&#xff0c;锁定靶机IP&#xff1a;192.168.38.141&#xff1a; 接下来进行端口扫描&#xff1a; 扫描服务详细信息&#xff1a; 这里扫到内容管理系统&#xff0c;网站也扫出来了&#xff1a;http-ge…

每天高频算法题-DAY3

题目一 在一个 n * m 的二维数组中&#xff0c;每一行都按照从左到右 非递减 的顺序排序&#xff0c;每一列都按照从上到下 非递减 的顺序排序。请完成一个高效的函数&#xff0c;输入这样的一个二维数组和一个整数&#xff0c;判断数组中是否含有该整数。 示例: 现有矩阵 ma…

电路分析 day01 一种使能控制电路

本次分析的电路为 一种使能控制电路 &#xff08;站在别人的肩膀上学习&#xff09; 资料来源 &#xff1a; 洛阳隆盛科技有限责任公司的专利 申请号&#xff1a;CN202022418360.7 1.首先查看资料了解本次电路 1.1 电路名称&#xff1a; 一种使能控制电路 1.2 电路功能…

Can转RTU网关can总线转以太网设备

YC-CAN-RTU 是一款用于 CAN-Modbus 现场总线与 RS-232 总线或 RS-485 总线之间数据转换的协议型转换器&#xff0c;支持标准 Modbus RTU 协议。集成 1 路RS-232 通道、1 路RS-485 通道、1 路CAN-Modbus 通道&#xff0c;可以方便地嵌入使用 RS-232 接口和 RS-485 接口的节点上&…