App di esempio Qualcomm Linux: Blocchi di base per inferenza AI e video nelle applicazioni IoT
Affinché i robot diventino una parte più significativa della nostra società, devono essere in grado di interagire in modo intelligente con i loro ambienti dinamici. Parte della sfida per raggiungere questo obiettivo consiste nell'integrare grandi quantità di dati provenienti da molte telecamere e sensori. Blocchi pre-scritti di software Linux® rendono questo compito più semplice. Questo articolo di Qualcomm esplora applicazioni di esempio per inferenza AI e video nelle applicazioni IoT e robotiche.
Streaming multi-camera
L'applicazione da linea di comando gst-multi-camera-example dimostra lo streaming simultaneo da due sensori della fotocamera. Può applicare una composizione side-by-side dei flussi video per mostrarli su un dispositivo di visualizzazione, oppure può codificare e salvare i flussi in file.
Il flusso della pipeline dell'applicazione è il seguente:
L'applicazione supporta due configurazioni:
Composizione e visualizzazione – Il plugin qtimmfsrc sulla fotocamera 0 e sulla fotocamera 1 acquisisce i dati dai due sensori delle fotocamere. qtivcomposer esegue la composizione, quindi waylandsink visualizza i flussi affiancati sullo schermo.
Codifica video – Il plugin qtimmfsrc sulla fotocamera 0 e sulla fotocamera 1 cattura i dati dai due sensori delle fotocamere e li passa al plugin v4l2h264enc. Il plugin codifica e comprime i flussi delle fotocamere nel formato H.264, quindi li trasferisce per l'analisi e il multiplexing utilizzando, rispettivamente, i plugin h264parse e mp4mux. Infine, i flussi vengono trasferiti al plugin filesink, che li salva come file.
Ecco un esempio dell'output della prima configurazione: l'immagine sul lato destro è in monocromia, poiché il secondo sensore della fotocamera nel kit di sviluppo è monocromatico.
Quando utilizzeresti questa applicazione?
gst-multi-camera-example è un modulo di base per acquisire dati da due sensori della fotocamera, con opzioni per comporre e visualizzare i flussi video oppure codificarli e salvarli in file. Puoi utilizzare questa app di esempio come base per le tue applicazioni di acquisizione/codifica video, inclusi dashcam e fotocamere stereo.
Wall video – Decodifica e visualizzazione video multicanale
L'applicazione da riga di comando gst-concurrent-videoplay-composition facilita la decodifica e la riproduzione simultanea di video codificati in AVC. L'app esegue la composizione di più flussi video provenienti da file o dalla rete (ad esempio, telecamere IP) per la visualizzazione come una parete video.
L'applicazione può accettare più file video (ad esempio 4 o 8) come input, decodificare tutti i video compressi, scalarli e comporli come una parete video. L'applicazione richiede almeno un file video di input, in formato MP4 con codec AVC.
La pipeline dell'applicazione appare così per 4 canali:
Ogni canale utilizza plugin per eseguire il seguente processo:
Legge dati video compressi da un file utilizzando filesrc.
Demultiplexa il file con qtdemux.
Analizza i flussi video H.264 utilizzando h264parse.
Decodifica i flussi utilizzando v4l2h264dec.
Gli stream decodificati da tutti i canali vengono quindi composti insieme utilizzando qtivcomposer e visualizzati tramite waylandsink.
Ecco un esempio di utilizzo dell'app gst-concurrent-videoplay-composition su 4 flussi video:
Quando useresti questa applicazione?
Con gst-concurrent-videoplay-composition puoi decodificare più flussi video compressi e comporli in un video wall; ad esempio, in spazi retail e segnaletica digitale. Come una soluzione edge per la videosorveglianza, puoi acquisire input da più telecamere IP e visualizzarlo in un unico schermo. In un'applicazione di videoconferenza, puoi elaborare e visualizzare i flussi video di più partecipanti alla chiamata, con ogni partecipante che trasmette un video.
Prossimi passi
Puoi ottenere quelle applicazioni o l'intero SDK Qualcomm Intelligent Multimedia su GitHub. Dopodiché, puoi iniziare a integrarle nelle tue applicazioni.
Tag articolo