AWS Panorama Guide du développeur - Guide du développeur
←
→
Transcription du contenu de la page
Si votre navigateur ne rend pas la page correctement, lisez s'il vous plaît le contenu de la page ci-dessous
AWS Panorama Guide du développeur AWS Panorama: Guide du développeur Copyright © Amazon Web Services, Inc. and/or its affiliates. All rights reserved. Les marques et la présentation commerciale d'Amazon ne peuvent être utilisées en relation avec un produit ou un service qui n'est pas d'Amazon, d'une manière susceptible de créer une confusion parmi les clients, ou d'une manière qui dénigre ou discrédite Amazon. Toutes les autres marques commerciales qui ne sont pas la propriété d'Amazon sont la propriété de leurs propriétaires respectifs, qui peuvent ou non être affiliés ou connectés à Amazon, ou sponsorisés par Amazon.
AWS Panorama Guide du développeur Table of Contents Qu'est-ce qu'AWS Panorama ? ............................................................................................................. 1 Commencer ....................................................................................................................................... 3 Concepts ................................................................................................................................... 4 Appliance AWS Panorama ................................................................................................... 4 Applications ....................................................................................................................... 4 Nodes ............................................................................................................................... 4 Models .............................................................................................................................. 5 Configuration .............................................................................................................................. 6 Prerequisites ...................................................................................................................... 6 Enregistrement et configuration de l'appliance AWS Panorama .................................................. 7 Mettez à niveau le logiciel de l'appliance ................................................................................ 9 Ajouter un flux de caméra .................................................................................................. 10 Étapes suivantes .............................................................................................................. 10 Déploiement d'une application ..................................................................................................... 11 Prerequisites .................................................................................................................... 11 Importez l'exemple d'application .......................................................................................... 12 Déployer l'application ......................................................................................................... 12 Activer le kit SDK pour Python ............................................................................................ 14 Nettoyage ........................................................................................................................ 14 Étapes suivantes .............................................................................................................. 14 Développement d'applications ..................................................................................................... 16 Le manifeste de l'application ............................................................................................... 16 Créer avec l'exemple d'application ....................................................................................... 19 Changer le modèle de vision par ordinateur .......................................................................... 20 Prétraitement des images ................................................................................................... 22 Téléchargement de mesures avec le kit SDK pour Python ....................................................... 22 Étapes suivantes .............................................................................................................. 24 Modèles et caméras pris en charge ............................................................................................. 25 Modèles pris en charge ..................................................................................................... 25 Appareils photo pris .......................................................................................................... 25 Spécifications de l'appliance ....................................................................................................... 27 Autorisations .................................................................................................................................... 28 Stratégies utilisateur .................................................................................................................. 29 Rôles de service ....................................................................................................................... 30 Sécurisation du rôle de l'appliance ...................................................................................... 30 Utilisation d'autres services ................................................................................................ 32 Rôle d'application ...................................................................................................................... 33 Appliance ......................................................................................................................................... 34 Gestion .................................................................................................................................... 35 Mettre à jour le logiciel de l'appliance .................................................................................. 35 Désenregistrer une appliance ............................................................................................. 35 Caméras .................................................................................................................................. 37 Suppression d'un flux ........................................................................................................ 37 Applications .............................................................................................................................. 39 Boutons et lumières .................................................................................................................. 40 Voyants d'état .................................................................................................................. 40 Lumière réseau ................................................................................................................ 40 Touches d'alimentation et de réinitialisation ........................................................................... 40 Applications ...................................................................................................................................... 42 Gestion .................................................................................................................................... 43 Déploiement d'une application ............................................................................................. 43 Mettre à jour ou copier une application ................................................................................ 44 Supprimer des versions et des applications .......................................................................... 44 Manifeste d'application ............................................................................................................... 45 iii
AWS Panorama Guide du développeur Nodes ............................................................................................................................. 46 Configuration de package ................................................................................................... 47 Edges ............................................................................................................................. 48 Parameters ...................................................................................................................... 48 Noeuds ab ....................................................................................................................... 49 Configuration au moment du déploiement avec remplacements ................................................ 50 Schéma JSON ................................................................................................................. 51 Modèles ................................................................................................................................... 52 Exemple de modèle .......................................................................................................... 52 Création d'un modèle personnalisé ...................................................................................... 52 Utilisation de modèles dans le code ..................................................................................... 53 Entraînement de modèles .................................................................................................. 54 Kit SDK AWS ........................................................................................................................... 55 Utilisation d'Amazon S3 ..................................................................................................... 55 Utilisation deAWS IoTRubrique MQTT .................................................................................. 55 OVERLAY ................................................................................................................................ 56 SDK d'application ...................................................................................................................... 57 Surveillance ..................................................................................................................................... 58 Console AWS Panorama ........................................................................................................... 59 CloudWatch Logs ...................................................................................................................... 60 Dépannage ...................................................................................................................................... 61 Configuration de l'appliance ........................................................................................................ 61 Sécurité ........................................................................................................................................... 62 Protection des données ............................................................................................................. 63 Chiffrement en transit ........................................................................................................ 63 AWS Panorama Appliance ................................................................................................. 64 Applications ...................................................................................................................... 64 Autres services ................................................................................................................. 64 Gestion des identité et des accès ............................................................................................... 65 Audience ......................................................................................................................... 65 Authentification avec des identités ....................................................................................... 65 Gestion de l'accès à l'aide de politiques ............................................................................... 68 Fonctionnement d'AWS Panorama avec IAM ........................................................................ 69 Exemples de politiques basées sur l'identité .......................................................................... 70 Stratégies gérées par AWS ................................................................................................ 71 Utilisation des rôles liés à un service ................................................................................... 73 Prévention adjointe confuse multiservices ............................................................................. 75 Dépannage ...................................................................................................................... 75 Validation de la conformité ......................................................................................................... 78 Considérations supplémentaires concernant le moment où les personnes sont présentes .............. 78 Sécurité de l'infrastructure .......................................................................................................... 79 Configuration de l'accès Internet ......................................................................................... 79 Configuration de l'accès au réseau local ............................................................................... 79 Environnement d'exécution ......................................................................................................... 81 Versions .......................................................................................................................................... 82 .................................................................................................................................................. lxxxiii iv
AWS Panorama Guide du développeur Qu'est-ce qu'AWS Panorama ? avecAWS Panorama, vous pouvez créer des applications de vision par ordinateur pour votre entreprise ou vos clients sans acheter de caméras spéciales. En utilisant leAWS PanoramaAppliance avec vos caméras réseau existantes, vous pouvez exécuter des applications utilisant l'apprentissage automatique (ML) pour collecter des données à partir de flux vidéo, générer des vidéos avec du texte et des superpositions graphiques, et interagir avec d'autresAWSServices . LeAWS PanoramaL'appliance est une appliance Edge compacte qui utilise un puissant système sur module (SOM) optimisé pour les charges de travail Machine Learning. L'appliance peut exécuter plusieurs modèles de vision par ordinateur sur plusieurs flux vidéo en parallèle et produire les résultats en temps réel. Il est conçu pour être utilisé dans des environnements commerciaux et industriels et est homologué pour la protection contre la poussière et les liquides (IP-62). LeAWS PanoramaAppliance vous permet d'exécuter des applications de vision par ordinateur autonomes à la périphérie, sans envoyer d'images vers le cloud AWS. En utilisant le kit SDK AWS, vous pouvez vous intégrer à d'autres services AWS et les utiliser pour suivre les données de l'application au fil du temps. En intégrant à d'autres services AWS, vous pouvez utiliserAWS Panoramapour effectuer les tâches suivantes : • Analyser les modèles de trafic— Utilisez le kit SDK AWS pour enregistrer des données à des fins d'analyse commerciale dans Amazon DynamoDB. Utilisez une application sans serveur pour analyser les données collectées au fil du temps, détecter les anomalies dans les données et prédire le comportement futur. • Recevoir des alertes de sécurité du site— Surveiller les zones interdites sur un site industriel. Lorsque votre application détecte une situation potentiellement dangereuse, téléchargez une image dans Amazon Simple Storage Service (Amazon S3) et envoyez une notification à une rubrique Amazon Simple Notification Service (Amazon SNS) afin que les destinataires puissent prendre des mesures correctives. • Améliorer le contrôle qualité: surveillez la sortie d'une chaîne d'assemblage pour identifier les pièces qui ne sont pas conformes aux exigences. Mettez en surbrillance des images de pièces non conformes avec du texte et un cadre de sélection et affichez-les sur un écran pour examen par votre équipe de contrôle qualité. • Collecte des données de formation et de test— Téléchargez des images d'objets que votre modèle de vision par ordinateur n'a pas pu identifier, ou où la confiance du modèle dans sa supposition était limite. Utilisez une application sans serveur pour créer une file d'attente d'images devant être balisées. Marquez les images et utilisez-les pour recycler le modèle dans Amazon SageMaker. AWS Panoramautilise d'autres services AWS pour gérer leAWS PanoramaAppliance, accédez aux modèles et au code, et déployez des applications.AWS Panoramafait autant que possible sans que vous ayez à interagir avec d'autres services, mais une connaissance des services suivants peut vous aider à comprendre commentAWS Panoramaest compatible. • SageMaker— Vous pouvez utiliser SageMaker pour collecter des données de formation à partir de caméras ou de capteurs, créer un modèle d'apprentissage automatique et le former à la vision par ordinateur.AWS Panoramautilise SageMaker Neo pour optimiser les modèles à exécuter sur leAWS PanoramaAppliance. • Amazon S3— Vous utilisez les points d'accès Amazon S3 pour mettre en scène le code d'application, les modèles et les fichiers de configuration en vue d'un déploiement sur unAWS PanoramaAppliance. • AWS IoT–AWS Panoramautilise le traitementAWS IoTservices de surveillance de l'état duAWS PanoramaAppliance, gérer les mises à jour logicielles et déployer des applications. Vous n'avez pas besoin d'utiliserAWS IoTdirectement. 1
AWS Panorama Guide du développeur Pour commencer à utiliser leAWS PanoramaAppliance et en savoir plus sur le service, continuez àMise en route avec AWS Panorama (p. 3). 2
AWS Panorama Guide du développeur Mise en route avec AWS Panorama Pour commencer à utiliserAWS Panorama, apprenez-en d'abord surles concepts du service (p. 4)et la terminologie utilisée dans ce guide. Vous pouvez ensuite utiliser l'AWS Panoramaconsoleenregistrez votreAWS PanoramaAppliance (p. 6)andCréation d'une application (p. 11). En environ une heure, vous pouvez configurer l'appareil, mettre à jour son logiciel et déployer un exemple d'application. Pour compléter les didacticiels de cette section, vous pouvez utiliser l'AWS PanoramaAppliance et caméra qui diffuse des vidéos sur un réseau local. Note Pour acheter unAWS PanoramaAppliance, visitezComment acheter. LeAWS PanoramaExemple d'application (p. 16)analyse un flux vidéo pour mesurer le nombre de personnes détectées et afficher les résultats sur un écran connecté. Il inclut un modèle qui a été formé avec SageMaker et un exemple de code qui utilise leAWS PanoramaSDK d'application pour exécuter l'inférence et la sortie vidéo. Les deux derniers sujets de ce chapitre sont détaillésexigences relatives aux modèles et aux appareils photo (p. 25), et lespécifications matérielles duAWS PanoramaAppliance (p. 27). Si vous n'avez pas encore obtenu d'appareil et de caméras, ou si vous envisagez de développer vos propres modèles de vision par ordinateur, consultez ces rubriques d'abord pour plus d'informations. Rubriques • Des concepts AWS Panorama (p. 4) • Configuration du dispositif AWS Panorama (p. 6) • Déploiement de l'exemple d'application AWS Panorama (p. 11) • Développement d'applications AWS Panorama (p. 16) • Modèles et caméras de vision par ordinateur pris en charge (p. 25) • AWS Panorama Appliance Spécifications (p. 27) 3
AWS Panorama Guide du développeur Concepts Des concepts AWS Panorama Dans AWS Panorama, vous créez des applications de vision par ordinateur et vous les déployez sur AWS Panorama Appliance pour analyser les flux vidéo provenant de caméras réseau. Vous écrivez du code d'application en Python et créez des conteneurs d'applications avec Docker. Vous utilisez l'AWS Panorama Application CLI pour importer des modèles d'apprentissage automatique localement ou à partir d'Amazon Simple Storage Service (Amazon S3). Les applications utilisent le kit SDK AWS Panorama Application pour recevoir des entrées vidéo d'une caméra et interagir avec un modèle. Concepts • Appliance AWS Panorama (p. 4) • Applications (p. 4) • Nodes (p. 4) • Models (p. 5) Appliance AWS Panorama L'appliance AWS Panorama est le matériel qui exécute vos applications. Vous utilisez la console AWS Panorama pour enregistrer une appliance, mettre à jour son logiciel et déployer des applications sur celle- ci. Le logiciel sur AWS Panorama Appliance se connecte aux flux de caméras, envoie des images vidéo à votre application et affiche la sortie vidéo sur un écran connecté. L'appliance AWS Panorama est unun appareil Edge. Au lieu d'envoyer des images vers leAWSCloud pour le traitement, il exécute des applications localement sur du matériel optimisé. Cela vous permet d'analyser la vidéo en temps réel et de traiter les résultats localement. L'appliance nécessite une connexion Internet pour signaler son état, charger des journaux et effectuer des mises à jour et des déploiements logiciels. Pour plus d'informations, consultez Gestion duAWS PanoramaAppliance (p. 34). Applications Les applications s'exécutent sur AWS Panorama Appliance pour effectuer des tâches de vision par ordinateur sur des flux vidéo. Vous pouvez créer des applications de vision par ordinateur en combinant du code Python et des modèles d'apprentissage automatique, et les déployer sur AWS Panorama Appliance via Internet. Les applications peuvent envoyer des vidéos sur un écran ou utiliser le kit SDK AWS pour envoyer des résultats aux services AWS. Pour créer et déployer des applications, vous utilisez l'AWS Panorama Application CLI. L'AWS Panorama Application CLI est un outil de ligne de commande qui génère des dossiers d'applications et des fichiers de configuration par défaut, crée des conteneurs avec Docker et télécharge des ressources. Pour plus d'informations, consultez Création d'applications AWS Panorama (p. 42). Nodes Une application comprend plusieurs composants appelésnœuds, qui représentent les entrées, les sorties, les modèles et le code. Un nœud peut être configuré uniquement (entrées et sorties) ou inclure des artefacts (modèles et code). Les nœuds d'une application sont regroupés danspackages de nœudsque vous téléchargez sur un point d'accès Amazon S3, où AWS Panorama Appliance peut y accéder. Unmanifeste d'applicationest un fichier de configuration qui définit les connexions entre les nœuds. 4
AWS Panorama Guide du développeur Models Models Un modèle de vision par ordinateur est un réseau d'apprentissage automatique formé au traitement des images. Les modèles de vision par ordinateur peuvent effectuer diverses tâches telles que la classification, la détection, la segmentation et le suivi. Un modèle de vision par ordinateur prend une image comme entrée et génère des informations sur l'image ou les objets de l'image. AWS Panorama prend en charge les modèles construits avec PyTorch, Apache MXNet et TensorFlow. Vous pouvez créer des modèles avec Amazon SageMaker ou dans votre environnement de développement. Pour de plus amples informations, veuillez consulter ??? (p. 52). 5
AWS Panorama Guide du développeur Configuration Configuration du dispositif AWS Panorama Pour commencer à utiliser votre appliance AWS Panorama, enregistrez-le dans la console AWS Panorama et mettez à jour son logiciel. Au cours du processus de configuration, vous créez une applianceRessourcedans AWS Panorama qui représente l'appliance physique et copiez des fichiers sur la solution matérielle-logicielle à l'aide d'une clé USB. L'appliance utilise ces certificats et ces fichiers de configuration pour se connecter au service AWS Panorama. Ensuite, vous utilisez la console AWS Panorama pour mettre à jour le logiciel de l'appliance et enregistrer les caméras. Sections • Prerequisites (p. 6) • Enregistrement et configuration de l'appliance AWS Panorama (p. 7) • Mettez à niveau le logiciel de l'appliance (p. 9) • Ajouter un flux de caméra (p. 10) • Étapes suivantes (p. 10) Prerequisites Pour suivre ce tutoriel, vous avez besoin d'une appliance AWS Panorama et du matériel suivant : • Display (Affichage)— Un écran avec entrée HDMI permettant de visualiser l'exemple de sortie de l'application. • Clé USB(inclus) : une clé USB au format FAT32 avec au moins 1 Go de stockage, permettant de transférer une archive contenant des fichiers de configuration et un certificat vers l'appliance AWS Panorama. • Caméra— Une caméra IP qui émet un flux vidéo RTSP. Utilisez les outils et instructions fournis par le fabricant de votre caméra pour identifier l'adresse IP et le chemin de flux de la caméra. Vous pouvez utiliser un lecteur vidéo tel queVLCpour vérifier l'URL du flux, en l'ouvrant en tant que source média réseau : La console AWS Panorama utilise d'autres services AWS pour assembler des composants d'application, gérer les autorisations et vérifier les paramètres. Pour enregistrer une appliance et déployer l'exemple d'application, vous avez besoin des autorisations suivantes : • Accès complet à AWS Panorama— Fournit un accès complet à AWS Panorama, aux points d'accès AWS Panorama dans Amazon S3, aux informations d'identification de l'appliance dansAWS Secrets 6
AWS Panorama Guide du développeur Enregistrement et configuration de l'appliance AWS Panorama Manager, et les journaux de l'appliance dans Amazon CloudWatch. Inclut l'autorisation de créer unRôle lié à un service (p. 30)pour AWS Panorama. • AWS Identity and Access Management(IAM)— Lors de la première exécution, pour créer des rôles utilisés par le service AWS Panorama et l'appliance AWS Panorama. Si vous n'êtes pas autorisé à créer des rôles dans IAM, demandez à un administrateur d'ouvrirla console AWS Panoramaet acceptez l'invite de création de rôles de service. Enregistrement et configuration de l'appliance AWS Panorama L'appliance AWS Panorama est un périphérique matériel qui se connecte à des caméras réseau via une connexion réseau locale. Il utilise un système d'exploitation Linux qui inclut le kit SDK AWS Panorama Application et un logiciel de prise en charge pour exécuter des applications de vision par ordinateur. Pour connecter àAWSpour la gestion de l'appliance et le déploiement d'applications, AWS Panorama Appliance utilise un certificat d'appareil. Vous utilisez la console AWS Panorama pour générer un certificat de provisioning. L'appliance utilise ce certificat temporaire pour terminer la configuration initiale et télécharger un certificat de périphérique permanent. Important Le certificat de provisioning que vous générez dans cette procédure n'est valide que pendant 5 minutes. Si vous ne terminez pas le processus d'inscription dans ce délai, vous devez recommencer à zéro. Pour enregistrer une appliance AWS Panorama 1. Connect la clé USB à votre ordinateur. Préparez l'appliance AWS Panorama en connectant le réseau et les câbles d'alimentation. La solution matérielle-logicielle s'allume et attend qu'une clé USB soit connectée. 2. Ouvrez la console AWS PanoramaPage de démarrage. 3. ChoisissezAjouter un appareil. 4. ChoisissezCommencer la configuration. 5. Saisissez un nom et une description pour la ressource du périphérique qui représente l'appliance dans AWS Panorama. Choisissez Suivant. 7
AWS Panorama Guide du développeur Enregistrement et configuration de l'appliance AWS Panorama 6. Si vous devez attribuer manuellement une adresse IP et des paramètres DNS, choisissezParamètres réseau avancés. Sinon, choisissez Next. 7. ChoisissezTélécharger l'archive. Choisissez Next (Suivant). 8. Copiez l'archive de configuration dans le répertoire racine du lecteur USB. 9. Connect la clé USB au port USB 3.0 situé à l'avant de l'appliance, à côté du port HDMI. Lorsque vous connectez la clé USB, l'appliance copie l'archive de configuration et le fichier de configuration réseau sur elle-même et se connecte auAWSCloud. Le voyant d'état de la solution matérielle-logicielle passe du vert au bleu lorsque la connexion est terminée, puis redevient vert. 10. Pour continuer, choisissez Suivant. 8
AWS Panorama Guide du développeur Mettez à niveau le logiciel de l'appliance 11. Sélectionnez Done (Effectué). Mettez à niveau le logiciel de l'appliance L'appliance AWS Panorama dispose de plusieurs composants logiciels, dont un système d'exploitation Linux, leAWS Panorama (p. 57), et prend en charge les bibliothèques et frameworks de vision par ordinateur. Pour vous assurer que vous pouvez utiliser les dernières fonctionnalités et applications avec votre appliance, mettez à niveau son logiciel après la configuration et chaque fois qu'une mise à jour est disponible. Pour mettre à jour le logiciel de l'appliance 1. Ouvrez la console AWS PanoramaPage des appareils. 2. Choisissez une appliance. 3. ChoisissezParamètres 4. UNDERLogiciel système, choisissezInstaller des mises à jour. 5. Choisissez une nouvelle version, puis choisissezInstall. Important Avant de continuer, retirez la clé USB de la solution matérielle-logicielle et formatez-la pour en supprimer le contenu. L'archive de configuration contient des données sensibles et n'est pas supprimée automatiquement. 9
AWS Panorama Guide du développeur Ajouter un flux de caméra Le processus de mise à niveau peut prendre 30 minutes ou plus. Vous pouvez surveiller sa progression dans la console AWS Panorama ou sur un moniteur connecté. Lorsque le processus est terminé, l'appliance redémarre. Ajouter un flux de caméra Ensuite, enregistrez un flux de caméras avec la console AWS Panorama. Pour enregistrer un flux de caméra 1. Ouvrez la console AWS PanoramaPage Sources de données. 2. ChoisissezAjouter une source de données. 3. 以下を設定します。 • Nom— Nom du flux de caméra. • Description— Une brève description de l'appareil photo, de son emplacement ou d'autres détails. • URL RTSP: URL qui spécifie l'adresse IP de la caméra et le chemin d'accès au flux. Par exemple, rtsp://192.168.0.77/live/mpeg4/ • Informations d'identification— Si le flux de caméra est protégé par un mot de passe, spécifiez le nom d'utilisateur et le mot de passe 4. Choisissez Save (Enregistrer). AWS Panorama stocke les informations d'identification de votre caméra en toute sécurité dansAWS Secrets Manager. Plusieurs applications peuvent traiter simultanément le même flux de caméra. Étapes suivantes Si vous avez rencontré des erreurs lors de la configuration, reportez-vous à la sectionTroubleshooting (p. 61). Pour déployer un exemple d'application, continuez àle sujet suivant (p. 11). 10
AWS Panorama Guide du développeur Déploiement d'une application Déploiement de l'exemple d'application AWS Panorama Après que vous ayezConfiguration de votre appliance AWS Panorama (p. 6)et mis à niveau son logiciel, déployer un exemple d'application. Dans les sections suivantes, vous importez un exemple d'application avec l'AWS Panorama Application CLI et le déployez avec la console AWS Panorama. L'exemple d'application utilise un modèle d'apprentissage automatique pour détecter les personnes dans des images vidéo à partir d'une caméra réseau. Il utilise le kit SDK AWS Panorama Application pour charger un modèle, obtenir des images et exécuter le modèle. L'application superpose ensuite les résultats au-dessus de la vidéo d'origine et les envoie sur un écran connecté. Dans un contexte de vente au détail, l'analyse des schémas de trafic pédestre vous permet de prédire les niveaux de trafic. En combinant l'analyse avec d'autres données, vous pouvez planifier des besoins accrus en personnel pendant les vacances et autres événements, mesurer l'efficacité des publicités et des promotions de vente, ou optimiser le placement de l'affichage et la gestion des stocks. Sections • Prerequisites (p. 11) • Importez l'exemple d'application (p. 12) • Déployer l'application (p. 12) • Activer le kit SDK pour Python (p. 14) • Nettoyage (p. 14) • Étapes suivantes (p. 14) Prerequisites Pour suivre les procédures décrites dans ce didacticiel, vous aurez besoin d'un shell ou d'un terminal de ligne de commande pour exécuter des commandes. Dans les listes de codes, les commandes sont précédées d'un symbole d'invite ($) et du nom du répertoire actuel, le cas échéant. ~/panorama-project$ this is a command this is output Pour les commandes longues, nous utilisons un caractère d'échappement (\) pour diviser une commande sur plusieurs lignes. Sur Linux et macOS, utilisez votre gestionnaire de shell et de package préféré. Sur Windows 10, vous pouvez installer le sous-système Windows pour Linux afin d'obtenir une version intégrée à Windows d'Ubuntu et Bash. Ce didacticiel utilise l’AWS Command Line Interface (AWS CLI) pour appeler les opérations d'API de service. Pour installerAWS CLI, voirInstallation de l'interface de ligne de commande AWSdans leAWS Command Line InterfaceGuide de l'utilisateur . Si vous avez déjà l'AWS CLI, mettez-le à niveau vers la dernière version. Dans ce didacticiel, vous utilisez Docker pour créer le conteneur qui exécute le code de votre application. Installez Docker à partir du site Web Docker : Obtenez Docker Ce didacticiel utilise l'interface de ligne de commande AWS Panorama Application pour importer l'exemple d'application, créer des packages et télécharger des artefacts. 11
AWS Panorama Guide du développeur Importez l'exemple d'application Pour installer l'interface de ligne de commande AWS Panorama Application 1. Cloner leDépôt de CLI d'applications AWS Panorama. $ git clone git@github.com:aws/aws-panorama-cli.git 2. Exécutez le script d'installation. Cela crée un lien vers l'exécutable CLI dans/usr/local/bin. panorama-cli$ ./install.sh Téléchargez l'exemple d'application et extrayez-le dans votre espace de travail. • Exemple d'application–aws-panorama-sample.zip Importez l'exemple d'application Pour importer l'exemple d'application à utiliser dans votre compte, utilisez l'interface de ligne de commande AWS Panorama Application. Les dossiers et le manifeste de l'application contiennent des références à un numéro de compte réservé. Pour les mettre à jour avec votre numéro de compte, exécutez lepanorama- cli import-applicationcommande. aws-panorama-sample$ panorama-cli import-application LeSAMPLE_CODE, dans lepackages, contient le code et la configuration de l'application, y compris un Dockerfile qui utilise l'image de base de l'application,panorama-application. Pour créer le conteneur d'applications qui s'exécute sur la solution matérielle-logicielle, utilisez lepanorama-cli build- containercommande. aws-panorama-sample$ ACCOUNT_ID=$(aws sts get-caller-identity --output text --query 'Account') aws-panorama-sample$ panorama-cli build-container --container-asset-name code_asset -- package-path packages/${ACCOUNT_ID}-SAMPLE_CODE-1.0 La dernière étape de l'AWS Panorama Application CLI consiste à enregistrer le code et les nœuds de modèle de l'application, et à télécharger des ressources vers un point d'accès Amazon S3 fourni par le service. Les ressources incluent l'image conteneur du code, le modèle et un fichier descripteur pour chacun d'eux. Pour enregistrer les nœuds et télécharger des ressources, exécutez lepanorama-cli package- applicationcommande. aws-panorama-sample$ panorama-cli package-application Uploading package model Registered model with patch version bc9c58bd6f83743f26aa347dc86bfc3dd2451b18f964a6de2cc4570cb6f891f9 Uploading package code Registered code with patch version 11fd7001cb31ea63df6aaed297d600a5ecf641a987044a0c273c78ceb3d5d806 Déployer l'application Utilisez la console AWS Panorama pour déployer l'application sur votre appliance AWS Panorama. Pour déployer l'application 1. Ouvrez la console AWS PanoramaPage Applications déployées. 12
AWS Panorama Guide du développeur Déployer l'application 2. ChoisissezDéploiement de. 3. Collez le contenu du manifeste de l'application,graphs/aws-panorama-sample/graph.json, dans l'éditeur de texte. Choisissez Next (Suivant). 4. Dans Application name (Nom de l'application), saisissez aws-panorama-sample. 5. ChoisissezProcéder au déploiement. 6. ChoisissezDémarrer le déploiement. 7. ChoisissezSuivantsans sélectionner de rôle. 8. ChoisissezSélectionner un appareil, puis choisissez votre appareil. Choisissez Next (Suivant). 9. Dans la pageSélection de sources de donnéesÉtape, choisissezAfficher les entréeset ajoutez votre flux de caméra en tant que source de données. Choisissez Next (Suivant). 10. Dans la pageConfigurationÉtape, choisissezSuivant. 11. ChoisissezDéploiement, puis choisissezTerminé. 12. Dans la liste des applications déployées, choisissezéchantillon aws-panorama. Actualisez cette page pour les mises à jour ou utilisez le script suivant pour surveiller le déploiement à partir de la ligne de commande. Example monitor-deployment.sh while true; do aws panorama list-application-instances --query 'ApplicationInstances[?Name==`aws- panorama-sample`]' sleep 10 done [ { "Name": "aws-panorama-sample", "ApplicationInstanceId": "applicationInstance-x264exmpl33gq5pchc2ekoi6uu", "DefaultRuntimeContextDeviceName": "my-appliance", "Status": "DEPLOYMENT_PENDING", "HealthStatus": "NOT_AVAILABLE", "StatusDescription": "Deployment Workflow has been scheduled.", "CreatedTime": 1630010747.443, "Arn": "arn:aws:panorama:us-west-2:123456789012:applicationInstance/ applicationInstance-x264exmpl33gq5pchc2ekoi6uu", "Tags": {} } ] [ { "Name": "aws-panorama-sample", "ApplicationInstanceId": "applicationInstance-x264exmpl33gq5pchc2ekoi6uu", "DefaultRuntimeContextDeviceName": "my-appliance", "Status": "DEPLOYMENT_PENDING", "HealthStatus": "NOT_AVAILABLE", "StatusDescription": "Deployment Workflow has completed data validation.", "CreatedTime": 1630010747.443, "Arn": "arn:aws:panorama:us-west-2:123456789012:applicationInstance/ applicationInstance-x264exmpl33gq5pchc2ekoi6uu", "Tags": {} } ] ... Lorsque le déploiement est terminé, l'application commence à traiter le flux vidéo et envoie des journaux à CloudWatch. 13
AWS Panorama Guide du développeur Activer le kit SDK pour Python Pour consulter les journaux dans CloudWatch Logs 1. Ouverture d'Page Groupes de journaux de la console CloudWatch Logs. 2. Recherchez les journaux d'applications et de dispositifs AWS Panorama dans les groupes suivants : • Système AWS Panorama Appliance–/aws/panorama/devices/device-id • Instance d'application–/aws/panorama/devices/device-id/applications/instance-id Si l'application ne démarre pas, vérifiez lejournaux des applications et des appareils (p. 60)dans Amazon CloudWatch Logs. Activer le kit SDK pour Python L'exemple d'application utilise l'exemple d'applicationAWS SDK for Python (Boto)pour envoyer des métriques à Amazon CloudWatch. Pour activer cette fonctionnalité, créez un rôle qui accorde à l'application l'autorisation d'envoyer des mesures et redéployez l'application avec le rôle attaché. L'exemple d'application inclut unAWS CloudFormationmodèle qui crée un rôle avec les autorisations dont il a besoin. Pour créer le rôle, utilisez l'aws cloudformation deploycommande. $ aws cloudformation deploy --template-file aws-panorama-sample.yml --stack-name aws- panorama-sample-runtime --capabilities CAPABILITY_NAMED_IAM Pour redéployer l'application 1. Ouvrez la console AWS PanoramaPage Applications déployées. 2. Choisissez une application. 3. Choisissez Remplacer. 4. Suivez les étapes de déploiement de l'application. DansSpécifiez le rôle IAM, choisissez le rôle que vous avez créé. Son nom commence par aws-panorama-sample-runtime. 5. Une fois le déploiement terminé, ouvrez l'Console CloudWatchet consultez les métriques dans leAWSPanoramaApplicationespace de noms. Toutes les 150 images, l'application enregistre et télécharge des mesures pour le traitement des images et le temps d'inférence. Nettoyage Si vous en avez terminé avec l'exemple d'application, vous pouvez utiliser la console AWS Panorama pour le supprimer de l'appliance. Pour supprimer l'application de l'appliance 1. Ouvrez la console AWS PanoramaPage Applications déployées. 2. Choisissez une application. 3. ChoisissezSuppression de l'appareil. Étapes suivantes Si vous avez rencontré des erreurs lors du déploiement ou de l'exécution de l'exemple d'application, reportez-vous à la sectionTroubleshooting (p. 61). 14
AWS Panorama Guide du développeur Étapes suivantes Pour de plus amples informations sur les fonctionnalités et l'implémentation de l'exemple d'application, veuillez consulterLe sujet suivant (p. 16). 15
AWS Panorama Guide du développeur Développement d'applications Développement d'applications AWS Panorama Vous pouvez utiliser l'exemple d'application pour en savoir plus sur la structure d'application AWS Panorama et comme point de départ pour votre propre application. Le schéma suivant illustre les principaux composants de l'application exécutée sur une appliance AWS Panorama. Le code de l'application utilise le kit SDK AWS Panorama Application pour obtenir des images et interagir avec le modèle, auquel il n'a pas d'accès direct. L'application produit une vidéo sur un écran connecté, mais n'envoie pas de données d'image en dehors de votre réseau local. Dans cet exemple, l'application utilise le kit SDK AWS Panorama Application pour obtenir des images vidéo à partir d'une caméra, prétraiter les données vidéo et envoyer les données à un modèle de vision par ordinateur qui détecte des objets. L'application affiche le résultat sur un écran HDMI connecté à l'appliance. Sections • Le manifeste de l'application (p. 16) • Créer avec l'exemple d'application (p. 19) • Changer le modèle de vision par ordinateur (p. 20) • Prétraitement des images (p. 22) • Téléchargement de mesures avec le kit SDK pour Python (p. 22) • Étapes suivantes (p. 24) Le manifeste de l'application Le manifeste de l'application est un fichier nommégraph.jsondans legraphsfolder. Le manifeste définit les composants de l'application, qui sont des packages, des nœuds et des tronçons. Les paquets sont des fichiers de code, de configuration et binaires pour le code d'application, les modèles, les caméras et les écrans. L'exemple d'application utilise 4 paquets : Example graphs/aws-panorama-sample/graph.json— Packages "packages": [ { 16
AWS Panorama Guide du développeur Le manifeste de l'application "name": "123456789012::SAMPLE_CODE", "version": "1.0" }, { "name": "123456789012::SQUEEZENET_PYTORCH_V1", "version": "1.0" }, { "name": "panorama::abstract_rtsp_media_source", "version": "1.0" }, { "name": "panorama::hdmi_data_sink", "version": "1.0" } ], Les deux premiers paquets sont définis dans l'application, dans lepackagesrépertoire. Ils contiennent le code et le modèle spécifiques à cette application. Les deux deuxièmes packs sont des packs d'appareils photo et d'affichage génériques fournis par le service AWS Panorama. Leabstract_rtsp_media_sourceest un espace réservé pour une caméra que vous remplacez pendant le déploiement. Lehdmi_data_sinkreprésente le connecteur de sortie HDMI de l'appareil. Les nœuds sont des interfaces vers des packages, ainsi que des paramètres autres que des packages qui peuvent avoir des valeurs par défaut que vous remplacez au moment du déploiement. Les packages de code et de modèles définissent les interfaces danspackage.jsonfichiers qui spécifient des entrées et des sorties, qui peuvent être des flux vidéo ou un type de données de base tel qu'un float, un booléen ou une chaîne. Par exemple, les recettescode_nodefait référence à une interface de laSAMPLE_CODEpackage. "nodes": [ { "name": "code_node", "interface": "123456789012::SAMPLE_CODE.interface", "overridable": false, "launch": "onAppStart" }, Cette interface est définie dans le fichier de configuration de package,package.json. L'interface spécifie que le package est une logique métier et qu'il prend un flux vidéo nommévideo_inet un numéro à virgule flottante nomméthresholden intrants. L'interface spécifie également que le code nécessite un tampon de flux vidéo nommévideo_outpour afficher une vidéo sur un écran Example packages/123456789012-SAMPLE_CODE-1.0/package.json { "nodePackage": { "envelopeVersion": "2021-01-01", "name": "SAMPLE_CODE", "version": "1.0", "description": "Computer vision application code.", "assets": [], "interfaces": [ { "name": "interface", "category": "business_logic", "asset": "code_asset", "inputs": [ { "name": "video_in", "type": "media" 17
AWS Panorama Guide du développeur Le manifeste de l'application }, { "name": "threshold", "type": "float32" } ], "outputs": [ { "description": "Video stream output", "name": "video_out", "type": "media" } ] } ] } } De retour dans le manifeste de l'application, lecamera_nodenœud représente un flux vidéo provenant d'une caméra. Il inclut un décorateur qui apparaît dans la console lorsque vous déployez l'application, ce qui vous invite à choisir un flux de caméra. Example graphs/aws-panorama-sample/graph.json— Nœud de caméra { "name": "camera_node", "interface": "panorama::abstract_rtsp_media_source.rtsp_v1_interface", "overridable": true, "launch": "onAppStart", "decorator": { "title": "Camera", "description": "Choose a camera stream." } }, Un nœud de paramètre,threshold_param, définit le paramètre de seuil de confiance utilisé par le code de l'application. Il a une valeur par défaut de 60 et peut être remplacé pendant le déploiement. Example graphs/aws-panorama-sample/graph.json— Nœud de paramètre { "name": "threshold_param", "interface": "float32", "value": 60.0, "overridable": true, "decorator": { "title": "Confidence threshold", "description": "The minimum confidence for a classification to be recorded." } } La dernière section du manifeste de la demande,edges, établit des connexions entre les nœuds. Le flux vidéo de la caméra et le paramètre seuil se connectent à l'entrée du nœud de code, et la sortie vidéo du nœud de code se connecte à l'écran. Example graphs/aws-panorama-sample/graph.json— Arcs "edges": [ { "producer": "camera_node.video_out", 18
Vous pouvez aussi lire