Упражнение. Облачные службы 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, за исключением инструкций по сборке приложения на устройстве, включая следующие действия.
- Создание проекта Unity и предоставление подходящего имени, например Учебники по облачным службам Azure
- Переключение платформы сборки
- Импортирование ресурсов TextMeshPro Essential
- Импорт набора средств смешанной реальности
- Настройка проекта Unity
- Создание и настройка сцены и указание подходящего имени сцены, например AzureCloudServices
Импорт ресурсов учебника
Добавьте пакет SDK
AzurespatialAnchors
в проект. Чтобы добавить пакет, следуйте этому руководству.Скачайте и импортируйте следующие пользовательские пакеты Unity в том порядке, в который они перечислены:
После импорта ресурсов учебника окно Project должно выглядеть следующим образом:
Подготовка сцены
В этом разделе вы подготовите сцену, добавив некоторые префабы из учебного руководства.
В окне проекта перейдите к папке Активы>MRTK.Tutorials.AzureCloudServices>Prefabs>Manager. Удерживая кнопку CTRL, выберите SceneController, RootMenu и DataManager, чтобы выбрать три префабы:
SceneController (prefab) содержит два скрипта: SceneController (скрипт) и UnityDispatcher (скрипт). Компонент скрипта SceneController содержит несколько функций пользовательского интерфейса и упрощает функцию захвата фотографий, а UnityDispatcher — вспомогательный класс, позволяющий выполнять действия в основном потоке Unity.
RootMenu (prefab) — это основной префаб пользовательского интерфейса, который содержит все окна пользовательского интерфейса, связанные между собой с помощью различных небольших скриптовых компонентов и управляет общей схемой взаимодействия пользователя с приложением.
DataManager (префаб) отвечает за взаимодействие с хранилищем Azure и будет подробно объяснён в следующем руководстве.
Теперь, когда три префаба по-прежнему выбраны, перетащите их в окно Иерархии, чтобы добавить их в сцену.
Чтобы сфокусироваться на объектах в сцене, можно дважды щелкнуть объект RootMenu, а затем немного отдалить. Если объект RootMenu по-прежнему выбран, измените его значения в компоненте Transform следующим образом:
Позиция: X = 0,0, Y = 1.6, Z = 0,6
Совет
Если вы найдете большие значки в сцене отвлекающих (например, большие фреймированные значки T), их можно скрыть, переключив Gizmos в положение вне.
Настройка сцены
В этом разделе описано, как подключить SceneManager, DataManagerи RootMenu, чтобы создать рабочую сцену для следующего руководства по интеграции службы хранилища Azure.
Подключение объектов
В окне иерархии выберите объект DataManager:
В окне инспектора найдите компонент DataManager (Script). Вы увидите пустой слот в событии On Data Manager Ready (). Перетащите объект SceneController из окна Иерархии в событие On Data Manager Ready ().
Раскрывающееся меню события теперь активно. Выберите раскрывающееся меню, перейдите к SceneControllerи выберите параметр Init () в подменю.
В окне иерархии выберите объект SceneController. Компонент SceneController (скрипт) можно найти в панели инспектора.
В настоящее время существует несколько незапущенных полей; давайте изменим это. Переместите объект DataManager из иерархии в поле Data Manager, а затем переместите RootMenu>MainMenu GameObject из иерархии в поле Main Menu.
В окне иерархии выберите объект MRTK XR Rig. Убедитесь, что дочерний объект "Речь MRTK" включен. Это позволяет открыть меню, сказав "Открыть меню".
Теперь ваша сцена готова к предстоящим урокам. Не забудьте сохранить его в проекте.
Подготовка конвейера сборки проекта
Заметка
Сборка и тестирование на HoloLens 2 не является обязательным. Вы можете провести испытания на эмуляторе HoloLens 2, если у вас нет устройства HoloLens. Вы можете приобрести устройства на HoloLens.com.
Прежде чем завершить сцену, давайте подготовим проект для сборки для HoloLens 2.
1. Добавление других необходимых возможностей
В меню Unity выберите Изменить параметры проекта>... открыть окно "Параметры проекта".
В окне "Параметры проекта" выберите Проигрыватель, затем Параметры публикации:
В параметрах публикациипрокрутите вниз до раздела возможности и дважды проверьте, включены ли возможности InternetClient, Microphoneи SpatialPerception (которые вы включили при создании проекта в начале руководства). Затем включите возможности InternetClientServer, PrivateNetworkClientServerи веб-камера:
2. Развертывание приложения в HoloLens 2
Вы не сможете запускать все функции, которые будут использоваться в этом руководстве в редакторе Unity. Поэтому необходимо ознакомиться с развертыванием приложения на устройстве HoloLens 2 или эмуляторе.
Совет (assuming context refers to advice)
Для напоминания о том, как создать и развернуть проект Unity в HoloLens 2, вы можете обратиться к инструкциям руководства по началу работы — Создание и развертывание приложения.
3. Запустите приложение в HoloLens 2 и следуйте инструкциям в приложении
Осторожность
Все службы Azure используют Интернет, поэтому убедитесь, что устройство подключено к Интернету.
Когда приложение запущено на устройстве, предоставьте доступ к следующим запрошенным возможностям:
- Микрофон
- Фотоаппарат
Эти возможности необходимы для правильного функционирования служб, таких как Custom Vision.