AWS Panorama Guide du développeur - Guide du développeur

La page est créée Éric Coste
 
CONTINUER À LIRE
AWS Panorama Guide du développeur - Guide du développeur
AWS Panorama
Guide du développeur
AWS Panorama Guide du développeur - Guide du développeur
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 - Guide du développeur
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 - Guide du développeur
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 - Guide du développeur
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