练习 - 集成 Azure 存储
在本模块中,你将了解如何将实体数据保存到 Azure 表存储和缩略图到 Azure Blob 存储。 借助此功能,我们可以存储跟踪对象,并通过 ID、名称、缩略图等数据在会话间以及设备和云之间检索跟踪对象。
了解 Azure 存储
Azure 存储 是云中的Microsoft存储解决方案,可以涵盖许多方案和要求。 它可以大规模缩放,并且易于开发人员理解。 所有服务都可以在 Azure 存储帐户的保护下使用。 我们的用例中会使用表存储和 Blob 存储。
详细了解 Azure 存储服务。
Azure 表存储
此服务允许我们以 NoSQL 方式存储数据。 在我们的项目中,我们将使用它来存储有关跟踪对象的信息,例如名称、说明等。
在演示应用程序的上下文中,需要两个表:一个用于存储有关项目的信息以及有关训练模型状态的信息(在本模块后面的 “集成 Azure 自定义视觉 ”练习中的详细信息),另一个表用于存储有关跟踪对象的信息。
了解有关 Azure 表存储的详细信息。
Azure Blob 存储
此服务允许存储大型二进制文件。 你将使用 Azure Blob 存储将为 跟踪对象 拍摄的照片存储为缩略图。
出于演示应用程序的目的,需要一个 Blob 容器来存储映像。
了解有关 Azure Blob 存储的详细信息。
准备 Azure 存储
若要使用 Azure 存储服务,需要一个 Azure 存储帐户。 若要创建存储帐户,请参阅 “创建存储帐户”。 若要了解有关存储帐户的详细信息,请参阅 存储帐户概述。
拥有存储帐户后,可以从 Azure 门户检索连接字符串。 可以在 安全 + 网络>访问密钥中找到它。 在本课程的下一部分中,需要用到连接字符串。
可选 Azure 存储资源管理器
虽然可以从应用程序内的 UI 查看和验证所有数据更改,但建议安装 Azure 存储资源管理器。 使用此工具可以直观显示 Azure 存储中的数据,调试和学习时,它非常有帮助。
小窍门
若要从 Unity 编辑器内部进行测试,可以使用本地模拟器:
- 在 Windows 上,可以使用 Azurite 模拟器。
- 在 MacOS 或 Linux 上,可以使用 适用于 Docker 的 Azurite Docker 映像 。
准备场景
在“层次结构”窗口中,找到 DataManager 对象并选择它。
检查器窗口中 的 DataManager(脚本) 组件包含所有 与 Azure 存储 相关的设置。 已设置所有相关设置;只需将 连接字符串 字段替换为从 Azure 门户检索到的字段。 如果使用的是本地 Azure 存储模拟器解决方案,则可以保留已提供的连接字符串或将其留空。
DataManager(脚本)负责与表存储和 Blob 存储交互,并被 UI 组件上的其他控制器脚本使用。
在 Azure 表存储中写入和读取数据
注释
在 HoloLens 2 上进行构建和测试不是必须的。 如果没有 HoloLens 设备,可以在 HoloLens 2 模拟器 上进行测试。 你可以在 HoloLens.com 购买设备。
准备好所有内容后,是时候创建跟踪对象了。
打开 HoloLens 上的应用程序,然后选择 “设置对象”。 EnterObjectName 对象将在层次结构中处于活动状态。 选择 搜索栏 并键入要为跟踪对象提供的名称。 提供名称后,选择“ 设置对象 ”按钮。 这会在 Azure 表存储上创建 Tracked 对象。 此时将显示“对象卡”。
此对象卡片是跟踪对象的 UI 表示形式,将在本教程系列中扮演重要角色。
现在,选择 “说明 ”文本框并键入 “汽车”,然后选择“ 保存 ”按钮保存更改。 停止应用程序并重新运行它。
选择 “搜索对象” ,并在搜索栏中创建跟踪对象时键入之前输入的名称。 然后你将会看到从 Azure 表存储中检索到的“对象卡”的所有数据。
随时关闭对象卡片、创建新的跟踪对象并编辑其数据。
小窍门
如果已安装 Azure 存储资源管理器,可以在 “对象 ”表中找到跟踪的对象。
从 Azure Blob 存储上传和下载映像
在本部分中,你将使用 Azure Blob 存储上传和下载图像,以用作跟踪对象的缩略图。
注释
在本教程中,应用程序将拍摄照片以将图像上传到 Azure Blob 存储。 如果从 Unity 编辑器本地运行此功能,请确保已将网络摄像头连接到计算机。
打开 HoloLens 上的应用程序,选择“设置对象”,然后在搜索栏中键入 Car。 在 对象卡片上,选择 “相机 ”按钮。 系统将指示你通过执行 AirTap 动作来拍照。 拍摄照片后,你将看到一条关于正在上传的通知消息;一段时间后,图像应会出现在占位符之前所在的位置。
现在,重新运行应用程序并搜索跟踪的对象。 以前上传的图像应显示为缩略图。
从 Azure Blob 存储中删除映像
在上一部分中,已将新映像上传到 Azure Blob 存储。 在本部分中,你将删除跟踪对象的图像缩略图。
打开 HoloLens 上的应用程序,选择“设置对象”,然后在搜索栏中键入 Car。 在带有缩略图 的对象卡片 上,选择“ 删除 ”按钮。 缩略图由占位符图像替换。
现在,重新运行应用程序并搜索以前删除的缩略图的跟踪对象。 你应只会看到占位符图像。
