Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Déploiement de l'exemple d'application AWS Panorama
Après avoir configuré votre appliance AWS Panorama ou votre appareil compatible et mis à jour son logiciel, déployez un exemple d'application. Dans les sections suivantes, vous allez importer un exemple d'application avec la CLI d'application AWS Panorama et le déployer avec la console AWS Panorama.
L'exemple d'application utilise un modèle d'apprentissage automatique pour classer les objets dans des images vidéo provenant d'une caméra réseau. Il utilise le SDK d'application AWS Panorama pour charger un modèle, obtenir des images et exécuter le modèle. L'application superpose ensuite les résultats sur la vidéo d'origine et les affiche sur un écran connecté.
Dans un environnement de vente au détail, l'analyse des modèles de trafic piétonnier vous permet de prévoir les niveaux de trafic. En combinant l'analyse avec d'autres données, vous pouvez planifier l'augmentation des besoins en personnel pendant les fêtes et autres événements, mesurer l'efficacité des publicités et des promotions des ventes, ou optimiser le placement des présentoirs et la gestion des stocks.
Sections
Prérequis
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
Vous utilisez Python pour développer des applications AWS Panorama et installer des outils avec pip, le gestionnaire de packages de Python. Si vous n'avez pas encore Python, installez la dernière version
Dans ce didacticiel, vous utiliserez Docker pour créer le conteneur qui exécute le code de votre application. Installez Docker depuis le site Web de Docker : Get Docker
Ce didacticiel utilise la CLI d'application AWS Panorama pour importer l'exemple d'application, créer des packages et télécharger des artefacts. La CLI de l'application AWS Panorama utilise le AWS Command Line Interface (AWS CLI) pour appeler les opérations de l'API de service. Si vous l'avez déjà AWS CLI, mettez-le à niveau vers la dernière version. Pour installer la CLI de l'application AWS Panorama et AWS CLI utilisezpip
.
$
pip3 install --upgrade awscli panoramacli
Téléchargez l'exemple d'application et extrayez-le dans votre espace de travail.
-
Exemple d'application : aws-panorama-sample.zip
Importer l'exemple d'application
Pour importer l'exemple d'application à utiliser dans votre compte, utilisez l'interface de ligne de commande de l'application AWS Panorama. Les dossiers et le manifeste de l'application contiennent des références à un numéro de compte fictif. Pour les mettre à jour avec votre numéro de compte, exécutez la panorama-cli import-application
commande.
aws-panorama-sample$ panorama-cli import-application
Le SAMPLE_CODE
package, dans le packages
répertoire, 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 l'appliance, utilisez la panorama-cli build-container
commande.
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 avec la CLI d'application AWS Panorama consiste à enregistrer le code et les nœuds de modèle de l'application, puis à télécharger les ressources vers un point d'accès Amazon S3 fourni par le service. Les actifs incluent l'image du conteneur du code, le modèle et un fichier descripteur pour chacun d'eux. Pour enregistrer les nœuds et télécharger des actifs, exécutez la panorama-cli
package-application
commande.
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.
Pour déployer l'application
Ouvrez la page des applications déployées
de la console AWS Panorama. -
Choisissez Déployer l'application.
-
Collez le contenu du manifeste de l'application dans l'éditeur de texte.
graphs/aws-panorama-sample/graph.json
Choisissez Suivant. -
Pour Nom de l’application, saisissez
aws-panorama-sample
. -
Choisissez Proceed to deploy.
-
Choisissez Commencer le déploiement.
-
Choisissez Next sans sélectionner de rôle.
-
Choisissez Sélectionner un appareil, puis choisissez votre appareil. Choisissez Suivant.
-
À l'étape Sélectionner les sources de données, choisissez Afficher les entrées et ajoutez le flux de votre caméra en tant que source de données. Choisissez Suivant.
-
À l'étape Configurer, choisissez Next.
-
Choisissez Déployer, puis cliquez sur Terminé.
-
Dans la liste des applications déployées, sélectionnez aws-panorama-sample.
Actualisez cette page pour les mises à jour ou utilisez le script suivant pour surveiller le déploiement à partir de la ligne de commande.
Exemple 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": {}
}
]
...
Si l'application ne démarre pas, consultez les journaux de l'application et de l'appareil dans Amazon CloudWatch Logs.
Afficher le résultat
Lorsque le déploiement est terminé, l'application commence à traiter le flux vidéo et envoie les journaux à CloudWatch.
Pour afficher les journaux dans CloudWatch Logs
-
Ouvrez la page Groupes de journaux de la console CloudWatch Logs
. -
Trouvez les journaux de l'application et de l'appliance AWS Panorama dans les groupes suivants :
-
Journaux de l'appareil —
/aws/panorama/devices/
device-id
-
Journaux des applications —
/aws/panorama/devices/
device-id
/applications/instance-id
-
2022-08-26 17:43:39 INFO INITIALIZING APPLICATION 2022-08-26 17:43:39 INFO ## ENVIRONMENT VARIABLES {'PATH': '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin', 'TERM': 'xterm', 'container': 'podman'...} 2022-08-26 17:43:39 INFO Configuring parameters. 2022-08-26 17:43:39 INFO Configuring AWS SDK for Python. 2022-08-26 17:43:39 INFO Initialization complete. 2022-08-26 17:43:39 INFO PROCESSING STREAMS 2022-08-26 17:46:19 INFO epoch length: 160.183 s (0.936 FPS) 2022-08-26 17:46:19 INFO avg inference time: 805.597 ms 2022-08-26 17:46:19 INFO max inference time: 120023.984 ms 2022-08-26 17:46:19 INFO avg frame processing time: 1065.129 ms 2022-08-26 17:46:19 INFO max frame processing time: 149813.972 ms 2022-08-26 17:46:29 INFO epoch length: 10.562 s (14.202 FPS) 2022-08-26 17:46:29 INFO avg inference time: 7.185 ms 2022-08-26 17:46:29 INFO max inference time: 15.693 ms 2022-08-26 17:46:29 INFO avg frame processing time: 66.561 ms 2022-08-26 17:46:29 INFO max frame processing time: 123.774 ms
Pour afficher la sortie vidéo de l'application, connectez l'appareil à un moniteur à l'aide d'un câble HDMI. Par défaut, l'application affiche tout résultat de classification dont le niveau de confiance est supérieur à 20 %.
Exemple squeezenet_classes.json
["tench", "goldfish", "great white shark", "tiger shark", "hammerhead", "electric ray", "stingray", "cock", "hen", "ostrich", "brambling", "goldfinch", "house finch", "junco", "indigo bunting", "robin", "bulbul", "jay", "magpie", "chickadee", "water ouzel", "kite", "bald eagle", "vulture", "great grey owl", "European fire salamander", "common newt", "eft", "spotted salamander", "axolotl", "bullfrog", "tree frog", ...
Le modèle d'échantillon comprend 1 000 classes comprenant de nombreux animaux, de la nourriture et des objets courants. Essayez de diriger votre appareil photo vers un clavier ou une tasse à café.

Pour des raisons de simplicité, l'exemple d'application utilise un modèle de classification léger. Le modèle produit un seul tableau avec une probabilité pour chacune de ses classes. Les applications du monde réel utilisent plus fréquemment des modèles de détection d'objets dotés d'une sortie multidimensionnelle. Pour des exemples d'applications avec des modèles plus complexes, voirExemples d'applications, de scripts et de modèles.
Activer le SDK pour Python
L'exemple d'application utilise le AWS SDK for Python (Boto) pour envoyer des métriques à Amazon CloudWatch. Pour activer cette fonctionnalité, créez un rôle qui autorise l'application à envoyer des métriques, puis redéployez l'application avec le rôle associé.
L'exemple d'application inclut un AWS CloudFormation modèle qui crée un rôle doté des autorisations nécessaires. Pour créer le rôle, utilisez la aws cloudformation deploy
commande.
$
aws cloudformation deploy --template-file aws-panorama-sample.yml --stack-name aws-panorama-sample-runtime --capabilities CAPABILITY_NAMED_IAM
Pour redéployer l'application
Ouvrez la page des applications déployées
de la console AWS Panorama. Choisissez une application.
-
Choisissez Remplacer.
-
Suivez les étapes pour déployer l'application. Dans le champ Spécifier le rôle IAM, choisissez le rôle que vous avez créé. Son nom commence par
aws-panorama-sample-runtime
. -
Lorsque le déploiement est terminé, ouvrez la CloudWatchconsole
et consultez les métriques dans l'espace de AWSPanoramaApplication
noms. Toutes les 150 images, l'application enregistre et télécharge des métriques pour le traitement des images et le temps d'inférence.
Nettoyage
Si vous avez terminé d'utiliser l'exemple d'application, vous pouvez utiliser la console AWS Panorama pour le supprimer de l'appliance.
Pour supprimer l'application de l'appliance
Ouvrez la page des applications déployées
de la console AWS Panorama. Choisissez une application.
-
Choisissez Supprimer 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, consultezRésolution des problèmes.
Pour en savoir plus sur les fonctionnalités et la mise en œuvre de l'exemple d'application, passez à la rubrique suivante.