Clasificación de imágenes DLR - AWS IoT Greengrass

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Clasificación de imágenes DLR

El componente de clasificación de imágenes del DLR (aws.greengrass.DLRImageClassification) contiene un ejemplo de código de inferencia para realizar inferencias de clasificación de imágenes mediante Deep Learning Runtime y los modelos resnet-50. Este componente utiliza la variante Tienda de modelos de clasificación de imágenes DLR y los Tiempo de ejecución de DLR componentes como dependencias para descargar el DLR y los modelos de muestra.

Para utilizar este componente de inferencia con un modelo de DLR personalizado, cree una versión personalizada del componente de tienda de modelos dependiente. Para usar su propio código de inferencia personalizado, puede usar la receta de este componente como plantilla para crear un componente de inferencia personalizado.

Versiones

Este componente tiene las siguientes versiones:

  • 2.1.x

  • 2.0.x

Tipo

Este componente es un componente genérico () aws.greengrass.generic. El núcleo de Greengrass ejecuta los scripts del ciclo de vida del componente.

Para obtener más información, consulte Tipos de componentes.

Sistema operativo

Este componente se puede instalar en los dispositivos principales que ejecutan los siguientes sistemas operativos:

  • Linux

  • Windows

Requisitos

Este componente tiene los siguientes requisitos:

  • En los dispositivos principales de Greengrass que ejecutan Amazon Linux 2 o Ubuntu 18.04, se instala en el dispositivo la versión 2.27 o posterior de la Biblioteca C GNU (glibc).

  • En los dispositivos ARMv7L, como Raspberry Pi, las dependencias para OpenCV-Python están instaladas en el dispositivo. Ejecute el siguiente comando para instalar las dependencias.

    sudo apt-get install libopenjp2-7 libilmbase23 libopenexr-dev libavcodec-dev libavformat-dev libswscale-dev libv4l-dev libgtk-3-0 libwebp-dev
  • Los dispositivos Raspberry Pi que ejecutan el sistema operativo Bullseye de Raspberry Pi deben cumplir los siguientes requisitos:

    • NumPy 1.22.4 o una versión posterior instalada en el dispositivo. Raspberry Pi OS Bullseye incluye una versión anterior de NumPy, por lo que puede ejecutar el siguiente comando para actualizar NumPy el dispositivo.

      pip3 install --upgrade numpy
    • La pila de cámaras antigua habilitada en el dispositivo. El Raspberry Pi OS Bullseye incluye una nueva pila de cámaras que está habilitada de forma predeterminada y no es compatible, por lo que debes activar la pila de cámaras antigua.

      Para activar la pila de cámaras antigua
      1. Ejecute el siguiente comando para abrir la herramienta de configuración de Raspberry Pi.

        sudo raspi-config
      2. Seleccione Opciones de interfaz.

      3. Seleccione Cámara antigua para activar la pila de cámaras antiguas.

      4. Reinicie el Raspberry Pi.

Dependencias

Al implementar un componente, AWS IoT Greengrass también despliega versiones compatibles de sus dependencias. Esto significa que debe cumplir los requisitos del componente y de todas sus dependencias para poder implementarlo correctamente. En esta sección se enumeran las dependencias de las versiones publicadas de este componente y las restricciones de las versiones semánticas que definen las versiones de los componentes para cada dependencia. También puede ver las dependencias de cada versión del componente en la consola.AWS IoT Greengrass En la página de detalles del componente, busque la lista de dependencias.

2.1.13 and 2.1.14

La siguiente tabla muestra las dependencias de las versiones 2.1.13 y 2.1.14 de este componente.

Dependencia Versiones compatibles Tipo de dependencia
Núcleo de Greengrass >=2.0.0 <2.13.0 Flexible
Tienda de modelos de clasificación de imágenes DLR ~2.1.0 Rígido
DLR ~1.6.0 Rígido
2.1.12

La siguiente tabla muestra las dependencias de la versión 2.1.12 de este componente.

Dependencia Versiones compatibles Tipo de dependencia
Núcleo de Greengrass >=2.0.0 <2.12.0 Flexible
Tienda de modelos de clasificación de imágenes DLR ~2.1.0 Rígido
DLR ~1.6.0 Rígido
2.1.11

La siguiente tabla muestra las dependencias de la versión 2.1.11 de este componente.

