Installieren und Ausführen des Containers für räumliche Analyse (Vorschau)

Mit dem Container für räumliche Analyse können Sie in Echtzeit gestreamte Videodaten analysieren, um räumliche Bezüge zwischen Personen, ihre Bewegungen und ihre Interaktionen mit Objekten in physischen Umgebungen zu verstehen. Container helfen Ihnen dabei, bestimmte Sicherheits- und Datengovernanceanforderungen zu erfüllen.

Voraussetzungen

  • Azure-Abonnement – Erstellen eines kostenlosen Kontos
  • Damit Sie den entsprechenden KI-Bedingungen zustimmen und eine Ressource erstellen können, muss Ihrem Azure-Konto die Rolle Cognitive Services Contributor zugewiesen sein. Um diese Rolle Ihrem Konto zuzuweisen, führen Sie die Schritte in der Dokumentation Zuweisen von Rollen aus, oder wenden Sie sich an Ihren Administrator.
  • Wenn Sie über Ihr Azure-Abonnement verfügen, erstellen Sie im Azure-Portal eine Ressource für maschinelles Sehen für den Tarif Standard S1, um Ihren Schlüssel und Endpunkt abzurufen. Wählen Sie nach Abschluss der Bereitstellung Zu Ressource wechseln aus.
    • Sie benötigen den Schlüssel und den Endpunkt der Ressource, die Sie erstellen, um den Container für die räumliche Analyse auszuführen. Sie benötigen Ihren Schlüssel und den Endpunkt zu einem späteren Zeitpunkt des Prozesses.

Anforderungen an einen Container für räumliche Analyse

Zum Ausführen des Containers für die räumliche Analyse benötigen Sie ein Computegerät mit einer NVIDIA CUDA-GPU mit Compute Capability 6.0 oder höher (z. B. NVIDIA Tesla T4, A2, 1080Ti oder 2080Ti). Wir empfehlen Ihnen die Verwendung von Azure Stack Edge mit GPU-Beschleunigung. Der Container kann aber auch auf allen anderen Desktopcomputern ausgeführt werden, die die Mindestanforderungen erfüllen. Dieses Gerät wird als Hostcomputer bezeichnet.

Azure Stack Edge ist eine Hardware-as-a-Service-Lösung und ein KI-fähiges Edgecomputinggerät mit Netzwerkfunktionen für die Datenübertragung. Eine ausführliche Anleitung zur Vorbereitung und Einrichtung finden Sie in der Azure Stack Edge-Dokumentation.

Anforderung Beschreibung
Kamera Der Container für die räumliche Analyse ist nicht an eine bestimmte Kameramarke gebunden. Für das Kameragerät müssen die folgenden Bedingungen erfüllt sein: Unterstützung des Real-Time Streaming-Protokolls (RTSP) und der H.264-Codierung, Zugriff auf den Hostcomputer und Streaming mit einer Auflösung von 15 Bilder/Sek. und 1080p.
Linux-Betriebssystem Ubuntu Desktop 18.04 LTS muss auf dem Hostcomupter installiert sein.

Einrichten des Hostcomputers

Es wird empfohlen, ein Azure Stack Edge-Gerät für Ihren Hostcomputer zu verwenden. Wählen Sie Desktopcomputer aus, wenn Sie ein anderes Gerät konfigurieren, oder Virtueller Computer, wenn Sie eine VM verwenden.

Konfigurieren von Compute im Azure Stack Edge-Portal

