Pour que les robots puissent prendre une place plus importante dans notre société, ils doivent être capables d’interagir intelligemment avec leurs environnements dynamiques. Une partie du défi pour y parvenir consiste à intégrer de vastes quantités de données provenant de nombreuses caméras et capteurs. Les blocs pré-écrits de logiciels Linux® facilitent cette tâche. Cet article de Qualcomm explore des exemples d’applications pour l’inférence de l’IA et la vidéo dans les applications IoT et robotiques.
Streaming multi-caméras
L’application en ligne de commande gst-multi-camera-example montre une diffusion en continu à partir de deux capteurs de caméra simultanément. Elle peut appliquer une composition côte à côte des flux vidéo pour les afficher sur un dispositif d’affichage, ou bien peut encoder et stocker les flux dans des fichiers.
Le pipeline d'application ressemble à ceci :

L'application prend en charge deux configurations :
- Composition et affichage : le plugin qtimmfsrc sur la caméra 0 et la caméra 1 capture les données des deux capteurs de la caméra. qtivcomposer effectue la composition, puis waylandsink affiche les flux côte à côte sur l’écran.
- Encodage vidéo : le plugin qtimmfsrc sur la caméra 0 et la caméra 1 capture les données des deux capteurs de la caméra et les transmet au plugin v4l2h264enc. Le plugin encode et compresse les flux de caméra au format H.264, puis les transmet pour analyse et multiplexage à l'aide des plugins h264parse et mp4mux, respectivement. Enfin, les flux sont transmis au plugin filesink, qui les enregistre sous forme de fichiers.
Voici un exemple de sortie de la première configuration : l'image du côté droit est monochrome, car le deuxième capteur de caméra du kit de développement est monochrome.

Quand utiliseriez-vous cette application ?
gst-multi-camera-example est un bloc de construction permettant de capturer des données à partir de deux capteurs de caméra, avec des options de composition et d’affichage des flux vidéo ou d’encodage et de stockage des flux dans des fichiers. Vous pouvez utiliser cet exemple d'application comme base pour vos propres applications de capture/encodage de caméra, y compris les caméras de tableau de bord et les caméras stéréo.
Mur vidéo – Décodage et affichage vidéo multicanal
L'application de ligne de commande gst-concurrent-videoplay-composition facilite le décodage et la lecture simultanés de vidéos codées AVC. L'application effectue une composition sur plusieurs flux vidéo provenant de fichiers ou du réseau (par exemple, des caméras IP) pour les afficher sous forme de mur vidéo.
L'application peut prendre plusieurs fichiers vidéo (par exemple 4 ou 8) en entrée, décoder toutes les vidéos compressées, les mettre à l'échelle et les composer sous forme de mur vidéo. L'application nécessite au moins un fichier vidéo d'entrée, au format MP4 avec un codec AVC.
Le pipeline d’application se présente comme suit pour 4 canaux :

Chaque canal utilise des plugins pour effectuer le traitement suivant :
- Lit les données vidéo compressées à partir d'un fichier à l'aide de filesrc.
- Démultiplexe le fichier avec qtdemux.
- Analyse les flux vidéo H.264 à l'aide de h264parse.
- Décode les flux en utilisant v4l2h264dec.
Les flux décodés de tous les canaux sont ensuite composés ensemble à l'aide de qtivcomposer et affichés à l'aide de waylandsink.
Voici un exemple d'utilisation de l'application gst-concurrent-videoplay-composition sur 4 flux vidéo :

Quand utiliseriez-vous cette application ?
Avec gst-concurrent-videoplay-composition vous pouvez décoder plusieurs flux vidéo compressés, puis les composer en un mur vidéo ; par exemple, dans les espaces de vente au détail et la signalisation numérique. En tant que boîtier périphérique pour la vidéosurveillance, vous pouvez capturer les données de plusieurs caméras IP et les afficher sur un seul écran. Dans une application de vidéoconférence, vous pouvez traiter et afficher des flux provenant de plusieurs personnes participant à l’appel, chaque participant diffusant une vidéo.
Prochaines étapes
Vous pouvez obtenir ces applications ou l’intégralité du kit de développement logiciel Qualcomm Intelligent Multimedia sur GitHub. Vous pourrez ensuite les intégrer à vos propres applications.
