Questo articolo fa parte della nostra copertura delle ultime ricerche sull’IA.
Una nuova tecnica di apprendimento automatico sviluppata dai ricercatori di Edge Impulse, una piattaforma per la creazione di modelli ML per l’edge, consente di eseguire il rilevamento di oggetti in tempo reale su dispositivi con capacità di calcolo e memoria molto ridotte. Chiamata Faster Objects, More Objects (FOMO), la nuova architettura di deep learning può sbloccare nuove applicazioni di visione artificiale.
La maggior parte dei modelli di deep learning con rilevamento di oggetti ha requisiti di memoria e di calcolo che vanno oltre la capacità dei piccoli processori. FOMO, d’altra parte, richiede solo diverse centinaia di kilobyte di memoria, il che lo rende un’ottima tecnica per TinyML, un sottocampo di apprendimento automatico incentrato sull’esecuzione di modelli ML su microcontrollori e altri dispositivi con limitazioni di memoria che hanno una connettività Internet limitata o assente.
Classificazione delle immagini vs rilevamento degli oggetti
TinyML ha fatto grandi progressi nella classificazione delle immagini, in cui il modello di apprendimento automatico deve prevedere solo la presenza di un certo tipo di oggetto in un’immagine. D’altra parte, il rilevamento degli oggetti richiede che il modello identifichi più dell’oggetto, nonché il riquadro di delimitazione di ciascuna istanza.
I modelli di rilevamento degli oggetti sono molto più complessi delle reti di classificazione delle immagini e richiedono più memoria.
“Abbiamo aggiunto il supporto per la visione artificiale a Edge Impulse nel 2020 e abbiamo assistito a un’enorme raccolta di applicazioni (il 40% dei nostri progetti sono applicazioni di visione artificiale)”, ha detto a TechTalks Jan Jongboom, CTO di Edge Impulse. “Ma con gli attuali modelli all’avanguardia è possibile eseguire la classificazione delle immagini solo su microcontrollori”.
La classificazione delle immagini è molto utile per molte applicazioni. Ad esempio, una telecamera di sicurezza può utilizzare la classificazione delle immagini TinyML per determinare se c’è o meno una persona nell’inquadratura. Tuttavia, si può fare molto di più.
“Era una grande seccatura essere limitato a questi compiti di classificazione molto basilari. C’è molto valore nel vedere ‘ci sono tre persone qui’ o ‘questa etichetta è nell’angolo in alto a sinistra’, ad esempio, contare le cose è una delle più grandi richieste che vediamo oggi sul mercato”, dice Jongboom.
I modelli ML di rilevamento degli oggetti precedenti dovevano elaborare l’immagine di input più volte per individuare gli oggetti, il che li rendeva lenti e dispendiosi dal punto di vista computazionale. Modelli più recenti come YOLO (You Only Look Once) utilizzano il rilevamento a colpo singolo per fornire il rilevamento di oggetti quasi in tempo reale. Ma i loro requisiti di memoria sono ancora grandi. Anche i modelli progettati per applicazioni edge sono difficili da eseguire su dispositivi di piccole dimensioni.
“YOLOv5 o MobileNet SSD sono solo reti follemente grandi che non si adatteranno mai all’MCU e si adatteranno a malapena ai dispositivi di classe Raspberry Pi”, afferma Jongboom.
Inoltre, questi modelli non sono in grado di rilevare piccoli oggetti e hanno bisogno di molti dati. Ad esempio, YOLOv5 consiglia più di 10.000 istanze di addestramento per classe di oggetti.
L’idea alla base di FOMO è che non tutte le applicazioni di rilevamento di oggetti richiedono l’output ad alta precisione fornito dai modelli di deep learning all’avanguardia. Trovando il giusto compromesso tra precisione, velocità e memoria, puoi ridurre i tuoi modelli di deep learning a dimensioni molto ridotte mantenendoli utili.
Invece di rilevare i riquadri di delimitazione, FOMO prevede il centro dell’oggetto. Questo perché molte applicazioni di rilevamento oggetti sono interessate solo alla posizione degli oggetti nella cornice e non alle loro dimensioni. Il rilevamento dei centroidi è molto più efficiente in termini di calcolo rispetto alla previsione del riquadro di delimitazione e richiede meno dati.
Ridefinizione delle architetture di deep learning per il rilevamento di oggetti
FOMO applica anche un importante cambiamento strutturale alle tradizionali architetture di deep learning.
I rilevatori di oggetti a scatto singolo sono composti da un insieme di strati convoluzionali che estraggono le caratteristiche e diversi strati completamente collegati che predicono il riquadro di delimitazione. I livelli di convoluzione estraggono le caratteristiche visive in modo gerarchico. Il primo livello rileva cose semplici come linee e bordi in direzioni diverse. Ogni strato convoluzionale è solitamente accoppiato con uno strato di raggruppamento, che riduce le dimensioni dell’output del livello e mantiene le caratteristiche più importanti in ciascuna area.
L’output del livello di pooling viene quindi inviato al livello convoluzionale successivo, che estrae le caratteristiche di livello superiore, come angoli, archi e cerchi. Man mano che vengono aggiunti livelli più convoluzionali e di pooling, le mappe delle funzioni rimpiccioliscono e possono rilevare cose complicate come volti e oggetti.