Bei der räumlichen Analyse werden die Computefeatures von Azure Stack Edge zum Ausführen einer KI-Lösung verwendet. Stellen Sie Folgendes sicher, um die Computefeatures zu aktivieren:

  • Sie haben Ihr Azure Stack Edge-Gerät verbunden und aktiviert.
  • Sie verfügen über ein Windows-Clientsystem mit PowerShell 5.0 oder höher, um auf das Gerät zuzugreifen.
  • Zum Bereitstellen eines Kubernetes-Clusters müssen Sie Ihr Azure Stack Edge-Gerät über die lokale Benutzeroberfläche im Azure-Portal konfigurieren:
    1. Aktivieren Sie das Computefeature auf Ihrem Azure Stack Edge-Gerät. Navigieren Sie zum Aktivieren von Compute auf der Weboberfläche Ihres Geräts zur Seite Compute.
    2. Wählen Sie eine Netzwerkschnittstelle aus, die Sie für Compute aktivieren möchten, und wählen Sie dann Aktivieren aus. Auf Ihrem Gerät wird für diese Netzwerkschnittstelle ein virtueller Switch erstellt.
    3. Lassen Sie die Felder für die IP-Adressen der Kubernetes-Testknoten und der externen Kubernetes-Dienste leer.
    4. Wählen Sie Übernehmen. Dieser Vorgang kann ungefähr zwei Minuten dauern.

Configure compute

Einrichten einer Azure Stack Edge-Rolle und Erstellen einer IoT Hub-Ressource

Navigieren Sie im Azure-Portal zu Ihrer Azure Stack Edge-Ressource. Wählen Sie auf der Seite Übersicht oder in der Navigationsliste die Schaltfläche Erste Schritte für das Edgecomputing aus. Wählen Sie auf der Kachel Edgecomputing konfigurieren die Option Konfigurieren aus.

Link

Wählen Sie auf der Seite Edgecomputing konfigurieren eine vorhandene IoT Hub-Ressource aus, oder entscheiden Sie sich für die Neuerstellung. Standardmäßig wird zum Erstellen einer IoT Hub-Ressource ein Standard-Tarif (S1) verwendet. Wenn Sie eine IoT Hub-Ressource im Free-Tarif verwenden möchten, müssen Sie sie erstellen und anschließend auswählen. Für die IoT Hub-Ressource wird jeweils dasselbe Abonnement und dieselbe Ressourcengruppe wie für die Azure Stack Edge-Ressource genutzt.

Klicken Sie auf Erstellen. Die Erstellung einer IoT Hub-Ressource kann einige Minuten dauern. Nachdem die IoT Hub-Ressource erstellt wurde, wird die Kachel Edgecomputing konfigurieren aktualisiert, um die neue Konfiguration anzuzeigen. Wählen Sie auf der Kachel Compute konfigurieren die Option Konfiguration anzeigen aus, um sich zu vergewissern, dass die Edge-Computerolle konfiguriert wurde.

Wenn die Edge-Computerolle auf dem Edge-Gerät eingerichtet ist, werden zwei Geräte erstellt: ein IoT-Gerät und ein IoT Edge-Gerät. Beide Geräte können in der IoT Hub-Ressource angezeigt werden. Die Azure IoT Edge-Runtime wird auf dem IoT Edge-Gerät bereits ausgeführt.

Hinweis

Aktivieren von MPS auf Azure Stack Edge

