智能硬件论坛
直播中

卿小小_9e6

6年用户 1977经验值
擅长:可编程逻辑
私信 关注
[讨论]

【KV260视觉入门套件试用体验】+03.SmartCamera人脸识别示例程序(zmj)

**【KV260视觉入门套件试用体验】+03.SmartCamera人脸识别示例程序(zmj)
**
本篇主要介绍在KV260视觉入门套件使用Ubuntu-22.04-LTS系统镜像实现SmartCamera人脸识别的示例程序。

//------官网教程:“使用Ubuntu启动设计”
https://china.xilinx.com/products/som/kria/kv260-vision-starter-kit/kv260-getting-started-ubuntu/setting-up-the-sd-card-image.html

//------SmartCamera人脸识别基本框架
image-20231015203815236.png

---------------------------以下为正文----------------------------

1. 下载并烧录系统镜像

从官网下载系统镜像“Kria Ubuntu Desktop 22.04 LTS 映像”,然后使用BalenaEther烧录到TF卡/microSD卡上。

烧录完成后,将TF卡插入到KV260板卡的TF卡槽。

//------系统镜像:Kria Ubuntu Desktop 22.04 LTS 映像
//---镜像下载
https://ubuntu.com/download/amd
//---镜像烧录
Xilinx教程使用软件“Balena_Etcher”,可以直接烧录petalinux-sdimage-2021.1-update1.wic。
也可以使用Win32DiskImager进行烧录,烧录测试OK。  
开发套件配备了16GB的TF卡,我个人使用了一张64GB的TF卡。

//------系统镜像:Kria Ubuntu Desktop 22.04 LTS 映像
image-20231015190751952.png

//------烧录工具:Balena_Etcher和Win32DiskImager

image-20231015191340229.png

2. 启动Ubuntu系统

KV260视觉入门套件的板卡并无电源开关,连接电源后系统即可正常启动。

对于第一次启动系统来讲,需要通过串口终端进行调试,等确认RJ45有线网络状态及功能正常后才能通过SSH方式远程访问KV260进行调试。

当然,KV260还可以通过USB-WIFI的无线网卡实现WIFI连接,同样支持SSH方式远程调试。

2.1 串口终端设置

对于第一次启动系统来讲,需要通过串口终端进行调试,等确认RJ45有线网络状态及功能正常后才能通过SSH方式远程访问KV260进行调试。

当然,KV260还可以通过USB-WIFI的无线网卡实现WIFI连接,同样支持SSH方式远程调试。

//------串口驱动:
入门套件使用 FTDI USB 至 COM 端口设备,该设备需要在您的计算机上安装 FTDI 虚拟 COM 端口驱动程序。如果该驱动程序没有安装在您的主机上或者 Windows 没有自动安装,请点击以下链接:
https://ftdichip.com/drivers/vcp-drivers/
列举了四个 COM 端口,其中第 2 个编号的 COM 端口对应于 UART。
//------串口设置:
- 波特率 = 115200
- 数据位 = 8
- 停止位 = 1
- 流程控制 = 无
- 奇偶校验 = 无
//------串口软件:
串口终端程序根据自己实际情况选择,例如TeraTerm、Putty、Xshell、MobaXterm。
此处我是用的MobaXterm。

2.2 系统登陆

入门套件 QSPI 使用 SD 启动模式启动开发板,并加载 SD 内容以启动至 Linux。

初始登录时,平台要求设置新密码(标准的系统策略要求在第一次使用默认凭证登录后更改密码)。

//------默认的登录凭证:
用户名:ubuntu
密码:ubuntu

2.3 网络配置

网络配置是很重要的一个环节,网络环境配置完成后必须升级系统软件包。

//------验证网络连接:
通过 “ping” 或 “DNS lookup” 验证 Internet 连接,例如:
ping 8.8.8.8
如果可以观察到数据包传输/接收工作正常并且使用上述 ping 命令没有数据包丢失,这意味着 Internet 连接正处于正常工作状态。
//------安装系统管理所需的 xlnx-config snap:
sudo snap install xlnx-config --classic --channel=2.x
//------运行 xlnx-config.sysinit 命令来安装 Kria 特定的 PPA,它还将运行 apt update 和 apt upgrade - 出现提示时接受所有默认值:
sudo xlnx-config.sysinit
//------系统软件升级/更新软件包
sudo apt update

