Détection d'objets DLR - 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.

Détection d'objets DLR

Le composant de détection d'objets DLR (aws.greengrass.DLRObjectDetection) contient un exemple de code d'inférence pour effectuer une inférence de détection d'objets à l'aide du Deep Learning Runtime et des exemples de modèles préentraînés. Ce composant utilise la variante Model Store dédié à la détection d'objets DLR et les Temps d'exécution du DLR composants comme dépendances pour télécharger le DLR et les exemples de modèles.

Pour utiliser ce composant d'inférence avec un modèle DLR 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

  • 2,0.x

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 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.13 and 2.1.14

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

Dépendance Versions compatibles Type de dépendance
Noyau de Greengrass >=2,0,0 <2,13,0 Flexible
Model Store dédié à la détection d'objets DLR ~2,10 Stricte
DLR ~1,6,0 Stricte
2.1.12

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

Dépendance Versions compatibles Type de dépendance
Noyau de Greengrass >=2,0.0 <2,12.0 Flexible
Model Store dédié à la détection d'objets DLR ~2,10 Stricte
DLR ~1,6,0 Stricte
2.1.11

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

Dépendance Versions compatibles Type de dépendance
Noyau de Greengrass >=2,0.0 <2,11.0 Flexible
Model Store dédié à la détection d'objets DLR ~2,10 Stricte
DLR ~1,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,1,0 Flexible
Model Store dédié à la détection d'objets DLR ~2,10 Stricte
DLR ~1,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,9.0 Flexible
Model Store dédié à la détection d'objets DLR ~2,10 Stricte
DLR ~1,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,8.0 Flexible
Model Store dédié à la détection d'objets DLR ~2,10 Stricte
DLR ~1,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,7.0 Flexible
Model Store dédié à la détection d'objets DLR ~2,10 Stricte
DLR ~1,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,6.0 Flexible
Model Store dédié à la détection d'objets DLR ~2,10 Stricte
DLR ~1,6,0 Stricte
2.1.4 - 2.1.5

Le tableau suivant répertorie les dépendances pour les versions 2.1.4 à 2.1.5 de ce composant.

Dépendance Versions compatibles Type de dépendance
Noyau de Greengrass >=2,0.0 <2,5.0 Flexible
Model Store dédié à la détection d'objets DLR ~2,10 Stricte
DLR ~1,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,4.0 Flexible
Model Store dédié à la détection d'objets DLR ~2,10 Stricte
DLR ~1,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,3.0 Flexible
Model Store dédié à la détection d'objets DLR ~2,10 Stricte
DLR ~1,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,2.0 Flexible
Model Store dédié à la détection d'objets DLR ~2,10 Stricte
DLR ~1,6,0 Stricte
2.0.x

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

Dépendance Versions compatibles Type de dépendance
Noyau de Greengrass ~2,0.0 Flexible
Model Store dédié à la détection d'objets DLR ~2,0.0 Stricte
DLR ~1,3,0 Flexible

Configuration

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

2.1.x
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.DLRObjectDetection:mqttproxy:1": { "policyDescription": "Allows access to publish via topic ml/dlr/object-detection.", "operations": [ "aws.greengrass#PublishToIoTCore" ], "resources": [ "ml/dlr/object-detection" ] } } }
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/dlr/object-detection

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/object_detection/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 : objects.jpg

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 :

{ "armv7l": "DLR-yolo3-armv7l-cpu-ObjectDetection", "aarch64": "DLR-yolo3-aarch64-gpu-ObjectDetection", "x86_64": "DLR-yolo3-x86_64-cpu-ObjectDetection", "windows": "DLR-resnet50-win-cpu-ObjectDetection" }
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.

2.0.x
MLRootPath

(Facultatif) Le chemin du dossier sur les périphériques principaux Linux où les composants d'inférence lisent les images et écrivent les résultats d'inférence. Vous pouvez modifier cette valeur à n'importe quel emplacement de votre appareil auquel l'utilisateur exécutant ce composant dispose d'un accès en lecture/écriture.

Par défaut : /greengrass/v2/work/variant.DLR/greengrass_ml

Par défaut : /greengrass/v2/work/variant.TensorFlowLite/greengrass_ml

Accelerator

Ne le modifiez pas. Actuellement, la seule valeur prise en charge pour l'accélérateur est cpu que les modèles des composants du modèle dépendant sont compilés uniquement pour l'accélérateur CPU.

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. L'emplacement par défaut estMLRootPath/images. AWS IoT Greengrass prend en charge les formats d'image suivants : jpegjpg,png, etnpy.

Par défaut : objects.jpg

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 :

{ armv7l: "DLR-yolo3-armv7l-cpu-ObjectDetection", x86_64: "DLR-yolo3-x86_64-cpu-ObjectDetection" }

Fichier journal local

Ce composant utilise le fichier journal suivant.

Linux
/greengrass/v2/logs/aws.greengrass.DLRObjectDetection.log
Windows
C:\greengrass\v2\logs\aws.greengrass.DLRObjectDetection.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.DLRObjectDetection.log
    Windows (PowerShell)
    Get-Content C:\greengrass\v2\logs\aws.greengrass.DLRObjectDetection.log -Tail 10 -Wait

Journal des modifications

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

Version

Modifications

2.1.14

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

2.1.13

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

2.1.12

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

2.1.11

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

2.1.10

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

2.1.9

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

2.1.8

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

2.1.7

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

2.1.6

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

2.1.5

Composant publié dans son intégralité Régions AWS.

2.1.4

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

Cette version n'est pas disponible en Europe (Londres) (eu-west-2).

2.1.3

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

2.1.2

Corrections de bogues et améliorations
  • Résout un problème de mise à l'échelle de l'image qui entraînait des cadres de délimitation inexacts dans les exemples de résultats d'inférence de détection d'objets DLR.

2.1.1

Nouvelles fonctionnalités
  • Utilisez Deep Learning Runtime v1.6.0.

  • Ajout de la prise en charge de la détection d'échantillons d'objets sur les plateformes Armv8 (AArch64). Cela étend la prise en charge de l'apprentissage automatique pour les appareils principaux de Greengrass exécutant NVIDIA Jetson, tels que le Jetson Nano.

  • Activez l'intégration de la caméra pour l'inférence d'échantillons. Utilisez le nouveau paramètre UseCamera de configuration pour permettre à l'exemple de code d'inférence d'accéder à la caméra de votre appareil principal Greengrass et d'exécuter l'inférence localement sur l'image capturée.

  • Ajoutez la prise en charge de la publication des résultats d'inférence au AWS Cloud. Utilisez le nouveau paramètre PublishResultsOnTopic de configuration pour spécifier le sujet sur lequel vous souhaitez publier les résultats.

  • Ajoutez le nouveau paramètre ImageDirectory de configuration qui vous permet de spécifier un répertoire personnalisé pour l'image sur laquelle vous souhaitez effectuer une inférence.

Corrections de bogues et améliorations
  • Écrivez les résultats d'inférence dans le fichier journal du composant plutôt que dans un fichier d'inférence distinct.

  • Utilisez le module de journalisation du logiciel AWS IoT Greengrass Core pour enregistrer la sortie des composants.

  • Utilisez le Kit SDK des appareils AWS IoT pour lire la configuration du composant et appliquer les modifications de configuration.

2.0.4

Première version.