Befolgen Sie die folgenden Schritte, um eine Remoteverbindung von einem Windows-Client aus herzustellen.

  1. Führen Sie eine Windows PowerShell-Sitzung als Administrator aus.

  2. Stellen Sie sicher, dass der Dienst Windows-Remoteverwaltung auf dem Client ausgeführt wird. Geben Sie an der Eingabeaufforderung Folgendes ein:

    winrm quickconfig
    

    Weitere Informationen finden Sie unter Installation und Konfiguration für die Windows-Remoteverwaltung.

  3. Weisen Sie der in der Datei hosts verwendeten Verbindungszeichenfolge eine Variable zu.

    $Name = "<Node serial number>.<DNS domain of the device>"
    

    Ersetzen Sie <Node serial number> und <DNS domain of the device> durch die Seriennummer des Knotens und die DNS-Domäne Ihres Geräts. Sie können die Werte für die Seriennummer des Knotens von der Seite Zertifikate und die DNS-Domäne von der Seite Gerät in der lokalen Webbenutzeroberfläche Ihres Geräts abrufen.

  4. Geben Sie den folgenden Befehl ein, um der Liste der vertrauenswürdigen Hosts des Clients die Verbindungszeichenfolge für Ihr Gerät hinzuzufügen:

    Set-Item WSMan:\localhost\Client\TrustedHosts $Name -Concatenate -Force
    
  5. Starten Sie eine Windows PowerShell-Sitzung auf dem Gerät:

    Enter-PSSession -ComputerName $Name -Credential ~\EdgeUser -ConfigurationName Minishell -UseSSL
    

    Wenn ein Fehler im Zusammenhang mit der Vertrauensstellung auftritt, überprüfen Sie, ob die Signaturkette des Knotenzertifikats, das auf Ihr Gerät hochgeladen wurde, auch auf dem Client installiert ist, der auf Ihr Gerät zugreift.

  6. Geben Sie das Kennwort an, wenn Sie dazu aufgefordert werden. Verwenden Sie dasselbe Kennwort wie für die Anmeldung bei der lokalen Webbenutzeroberfläche. Das Standardkennwort für die lokale Webbenutzeroberfläche lautet Password1. Wenn Sie mithilfe von PowerShell eine Verbindung mit dem Gerät herstellen konnten, wird die folgende Beispielausgabe angezeigt:

    Windows PowerShell
    Copyright (C) Microsoft Corporation. All rights reserved.
    
    PS C:\WINDOWS\system32> winrm quickconfig
    WinRM service is already running on this machine.
    PS C:\WINDOWS\system32> $Name = "1HXQG13.wdshcsso.com"
    PS C:\WINDOWS\system32> Set-Item WSMan:\localhost\Client\TrustedHosts $Name -Concatenate -Force
    PS C:\WINDOWS\system32> Enter-PSSession -ComputerName $Name -Credential ~\EdgeUser -ConfigurationName Minishell -UseSSL
    
    WARNING: The Windows PowerShell interface of your device is intended to be used only for the initial network configuration. Please engage Microsoft Support if you need to access this interface to troubleshoot any potential issues you may be experiencing. Changes made through this interface without involving Microsoft Support could result in an unsupported configuration.
    [1HXQG13.wdshcsso.com]: PS>
    

IoT-Bereitstellungsmanifest

Zum Optimieren der Containerbereitstellung auf mehreren Hostcomputern können Sie eine Bereitstellungsmanifestdatei erstellen, um die Optionen für die Containererstellung und die Umgebungsvariablen anzugeben. Beispiele für ein Bereitstellungsmanifest für Azure Stack Edge, andere Desktopcomputer und Azure-VMs mit GPU finden Sie auf GitHub.

In der folgenden Tabelle sind die verschiedenen Umgebungsvariablen aufgeführt, die vom IoT Edge-Modul verwendet werden. Sie können sie auch im oben verlinkten Bereitstellungsmanifest festlegen, indem Sie das Attribut env in spatialanalysis verwenden:

