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 で開発を続ける」に従います。

  1. 最新の SDカードイメージ(「petalinux-sdimage-2021.1-update1.wic.xz」でした)を「 SDカードイメージ」からダウンロードし、「Raspberry Pi 3にRobot Operating System(ROS)をインストール」で使用したイメージ書き込みソフトを利用して、microSDカードの設定に書き込みます。なお SDカードイメージのダウンロードにはアカウントの作成が必要です。

  2. 作成したブート イメージを含む microSDカードを、Starter KitのマイクロSDカードスロットに挿入します。

  3. データ転送用にマイクロUSBケーブルでStarter Kitとパソコンを接続します。

  4. Starter Kitで、インターネット接続、HDMI モニター、AR1335 IASカメラモジュール、USBマイクロフォンを接続 します。

  5. Starter Kitの電源を投入し、接続されたパソコンからターミナルソフト「Tera Term」を起動してStarter Kitと接続します。表示された2 つの COMポートうち、小さい番号の COMポートがUART に対応します。COMポートには「115200 bps, 8bit, no parity, 1 stop bit 」を設定します。

  6. ターミナルソフトを使用してStarter Kitにログインします。最初のログイン時にはパスワードの設定が必要となります。デフォルトのユーザー名 「petalinux」 を入力して、新しいユーザー パスワードを設定します。

  7. 次のコマンドを使用して rootユーザーを有効にします。パスワードは、上記のステップで 「petalinux」 に対して作成した同じパスワードを使用します。
  8. $ sudo su -l root
  9. 「 google.com」 を使用してインターネット接続を確認します。
  10. # ping google.com

Smart Camera Applicationの実行

Smart Camera Applicationは、AR1335 IASカメラモジュールで撮影した人物から顔を認識して青い枠で囲み、今回は処理した画像をVLXCメディアプレイヤーによりパソコンに表示します。詳細については「Setting up the Board and Application Deploymen」に従います。

  1. 実行中のターゲットシステムにSmart Camera Applicationのパッケージフィードを動的にインストールします。次のコマンドで利用可能なアプリケーションパッケージグループの一覧を表示します。
  2. # sudo xmutil getpkgs
    
  3. 次のコマンドでリストの中からSmart Camera Applicationパッケージグループをインストールします。
  4. # sudo dnf install packagegroup-kv260-smartcam.noarch
    
  5. Smart Camera Applicationファームウェアを読み込みます。次のコマンドでビジョンAIスターター キットで利用できる既存のアプリケーションファームウェアの一覧を表示します。
  6. #  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
    
  7. 次のコマンドでデフォルトの 「kv260-dp」 アプリケーションのファームウェアを破棄します。
  8. # 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
  9. 次のコマンドでSmart Camera Applicationのファームウェアを読み込みます。
  10. # 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
  11. 次のコマンドでSmart Camera Applicationを起動します。
  12. # 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 !!
    
  13. パソコンでVLXCメディアプレイヤーを起動し、メニュー「メディア」→「ネットワークストリームを開く」→「メディアを開く」ダイアログの「ネットワーク」タブを選択→「rtsp://192.168.10.113:554/test」を設定すると、Starter Kitで処理された画像が、ネットワークストリームを使ってパソコンに次のように表示されます。顔認識にはグラビアの写真を使っています。

NLP SmartVision Applicationの実行

NLP SmartVision Applicationは、音声によりカメラ画像の処理方法を変更できるアプリです。音声に従って次のように処理されます。

発話するキーワードに従って、次のようにカメラ画像が処理されます。

詳細については「Setting up the Board and Application Deploymen」に従います。

  1. 実行中のターゲットシステムにNLP SmartVision Applicationのパッケージフィードを動的にインストールします。次のコマンドで利用可能なアプリケーションパッケージグループの一覧を表示します。

  2. # 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
    
  3. 次のコマンドでリストの中からNLP SmartVision Applicationパッケージグループをインストールします。

  4. $ 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!
    
  5. NLP SmartVision Applicationファームウェアを読み込みます。次のコマンドでビジョンAIスターター キットで利用できる既存のアプリケーションファームウェアの一覧を表示します。

  6. $ 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
    
  7. 次のコマンドでデフォルトの 「kv260-dp」 アプリケーションのファームウェアを破棄します。

  8. $ 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
    
  9. 次のコマンドでNLP SmartVision Applicationのファームウェアを読み込みます。

  10. $ sudo xmutil loadapp kv260-nlp-smartvision
    Accelerator loaded to slot 0
    
  11. 次のコマンドでjupyter notebook用のフォルダロードしたNLP SmartVision Applicationをコピーして、既存に立ち上がっている jupyter notebook を停止します。

  12. $ 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 ...
    
  13. 次のコマンドで jupyter notebook を再起動しす。「–ip」にはStarter Kitのipを設定します。

  14. $ 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
    
  15. ブラウザからURL「http://192.168.10.113:8888/lab?token=b8aacec0765b01cc19fcba9f9a13e1b4707da8b7ca57ff3f」(上記で出力されたURL)を入力すると、jupyter notebookが起動してブラウザに次の画面が表示されます。


  16. 左側に表示されている「nlp-smartvision」をダブルクリックして実行すると、ブラウザに次の画面が表示されます。

  17. NLP SmartVision Applicationを起動するために、[1]の行で「Sift」+「Enter」キーを押してコマンドを実行します。次のようにUSBマイクが接続されていないというエラーが発生します。なぜ!!!