HoloLens2场景理解,识别平面信息

因为可用的资料比较少,就记录下吧,大家也可以少走弯路,节省时间。

场景理解,通俗的讲,可以识别空间当中的墙面、地板、天花板、平台等.

场景理解(Scene Understanding)是指 HoloLens2 通过深度传感器、摄像头和计算机视觉算法等技术,能够对周围的物体、空间和用户的动作进行理解和分析。这使得 HoloLens2 可以根据场景进行自适应的显示和交互,为用户提供更加真实和自然的 AR 体验。

场景理解可转换混合现实设备捕获的非结构化环境传感器数据,并将其转换为强大的抽象表示形式。

混合现实设备会不断集成它在环境中看到的内容信息(传感器数据)。 场景理解SDK汇总所有这些数据源,并生成单一且一致的抽象。

场景理解生成场景,这是 一个场景Object 的构成,表示单个事物的实例, (例如墙/天花板/地板。) 场景对象本身是 [SceneComponents, 它代表构成此 SceneObject 的更精细的片段。 组件的示例包括四边形和网格,但未来可能表示边界框、冲突网格、元数据等。

场景理解观察程序 - MRTK 2 | Microsoft Learn

场景理解概述

场景理解 - Mixed Reality | Microsoft Learn

场景理解 SDK 概述

场景理解 SDK - Mixed Reality | Microsoft Learn

一)、启动样例场景

最好理解的方式找个样例跑起来看下效果. 刚好MRTK当中有样例。

SceneUnderstandingExample, 现在关键是要把例子跑起来, 这个花了不少时间,因为资料比较少.

我用的unity版本为2020.3.42版本,这个版本影响应该问题不大.

第一步,先给项目引入SDK包, 从MRTK Tools中导入SceneUnderstanding包

第二步,

Library\PackageCache\com.microsoft.mixedreality.toolkit.foundation@f2323a9b7aec\Providers\Experimental\WindowsSceneUnderstanding\WindowsSceneUnderstandingObserver.cs(1491,72): error CS7069: Reference to type 'Vector2' claims it is defined in 'System.Numerics', but it could not be found   会有这个报错。  

需要在Player当中,设置兼容性级别,改为.NET 4.x

到这里场景大概率可以跑起来了。

用到的一些配置,MRTK样例当中已经配置好。

比如说需要启用空间感知系统、观察点是否在间隔上自动更新其观测值、更新的频率,还有支持检测的类型,可以配置墙面、天花板、地板等(也可以后续在代码当中进行配置,设置IMixedRealitySceneUnderstandingObserver observer;

设置observer.SurfaceTypes).

勾选这个可以加载保存的场景文件,在unity编辑器当中进行调试,看到一些效果,这个很方便,如果不知道的话,每次都需要打到HoloLens当中去看效果,很费时间,最初的我就是如此(奔溃).

样例中关键的脚本,DemoSceneUnderstandingController.cs.

二)、效果图

将HoloLens当中保存的.bytes场景文件,放到unity编辑器当中使用,效果图如下:

上面的菜单,

Get meshs: Get RequestMeshData,启用后,该服务将提供表面网格。

Get quads: RequestPlaneData,启用后,该服务将提供表面平面,表示为四边形。

Occlusion: observer.RequestOcclusionMask,启用后,该服务将生成适合空间查询的纹理数据。

下面的菜单:,表示过来检测的空间表面层类型,检测哪些类型。

检测平台Platforms(上面的杯子,是通过DemoSceneUnderstandingController脚本设置的)

检测到墙壁

三)、关键的API

空间表面层类型对应的API解释:

空间感知表面类型枚举 (Microsoft.Mixed Reality.Toolkit.SpatialAwareness) |微软学习

背景:Background 32

不适合已定义曲面类型之一的曲面。

空间表面层类型:

天花板:Ceiling 4  

环境的天花板。

地板:Floor 2

环境的地板。

推断:Inferred 128

我们没有观测到的物体

平台:Platform 16.   桌子Platform

可以放置对象的大凸起表面。

可以放置全息影像的较大平面。 它们往往表示桌子、台面和其他较大水平面。

