Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Tutorial: Esegui l'inferenza della classificazione delle immagini di esempio sulle immagini di una fotocamera utilizzando TensorFlow Lite
Questo tutorial mostra come utilizzare il componente di inferenza della classificazione delle immagini TensorFlow Lite per eseguire l'inferenza della classificazione delle immagini di esempio sulle immagini di una fotocamera localmente su un dispositivo principale Greengrass. Questo componente include le seguenti dipendenze dei componenti:
-
TensorFlow Componente di archiviazione del modello di classificazione delle immagini Lite
-
TensorFlow Componente di runtime Lite
Nota
Questo tutorial accede al modulo fotocamera per i dispositivi Raspberry Pi
Per ulteriori informazioni sull'apprendimento automatico sui dispositivi Greengrass, vedere. Esecuzione dell'inferenza di Machine Learning
Argomenti
- Prerequisiti
- Passaggio 1: configura il modulo fotocamera sul tuo dispositivo
- Passaggio 2: verifica l'iscrizione all'argomento delle notifiche predefinito
- Passaggio 3: modifica la configurazione del componente di classificazione delle immagini TensorFlow Lite e distribuiscilo
- Fase 4: Visualizzazione dei risultati dell'inferenza
- Passaggi successivi
Prerequisiti
Per completare questo tutorial, devi prima completareTutorial: eseguire l'inferenza della classificazione delle immagini di esempio utilizzando TensorFlow Lite.
Devi disporre anche dei seguenti elementi:
-
Un dispositivo core Linux Greengrass con interfaccia fotocamera. Questo tutorial accede al modulo fotocamera su uno dei seguenti dispositivi supportati:
-
Raspberry Pi
con sistema operativo Raspberry Pi (precedentemente chiamato Raspbian)
Per informazioni sulla configurazione di un dispositivo principale Greengrass, vedere. Tutorial: Nozioni di base su AWS IoT Greengrass V2
Il dispositivo principale deve soddisfare i seguenti requisiti:
-
Sui dispositivi core Greengrass che eseguono Amazon Linux 2 o Ubuntu 18.04, sul dispositivo è installata la versione 2.27 o successiva della GNU C Library
(glibc). -
Sui dispositivi ARMv7L, come Raspberry Pi, le dipendenze per OpenCV-Python sono installate sul dispositivo. Esegui il comando seguente per installare le dipendenze.
sudo apt-get install libopenjp2-7 libilmbase23 libopenexr-dev libavcodec-dev libavformat-dev libswscale-dev libv4l-dev libgtk-3-0 libwebp-dev
-
I dispositivi Raspberry Pi che eseguono il sistema operativo Raspberry Pi Bullseye devono soddisfare i seguenti requisiti:
-
NumPy 1.22.4 o versione successiva installata sul dispositivo. Il sistema operativo Raspberry Pi Bullseye include una versione precedente di NumPy, quindi è possibile eseguire il seguente comando per l'aggiornamento del dispositivo. NumPy
pip3 install --upgrade numpy
-
Lo stack di fotocamere legacy è abilitato sul dispositivo. Il sistema operativo Raspberry Pi Bullseye include un nuovo stack di fotocamere abilitato di default e non compatibile, quindi è necessario abilitare lo stack di fotocamere precedente.
Per abilitare lo stack di telecamere precedente
-
Esegui il seguente comando per aprire lo strumento di configurazione Raspberry Pi.
sudo raspi-config
-
Seleziona Opzioni di interfaccia.
-
Seleziona Legacy camera per abilitare lo stack di telecamere legacy.
-
Riavvia il dispositivo Raspberry Pi.
-
-
-
-
Per dispositivi Raspberry Pi o NVIDIA Jetson Nano, modulo fotocamera Raspberry Pi V2
- 8 megapixel, 1080p. Per informazioni sulla configurazione della telecamera, consulta Connessione della telecamera nella documentazione di Raspberry Pi.
Passaggio 1: configura il modulo fotocamera sul tuo dispositivo
In questo passaggio, installi e abiliti il modulo videocamera per il tuo dispositivo. Esegui i seguenti comandi sul dispositivo.
Passaggio 2: verifica l'iscrizione all'argomento delle notifiche predefinito
NelTutorial: eseguire l'inferenza della classificazione delle immagini di esempio utilizzando TensorFlow Lite, hai configurato il client AWS IoT MQTT è configurato nella AWS IoT console per guardare i messaggi MQTT pubblicati dal componente di classificazione delle immagini TensorFlow Lite sull'ml/tflite/image-classification
argomento. Nella AWS IoT console, verifica che questo abbonamento esista. In caso contrario, segui i passaggi indicati Passaggio 1: iscriviti all'argomento delle notifiche predefinito per iscriverti a questo argomento prima di distribuire il componente sul tuo dispositivo principale Greengrass.
Passaggio 3: modifica la configurazione del componente di classificazione delle immagini TensorFlow Lite e distribuiscilo
In questo passaggio, configuri e distribuisci il componente di classificazione delle immagini TensorFlow Lite sul tuo dispositivo principale:
-
Nel menu di navigazione AWS IoT Greengrassdella console
, scegli Componenti. -
Nella pagina Componenti, nella scheda Componenti pubblici, scegli
aws.greengrass.TensorFlowLiteImageClassification
. -
Nella pagina aws.greengrass.TensorFlowLiteImageClassification, scegli (Distribuisci).
-
Da Aggiungi alla distribuzione, scegli una delle seguenti opzioni:
-
Per unire questo componente a una distribuzione esistente sul dispositivo di destinazione, scegli Aggiungi alla distribuzione esistente, quindi seleziona la distribuzione che desideri modificare.
-
Per creare una nuova distribuzione sul dispositivo di destinazione, scegli Crea nuova distribuzione. Se hai una distribuzione esistente sul tuo dispositivo, la scelta di questo passaggio sostituisce la distribuzione esistente.
-
-
Nella pagina Specifica destinazione, procedi come segue:
-
In Informazioni sulla distribuzione, inserisci o modifica il nome descrittivo della distribuzione.
-
In Destinazione della distribuzione, seleziona una destinazione della distribuzione e scegli Avanti. Non è possibile modificare la destinazione della distribuzione se si sta revisionando una distribuzione esistente.
-
-
Nella pagina Seleziona componenti, in Componenti pubblici, verifica che il
aws.greengrass.TensorFlowLiteImageClassification
componente sia selezionato e scegli Avanti. -
Nella pagina Configura componenti, procedi come segue:
-
Selezionate il componente di inferenza e scegliete Configura componente.
-
In Aggiornamento della configurazione, inserisci il seguente aggiornamento di configurazione nella casella Configurazione da unire.
{ "InferenceInterval": "60", "UseCamera": "true" }
Con questo aggiornamento della configurazione, il componente accede al modulo della fotocamera sul dispositivo ed esegue inferenze sulle immagini scattate dalla fotocamera. Il codice di inferenza viene eseguito ogni 60 secondi.
-
Seleziona Conferma e scegli Avanti.
-
-
Nella pagina Configura impostazioni avanzate, mantieni le impostazioni di configurazione predefinite e scegli Avanti.
-
Nella pagina di revisione, scegli Deploy
-
Crea un
deployment.json
file per definire la configurazione di distribuzione per il componente di classificazione delle immagini TensorFlow Lite. Questo file dovrebbe avere il seguente aspetto:{ "targetArn":"
targetArn
", "components": { "aws.greengrass.TensorFlowLiteImageClassification": { "componentVersion":2.1.0
, "configurationUpdate": { "InferenceInterval": "60", "UseCamera": "true" } } } }-
Nel campo
targetArn
, sostituisci
con l'ARN (Amazon Resource Name) dell'oggetto o del gruppo di oggetti a cui destinare la distribuzione, nel seguente formato:targetArn
-
Oggetto:
arn:aws:iot:
region
:account-id
:thing/thingName
-
Gruppo di oggetti:
arn:aws:iot:
region
:account-id
:thinggroup/thingGroupName
-
-
Questo tutorial utilizza la versione 2.1.0 del componente. Nell'oggetto
aws.greengrass.TensorFlowLiteImageClassification
componente, sostituite2.1.0
per utilizzare una versione diversa del componente di classificazione delle immagini TensorFlow Lite.
Con questo aggiornamento della configurazione, il componente accede al modulo fotocamera sul dispositivo ed esegue inferenze sulle immagini scattate dalla fotocamera. Il codice di inferenza viene eseguito ogni 60 secondi. Sostituisci i seguenti valori
-
-
Esegui il comando seguente per distribuire il componente di classificazione delle immagini TensorFlow Lite sul dispositivo:
aws greengrassv2 create-deployment \ --cli-input-json file://
path/to/
deployment.json
La distribuzione può richiedere alcuni minuti. Nel passaggio successivo, controlla il registro dei componenti per verificare che la distribuzione sia stata completata correttamente e per visualizzare i risultati dell'inferenza.
Fase 4: Visualizzazione dei risultati dell'inferenza
Dopo aver distribuito il componente, è possibile visualizzare i risultati dell'inferenza nel registro dei componenti sul dispositivo principale Greengrass e nel client AWS IoT MQTT nella console. AWS IoT Per sottoscrivere l'argomento su cui il componente pubblica i risultati dell'inferenza, vedere. Passaggio 2: verifica l'iscrizione all'argomento delle notifiche predefinito
Argomenti
-
AWS IoTClient MQTT: per visualizzare i risultati pubblicati dal componente di inferenza sull'argomento delle notifiche predefinite, completate i seguenti passaggi:
-
Nel menu di navigazione della AWS IoTconsole
, scegliete Test, MQTT test client. -
In Abbonamenti, scegli.
ml/tflite/image-classification
-
-
Registro dei componenti: per visualizzare i risultati dell'inferenza nel registro dei componenti, esegui il seguente comando sul tuo dispositivo principale Greengrass.
sudo tail -f
/logs/aws.greengrass.TensorFlowLiteImageClassification.log/greengrass/v2
Se non riesci a visualizzare i risultati dell'inferenza nel registro dei componenti o nel client MQTT, la distribuzione non è riuscita o non ha raggiunto il dispositivo principale. Ciò può verificarsi se il dispositivo principale non è connesso a Internet o non dispone delle autorizzazioni necessarie per eseguire il componente. Esegui il comando seguente sul tuo dispositivo principale per visualizzare il file di registro del software AWS IoT Greengrass Core. Questo file include i log del servizio di distribuzione del dispositivo principale Greengrass.
sudo tail -f
/logs/greengrass.log
/greengrass/v2
Per ulteriori informazioni, consulta Risoluzione dei problemi di inferenza dell'apprendimento automatico.
Passaggi successivi
Questo tutorial mostra come utilizzare il componente di classificazione delle immagini TensorFlow Lite, con opzioni di configurazione personalizzate per eseguire la classificazione delle immagini di esempio sulle immagini scattate da una fotocamera.
Per ulteriori informazioni sulla personalizzazione della configurazione dei componenti pubblici o sulla creazione di componenti di machine learning personalizzati, consultaPersonalizza i tuoi componenti di machine learning.