Arrow Electronic Components Online

クアルコム Linux サンプルアプリ – AIオブジェクト検出と並列AI融合

人工知能18 9月 2025
赤いセーターと黄色いネックストラップを身に着けた人物が、サーバールームでラップトップを操作している様子が見られる。
すべての記事を見る

この記事では、Qualcomm Intelligent Multimedia SDKにおけるライブストリーム物体検出と並列センサーフュージョンの機能について学びます。

自律型ドローンが航行能力を維持するためには、常に変化する変数が影響を与えるため、強力なAI処理を用いた意思決定が必要です。しかし、その高度な複雑性ゆえに、これらのAI制御を実装することは困難です。そこで、QualcommのLinuxベースのサンプルアプリケーションは、製品開発者にとって市場投入への迅速な道を提供します。この記事では、Qualcomm Intelligent Multimedia SDKに含まれるライブストリームによる物体検出や並列センサーフュージョン機能について学びましょう。   前回の記事では、Qualcomm Intelligent Multimedia SDKの2つの基本構成要素となるサンプルアプリについてお話しました。このSDKはQualcomm® Linux®ソフトウェアに基づいており、一度書き込めば、Qualcommの多くのIoT SoC(システムオンチップ)に対応することが可能です。今回の記事では、SDK内の22種類のサンプルアプリのうち2つをさらに詳しく紹介し、IoTチップセット向けのアプリ開発方法をご説明します。

AIを見抜く: ライブ配信によるオブジェクト検出

このコマンドラインアプリケーション、gst-ai-object-detectionは、カメラからのライブビデオストリームを受け取り、それをオープンソースのYOLO(You Only Look Once)AIモデルに渡してオブジェクト検出を行います。このアプリケーションは、専用のハードウェアブロックを使用して前処理およびAI推論を実行し、YOLOV5、YOLOV8、またはYOLO-Nasを実行します。また、Snapdragon Neural Processing SDKを利用して処理を行います。その後、モデルに基づいたラベルやバウンディングボックスなどのオーバーレイ出力を含むプレビューを表示します。   このアプリケーションのパイプラインは次のようになります:

A technical diagram illustrating the workflow of the Qualcomm Neural Processing SDK.

  • qtiqmmfsrc – このgstreamerプラグインを使用して、アプリケーションはカメラライブストリームをキャプチャし、その後、teeを使用してストリームを分割します。
  • qtimlvconverter – この前処理プラグインは、ストリームデータに対して色変換、縮小/拡大スケーリング、正規化などのタスクを実行します。後で推論するために、ビデオストリームをテンソルストリームに変換します。
  • qtimlsnpe – この機械学習推論プラグインは、YOLO-Nas(デフォルト)、YOLOV8、またはYOLOV5を適用してストリーム内の物体を検出します。CPU、GPU、およびDSPベースのニューラル処理ユニット(NPU)上でSnapdragon Neural Processingランタイムをハードウェアとして実行します。
  • SNPEランタイムはテンソルストリームで推論を実行し、推論結果を含むテンソルストリームを生成します。
  • qtimlvdetection – このプラグインは、ポストプロセシングにおいて所望の結果数にしきい値を適用します。ポストプロセシングのためにYOLO-Nasモジュールをロードし、バウンディングボックスのみを含むビデオフレーム(オーバーレイ用)を生成し、これらのフレームをビデオ合成に引き渡します。
  • qtivcomposer – このプラグインは、ライブカメラストリームのフレーム上に境界ボックスやラベルを含むフレームをオーバーレイし、結合されたレイヤーを持つ gst バッファを提供します。
  • Waylandsinkは受信したビデオストリームをWestonに送信し、Westonはそのビデオストリームをローカルディスプレイにレンダリングします。

こちらは、カメラストリームで人物を検出するために gst-ai-object-detection を使用する例です:

A person wearing a red sweater and yellow lanyard is seen working on a laptop in a server room.

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

gst-ai-object-detection には数十種類のクラスがあり、それらを使用して人、車両、動物などの物体を検出し、カメラフレーム内で位置を特定するための独自のアプリケーションを構築することができます。例えば、ヘルメット、火災/煙、侵入者の検出などの例があります。

並列AI融合: ライブカメラでの4つのAI推論

このコマンドラインアプリケーション、 gst-ai-parallel-inferenceは、上記の1チャンネルアプリを拡張し、専用のハードウェアブロック上でAIモデルを並列処理する4チャンネル構成を可能にしています。物体検出に加えて、分類、ポーズ検出、セグメンテーションを追加し、4つすべてのモデルの出力をオーバーレイしたライブカメラストリームの縮小表示および構成済みプレビューを提供します。   アプリケーションのパイプラインは上述のものから変更され、それぞれのAI推論用に個別の流れを構成しています。以下に示します:

