Создавайте функции нового поколения с помощью моделей ИИ с помощью Unity Sentis

Мы создали Unity Sentis, чтобы предоставить разработчикам возможность внедрять модели ИИ в игры и приложения. Sentis, находящийся на этапе предварительной открытой бета-версии, позволяет реализовать сложные функции, такие как идентификация объектов, распознавание речи и создание умных неигровых персонажей во всех типах проектов.
После импорта через стандартный файл ONNX эти модели ИИ можно запускать напрямую на всех платформах, поддерживаемых Unity. Это означает, что вы можете запускать большинство моделей ИИ непосредственно в среде выполнения Unity на устройстве пользователя, без необходимости использования облачной инфраструктуры.
Документация по пакету Unity Sentis доступна здесь и может быть загружена через менеджер пакетов. После установки пакета в вашем проекте и выбора модели ИИ, которую вы хотите использовать, интеграция становится простой.
В конечном итоге выбор модели для использования в вашем проекте полностью зависит от вас. Каждая модель зависит от задачи, которую вы пытаетесь решить. Вы можете начать с просмотра интересных моделей на таких торговых площадках, как Hugging Face, Kerasили PyTorch. Вы также можете обучить свою собственную модель, если у вас есть опыт в машинном обучении, или использовать Unity ML-Agents для обучения с подкреплением. Главное требование — модель должна быть преобразована в формат файла ONNX . При необходимости вы можете использовать конвертер ONNX, например TF2ONNX.
Пример кода см. в разделе Импорт модели в документации Sentis.
Загрузка модели в Unity выполняется так же, как и для любого другого ресурса. Просто перетащите его в папку «Активы» окна проекта в редакторе. Sentis автоматически оптимизирует импортированную модель. Затем создайте объект модели времени выполнения.
Пример кода см. в разделе Загрузка модели в документации Sentis.
Создать входные данные довольно просто: просто проверьте форму и размер требуемых входных данных модели в настройках импорта моделей ONNX. Затем вы можете создать тензор из вашего источника данных. Если требуется несколько входных данных, сохраните их все в словаре.
Пример кода см. в разделе Создание входных данных для модели в документации Sentis.
Когда вы будете готовы запустить модель, вам необходимо создать обработчик, который разобьет модель на задачи, которые можно будет запустить на устройстве пользователя (ЦП или ГП). Создать работника можно с помощью этого примера кода.
После настройки вашего рабочего процесса настало время запустить модель ИИ. Здесь вы подключаете входы и выходы модели к коду своей игры, а затем используете профилировщик, чтобы проверить, укладываетесь ли вы в бюджет. Если бюджет слишком велик, вы можете «разрезать» свою модель на несколько кадров или изучить другие варианты настройки производительности в Sentis.
Дополнительную информацию о том, как запустить модель, получить выходные данные и оптимизировать выходные данные, см. в разделе Запуск модели в документации Sentis.
Последний шаг — тестирование и развертывание вашей игры. Сделайте это так же, как вы это обычно делаете на любой платформе Unity Runtime. У вас есть несколько вариантов отправки вашей модели в двоичном файле игры: Его можно встроить в сборку или запустить как потоковый ресурс, чтобы он загружался только при необходимости. Вы также можете рассмотреть возможность шифрования вашей модели в целях безопасности.
Пример кода см. в разделе Шифрование модели в документации Sentis.
В этом примере для начинающих показано, как использовать основы Sentis с нейронными сетями, запустив модель обнаружения объектов для отпирания дверей в запертой комнате. Он использует модель искусственного интеллекта для распознавания рукописных цифр (чисел) под названием MNIST, которая может считывать написанные числа и определять наиболее вероятную выпавшую цифру.
В этом примере Sentis используется для создания бота-оппонента для настольной игры «Отелло», в которой можно настраивать уровень сложности. Он запускает нейронную сеть, обученную правилам игры, и определяет вероятности выигрыша в игре после каждого хода, а затем прогнозирует будущие ходы, которые с наибольшей вероятностью принесут выигрыш. Это более простое решение, чем традиционный подход, использующий сложную эвристику и обход дерева.
В этом примере показано, как интегрировать Sentis в среду дополненной реальности (AR). Он использует нейронную сеть оценки глубины, чтобы позволить объектам реального мира закрывать объекты на игровой сцене. Глубина определяется путем обработки видеокадров с камеры, поэтому это более масштабируемое решение, чем традиционный подход с использованием лидарного датчика, который доступен только в дорогих телефонах.
Эта функция работает на мобильных устройствах с камерой и не требует наличия лидара.
Модели ИИ могут помочь вам создать интересные функции, разработка которых с помощью традиционного кода может быть невозможной или потребовать очень много времени. Варианты использования охватывают все категории моделей ИИ, а применение зависит от выбранных вами моделей. Однако вот несколько примеров случаев, когда Sentis может помочь процессу разработки.
Одной из главных причин, по которой разработчики выбирают Unity, является возможность более простой публикации на нескольких платформах, однако оптимизация все еще может представлять собой проблему. Использование модели масштабирования, такой как Super Resolution от TensorFlow, позволяет вам масштабировать изображения или текстуры с низким разрешением в вашей игре, чтобы достичь производственного качества, или оптимизировать ресурсы только при необходимости на разных устройствах.
Взаимодействие игроков является ключевым фактором в сетевых онлайн-играх, когда речь идет о взаимодействии как с NPC, так и с другими игроками. С помощью модели преобразования речи в текст, такой как Whisperот OpenAI, вы можете преобразовывать живую речь в игровой текст. Вы также можете использовать модель искусственного интеллекта для автоматизации диалога и создания осмысленного взаимодействия между игроками и NPC без ограничений ручного написания скриптов.
Хотя основное внимание в области ИИ уделяется созданию новых функций, мы также видим прекрасные примеры его применения в повышении производительности игр. Одним из примеров этого является использование модели ИИ для улучшения трассировки лучей на мобильных устройствах путем применения масштабирующей модели ИИ GAN для создания галлюцинаций предварительно отрендеренных кадров игровой сцены. С помощью такого приложения можно реализовать функции трассировки пути, такие как преломление света и каустическое освещение областей, в небольших проектах без ущерба для производительности на устройстве пользователя.
Дополненная и виртуальная реальность (VR) также являются прекрасным потенциальным вариантом использования моделей ИИ с Sentis. Например, вы можете использовать модель Ultralytics YOLO в VR для обнаружения объектов в игровой сцене или в дополненной реальности для обнаружения объектов реального мира с камеры устройства. Это может предоставить пользователю чувство сверхзрения, которое возможно только с помощью ИИ.
Unity Sentis теперь доступен бесплатно в открытой бета-версии всем разработчикам Unity, работающим на Unity 2021.3 или выше через менеджер пакетов.
