Installer et exécuter le conteneur Analyse spatiale (préversion)

Le conteneur d’analyse spatiale vous permet d’analyser le flux vidéo en temps réel afin de comprendre les relations spatiales entre les personnes, leurs déplacements et les interactions avec des objets dans des environnements physiques. Les conteneurs vous aident à répondre aux exigences de sécurité et de gouvernance des données spécifiques.

Prérequis

  • Abonnement Azure - En créer un gratuitement
  • Un rôle Cognitive Services Contributor doit être attribué à votre compte Azure pour que vous puissiez accepter les conditions d’utilisation de l’IA et créer une ressource. Pour que ce rôle soit attribué à votre compte, suivez les étapes de la documentation Attribuer des rôles ou contactez votre administrateur.
  • Une fois que vous avez votre abonnement Azure, créez une ressource vision par ordinateur pour le niveau Standard S1 dans le portail Azure pour obtenir votre clé et votre point de terminaison. À la fin du déploiement, sélectionnez Accéder à la ressource.
    • Vous aurez besoin de la clé et du point de terminaison de la ressource que vous créez pour exécuter le conteneur d’analyse spatiale. Vous utiliserez votre clé et votre point de terminaison ultérieurement.

Exigences du conteneur d’analyse spatiale

Pour exécuter le conteneur d’analyse spatiale, vous avez besoin d’un appareil de calcul doté d’un GPU de calcul NVIDIA CUDA de version 6.0 ou supérieure (par exemple, NVIDIA Tesla T4, A2, 1080Ti ou 2080Ti). Nous vous recommandons d’utiliser Azure Stack Edge avec l’accélération GPU, bien que le conteneur s’exécute sur n’importe quel autre ordinateur de bureau présentant la configuration minimale requise. Nous faisons référence à cet appareil en tant qu’ordinateur hôte.

Azure Stack Edge est une solution matérielle en tant que service ainsi qu’un appareil de computing en périphérie basé sur l’intelligence artificielle. Il est doté de fonctionnalités de transfert de données via le réseau. Pour obtenir des instructions détaillées sur la préparation et la configuration, consultez la documentation Azure Stack Edge.

Condition requise Description
Appareil photo Le conteneur d’analyse spatiale n’est pas lié à une marque de caméra spécifique. La caméra doit : prendre en charge l’encodage RTSP (Real-Time Streaming Protocol) et H. 264, être accessible à l’ordinateur hôte et pouvoir assurer une diffusion en continu à 15FPS et avec une résolution de 1080p.
Système d’exploitation Linux Ubuntu Desktop 18.04 LTS doit être installé sur l’ordinateur hôte.

Configurer l’ordinateur hôte

Nous vous recommandons d’utiliser un appareil Azure Stack Edge pour votre ordinateur hôte. Sélectionnez Ordinateur de bureau si vous configurez un autre appareil ou Machine virtuelle si vous utilisez une machine virtuelle.

Configurer le calcul sur le portail Azure Stack Edge

L’analyse spatiale utilise les fonctionnalités de calcul d’Azure Stack Edge pour exécuter une solution d’intelligence artificielle. Pour activer les fonctionnalités de calcul, assurez-vous que les conditions suivantes sont remplies :

  • Vous avez connecté et activé votre appareil Azure Stack Edge.
  • Vous avez un système client Windows exécutant PowerShell 5.0 ou une version ultérieure pour accéder à l’appareil.
  • Pour déployer un cluster Kubernetes, vous devez configurer votre appareil Azure Stack Edge via l’interface utilisateur locale dans le portail Azure :
    1. Configurer la fonctionnalité de calcul sur votre appareil Azure Stack Edge. Pour activer le calcul, accédez à la page Calcul dans l’interface web de votre appareil.
    2. Sélectionnez une interface réseau que vous souhaitez activer pour le calcul, puis sélectionnez Activer. Un commutateur virtuel est créé sur votre appareil sur cette interface réseau.
    3. Laissez les adresses IP du nœud de test Kubernetes et les adresses IP des services externes Kubernetes vides.
    4. Sélectionnez Appliquer. Cette opération peut prendre environ deux minutes.

Configure compute

Configurer un rôle Azure Stack Edge et créer une ressource IoT Hub

Dans le portail Azure, accédez à votre ressource Azure Stack Edge. Dans la page Vue d’ensemble ou la liste de navigation, sélectionnez le bouton de computing en périphérie Démarrer. Dans la vignette Configurer le computing en périphérie, sélectionnez Configurer.

Link

Dans la page Configurer le computing en périphérie, choisissez une ressource IoT Hub existante, ou choisissez d’en créer une nouvelle. Par défaut, un niveau tarifaire Standard (S1) est utilisé pour créer une ressource IoT Hub. Pour utiliser une ressource IoT Hub de niveau Gratuit, créez-en une, puis sélectionnez-la. La ressource IoT Hub utilise les mêmes abonnement et groupe de ressources que la ressource Azure Stack Edge

