KRIA KV260 Vision Starter Kitを入手しました。KRIA KV260 Vision Starter Kitを使って、デモ用に準備されているSmart Camera ApplicationとNLP SmartVision Applicationを実行します。入手したKRIA KV260 Vision Starter Kitの画像を次に示します。ブックスタンドにKRIA KV260 Vision Starter Kitを立てかけました。
KRIA KV260 Vision Starter Kit の設定
次の手順に従って、microSDカードにダウンロードしたpetalinuxを書き込み、作成したmicroSDカードでStarter Kit を起動します。詳細については「Kria KV260 ビジョン AI スターター キットを使用」の「PetaLinux で開発を続ける」に従います。
- 最新の SDカードイメージ(「petalinux-sdimage-2021.1-update1.wic.xz」でした)を「 SDカードイメージ」からダウンロードし、「Raspberry Pi 3にRobot Operating System(ROS)をインストール」で使用したイメージ書き込みソフトを利用して、microSDカードの設定に書き込みます。なお SDカードイメージのダウンロードにはアカウントの作成が必要です。
- 作成したブート イメージを含む microSDカードを、Starter KitのマイクロSDカードスロットに挿入します。
- データ転送用にマイクロUSBケーブルでStarter Kitとパソコンを接続します。
- Starter Kitで、インターネット接続、HDMI モニター、AR1335 IASカメラモジュール、USBマイクロフォンを接続 します。
- Starter Kitの電源を投入し、接続されたパソコンからターミナルソフト「Tera Term」を起動してStarter Kitと接続します。表示された2 つの COMポートうち、小さい番号の COMポートがUART に対応します。COMポートには「115200 bps, 8bit, no parity, 1 stop bit 」を設定します。
- ターミナルソフトを使用してStarter Kitにログインします。最初のログイン時にはパスワードの設定が必要となります。デフォルトのユーザー名 「petalinux」 を入力して、新しいユーザー パスワードを設定します。
- 次のコマンドを使用して rootユーザーを有効にします。パスワードは、上記のステップで 「petalinux」 に対して作成した同じパスワードを使用します。
- 「 google.com」 を使用してインターネット接続を確認します。
$ sudo su -l root
# ping google.com
Smart Camera Applicationの実行
Smart Camera Applicationは、AR1335 IASカメラモジュールで撮影した人物から顔を認識して青い枠で囲み、今回は処理した画像をVLXCメディアプレイヤーによりパソコンに表示します。詳細については「Setting up the Board and Application Deploymen」に従います。
- 実行中のターゲットシステムにSmart Camera Applicationのパッケージフィードを動的にインストールします。次のコマンドで利用可能なアプリケーションパッケージグループの一覧を表示します。
- 次のコマンドでリストの中からSmart Camera Applicationパッケージグループをインストールします。
- Smart Camera Applicationファームウェアを読み込みます。次のコマンドでビジョンAIスターター キットで利用できる既存のアプリケーションファームウェアの一覧を表示します。
- 次のコマンドでデフォルトの 「kv260-dp」 アプリケーションのファームウェアを破棄します。
- 次のコマンドでSmart Camera Applicationのファームウェアを読み込みます。
- 次のコマンドでSmart Camera Applicationを起動します。
- パソコンでVLXCメディアプレイヤーを起動し、メニュー「メディア」→「ネットワークストリームを開く」→「メディアを開く」ダイアログの「ネットワーク」タブを選択→「rtsp://192.168.10.113:554/test」を設定すると、Starter Kitで処理された画像が、ネットワークストリームを使ってパソコンに次のように表示されます。顔認識にはグラビアの写真を使っています。
# sudo xmutil getpkgs
# sudo dnf install packagegroup-kv260-smartcam.noarch
# sudo xmutil listapps Accelerator Base Type #slots Active_slot kv260-dp kv260-dp XRT_FLAT 0 0, kv260-smartcam kv260-smartcam XRT_FLAT 0 -1 Socket 9 closed by client
# sudo xmutil unloadapp DFX-MGRD> daemon removing accel at slot 0 DFX-MGRD> Removing accel kv260-dp from slot 0 Accelerator successfully removed. Socket 9 closed by client
# sudo xmutil loadapp kv260-smartcam DFX-MGRD> daemon loading accel kv260-smartcam DFX-MGRD> Successfully loaded base design. Accelerator loaded to slot 0 Socket 6 closed by client
# sudo smartcam --mipi -W 1920 -H 1080 -r 30 --target rtsp stream ready at: rtsp://192.168.10.113:554/test rtsp://192.168.10.113:554/testResize: mean_r=128.000000 Resize: mean_g=128.000000 Resize: mean_b=128.000000 Resize: scale_r=1.000000 Resize: scale_g=1.000000 Resize: scale_b=1.000000 !! Loop filter is not allowed with GDR enabled !! !! The specified ScalingList is not allowed; it will be adjusted!! !! CABAC encoding is not allowed with this profile; CAVLC will be used instead !! !! The specified Level is too low and will be adjusted !!
NLP SmartVision Applicationの実行
NLP SmartVision Applicationは、音声によりカメラ画像の処理方法を変更できるアプリです。音声に従って次のように処理されます。
発話するキーワードに従って、次のようにカメラ画像が処理されます。
詳細については「Setting up the Board and Application Deploymen」に従います。
- 実行中のターゲットシステムにNLP SmartVision Applicationのパッケージフィードを動的にインストールします。次のコマンドで利用可能なアプリケーションパッケージグループの一覧を表示します。
- 次のコマンドでリストの中からNLP SmartVision Applicationパッケージグループをインストールします。
- NLP SmartVision Applicationファームウェアを読み込みます。次のコマンドでビジョンAIスターター キットで利用できる既存のアプリケーションファームウェアの一覧を表示します。
- 次のコマンドでデフォルトの 「kv260-dp」 アプリケーションのファームウェアを破棄します。
- 次のコマンドでNLP SmartVision Applicationのファームウェアを読み込みます。
- 次のコマンドでjupyter notebook用のフォルダロードしたNLP SmartVision Applicationをコピーして、既存に立ち上がっている jupyter notebook を停止します。
- 次のコマンドで jupyter notebook を再起動しす。「–ip」にはStarter Kitのipを設定します。
- ブラウザからURL「http://192.168.10.113:8888/lab?token=b8aacec0765b01cc19fcba9f9a13e1b4707da8b7ca57ff3f」(上記で出力されたURL)を入力すると、jupyter notebookが起動してブラウザに次の画面が表示されます。
- 左側に表示されている「nlp-smartvision」をダブルクリックして実行すると、ブラウザに次の画面が表示されます。
- NLP SmartVision Applicationを起動するために、[1]の行で「Sift」+「Enter」キーを押してコマンドを実行します。次のようにUSBマイクが接続されていないというエラーが発生します。なぜ!!!
# sudo xmutil getpkgs Searching package feed for packagegroups compatible with: kv260 accelize-packagegroup-kv260-drmdemo.noarch 1.0-1.pl2021_1.0 accelize-2021_1-noarch packagegroup-kv260-aibox-reid.noarch 1.0-r0.0 oe-remote-repo-sswreleases-rel-v2021.1-generic-updates-rpm-noarch packagegroup-kv260-defect-detect.noarch 1.0-r0.0 oe-remote-repo-sswreleases-rel-v2021.1-generic-updates-rpm-noarch packagegroup-kv260-nlp-smartvision.noarch 1.0-r0.0 oe-remote-repo-sswreleases-rel-v2021.1-generic-updates-rpm-noarch
$ sudo dnf install packagegroup-kv260-nlp-smartvision.noarch Last metadata expiration check: 0:00:45 ago on Tue Dec 14 00:16:56 2021. Dependencies resolved. ===================================================================================================================== Package Architecture Version Repository Size ===================================================================================================================== Installing: pulseaudio-server-13.0-r0.0.cortexa72_cortexa53 Complete!
$ sudo xmutil listapps Accelerator Base Type #slots Active_slot kv260-dp kv260-dp XRT_FLAT 0 0, kv260-smartcam kv260-smartcam XRT_FLAT 0 -1 kv260-nlp-smartvision kv260-nlp-smartvision XRT_FLAT 0 -1
$ sudo xmutil unloadapp Accelerator successfully removed. $ sudo xmutil listapps Accelerator Base Type #slots Active_slot kv260-dp kv260-dp XRT_FLAT 0 -1 kv260-smartcam kv260-smartcam XRT_FLAT 0 -1 kv260-nlp-smartvision kv260-nlp-smartvision XRT_FLAT 0 -1
$ sudo xmutil loadapp kv260-nlp-smartvision Accelerator loaded to slot 0
$ cp -r /opt/xilinx/share/notebooks/nlp-smartvision/ ./notebooks/ $ jupyter-server list Currently running servers: http://192.168.10.113:8888/?token=c3560f9dd87882ebc52ea8ebcd931b335cf18421afed0715 :: /home/petalinux/notebooks $ jupyter-server stop 8888 Shutting down server on port 8888 ...
$ sudo jupyter lab --allow-root --notebook-dir=/home/petalinux/notebooks/nlp-smartvision --ip=192.168.10.113 [I 2021-12-17 15:43:01.672 ServerApp] jupyterlab | extension was successfully linked. [I 2021-12-17 15:43:01.814 LabApp] JupyterLab extension loaded from /usr/lib/python3.8/site-packages/jupyterlab [I 2021-12-17 15:43:01.814 LabApp] JupyterLab application directory is /usr/share/jupyter/lab [I 2021-12-17 15:43:01.837 ServerApp] jupyterlab | extension was successfully loaded. [I 2021-12-17 15:43:01.838 ServerApp] Serving notebooks from local directory: /home/petalinux/notebooks/nlp-smartvision [I 2021-12-17 15:43:01.839 ServerApp] Jupyter Server 1.2.1 is running at: [I 2021-12-17 15:43:01.839 ServerApp] http://192.168.10.113:8888/lab?token=b8aacec0765b01cc19fcba9f9a13e1b4707da8b7ca57ff3f [I 2021-12-17 15:43:01.839 ServerApp] or http://127.0.0.1:8888/lab?token=b8aacec0765b01cc19fcba9f9a13e1b4707da8b7ca57ff3f [I 2021-12-17 15:43:01.839 ServerApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation). [W 2021-12-17 15:43:01.861 ServerApp] No web browser found: could not locate runnable browser. [C 2021-12-17 15:43:01.862 ServerApp] To access the server, open this file in a browser: file:///home/root/.local/share/jupyter/runtime/jpserver-1125-open.html Or copy and paste one of these URLs: http://192.168.10.113:8888/lab?token=b8aacec0765b01cc19fcba9f9a13e1b4707da8b7ca57ff3f or http://127.0.0.1:8888/lab?token=b8aacec0765b01cc19fcba9f9a13e1b4707da8b7ca57ff3f