2.4 安装固件

KV260的PL侧固件以软件包的形式提供。

//------安装固件
//---查找固件:
sudo apt search xlnx-firmware-kv260
//---安装固件:
sudo apt install xlnx-firmware-kv260-*
//---查看已安装固件:(默认k26-starter-kits固件)
sudo xmutil listapps
//------Log信息
ubuntu@kria:~/zmj_ws/vitis_ai$ sudo apt search xlnx-firmware-kv260
Sorting... Done
Full Text Search... Done
xlnx-firmware-kv260-aibox-reid/jammy 0.9-0xlnx1 arm64
  FPGA firmware for Xilinx boards - kv260 aibox-reid application
xlnx-firmware-kv260-benchmark-b4096/jammy 0.9-0xlnx1 arm64
  FPGA firmware for Xilinx boards - kv260 benchmark-b4096 application
xlnx-firmware-kv260-bist/jammy 0.9-0xlnx1 arm64
  FPGA firmware for Xilinx boards - kv260 bist application
xlnx-firmware-kv260-defect-detect/jammy 0.9-0xlnx1 arm64
  FPGA firmware for Xilinx boards - kv260 defect-detect application
xlnx-firmware-kv260-nlp-smartvision/jammy 0.9-0xlnx1 arm64
  FPGA firmware for Xilinx boards - kv260 nlp-smartvision application
xlnx-firmware-kv260-smartcam/jammy,now 0.9-0xlnx1 arm64 [installed]
  FPGA firmware for Xilinx boards - kv260 smartcam application
ubuntu@kria:~/zmj_ws/vitis_ai$ sudo apt install xlnx-firmware-kv260-*
ubuntu@kria:~/zmj_ws/vitis_ai$ sudo xmutil listapps
               Accelerator      Accel_type                         Base        Base_type   #slots(PL+AIE)      Active_slot

          kv260-aibox-reid        XRT_FLAT             kv260-aibox-reid         XRT_FLAT            (0+0)               -1
     kv260-nlp-smartvision        XRT_FLAT        kv260-nlp-smartvision         XRT_FLAT            (0+0)               -1
       kv260-defect-detect        XRT_FLAT          kv260-defect-detect         XRT_FLAT            (0+0)               -1
            kv260-smartcam        XRT_FLAT               kv260-smartcam         XRT_FLAT            (0+0)               -1
     kv260-benchmark-b4096        XRT_FLAT        kv260-benchmark-b4096         XRT_FLAT            (0+0)               -1
          k26-starter-kits        XRT_FLAT             k26-starter-kits         XRT_FLAT            (0+0)               0,
                kv260-bist        XRT_FLAT                   kv260-bist         XRT_FLAT            (0+0)               -1
ubuntu@kria:~/zmj_ws/vitis_ai$

3. 测试SmartCamera人脸识别

3.1 切换固件

使用“xmutil”工具切换固件。

//------切换固件
//---卸载当前固件(卸载固件成功后,风扇开始疯狂旋转,噪音明显升高):
sudo xmutil unloadapp
//---加载SmartCamera固件:
sudo xmutil loadapp kv260-smartcam
//---查看固件状态:(k26-starter-kits切换成kv260-smartcam)
k26-starter-kits
//------Log信息:
ubuntu@kria:~/zmj_ws/vitis_ai$ sudo xmutil unloadapp
remove from slot 0 returns: 0 (Ok)
ubuntu@kria:~/zmj_ws/vitis_ai$ sudo xmutil loadapp kv260-smartcam
kv260-smartcam: loaded to slot 0
ubuntu@kria:~/zmj_ws/vitis_ai$ sudo xmutil listapps
               Accelerator      Accel_type                         Base        Base_type   #slots(PL+AIE)      Active_slot

          kv260-aibox-reid        XRT_FLAT             kv260-aibox-reid         XRT_FLAT            (0+0)               -1
     kv260-nlp-smartvision        XRT_FLAT        kv260-nlp-smartvision         XRT_FLAT            (0+0)               -1
       kv260-defect-detect        XRT_FLAT          kv260-defect-detect         XRT_FLAT            (0+0)               -1
            kv260-smartcam        XRT_FLAT               kv260-smartcam         XRT_FLAT            (0+0)               0,
     kv260-benchmark-b4096        XRT_FLAT        kv260-benchmark-b4096         XRT_FLAT            (0+0)               -1
          k26-starter-kits        XRT_FLAT             k26-starter-kits         XRT_FLAT            (0+0)               -1
                kv260-bist        XRT_FLAT                   kv260-bist         XRT_FLAT            (0+0)               -1
