Come progettare e implementare rapidamente sistemi intelligenti di visione artificiale
Contributo di Editori nordamericani di DigiKey
2022-08-31
L'esigenza di visione artificiale sta aumentando in molte applicazioni di sicurezza, come telecamere per il traffico e città, sorveglianza dei punti di vendita al dettaglio, ispezione automatica, controllo dei processi e robotica assistita dalla visione. La visione artificiale è complessa da implementare e richiede l'integrazione di diverse tecnologie e sottosistemi, tra cui hardware ad alte prestazioni e software avanzati di intelligenza artificiale/apprendimento automatico (IA/ML). Si inizia con l'ottimizzazione della tecnologia di acquisizione video e dell'I/O di visione per soddisfare le esigenze dell'applicazione e si estende a più pipeline di elaborazione delle immagini per una connettività efficiente. In ultima analisi, dipende dalla capacità del sistema di visione incorporato di eseguire analisi basate sulla visione in tempo reale utilizzando hardware ad alte prestazioni come gli FPGA (gate array programmabili sul campo), i SoM (System-on-Module), i SoC (System-on-Chip) e persino i MPSoC (Multi-Processor System-on-Chip) per eseguire il necessario software di elaborazione e riconoscimento delle immagini IA/ML. Si tratta di un compito complesso, costoso e dispendioso in termini di tempo, esposto a numerosi rischi di sforamento dei budget e di ritardi sui tempi previsti.
Invece di partire da zero, i progettisti possono rivolgersi a una piattaforma di sviluppo apposita ad alte prestazioni che accelera il time-to-market, tiene sotto controllo i costi e riduce i rischi di sviluppo, supportando al contempo alti livelli di flessibilità e prestazioni delle applicazioni. Una piattaforma di sviluppo basata su SoM può fornire un ambiente hardware e software integrato e consentire agli sviluppatori di concentrarsi sulla personalizzazione delle applicazioni e di risparmiare fino a nove mesi di tempo di sviluppo. Oltre all'ambiente di sviluppo, la stessa architettura SoM è disponibile in configurazioni ottimizzate per la produzione in ambienti commerciali e industriali, per migliorare l'affidabilità e la qualità delle applicazioni, ridurre ulteriormente i rischi e accelerare il time-to-market.
Questo articolo inizia con una rassegna delle sfide associate allo sviluppo di sistemi di visione artificiale ad alte prestazioni, quindi presenta l'ambiente di sviluppo completo offerto con lo starter kit Kria KV260 vision AI di AMD Xilinx e termina con esempi di SoM pronti per la produzione basati sulla piattaforma Kira 26 e progettati per l'inserimento in una scheda di supporto con periferiche specifiche per la soluzione.
Tutto inizia con l'ottimizzazione dei tipi di dati
Le esigenze degli algoritmi di apprendimento profondo sono in continua evoluzione. Non tutte le applicazioni necessitano di calcoli ad alta precisione. Si utilizzano tipi di dati a bassa precisione come INT8 o formati di dati personalizzati. I sistemi basati su GPU possono aver difficoltà a modificare le architetture ottimizzate per i dati ad alta precisione e adattarle in modo efficiente ai formati di dati a bassa precisione. Il SoM Kria K26 è riconfigurabile e può supportare un'ampia gamma di tipi di dati, da FP32 a INT8 e altri. La riconfigurabilità si traduce anche in un minor consumo energetico complessivo. Ad esempio, le operazioni ottimizzate per INT8 consumano molto meno rispetto a un'operazione FP32 (Figura 1).
Figura 1: Per le operazioni INT8 (8b Add) è necessario un ordine di grandezza inferiore rispetto alle operazioni FP32 (32b Add). (Immagine per gentile concessione di AMD Xilinx)
Architettura ottimale per un consumo energetico minimo
I progetti implementati sulla base di un'architettura multicore di GPU o CPU possono essere energivori in base ai modelli di utilizzo di energia tipici:
- 30% per i core
- 30% per la memoria interna (L1, L2, L3)
- 40% per la memoria esterna (come DDR)
Gli accessi frequenti all'inefficiente memoria DDR sono richiesti dalle GPU per supportare la programmabilità e possono essere un collo di bottiglia per le richieste di calcolo ad alta larghezza di banda. L'architettura MPSoC Zynq utilizzata nel SoM Kria K26 supporta lo sviluppo di applicazioni con accesso minimo o nullo alla memoria esterna. Ad esempio, in una tipica applicazione automotive, la comunicazione tra la GPU e i vari moduli richiede molteplici accessi alla memoria DDR esterna, mentre la soluzione basata su MPSoC Zynq incorpora una pipeline progettata per evitare la maggior parte degli accessi alla DDR (Figura 2).
Figura 2: In questa tipica applicazione automotive, la GPU richiede più accessi alla DDR per la comunicazione tra i vari moduli (sinistra), mentre l'architettura a pipeline del MPSoC Zynq (destra) evita la maggior parte degli accessi alla DDR. (Immagine per gentile concessione di AMD Xilinx)
Razionalizzare per sfruttare tutti i vantaggi
Le prestazioni delle reti neurali sul SoM K26 possono essere migliorate con uno strumento di ottimizzazione IA che consente di razionalizzare i dati. È molto comune per le reti neurali essere eccessivamente parametrizzate, il che porta a livelli elevati di ridondanza che possono essere ridotti utilizzando la razionalizzazione dei dati e la compressione dei modelli. L'utilizzo di AI Optimizer di Xilinx può portare a ridurre la complessità del modello di 50 volte, con un impatto nominale sulla sua precisione. Ad esempio, un Single Shot Detector (SSD) più un'architettura di rete neurale a convoluzione (CNN) VGG con 117 Gop è stata razionalizzata in 11 iterazioni utilizzando AI Optimizer. Prima dell'ottimizzazione, il modello funzionava a 18 fps su un MPSoC Zynq UltraScale+. Dopo 11 iterazioni - la 12a esecuzione del modello - la complessità si è ridotta da 117 Gop a 11,6 Gop (10 volte), le prestazioni sono aumentate da 18 a 103 fps (5 volte) e l'accuratezza è scesa da una precisione media (mAP) di 61,55 per il rilevamento degli oggetti a 60,4 mAP (solo l'1% in meno) (Figura 3).
Figura 3: Dopo un numero relativamente basso di iterazioni, la razionalizzazione può ridurre la complessità del modello (Gop) di 10 volte e migliorare le prestazioni (fps) di 5 volte, con una riduzione della precisione (mAP) dell'1%. (Immagine per gentile concessione di AMD Xilinx)
Esempio di applicazione nel mondo reale
È stata sviluppata un'applicazione di apprendimento automatico per il rilevamento e il riconoscimento delle targhe automobilistiche (ANPR) basata sul software di analisi di visione di Uncanny Vision. ANPR è utilizzato nei sistemi di pagamento del pedaggio automatici, nel monitoraggio delle autostrade, nell'accesso sicuro a cancelli e parcheggi e in altre applicazioni simili. Questa applicazione ANPR comprende una pipeline basata sull'intelligenza artificiale che decodifica il video e pre-elabora l'immagine, seguita dal rilevamento ML e dal riconoscimento dei caratteri OCR (Figura 4).
Figura 4: Tipico flusso di elaborazione delle immagini per un'applicazione ANPR basata su IA. (Immagine per gentile concessione di AMD Xilinx)
L'implementazione di ANPR richiede uno o più flussi di streaming in tempo reale (RTSP) codificati H.264 o H.265, decodificati o non compressi. I fotogrammi video decodificati vengono scalati, ritagliati, convertiti nello spazio colore e normalizzati (pre-elaborazione), quindi inviati all'algoritmo di rilevamento ML. Le implementazioni ANPR ad alte prestazioni richiedono una pipeline IA a più stadi. La prima fase rileva e localizza il veicolo nell'immagine, creando la regione di interesse (ROI). Allo stesso tempo, altri algoritmi ottimizzano la qualità dell'immagine per il successivo utilizzo da parte dell'algoritmo di riconoscimento dei caratteri OCR e tracciano il movimento del veicolo su più fotogrammi. La ROI del veicolo viene ulteriormente ritagliata per generare la ROI della targa, elaborata dall'algoritmo OCR per rilevare i caratteri della targa. Rispetto ad altri SoM commerciali basati su GPU o CPU, l'applicazione ANPR di Uncanny Vision ha funzionato 2-3 volte più velocemente sul SoM Kira KV260, con un costo inferiore a USD100 per feed RTSP.
Ambiente di sviluppo per la visione intelligente
I progettisti di applicazioni di visione intelligente come telecamere per il traffico e di città, sorveglianza dei punti di vendita al dettaglio, sicurezza, automazione industriale e robotica possono rivolgersi all'ambiente di sviluppo Kria K26 SOM AI Starter. Questo ambiente si basa sull'architettura del MPSoC Zynq® UltraScale+™ e offre una libreria crescente di pacchetti software applicativi (Figura 5). Il SoM AI Starter include un processore Arm Cortex-A53 quad-core, oltre 250 mila celle logiche e un codec video H.264/265. Il SoM offre inoltre 4 GB di memoria DDR4, 245 IO e 1,4 Top di calcolo IA per supportare la creazione di applicazioni AI di visione ad alte prestazioni che offrono prestazioni più elevate di oltre 3 volte con latenza e potenza inferiori rispetto ad altri approcci hardware. Le applicazioni precostituite consentono di eseguire i primi progetti in meno di un'ora.
Figura 5: Lo starter kit Kria KV260 vision AI è un ambiente di sviluppo completo per applicazioni di visione artificiale. (Immagine per gentile concessione di AMD Xilinx)
Per stimolare il processo di sviluppo con il SoM Kria K26, AMD Xilinx offre lo starter kit KV260 vision AI che comprende un adattatore di alimentazione, un cavo Ethernet, una scheda microSD, un cavo USB, un cavo HDMI e un modulo telecamera (Figura 6). Se non è necessario l'intero starter kit, gli sviluppatori possono semplicemente acquistare l'adattatore di alimentazione opzionale per iniziare a utilizzare il SoM Kira K26.
Figura 6: Lo starter kit KV260 vision AI comprende: (fila in alto, da sinistra a destra) alimentatore, cavo Ethernet, scheda microSD e (fila in basso, da sinistra a destra) cavo USB, cavo HDMI, modulo telecamera. (Immagine per gentile concessione di AMD Xilinx)
Un altro fattore che accelera lo sviluppo è la gamma completa di funzioni, tra cui abbondanti I/O a terminazione singola da 1,8 V, 3,3 V e differenziali con quattro transceiver da 6 Gbps e quattro da 12,5 Gbps. Queste caratteristiche consentono lo sviluppo di applicazioni con un numero maggiore di sensori di immagine per SoM e molte varianti di interfacce sensoriali, come MIPI, LVDS, SLVS e SLVS-EC, che non sempre sono supportate dai prodotti standard specifici per le applicazioni (ASSP) o dalle GPU. Gli sviluppatori possono inoltre implementare DisplayPort, HDMI, PCIe, USB2.0/3.0 e altri standard definiti dall'utente con la logica programmabile integrata.
Infine, lo sviluppo di applicazioni di intelligenza artificiale è stato semplificato e reso più accessibile grazie all'accoppiamento delle ampie capacità hardware e dell'ambiente software del SoM K26 con applicazioni di visione pronte per la produzione. Queste applicazioni di visione possono essere implementate senza la necessità di progettare l'hardware dell'FPGA e consentono agli sviluppatori di software di integrare rapidamente modelli di IA e codice applicativo personalizzati e persino di modificare la pipeline di visione. La piattaforma di sviluppo software unificata Vitis e le librerie di Xilinx supportano ambienti di progettazione comuni, come i framework TensorFlow, Pytorch e Café, nonché diversi linguaggi di programmazione, tra cui C, C++, OpenCL™ e Python. È inoltre disponibile un app store incorporato per le applicazioni edge che utilizzano i SoM Kria di Xilinx e dei suoi partner dell'ecosistema. Le offerte di Xilinx sono gratuite e open-source e comprendono l'inseguimento intelligente delle telecamere e il rilevamento dei volti, l'elaborazione del linguaggio naturale con visione intelligente e altro ancora.
Produzione ottimizzata di SoM Kira 26
Una volta completato il processo di sviluppo, sono disponibili versioni pronte per la produzione del SoM K26, progettato per l'inserimento in una scheda di supporto con periferiche specifiche per la soluzione, che possono accelerare la transizione verso la produzione (Figura 7). Il SoM K26 di base è un'unità di tipo commerciale con una temperatura nominale di giunzione compresa tra 0 °C e +85 °C, misurata dal sensore di temperatura interno. È disponibile anche una versione di livello industriale del SoM K26, in grado di funzionare da -40 °C a +100 °C.
Il mercato industriale richiede una lunga vita operativa negli ambienti difficili. Il SoM Kria di livello industriale è progettato per il funzionamento per dieci anni a 100 °C di giunzione e 80% di umidità relativa e per resistere agli urti fino a 40 g e a vibrazioni di 5 g valore quadratico medio (RMS). Inoltre, ha una disponibilità di produzione minima di dieci anni per supportare lunghi cicli di vita dei prodotti.
Figura 7: I SoM Kira 26 ottimizzati per la produzione in ambienti industriali e commerciali sono progettati per l'inserimento in una scheda di supporto con periferiche specifiche per la soluzione. (Immagine per gentile concessione di DigiKey)
Conclusione
I progettisti di applicazioni di visione artificiale come telecamere per la sicurezza, il traffico e le città, la sorveglianza dei punti di vendita al dettaglio, l'ispezione automatica, il controllo dei processi e la robotica assistita dalla visione possono rivolgersi al SoM Kria K26 AI Starter per accelerare il time-to-market, tenere sotto controllo i costi e ridurre i rischi di sviluppo. Questa piattaforma di sviluppo basata su SoM è un ambiente hardware e software integrato che consente agli sviluppatori di concentrarsi sulla personalizzazione delle applicazioni e di risparmiare fino a nove mesi di tempo di sviluppo. La stessa architettura SoM è disponibile in configurazioni ottimizzate per la produzione in ambienti commerciali e industriali, accelerando ulteriormente il time-to-market. La versione industriale ha una disponibilità di produzione minima di 10 anni per supportare lunghi cicli di vita dei prodotti.
Esonero della responsabilità: le opinioni, le convinzioni e i punti di vista espressi dai vari autori e/o dai partecipanti al forum su questo sito Web non riflettono necessariamente le opinioni, le convinzioni e i punti di vista di DigiKey o le sue politiche.

