Упражнение. Облачные службы Azure для HoloLens 2

Завершено

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

Примечание.

Эта серия модулей посвящена HoloLens 2, но учитывая кросс-платформенный характер Unity, большая часть уроков также будет применяться к приложениям для настольных ПК и мобильных устройств.

Цели приложения

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

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

Функции

  • Базовое управление данными и изображениями.
  • Обучение и обнаружение изображений.
  • Хранение пространственного положения и инструкций.

Oблачныe службы Azure2

Вы будете использовать следующие облачные службы Azure для реализации приведенных выше функций:

Хранилище Azure

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

Пользовательское визуальное распознавание Azure

С помощью Azure AI Пользовательское визуальное распознавание (часть служб ИИ Azure) можно связать набор изображений с отслеживаемых объектов, обучить модель машинного обучения на созданном наборе и обнаружить отслеживаемые объекты.

Пространственные привязки Azure.

Чтобы сохранить расположение отслеживаемого объекта и указать его, вы будете использовать пространственные привязки Azure.

Создание и подготовка проекта Unity

В этом разделе вы будете создавать новый проект Unity и готовить его к разработке MRTK.

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

  1. Создание проекта Unity и присвоение ему подходящего имени, например Учебники по Azure Cloud
  2. Переключение платформы сборки.
  3. Импорт требуемых ресурсов TextMeshPro.
  4. Импорт набора средств для Смешанной реальности (MRTK).
  5. Настройка проекта Unity.
  6. Создание и настройка сцены и указание подходящего имени сцены, например AzureCloudServices

Импорт ресурсов руководства

  1. AzurespatialAnchors Добавьте пакет SDK в проект. Чтобы добавить пакет, следуйте инструкциям из этого руководства.

  2. Загрузите и импортируйте следующие пользовательские пакеты Unity в том порядке, в котором они перечислены:

    После импорта ресурсов учебника окно Project должно выглядеть следующим образом:

    Screenshot of Unity Hierarchy, Scene, and Project windows after importing the tutorial assets.

Подготовка сцены

В этом разделе вы будете готовить сцену, добавляя отдельные префабы из руководства.

  1. В окне "Проект" последовательно выберите Ресурсы > MRTK.Tutorials.AzureCloudServices>Префабы>Диспетчер. Удерживая нажатой клавишу CTRL, выделите SceneController, RootMenu и DataManager, чтобы выбрать три префаба.

    Screenshot of Unity with SceneController, RootMenu, and DataManager prefabs selected.

    SceneController (prefab) (SceneController — заготовка) содержит два скрипта: SceneController (script) (SceneController — скрипт) и UnityDispatcher (script) (UnityDispatcher — скрипт). Компонент скрипта SceneController содержит несколько функций пользовательского интерфейса и упрощает функцию захвата фотографий, а UnityDispatcher — это вспомогательный класс, позволяющий выполнять действия в основном потоке Unity.

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

    DataManager (префаб) отвечает за взаимодействие с хранилищем Azure. Он будет описан в следующем учебнике.

  2. Теперь, когда три префафа по-прежнему выбраны, перетащите их в окно иерархии, чтобы добавить их в сцену:

    Screenshot of Unity with newly added SceneController, RootMenu and DataManager prefabs still selected.

  3. Чтобы сосредоточиться на объектах в сцене, можно дважды щелкнуть объект RootMenu , а затем уменьшить немного. Если объект RootMenu по-прежнему выбран, измените его значения в компоненте преобразования следующим образом:

    Позиция: X = 0,0, Y = 1.6, Z = 0,6

    Screenshot of Unity with RootMenu object selected.

    Совет

    Если вы найдете большие значки в сцене отвлекающих (например, большие обрамленные значки "T"), вы можете скрыть их , переключив Gizmos на положение вне.

Настройка сцены

В этом разделе описано, как подключить SceneManager, DataManager и RootMenu , чтобы создать рабочую сцену для следующего руководства по интеграции службы хранилища Azure.

Соединение объектов

  1. В окне Hierarchy (Иерархия) выберите объект DataManager:

    Screenshot of Unity with DataManager object selected.

  2. В окне инспектора найдите компонент DataManager (Script). Вы увидите пустой слот в событии On Data Manager Ready (). Перетащите объект SceneController из окна иерархии в событие On Data Manager Ready ().

    Screenshot of Unity with DataManager event listener added.

  3. Раскрывающееся меню события теперь активно. Выберите раскрывающееся меню, перейдите к SceneController и выберите параметр Init () в подменю.

    Screenshot of Unity with DataManager event action added.

  4. В окне иерархии выберите объект SceneController. Компонент SceneController (script) вы найдете в инспекторе.

    Screenshot of Unity with SceneController selected.

  5. Теперь появилось несколько незаполненных полей. Давайте изменим это. Переместите объект DataManager из иерархии в поле диспетчера данных, а затем переместите rootMenu MainMenu> GameObject из иерархии в поле "Главное меню".

    Screenshot of Unity with SceneController configured.

  6. В окне иерархии выберите объект MRTK XR Rig . Убедитесь, что дочерний объект службы "Речь MRTK" включен. Это позволяет открыть меню, сказав "Открыть меню".

  7. Теперь сцена подготовлена для работы со следующими учебниками. Не забудьте сохранить это в проекте.

Подготовка конвейера сборки проекта

Примечание.

Сборка и тестирование на HoloLens 2 не является обязательным. Для тестирования можно использовать HoloLens 2 Emulator, если нет устройства HoloLens. Устройства можно приобрести на сайте HoloLens. com.

Прежде чем завершить сцену, давайте подготовим проект для holoLens 2.

1. Добавление других необходимых возможностей

  1. В меню Unity выберите "Изменить>проект" Параметры..., чтобы открыть окно "Проект Параметры".

    Screenshot of Unity open Project Settings.

  2. В окне "Проект Параметры" выберите проигрыватель, а затем выполните публикацию Параметры:

    Screenshot of Unity Publishing Settings.

  3. В области Параметры публикации прокрутите экран вниз до раздела Возможности и убедитесь в том, что возможности InternetClient, Микрофон и SpatialPerception (которые вы включили при создании проекта в начале учебника) включены. Теперь включите возможности InternetClientServer (Сервер интернет-клиента), PrivateNetworkClientServer (Сервер клиента частной сети) и Webcam (Веб-камера):

    Screenshot of Unity Capabilities

2. Развертывание приложения в HoloLens 2

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

Совет

Напоминание о том, как создать и развернуть проект Unity в HoloLens 2, см . в руководствах по началу работы. Создание и развертывание инструкций приложения .

3. Запустите приложение в HoloLens 2 и следуйте инструкциям в приложении

Внимание

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

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

  • Микрофон
  • Камера

Эти возможности необходимы для правильной работы таких служб, как Пользовательское визуальное распознавание.