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.
Tutorial: Realice una inferencia de clasificación de imágenes de muestra en imágenes de una cámara con Lite TensorFlow
Este tutorial le muestra cómo utilizar el componente de inferencia de clasificación de imágenes TensorFlow Lite para realizar inferencias de clasificación de imágenes de muestra en imágenes de una cámara local en un dispositivo central de Greengrass. Este componente incluye las siguientes dependencias de componentes:
-
TensorFlow Componente de tienda de modelos de clasificación de imágenes Lite
-
TensorFlow Componente de tiempo de ejecución Lite
nota
Este tutorial permite acceder al módulo de cámara de los dispositivos Raspberry Pi
Para obtener más información sobre el aprendizaje automático en los dispositivos Greengrass, consulte. Cómo realizar la inferencia de machine learning
Temas
- Requisitos previos
- Paso 1: Configura el módulo de cámara de tu dispositivo
- Paso 2: Compruebe su suscripción al tema de notificaciones predeterminado
- Paso 3: Modifique la configuración del componente de clasificación de imágenes de TensorFlow Lite e impleméntelo
- Paso 4: Ver los resultados de la inferencia
- Siguientes pasos
Requisitos previos
Para completar este tutorial, primero debe Tutorial: Realice una inferencia de clasificación de imágenes de muestra con Lite TensorFlow completarlo.
También necesitará lo siguiente:
-
Un dispositivo central de Linux Greengrass con una interfaz de cámara. Este tutorial permite acceder al módulo de cámara en uno de los siguientes dispositivos compatibles:
-
Raspberry Pi
con el sistema operativo Raspberry Pi (anteriormente llamado Raspbian)
Para obtener información sobre la configuración de un dispositivo principal de Greengrass, consulte. Tutorial: Introducción a AWS IoT Greengrass V2
El dispositivo principal debe cumplir 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
-
Ejecute el siguiente comando para abrir la herramienta de configuración de Raspberry Pi.
sudo raspi-config
-
Seleccione Opciones de interfaz.
-
Seleccione Cámara antigua para activar la pila de cámaras antiguas.
-
Reinicie el Raspberry Pi.
-
-
-
-
Para dispositivos Raspberry Pi o NVIDIA Jetson Nano, módulo de cámara Raspberry Pi V2:8 megapíxeles, 1080p
. Para obtener información sobre cómo configurar la cámara, consulte Connecting the camera en la documentación de Raspberry Pi.
Paso 1: Configura el módulo de cámara de tu dispositivo
En este paso, instala y habilita el módulo de cámara para su dispositivo. Ejecute los siguientes comandos en el dispositivo.
Paso 2: Compruebe su suscripción al tema de notificaciones predeterminado
EnTutorial: Realice una inferencia de clasificación de imágenes de muestra con Lite TensorFlow , configuró el cliente AWS IoT MQTT que está configurado en la AWS IoT consola para ver los mensajes MQTT publicados por el componente de clasificación de imágenes de TensorFlow Lite sobre el ml/tflite/image-classification
tema. En la AWS IoT consola, compruebe que existe esta suscripción. Si no es así, siga los pasos descritos Paso 1: Suscríbase al tema de notificaciones predeterminado para suscribirse a este tema antes de implementar el componente en su dispositivo principal de Greengrass.
Paso 3: Modifique la configuración del componente de clasificación de imágenes de TensorFlow Lite e impleméntelo
En este paso, debe configurar e implementar el componente de clasificación de imágenes de TensorFlow Lite en su dispositivo principal:
-
En el menú de navegación de la AWS IoT Greengrassconsola
, elija Componentes. -
En la página Componentes, en la pestaña Componentes públicos, elija
aws.greengrass.TensorFlowLiteImageClassification
. -
En la página aws.greengrass.TensorFlowLiteImageClassification, elija Implementar.
-
En Añadir al despliegue, elija una de las siguientes opciones:
-
Para combinar este componente con una implementación existente en el dispositivo de destino, elija Agregar a la implementación existente y, a continuación, seleccione la implementación que desee revisar.
-
Para crear una nueva implementación en el dispositivo de destino, elija Crear nueva implementación. Si tiene una implementación existente en su dispositivo, al elegir este paso se reemplaza la implementación existente.
-
-
En la página Especificar detalles, haga lo siguiente:
-
En Información de implementación, introduzca o modifique el nombre descriptivo de su implementación.
-
En Objetivos de implementación, seleccione un objetivo para su implementación y elija Siguiente. No puede cambiar el objetivo de implementación si está revisando una implementación existente.
-
-
En la página Seleccionar componentes, en Componentes públicos, compruebe que el
aws.greengrass.TensorFlowLiteImageClassification
componente esté seleccionado y elija Siguiente. -
En la página Configurar componentes, haga lo siguiente:
-
Seleccione el componente de inferencia y elija Configurar componente.
-
En Actualización de configuración, introduzca la siguiente actualización de configuración en el cuadro Configuración que se va a fusionar.
{ "InferenceInterval": "60", "UseCamera": "true" }
Con esta actualización de configuración, el componente accede al módulo de cámara del dispositivo y realiza inferencias a partir de las imágenes tomadas por la cámara. El código de inferencia se ejecuta cada 60 segundos.
-
Seleccione Confirmar y, a continuación, elija Siguiente.
-
-
En la página Configurar ajustes avanzados, mantenga los ajustes de configuración predeterminados y seleccione Siguiente.
-
En la página de revisión, elija Implementar
-
Cree un
deployment.json
archivo para definir la configuración de despliegue del componente de clasificación de imágenes de TensorFlow Lite. Este archivo debería tener el siguiente aspecto:{ "targetArn":"
targetArn
", "components": { "aws.greengrass.TensorFlowLiteImageClassification": { "componentVersion":2.1.0
, "configurationUpdate": { "InferenceInterval": "60", "UseCamera": "true" } } } }-
En el
targetArn
campo,
sustitúyalo por el nombre de recurso de Amazon (ARN) de la cosa o grupo de cosas a la que apunte la implementación, en el siguiente formato:targetArn
-
Cosa:
arn:aws:iot:
region
:account-id
:thing/thingName
-
Grupo de cosas:
arn:aws:iot:
region
:account-id
:thinggroup/thingGroupName
-
-
Este tutorial utiliza la versión 2.1.0 del componente. En el objeto
aws.greengrass.TensorFlowLiteImageClassification
componente, sustituya la2.1.0
por una versión diferente del componente de clasificación de imágenes TensorFlow Lite.
Con esta actualización de configuración, el componente accede al módulo de cámara del dispositivo y realiza inferencias a partir de las imágenes tomadas por la cámara. El código de inferencia se ejecuta cada 60 segundos. Sustituya los siguientes valores
-
-
Ejecute el siguiente comando para implementar el componente de clasificación de imágenes TensorFlow Lite en el dispositivo:
aws greengrassv2 create-deployment \ --cli-input-json file://
path/to/
deployment.json
La implementación puede tardar varios minutos en completarse. En el siguiente paso, compruebe el registro de componentes para comprobar que la implementación se ha completado correctamente y para ver los resultados de la inferencia.
Paso 4: Ver los resultados de la inferencia
Tras implementar el componente, puede ver los resultados de la inferencia en el registro del componente de su dispositivo principal de Greengrass y en AWS IoT el cliente MQTT de la consola. AWS IoT Para suscribirse al tema sobre el que el componente publica los resultados de las inferencias, consulte. Paso 2: Compruebe su suscripción al tema de notificaciones predeterminado
Temas
-
AWS IoTCliente MQTT: para ver los resultados que publica el componente de inferencia sobre el tema de notificaciones predeterminado, complete los siguientes pasos:
-
En el menú de navegación de la AWS IoTconsola
, elija Test, MQTT test client. -
En Suscripciones, elija
ml/tflite/image-classification
.
-
-
Registro de componentes: para ver los resultados de la inferencia en el registro de componentes, ejecute el siguiente comando en su dispositivo principal de Greengrass.
sudo tail -f
/logs/aws.greengrass.TensorFlowLiteImageClassification.log/greengrass/v2
Si no puede ver los resultados de la inferencia en el registro de componentes o en el cliente MQTT, significa que la implementación ha fallado o no ha llegado al dispositivo principal. Esto puede ocurrir si el dispositivo principal no está conectado a Internet o no tiene los permisos necesarios para ejecutar el componente. Ejecute el siguiente comando en el dispositivo principal para ver el archivo de registro del software AWS IoT Greengrass principal. Este archivo incluye registros del servicio de despliegue del dispositivo principal de Greengrass.
sudo tail -f
/logs/greengrass.log
/greengrass/v2
Para obtener más información, consulte Solución de problemas de inferencia de aprendizaje automático.
Siguientes pasos
Este tutorial le muestra cómo utilizar el componente de clasificación de imágenes TensorFlow Lite, con opciones de configuración personalizadas para clasificar imágenes de muestra en imágenes tomadas por una cámara.
Para obtener más información sobre la personalización de la configuración de los componentes públicos o la creación de componentes de aprendizaje automático personalizados, consultePersonalice sus componentes de aprendizaje automático.