Arrow Electronic Components Online

Qualcomm Linux サンプルアプリ: IoT アプリケーションにおける AI 推論とビデオの構築ブロック

人工知能(AI)16 10月 2024
Linuxとの統合を示すQualcommのビジュアル表現で、さまざまな機能やアプリケーションを象徴する相互接続されたアイコンを紹介します。
すべての記事を表示

ロボットが私たちの社会でより大きな役割を果たすためには、動的な環境とインテリジェントにインターフェースできる必要があります。この目標を達成する上での課題の一部は、多くのカメラやセンサーからの膨大なデータを統合することです。Linux®ソフトウェアの事前作成されたブロックにより、この作業は容易になります。本記事では、QualcommがAI推論やIoTおよびロボットアプリケーションにおけるビデオのサンプルアプリケーションを探ります。

マルチカメラストリーミング

コマンドラインアプリケーションgst-multi-camera-exampleは、2つのカメラセンサーから同時にストリーミングするデモを行います。ビデオストリームを並べて合成し、表示デバイスに表示することや、エンコードしてファイルに保存することができます。

アプリケーションパイプラインはこのようになります:

A technical diagram illustrating a multi-camera setup using GStreamer for video encoding

アプリケーションは、2つの構成をサポートしています:

  1. 構成と表示 – camera 0およびcamera 1のqtimmfsrcプラグインが2つのカメラセンサーからデータを取得します。qtivcomposerが構成を行い、その後waylandsinkが画面上にストリームを並べて表示します。
  2. Video encoding – The qtimmfsrc plugin on camera 0 and camera 1 captures the data from the two camera sensors and passes it to the v4l2h264enc plugin. The plugin encodes and compresses the camera streams to H.264 format, then hands them off for parsing and multiplexing using the h264parse and mp4mux plugins, respectively. Finally, the streams are handed off to the filesink plugin, which saves them as files.

以下は最初の構成からの出力例です: 右側の画像はモノクロであり、これは開発キットの2番目のカメラセンサーがモノクロであるためです。

A parking area featuring a motorcycle and a car, surrounded by trees and a gated entrance

このアプリケーションを使用するのはいつですか?

gst-multi-camera-example は、2つのカメラセンサーからデータを取得するための構築ブロックであり、ビデオストリームを合成して表示するオプションや、ストリームをエンコードしてファイルに保存するオプションを備えています。このサンプルアプリは、ダッシュカムやステレオカメラを含む、独自のカメラキャプチャ/エンコードアプリケーションの基盤として使用できます。

ビデオウォール – マルチチャネルビデオデコードとディスプレイ

コマンドラインアプリケーションgst-concurrent-videoplay-compositionは、AVC符号化された動画の同時デコードと再生を実現します。このアプリは、ファイルやネットワーク(例:IPカメラ)からの複数の動画ストリームを合成して、ビデオウォールとして表示する機能を提供します。

このアプリケーションは、複数の(例えば4つまたは8つの)ビデオファイルを入力として受け取り、すべての圧縮ビデオをデコードし、それらをスケールしてビデオウォールとして構成することができます。このアプリケーションは、少なくとも1つの入力ビデオファイルを必要とし、AVCコーデックを使用したMP4形式である必要があります。

4チャンネルの場合、アプリケーションパイプラインは次のようになります:

A technical diagram illustrating a streaming pipeline with multiple streams

各チャネルは、以下の処理を実行するためにプラグインを使用します:

  • filesrc を使用してファイルから圧縮された動画データを読み取ります。
  • ファイルをqtdemuxでデマルチプレックスします。
  • Parses H.264 video streams using h264parse.
  • v4l2h264decを使用してストリームをデコードします。

すべてのチャンネルからのデコードされたストリームは、その後、qtivcomposer を使用して一緒に構成され、waylandsink を使用して表示されます。

こちらは、4つのビデオストリームでアプリ gst-concurrent-videoplay-composition を使用した例です。

A person interacts with a mobile app featuring a vibrant interface in a cozy indoor setting

このアプリケーションはいつ使用しますか?

gst-concurrent-videoplay-composition を使用すると、複数の圧縮ビデオストリームをデコードし、それらをビデオウォールに構成することができます。例えば、リテールスペースやデジタルサイネージで使用できます。また、ビデオ監視のエッジボックスとして、複数のIPカメラから入力をキャプチャして、1つの画面に表示することができます。さらに、ビデオ会議アプリケーションでは、通話中の複数の参加者からのフィードを処理して表示し、各参加者がビデオをストリーミングできるようにします。

次のステップ

これらのアプリケーションまたはQualcomm Intelligent Multimedia SDK全体をGitHubで入手できます。その後、それらを自身のアプリケーションに組み込むことができます。

記事タグ

ロボティクス
Internet of Things (IoT)
QUALCOMM
人工知能 (AI)

関連ニュース記事

すべて表示