!KV260 AI Example https://xilinx.github.io/kria-apps-docs/home/build/html/index.html の [Smart Camera|https://xilinx.github.io/kria-apps-docs/kv260/2022.1/build/html/index.html] を試す. ::セットアップ cf. [Booting Kria Starter Kit Linux|https://xilinx.github.io/kria-apps-docs/kv260/2022.1/build/html/docs/kria_starterkit_linux_boot.html] Ubuntu 22.04なSDカードを用意しておく. KV260でUbuntu 22.04を使うには Boot FW のアップデートが必要(cf. https://wasa-labo.com/wp/?p=1056) Ubnutu 22.04起動後は必要なパッケージのセットアップ. snapを使うかaptのppaリポジトリを使うか選択するとのこと. aptを使うことにしてすすめる. sudo add-apt-repository ppa:xilinx-apps sudo add-apt-repository ppa:ubuntu-xilinx/sdk sudo apt update sudo apt upgrade Dockerもインストール. cf. https://docs.docker.com/engine/install/ubuntu/ 以前にインストールされていたバージョンを削除して sudo apt-get remove docker docker-engine docker.io containerd runc 必要なライブラリをインストール sudo apt-get install ca-certificates curl gnupg lsb-release GPG鍵をセットして sudo mkdir -p /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg リポジトリを登録 echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null で,最後にセットアップ sudo apt update sudo apt upgrade sudo apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin 動作確認しておしまい. sudo docker run hello-world ユーザ権限でDocker使えるようにDocker用のグループを作ってユーザを追加 sudo groupadd docker sudo usermod -a -G docker $USER 最後にzoclドライバのインストール sudo apt install xrt-dkms ドライバがロードできてるか確認してみる ubuntu@kria:~$ lsmod |grep zocl zocl 204800 0 ::Smart Cameraを試す まずは,アプリケーションファームウェアをセットアップする. sudo apt install xlnx-firmware-kv260-smartcam デスクトップ環境を終了する.これでHDMI接続してるディスプレイのgdmが終了するはず. sudo xmutil desktop_disable ちなみに,デスクトップ環境を再度有効にする場合は, sudo xmutil desktop_enable らしい. 準備したら,kv260-smartcamをロードする sudo xmutil unloadapp # こちらは何か別のアプリ用のファームウェアをロードしていた場合 sudo xmutil loadapp kv260-smartcam loadappすると ubuntu@kria:~$ sudo xmutil loadapp kv260-smartcam kv260-smartcam: loaded to slot 0 という感じ.UARTでみてるコンソールには, [ 210.854187] OF: overlay: WARNING: memory leak will occur if overlay removed, property: /fpga-full/firmware-name [ 210.864389] OF: overlay: WARNING: memory leak will occur if overlay removed, property: /fpga-full/resets [ 211.164188] zocl-drm axi:zyxclmm_drm: IRQ index 8 not found [ 211.240274] debugfs: Directory '4-003c' with parent 'regmap' already present! とか出力された. SmartCameraアプリはDockerコンテナで提供されている. docker pull xilinx/smartcam:2022.1 でpullして,実行. docker run \ --env="DISPLAY" \ -h "xlnx-docker" \ --env="XDG_SESSION_TYPE" \ --net=host \ --privileged \ --volume="$HOME/.Xauthority:/root/.Xauthority:rw" \ -v /tmp:/tmp \ -v /dev:/dev \ -v /sys:/sys \ -v /etc/vart.conf:/etc/vart.conf \ -v /lib/firmware/xilinx:/lib/firmware/xilinx \ -v /run:/run \ -it xilinx/smartcam:2022.1 bash Dockerイメージが起動してbashプロンプトが表示される. 動作確認用の動画をダウンロードする.チュートリアルでは, * [Facedet / RefineDet AI Task|https://pixabay.com/videos/alley-people-walk-street-ukraine-39837/] * [ADAS SSD AI Task|https://pixabay.com/videos/freeway-traffic-cars-rainy-truck-8358/] が例示さている.1920x1080を指定してFree Downloadをクリックしてダウンロード. それぞれ ffmpeg -i input-video.mp4 -c:v libx264 -pix_fmt nv12 -vf scale=1920:1080 -r 30 output.nv12.h264 として変換.output.nv12.h264 が生成されるので,KV260上のUbuntuの/tmpにscpする. /tmp は,Dockerコンテナでも /tmp にマウントされている. アプリ実行用にJuypter Lab環境をセットアップする.セットアップ用の smartcam-install.py を実行すると, root@xlnx-docker:~# smartcam-install.py Info: Notebook files under /opt/xilinx/kv260-smartcam/share/notebooks are copied to /root/notebooks/smartcam. と,/root/notebooks/smartcam に必要なファイルがコピーされる. で,Jupyter Labを起動 jupyter-lab --notebook-dir=/root/notebooks/smartcam --allow-root --ip='*' & ブラウザでアクセスするとカメラから取り込んだ画像がHDMIに出力されるなどがみれる. コマンドラインでもアプリを実行できる.たとえば, smartcam --file /tmp/output.nv12.h264 -i h264 -W 1920 -H 1080 -r 30 --target file -a ssd 実行すると out.h264ができる.実行結果はこんな感じ. {{ref_image kv260_ssd_s.png}} AIのモデルの設定は[Customizing the AI Models used in the application|https://xilinx.github.io/kria-apps-docs/kv260/2022.1/build/html/docs/smartcamera/docs/customize_ai_models.html]に詳しい.