未知:Unknown   1. red椅子。

尚无法分类的曲面。

墙:Wall 8

用户空间内的垂直表面。

世界:World 64

一个无边无际的世界网格。

IMixed现实场景理解观察者接口

IMixedRealitySceneUnderstandingObserver Interface(Microsoft.Mixed Reality.Toolkit.Experimental.SpatialAwareness) |微软学习https://learn.microsoft.com/zh-cn/dotnet/api/microsoft.mixedreality.toolkit.experimental.spatialawareness.imixedrealitysceneunderstandingobserver?view=mixed-reality-toolkit-unity-2020-dotnet-2.8.0

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

微信小程序对接在线客服系统,对接小程序订阅消息模板,小程序订阅方法以及后端发送订阅模板消息的方法...

微信小程序想要对接独立在线客服系统,除了使用小程序消息推送接口外,还可以使用webview嵌入的形式嵌入聊天链接。 但是,使用webview嵌入的形式,当用户离开页面以后,就收不到客服回复的消息了 所以,我们需要…

Nginx快速上手~

注:本文针对官网的快速入门教程进行一个中文的解释,以帮助英文阅读能力较差的学习者快速上手 参考官网连接Beginners Guide (nginx.org) Centos下的安装 sudo yum install yum-utils # 创建文件 vim /etc/yum.repos.d/nginx.repo # 输入以下内容 ####…

IDEA插件-MavenHapler

1.安装Maven Helper Maven Helper 是 IntelliJ IDEA 中的一个插件,可以帮助您管理 Maven 依赖项。它可以帮助您更容易地删除不再需要的依赖项,查看依赖项的冲突,以及执行其他有关 Maven 依赖项的操作。 打开 IDEA 设置页面: 在插…

信息安全-reNgine-Web应用渗透测试的自动化网络侦察框架

目录 reNgine介绍 工具运行机制 安装部署 安装rengine 安装python依赖包 合并Django前端静态文件 安装Postgresql 创建reNgine账号 启动reNgine 启动reNgine成功 启动reNgine后在浏览器访问:http://localhost:8000/ 这时会发现前端静态资源加载失败&…

个人杂笔记

docker里面的-p暴露端口是确确实实写了才会映射到主机 docker run -d --hostname my-rabbit --name my-rabbit -e RABBITMQ_DEFAULT_USERroot -e RABBITMQ_DEFAULT_PASS250772730 -p 8080:8080 -p 15672:15672 -p 5672:5672 rabbitmq:3-managementpip安装提示warning 可能原因…

【C++】vector的简化模拟实现

文章目录 1. 主要结构2. 默认成员函数3. 迭代器4. 容量相关1. size和capacity2. reserve3. resize 5. 数据访问6. 数据修改1. push_back2.pop_back3. insert4.erase5.swap6.clear 1. 主要结构 参照SGI版本的vector实现,使用三个指针来维护这样一段内存空间 templa…

《数据结构》---术语篇

目录 前言: 一.术语 1.1数据 1.2数据结构 1.3逻辑结构和物理结构 二.数据类型和抽象数据类型 ​​​​​​​ ❤博主CSDN:啊苏要学习 ▶专栏分类:数据结构◀ 学习数据结构是一件有趣的事情,希望读者能在我的博文切实感受到&#xff0c…

同为科技(TOWE)防雷科普篇(二)——雷击灾害急救方法大全

前 言 当雷击发生时,空气中的各种微粒互相碰撞和摩擦便会使该空气介质两面的正负电荷的量持续积累,这时加于该空气介质的电压也会同时增加,当局部电压达到当时条件下空气的击穿电压时,该空气介质的局部便会发生电击穿而持续成为等…

使用ChatGPT完成程序开发——目标:不写一行代码完成图像识别并点击

本文作为一个使用AI开发的思路,让更多的人可以利用AI完成一些简单的程序,文中使用的是国内镜像GTP3.5 源码: GitHub - kasimshi/testCV: AI编写的OpenCV图像识别例子 GTP镜像: 知汇 对AI描述我们要做的功能,让它给给初步的思路和方向 作为新…