ubuntu@kria:~/zmj_ws/vitis_ai$

3.2 启动Docker

启动Docker拉取SmartCamera的Docker镜像,注意使用sudo权限。

//------启动Docker拉取SmartCamera的Docker镜像
//---拉取Docker镜像
sudo docker pull xilinx/smartcam:2022.1
//---查看已有Docker镜像
sudo docker images
//---启动Docker容器
sudo 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
//------Log信息
ubuntu@kria:~/zmj_ws/vitis_ai$ sudo docker pull xilinx/smartcam:2022.1
2022.1: Pulling from xilinx/smartcam
Digest: sha256:da2e52629011aeec332152a0f468d3ff156917dba9b596cf6d0de958d5dc29d7
Status: Image is up to date for xilinx/smartcam:2022.1
docker.io/xilinx/smartcam:2022.1
ubuntu@kria:~/zmj_ws/vitis_ai$ sudo docker images
REPOSITORY        TAG       IMAGE ID       CREATED         SIZE
xilinx/smartcam   2022.1    aa0270aef908   12 months ago   1.41GB
ubuntu@kria:~/zmj_ws/vitis_ai$ sudo 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

==========================================

 _  __     _         ____   ___  __  __
| |/ /_ __(_) __ _  / ___| / _ \|  \/  |
| ' /|  __| |/ _  | \___ \| | | | |\/| |
| . \| |  | | (_| |  ___) | |_| | |  | |
|_|\_\_|  |_|\__ _| |____/ \___/|_|  |_|


==========================================

Build Date: 2022/09/26 15:21
root@xlnx-docker:/#

3.3 运行SmartCamera人脸识别

在已经启动的Docker容器shell环境中执行命令运行SmartCamera人脸识别,执行后实现了RTSP推流功能,通过VLC播放器查看RTSP推流。

//------MIPI输入(IAS摄像头)RTSP输出
smartcam --mipi -W 1920 -H 1080 --target rtsp
//------Log信息(Docker)
root@xlnx-docker:/# smartcam --mipi -W 1920 -H 1080 --target rtsp

(gst-plugin-scanner:10): GLib-GObject-CRITICAL **: 12:08:09.592: g_param_spec_float: assertion 'default_value >= minimum && default_value <= maximum' failed

(gst-plugin-scanner:10): GLib-GObject-CRITICAL **: 12:08:09.592: validate_pspec_to_install: assertion 'G_IS_PARAM_SPEC (pspec)' failed
stream ready at:
 rtsp://172.17.0.1:554/test
rtsp://192.168.7.25:554/test
Resize: 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 !!

//------RTSP推流播放:推荐使用FFplay,也可以使用VLC。
On the client machine, to receive and play the RTSP stream, we recommend to install FFplay which is part of FFmpeg package.
For Linux, you can install FFmpeg with the package manager of your distribution.
For Windows, you can find install instructions on
https://ffmpeg.org/download.html
Other than FFplay, VLC can also be used to play RTSP stream, but sometimes it doesn’t work on some client machines, while the FFplay works well.
此处我是使用的VLC-Media-Player。

//------拉取Docker镜像,启动Docker,运行SmartCamera人脸识别。
image-20231015202025576.png

//------通过VLC播放器查看RTSP推流
image-20231015201550547.png

//------运行结果(异常,推测是摄像头故障)
image-20231015201338906.png

4. 问题分析

我这边运行MIPI接口的“AR1335 IAS camera”结果异常,推测是摄像头故障。

官网示例运行结果如图所示:
image-20231015203554287.png

//------end

更多回帖

发帖
×
20
完善资料,
赚取积分