Dependencia Versiones compatibles Tipo de dependencia
Núcleo de Greengrass >=2.0.0 <2.11.0 Flexible
Tienda de modelos de clasificación de imágenes DLR ~2.1.0 Rígido
DLR ~1.6.0 Rígido
2.1.10

La siguiente tabla muestra las dependencias de la versión 2.1.10 de este componente.

Dependencia Versiones compatibles Tipo de dependencia
Núcleo de Greengrass >=2.0.0 <2.10.0 Flexible
Tienda de modelos de clasificación de imágenes DLR ~2.1.0 Rígido
DLR ~1.6.0 Rígido
2.1.9

La siguiente tabla muestra las dependencias de la versión 2.1.9 de este componente.

Dependencia Versiones compatibles Tipo de dependencia
Núcleo de Greengrass >=2.0.0 <2.9.0 Flexible
Tienda de modelos de clasificación de imágenes DLR ~2.1.0 Rígido
DLR ~1.6.0 Rígido
2.1.8

La siguiente tabla muestra las dependencias de la versión 2.1.8 de este componente.

Dependencia Versiones compatibles Tipo de dependencia
Núcleo de Greengrass >=2.0.0 <2.8.0 Flexible
Tienda de modelos de clasificación de imágenes DLR ~2.1.0 Rígido
DLR ~1.6.0 Rígido
2.1.7

La siguiente tabla muestra las dependencias de la versión 2.1.7 de este componente.

Dependencia Versiones compatibles Tipo de dependencia
Núcleo de Greengrass >=2.0.0 <2.7.0 Flexible
Tienda de modelos de clasificación de imágenes DLR ~2.1.0 Rígido
DLR ~1.6.0 Rígido
2.1.6

La siguiente tabla muestra las dependencias de la versión 2.1.6 de este componente.

Dependencia Versiones compatibles Tipo de dependencia
Núcleo de Greengrass >=2.0.0 <2.6.0 Flexible
Tienda de modelos de clasificación de imágenes DLR ~2.1.0 Rígido
DLR ~1.6.0 Rígido
2.1.4 - 2.1.5

La siguiente tabla muestra las dependencias de las versiones 2.1.4 a 2.1.5 de este componente.

Dependencia Versiones compatibles Tipo de dependencia
Núcleo de Greengrass >=2.0.0 <2.5.0 Flexible
Tienda de modelos de clasificación de imágenes DLR ~2.1.0 Rígido
DLR ~1.6.0 Rígido
2.1.3

La siguiente tabla muestra las dependencias de la versión 2.1.3 de este componente.

Dependencia Versiones compatibles Tipo de dependencia
Núcleo de Greengrass >=2.0.0 <2.4.0 Flexible
Tienda de modelos de clasificación de imágenes DLR ~2.1.0 Rígido
DLR ~1.6.0 Rígido
2.1.2

La siguiente tabla muestra las dependencias de la versión 2.1.2 de este componente.

Dependencia Versiones compatibles Tipo de dependencia
Núcleo de Greengrass >=2.0.0 <2.3.0 Flexible
Tienda de modelos de clasificación de imágenes DLR ~2.1.0 Rígido
DLR ~1.6.0 Rígido
2.1.1

La siguiente tabla muestra las dependencias de la versión 2.1.1 de este componente.

Dependencia Versiones compatibles Tipo de dependencia
Núcleo de Greengrass >=2.0.0 <2.2.0 Flexible
Tienda de modelos de clasificación de imágenes DLR ~2.1.0 Rígido
DLR ~1.6.0 Rígido
2.0.x

La siguiente tabla muestra las dependencias de la versión 2.0.x de este componente.

Dependencia Versiones compatibles Tipo de dependencia
Núcleo de Greengrass ~2.0.0 Flexible
Tienda de modelos de clasificación de imágenes DLR ~2.0.0 Rígido
DLR ~1.3.0 Flexible

Configuración

Este componente proporciona los siguientes parámetros de configuración que puede personalizar al implementar el componente.

2.1.x
accessControl

(Opcional) El objeto que contiene la política de autorización que permite al componente publicar mensajes en el tema de notificaciones predeterminado.

Predeterminado:

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

(Opcional) El tema sobre el que desea publicar los resultados de la inferencia. Si modifica este valor, también debe modificar el valor del resources accessControl parámetro para que coincida con el nombre del tema personalizado.

Valor predeterminado: ml/dlr/image-classification

