KV260のsmartcamという画像認識デモを試してみました。
デフォルトでは使えない、ラズパイのカメラで試してみました。
結果はダメでしたが、忘備録として環境構築から実行したコマンド含めて残しておきます。
KV260のsmartcamのラズパイカメラ版で失敗したメモ
KV260のsmartcamという画像認識デモを試してみました。
本来デフォルトでは使えない、ラズパイのカメラで対応してみました。
結果はダメでしたが、忘備録として環境構築から実行したコマンド含めて残しておきます。
公式の手順
XilinxのGithubに公式の手順で、smarcamをラズパイで対応する手順が記載されています。
基本は下記手順に沿って対応しました。
但し、2022.1の環境ベースなので2023.1のに合わせて実施してみます。
テスト環境
テスト環境は以下の通りです。FPGAのファイルは下記環境で作成しています。
*2023.1の環境で試してダメだったので、本来の2021.1に置き換えても対応したけどダメでした。
- Vivado…2023.1 (or 2022.1)
使用評価ボードはKV260です。
ラズパイのカメラ
ラズパイのカメラに関しては、IMX219が搭載されたVer2が必要です。
他注意点
基本は先に記載したように下記手順に沿って対応しました。
追加で対応したことのみ記載していきます。
最初のmakeはメモリを凄く使うので注意すること。32GB以上の環境が必要になります。
メモリが16GBなどのPCのため、必要であれば仮想メモリ増やすなどして対応します。
tclのファイルは2022.1用になっているので修正が必要。
下記のようにmipiのVerなどを合わせてあげる必要があります。
1 2 3 |
set scripts_vivado_version 2023.1 xilinx.com:ip:mipi_csi2_rx_subsystem:5.3\ set mipi_csi2_rx_subsyst_0 [ create_bd_cell -type ip -vlnv xilinx.com:ip:mipi_csi2_rx_subsystem:5.3 mipi_csi2_rx_subsyst_0 ] |
ラズパイ用のパイプラインは下記形でした。
公式の手順通り、入れ替えていきます。
中身はこんな感じでした。
手順に従い、ビルドして問題なかったので、実際にテスト実行してみます。
2022.1以外だったので、dtsiのファイルも下記のように合ったIPのVerを追記しています。
1 2 |
imx_csiss_1: csiss@0x80002000 { compatible = "xlnx,mipi-csi2-rx-subsystem-5.3", "xlnx,mipi-csi2-rx-subsystem-5.1", "xlnx,mipi-csi2-rx-subsystem-5.0"; |
雑にですが、gitcloneからのコマンド履歴を残しておきます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
git clone --recursive --branch xlnx_rel_v2023.1 https://github.com/Xilinx/kria-vitis-platforms.git cd kria-vitis-platforms/kv260/ sudo dd if=/dev/zero of=/var/swap bs=1M count=16384 sudo mkswap /var/swap sudo swapon /var/swap make platform PFM=kv260_ispMipiRx_vcu_DP cd platforms/vivado/kv260_ispMipiRx_rpiMipiRx_DP/ip/isp_single_kv260/ make ip cd kria-vitis-platforms/kv260/ cp platforms/vivado/kv260_ispMipiRx_rpiMipiRx_DP/ip/isp_single_kv260/ platforms/vivado/kv260_ispMipiRx_vcu_DP/ip/ -rf vivado cd platforms/vivado/kv260_ispMipiRx_vcu_DP/project/kv260_ispMipiRx_vcu_DP.runs/impl_1/ echo 'all:{kv260_ispMipiRx_vcu_DP_wrapper.bit}'>bootgen.bif bootgen -w -arch zynqmp -process_bitstream bin -image bootgen.bif mv kv260_ispMipiRx_vcu_DP_wrapper.bit.bin kv260-smartcam-raspi.bit.bin dtc -@ -O dtb -o kv260-raspi.dtbo kv260-smartcam-raspi_2023.1.dtsi |
テスト結果
公式の手順通り作成したファイルを使い、ロードしました。
1 2 3 4 5 6 7 8 9 10 11 12 |
ubuntu@kria:~$ sudo xmutil listapps Accelerator Accel_type Base kv260-raspi XRT_FLAT kv260-raspi kv260-smartcam XRT_FLAT kv260-smartcam k26-starter-kits XRT_FLAT k26-starter-kits ubuntu@kria:~$ sudo xmutil unloadapp remove from slot 0 returns: 0 (Ok) ubuntu@kria:~$ sudo xmutil loadapp kv260-raspi kv260-raspi: loaded to slot 0 ubuntu@kria:~$ sudo xmutil desktop_disable ubuntu@kria:~$ sudo su |
ただカメラの情報を読み取ると、ispらへんでこけている様子。
公式のログとも異なっています。上手くフォーマットが読み取れていません。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 |
root@kria:/home/ubuntu# media-ctl -d /dev/media0 -p Media controller API version 5.15.152 Media device information ------------------------ driver xilinx-video model Xilinx Video Composite Device serial bus info hw revision 0x0 driver version 5.15.152 Device topology - entity 1: imx_vcap_csi output 0 (1 pad, 1 link) type Node subtype V4L flags 0 device node name /dev/video0 pad0: Sink <- "b0040000.scaler":1 [ENABLED] - entity 5: b0040000.scaler (2 pads, 2 links) type V4L2 subdev subtype Unknown flags 0 device node name /dev/v4l-subdev0 pad0: Sink [fmt:unknown/1280x720 field:none colorspace:srgb] <- "b0000000.isp_accel":1 [ENABLED] pad1: Source [fmt:unknown/1920x1080 field:none colorspace:srgb] -> "imx_vcap_csi output 0":0 [ENABLED] - entity 8: b0000000.isp_accel (2 pads, 2 links) type V4L2 subdev subtype Unknown flags 0 device node name /dev/v4l-subdev1 pad0: Sink [fmt:SRGGB10_1X10/1280x720 field:none colorspace:srgb] <- "80002000.csiss":1 [ENABLED] pad1: Source [fmt:RBG888_1X24/1280x720 field:none colorspace:srgb] -> "b0040000.scaler":0 [ENABLED] - entity 11: imx219 6-0010 (1 pad, 1 link) type V4L2 subdev subtype Sensor flags 0 device node name /dev/v4l-subdev2 pad0: Source [fmt:SRGGB10_1X10/3280x2464 field:none colorspace:srgb xfer:srgb ycbcr:601 quantization:full-range crop.bounds:(8,8)/3280x2464 crop:(8,8)/3280x2464] -> "80002000.csiss":0 [ENABLED] - entity 13: 80002000.csiss (2 pads, 2 links) type V4L2 subdev subtype Unknown flags 0 device node name /dev/v4l-subdev3 pad0: Sink [fmt:SRGGB10_1X10/1920x1080 field:none colorspace:srgb] <- "imx219 6-0010":0 [ENABLED] pad1: Source [fmt:SRGGB10_1X10/1920x1080 field:none colorspace:srgb] -> "b0000000.isp_accel":0 [ENABLED] root@kria:/home/ubuntu# |
無理やりカメラのdockerコマンドを動かしても、画面真っ黒で何も表示されませんでした。
dmesgのログを見ても、途中で止まっている。本来ならもっと先があるはず。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
root@kria:/home/ubuntu# dmesg |grep imx [ 227.841249] OF: overlay: WARNING: memory leak will occur if overlay removed, property: /__symbols__/imx219_vana [ 227.851444] OF: overlay: WARNING: memory leak will occur if overlay removed, property: /__symbols__/imx219_vdig [ 227.861580] OF: overlay: WARNING: memory leak will occur if overlay removed, property: /__symbols__/imx219_vddl [ 227.891270] OF: overlay: WARNING: memory leak will occur if overlay removed, property: /__symbols__/imx219 [ 227.900976] OF: overlay: WARNING: memory leak will occur if overlay removed, property: /__symbols__/imx219_0 [ 227.910866] OF: overlay: WARNING: memory leak will occur if overlay removed, property: /__symbols__/imx_csiss_1 [ 227.920987] OF: overlay: WARNING: memory leak will occur if overlay removed, property: /__symbols__/imx_csiss_out [ 227.931307] OF: overlay: WARNING: memory leak will occur if overlay removed, property: /__symbols__/imx_csiss_in [ 227.941504] OF: overlay: WARNING: memory leak will occur if overlay removed, property: /__symbols__/imx_isp [ 227.951305] OF: overlay: WARNING: memory leak will occur if overlay removed, property: /__symbols__/imx_demosaic_in [ 227.961781] OF: overlay: WARNING: memory leak will occur if overlay removed, property: /__symbols__/imx_demosaic_out [ 227.972326] OF: overlay: WARNING: memory leak will occur if overlay removed, property: /__symbols__/imx_scaler_1 [ 227.982522] OF: overlay: WARNING: memory leak will occur if overlay removed, property: /__symbols__/imx_scaler_in [ 227.992805] OF: overlay: WARNING: memory leak will occur if overlay removed, property: /__symbols__/imx_scaler_out [ 228.003168] OF: overlay: WARNING: memory leak will occur if overlay removed, property: /__symbols__/imx_fb_wr_csi [ 228.013447] OF: overlay: WARNING: memory leak will occur if overlay removed, property: /__symbols__/imx_vcap_csi_in [ 228.132812] platform axi:imx_vcap_csi: Fixing up cyclic dependency with b0040000.scaler [ 228.133575] xilinx-video axi:imx_vcap_csi: Entity type for entity b0040000.scaler was not initialized! [ 228.133588] xilinx-video axi:imx_vcap_csi: device registered [ 228.269198] xilinx-video axi:imx_vcap_csi: Entity type for entity b0000000.isp_accel was not initialized! [ 228.300988] xilinx-video axi:imx_vcap_csi: Entity type for entity 80002000.csiss was not initialized! |
Verを公式通りの2022.1にしてもダメでした
ファームウェア・UbuntuのOS含めて、公式の手順の2022.1にしてもダメでした。
ファームウェアを下記手順で2022.1のに更新して試しました。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
ubuntu@kria:~$ sudo xmutil bootfw_update -i BOOT_xilinx-k26-starterkit-v2022.1-09152304_update3\ \(1\).BIN [sudo] password for ubuntu: Marking last booted image as bootable Reading Image file Updating Image A Marking target image as non bootable Writing Image to Image A partition Marking target image as non bootable and requested image Clearing multiboot register value BOOT_xilinx-k26-starterkit-v2022.1-09152304_update3 (1).BIN successfully updated to Image A partition ubuntu@kria:~$ sudo xmutil bootfw_status Image A: Non Bootable Image B: Bootable Requested Boot Image: Image A Last Booted Image: Image B XilinxSom_QspiImage_v1.1_20210422 ImageA Revision Info: XilinxSOM_BootFW_20220915 ImageB Revision Info: XilinxSOM_BootFW_20220915 |
UbuntuのOSも下記古いものを試したりしましたが、ダメでした。
https://people.canonical.com/~platform/images/xilinx/kria-ubuntu-22.04/
1 2 3 4 5 6 7 8 9 10 11 |
ubuntu@kria:~$ sudo xmutil unloadapp [sudo] password for ubuntu: remove from slot 0 returns: 0 (Ok) ubuntu@kria:~$ sudo xmutil loadapp kv260-raspi kv260-raspi: loaded to slot 0 ubuntu@kria:~$ sudo xmutil desktop_disable [sudo] password for ubuntu: ubuntu@kria:~$ sudo su root@kria:/home/ubuntu# media-ctl -d /dev/media0 -p Failed to enumerate /dev/media0 (-2) root@kria:/home/ubuntu# |
次の修正案
コミュニティに情報が無いか見ると、やはりisppipelineドライバがNGのようです。
cでの修正版下記モジュールを提案されていたので、また時間があるときに試そうと思います。
まとめ
KV260のsmartcamという画像認識デモを試してみました。
デフォルトでは使えない、ラズパイのカメラで試してみました。
結果はダメでしたが、忘備録として環境構築から実行したコマンド含めて残しておきました。
コメント