Ćwiczenie — Azure Cloud Services for HoloLens 2

Ukończone

W każdym kolejnym rozdziale dodasz nowe usługi w chmurze platformy Azure, aby rozszerzyć funkcje aplikacji i środowisko użytkownika, ucząc się podstaw każdej usługi w chmurze platformy Azure.

Uwaga

Ta seria modułów koncentruje się na urządzeniu HoloLens 2, ale ze względu na międzyplatformowy charakter aparatu Unity większość z tych lekcji będzie również dotyczyć aplikacji klasycznych i mobilnych.

Cele aplikacji

W tej serii modułów utworzysz aplikację HoloLens 2, która może wykrywać obiekty z obrazów i znajdować jego lokalizację przestrzenną. Będziemy odwoływać się do tych obiektów jako śledzone obiekty.

Użytkownik może utworzyć śledzony obiekt , aby skojarzyć zestaw obrazów za pomocą przetwarzania obrazów, lokalizacji przestrzennej lub obu tych elementów. Wszystkie dane muszą być utrwalane w chmurze.

Funkcje

  • Podstawowe zarządzanie danymi i obrazami
  • Trenowanie i wykrywanie obrazów
  • Przechowywanie lokalizacji przestrzennej i wskazówek

Azure Cloud Services

Do zaimplementowania powyższych funkcji użyjesz następujących usług Azure Cloud Services:

Azure Storage

Użyjesz usługi Azure Storage do utrwalania danych. Usługa Azure Storage umożliwia przechowywanie danych w tabeli i przekazywanie dużych plików binarnych, takich jak obrazy.

Azure Custom Vision

Za pomocą usługi Azure AI Custom Vision (część usług Azure AI) można skojarzyć zestaw obrazów z śledzonym obiektami, wytrenować model uczenia maszynowego w utworzonym zestawie i wykryć śledzone obiekty.

Azure Spatial Anchors

Aby przechowywać lokalizację śledzonego obiektu i przekazać wskazówki z przewodnikiem, aby je znaleźć, użyjesz usługi Azure Spatial Anchors.

Tworzenie i przygotowywanie projektu aparatu Unity

W tej sekcji utworzysz nowy projekt aparatu Unity i przygotujesz go do opracowywania zestawu narzędzi MRTK.

Najpierw wykonaj kroki opisane w ścieżce szkoleniowej Urządzenia HoloLens 2, z wyłączeniem instrukcji Tworzenie aplikacji na urządzeniu, które obejmują następujące kroki:

  1. Tworzenie projektu aparatu Unity i nadanie mu odpowiedniej nazwy, na przykład Samouczki dotyczące chmury platformy Azure
  2. Przełączanie platformy kompilacji
  3. Importowanie podstawowych zasobów TextMeshPro
  4. Importowanie zestawu narzędzi Mixed Reality Toolkit
  5. Konfigurowanie projektu aparatu Unity
  6. Tworzenie i konfigurowanie sceny i nadanie scenie odpowiedniej nazwy, na przykład AzureCloudServices

Importowanie zasobów samouczka

  1. Dodaj zestaw AzurespatialAnchors SDK do projektu. Aby dodać pakiet, wykonaj czynności opisane w tym samouczku.

  2. Pobierz i zaimportuj następujące pakiety niestandardowe aparatu Unity w kolejności ich wyświetlania:

    Po zaimportowaniu zasobów samouczka okno Project powinno wyglądać podobnie do następującego:

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

Przygotowywanie sceny

W tej sekcji przygotujesz scenę, dodając niektóre prefabryki samouczka.

  1. W oknie Projekt przejdź do zestawu narzędzi Assets>MRTK. Tutorials.AzureCloudServices>Prefabs>Manager folder. Trzymając wciśnięty przycisk CTRL, wybierz pozycję SceneController, RootMenu i DataManager, aby wybrać trzy prefab:

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

    Element SceneController (prefab) zawiera dwa skrypty: SceneController (script) i UnityDispatcher (script). Składnik skryptu SceneController zawiera kilka funkcji środowiska użytkownika i ułatwia funkcję przechwytywania zdjęć, podczas gdy UnityDispatcher jest klasą pomocnika umożliwiającą wykonywanie akcji w głównym wątku aparatu Unity.

    RootMenu (prefab) to podstawowy prefab interfejsu użytkownika, który przechowuje wszystkie okna interfejsu użytkownika połączone ze sobą za pomocą różnych małych składników skryptu i steruje ogólnym przepływem środowiska użytkownika aplikacji.

    Menedżer danych (prefab) jest odpowiedzialny za rozmowę z usługą Azure Storage i zostanie wyjaśniony w następnym samouczku.

  2. Teraz po wybraniu trzech prefab przeciągnij je do okna Hierarchia, aby dodać je do sceny:

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

  3. Aby skoncentrować się na obiektach w scenie, możesz dwukrotnie kliknąć obiekt RootMenu , a następnie nieco pomniejsić ponownie. Po wybraniu obiektu RootMenu zmień jego wartości w składniku Transform na następujące:

    Położenie: X = 0,0, Y = 1,6, Z = 0,6

    Screenshot of Unity with RootMenu object selected.

    Napiwek

    Jeśli znajdziesz duże ikony w scenie rozpraszające uwagę (na przykład duże ikony "T"), możesz je ukryć, przełączając Gizmos do pozycji wyłączonej.