Sélectionnez Create (Créer). La création de ressources IoT Hub peut prendre quelques minutes. Une fois la ressource IoT Hub créée, la vignette Configurer le computing en périphérie sera mise à jour pour afficher la nouvelle configuration. Pour vérifier que le rôle de computing en périphérie a été configuré, sélectionnez Configuration de la vue sur la vignette Configurer le calcul.

Quand le rôle de calcul Edge est configuré sur l’appareil Edge, il crée deux appareils : un appareil IoT et un appareil IoT Edge. Ces deux appareils peuvent être visualisés dans la ressource IoT Hub. Le runtime Azure IoT Edge sera déjà en cours d’exécution sur l’appareil IoT Edge.

Notes

Activer MPS sur Azure Stack Edge

Suivez cette procédure pour effectuer une connexion distante depuis un client Windows.

  1. Démarrez une session Windows PowerShell en tant qu’administrateur.

  2. Assurez-vous que le service Windows Remote Management est en cours d’exécution sur votre client. À l’invite de commandes, tapez :

    winrm quickconfig
    

    Pour plus d’informations, consultez Installation et configuration de Windows Remote Management.

  3. Assignez une variable à la chaîne de connexion utilisée dans le fichier hosts.

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

    Remplacez <Node serial number> et <DNS domain of the device> par le numéro de série du nœud et le domaine DNS de votre appareil. Vous pouvez obtenir la valeur du numéro de série du nœud à partir de la page Certificats et celle du domaine DNS à partir de la page Appareil dans l’interface utilisateur web locale de votre appareil.

  4. Pour ajouter cette chaîne de connexion pour votre appareil à la liste des hôtes approuvés du client, saisissez la commande suivante :

    Set-Item WSMan:\localhost\Client\TrustedHosts $Name -Concatenate -Force
    
  5. Démarrez une session Windows PowerShell sur l’appareil :

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

    Si vous voyez une erreur liée à une relation de confiance, vérifiez si la chaîne de signature du certificat de nœud chargé sur votre appareil est également installée sur le client qui accède à votre appareil.

  6. Indiquez le mot de passe lorsque vous y êtes invité. Utilisez le mot de passe vous permettant de vous connecter à l’interface utilisateur web locale. Le mot de passe par défaut de cette interface est Password1. Lorsque vous êtes connecté à l’appareil à l’aide de PowerShell à distance, vous pouvez voir l’exemple de sortie suivant :

    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>
    

Manifeste de déploiement IoT

Pour simplifier le déploiement de conteneurs sur plusieurs ordinateurs hôtes, vous pouvez créer un fichier de manifeste de déploiement pour spécifier les options de création de conteneurs et les variables d’environnement. Vous trouverez un exemple de manifeste de déploiement pour Azure Stack Edge, d’autres ordinateurs de bureau et une machine virtuelle Azure avec GPU sur GitHub.

Le tableau suivant présente les différentes variables d’environnement utilisées par le module IoT Edge. Vous pouvez également les définir dans le manifeste de déploiement lié ci-dessus, à l’aide de l’attribut env dans spatialanalysis :

Nom du paramètre Valeur Description
ARCHON_LOG_LEVEL Info; Verbose Niveau de journalisation, sélectionnez l’une des deux valeurs suivantes :
ARCHON_SHARED_BUFFER_LIMIT 377487360 Ne modifiez pas
ARCHON_PERF_MARKER false Affectez la valeur true à la journalisation des performances ; sinon, la valeur doit être false
ARCHON_NODES_LOG_LEVEL Info; Verbose Niveau de journalisation, sélectionnez l’une des deux valeurs suivantes :
OMP_WAIT_POLICY PASSIVE Ne modifiez pas
QT_X11_NO_MITSHM 1 Ne modifiez pas
APIKEY votre clé API Récupérez cette valeur dans le portail Azure à partir de votre ressource Vision. Vous la trouverez dans la section Clé et point de terminaison de vos ressources.
FACTURATION votre URI de point de terminaison Récupérez cette valeur dans le portail Azure à partir de votre ressource Vision. Vous la trouverez dans la section Clé et point de terminaison de vos ressources.
CLUF accepter Cette valeur doit être définie sur accepter pour que le conteneur s’exécute
DISPLAY :1 Cette valeur doit être identique à la sortie de echo $DISPLAY sur l’ordinateur hôte. Les appareils Azure Stack Edge n’ont pas d’écran. Ce paramètre n'est pas applicable
KEY_ENV Clé de chiffrement ASE Ajoutez cette variable d’environnement si Video_URL est une chaîne masquée.
IV_ENV Vecteur d’initialisation Ajoutez cette variable d’environnement si Video_URL est une chaîne masquée.

Important

Vous devez spécifier les options Eula, Billing et ApiKey pour exécuter le conteneur, sinon il ne démarrera pas. Pour plus d'informations, consultez Facturation.

