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

Завершено

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

Заметка

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

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

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

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

Функции

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

Облачные службы Azure

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

Служба хранилища Azure

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

Azure Custom Vision

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

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

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

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

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

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

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

Импорт ресурсов учебника

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

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

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

    скриншот окон иерархии Unity, сцены и проекта после импорта учебных ресурсов.

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

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

  1. В окне проекта перейдите к папке Активы>MRTK.Tutorials.AzureCloudServices>Prefabs>Manager. Удерживая кнопку CTRL, выберите SceneController, RootMenu и DataManager, чтобы выбрать три префабы:

    снимок экрана Unity с выбранными префабами SceneController, RootMenu и DataManager.

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

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

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

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

    снимок экрана Unity с добавленными и всё ещё выбранными префабами SceneController, RootMenu и DataManager.

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

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

    снимок экрана Unity с выбранным объектом RootMenu.

    Совет

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

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

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

Подключение объектов

  1. В окне иерархии выберите объект DataManager:

    снимок экрана Unity с выбранным объектом DataManager.

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

    Снимок экрана Unity с добавленным прослушивателем событий DataManager.

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

    скриншот Unity с добавленным действием события DataManager.

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

    снимок экрана Unity с выбранным Параметром SceneController.

  5. В настоящее время существует несколько незапущенных полей; давайте изменим это. Переместите объект DataManager из иерархии в поле Data Manager, а затем переместите RootMenu>MainMenu GameObject из иерархии в поле Main Menu.

    снимок экрана Unity с настроенным SceneController.

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

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

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

Заметка

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

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

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

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

    снимок экрана открытых параметров проекта Unity.

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

    снимок экрана параметров публикации Unity.

  3. В параметрах публикациипрокрутите вниз до раздела возможности и дважды проверьте, включены ли возможности InternetClient, Microphoneи SpatialPerception (которые вы включили при создании проекта в начале руководства). Затем включите возможности InternetClientServer, PrivateNetworkClientServerи веб-камера:

    снимок экрана: возможности Unity

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

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

Совет (assuming context refers to advice)

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

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

Осторожность

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

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

  • Микрофон
  • Фотоаппарат

Эти возможности необходимы для правильного функционирования служб, таких как Custom Vision.