Краткое руководство. Создание приложения HoloLens с использованием службы "Объектные привязки Azure" в C++/WinRT и DirectX

В этом кратком руководстве показано, как создать приложение HoloLens с использованием службы Объектные привязки Azure в C++/WinRT и DirectX. "Объектные привязки Azure" — это управляемая облачная служба, которая преобразует трехмерные ресурсы в модели искусственного интеллекта, обеспечивая работу с объектами в смешанной реальности для HoloLens. По завершении работы с руководством у вас будет приложение HoloLens, которое может обнаруживать объекты и определять их пространственное расположение в приложении Holographic DirectX 11 (универсальная платформа Windows).

Вы узнаете, как:

  • создать и загрузить неопубликованное приложение HoloLens;
  • обнаружить объект и визуализировать его модель;

Если у вас еще нет подписки Azure, создайте бесплатную учетную запись Azure, прежде чем начать работу.

Предварительные требования

В рамках этого краткого руководства вам потребуются:

  • Физический объект в среде и его трехмерная модель (CAD-модель или отсканированный объект).
  • Компьютер Windows со следующими установленными компонентами:
    • Git для Windows
    • Visual Studio 2019 с рабочей нагрузкой Разработка приложений для универсальной платформы Windows и компонент Пакет SDK для Windows 10 (10.0.18362.0 или более поздняя версия) .
  • Устройство HoloLens 2 с актуальными обновлениями и включенным режимом разработчика.
    • Чтобы обновить HoloLens до последнего выпуска, откройте приложение Параметры, перейдите в раздел Update & Security (Обновление и безопасность), а затем выберите Проверить обновления.

Открытие примера проекта

Клонируйте репозиторий примеров, выполнив следующие команды:

git clone https://github.com/Azure/azure-object-anchors.git

cd ./azure-object-anchors

Откройте quickstarts/apps/directx/DirectXAoaSampleApp.sln в Visual Studio.

Укажите для параметра Конфигурация решения значение Выпуск, а для параметра Solution Platform (Платформа решения) задайте значение ARM64 и выберите элемент Устройство в списке целевых вариантов развертывания. Затем выполните сборку проекта AoaSampleApp. Для этого щелкните проект правой кнопкой мыши и выберите пункт Сборка.

Настройка проекта Visual Studio для развертывания

Развертывание приложения на устройстве HoloLens

После успешной компиляции примера проекта можно развернуть приложение на устройстве HoloLens.

Включите устройство HoloLens, войдите и подключите его к ПК с помощью USB-кабеля. Убедитесь, что для целевого объекта развертывания выбрано значение Устройство (см. выше).

Щелкните проект AoaSampleApp правой кнопкой мыши и во всплывающем меню выберите пункт Развернуть, чтобы установить приложение. Если в окне вывода Visual Studio ошибки не отображаются, приложение будет установлено на устройстве HoloLens.

Развертывание приложения на устройстве HoloLens

Перед запуском приложения необходимо отправить объектную модель. Выполните инструкции из раздела Прием объектной модели и обнаружение ее экземпляра ниже.

Чтобы запустить и отладить приложение, выберите элементы Отладка > Начать отладку. Чтобы приостановить работу приложения, выберите элемент Остановить отладку или нажмите клавиши SHIFT+F5.

Прием объектной модели и обнаружение ее экземпляра

Для запуска примера приложения необходимо создать объектную модель. Предположим, что у вас уже есть CAD-модель или отсканированная модель трехмерной сетки для объекта в пространстве. Сведения о создании модели см. в статье Краткое руководство. Создание модели Объектных привязок из трехмерной модели.

Скачайте эту модель (в нашем случае это файл chair.ou) на компьютер. Затем на портале устройств HoloLens выберите элементы Система > Проводник > LocalAppData > AoaSampleApp > LocalState и нажмите кнопку Обзор... Выберите файл модели (например, chair.ou) и нажмите кнопку Отправить. В локальном кэше должен отобразиться файл модели.

Отправка модели на портале

На устройстве HoloLens запустите приложение AoaSampleApp (если оно было открыто, закройте приложение и снова откройте его). Подойдите ближе (на расстояние до двух метров) к целевому объекту (кресло) и отсканируйте его, посмотрев на объект с разных позиций. Вы должны увидеть розовый ограничивающий прямоугольник вокруг объекта с желтыми точками, которые отображаются ближе к поверхности объекта. Это означает, что объект был обнаружен.

Обнаружение кресла

Рисунок: обнаруженное кресло с ограничивающим прямоугольником (розовый), облаком точек (желтые) и областью поиска (большой желтый прямоугольник).

Вы можете определить область поиска для объекта в приложении, коснувшись объекта правой или левой рукой. Область обнаружения можно переключить, выбрав сферу с радиусом 2 м, ограничивающий прямоугольник размером 4 кубических метра или усеченную пирамиду представления. Для больших объектов, например автомобилей, лучше всего выбрать усеченную пирамиду представления, стоя перед объектом на расстоянии двух метров. Каждый раз при изменении области поиска приложение будет удалять отслеживаемые экземпляры и искать их заново в новой области.

Это приложение может одновременно отслеживать несколько объектов. Для этого нужно отправить несколько моделей в папку LocalState и задать область поиска, охватывающую все целевые объекты. Обнаружение и отслеживание нескольких объектов может занять больше времени.

Приложение полностью сопоставляет трехмерную модель с физическим представлением объекта. С помощью жеста касания левой рукой пользователь может включить режим отслеживания с высокой точностью для вычисления более точного пространственного расположения. Это все еще экспериментальная функция, которая потребляет много системных ресурсов и может привести к увеличению дрожания в предполагаемом расположении. Чтобы вернуться в обычный режим отслеживания, повторите касание левой рукой.

Дальнейшие действия