TensorFlow Classification d'images Lite - AWS IoT Greengrass

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.

TensorFlow Classification d'images Lite

Le composant de classification d'images TensorFlow Lite (aws.greengrass.TensorFlowLiteImageClassification) contient un exemple de code d'inférence permettant d'effectuer une inférence de classification d'images à l'aide du moteur d'exécution TensorFlow Lite et un exemple de modèle quantifié MobileNet 1.0 préentraîné. Ce composant utilise la variante TensorFlow Boutique de modèles de classification d'images Lite et les TensorFlow Temps d'exécution allégé composants comme dépendances pour télécharger le runtime TensorFlow Lite et le modèle d'exemple.

Pour utiliser ce composant d'inférence avec un modèle TensorFlow Lite entraîné sur mesure, créez une version personnalisée du composant Model Store dépendant. Pour utiliser votre propre code d'inférence personnalisé, vous pouvez utiliser la recette de ce composant comme modèle pour créer un composant d'inférence personnalisé.

Versions

Les versions de ce composant sont les suivantes :

  • 2,1x

Type

Ce composant est un composant générique (aws.greengrass.generic). Le noyau Greengrass exécute les scripts de cycle de vie du composant.

Pour plus d’informations, consultez Types de composants.

Système d’exploitation

Ce composant peut être installé sur les appareils principaux qui exécutent les systèmes d'exploitation suivants :

  • Linux

  • Windows

Prérequis

Ce composant répond 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
      1. Exécutez la commande suivante pour ouvrir l'outil de configuration du Raspberry Pi.

        sudo raspi-config
      2. Sélectionnez Options d'interface.

      3. Sélectionnez Legacy camera pour activer l'ancienne pile de caméras.

      4. Redémarrez l'appareil Raspberry Pi.

Dépendances

Lorsque vous déployez un composant, il déploie AWS IoT Greengrass également des versions compatibles de ses dépendances. Cela signifie que vous devez satisfaire aux exigences relatives au composant et à toutes ses dépendances pour réussir le déploiement du composant. Cette section répertorie les dépendances des versions publiées de ce composant et les contraintes de version sémantiques qui définissent les versions des composants pour chaque dépendance. Vous pouvez également consulter les dépendances de chaque version du composant dans la AWS IoT Greengrass console. Sur la page de détails du composant, recherchez la liste des dépendances.

2.1.11 and 2.1.12

Le tableau suivant répertorie les dépendances pour les versions 2.1.11 et 2.1.12 de ce composant.

Dépendance Versions compatibles Type de dépendance
Noyau de Greengrass >=2,0,0 <2,13,0 Flexible
TensorFlow Boutique de modèles de classification d'images Lite >=2,10 <2,2,0 Stricte
TensorFlow Lite >=2,5,0 <2,6,0 Stricte
2.1.10

Le tableau suivant répertorie les dépendances pour la version 2.1.10 de ce composant.

Dépendance Versions compatibles Type de dépendance
Noyau de Greengrass >=2,0.0 <2,12.0 Flexible
TensorFlow Boutique de modèles de classification d'images Lite >=2,10 <2,2,0 Stricte
TensorFlow Lite >=2,5,0 <2,6,0 Stricte
2.1.9

Le tableau suivant répertorie les dépendances pour la version 2.1.9 de ce composant.

Dépendance Versions compatibles Type de dépendance
Noyau de Greengrass >=2,0.0 <2,11.0 Flexible
TensorFlow Boutique de modèles de classification d'images Lite >=2,10 <2,2,0 Stricte
TensorFlow Lite >=2,5,0 <2,6,0 Stricte
2.1.8

Le tableau suivant répertorie les dépendances pour la version 2.1.8 de ce composant.

Dépendance Versions compatibles Type de dépendance
Noyau de Greengrass >=2,0,0 <2,1,0 Flexible
TensorFlow Boutique de modèles de classification d'images Lite >=2,10 <2,2,0 Stricte
TensorFlow Lite >=2,5,0 <2,6,0 Stricte
2.1.7

Le tableau suivant répertorie les dépendances pour la version 2.1.7 de ce composant.

Dépendance Versions compatibles Type de dépendance
Noyau de Greengrass >=2,0.0 <2,9.0 Flexible
TensorFlow Boutique de modèles de classification d'images Lite >=2,10 <2,2,0 Stricte
TensorFlow Lite >=2,5,0 <2,6,0 Stricte
2.1.6

Le tableau suivant répertorie les dépendances pour la version 2.1.6 de ce composant.