Einstellungsname Wert Beschreibung
ARCHON_LOG_LEVEL Info, Verbose (Information, Ausführlich) Protokolliergrad: Wählen Sie einen der beiden Werte aus.
ARCHON_SHARED_BUFFER_LIMIT 377487360 Nicht ändern
ARCHON_PERF_MARKER false Legen Sie diese Einstellung auf „true“ fest, wenn Sie die Leistungsprotokollierung verwenden möchten, und andernfalls auf „false“.
ARCHON_NODES_LOG_LEVEL Info, Verbose (Information, Ausführlich) Protokolliergrad: Wählen Sie einen der beiden Werte aus.
OMP_WAIT_POLICY PASSIVE Nicht ändern
QT_X11_NO_MITSHM 1 Nicht ändern
APIKEY Ihr API-Schlüssel Ermitteln Sie diesen Wert im Azure-Portal unter Ihrer Vision-Ressource. Sie finden ihn im Abschnitt Schlüssel und Endpunkt für Ihre Ressource.
ABRECHNUNG Ihr Endpunkt-URI Ermitteln Sie diesen Wert im Azure-Portal unter Ihrer Vision-Ressource. Sie finden ihn im Abschnitt Schlüssel und Endpunkt für Ihre Ressource.
ENDBENUTZER-LIZENZVERTRAG accept (Akzeptieren) Sie müssen diesen Wert auf accept (Akzeptieren) festlegen, damit der Container ausgeführt werden kann.
DISPLAY :1 Dieser Wert muss der Ausgabe von echo $DISPLAY auf dem Hostcomputer entsprechen. Azure Stack Edge-Geräte haben kein Display. Diese Einstellung ist nicht anwendbar.
KEY_ENV ASE-Verschlüsselungsschlüssel Fügen Sie diese Umgebungsvariable hinzu, wenn der Wert für „VIDEO_URL“ eine verschleierte Zeichenfolge ist.
IV_ENV Initialisierungsvektor Fügen Sie diese Umgebungsvariable hinzu, wenn der Wert für „VIDEO_URL“ eine verschleierte Zeichenfolge ist.

Wichtig

Die Optionen Eula, Billing und ApiKey müssen angegeben werden, um den Container auszuführen, andernfalls wird der Container nicht gestartet. Weitere Informationen finden Sie unter Abrechnung.

Sobald Sie das Bereitstellungsmanifest für Azure Stack Edge-Geräte, einen Desktopcomputer oder eine Azure-VM mit GPU mit Ihren eigenen Einstellungen und Ihrer Auswahl von Vorgängen aktualisiert haben, können Sie mit dem unten dargestellten Azure CLI-Befehl den Container auf dem Hostcomputer als IoT Edge-Modul bereitstellen.

sudo az login
sudo az extension add --name azure-iot
sudo az iot edge set-modules --hub-name "<iothub-name>" --device-id "<device-name>" --content DeploymentManifest.json --subscription "<name or ID of Azure Subscription>"
Parameter Beschreibung
--hub-name Der Name Ihrer Azure IoT Hub-Instanz.
--content Der Name der Bereitstellungsdatei.
--target-condition Der Name Ihres IoT Edge-Geräts für den Hostcomputer.
-–subscription Abonnement-ID oder -name.

Mit diesem Befehl wird die Bereitstellung gestartet. Navigieren Sie im Azure-Portal zur Seite mit Ihrer Azure IoT Hub-Instanz, um den Bereitstellungsstatus anzuzeigen. Als Status wird möglicherweise 417: Die Bereitstellungskonfiguration des Geräts ist nicht festgelegt angezeigt, bis das Gerät das Herunterladen der Containerimages abgeschlossen hat und gestartet wird.

Überprüfen der erfolgreichen Bereitstellung

Es gibt mehrere Möglichkeiten zu überprüfen, ob ein Container aktiv ist. Suchen Sie im Azure-Portal in den Einstellungen des IoT Edge-Moduls für die räumliche Analyse in Ihrer Azure IoT Hub-Instanz nach dem Laufzeitstatus. Vergewissern Sie sich, dass Gewünschter Wert und Gemeldeter Wert für Laufzeitstatus auf Wird ausgeführt festgelegt sind.

Example deployment verification

Nach Abschluss der Bereitstellung und dem Ausführen des Containers beginnt der Hostcomputer damit, Ereignisse an Azure IoT Hub zu senden. Wenn Sie die .debug-Version der Vorgänge verwendet haben, wird ein Visualisierungsfenster für jede Kamera angezeigt, die Sie im Bereitstellungsmanifest konfiguriert haben. Sie können jetzt die zu überwachenden Linien und Zonen im Bereitstellungsmanifest definieren und die Anleitung zur erneuten Bereitstellung befolgen.

Konfigurieren der von der räumlichen Analyse durchgeführten Vorgänge