[译] 实战 React 18 中的 Suspense

> 原文:https://dev.to/darkmavis1980/a-practical-example-of-suspense-in-react-18-3lln React 18 带来了很多变化,它不会破坏你已经编写过的代码,并且有很多改进和一些新概念。 它也让很多开发人员,包括我,意识到…

Web 开发会话技术之 -Cookie介绍以及源码分析和图分析以及Cookie的生命周期--路径--中文乱码的分析和代码示例

目录 Web 开发会话技术之 -Cookie 会话 基本介绍 1. 什么是会话? 2. 会话过程中要解决的一些问题? cookie 技术 cookie 介绍 二说 cookie cookie 可以用来做啥 cookie 基本使用 cookie 常用方法 cookie 底层实现机制-创建和读取 Cookie Crea…

Linux-初学者系列——篇幅7_文本编辑和处理命令

文本编辑和处理命令-目录 一、系统基本编辑命令安装vim软件工具包语法格式: 1、vim编辑命令模式01 普通模式02 编辑模式03 命令模式 2、编辑文件技巧01 批量删除多行指定信息02 批量增加多列指定信息03 编辑常见问题错误1:没有指定编辑信息错误2&#xf…

Flink高手之路5-Table API SQL

文章目录 Flink 中的Table API & SQL一、Table API & SQL 介绍1. 为什么要Table API和SQL2. Table API & SQL的特点3. Table API& SQL发展历程3.1 架构升级3.2 查询处理器的选择3.3 了解-Blink planner和Flink Planner具体区别如下:3.4 了解-Blink …

基于GPS/北斗卫星技术的无盲区车辆调度系统

基于GPS/北斗卫星技术的无盲区车辆调度系统 现代车辆调度系统是一种集全球卫星定位技术(GPS)、地理信息技术(GIS)和现代通信技术于一体的高科技项目。它将移动目标的动态位置(经度与纬度)、时间和状态等信息…

uni-app入门到实战

🍿*★,*:.☆( ̄▽ ̄)/$:*.★* 🍿 🍟欢迎来到前端初见的博文,本文主要讲解uni-app入门到实战🍟 👨‍🔧 个人主页 : 前端初见 🥞喜欢的朋友可以关注一下&#xff…

javassist 字节码处理库

目录 一、快速入门 1.1 创建class文件1.2 ClassPool的相关方法1.3 CtClass的相关方法1.4 CtMethod的相关方法1.5 调用生成的类对象 1.5.1 通过反射调用1.5.2 通过接口调用1.6 修改现有的类对象二、将类冻结三、类搜索路径四、$开头的特殊字符五、ProxyFactory的使用 我们知道J…

Linux I/O复用函数的使用情况和select接口的介绍

I/O 复用使得程序能同时监听多个文件描述符,这对于提高程序的性能至关重要。通常, 网络程序在下列情况下需要使用 I/O 复用技术: 1.TCP服务器同时要处理监听套接字和连接套接字 2.服务器同时要处理TCP请求和UDP请求。 3.程序同时要处理多个套…

直播预告 | 时序数据处理的云端利器:TDengine Cloud 详解与演示

当下,我们正处在一个万物互联的时代,大数据、云原生、AI、5G 等数字技术极大地方便了人们的生活,但智能物联网产生的海量数据却成为众多企业在数据处理上的巨大痛点。从本质来看,这些数据大多是产生自各种设备和传感器的时序数据&…

Spring种存取Bean的5种注解

存取Bean的五种注解 存储Bean对象两种方式1.添加一行bean2.使用注解的方式(5大注解)Controller(控制器存储)Service(服务存储)Repository(仓库存储)Component(组件存储)Configuration(配置存储)方法注解 Bean 获取Bean对象(三种)1.属性注入2.setter注入3.构造方法注入三种注入的…

springboot-分页功能

1.分页功能的作用 分页功能作为各类网站和系统不可或缺的部分(例如百度搜索结果的分页等) ,当一个页面数据量大的时候分页作用就体现出来的,其作用有以下5个。 (1)减少系统资源的消耗 (2&#…