# 使用来自 Hugging Face 的 Unity Sentis 模型

[Unity 3D](https://unity.com/) 是世界上最受欢迎的游戏引擎之一。[Unity Sentis](https://unity.com/products/sentis) 是运行在 Unity 2023 及以上版本上的推理引擎。它是一个 API，允许你利用硬件加速，轻松地将神经网络模型集成并运行在你的游戏或应用中。由于 Unity 可以导出到许多不同的形态，包括 PC、移动设备和游戏主机，这意味着这是一种在多种不同硬件上运行神经网络模型的便捷方式。

## 在 Hub 中探索 Sentis 模型
您可以在[模型页面](https://huggingface.co/models?library=unity-sentis)左侧进行筛选，以查找`unity-sentis`模型。

Hub 中所有的 Sentis 模型都附带了代码和说明，方便您快速开始在 Unity 中使用该模型。`unity` 命名空间下的所有 Sentis 模型（例如 [unity/sentis-yolotinyv7](https://huggingface.co/unity/sentis-yolotinyv7)）均已通过验证，可确保在 Unity 中正常运行。

如需了解有关使用 Sentis 的更多详细信息，您可以阅读其[文档](https://docs.unity3d.com/Packages/com.unity.sentis@latest)。如需获取其他 Sentis 用户的帮助，您可以在其[讨论论坛](https://discussions.unity.com/c/ai-beta/sentis)中提问。

## 文件类型
每个仓库将包含几种类型的文件：

* ``sentis`` 文件：这些是主要的模型文件，包含在 Unity 上运行的神经网络。
* ``ONNX`` 文件：这是一种替代格式，您可以将其与 Sentis 文件一起包含，或用它来替代 Sentis 文件。它对于使用 [Netron](https://github.com/lutzroeder/netron) 等第三方工具进行可视化可能很有用。
* ``cs`` 文件：这些是 C# 文件，包含在 Unity 上运行模型的代码。
* ``info.json``：此文件包含有关仓库中文件的信息。
* 数据文件。这些是运行模型所需的其他文件。它们可能包括词汇表文件、类别名称列表等。一些典型文件的扩展名为 ``json`` 或 ``txt``。
* ``README.md``。这是模型卡片，包含如何使用该模型的说明以及其他相关信息。

## 运行模型
请务必参考模型卡片上的说明。预期您已具备一些 Unity 知识以及基础的 C# 知识。

1. 打开 Unity 2023 或更高版本并创建新场景。

2. 从 [包管理器](https://docs.unity3d.com/Manual/upm-ui-quick.html) 中安装 ``com.unity.sentis`` 包。

3. 下载您的模型文件（``*.sentis``）和数据文件，并将它们放入 StreamingAssets 文件夹中，该文件夹是 Assets 文件夹内的一个子文件夹。（如果该文件夹不存在，您可以创建它）。

4. 将您的 C# 文件放置在场景中的某个对象上，例如 Main Camera。

5. 请参阅模型卡片，查看是否需要在场景中创建其他对象。

在大多数情况下，我们只提供基本实现，帮助你快速上手。如何发挥创意、探索更多用法，取决于你。例如，你可以将两个或更多模型组合起来，实现一些有趣的功能。

## 共享您自己的 Sentis 模型
我们鼓励您在 Hugging Face 上分享您自己的 Sentis 模型。这些模型可以是您自行训练的，也可以是您已转换为 [Sentis 格式](https://docs.unity3d.com/Packages/com.unity.sentis@1.3/manual/serialize-a-model.html) 并经过测试、可在 Unity 中运行的模型。

请为您上传的每个仓库提供 Sentis 格式的模型。这可以额外验证模型能否在 Unity 中运行，同时也是大型模型的推荐格式。您也可以包含模型文件的原始 ONNX 版本。

提供一个包含最小化实现的 C# 文件。例如，图像处理模型应包含展示如何为输入准备图像以及如何从输出构建图像的代码。或者，您可以链接到一些外部示例代码。这将方便其他人下载并在 Unity 中使用该模型。

提供运行模型所需的任何数据文件。例如，词汇表文件。

最后，请提供一个 ``info.json`` 文件，其中列出项目的文件。这有助于统计下载量。``info.json`` 内容的一些示例如下：

```
{
   "code": [ "mycode.cs"], 
   "models": [ "model1.sentis", "model2.sentis"],
   "data": [ "vocab.txt" ]
}
```

或者，如果您的代码示例是外部的：

```
{
   "sampleURL": [ "http://sampleunityproject"], 
   "models": [ "model1.sentis", "model2.sentis"]
}
```

## 附加信息
我们还提供了一些完整的[示例项目](https://github.com/Unity-Technologies/sentis-samples)，帮助您开始使用 Sentis。

