【XR】为挑战性环境优化6DoF控制器追踪

news2024/12/26 14:26:45

Oculus分享:为挑战性环境优化6DoF控制器追踪

尤其是针对具有挑战性的追踪环境

映维网曾在九月和十一月分享了关于Oculus Constellation追踪系统的相关细节,其中负责AR/VR设备输入追踪的Facebook工程经理安德鲁·梅利姆(Andrew Melim)撰文介绍了他们是如何用基于Constellation追踪的控制器来提高交互保真度,以及在最近版本更新中所采用的最新LED匹配方案。日前,安德鲁·梅利姆再次撰文的介绍了他们为进一步优化和强化Oculus Insight控制器追踪系统而付出的努力。下面是映维网的具体整理:

延伸阅读:深入探索Oculus Insight如何提高追踪保真度,确保内向外追踪系统性能

延伸阅读:Oculus揭秘Touch控制器追踪技术:LED 匹配

Facebook进一步介绍关于最近用以优化控制器追踪性能的版本更新,尤其是针对具有挑战性的追踪环境,如包含圣诞树或假日装饰灯具的空间。由于Facebook的追踪系统是基于检测和几何匹配小簇红外光,所以假日季期间将呈现重大的挑战,因为它要在包含数百个光点blob的背景下正确追踪控制器,而系统可能会将其误认为是控制器。

1. 追踪挑战

当控制器位于圣诞树前时,Insight追踪系统所感知的画面将如下所示。右侧的黄点是系统检测到的所有潜在控制器LED。如你所见,无论是来自圣诞树,装饰吊灯,还是其他可能存在的灯串,外部光源都会给系统定位控制器的LED带来挑战。
在这里插入图片描述

  1. 图中的其他光源对追踪算法提出了一定的挑战:
  2. 更多的光点blob会导致分割和匹配的计算时间增加。
  3. 若无关于控制器在上一帧中的位置信息,如果控制器介于装饰灯具的离群值范围内,则系统几乎不可能计算姿势。
  4. 就算存在先前的信息,即便是单个错误的LED都会造成错误地匹配,从而导致追踪失败。
  5. 由于Quest的严格计算预算,计算时间的任何增加都可能造成camera的掉帧。

面对上述挑战,在假日装饰灯附近的环境中进行控制器追踪非常困难,并且除非用户关闭灯具或将其移至其他房间,否则可能会导致错误。但Facebook希望人们什么时候都能够在家里享Quest和Rift S的乐趣,所以Facebook专注于优化追踪系统。

2. 解决方案

Facebook构建了两种主要方法来解决这个问题的不同方面:

首先,开发了一种可以检测环境中的固定3D灯源,并使用其3D位置来帮助拒绝这种光点blob的全新算法。映射外部点的过程类似于Insight追踪背后的系统。

要为这种固定的离群点创建精确的映射,需要系统计算它们的基本几何形状并对其在3D空间中的位置进行三角测量。系统将在游玩过程建立其追踪的标记列表。这种标记不仅存储离群点的位置,同时存储称为协方差的不确定性值。这种不确定性可以帮助提高系统当标记为固定时的判断精度。一旦在同一位置多次看到相同的标记,系统就会予以确认并在追踪过程忽略相关的光点blob。

在下面的并排图像中,你可以看到新算法(左侧)识别出粉红色标记和绿色标记。其中,粉红色为圣诞树灯具的光点blob,而绿色则为控制器LED的光点blob。

在这里插入图片描述

一旦绘制了固定标记,系统就会将它们投影到camera视图,从而获取其在每一帧中的像素位置。在所述位置检测到的光点blob(通过特定阈值内的误差度量来测量)不会用于匹配。进行删减后,系统将获得一个非常有可能是控制器blob的非固定blob索引列表。但是,仅追踪固定的标记不足以确保可靠的追踪。在最具挑战性的环境中,我们希望系统在处理之前先剔除明显不正确的光源。

所以,Facebook通过内部测试分析为何会发生追踪不匹配。Facebook发现通常的情况是,由于姿态匹配,不匹配的控制器blob尺寸会错误,如假定姿态接近时blob太小。综上所述,图像中的显式blob尺寸基本可根据以下因素进行预测:

  1. LED与摄像头的距离
  2. 入射到LED的入射角
  3. 图像blob到图像中心的距离
  4. 图像Blob椭圆在图像空间中的方向

