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

BILL CULLEN Principal Product Manager, AI Products
Nov 29, 2023|9 Мин
Создавайте функции нового поколения с помощью моделей ИИ с помощью Unity Sentis
Эта веб-страница была переведена с помощью машинного перевода для вашего удобства. Мы не можем гарантировать точность или надежность переведенного контента. Если у вас есть вопросы о точности переведенного контента, обращайтесь к официальной английской версии веб-страницы.

Мы создали Unity Sentis, чтобы предоставить разработчикам возможность внедрять модели ИИ в игры и приложения. Sentis, находящийся на этапе предварительной открытой бета-версии, позволяет реализовать сложные функции, такие как идентификация объектов, распознавание речи и создание умных неигровых персонажей во всех типах проектов.

После импорта через стандартный файл ONNX эти модели ИИ можно запускать напрямую на всех платформах, поддерживаемых Unity. Это означает, что вы можете запускать большинство моделей ИИ непосредственно в среде выполнения Unity на устройстве пользователя, без необходимости использования облачной инфраструктуры.

Начало работы с Unity Sentis

Документация по пакету Unity Sentis доступна здесь и может быть загружена через менеджер пакетов. После установки пакета в вашем проекте и выбора модели ИИ, которую вы хотите использовать, интеграция становится простой.

Шаг 1: Найдите поддерживаемую модель ИИ

В конечном итоге выбор модели для использования в вашем проекте полностью зависит от вас. Каждая модель зависит от задачи, которую вы пытаетесь решить. Вы можете начать с просмотра интересных моделей на таких торговых площадках, как Hugging Face, Kerasили PyTorch. Вы также можете обучить свою собственную модель, если у вас есть опыт в машинном обучении, или использовать Unity ML-Agents для обучения с подкреплением. Главное требование — модель должна быть преобразована в формат файла ONNX . При необходимости вы можете использовать конвертер ONNX, например TF2ONNX.

Пример кода см. в разделе Импорт модели в документации Sentis.

Шаг 2: Загрузите свою модель в Unity

Загрузка модели в Unity выполняется так же, как и для любого другого ресурса. Просто перетащите его в папку «Активы» окна проекта в редакторе. Sentis автоматически оптимизирует импортированную модель. Затем создайте объект модели времени выполнения.

Пример кода см. в разделе Загрузка модели в документации Sentis.

Шаг 3: Создать входные данные и выводы

Создать входные данные довольно просто: просто проверьте форму и размер требуемых входных данных модели в настройках импорта моделей ONNX. Затем вы можете создать тензор из вашего источника данных. Если требуется несколько входных данных, сохраните их все в словаре.

Пример кода см. в разделе Создание входных данных для модели в документации Sentis.

Шаг 4: Запустите и оптимизируйте свою модель

Когда вы будете готовы запустить модель, вам необходимо создать обработчик, который разобьет модель на задачи, которые можно будет запустить на устройстве пользователя (ЦП или ГП). Создать работника можно с помощью этого примера кода.

После настройки вашего рабочего процесса настало время запустить модель ИИ. Здесь вы подключаете входы и выходы модели к коду своей игры, а затем используете профилировщик, чтобы проверить, укладываетесь ли вы в бюджет. Если бюджет слишком велик, вы можете «разрезать» свою модель на несколько кадров или изучить другие варианты настройки производительности в Sentis.

Дополнительную информацию о том, как запустить модель, получить выходные данные и оптимизировать выходные данные, см. в разделе Запуск модели в документации Sentis.

Шаг 5: Протестируйте и разверните свою модель

Последний шаг — тестирование и развертывание вашей игры. Сделайте это так же, как вы это обычно делаете на любой платформе Unity Runtime. У вас есть несколько вариантов отправки вашей модели в двоичном файле игры: Его можно встроить в сборку или запустить как потоковый ресурс, чтобы он загружался только при необходимости. Вы также можете рассмотреть возможность шифрования вашей модели в целях безопасности.