Dépendance Versions compatibles Type de dépendance
Noyau de Greengrass >=2,0.0 <2,8.0 Flexible
TensorFlow Boutique de modèles de classification d'images Lite >=2,10 <2,2,0 Stricte
TensorFlow Lite >=2,5,0 <2,6,0 Stricte
2.1.5

Le tableau suivant répertorie les dépendances pour la version 2.1.5 de ce composant.

Dépendance Versions compatibles Type de dépendance
Noyau de Greengrass >=2,0.0 <2,7.0 Flexible
TensorFlow Boutique de modèles de classification d'images Lite >=2,10 <2,2,0 Stricte
TensorFlow Lite >=2,5,0 <2,6,0 Stricte
2.1.4

Le tableau suivant répertorie les dépendances pour la version 2.1.4 de ce composant.

Dépendance Versions compatibles Type de dépendance
Noyau de Greengrass >=2,0.0 <2,6.0 Flexible
TensorFlow Boutique de modèles de classification d'images Lite >=2,10 <2,2,0 Stricte
TensorFlow Lite >=2,5,0 <2,6,0 Stricte
2.1.3

Le tableau suivant répertorie les dépendances pour la version 2.1.3 de ce composant.

Dépendance Versions compatibles Type de dépendance
Noyau de Greengrass >=2,0.0 <2,5.0 Flexible
TensorFlow Boutique de modèles de classification d'images Lite >=2,10 <2,2,0 Stricte
TensorFlow Lite >=2,5,0 <2,6,0 Stricte
2.1.2

Le tableau suivant répertorie les dépendances pour la version 2.1.2 de ce composant.

Dépendance Versions compatibles Type de dépendance
Noyau de Greengrass >=2,0.0 <2,4.0 Flexible
TensorFlow Boutique de modèles de classification d'images Lite >=2,10 <2,2,0 Stricte
TensorFlow Lite >=2,5,0 <2,6,0 Stricte
2.1.1

Le tableau suivant répertorie les dépendances pour la version 2.1.1 de ce composant.

Dépendance Versions compatibles Type de dépendance
Noyau de Greengrass >=2,0.0 <2,3.0 Flexible
TensorFlow Boutique de modèles de classification d'images Lite >=2,10 <2,2,0 Stricte
TensorFlow Lite >=2,5,0 <2,6,0 Stricte
2.1.0

Le tableau suivant répertorie les dépendances pour la version 2.1.0 de ce composant.

Dépendance Versions compatibles Type de dépendance
Noyau de Greengrass >=2,0.0 <2,2.0 Flexible
TensorFlow Boutique de modèles de classification d'images Lite >=2,10 <2,2,0 Stricte
TensorFlow Lite >=2,5,0 <2,6,0 Stricte

Configuration

Ce composant fournit les paramètres de configuration suivants que vous pouvez personnaliser lorsque vous déployez le composant.

accessControl

(Facultatif) Objet contenant la politique d'autorisation qui permet au composant de publier des messages dans la rubrique de notifications par défaut.

Par défaut :

{ "aws.greengrass.ipc.mqttproxy": { "aws.greengrass.TensorFlowLiteImageClassification:mqttproxy:1": { "policyDescription": "Allows access to publish via topic ml/tflite/image-classification.", "operations": [ "aws.greengrass#PublishToIoTCore" ], "resources": [ "ml/tflite/image-classification" ] } } }
PublishResultsOnTopic

(Facultatif) Rubrique sur laquelle vous souhaitez publier les résultats de l'inférence. Si vous modifiez cette valeur, vous devez également modifier la valeur de resources dans le accessControl paramètre pour qu'elle corresponde au nom de votre rubrique personnalisée.

Par défaut : ml/tflite/image-classification

Accelerator

L'accélérateur que vous souhaitez utiliser. Les valeurs prises en charge sont cpu et gpu.

Les modèles d'exemple du composant du modèle dépendant ne prennent en charge que l'accélération du processeur. Pour utiliser l'accélération GPU avec un autre modèle personnalisé, créez un composant de modèle personnalisé pour remplacer le composant de modèle public.

Par défaut : cpu

ImageDirectory

(Facultatif) Le chemin du dossier sur le périphérique où les composants d'inférence lisent les images. Vous pouvez modifier cette valeur en fonction de n'importe quel emplacement de votre appareil auquel vous avez accès en lecture/écriture.

Par défaut : /greengrass/v2/packages/artifacts-unarchived/component-name/image_classification/sample_images/

Note

Si vous définissez la valeur de UseCamera totrue, ce paramètre de configuration est ignoré.

ImageName