Infine, i livelli completamente connessi appiattiscono l’output del livello di convoluzione finale e cercano di prevedere la classe e il riquadro di delimitazione degli oggetti.
FOMO rimuove gli strati completamente connessi e gli ultimi strati di convoluzione. Questo trasforma l’output della rete neurale in una versione ridotta dell’immagine, con ogni valore di output che rappresenta una piccola patch dell’immagine di input. La rete viene quindi addestrata su una speciale funzione di perdita in modo che ciascuna unità di output preveda le probabilità di classe per la patch corrispondente nell’immagine di input. L’output diventa effettivamente una mappa di calore per i tipi di oggetti.

Ci sono diversi vantaggi chiave in questo approccio. Innanzitutto, FOMO è compatibile con le architetture esistenti. Ad esempio, FOMO può essere applicato a MobileNetV2, un popolare modello di deep learning per la classificazione delle immagini sui dispositivi edge.
Inoltre, riducendo considerevolmente le dimensioni della rete neurale, FOMO riduce i requisiti di memoria e calcolo dei modelli di rilevamento degli oggetti. Secondo Edge Impulse, è 30 volte più veloce di MobileNet SSD mentre può funzionare su dispositivi con meno di 200 kilobyte di RAM.
Ad esempio, il video seguente mostra una rete neurale FOMO che rileva oggetti a 30 fotogrammi al secondo su un Arduino Nicla Vision con poco più di 200 kilobyte di memoria. Su un Raspberry Pi 4, FOMO può rilevare oggetti a 60 fps rispetto alle prestazioni a 2 fps di MobileNet SSD.
Jongboom mi ha detto che FOMO è stato ispirato dal lavoro che Mat Kelcey, ingegnere principale di Edge Impulse, ha svolto sull’architettura della rete neurale per il conteggio delle api.
“Gli algoritmi di rilevamento degli oggetti tradizionali (YOLOv5, MobileNet SSD) non sono efficaci per questo tipo di problemi (oggetti di dimensioni simili, molti oggetti molto piccoli), quindi ha progettato un’architettura personalizzata che ottimizza per questi problemi”, ha affermato.
La granularità dell’output di FOMO può essere configurata in base all’applicazione e può rilevare molte istanze di oggetti in una singola immagine.

Limiti della FOMO
I vantaggi di FOMO non arrivano senza compromessi. Funziona meglio quando gli oggetti hanno le stesse dimensioni. È come una griglia di quadrati di uguale dimensione, ognuno dei quali rileva un oggetto. Pertanto, se c’è un oggetto molto grande in primo piano e molti piccoli oggetti sullo sfondo, non funzionerà così bene.
Inoltre, quando gli oggetti sono troppo vicini tra loro o si sovrappongono, occuperanno lo stesso quadrato della griglia, riducendo la precisione del rilevatore di oggetti (vedi video sotto). Puoi superare questo limite in una certa misura riducendo le dimensioni delle celle di FOMO o aumentando la risoluzione dell’immagine.
FOMO è particolarmente utile quando la telecamera si trova in una posizione fissa, ad esempio scansionando oggetti su un nastro trasportatore o contando le auto in un parcheggio.
Il team di Edge Impulse prevede di espandere il proprio lavoro in futuro, incluso rendere il modello ancora più piccolo, sotto i 100 kilobyte e renderlo migliore nel trasferimento dell’apprendimento.
Questo articolo è stato originariamente scritto da Ben Dickson e pubblicato da Ben Dickson su TechTalks, una pubblicazione che esamina le tendenze della tecnologia, come influenzano il modo in cui viviamo e facciamo affari e i problemi che risolvono. Ma discutiamo anche del lato malvagio della tecnologia, delle implicazioni più oscure della nuova tecnologia e di ciò a cui dobbiamo prestare attenzione. Puoi leggere l’articolo originale qui.