Пример кода см. в разделе Шифрование модели в документации Sentis.

Образцы проектов
Создание распознавания цифр с помощью ИИ

В этом примере для начинающих показано, как использовать основы Sentis с нейронными сетями, запустив модель обнаружения объектов для отпирания дверей в запертой комнате. Он использует модель искусственного интеллекта для распознавания рукописных цифр (чисел) под названием MNIST, которая может считывать написанные числа и определять наиболее вероятную выпавшую цифру.

Создание противника для настольной игры с искусственным интеллектом

В этом примере Sentis используется для создания бота-оппонента для настольной игры «Отелло», в которой можно настраивать уровень сложности. Он запускает нейронную сеть, обученную правилам игры, и определяет вероятности выигрыша в игре после каждого хода, а затем прогнозирует будущие ходы, которые с наибольшей вероятностью принесут выигрыш. Это более простое решение, чем традиционный подход, использующий сложную эвристику и обход дерева.

Создание дополненной реальности с оценкой глубины на основе искусственного интеллекта

В этом примере показано, как интегрировать Sentis в среду дополненной реальности (AR). Он использует нейронную сеть оценки глубины, чтобы позволить объектам реального мира закрывать объекты на игровой сцене. Глубина определяется путем обработки видеокадров с камеры, поэтому это более масштабируемое решение, чем традиционный подход с использованием лидарного датчика, который доступен только в дорогих телефонах.

Эта функция работает на мобильных устройствах с камерой и не требует наличия лидара.

Дополнительные варианты использования

Модели ИИ могут помочь вам создать интересные функции, разработка которых с помощью традиционного кода может быть невозможной или потребовать очень много времени. Варианты использования охватывают все категории моделей ИИ, а применение зависит от выбранных вами моделей. Однако вот несколько примеров случаев, когда Sentis может помочь процессу разработки.

Масштабирование изображений/активов

Одной из главных причин, по которой разработчики выбирают Unity, является возможность более простой публикации на нескольких платформах, однако оптимизация все еще может представлять собой проблему. Использование модели масштабирования, такой как Super Resolution от TensorFlow, позволяет вам масштабировать изображения или текстуры с низким разрешением в вашей игре, чтобы достичь производственного качества, или оптимизировать ресурсы только при необходимости на разных устройствах.

Распознавание речи

Взаимодействие игроков является ключевым фактором в сетевых онлайн-играх, когда речь идет о взаимодействии как с NPC, так и с другими игроками. С помощью модели преобразования речи в текст, такой как Whisperот OpenAI, вы можете преобразовывать живую речь в игровой текст. Вы также можете использовать модель искусственного интеллекта для автоматизации диалога и создания осмысленного взаимодействия между игроками и NPC без ограничений ручного написания скриптов.

Оптимизация графики

Хотя основное внимание в области ИИ уделяется созданию новых функций, мы также видим прекрасные примеры его применения в повышении производительности игр. Одним из примеров этого является использование модели ИИ для улучшения трассировки лучей на мобильных устройствах путем применения масштабирующей модели ИИ GAN для создания галлюцинаций предварительно отрендеренных кадров игровой сцены. С помощью такого приложения можно реализовать функции трассировки пути, такие как преломление света и каустическое освещение областей, в небольших проектах без ущерба для производительности на устройстве пользователя.

Распознавание объектов дополненной и VR

Дополненная и виртуальная реальность (VR) также являются прекрасным потенциальным вариантом использования моделей ИИ с Sentis. Например, вы можете использовать модель Ultralytics YOLO в VR для обнаружения объектов в игровой сцене или в дополненной реальности для обнаружения объектов реального мира с камеры устройства. Это может предоставить пользователю чувство сверхзрения, которое возможно только с помощью ИИ.

Unity Sentis теперь доступен бесплатно в открытой бета-версии всем разработчикам Unity, работающим на Unity 2021.3 или выше через менеджер пакетов.