考虑到这种关系,Facebook尝试了不同的方法来将上述输入信号建模为输出。Facebook发现由于塑料的折射效应,几何建模相当不准确,而机器学习方法(尤其是小型神经网络)能带来最高的精确度。

Facebook利用Caffe2训练了一个极小且针对性极强的CNN卷积神经网络,从而验证明显太大或太小而无法成为控制器blob的blob。Facebook对特定的内部采集数据集进行了训练,并发现这与映射标记结合时能够明显减少离群值数量的有效方法。

3. 结果

通过这种优化,追踪系统的性能在充满挑战的环境中(如假日季期间常见的环境)有了显著改善。最大的改进是显著减少了数据丢失的数量,并几乎消除了在密集外部照明情况下不正确的LED匹配。我们发现这能够改善用户体验,同时希望Quest和Rift S用户能够全年无缝地享受VR的乐趣。

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

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

相关文章

舆情监测平台都有哪些,舆情监测平台使用工作总结

舆情监测平台(public opinion monitoring platform)是一种用于监测和分析网络上的舆论动态的工具。这些平台通常通过爬取网络上的新闻、博客、论坛、社交媒体等信息来收集数据,并使用自然语言处理技术和数据挖掘技术来分析数据。舆情监测平台常常被用于政府、企业、…

牛客竞赛每日俩题 - Day12

目录 set的插入删除 vector<string>的应用 set的插入删除 数据库连接池__牛客网 [解题思路] 循环接收每组用例&#xff0c;对于每组用例进行如下操作&#xff1a; 1. 依次获取每个状态&#xff0c;如果该状态是"connect"&#xff0c;则将其id插入到set中&…

Adaboost模型的python实现

文章目录介绍Adaboost库参数介绍实例二分类问题多分类问题作者&#xff1a;李雪茸介绍 Adaboost算法是一种集成学习(ensemble learning)方法。在集成学习中&#xff0c;强学习器指的是由多个机器学习模型组合形成的精度更高的模型。而参与组合的模型就被称为是弱学习器。进行预…

数据治理:数据治理之道-数据战略

参考《一本书讲透数据治理》、《数据治理》等 文章目录数据战略定义DAMA对数据战略的定义DCMM对数据战略的定义《一本书讲透数据治理》对数据战略理解数据战略与企业战略、数据架构的关系数据战略的3个要素战略定位短期目标中期目标长期目标实施策略行动计划实施数据战略的5个步…

NFT存储使用NFTUp上传(NFT.Storage)

文章目录NFT存储使用NFTUp上传(NFT.Storage)NFT.StorageNFTUp安装和使用NFT存储使用NFTUp上传(NFT.Storage) NFT.Storage 官网&#xff1a;https://nft.storage/ NFT.Storage&#xff0c;它可以让用户免费使用IPFS与Filecoin存储NFT及元数据内容。 NFT.Storage&#xff0c;…

信息系统业务安全服务资质

信息系统业务安全服务能力评定是指依据《信息化建设企业信息系统业务安全服务能力评定标准》&#xff0c;对信息化建设企业信息系统业务安全服务能力的符合性评价&#xff0c;包括综合条件、财务状况、业绩要求、管理能力、技术实力、人才保障六个方面。通过评定&#xff0c;可…

小黑正在苦于hbase的rowkey的日常积累:md5字符串加密

import hashlib content hello md5hash hashlib.md5(content.encode(utf-8)) md5 md5hash.hexdigest() print(md5)5d41402abc4b2a76b9719d911017c592 参考链接&#xff1a; https://wenku.baidu.com/view/bceba829f22d2af90242a8956bec0975f465a46c?frsogou&wkts167237…

电脑为什么这么卡?6个方法处理电脑卡顿

你是否打开电脑就卡到不行&#xff1f;电脑的开机速度慢&#xff0c;就连打开网页也在转圈圈&#xff0c;一直加载不出来。世界上最痛苦的事莫过于此&#xff0c;想要好好工作&#xff0c;却一直加载不出网页。你知道电脑为什么这么卡吗&#xff1f;其实大多数的原因都在这篇文…

借助 Material Design,帮助您打造更好的无障碍应用 (下篇)

随着时代的发展&#xff0c;"无障碍体验" 对开发者的意义也愈发重大&#xff0c;在上一篇文章中&#xff0c;我们为您介绍了无障碍布局和排版、文案等相关内容。本文将进一步为您介绍图片、声音和运动、实现无障碍的内容。图片图片类型要知道何时以及如何使图片遵循无…

多维尺度MDS案例分析