Accelerator

El acelerador que quieres usar. Los valores admitidos son cpu y gpu.

Los modelos de muestra del componente del modelo dependiente solo admiten la aceleración de la CPU. Para usar la aceleración de la GPU con un modelo personalizado diferente, cree un componente de modelo personalizado para anular el componente del modelo público.

Valor predeterminado: cpu

ImageDirectory

(Opcional) La ruta de la carpeta del dispositivo donde los componentes de inferencia leen las imágenes. Puede modificar este valor en cualquier ubicación del dispositivo a la que tenga acceso de lectura y escritura.

Valor predeterminado: /greengrass/v2/packages/artifacts-unarchived/component-name/image_classification/sample_images/

nota

Si establece el valor de entrue, UseCamera se ignora este parámetro de configuración.

ImageName

(Opcional) El nombre de la imagen que el componente de inferencia utiliza como entrada para realizar una predicción. El componente busca la imagen en la carpeta especificada enImageDirectory. De forma predeterminada, el componente usa la imagen de muestra en el directorio de imágenes predeterminado. AWS IoT Greengrass admite los siguientes formatos de imagen: jpegjpg,png, ynpy.

Valor predeterminado: cat.jpeg

nota

Si establece el valor de entrue, se UseCamera ignora este parámetro de configuración.

InferenceInterval

(Opcional) El tiempo en segundos entre cada predicción realizada por el código de inferencia. El código de inferencia de muestra se ejecuta indefinidamente y repite sus predicciones en el intervalo de tiempo especificado. Por ejemplo, puede cambiarlo por un intervalo más corto si desea utilizar imágenes tomadas por una cámara para realizar predicciones en tiempo real.

Valor predeterminado: 3600

ModelResourceKey

(Opcional) Los modelos que se utilizan en el componente de modelo público dependiente. Modifique este parámetro solo si anula el componente del modelo público por un componente personalizado.

Predeterminado:

{ "armv7l": "DLR-resnet50-armv7l-cpu-ImageClassification", "aarch64": "DLR-resnet50-aarch64-cpu-ImageClassification", "x86_64": "DLR-resnet50-x86_64-cpu-ImageClassification", "windows": "DLR-resnet50-win-cpu-ImageClassification" }
UseCamera

(Opcional) Valor de cadena que define si se deben utilizar imágenes de una cámara conectada al dispositivo principal de Greengrass. Los valores admitidos son true y false.

Si establece este valor entrue, el código de inferencia de muestra accede a la cámara del dispositivo y ejecuta la inferencia localmente en la imagen capturada. Se ignoran los valores de los ImageDirectory parámetros ImageName y. Asegúrese de que el usuario que ejecuta este componente tenga acceso de lectura y escritura a la ubicación en la que la cámara almacena las imágenes capturadas.

Valor predeterminado: false

nota

Al ver la receta de este componente, el parámetro de UseCamera configuración no aparece en la configuración predeterminada. Sin embargo, puede modificar el valor de este parámetro en una actualización de la combinación de configuraciones al implementar el componente.

Si lo establece UseCameratrue, también debe crear un enlace simbólico para permitir que el componente de inferencia acceda a la cámara desde el entorno virtual creado por el componente de tiempo de ejecución. Para obtener más información sobre el uso de una cámara con los componentes de inferencia de muestra, consulte. Actualizar las configuraciones de los componentes

2.0.x
MLRootPath

(Opcional) La ruta de la carpeta en los dispositivos principales de Linux donde los componentes de inferencia leen las imágenes y escriben los resultados de la inferencia. Puede modificar este valor en cualquier ubicación del dispositivo a la que el usuario que ejecuta este componente tenga acceso de lectura y escritura.

Valor predeterminado: /greengrass/v2/work/variant.DLR/greengrass_ml

Valor predeterminado: /greengrass/v2/work/variant.TensorFlowLite/greengrass_ml

Accelerator

El acelerador que desea utilizar. Los valores admitidos son cpu y gpu.

Los modelos de muestra del componente del modelo dependiente solo admiten la aceleración de la CPU. Para usar la aceleración de la GPU con un modelo personalizado diferente, cree un componente de modelo personalizado para anular el componente del modelo público.

Valor predeterminado: cpu

ImageName

