Qualcomm Linux-Beispiel-Apps: Bausteine für KI-Inferenz und Video in IoT-Anwendungen
Damit Roboter einen größeren Teil unserer Gesellschaft ausmachen können, müssen sie in der Lage sein, intelligent mit ihren dynamischen Umgebungen zu interagieren. Eine der Herausforderungen, um dies zu erreichen, besteht darin, große Mengen an Daten aus zahlreichen Kameras und Sensoren zu integrieren. Vorgefertigte Linux®-Software-Module erleichtern diese Aufgabe. Dieser Artikel von Qualcomm untersucht beispielhafte Anwendungen für KI-Inferenz und Video in IoT- und Robotik-Anwendungen.
Multi-Kamera-Streaming
Die Kommandozeilenanwendung gst-multi-camera-example demonstriert das gleichzeitige Streaming von zwei Kamera-Sensoren. Sie kann eine nebeneinander angeordnete Komposition der Videostreams zur Anzeige auf einem Ausgabegerät erstellen oder die Streams codieren und in Dateien speichern.
Die Bewerbungs-Pipeline sieht wie folgt aus:
Die Anwendung unterstützt zwei Konfigurationen:
Komposition und Anzeige – Das qtimmfsrc-Plugin für Kamera 0 und Kamera 1 erfasst die Daten von den beiden Kamerasensoren. qtivcomposer führt die Komposition durch, und waylandsink zeigt die Streams nebeneinander auf dem Bildschirm an.
Video-Encoding – Das qtimmfsrc-Plugin an Kamera 0 und Kamera 1 erfasst die Daten von den beiden Kamerasensoren und übergibt sie an das v4l2h264enc-Plugin. Das Plugin codiert und komprimiert die Kamerastreams in das H.264-Format und übergibt sie anschließend zum Parsen und Multiplexen an die h264parse- bzw. mp4mux-Plugins. Schließlich werden die Streams an das filesink-Plugin übergeben, das sie als Dateien speichert.
Hier ist ein Beispiel für die Ausgabe der ersten Konfiguration: Das Bild auf der rechten Seite ist monochrom, da der zweite Kamerasensor im Entwicklungskit monochrom ist.
Wann würden Sie diese Anwendung nutzen?
gst-multi-camera-example ist ein Baustein zur Erfassung von Daten aus zwei Kamerasensoren, mit Optionen entweder zum Zusammensetzen und Anzeigen der Videostreams oder zum Kodieren und Speichern der Streams in Dateien. Sie können diese Beispielanwendung als Grundlage für Ihre eigenen Anwendungen zur Kameraerfassung/Kodierung nutzen, einschließlich Dashcams und Stereo-Kameras.
Videowand – Mehrkanal-Videodekodierung und Anzeige
Die Kommandozeilenanwendung gst-concurrent-videoplay-composition ermöglicht die gleichzeitige Videodekodierung und Wiedergabe von AVC-kodierten Videos. Die Anwendung führt eine Komposition von mehreren Videostreams aus Dateien oder dem Netzwerk (z. B. IP-Kameras) durch, um diese als Videowand darzustellen.
Die Anwendung kann mehrere Videodateien (z. B. 4 oder 8) als Eingabe verwenden, alle komprimierten Videos dekodieren, skalieren und als Videowand zusammenstellen. Die Anwendung erfordert mindestens eine Eingabevideodatei im MP4-Format mit einem AVC-Codec.
Die Anwendungspipeline sieht für 4 Kanäle wie folgt aus:
Jeder Kanal verwendet Plugins, um die folgende Verarbeitung durchzuführen:
Liest komprimierte Videodaten aus einer Datei mit filesrc.
Demultiplexiert die Datei mit qtdemux.
Analysiert H.264-Videostreams mit h264parse.
Dekodiert die Streams mit v4l2h264dec.
Die decodierten Streams aller Kanäle werden anschließend mit qtivcomposer zusammengefügt und mithilfe von waylandsink angezeigt.
Hier ist ein Beispiel für die Verwendung der App gst-concurrent-videoplay-composition auf 4 Videostreams:
Wann würden Sie diese Anwendung nutzen?
Mit gst-concurrent-videoplay-composition können Sie mehrere komprimierte Video-Streams dekodieren und anschließend zu einer Videowand zusammensetzen; beispielsweise in Einzelhandelsbereichen und digitaler Beschilderung. Als Edge-Box für Videoüberwachung können Sie Eingaben von mehreren IP-Kameras erfassen und diese auf einem einzigen Bildschirm anzeigen. In einer Videokonferenzanwendung können Sie die Übertragungen von mehreren Personen im Gespräch verarbeiten und anzeigen, wobei jeder Teilnehmer ein Video streamt.
Nächste Schritte
Sie können diese Anwendungen oder das gesamte Qualcomm Intelligent Multimedia SDK auf GitHub erhalten. Anschließend können Sie beginnen, sie in Ihre eigenen Anwendungen zu integrieren.
Artikel Tags