# Использование моделей Unity Sentis из Hugging Face

[Unity 3D](https://unity.com/) — один из самых популярных игровых движков в мире. [Unity Sentis](https://unity.com/products/sentis) — это движок инференса, работающий на Unity 2023 и выше. Это API, которое позволяет легко интегрировать и запускать модели нейронных сетей в вашей игре или приложении с использованием аппаратного ускорения. Поскольку Unity поддерживает экспорт во множество различных форм-факторов, включая ПК, мобильные устройства и консоли, это простой способ запускать модели нейронных сетей на самых разных типах оборудования.

## Исследование моделей Sentis в Hub
Модели `unity-sentis` можно найти, применив фильтр слева на [странице моделей](https://huggingface.co/models?library=unity-sentis).

Все модели Sentis в Hub поставляются с кодом и инструкциями, которые позволяют легко начать работу с моделью в Unity. Все модели Sentis в пространстве имён `unity` (например, [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 или вместо них. Он может быть полезен для визуализации с помощью сторонних инструментов, таких как [Netron](https://github.com/lutzroeder/netron).
* ``cs`` файл: это файлы C#, содержащие код для запуска модели в Unity.
* ``info.json``: этот файл содержит информацию о файлах в репозитории.
* Файлы данных. Это другие файлы, необходимые для запуска модели. Они могут включать файлы словаря, списки названий классов и т. д. Типичные файлы имеют расширения ``json`` или ``txt``.
* ``README.md``. Это карточка модели. В ней содержатся инструкции по использованию модели и другая полезная информация.

## Запуск модели
Всегда следуйте инструкциям на карточке модели. Ожидается, что вы обладаете некоторыми знаниями Unity и базовыми знаниями C#.

1. Откройте Unity 2023 или более новую версию и создайте новую сцену.

2. Установите пакет ``com.unity.sentis`` из [менеджера пакетов](https://docs.unity3d.com/Manual/upm-ui-quick.html).

3. Скачайте файлы модели (``*.sentis``) и файлы данных и поместите их в папку StreamingAssets, которая является подпапкой внутри папки Assets. (Если эта папка не существует, вы можете создать её).

4. Разместите ваш файл C# на объекте в сцене, например на Main Camera.

5. См. карточку модели, чтобы узнать, нужно ли создавать в сцене какие-либо другие объекты.

В большинстве случаев мы предоставляем только базовую реализацию, чтобы вы могли начать работу. Придумать творческое применение — ваша задача. Например, вы можете объединить две или более модели, чтобы делать интересные вещи.

## Обмен собственными моделями Sentis
Мы рекомендуем делиться собственными моделями Sentis на Hugging Face. Это могут быть модели, которые вы обучили самостоятельно, или модели, которые вы конвертировали в [формат 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.

