使用Unity Sentis 通过 AI 模型创建下一代功能

BILL CULLEN Principal Product Manager, AI Products
Nov 29, 2023|9 Min
使用Unity Sentis 通过 AI 模型创建下一代功能
为方便起见,此网页已进行机器翻译。我们无法保证翻译内容的准确性或可靠性。如果您对翻译内容的准确性有疑问,请参阅此网页的官方英文版本。

我们创建了 Unity Sentis,让开发人员能够将 AI 模型引入 游戏 和应用程序。Sentis 目前处于预发布公开测试阶段,可在所有类型的项目中使用对象识别、语音识别和智能 NPC 等复杂功能。

一旦通过 ONNX 文件标准导入,这些 AI 模型就可以在所有支持 Unity 的平台上直接运行。这意味着您可以在用户设备上的Unity Runtime 中直接运行大多数 AI 模型,而无需云基础设施。

Unity Sentis 入门

Unity Sentis 包文档可 在此处获得 ,并通过 包管理器下载。一旦在您的项目中安装了该包并且您拥有了想要使用的 AI 模型,集成就很简单了。

步骤 1:查找受支持的 AI 模型

最终,您选择在项目中使用的模型完全取决于您。每个模型都依赖于您要解决的任务。您可以先在市场上浏览一些有趣的模型,例如 Hugging FaceKerasPyTorch。如果您有机器学习背景,您还可以训练自己的模型,或者使用 Unity ML-Agents 满足强化学习需求。主要要求是模型必须转换为 ONNX 文件格式。如果需要,您可以使用像 TF2ONNX这样的 ONNX 转换器。

请参阅 Sentis 文档中的 导入模型 以获取代码示例。

第 2 步:将模型加载到Unity中

将模型加载到Unity中需要遵循与任何资产相同的流程。只需将其拖放到编辑器内项目窗口的 Assets 文件夹中即可。Sentis 将自动优化导入的模型。然后,创建一个运行时模型对象。

请参阅 Sentis 文档中的 加载模型 以获取代码示例。

步骤3:创建输入和推理

创建输入相当简单,只需在 ONNX 模型导入设置中检查所需模型输入的形状和大小。然后您可以从数据源创建一个张量。如果需要多个输入,则将它们全部存储在字典中。

请参阅 Sentis 文档中的 为模型创建输入 以获取代码示例。

步骤4:运行并优化您的模型

当您准备运行模型时,您需要创建一个工作器,将模型分解为可以在用户设备(CPU 或 GPU)上运行的任务。使用 此代码示例可以创建一个工作者。

一旦你的工作者设置完毕,就可以运行你的AI模型了。在这里,您将模型的输入和输出连接到您的游戏代码,然后使用分析器查看是否在预算之内。如果占用的预算太多,您可以将模型“切分为”多个帧,或者探索 Sentis 中的其他性能调整选项。

有关如何运行模型、获取输出和优化输出的更多信息,请参阅 Sentis 文档中的 运行模型

步骤5:测试并部署您的模型

最后一步是测试和部署您的游戏。像在任何Unity Runtime 平台上通常那样执行此操作。你有几种在游戏二进制文件中运送模型的选项:它可以嵌入在构建中,或者您可以将其作为流资产运行,以便仅在需要时下载。您还可以考虑出于安全原因加密您的模型。

请参阅 Sentis 文档中的 加密模型 以获取代码示例。

项目示例
利用人工智能构建数字检测

此初学者示例 展示了如何通过运行对象检测模型来解锁上锁的房间中的门,从而将 Sentis 的基础知识与神经网络结合使用。它运行一个名为 MNIST 的手写数字检测 AI 模型,该模型可以读取书面数字并识别出最可能的数字。

打造一个由人工智能驱动的棋盘游戏对手

此示例 使用 Sentis 为名为 Othello 的棋盘游戏构建机器人对手,该游戏具有可配置的难度。它运行一个根据游戏规则训练的神经网络,确定每次移动后游戏获胜的概率,然后预测最有可能获胜的未来移动。与使用复杂启发式和树遍历的传统方法相比,这是一个更简单的解决方案。

利用人工智能深度估计创造 AR 体验

此示例 展示了如何将 Sentis 集成到增强现实 (AR) 体验中。它使用深度估计神经网络让现实世界的物体遮挡游戏场景中的物体。深度是通过处理来自摄像头的视频帧来确定的,因此与使用仅限于昂贵手机的激光雷达传感器的传统方法相比,它是一种更具可扩展性的解决方案。

这适用于带有摄像头的移动设备,不需要激光雷达传感器。

其他用例

人工智能模型可以帮助您创建引人入胜的功能,而这些功能使用传统代码可能无法实现或非常耗时。用例涵盖所有 类别的 AI 模型,应用取决于您选择实施的模型。不过,这里有一些 Sentis 可以协助开发过程的例子。

图像/资产升级

开发人员选择Unity 的一个重要原因是能够更轻松地在多个平台上发布 - 但优化仍然是一个挑战。使用 TensorFlow 的 Super Resolution 等升级模型,您可以升级游戏中的低分辨率图像或纹理以达到生产质量,或者仅在需要时帮助在不同设备上优化资产。

语音识别

当涉及到与 NPC 和其他玩家互动时,玩家互动是联网在线游戏的关键。借助 OpenAI 的 Whisper等语音转文本模型,您可以将实时语音转换为游戏内文本。您还可以引入 AI 模型来自动化对话并在玩家和 NPC 之间创建有意义的互动,而不受手动脚本的限制。

图形优化

虽然人工智能的重点是创造新功能,但我们在提高游戏性能方面也看到了很好的应用。其中一个例子是使用 AI 模型来改进移动设备上的光线追踪,方法是使用升级的 GANAI 模型来产生游戏场景的预渲染帧的幻觉。使用这样的应用程序,您可以在较小的项目中实现路径追踪功能,例如光折射和焦散区域光,而不会影响用户设备的性能。

AR和VR对象识别

增强现实和虚拟现实 (VR) 也是将 AI 模型与 Sentis 结合使用的巨大潜在用例。例如,您可以在VR中使用 UltralyticsYOLO 模型 来检测游戏场景中的物体,或者在 AR 中使用设备摄像头馈送来检测现实世界的物体。这可以为用户提供只有人工智能才能实现的超级视觉感。

Unity Sentis 现已通过包管理器免费向所有使用Unity 2021.3 或更高版本的Unity开发人员提供公开测试版。