ステップ 4. スマート カメラ アクセラレーション アプリケーションを起動する (PetaLinux)

Kria™ KV260 ビジョン AI スターター キットを使用して、アクセラレーション アプリケーションを使用する方法を紹介します。これらは、AI 開発者やソフトウェア開発者が最終製品をいち早く完成できるようにサポートするビルド済みアプリケーションです。

これらのアクセラレーション アプリケーションは、すぐに実行できますが、異なる AI モデルやセンサーを使用してカスタマイズすることも可能です。ここでは、スマート カメラ アクセラレーション アプリケーションを実行します。

xilinx-smart-camera-tile

KV260 ビジョン AI スターター キットは、ハードウェアを構成するアプリケーションを読み込んで、さまざまな機能を実装できることが特徴です。ユーティリティ 「xmutil」 を使用して、さまざまなアプリケーションを読み込むことができます。一回に 1 つのアクセラレーション アプリケーションをロードできます。まず最初に、スマート カメラとして動作させるように SOM をプログラムするアプリケーションを読み込みます。このアプリケーションは、MIPI または USB カメラからの 1080p ビデオ ストリームを処理し、HDMI または DisplayPort を介して表示する、あるいは有線のイーサネットでストリーミングする機能を備えています(*)。

* ffplay や vlc など、イーサネットで配信される映像を再生するプレーヤーが必要です。


スマート カメラのアクセラレーション アプリケーションについて:

ビデオ ソース (MIPI カメラ、ビデオ ファイル、USB カメラ) からのデータ キャプチャをサポートし、顔/歩行者を認識する機械学習を搭載した Ultra-HD カメラは、処理されたビデオを HDMI や DisplayPort で出力、または ROI ベースのエンコード済みビデオを RTSP ストリーミング出力することが可能です。

一般的なユース ケースは、スマート シティ アプリケーション (顔認識、歩行者検知、交通管理) やビデオ分析機能です。

smart-camera-diagram

スマート カメラのアクセラレーション アプリケーションを起動する:

このアプリケーションを起動するために必要な接続は、ステップ 3 で既に完了しています。

実行中のターゲット システムにスマート カメラ アプリケーションのパッケージ フィードを動的にインストールする

ザイリンクスは、パッケージ フィードを RPM (Run-time Package Manager) 形式で提供しています。ユーザーは、dnf パッケージ マネージャー ユーティリティ コマンド 「dnf install」 で、Linux の最初のイメージを実行した後、ザイリンクスのアクセラレーション アプリケーションを動的に読み込むことができます。また、パッケージ フィードを検索したり、ビジョン AI スターター キットで利用できるアクセラレーション アプリケーション パッケージ グループを照会するための xmutil ユーティリティ (xmutil getpkgs) も提供しています。コマンドは以下のとおりです。

1) 次のコマンドを実行すると、利用可能なアプリケーション パッケージ グループの一覧が表示されます。
 
    sudo xmutil getpkgs

 

2) 次のコマンドを実行して、リストの中からスマート カメラ アクセラレーション アプリケーション パッケージ グループをインストールします。プロンプトが表示されて 「y」 を押すと、204 個のパッケージがインストールされます (所要時間: 約 2 分)。

    sudo dnf install packagegroup-kv260-smartcam.noarch

スマート カメラ アクセラレーション アプリケーション ファームウェアを読み込む

/opt/xilinx/bin に新たにインストールされたアプリケーションを実行する前に、xmutil ユーティリティ コマンドを使用して FPGA ファームウェア (PL ビットストリーム + デバイス ツリー オーバーレイ + PL ドライバー) を読み込む必要があります。次の手順に従って、ビジョン AI スターター キットにスマート カメラ アクセラレーション アプリケーション ファームウェアを読み込んでください。

1) 次のコマンドを実行して、ビジョン AI スターター キットで利用できる既存のアプリケーション ファームウェアの一覧を表示します。

    sudo xmutil listapps

 

2) 次のコマンドを実行して、デフォルトの 「kv260-dp」 アプリケーションのファームウェアを破棄します。

    sudo xmutil unloadapp

 

3) 次のコマンドを実行して、スマート カメラ アクセラレーション アプリケーションのファームウェアを読み込みます。

    sudo xmutil loadapp kv260-smartcam

スマート カメラ アクセラレーション アプリケーションを起動します

AR1335 カメラ モジュールをユーザーの顔に向けて設置し、スマート カメラ アクセラレーション アプリケーションを実行します。IAS カメラ モジュールを使用してアクセラレーション アプリケーションを実行する場合は、次のコマンドを使用します。

    sudo smartcam --mipi -W 1920 -H 1080 -r 30 --target dp

 

スマート カメラ アクセラレーション アプリケーションの起動に成功しました ! DisplayPort/HDMI モニターに表示される出力ビデオでは、顔の周囲に境界ボックスが表示されます。

もう一つの方法として、USB ウェブ カメラを使用している場合は、推奨する USB ウェブ カメラをユーザーの顔に向けて設置し、次のコマンドを実行します。

    sudo smartcam --usb 0 -W 1920 -H 1080 -r 30 --target dp

 

注記: 「--usb」 の引数 0 は、ビジョン AI スターター キットで Linux を実行し、USB ウェブ カメラが検出されたメディア ノードに依存します。ここでは、/dev/media0 で検出されているため、「--usb 0」 としています。

Jupyter Notebook からスマート カメラ アプリケーションを制御します。Linux の起動が完了したら、ブラウザーに SOM の IP アドレスを入力して Jupyter Notebook を起動します。Jupyter Notebook のセルを操作して、Kria SOM のスマート カメラ機能を制御します。

スマート カメラのアクセラレーション アプリケーションおよびカスタマイズ オプションの詳細は、GitHub ページをご覧ください。