Sie müssen die Vorgänge der räumlichen Analyse nutzen, um den Container für die Verwendung von vernetzten Kameras zu konfigurieren, die Vorgänge zu konfigurieren usw. Für jedes konfigurierte Kameragerät wird über die Vorgänge der räumlichen Analyse ein Ausgabestream mit JSON-Nachrichten generiert, die an Ihre Instanz von Azure IoT Hub gesendet werden.

Verwenden der vom Container generierten Ausgabe

Falls Sie die vom Container generierte Ausgabe nutzen möchten, helfen Ihnen die Informationen in den folgenden Artikeln weiter:

  • Verwenden Sie das Azure Event Hub-SDK für Ihre gewählte Programmiersprache, um eine Verbindung mit dem Azure IoT Hub-Endpunkt herstellen und die Ereignisse empfangen zu können. Weitere Informationen finden Sie unter Lesen von Nachrichten, die von Geräten an die Cloud gesendet werden, vom integrierten Endpunkt.
  • Richten Sie das Nachrichtenrouting auf Ihrer Azure IoT Hub-Instanz ein, um Ereignisse an andere Endpunkte zu senden, die Ereignisse unter Azure Blob Storage zu speichern usw.

Problembehandlung

Falls beim Starten oder Ausführen des Containers Probleme auftreten, helfen Ihnen die Lösungsschritte für häufige Probleme im Artikel Telemetrie und Problembehandlung weiter. Dieser Artikel enthält auch Informationen zum Generieren und Erfassen von Protokollen und zur Erfassung der Systemintegrität.

Wenn Sie Probleme beim Ausführen eines Azure KI Services-Containers haben, können Sie versuchen, den Microsoft-Diagnosecontainer zu verwenden. Verwenden Sie diesen Container zum Diagnostizieren häufiger Fehler in Ihrer Bereitstellungsumgebung, die ggf. verhindern, dass Azure KI-Container wie erwartet funktionieren.

Zum Abrufen des Containers verwenden Sie den folgenden Befehl: docker pull

docker pull mcr.microsoft.com/azure-cognitive-services/diagnostic

Führen Sie dann den Container aus. Ersetzen Sie {ENDPOINT_URI} durch Ihren Endpunkt, und ersetzen Sie {API_KEY} durch den Schlüssel für Ihre Ressource:

docker run --rm mcr.microsoft.com/azure-cognitive-services/diagnostic \
eula=accept \
Billing={ENDPOINT_URI} \
ApiKey={API_KEY}

Der Container überprüft die Netzwerkkonnektivität mit dem Abrechnungsendpunkt.

Abrechnung

Der Container für räumliche Analyse sendet Abrechnungsinformationen an Azure und verwendet dafür eine Vision-Ressource in Ihrem Azure-Konto. Die Verwendung der räumlichen Analyse im Rahmen der öffentlichen Vorschauversion ist derzeit kostenlos.

Für die Ausführung von Azure KI-Containern besteht keine Lizenz, wenn sie nicht mit dem Verbrauchsmessungs- und/oder Abrechnungsendpunkt verbunden sind. Sie müssen sicherstellen, dass die Container jederzeit Abrechnungsinformationen an den Abrechnungsendpunkt übermitteln können. Azure KI-Container senden keine Kundendaten, wie z. B. das analysierte Video oder Bild, an Microsoft.

Zusammenfassung

In diesem Artikel wurden die Konzepte und der Workflow zum Herunterladen, Installieren und Ausführen des Containers für die räumliche Analyse beschrieben. Zusammenfassung:

  • Bei der räumlichen Analyse handelt es sich um einen Linux-Container für Docker.
  • Containerimages werden aus Microsoft Container Registry heruntergeladen.
  • Containerimages werden als IoT-Module in Azure IoT Edge ausgeführt.
  • Konfigurieren Sie den Container, und stellen Sie ihn auf einem Hostcomputer bereit.

Nächste Schritte