多维尺度&#xff08;multidimensional scaling, MDS&#xff09;&#xff0c;是一种将研究对象之间距离或者不相似度的直观展示&#xff0c;较为典型的研究对象是地理位置&#xff0c;当然也可以是观点、颜色等任意各类实体或抽象概念&#xff0c;比如茶的口味不相似情况。多维…

MoCo论文:Momentum Contrast for Unsupervised Visual Representation Learning

目录一. 引言二. 背景介绍&#xff1a;对比学习三. 标题和作者四. 动量方式&#xff1a;五. 摘要六. 相关工作七. 结论八. MoCo方法九. MoCo伪代码十. 文章贡献10.1 第一个贡献&#xff1a;如何把一个字典看成队列10.2 文章的第二个贡献&#xff1a;如何使用动量的思想去更新编…

GO-生命周期

好奇心 出于好奇&#xff0c;想了解go的执行生命周期&#xff0c;于是尝试跟着go的源码看看执行过程 go源码地址&#xff1a;GitHub - golang/go: The Go programming language 1.根据命令行编译文件&#xff0c;然后执行二进制文件 &#xff08;1&#xff09;从go运行命令…

基于深度学习的人工林地面激光扫描点云立木特征参数提取方法

Abstract 利用基于三维点云的技术量化立木和立木参数&#xff0c;可以在林业生态效益评估和立木培育和利用中发挥关键作用。随着光探测与测距&#xff08;LiDAR&#xff09;扫描等三维信息获取技术的进步&#xff0c;可以更高效地获取大面积、复杂地形的树木林分信息。然而&am…

IFC常用关系定义

IFC常用关系定义 IfcRelDefinesByType IfcRelDefinesByType表示对象化的关系(The objectified relationship)&#xff0c;定义了一种对象类型定义(object type)和对象实体(object occurrences)的关系。IfcRelDefinesByType是1:n的关系&#xff0c;可以将一个对象类型定义(obj…

深入浅出scala之集合体系(集合即容器)(P46-4)

文章目录一、容器概念二、定长数组一、容器概念 1.集合是一种用来存储各种对象和数据的容器。 2.Scala集合分为可变和不可变的集合&#xff0c;不可变集合可以安全的并发访问。 可变集合可以在适当的地方被更新或扩展。这意味着可以修改&#xff0c;添加&#xff0c;移除一个集…

笔记:软件工程常用开源文档模板 + 软件著作权

https://github.com/AlexanderZhou01/China-software-copyright 下载以上的工程 解压放到U盘里 打开 D:\China-software-copyright-master 国家版权保护中心网址 办理步骤为企业获取政策优惠&#xff0c;减免。为学生提供成果。 办理步骤 (3030)∗50(3030)*50(3030)∗5…

Python 高效率传参调用 MATLAB 程序

Background python调用matlab脚本需要注意前置条件&#xff0c;具体参考官方文档&#xff1a;从 Python 中调用 MATLAB&#xff0c;大致就是两点&#xff1a;一是需要python和matlab版本对应&#xff0c;二是需要matlab运行环境mcr。具体安装配置可以参考&#xff1a;java和pyt…

使用Filebeat和AWS CloudWatch Logs将EC2上的Tomcat的access_log传送到ELK

文章目录背景和方案选择前提注册AWS账号创建EC2实例注意事项在EC2实例上安装aws-cloudwatch-agent注意事项测试aws-cloudwatch-agent是否可用使用Docker Compose部署ELK使用Docker Compose部署Filebeat配置文件说明docker-compose.yml说明filebeat配置文件说明input配置AWS Clo…

华为智能基座实验【计算机组成原理】

华为智能基座实验【计算机组成原理】前言推荐华为智能基座实验【计算机组成原理】1 课程介绍1.1 简介1.2 内容描述1.3 读者知识背景1.4 实验环境说明2 实验 1&#xff1a;hello-world 示例程序2.1 实验介绍2.1.1 关于本实验2.1.2 教学目标2.1.3 实验内容介绍2.2 实验任务操作指…

宝宝多大戒尿不湿?不看年龄看表现,用对方法轻松戒掉尿不湿

宝宝刚出生的时候&#xff0c;大小便次数比较多&#xff0c;宝宝自己也控制不了。这时&#xff0c;使用尿布可以减少父母的大量工作。但使用尿布只是暂时的。当宝宝到了一定年龄&#xff0c;就应该戒掉。宝宝能戒尿多大&#xff1f;既然尿布是用来兜宝宝大小便的&#xff0c;如…