Konfigurowanie sceny

W tej sekcji połączysz elementy SceneManager, DataManager i RootMenu , aby utworzyć scenę roboczą na potrzeby następnego samouczka Integrowanie usługi Azure Storage.

Połączenie obiektów

  1. W oknie Hierarchia wybierz obiekt DataManager :

    Screenshot of Unity with DataManager object selected.

  2. W oknie Inspector (Inspektor) znajdź składnik DataManager (Script). Zobaczysz puste miejsce w zdarzeniu On Data Manager Ready (). Przeciągnij obiekt SceneController z okna Hierarchy (Hierarchy) do zdarzenia On Data Manager Ready ().

    Screenshot of Unity with DataManager event listener added.

  3. Menu rozwijane zdarzenia jest teraz aktywne. Wybierz menu rozwijane, przejdź do obszaru SceneController i wybierz opcję Init () w podmenu.

    Screenshot of Unity with DataManager event action added.

  4. W oknie Hierarchy (Hierarchia) wybierz obiekt SceneController . Składnik SceneController (script) znajduje się w inspektorze.

    Screenshot of Unity with SceneController selected.

  5. Istnieje teraz kilka niezapełnionych pól; zmieńmy to. Przenieś obiekt DataManager z hierarchii do pola Menedżer danych, a następnie przenieś obiekt RootMenu MainMenu> GameObject z hierarchii do pola Menu główne.

    Screenshot of Unity with SceneController configured.

  6. W oknie Hierarchia wybierz obiekt MRTK XR Rig . Upewnij się, że obiekt podrzędny mowy zestawu narzędzi MRTK jest włączony. Dzięki temu można otworzyć menu, mówiąc "Otwórz menu".

  7. Teraz twoja scena jest gotowa do nadchodzących samouczków. Nie zapomnij zapisać go w projekcie.

Przygotowywanie potoku kompilacji projektu

Uwaga

Kompilowanie i testowanie na urządzeniu HoloLens 2 nie jest obowiązkowe. Jeśli nie masz urządzenia HoloLens, możesz przetestować emulator urządzenia HoloLens 2. Urządzenia można kupić w HoloLens.com.

Zanim zakończymy scenę, przygotujmy projekt do skompilowania urządzenia HoloLens 2.

1. Dodawanie innych wymaganych funkcji

  1. W menu aparatu Unity wybierz pozycję Edytuj>projekt Ustawienia..., aby otworzyć okno Ustawienia projektu.

    Screenshot of Unity open Project Settings.

  2. W oknie Ustawienia projektu wybierz pozycję Odtwarzacz, a następnie pozycję Publikowanie Ustawienia:

    Screenshot of Unity Publishing Settings.

  3. W obszarze Publikowanie Ustawienia przewiń w dół do sekcji Możliwości i sprawdź dokładnie, czy są włączone możliwości InternetClient, Mikrofon i SpatialPerception (włączone podczas tworzenia projektu na początku samouczka). Następnie włącz możliwości InternetClientServer, PrivateNetworkClientServer i Kamery internetowej :

    Screenshot of Unity Capabilities

2. Wdrażanie aplikacji na urządzeniu HoloLens 2

Nie będzie można uruchomić wszystkich funkcji używanych w tej serii samouczków w edytorze aparatu Unity. W związku z tym należy zapoznać się z wdrażaniem aplikacji na urządzeniu HoloLens 2 lub emulatorze.

Napiwek

Przypomnienie o sposobie kompilowania i wdrażania projektu aparatu Unity na urządzeniu HoloLens 2 można znaleźć w samouczkach Wprowadzenie — kompilowanie i wdrażanie instrukcji aplikacji .

3. Uruchom aplikację na urządzeniu HoloLens 2 i postępuj zgodnie z instrukcjami w aplikacji

Uwaga

Wszystkie usługi platformy Azure korzystają z Internetu, dlatego upewnij się, że urządzenie jest połączone z Internetem.

Gdy aplikacja jest uruchomiona na urządzeniu, przyznaj dostęp do następujących żądanych możliwości:

  • Mikrofon
  • Kamera

Te możliwości są wymagane do prawidłowego działania usług, takich jak Custom Vision .