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

В этом кратком руководстве показано, как создать приложение HoloLens с использованием службы Объектные привязки Azure в C++/WinRT и DirectX. Объектные привязки — это управляемая облачная служба, которая преобразует трехмерные ресурсы в модели искусственного интеллекта, которые обеспечивают взаимодействие с смешанной реальностью с поддержкой объектов для 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 (Обновление и безопасность), а затем выберите Проверить обновления.

создать учетную запись Объектных привязок;

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

  1. Перейдите на портал Azure и выберите Создать ресурс.

    Create a new resource

  2. Найдите ресурс Объектные привязки.

    Выполните поиск строки "Объектные привязки".

    Select the Object Anchors Resource

    В ресурсе "Привязки объектов" в результатах поиска выберите "Создать -> Привязки объектов".

    Create an Object Anchors Resource

  3. В диалоговом окне Учетная запись Объектных привязок сделайте следующее.

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

    Enter Object Anchors resource account details

    Выберите Создать, чтобы начать создание ресурса.

  4. После создания ресурса выберите команду Перейти к ресурсу.

    Go to resource

  5. На странице "Обзор" сделайте следующее.

    Запишите Домен учетной записи. Оно понадобится вам позже.

    Copy the account domain for your Object Anchors resource

    Запишите ИД учетной записи. Оно понадобится вам позже.

    Copy the account ID for your Object Anchors resource

    Перейдите на страницу Ключи доступа и запишите Первичный ключ. Оно понадобится вам позже.

    Copy the account key for your Object Anchors resource

Добавление модели

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

Если приложение HoloLens включено и подключено к устройству разработки (ПК), выполните следующие действия, чтобы загрузить модель в папку Трехмерные объекты на вашем HoloLens:

  1. Выберите и скопируйте модели, с которыми вы хотите работать, нажав сочетание клавиш CTRL и C (Ctrl + C).

  2. Чтобы запустить Проводник, нажмите клавишу Windows и E (Win + E). HoloLens отображается в списке с другими дисками и папками на левой панели.

    file explorer

  3. Нажмите ссылку HoloLens, чтобы отобразить хранилище на устройстве HoloLens на правой панели.

    open HoloLens internal storage

  4. В проводник перейдите к внутренним служба хранилища > трехмерных объектов. Теперь вставьте свои модели в папку Трехмерные объекты, нажав сочетание клавиш Ctrl и V (Ctrl + V).

    paste models in 3D Objects folder

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

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

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

cd ./azure-object-anchors

Откройте краткие руководства,приложения/directx/DirectXAoASampleApp.sln в Visual Studio.

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

Настройка сведений об учетной записи

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

Открытие assets\ObjectAnchorsConfig.json.

Найдите поле AccountId и замените Set me идентификатором учетной записи.

Найдите поле AccountKey и замените Set me ключом учетной записи.

Найдите поле AccountDomain и замените Set me доменом учетной записи.

Теперь выполните сборку проекта AoaSampleApp. Для этого щелкните проект правой кнопкой мыши и выберите пункт Сборка.

Screenshot shows configuring Visual Studio project to deploy.

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

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

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

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

Screenshot shows the context menu for the project with Deploy selected.

Перед запуском приложения необходимо передать объектную модель, например chair.ou, в папку 3D-объектов в HoloLens. Если вы этого не сделали, следуйте инструкциям в разделе "Отправка модели ".

Чтобы запустить и отладить приложение, выберите ">Начать отладку".

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

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

Photograph shows a chair with the bounding box, point cloud, and search area.

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

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

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

Следующие шаги