Qualcomm Linux sample apps: elementi di base per l'inferenza AI e il video nelle applicazioni IoT
Affinché i robot diventino una parte più significativa della nostra società, devono essere in grado di interfacciarsi in modo intelligente con i loro ambienti dinamici. Parte della sfida per raggiungere questo obiettivo consiste nell'integrare enormi quantità di dati provenienti da molte telecamere e sensori. Blocchi di software Linux® pre-scritti rendono questo compito più facile. Questo articolo di Qualcomm esplora applicazioni campione per l'inferenza AI e il video in applicazioni IoT e robotiche.
Streaming multi-camera
L'applicazione da riga di comando gst-multi-camera-example dimostra lo streaming da due sensori della fotocamera simultaneamente. Può applicare una composizione affiancata dei flussi video per mostrarli su un dispositivo di visualizzazione, oppure può codificare e memorizzare i flussi su file.
La pipeline dell'applicazione appare così:
L'applicazione supporta due configurazioni:
- Composizione e visualizzazione – Il plugin qtimmfsrc sulla fotocamera 0 e sulla fotocamera 1 cattura i dati dai due sensori della fotocamera. 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 della fotocamera e li passa al plugin v4l2h264enc. Il plugin codifica e comprime i flussi della fotocamera nel formato H.264, quindi li consegna per l'analisi e il multiplexing utilizzando rispettivamente i plugin h264parse e mp4mux. Infine, i flussi vengono consegnati al plugin filesink, che li salva come file.
Ecco un esempio dell'output dalla prima configurazione: l'immagine sul lato destro è in bianco e nero, poiché il secondo sensore della fotocamera sul kit di sviluppo è monocromatico.
Quando utilizzeresti questa applicazione?
gst-multi-camera-example è un blocco di costruzione per acquisire dati da due sensori della fotocamera, con opzioni per comporre e visualizzare i flussi video o codificare e memorizzare i flussi su file. È possibile utilizzare questa app di esempio come base per le proprie applicazioni di acquisizione/codifica video, comprese dashcam e fotocamere stereo.
Video wall – Decodifica e visualizzazione video multicanale
L'applicazione da riga di comando gst-concurrent-videoplay-composition facilita la decodifica e la riproduzione video concorrente per video codificati in AVC. L'app esegue la composizione su più flussi video provenienti da file o dalla rete (ad esempio, telecamere IP) per visualizzarli come un muro video.
L'applicazione può prendere più file video (come 4 o 8) come input, decodificare tutti i video compressi, scalarli e comporli come un videowall. L'applicazione richiede almeno un file video di input, in formato MP4 con un codec AVC.
La pipeline dell'applicazione appare così per 4 canali:
Ogni canale utilizza i plugin per eseguire il seguente processamento:
- Legge i dati video compressi da un file utilizzando filesrc.
- Demultiplexa il file con qtdemux.
- Esegue l'analisi dei flussi video H.264 utilizzando h264parse.
- Decodifica i flussi utilizzando v4l2h264dec.
I flussi decodificati da tutti i canali vengono quindi composti insieme utilizzando qtivcomposer e visualizzati utilizzando waylandsink.
Ecco un esempio di utilizzo dell'app gst-concurrent-videoplay-composition su 4 flussi video:
Quando utilizzeresti questa applicazione?
Con gst-concurrent-videoplay-composition puoi decodificare più flussi video compressi e poi comporli in un muro video; ad esempio, in spazi commerciali e segnaletica digitale. Come edge box per la videosorveglianza, puoi catturare l'input da più telecamere IP e visualizzarlo in un unico schermo. In un'applicazione di videoconferenza, puoi elaborare e visualizzare i feed di più persone nella chiamata, con ogni partecipante che trasmette un video.
Prossimi passi
Puoi ottenere quelle applicazioni o l'intero Qualcomm Intelligent Multimedia SDK su GitHub. E poi puoi iniziare a integrarli nelle tue applicazioni.
Tag articolo