计算幻术之路(三):ToF AR 基础与 Unity 设置

计算幻术之路目录

提示:本系列文章主要面向在 Unity 中如何使用 Sony ToF AR SDK 进行增强现实应用程序开发。

第一章 被定义之前的增强现实
第二章 增强现实的现实
第三章 ToF AR 基础与 Unity 设置
第四章 ToF AR 在 Unity 中开发增强现实应用程序
第五章 AR Foundation 人脸跟踪
第六章 ToF AR Hand Component 增强现实手势识别



前言

ToF AR 从 6 月 15 日起在 Sony Developer World 上向公众正式开放。
本文章将介绍ToF AR,以促进基础认识,在正式开始之前,可以查阅官方示例集


本系列教程所采用的开发环境:
Unity 2020.3.28f1
AR Foundation 4.2.2
ARKit XR Plugin 4.2.2
ARKit Face Tracking 4.2.2

官方建议为:
Unity 2020.3.28f1 或 Unity 2021.2.11f1 (Unity 2020及以上)
AR Foundation 4.2.2
ARCore Extensions for AR Foundation 1.29.0

一、ToF AR是什么?

ToF AR 即飞行时间增强现实(Time of Flight Augmented Reality),是 Sony 公司发布的一个基于 Unity 的软件开发工具包(SDK)。它由一组以 ToF 相机为核心的功能组成。

1.系统要求

1.1 使用 ToF AR 开发的应用程序支持的设备

在正式开始之前,请查阅官方支持设备清单,以检查手边设备是否符合开发需求,其中,R指代后置摄像头(Rear Camera),F指代前置摄像头(Front Camera)

1.2 ToF AR的3D坐标系

在这里插入图片描述
ToF AR 的 3D 坐标系称为相机坐标系。相机坐标系是以ToF相机为原点的左手坐标系,计量单位是米。

1.3. Unity 中的世界坐标系和 ToF 相机图像坐标系

Unity 世界坐标系是左手坐标系。
ToF 相机图像坐标系是二维坐标系,取决于设备的朝向。

在这里插入图片描述在这里插入图片描述

2.ToF AR 概述

2.1 系统图示

ToF AR 由两部分组成:

  1. ToF AR Component Library访问硬件,例如RGB相机和ToF相机,并实现算法等。
  2. ToF AR Unity Toolkit是 ToF AR 组件库中各种功能的 Unity 包装器。 ToF AR Unity Toolkit 是应用程序开发人员直接使用的部分。

在这里插入图片描述

2.2 组件和工具包

ToF AR 为每个执行子功能的组件提供了一个 Manager Prefab 和一个 Visualization Prefab 作为工具包。Manager Prefab 管理组件。Visualization Prefab 显示组件的处理结果。结果通过 Stream 从 Manager Prefab 传输到 Visualization Prefab 和 User Applications。下图显示了这些关系。

在这里插入图片描述

  • Stream

提供组件之间的数据传输。每个组件传输的数据是不同的,例如,深度数据、颜色数据、网格数据和特征点的坐标数据。它可以包含多个数据。

  • Manager Prefab

提供对每个组件及其输出流的访问。要使用组件,请获取相应 Manager Prefab 的单例实例。

  • Visualization Prefab

为从 Component Streams 获取的数据提供屏幕显示功能。

使用 ToF AR Toolkit 时,需要获取 Color Manager Prefab 或 ToF Manager Prefab 的实例。需要哪一个取决于 Component,参考ToF AR 官方文档中的 Prefab 描述。原因是除了 Color/ToF Component 之外的 Components 也处理来自 Color/ToF Component 的 Stream。

二、使用步骤

1.引入库

通过官方页面下载 ToF AR Toolkit。
ToF AR 的内容如下所示。用户可以自行决定在任何地方放置和使用该包装。

在这里插入图片描述

Package是安装期间需要导入的 Unity 包:

  • 基础功能:TofAR_Base_xxxx_yyyy.unitypackage
  • 增加手部识别与跟踪功能:TofAR_Hand_xxxx_yyyy.unitypackage

其中xxxx是版本号,yyyy是构建目标平台。

文件夹 描述
01_UnityProject ToF AR Unity 包文件,开发服务器应用程序的可执行文件
02_SampleApplication 包含一组 ToF AR 示例应用程序 Unity 项目的 zip 文件

2.文件架构

导入 Unity 后的 ToF AR 文件夹布局如下:

在这里插入图片描述

文件夹 描述
TofAr/TofArXXXX 每个组件一个文件夹,基本布局在组件之间共享
TofAr/TofArXXXX/Plugins ToF AR 正常运行所需的二进制文件,禁止删除或编辑这些文件
TofAr/TofArXXXX/V0/Resources 各项资源文件,预制件存储在这里
TofAr/TofArXXXX/V0/Resources/xml 设置 ToF AR 正常运行所需的文件,禁止删除或编辑这些文件
TofAr/TofArXXXX/V0/Scripts 脚本存储在这里

3.在 Unity 中设置 ToF AR

如下设置 ToF AR Unity Toolkit:

  1. 使用 Unity 在任意位置创建新项目。
  2. 从菜单中打开 File / Build Settings…​ / Player Settings / Android Settings 并在 Other Settings 下进行以下设置:
  • 兼容级别:.NET4.x
  • 脚本后端:IL2CPP
  • 目标架构:仅选择ARM64

在这里插入图片描述

  1. 从菜单中,选择File / Build Settings…​ / Player Settings / iOS Settings并在Other Settings中设置以下内容:
  • Api Compatibility Level(Api兼容级别):.NET4.x
  • Camera Usage Description(相机使用说明):输入一个字符串,描述相机的使用方式

在这里插入图片描述

  1. 选择Assets / ImportPackage / Custom Package…并导入TofAR_Base _xxxx _yyyy .unitypackage,其中xxxx是版本号,yyyy是构建目标平台。(如果还需使用手势功能,则导入TofAR_Hand _xxxx _yyyy .unitypackage)
    在这里插入图片描述

4.ToF AR 组件列表

ToF AR 由具有以下功能的组件组成。用户可以单独或组合使用这些组件。

组件 描述 位置
ToF 获取深度数据、置信度数据和点云数据 TofAR_Base_xxxx_yyyy.unitypackage
Color 获取 RGB 颜色数据 TofAR_Base_xxxx_yyyy.unitypackage
Mesh 获取 3D 网格数据 TofAR_Base_xxxx_yyyy.unitypackage
Plane 获取平面检测数据 TofAR_Base_xxxx_yyyy.unitypackage
Coordinate 深度数据、颜色数据、3D坐标空间中的相互坐标转换函数 TofAR_Base_xxxx_yyyy.unitypackage
Hand 获取手(手指)位置检测数据 TofAR_Base_xxxx_yyyy.unitypackage
TofAR_Hand_xxxx_yyyy.unitypackage
MarkRecog 标记识别 TofAR_Base_xxxx_yyyy.unitypackage
TofAR_Hand_xxxx_yyyy.unitypackage
Modeling 3D 建模 TofAR_Base_xxxx_yyyy.unitypackage
Body 身体识别 TofAR_Base_xxxx_yyyy.unitypackage
Segmentation 分割识别 TofAR_Base_xxxx_yyyy.unitypackage
Face 人脸识别 TofAR_Base_xxxx_yyyy.unitypackage

总结

本文简单认识了 ToF AR 的架构与功能,在下一章节将进一步学习 ToF AR 的设计与开发。

猜你喜欢

转载自blog.csdn.net/weixin_45454260/article/details/125945096