FOMO è una rete neurale TinyML per il rilevamento di oggetti in tempo reale

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.

Sheep-object-detection-bounding-box-vs-centroide

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.

visualizzazione-livelli-di-reti-neurali