Modifier

Partager via


Ingestion vidéo et détection d’objets en périphérie et dans le cloud

Azure Stack Edge
Azure Kubernetes Service (AKS)
Azure SQL Edge
Azure Container Registry

Cet article explique comment utiliser un robot mobile avec une caméra de streaming en direct pour implémenter différents cas d’usage. La solution implémente un système qui s’exécute localement sur Azure Stack Edge pour ingérer et traiter le flux vidéo et Azure AI services qui effectuent la détection d’objets.

Architecture

Diagramme montrant une architecture pour l’ingestion vidéo et la détection d’objets.

Téléchargez un fichier Visio de cette architecture.

Workflow

Ce workflow décrit comment le système traite les données entrantes :

  1. Une caméra installée sur le robot diffuse de la vidéo en temps réel à l’aide du protocole RTSP (Real Time Streaming Protocol).

  2. Un conteneur dans le cluster Kubernetes sur Azure Stack Edge lit le flux entrant et fractionne la vidéo en images distinctes. Un outil logiciel Open Source appelé FFmpeg ingère et traite le flux vidéo.

  3. Les images sont stockées dans le compte de stockage Azure Stack Edge local.

  4. Chaque fois qu’une nouvelle image clé est enregistrée dans le compte de stockage, un conteneur AI Vision la récupère. Pour plus d’informations sur la séparation de la logique en plusieurs conteneurs, consultez Détails sur le scénario.

  5. Quand il charge une image clé à partir du conteneur de stockage, le conteneur AI Vision l’envoie à Azure AI services dans le cloud. Cette architecture utilise Azure AI Vision, qui permet la détection d’objets via l’analyse d’image.

  6. Les résultats de l’analyse d’image (objets détectés et niveau de confiance) sont envoyés au conteneur de détection d’anomalies.

  7. Le conteneur de détection d’anomalies stocke les résultats de l’analyse d’image et de la détection d’anomalies dans la base de données Azure SQL Azure Stack Edge locale pour référence ultérieure. L’utilisation d’une instance locale de la base de données améliore le temps d’accès, ce qui permet de réduire les retards d’accès aux données.

  8. Le traitement des données est exécuté pour détecter les anomalies dans le flux vidéo en temps réel entrant. Si des anomalies sont détectées, une interface utilisateur front-end affiche une alerte.

Composants

  • Azure Stack Edge est utilisé pour héberger des services Azure en cours d’exécution localement, à proximité de l’emplacement où la détection d’anomalies se produit, ce qui réduit la latence.

  • Azure Kubernetes Service sur Azure Stack Edge permet d’exécuter un cluster Kubernetes de conteneurs qui contiennent la logique du système sur Azure Stack Edge de manière simple et gérée.

  • Azure Arc contrôle le cluster Kubernetes qui s’exécute sur le périphérique.

  • Azure AI Vision est utilisé pour détecter des objets dans des images clés du flux vidéo.

  • Stockage Blob Azure est utilisé pour stocker des images d’images clés extraites du flux vidéo.

  • Azure SQL Edge est utilisé pour stocker des données sur le périphérique, à proximité du service qui les consomme et les traite.

  • Azure Container Registry est utilisé pour stocker les images de conteneur Docker.

  • Azure Key Vault fournit un stockage à sécurité renforcée pour tous les secrets ou clés de chiffrement utilisés par le système.

  • Azure Monitor fournit l’observabilité du système.

Détails du scénario

Cette architecture illustre un système qui traite un flux vidéo en temps réel, compare les données extraites en temps réel avec un ensemble de données de référence et prend des décisions en fonction des résultats. Par exemple, ce système peut être utilisé pour fournir des inspections planifiées d’un périmètre clôturé autour d’un emplacement sécurisé.

L’architecture utilise Azure Stack Edge pour garantir que les processus à forte intensité de ressources sont exécutés localement, à proximité de la source de la vidéo. Cette conception améliore considérablement le temps de réponse du système, ce qui est important lorsqu’une réponse immédiate à une anomalie est critique.

Étant donné que les parties du système sont déployées en tant que conteneurs indépendants dans un cluster Kubernetes, vous pouvez mettre à l’échelle uniquement les sous-systèmes requis en fonction de la demande. Par exemple, si vous augmentez le nombre de caméras pour le flux vidéo, vous pouvez mettre à l’échelle le conteneur responsable de l’ingestion et du traitement vidéo pour gérer la demande, tout en conservant le reste du cluster au niveau d’origine.