(Opcional) El nombre de la imagen que el componente de inferencia utiliza como entrada para realizar una predicción. El componente busca la imagen en la carpeta especificada enImageDirectory. La ubicación por defecto esMLRootPath/images. AWS IoT Greengrass admite los siguientes formatos de imagen: jpegjpg,png, ynpy.

Valor predeterminado: cat.jpeg

InferenceInterval

(Opcional) El tiempo en segundos entre cada predicción realizada por el código de inferencia. El código de inferencia de muestra se ejecuta indefinidamente y repite sus predicciones en el intervalo de tiempo especificado. Por ejemplo, puede cambiarlo por un intervalo más corto si desea utilizar imágenes tomadas por una cámara para realizar predicciones en tiempo real.

Valor predeterminado: 3600

ModelResourceKey

(Opcional) Los modelos que se utilizan en el componente de modelo público dependiente. Modifique este parámetro solo si anula el componente del modelo público por un componente personalizado.

Predeterminado:

armv7l: "DLR-resnet50-armv7l-cpu-ImageClassification" x86_64: "DLR-resnet50-x86_64-cpu-ImageClassification"

Archivo de registro local

Este componente utiliza el siguiente archivo de registro.

Linux
/greengrass/v2/logs/aws.greengrass.DLRImageClassification.log
Windows
C:\greengrass\v2\logs\aws.greengrass.DLRImageClassification.log
Para ver los registros de este componente
  • Ejecute el siguiente comando en el dispositivo principal para ver el archivo de registro de este componente en tiempo real. Sustituya /greengrass/v2 o C:\greengrass\v2 por la ruta a la carpeta AWS IoT Greengrass raíz.

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

Registros de cambios

En la siguiente tabla se describen los cambios en cada versión del componente.

Versión

Cambios

2.1.14

Versión actualizada para la versión 2.12.5 de Greengrass nucleus.

2.1.13

Versión actualizada para la versión 2.12.0 de Greengrass nucleus.

2.1.12

Versión actualizada para la versión 2.11.0 de Greengrass nucleus.

2.1.11

Versión actualizada para la versión 2.10.0 de Greengrass nucleus.

2.1.10

Versión actualizada para la versión 2.9.0 de Greengrass nucleus.

2.1.9

Versión actualizada para la versión 2.8.0 de Greengrass nucleus.

2.1.8

Versión actualizada para la versión 2.7.0 de Greengrass Nucleus.

2.1.7

Versión actualizada para la versión 2.6.0 de Greengrass nucleus.

2.1.6

Versión actualizada para la versión 2.5.0 de Greengrass nucleus.

2.1.5

Componente publicado en su totalidad. Regiones de AWS

2.1.4

Versión actualizada para la versión 2.4.0 de Greengrass Nucleus.

Esta versión no está disponible en Europa (Londres) (eu-west-2).

2.1.3

Versión actualizada para el lanzamiento de la versión 2.3.0 de Greengrass nucleus.

2.1.2

Versión actualizada para el lanzamiento de la versión 2.2.0 de Greengrass nucleus.

2.1.1

Nuevas características
  • Utilice Deep Learning Runtime v1.6.0.

  • Añada compatibilidad con la clasificación de imágenes de muestra en las plataformas Armv8 (AArch64). Esto amplía el soporte de aprendizaje automático para los dispositivos principales de Greengrass que ejecutan NVIDIA Jetson, como el Jetson Nano.

  • Habilite la integración de la cámara para la inferencia de muestras. Utilice el nuevo parámetro de UseCamera configuración para permitir que el código de inferencia de muestra acceda a la cámara del dispositivo principal de Greengrass y ejecute la inferencia localmente en la imagen capturada.

  • Añada soporte para publicar los resultados de la inferencia en. Nube de AWS Utilice el nuevo parámetro PublishResultsOnTopic de configuración para especificar el tema sobre el que desea publicar los resultados.

  • Añada el nuevo parámetro de ImageDirectory configuración que le permita especificar un directorio personalizado para la imagen en la que desee realizar la inferencia.

Mejoras y correcciones de errores
  • Escriba los resultados de la inferencia en el archivo de registro del componente en lugar de en un archivo de inferencias independiente.

  • Utilice el módulo de registro del software AWS IoT Greengrass Core para registrar la salida de los componentes.

  • Utilice el SDK para dispositivos con AWS IoT para leer la configuración del componente y aplicar los cambios de configuración.

2.0.4

Versión inicial.