Une fois que vous avez mis à jour le manifeste de déploiement pour des appareils Azure Stack Edge, un appareil de bureau ou une machine virtuelle Azure avec GPU avec vos propres paramètres et sélection d’opérations, vous pouvez utiliser la commande Azure CLI ci-dessous pour déployer le conteneur en tant que module IoT Edge sur l’ordinateur hôte.

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>"
Paramètre Description
--hub-name Nom de votre Azure IoT Hub.
--content Nom du fichier de déploiement.
--target-condition Nom de votre appareil IoT Edge pour l’ordinateur hôte.
-–subscription ID ou nom de l’abonnement.

Cette commande démarre le déploiement. Accédez à la page de votre instance Azure IoT Hub dans le portail Azure pour afficher l’état du déploiement. L’état peut se présenter sous la forme 417 : la configuration de déploiement de l’appareil n’est pas définie jusqu’à ce que l’appareil termine de télécharger les images du conteneur et démarre l’exécution.

Vérifiez que déploiement est réussi

Il existe plusieurs façons de confirmer que le conteneur s’exécute. Localisez la section État du runtime dans les paramètres du module IoT Edge pour le module d’analyse spatiale de votre instance Azure IoT Hub sur le portail Azure. Vérifiez que les champs Valeur souhaitée et Valeur signalée de la section État du runtime indiquent En cours d’exécution.

Example deployment verification

Une fois le déploiement terminé et le conteneur en cours d’exécution, l’ordinateur hôte commence à envoyer des événements à Azure IoT Hub. Si vous avez utilisé la version .debug des opérations, vous verrez une fenêtre de visualiseur pour chaque caméra que vous avez configurée dans le manifeste de déploiement. Vous pouvez maintenant définir les lignes et les zones que vous souhaitez analyser dans le manifeste de déploiement et suivre les instructions pour effectuer un nouveau déploiement.

Configurer les opérations effectuées par l’analyse spatiale

Vous devrez utiliser Opérations d’analyse spatiale pour configurer le conteneur afin d’utiliser des caméras connectées et de configurer les opérations, entre autres. Pour chaque caméra configurée, les opérations d’analyse spatiale génèrent un flux de sortie de messages JSON, envoyés à votre instance d’Azure IoT Hub.

Utiliser la sortie générée par le conteneur

Si vous souhaitez commencer à consommer la sortie générée par le conteneur, consultez les articles suivants :

  • Utilisez le SDK Azure Event Hubs pour le langage de programmation que vous avez choisi afin de vous connecter au point de terminaison Azure IoT Hub et de recevoir les événements. Pour plus d’informations, consultez Lire des messages appareil-à-cloud à partir du point de terminaison intégré.
  • Configurez le routage des messages sur votre instance IoT Hub Azure pour envoyer les événements à d’autres points de terminaison ou enregistrer les événements dans votre stockage Blob Azure, etc.

Dépannage

Si vous rencontrez des problèmes lors du démarrage ou de l’exécution du conteneur, consultez Télémétrie et résolution des problèmes pour connaître les étapes de problèmes courants. Cet article contient également des informations sur la génération et la collecte de journaux et sur la collecte de l’intégrité du système.

Si vous avez des difficultés à exécuter un conteneur Azure AI services, vous pouvez essayer d’utiliser le conteneur de diagnostics Microsoft. Utilisez ce conteneur pour diagnostiquer dans votre environnement de déploiement les erreurs courantes pouvant nuire au bon fonctionnement des conteneurs Azure AI.

Pour obtenir le conteneur, utilisez la commande docker pull suivante :

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

Exécutez ensuite le conteneur. Remplacez {ENDPOINT_URI} par votre point de terminaison et {API_KEY} par la clé de votre ressource :

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

Le conteneur teste la connectivité réseau avec le point de terminaison de facturation.

Facturation

Le conteneur d’analyse spatiale envoie des informations de facturation à Azure à l’aide d’une ressource Vision sur votre compte Azure. L’utilisation de l’analyse spatiale en préversion publique est actuellement gratuite.

La licence des conteneurs Azure AI ne vous permet pas de les exécuter sans les connecter au point de terminaison du mesure/facturation. Vous devez toujours configurer les conteneurs de manière à ce qu’ils communiquent les informations de facturation au point de terminaison de facturation. Les conteneurs Azure AI n’envoient pas de données client, telles que la vidéo ou l’image analysée, à Microsoft.

Résumé

Dans cet article, vous avez découvert des concepts et le flux de travail pour le téléchargement, l’installation et l’exécution du conteneur d’analyse spatiale. En résumé :

  • L’analyse spatiale est un conteneur Linux pour Docker.
  • Les images conteneurs sont téléchargées à partir de Microsoft Container Registry.
  • Les images de conteneur s’exécutent en tant que modules IoT dans Azure IoT Edge.
  • Configurez le conteneur et déployez-le sur un ordinateur hôte.

Étapes suivantes