你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
快速入门:通过 MRTK 在 Unity 中创建具有 Azure Object Anchors 的 HoloLens 应用
本快速入门介绍如何创建使用 Azure Object Anchors 的 Unity HoloLens 应用。 Azure Object Anchors 是一项托管的云服务,它将 3D 资产转换为 AI 模型,以便为 HoloLens 启用对象感知混合现实体验。 完成本教程后,你将拥有一个使用 Unity 生成的 HoloLens 应用,该应用可检测到物理世界中的物体。
将了解如何执行以下操作:
- 准备 Unity 生成设置。
- 导出 HoloLens Visual Studio 项目。
- 在 HoloLens 2 设备上部署并运行应用。
先决条件
若要完成本快速入门,请确保具备以下项:
- 环境中存在一个物理对象及其 3D 模型(CAD 或扫描的)。
- 安装了以下内容的 Windows 计算机:
- 用于 Windows 的 Git
- 包含“通用 Windows 平台开发”工作负荷和 Windows 10 SDK(10.0.18362.0 或更高版本)组件的 Visual Studio 2019
- Unity 2019.4
- 已启用开发人员模式的最新 HoloLens 2 设备。
- 若要在 HoloLens 上更新为最新版本,请打开“设置”应用,转到“更新和安全”,然后选择“检查更新”。
创建 Object Anchors 帐户
首先,需要创建一个 Object Anchors 服务帐户。
转到 Azure 门户,然后选择“创建资源”。
搜索“Object Anchors”资源。
搜索“Object Anchors”。
在搜索结果中的“Object Anchors”资源中,选择“创建”->“Object Anchors”。
在“Object Anchors 帐户”对话框中:
- 输入唯一的资源名称。
- 选择要将资源附加到的订阅。
- 创建资源组或使用现有资源组。
- 选择希望资源所在的区域。
选择“创建”开始创建资源。
创建资源后,选择“转到资源”。
在“概述”页面上:
记下帐户域。 稍后需要用到此信息。
记下帐户 ID。 稍后需要用到此信息。
转到“访问密钥”页,并记下主密钥。 稍后需要用到此信息。
设置设备
若要将应用部署到 HoloLens,需要将 HoloLens 与计算机配对。
- 在 HoloLens 中,导航到“设置”-“>更新和安全”-“>面向开发人员”。
- 单击“配对”,将屏幕保持打开状态,直到在第一次部署期间将 PIN 输入到 Visual Studio 中。
上传模型
在运行应用之前,需要使模型可供应用使用。 如果尚无 Object Anchors 模型,请按照创建模型中的说明进行操作,以创建一个模型。 然后,返回此处。
打开 HoloLens 的电源并将其连接到开发设备 (PC) 后,按照以下步骤将模型上传到 HoloLens 上的“3D 对象”文件夹:
同时按 Ctrl 和 C (Ctrl + C),选择并复制要使用的模型。
同时按 Windows 徽标键和 E (Win + E) 启动文件资源管理器。 你应会在左窗格中看到 HoloLens 与其他驱动器和文件夹一起列出。
点击 HoloLens 链接,在右窗格中显示 HoloLens 设备上的存储。
在文件资源管理器中,转到“内部存储”>“3D 对象”。 现在,可以通过同时按 Ctrl 键和 V (Ctrl + V) 将模型粘贴到“3D 对象”文件夹中。
打开示例项目
通过运行以下命令克隆示例存储库:
git clone https://github.com/Azure/azure-object-anchors.git
cd ./azure-object-anchors
下一步是下载适用于 Unity 的 Azure Object Anchors 包。
在此处找到适用于 Unity (com.microsoft.azure.object-anchors.runtime
) 的 Azure Object Anchors 包。 选择所需的版本,并使用“下载”按钮下载该包。
在 Unity 中,打开 quickstarts/apps/unity/mrtk
项目。
按照此处的说明,使用 Unity 包管理器导入已下载到 Unity 项目中的 Azure Object Anchors 包。
配置帐户信息
接下来是将应用配置为使用你的帐户信息。 记下“创建 Object Anchors 帐户”部分中的“帐户密钥”、“帐户 ID”和“帐户域”值 。
在“项目”窗格中,转到 Assets\AzureObjectAnchors.SDK\Resources
。
选择“ObjectAnchorsConfig”。 在“检查器”窗格中,输入 Account Key
作为“Object Anchors 帐户密钥”的值,输入 Account ID
作为“Object Anchors 帐户 ID”的值,然后输入 Account Domain
作为“Object Anchors 帐户域”的值 。
生成并运行应用
生成示例场景
在 Unity 编辑器中,导航到“Assets/MixedReality.AzureObjectAnchors/Scenes”,然后打开“AOASampleScene”,并将其添加到“场景生成”列表中。
当“TMP 导入程序”对话框提示导入 TextMesh Pro 资源时,请选择“导入 TMP Essentials”以执行此操作。
选择“文件”->“生成设置”。 依次选择“通用 Windows 平台”、“切换平台”。 如果 Unity 编辑器指出需要先下载某些组件,请下载并安装这些组件。 按照下面的屏幕截图配置生成设置。 确保只有“AOASampleScene”旁边有一个选中标记:不应包含所有其他场景。
选择“生成”并选择一个输出文件夹。 现在可以在输出文件夹中生成 VS 项目。
生成并部署应用
打开 Unity 生成的 .sln
文件。 将生成配置更改为以下配置。
接下来,需要配置“远程计算机 IP 地址”,以便部署和调试应用。
右键单击“应用”项目,然后选择“属性”。 在“属性”页中,选择“配置属性”->“调试”。 将“计算机名称”值更改为 HoloLens 设备的 IP 地址,然后单击“应用”。
关闭“属性”页。 单击“远程计算机”。 应用应开始生成并部署到远程设备。 请确保设备处于活动状态。
在 Unity 初始屏幕后,应该会显示一个白色的边框。 你可以用手移动、缩放或旋转该边框。 放置边框以包围要检测的物体。
打开手动菜单,选择“锁定 SearchArea”以防止边框进一步移动。 选择“开始搜索”以启动物体检测。 检测到物体时,将在物体上呈现一个网格。 屏幕上将显示检测到的实例的详细信息,例如更新的时间戳和表面覆盖率。 选择“停止搜索”停止跟踪,将删除检测到的所有实例。
应用菜单
还可以使用手动菜单执行其他操作。
主菜单
开始搜索/停止搜索 – 开始或停止物体检测过程。
切换空间映射 – 显示/隐藏空间映射呈现。 此选项可用于调试扫描是否完成。
跟踪器设置 – 切换跟踪器设置菜单的激活状态。
搜索区域设置 – 切换搜索区域设置菜单的激活状态。
开始跟踪 – 捕获诊断数据并将其保存到设备。 有关更多详细信息,请参阅“调试检测问题和捕获诊断”部分。
上传跟踪 – 将诊断数据上传到 Object Anchors 服务。
跟踪器设置菜单
高准确度 – 一种试验性功能,用于获取更准确的姿势。 启用此选项,物体检测期间将需要更多系统资源。 在此模式下,物体网格将显示为粉红色。 再次选择此按钮以切换回正常跟踪模式。
宽松的垂直对齐 – 启用后,允许以非垂直角度检测物体。 对检测坡道上的物体很有用。
允许缩放更改 – 允许跟踪器根据环境信息更改检测到的物体的大小。
覆盖率滑块 – 调整跟踪器检测物体时必须匹配的表面点比例。 值越低,跟踪器越能更好地检测 HoloLens 传感器难以检测到的物体,例如深色物体或高反射性物体。 值较高,错误检测的频率越低。
搜索区域设置菜单
锁定搜索区域 – 锁定区域边框以防止意外地手动移动。
自动调整搜索区域 – 使搜索区域可以在物体检测期间自动重新定位。
循环网格 – 循环显示搜索区域内已加载的网格。 此选项可帮助用户对齐搜索框以应对难以检测的物体。
疑难解答
提示
如果未检测到对象,则可以尝试以下步骤:
- 仔细检查你为对象使用的是否是正确的模型。
- 可视化搜索区域并确保它涵盖目标对象。
- 尝试降低
MinSurfaceCoverage
。 - 在 Windows 设备门户中,单击“视图”->“3D 视图”,并验证扫描是否已完成。