A technical diagram showcasing a video processing pipeline for AI applications.

  • qtiqmmfsrc – このGStreamerプラグインを使用して、アプリケーションはカメラのライブストリームをキャプチャし、その後、teeを使用して4つの並列ストリームを生成します。
  • qtimlvconverter – この前処理プラグインは、ストリームデータに対して色変換、ダウンサンプリング/アップサンプリング、正規化などのタスクを実行します。後の推論に向けて、ビデオストリームをテンソルストリームに変換します。
  • qtimlsnpe – この機械学習推論プラグインは、物体検出にYOLO-Nasを適用し、画像セグメンテーションに DeepLabv3 を使用します。このプラグインは、Snapdragon Neural ProcessingランタイムをハードウェアでCPU上で実行します。
  • qtimltflite – このプラグインは、姿勢検出に PoseNet を、物体分類に Inception V3 を適用します。このプラグインは、TFLite ランタイムを CPU、GPU、および DSP ベースのニューラル処理ユニット (NPU) におけるハードウェアで実行します。
  • 後処理は各モデルに対して異なるプラグインを使用します。
  • qtimlvdetection – オブジェクト検出用のこのプラグインは、希望する結果数に対して閾値を適用します。YOLO-Nas後処理モジュールを読み込み、バウンディングボックス(オーバーレイ用)のみを含むビデオフレームを生成し、それらのフレームを動画合成のために渡します。
  • qtimlvclassification – このプラグインは分類のために、指定された数の望ましい結果に閾値を適用します。Inception V3のポストプロセッシングモジュールを読み込み、分類ラベル付きのビデオフレーム(オーバーレイ用)を生成し、そのフレームをビデオ合成に引き渡します。
  • qtimlvpose – ポーズ推定のために、このプラグインは設定された閾値を希望する結果の数に適用します。異なるポーズ推定モデルのモジュールをロードする機能を備えています。この使用例では、PoseNetモジュールをロードし、描画されたポーズ付きのビデオフレーム(オーバーレイ用)を生成し、それらのフレームをビデオ合成のために渡します。
  • qtimlvsegmentation – セグメンテーション用のこのプラグインは、受信した推論テンソルを後でマルチメディアプラグインが理解できる動画形式に変換します。
  • qtivcomposer – このプラグインは、AIモデルからのフレームをライブカメラストリームのフレームに重ね合わせ、組み合わせたレイヤーを含むgstバッファを引き渡します。
  • Waylandsinkは、受信したビデオストリームをWestonに送信し、Westonがローカルディスプレイ上にビデオストリームを描画します。

こちらは、gst-ai-parallel-inferenceからレンダリングされたビデオストリームの例です:

A male cyclist rides a mountain bike on a rugged dirt trail surrounded by greenery under a clear blue sky.

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

gst-ai-object-detectionのスーパーセットであるgst-ai-parallel-inferenceを使用すると、カメラのフレーム内で人、車両、動物、その他のオブジェクトを検出することができます。さらには煙や火さえも検出可能です。   ポーズ検出を利用することで、例えば人が横になっている、座っている、立っているかを判断できるほか、転倒したかどうかを判断することも可能です。ジムのトレーナーやヨガのインストラクターは、生徒が正しいポーズを取っているかどうかを理解するためにポーズ検出を利用できます。また、エルゴノミクス(人間工学)アプリケーションでは、椅子やデスクでの正しい姿勢を見守り、リマインダーを送ることが可能です。   分類アプリケーションのシナリオとしては製品のカテゴリ化が挙げられ、セグメンテーションにおいては製造業、ヘルスケア、物流の分野が含まれます。

次のステップ

これらは、Qualcomm Linuxを活用するために構築した、より魅力的なアプリケーションの2つです。オープンソースからそれらを入手し、さらに Qualcomm Intelligent Multimedia SDK 全体をダウンロードすることができます。このSDKには、AIやマルチメディアのための20以上のアプリケーションが含まれています。その後、これらを自身のアプリケーションに組み込むことが可能です。   Qualcomm Linuxは、一度書けば同じソースコードで複数のIoTチップセット上で動かすことができるよう設計されています。Qualcomm Intelligent Multimedia SDKは、カメラ、人工知能、オーディオを含むすべてのマルチメディアサブシステムをAPIを通じて初めて開放するものです。 私たちはオープンソースへの貢献を進めており、この取り組みをカスタマイズしたり試したり、貢献することが可能です。この取り組みは開発者を主体とした考え方の大きな一歩で、Linux上で動作するIoTアプリケーションにおいて望むカスタマイズを開発しやすくすることを目指しています。

記事タグ

ドローン
Internet of Things (IoT)
QUALCOMM
人工知能 (AI)

関連コンテンツ