(Facultatif) Nom de l'image que le composant d'inférence utilise comme entrée pour effectuer une prédiction. Le composant recherche l'image dans le dossier spécifié dansImageDirectory. Par défaut, le composant utilise l'image d'exemple dans le répertoire d'images par défaut. AWS IoT Greengrass prend en charge les formats d'image suivants : jpegjpg,png, etnpy.

Par défaut : cat.jpeg

Note

Si vous définissez la valeur de UseCamera totrue, ce paramètre de configuration est ignoré.

InferenceInterval

(Facultatif) Le délai en secondes entre chaque prédiction effectuée par le code d'inférence. L'exemple de code d'inférence s'exécute indéfiniment et répète ses prédictions à l'intervalle de temps spécifié. Par exemple, vous pouvez réduire cet intervalle si vous souhaitez utiliser des images prises par une caméra pour des prévisions en temps réel.

Par défaut : 3600

ModelResourceKey

(Facultatif) Les modèles utilisés dans le composant de modèle public dépendant. Modifiez ce paramètre uniquement si vous remplacez le composant du modèle public par un composant personnalisé.

Par défaut :

{ "model": "TensorFlowLite-Mobilenet" }
UseCamera

(Facultatif) Valeur de chaîne qui définit s'il faut utiliser les images d'une caméra connectée au périphérique principal de Greengrass. Les valeurs prises en charge sont true et false.

Lorsque vous définissez cette valeur surtrue, l'exemple de code d'inférence accède à la caméra de votre appareil et exécute l'inférence localement sur l'image capturée. Les valeurs des ImageDirectory paramètres ImageName et sont ignorées. Assurez-vous que l'utilisateur exécutant ce composant dispose d'un accès en lecture/écriture à l'emplacement où l'appareil photo stocke les images capturées.

Par défaut : false

Note

Lorsque vous consultez la recette de ce composant, le paramètre UseCamera de configuration n'apparaît pas dans la configuration par défaut. Toutefois, vous pouvez modifier la valeur de ce paramètre dans une mise à jour de fusion de configuration lorsque vous déployez le composant.

Lorsque vous définissez sur UseCameratrue, vous devez également créer un lien symbolique pour permettre au composant d'inférence d'accéder à votre caméra depuis l'environnement virtuel créé par le composant d'exécution. Pour plus d'informations sur l'utilisation d'une caméra avec les composants d'inférence d'échantillons, consultezMettre à jour les configurations des composants.

Fichier journal local

Ce composant utilise le fichier journal suivant.

Linux
/greengrass/v2/logs/aws.greengrass.TensorFlowLiteImageClassification.log
Windows
C:\greengrass\v2\logs\aws.greengrass.TensorFlowLiteImageClassification.log
Pour consulter les journaux de ce composant
  • Exécutez la commande suivante sur le périphérique principal pour afficher le fichier journal de ce composant en temps réel. Remplacez /greengrass/v2 C:\greengrass\v2 par le chemin d'accès au dossier AWS IoT Greengrass racine.

    Linux
    sudo tail -f /greengrass/v2/logs/aws.greengrass.TensorFlowLiteImageClassification.log
    Windows (PowerShell)
    Get-Content C:\greengrass\v2\logs\aws.greengrass.TensorFlowLiteImageClassification.log -Tail 10 -Wait

Journal des modifications

Le tableau suivant décrit les modifications apportées à chaque version du composant.

Version

Modifications

2.1.12

Version mise à jour pour la version 2.12.5 de Greengrass Nucleus.

2.1.11

Version mise à jour pour la version 2.12.0 de Greengrass Nucleus.

2.1.10

Version mise à jour pour la version 2.11.0 de Greengrass Nucleus.

2.1.9

Version mise à jour pour la version 2.10.0 de Greengrass Nucleus.

2.1.8

Version mise à jour pour la version 2.9.0 de Greengrass Nucleus.

2.1.7

Version mise à jour pour la version 2.8.0 de Greengrass Nucleus.

2.1.6

Version mise à jour pour la version 2.7.0 de Greengrass Nucleus.

2.1.5

Version mise à jour pour la version 2.6.0 de Greengrass Nucleus.

2.1.4

Version mise à jour pour la version 2.5.0 de Greengrass Nucleus.

2.1.3

Version mise à jour pour la version 2.4.0 de Greengrass Nucleus.

2.1.2

Version mise à jour pour la version 2.3.0 de Greengrass Nucleus.

2.1.1

Version mise à jour pour la version 2.2.0 de Greengrass Nucleus.

2.1.0

Première version.