Le déchargement de la fonctionnalité de détection d’objets vers Azure AI services réduit considérablement l’expertise dont vous avez besoin pour déployer cette architecture. À moins que vos besoins en matière de détection d’objets soient hautement spécialisés, l’approche prête à l’emploi que vous obtenez du service Analyse d’image est suffisante et ne nécessite pas de connaissances en apprentissage automatique.

Cas d’usage potentiels

  • Contrôle de la sécurité d’un périmètre

  • Détection d’un environnement de travail non sécurisé dans une usine

  • Détection d’anomalies dans une ligne d’assemblage automatisée

  • Détection d’un manque de liquide de dégivrage sur un avion

À propos de l’installation

Ces considérations implémentent les piliers d’Azure Well-Architected Framework, un ensemble de principes directeurs que vous pouvez utiliser pour améliorer la qualité d’une charge de travail. Pour plus d'informations, consultez Microsoft Azure Well-Architected Framework.

Fiabilité

La fiabilité permet de s’assurer que votre application tient vos engagements auprès de vos clients. Pour plus d’informations, consultez la page Vue d’ensemble du pilier de fiabilité.

L’un des principaux avantages de l’utilisation d’Azure Stack Edge est que vous obtenez des composants entièrement managés sur votre matériel local. Tous les composants Azure entièrement managés sont automatiquement résilients au niveau régional.

En outre, l’exécution du système dans un cluster Kubernetes vous permet de décharger la responsabilité de maintenir l’intégrité des sous-systèmes dans le système d’orchestration Kubernetes.

Sécurité

La sécurité fournit des garanties contre les attaques délibérées, et contre l’utilisation abusive de vos données et systèmes importants. Pour plus d’informations, consultez Vue d’ensemble du pilier Sécurité.

Les identités managées Microsoft Entra veillent à la sécurité de tous les composants de cette architecture. L’utilisation d’identités managées élimine la nécessité de stocker des secrets dans des fichiers de code ou de configuration. Il simplifie le contrôle d’accès, la gestion des informations d’identification et l’attribution de rôle.

Optimisation des coûts

L’optimisation des coûts consiste à réduire les dépenses inutiles et à améliorer l’efficacité opérationnelle. Pour plus d’informations, consultez Vue d’ensemble du pilier d’optimisation des coûts.

Pour afficher un exemple de tarification pour ce scénario, utilisez la calculatrice de prix Azure. Les composants les plus coûteux du scénario sont Azure Stack Edge et Azure Kubernetes Service. Ces services fournissent une capacité de mise à l’échelle du système pour répondre à une demande accrue à l’avenir.

Le coût d’utilisation d’Azure AI services pour la détection d’objets varie en fonction de la durée d’exécution du système. L’exemple de tarification précédent est basé sur un système qui produit une image par seconde et fonctionne pendant 8 heures par jour. Un FPS suffit pour ce scénario. Toutefois, si votre système doit s’exécuter pendant des périodes plus longues, le coût d’utilisation d’Azure AI services est plus élevé :

Efficacité des performances

L’efficacité des performances est la capacité de votre charge de travail à s’adapter à la demande des utilisateurs de façon efficace. Pour plus d’informations, consultez Vue d’ensemble du pilier d’efficacité des performances.

Comme le code est déployé dans un cluster Kubernetes, vous pouvez tirer parti des avantages de ce puissant système d’orchestration. Comme les différents sous-systèmes sont séparés en conteneurs, vous pouvez mettre à l’échelle uniquement les parties les plus exigeantes de l’application. Au niveau de base, avec un flux vidéo entrant, le système peut contenir un seul nœud dans un cluster. Cette conception simplifie considérablement la configuration initiale. À mesure que la demande de traitement des données augmente, vous pouvez facilement mettre à l’échelle le cluster en ajoutant des nœuds.

Contributeurs

Cet article est géré par Microsoft. Il a été écrit à l’origine par les contributeurs suivants.

Auteur principal :

  • Nick Sologoub | Responsable d’ingénierie de logiciel principal

Autres contributeurs :

Pour afficher les profils LinkedIn non publics, connectez-vous à LinkedIn.

Étapes suivantes

Documentation du produit :

Parcours d’apprentissage guidé :