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.
Tutoriel : effectuer une inférence de classification d'images d'échantillons sur des images provenant d'un appareil photo à l'aide TensorFlow de Lite
Ce didacticiel explique comment utiliser le composant d'inférence de classification d'images TensorFlow Lite pour effectuer une inférence de classification d'images par exemple sur des images provenant d'une caméra en local sur un périphérique principal Greengrass. Ce composant inclut les dépendances suivantes :
-
TensorFlow Composant de magasin de modèles de classification d'images Lite
-
TensorFlow Composant d'exécution Lite
Note
Ce didacticiel accède au module caméra pour les appareils Raspberry Pi
Pour plus d'informations sur l'apprentissage automatique sur les appareils Greengrass, consultez. Exécuter l'inférence de Machine Learning
Rubriques
- Prérequis
- Étape 1 : configurer le module de caméra sur votre appareil
- Étape 2 : vérifier votre abonnement à la rubrique de notifications par défaut
- Étape 3 : modifier la configuration du composant de classification d'images TensorFlow Lite et le déployer
- Étape 4 : Afficher les résultats de l'inférence
- Étapes suivantes
Prérequis
Pour terminer ce didacticiel, vous devez d'abord le terminerTutoriel : Effectuer une inférence de classification d'images d'échantillons à l'aide TensorFlow de Lite.
Vous avez également besoin des éléments suivants :
-
Un appareil central Linux Greengrass doté d'une interface de caméra. Ce didacticiel permet d'accéder au module caméra sur l'un des appareils compatibles suivants :
-
Raspberry Pi
exécutant le système d'exploitation Raspberry Pi (auparavant appelé Raspbian)
Pour plus d'informations sur la configuration d'un appareil Greengrass Core, consultez. Didacticiel : Commencer avec AWS IoT Greengrass V2
Le périphérique principal doit répondre aux exigences suivantes :
-
Sur les appareils principaux de Greengrass exécutant Amazon Linux 2 ou Ubuntu 18.04, la version 2.27 ou ultérieure de la bibliothèque GNU C
(glibc) est installée sur l'appareil. -
Sur les appareils ARMv7L, tels que le Raspberry Pi, les dépendances pour OpenCV-Python sont installées sur l'appareil. Exécutez la commande suivante pour installer les dépendances.
sudo apt-get install libopenjp2-7 libilmbase23 libopenexr-dev libavcodec-dev libavformat-dev libswscale-dev libv4l-dev libgtk-3-0 libwebp-dev
-
Les appareils Raspberry Pi qui exécutent le système d'exploitation Raspberry Pi Bullseye doivent répondre aux exigences suivantes :
-
NumPy 1.22.4 ou version ultérieure installée sur l'appareil. Raspberry Pi OS Bullseye inclut une version antérieure de NumPy. Vous pouvez donc exécuter la commande suivante pour effectuer la mise à niveau NumPy sur l'appareil.
pip3 install --upgrade numpy
-
L'ancienne pile de caméras activée sur l'appareil. Raspberry Pi OS Bullseye inclut une nouvelle pile de caméras qui est activée par défaut et qui n'est pas compatible. Vous devez donc activer la pile de caméras existante.
Pour activer l'ancienne pile de caméras
-
Exécutez la commande suivante pour ouvrir l'outil de configuration du Raspberry Pi.
sudo raspi-config
-
Sélectionnez Options d'interface.
-
Sélectionnez Legacy camera pour activer l'ancienne pile de caméras.
-
Redémarrez l'appareil Raspberry Pi.
-
-
-
-
Pour les appareils Raspberry Pi ou NVIDIA Jetson Nano, module de caméra Raspberry Pi V2 - 8 mégapixels, 1080p
. Pour savoir comment configurer la caméra, consultez la section Connexion de la caméra dans la documentation du Raspberry Pi.
Étape 1 : configurer le module de caméra sur votre appareil
Au cours de cette étape, vous allez installer et activer le module caméra de votre appareil. Exécutez les commandes suivantes sur l'appareil.
Étape 2 : vérifier votre abonnement à la rubrique de notifications par défaut
DansTutoriel : Effectuer une inférence de classification d'images d'échantillons à l'aide TensorFlow de Lite, vous avez configuré le client AWS IoT MQTT est configuré dans la AWS IoT console pour regarder les messages MQTT publiés par le composant de classification d'images TensorFlow Lite sur le ml/tflite/image-classification
sujet. Dans la AWS IoT console, vérifiez que cet abonnement existe. Si ce n'est pas le cas, suivez les étapes décrites Étape 1 : Abonnez-vous à la rubrique de notifications par défaut pour vous abonner à cette rubrique avant de déployer le composant sur votre appareil principal Greengrass.
Étape 3 : modifier la configuration du composant de classification d'images TensorFlow Lite et le déployer
Au cours de cette étape, vous configurez et déployez le composant de classification d'images TensorFlow Lite sur votre appareil principal :
-
Dans le menu de navigation de la AWS IoT Greengrassconsole
, sélectionnez Composants. -
Sur la page Components (Composants), sous l'onglet Public components (Composants publics), choisissez
aws.greengrass.TensorFlowLiteImageClassification
. -
Sur la page aws.greengrass.TensorFlowLiteImageClassification, choisissez Deploy (Déployer).
-
Dans Ajouter au déploiement, sélectionnez l'une des options suivantes :
-
Pour fusionner ce composant avec un déploiement existant sur votre dispositif cible, choisissez Add to existing deployment (Ajouter à un déploiement existant), puis sélectionnez le déploiement à réviser.
-
Pour créer un nouveau déploiement sur votre dispositif cible, choisissez Create new deployment (Créer un déploiement). S'il existe un déploiement sur votre dispositif et que vous choisissez cette étape, le déploiement existant sera remplacé.
-
-
Sur la page Specify target (Spécifier une cible), procédez comme suit :
-
Sous Deployment information (Informations sur le déploiement), saisissez ou modifiez le nom convivial de votre déploiement.
-
Sous Deployment targets (Cibles de déploiement), sélectionnez une cible pour votre déploiement, puis choisissez Next (Suivant). Vous ne pouvez pas modifier la cible de déploiement si vous révisez un déploiement existant.
-
-
Sur la page Sélectionner les composants, sous Composants publics, vérifiez que le
aws.greengrass.TensorFlowLiteImageClassification
composant est sélectionné, puis choisissez Next. -
Sur la page Configurer les composants, procédez comme suit :
-
Sélectionnez le composant d'inférence, puis sélectionnez Configurer le composant.
-
Sous Mise à jour de configuration, entrez la mise à jour de configuration suivante dans la zone Configuration à fusionner.
{ "InferenceInterval": "60", "UseCamera": "true" }
Avec cette mise à jour de configuration, le composant accède au module de caméra de votre appareil et effectue des inférences sur les images prises par la caméra. Le code d'inférence s'exécute toutes les 60 secondes.
-
Choisissez Confirm (Confirmer), puis Next (Suivant).
-
-
Sur la page Configure advanced settings (Configurer les paramètres avancés), conservez les paramètres de configuration par défaut et choisissez Next (Suivant).
-
Sur la page de révision, choisissez Déployer
-
Créez un
deployment.json
fichier pour définir la configuration de déploiement du composant de classification d'images TensorFlow Lite. Ce fichier doit ressembler à ce qui suit :{ "targetArn":"
targetArn
", "components": { "aws.greengrass.TensorFlowLiteImageClassification": { "componentVersion":2.1.0
, "configurationUpdate": { "InferenceInterval": "60", "UseCamera": "true" } } } }-
Dans le champ
targetArn
, remplacez
par l'Amazon Resource Name (ARN) de l'objet ou du groupe d'objets à cibler pour le déploiement, au format suivant :targetArn
-
Objet :
arn:aws:iot:
region
:account-id
:thing/thingName
-
Groupe d'objets :
arn:aws:iot:
region
:account-id
:thinggroup/thingGroupName
-
-
Ce didacticiel utilise la version 2.1.0 du composant. Dans l'objet
aws.greengrass.TensorFlowLiteImageClassification
composant, remplacez2.1.0
pour utiliser une version différente du composant de classification d'images TensorFlow Lite.
Avec cette mise à jour de configuration, le composant accède au module de caméra de votre appareil et effectue des inférences sur les images prises par la caméra. Le code d'inférence s'exécute toutes les 60 secondes. Remplacez les valeurs suivantes
-
-
Exécutez la commande suivante pour déployer le composant de classification d'images TensorFlow Lite sur le périphérique :
aws greengrassv2 create-deployment \ --cli-input-json file://
path/to/
deployment.json
L'exécution du déploiement peut prendre plusieurs minutes. À l'étape suivante, vérifiez le journal des composants pour vous assurer que le déploiement s'est terminé avec succès et afficher les résultats des inférences.
Étape 4 : Afficher les résultats de l'inférence
Après avoir déployé le composant, vous pouvez consulter les résultats de l'inférence dans le journal du composant sur votre périphérique principal Greengrass et dans AWS IoT le client MQTT de la console. AWS IoT Pour vous abonner à la rubrique sur laquelle le composant publie les résultats d'inférence, consultezÉtape 2 : vérifier votre abonnement à la rubrique de notifications par défaut.
Rubriques
-
AWS IoTClient MQTT : pour afficher les résultats publiés par le composant d'inférence dans la rubrique des notifications par défaut, procédez comme suit :
-
Dans le menu de navigation de la AWS IoTconsole
, choisissez Test, client de test MQTT. -
Sous Abonnements, sélectionnez
ml/tflite/image-classification
.
-
-
Journal des composants : pour afficher les résultats de l'inférence dans le journal des composants, exécutez la commande suivante sur votre appareil principal Greengrass.
sudo tail -f
/logs/aws.greengrass.TensorFlowLiteImageClassification.log/greengrass/v2
Si vous ne pouvez pas voir les résultats d'inférence dans le journal des composants ou dans le client MQTT, cela signifie que le déploiement a échoué ou n'a pas atteint le périphérique principal. Cela peut se produire si votre appareil principal n'est pas connecté à Internet ou ne dispose pas des autorisations requises pour exécuter le composant. Exécutez la commande suivante sur votre appareil principal pour afficher le fichier journal du logiciel AWS IoT Greengrass Core. Ce fichier inclut les journaux du service de déploiement de l'appareil principal Greengrass.
sudo tail -f
/logs/greengrass.log
/greengrass/v2
Pour plus d’informations, consultez Résolution des problèmes liés à l'inférence par apprentissage automatique.
Étapes suivantes
Ce didacticiel explique comment utiliser le composant de classification d'images TensorFlow Lite, avec des options de configuration personnalisées pour effectuer une classification d'images d'échantillons sur des images prises par un appareil photo.
Pour plus d'informations sur la personnalisation de la configuration des composants publics ou la création de composants d'apprentissage automatique personnalisés, consultezPersonnalisez vos composants d'apprentissage automatique.