Come creare e distribuire rapidamente applicazioni di visione sull'edge adattabili con una piattaforma pronta per la produzione
Contributo di Editori nordamericani di DigiKey
2022-02-03
L'applicazione dell'intelligenza artificiale (IA) su telecamere intelligenti basate sull'edge ha fatto rapidamente ingresso in una gamma crescente di applicazioni di visione embedded come la visione artificiale, la sicurezza, la vendita al dettaglio e la robotica. Se il rapido emergere di algoritmi di apprendimento automatico (ML) accessibili ha stimolato questo interesse per l'IA, gli sviluppatori faticano tuttora a centrare le scadenze di consegna di progetti che siano allo stesso tempo ad alte prestazioni e a bassa potenza per le applicazioni basate sull'edge.
A complicare ulteriormente le cose, anche le soluzioni appena implementate possono diventare rapidamente meno che ottimali a causa della mutevole natura dei requisiti delle applicazioni e dei continui miglioramenti degli algoritmi in evoluzione.
Questo articolo presenta una soluzione System-on-Module (SoM) flessibile di Xilinx che gli sviluppatori possono utilizzare per implementare rapidamente soluzioni di telecamere intelligenti per l'implementazione sull'edge. Mostra come possono adattare più facilmente queste soluzioni in risposta alle mutevoli esigenze senza compromettere i requisiti chiave di latenza e potenza.
Accelerare l'esecuzione delle applicazioni di visione
Basato su un System-on-Chip multiprocessore (MPSoC) Zynq UltraScale+ realizzato su misura, il SoM Kria K26 di Xilinx è un robusto sistema di elaborazione embedded comprendente una unità di elaborazione delle applicazioni (APU) Arm Cortex-A53 quad-core a 64 bit, una unità di elaborazione in tempo reale (RPU) Arm® Cortex®-R5F dual-core a 32 bit e una unità di elaborazione grafica (GPU) 3D Arm Mali-400MP2. Il SoM combina MPSoC e 4 GB di memoria a doppia velocità dati 4 (DDR4) a 64 bit e il controller di memoria associato, così come più dispositivi di memoria non volatile (NVM) tra cui 512 Mb di memoria QSPI (interfaccia di periferica seriale quad), 16 GB di memoria eMMC (scheda multimediale embedded) e 64 kb di memoria EEPROM (memoria programmabile di sola lettura cancellabile elettricamente (Figura 1).
Figura 1: Il SoM Kria K26 di Xilinx combina le ampie capacità di elaborazione di un MPSoC Zynq UltraScale+ su misura con un modulo di piattaforma affidabile 2.0 (TPM2) e memoria dinamica e non volatile. (Immagine per gentile concessione di Xilinx)
Xilinx completa le risorse di elaborazione e di memoria con un ampio sistema di logica programmabile che comprende 256K celle logiche di sistema, 234K flip-flop di blocchi logici configurabili (CLB), 117K tabelle di ricerca CLB (LUT) e un totale di 26,6 Mb di memoria in varie configurazioni di memoria ad accesso casuale distribuita (RAM), RAM a blocchi e blocchi ultraRAM. Inoltre, il sistema logico programmabile include 1.248 slice di elaborazione di segnali digitali (DSP), quattro transceiver e un codec video per H.264 e H.265 in grado di supportare fino a 32 flussi di codifica/decodifica simultanei, fino a un totale di 3840 x 2160 pixel a 60 fps. I due connettori a 240 pin del SoM sono destinati all'accesso ai blocchi funzionali e alle periferiche attraverso ingressi/uscite (I/O) configurabili dall'utente.
Questa combinazione di core di processore, memoria e logica programmabile fornisce un livello unico di flessibilità e prestazioni che supera gli svantaggi chiave delle GPU utilizzate per l'esecuzione ad alta velocità degli algoritmi di ML. A differenza del flusso di dati fisso nelle GPU, gli sviluppatori possono riconfigurare il percorso dati del SoM K26 per ottimizzare il throughput e ridurre la latenza. Inoltre, l'architettura del SoM K26 è particolarmente adatta al tipo di reti sparse al centro di un numero crescente di applicazioni ML.
La programmabilità del SoM K26 risolve anche i colli di bottiglia della memoria che aumentano il consumo energetico e limitano le prestazioni nelle applicazioni ad alta intensità di memoria, come l'apprendimento automatico costruito con architetture convenzionali che utilizzano GPU, processori multicore o anche SoC avanzati. In qualsiasi applicazione progettata con questi dispositivi convenzionali, la memoria esterna rappresenta di solito il 40% circa del consumo energetico del sistema, mentre i core di processore e la memoria interna circa il 30% ciascuno. Al contrario, gli sviluppatori possono sfruttare i blocchi di memoria interna e la riconfigurabilità del SoM K26 per implementare progetti che richiedono poco o nessun accesso alla memoria esterna. Il risultato è un aumento delle prestazioni e un consumo energetico inferiore rispetto ai dispositivi convenzionali (Figura 2).
Figura 2: Mentre i sistemi basati su CPU embedded e i tipici SoC richiedono molteplici accessi alla memoria che consumano energia per eseguire le applicazioni, i sistemi basati su Kria di Xilinx utilizzano una pipeline di visione efficiente capace di evitare l'accesso DDR. (Immagine per gentile concessione di Xilinx)
Insieme alle sue alte prestazioni, al basso consumo energetico e all'ampia riconfigurabilità, il SoM K26 aiuta a garantire la sicurezza nei progetti di telecamere intelligenti per applicazioni sensibili. Oltre al dispositivo di sicurezza TPM integrato nel SoM, MPSoC integra un'unità di sicurezza configurazione dedicata (CSU) che supporta l'avvio sicuro, il monitoraggio delle manomissioni, la memorizzazione sicura delle chiavi e l'accelerazione hardware crittografica. Insieme, la CSU, la memoria interna su chip (OCM) e la memorizzazione sicura delle chiavi forniscono la base sicura per una radice di attendibilità hardware destinata all'implementazione dell'avvio sicuro e una piattaforma affidabile per l'esecuzione delle applicazioni.
Le ampie capacità disponibili con il SoM K26 fanno da base potente per l'implementazione di applicazioni esigenti basate sull'edge. Tuttavia, ogni applicazione ha requisiti propri in termini di caratteristiche e funzionalità associate a un set di periferiche e altri componenti specifici. Per semplificare l'implementazione di soluzioni specifiche per le applicazioni, il SoM K26 è progettato per l'inserimento in una scheda portante che ospita le periferiche aggiuntive. Xilinx dimostra questo approccio con il starter kit di visione IA basata su Kria K26 KV260.
Lo starter kit semplifica lo sviluppo di applicazioni di visione
Composto da un SoM K26 inserito in una scheda portante incentrata sulla visione, lo starter kit Xilinx KV260 è una piattaforma già pronta progettata appositamente per la valutazione immediata e il rapido sviluppo di applicazioni di visione intelligente. Mentre il SoM K26 fornisce le capacità di elaborazione richieste, la scheda portante dello starter kit fornisce la gestione della potenza, compresa la sequenza di accensione e reset, così come le opzioni di interfaccia e i connettori per la fotocamera, il display e la scheda microSD (Figura 3).
Figura 3: Lo starter Kit di visione IA KV260 di Xilinx è una soluzione completa di visione intelligente che utilizza il SoM K26 inserito in una scheda portante incentrata sulla visione. (Immagine per gentile concessione di Xilinx)
Oltre alle sue molteplici interfacce, la scheda portante fornisce il supporto multicamera attraverso il connettore Raspberry Pi e una coppia di connettori per il sistema di accesso alle immagini (IAS), uno dei quali si collega a un dedicato processore di immagini (ISP) da 13 MP AP1302 di onsemi in grado di gestire tutte le funzioni di elaborazione delle immagini.
Per accelerare ulteriormente l'implementazione di applicazioni basate sulla visione, Xilinx supporta questa piattaforma hardware di visione predefinita con una serie di applicazioni di visione accelerata pre-costruite, a fianco di una serie completa di strumenti software e librerie di sviluppo personalizzato.
Le applicazioni accelerate forniscono soluzioni immediate
Per una valutazione immediata e un rapido sviluppo di applicazioni di visione, Xilinx offre diverse applicazioni pre-costruite che dimostrano l'esecuzione di diversi casi d'uso comuni, tra cui il riconoscimento facciale con una telecamera intelligente utilizzando la logica programmabile, l'identificazione e il monitoraggio dei pedoni, il rilevamento dei difetti e l'individuazione di parole chiave accoppiate utilizzando il sistema di elaborazione del MPSoC. Disponibile su Xilinx Kria App Store, ogni applicazione fornisce una soluzione completa per il suo caso d'uso specifico con strumenti e risorse di accompagnamento. Ad esempio, l'applicazione di riconoscimento facciale della telecamera intelligente utilizza il sensore di immagine AR1335 integrato nella scheda portante KV260 e l'ISP AP1302 per acquisire le immagini e l'uscita HDMI o DisplayPort (DP) della scheda per generare il risultato. Per l'elaborazione del riconoscimento facciale, l'applicazione configura il SoM K26 per fornire un acceleratore della pipeline di visione e un motore di inferenza ML pre-costruito per il riconoscimento facciale, il conteggio delle persone e altre applicazioni di telecamera intelligente (Figura 4).
Figura 4: Disponibili per il download da Xilinx Kria App Store, le applicazioni accelerate pre-costruite sono pronte l'esecuzione immediata sullo starter kit KV260, fornendo soluzioni complete per modelli di utilizzo della visione come il riconoscimento facciale. (Immagine per gentile concessione di Xilinx)
Grazie all'implementazione e al supporto completi, le applicazioni accelerate pre-costruite da Xilinx Kria App Store permettono agli sviluppatori di realizzare progetti attivi e funzionanti in meno di un'ora, anche se senza esperienza con gli FPGA. Mentre valutano l'applicazione, possono usare lo stack software fornito per modificare la funzionalità ed esplorare soluzioni alternative. Per uno sviluppo personalizzato più esteso, Xilinx fornisce una suite completa di strumenti di sviluppo e librerie.
L'ambiente di sviluppo IA e gli strumenti accelerano lo sviluppo personalizzato
Per lo sviluppo personalizzato di applicazioni basate su IA, l'ambiente di sviluppo Vitis AI di Xilinx fornisce strumenti ottimizzati, librerie e modelli pre-addestrati che possono fare da base per modelli personalizzati più specializzati. Per l'ambiente operativo di runtime, il kit di sviluppo software (SDK) Linux embedded PetaLinux basato su Yocto di Xilinx fornisce la suite completa di funzionalità necessarie per creare, sviluppare, testare e distribuire sistemi Linux embedded.
Progettato sia per utenti esperti sia per gli sviluppatori senza esperienza FPGA, l'ambiente Vitis AI astrae i dettagli dell'hardware di silicio sottostante, permettendo loro di concentrarsi sulla creazione di modelli ML più efficaci. Infatti, l'ambiente Vitis AI è integrato con lo stack di compilatori di apprendimento profondo open-source Apache Tensor Virtual Machine (TVM), che permette agli sviluppatori di compilare i modelli da diversi framework per un processore, una GPU o un acceleratore. Utilizzando Vitis AI con TVM, gli sviluppatori possono migliorare i progetti esistenti con capacità di visione accelerata, trasferendo i carichi di lavoro di visione ad alta intensità di calcoli come i modelli di apprendimento profondo al SoM Kria. Per aiutare gli sviluppatori a ottimizzare ulteriormente i modelli di apprendimento profondo, lo strumento AI Optimization di Xilinx può semplificare le reti neurali per ridurre la complessità in termini di numero di giga operazioni al secondo (Gops), aumentare i fotogrammi al secondo (fps) e ridurre i modelli sovra-parametrizzati, comprimendoli fino a 50 volte con minimo impatto sulla precisione media (mAP) (Figura 5).
Figura 5: Un caso di studio di Xilinx Research ha mostrato come alcune iterazioni di semplificazione con lo strumento AI Optimization di Xilinx possono ridurre rapidamente la complessità della rete neurale in termini di numero di Gops, aumentando al contempo i fotogrammi al secondo, il tutto con un impatto minimo sulla precisione. (Immagine per gentile concessione di Xilinx)
Per l'implementazione di applicazioni di visione personalizzate, le librerie Vitis Vision open-source di Xilinx sono ottimizzate per alte prestazioni e basso utilizzo di risorse su piattaforme Xilinx, fornendo un'interfaccia familiare basata su OpenCV. Per l'analisi, il framework applicativo SDK Video Analytics di Xilinx aiuta gli sviluppatori a costruire pipeline di visione e analisi video più efficaci senza richiedere una profonda conoscenza in fatto di FPGA. Basato sul framework GStreamer open-source di ampia adozione, l'SDK Video Analytics permette agli sviluppatori di creare rapidamente kernel di accelerazione personalizzati come plug-in GStreamer da integrare nel framework SDK.
Con questi strumenti, un tipico sviluppatore embedded può facilmente assemblare pipeline di accelerazione personalizzate con o senza kernel di accelerazione personalizzati.
Conclusione
Gli algoritmi di ML ad alta intensità di calcoli hanno permesso l'uso della tecnologia di visione intelligente in molteplici applicazioni in esecuzione sull'edge, ma gli sviluppatori devono affrontare varie sfide per soddisfare i requisiti di alte prestazioni, bassa potenza e adattabilità dei sistemi di visione basati sull'edge. La soluzione con SoM Kria K26 di Xilinx fa da base hardware per accelerare lo sviluppo di algoritmi avanzati senza superare i rigidi requisiti di potenza disponibile. Utilizzando uno starter kit basato su Kria K26 con applicazioni pre-costruite, gli sviluppatori possono iniziare immediatamente a valutare le applicazioni di visione intelligente e utilizzare un ambiente di sviluppo completo per creare soluzioni di dispositivi personalizzati sull'edge.
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.



