KV260-从开箱到人脸识别(小白入门)

KV260-从开箱到启动(小白入门)
相关视频讲解可以参考如下链接:https://www.bilibili.com/video/BV1wz4y1E71m/
KV260开发板官方命名为Kria KV260 Vision AI Starter Kit。
首先介绍KV260的硬件组成(不包括配件):
KV260-从开箱到人脸识别(小白入门)_第1张图片

KV260实物图
SOM(核心相当于MCU),散热器,底板载卡。
KV260-从开箱到人脸识别(小白入门)_第2张图片

SOM及散热方案图
KV260-从开箱到人脸识别(小白入门)_第3张图片

底板载卡图
拿到板子之后如果没有插入SD卡到开发板上连接电源、显示器、UART、网线、摄像头,显示器上不会有图像显示,并且可以看到连接在电脑的UART串口打印数据如下(UART连接电脑的方式后面会提到):
KV260-从开箱到人脸识别(小白入门)_第4张图片

这是因为板子上的有一个SPI NOR,里面只存了uboot固件。
UART通讯:
另外说一下UART连接电脑的方式,这里我使用的是SecureCRT 8.0。当开发板未连接电源时通过板子上的J4接口连接至电脑的USB口,这时打开电脑的“计算机管理—端口(COM)”可以自动识别出两个serial port,在连接时只需要连接第一个就可以。波特率选择115200,数据为8位,停止位1位,无奇偶校验,点击链接即可完成通讯。
在AMD—Xilinx中安装Ubuntu镜像系统
安装Ubuntu镜像需要准备的硬件包括:读卡器,16G内存卡(SD卡),电脑,KV260开发板。
SD卡操作:
首先需要准备一张16G的内存卡用来存放Ubuntu镜像,你可以把这个镜像文件理解为给板子装载一个linux的系统。
那么接下来我们需要下载这个镜像文件。并通过烧录软件将镜像文件烧录到SD卡内。
下载镜像文件:
点击下列地址进行下载:
Install Ubuntu on Xilinx | Ubuntu
我们使用的是KV260开发板,进入页面之后需要选择对应的镜像文件,选择最高版本的这里我选择的版本式Ubuntu Desktop 22.04 LTS,点击Download 64-bit,进行下载。
KV260-从开箱到人脸识别(小白入门)_第5张图片

烤录镜像文件到SD卡
烤录文件到SD卡之前需要将SD卡格式化,格式化的方式这里不做赘述,百度即可。有了空白的SD卡后需要将镜像文件烧录其中。这里需要用到专门的工具进行烧录,以下是烧录工具的链接。
balenaEtcher - Flash OS images to SD cards & USB drives
这里需要强调的问题是不可以直接将镜像文件拖拽或者复制到sd卡中,针对这个问题也是要简单做一个介绍了,关于烧录文件和复制文件的区别,后面会讲到。
下载好烧录工具后正常安装就可以,安装完毕后在桌面会生成一个图标“balenaEtcher”安装好后会自动打开软件,如图所示。KV260-从开箱到人脸识别(小白入门)_第6张图片

balenaEtcher软件界面
选择从文件烧录,选择我们刚才下载好的镜像文件
在这里插入图片描述

接下来选择目标盘,会自动识别到我们的SD卡,若插入多张需要手动选择到需要烧录的SD卡即可,点击开始烧录,接下来需要等待一段时间即可完成烧录工作。
烧录完毕后我们安全退出SD卡,再次插入到电脑中打开SD卡会看到如下的文件。
KV260-从开箱到人脸识别(小白入门)_第7张图片

这些文件包含了boot文件、镜像文件、网络配置、用户数据等。
需要注意:由于后期的使用中会产生内存最开始我使用的是8G内存卡发现镜像文件就8G+,所以这里直接使用16G的内存卡。
烧录文件和复制文件的区别
空白的盘相当于一整块空白的存储单元,因为没有格式化也不具有文件系统的属性,只有当外部的硬件或者软件写进空白的区域,这种方式是对绝对物理地址进行的操作,因此,烧录文件是独立于操作系统的更低级的写入方式。
空白的盘格式化之后及进行挂载,这时会被我们的操作系统接手管理,这时就具有了操作系统的属性,复制文件就是在操作系统下的文件系统基础上进行的操作,这个过程是相对的地址进行操作,因此,复制文件是在操作系统环境下完成的更高级的操作模式。

让板子动起来
接下来就是重新让开发板动起来了,有了SD卡的镜像文件,那么我们开始要重新上电启动了!!!
需要板子启动很简单,只需要插入SD卡,连接电源即可,但是在实际应用中除了会用到SD卡电源线外还会用到显示器、网线、micro-USB线,摄像头、HDMI线、USB鼠标、USB键盘。相关的配件大家自行购买。
显示器:显示器主要做两方面的使用。一是让我们用PC控制UART进入摄像头显示界面用于视频显示,二是启动Ubuntu,利用Xilinx实现Ubuntu映像系统相关的操作,也是一个完整的GNOME桌面,但是进入这个界面就相当于一个微型电脑,你需要通过USb连接鼠标和键盘还有显示器。

当配件准备齐全后我们按照如下的操作进行连接:
1、将包含启动映像的 microSD 卡插入到入门套件上的 microSD 卡插槽 (J11) 中。
2、请使用支持数据传输的 USB-A 至 micro-B 线缆(又称 micro-USB 电缆)。*暂时不要将 USB-A 端连接至计算机。将 micro-B 端连接至入门套件上的 J4。
3、将 USB 键盘/鼠标连接到 USB 端口(U44 和 U46)。
4、将 IAS 摄像头模块连接至 J7(或将 USB 摄像头模块连接至 U44 或 U46)。
5、用 DisplayPort/HDMI 线缆连接至监控器/显示器。
6、连接以太网电缆以实现所需的互联网访问。
7、抓住电源并将其连接至入门套件上的 DC 插孔 (J12)。暂时不要将另一端插入 AC 插头。
启动您的入门套件 (Ubuntu)
首先我们利用Ubuntu映像系统进入到GNOME桌面(这时我们已经连接好了鼠标键盘和显示器),连接电源等大大约是几秒的时间显示器会看到一个用户登录的界面(这里需要说明如果看到闪烁的LED灯但是屏幕没有输出,需要检查连接是否无误),默认的登录信息如下(即我们第一次进入此界面时试用的账号和密码):
用户名:ubuntu
密码:ubuntu
第一次登录后会让你修改密码。接着就进入了Ubuntu 22.04 LTS GNOME42的界面。
安装所需工具和软件包
安装所需工具和软件包都需要在联网的模式下进行操作,因此确保网络质量,因为目前板卡支只支持有线的以太网连接所以需要网线进行连接,亦可以通过交换机连接网络。
在GNOME桌面下打开指令窗口,通过“ping”指令检测是否连接网络成功,合理我们输入如下的指令“ping 8.8.8.8”,发现数据传输无丢包的情况则认为Internet连接正常。

为Ubuntu 22.04 LTS 系统设置Xilinx开发及演示环境
我们需要通过指令下载包括安装系统管理所需要的xlnx-fonfig snap
(指令“ sudo snap install xlnx-config --classic --channel=2.x”)
Kria特定的PPA。
(指令“sudo xlnx-config.sysinit”)
关于Ubuntu系统和Windows系统在开发板上的应用这里引用官方的一句话:
请注意,为了启动某些 Kria 应用,需要使用 USB-UART 串行端口访问命令行界面,而不是使用 GNOME 桌面启动应用。某些应用(例如 Smart Camera 应用)在运行时会占用整个显示输出区域,但一旦应用程序退出,您将重新获得对 GNOME 桌面的访问权限。
启动AI摄像头的加速应用(Ubuntu)
安装好相应的包之后接下来就开始进入到摄像头的采集部分。
首先,硬件要求我们至少有一个摄像头,官方配件或者我们自己准备一个USB摄像头连接至板子的IAS 0 接口位置为
KV260-从开箱到人脸识别(小白入门)_第8张图片

接下来就是通过搜索找到kv260-smartcam的驱动包,输入指令:
sudo apt search xlnx-firmware-kv260
在安装固件的二进制文件执行命令:
sudo apt install xlnx-firmware-kv260-smartcam
这时需要等待一段时间,安装完成即可。
这里特别列出几个常用的命令用来切换桌面或者app:
sudo xmutil desktop_disable //关闭桌面显示
sudo xmutil desktop_enable //打开桌面
sudo xmutil listapps //列出安装的app
sudo xmutil unloadapp //从当前app应用中推出
sudo xmutil loadapp kv260-smartcam //加载kv260-smartcam app
安装完成后接下来需要安装docker驱动包并获取更高权限来执行相关的操作。首先需要通过如下指令来安装docker。
当在操作界面输入“docker”会有如下提示
KV260-从开箱到人脸识别(小白入门)_第9张图片

这时依次输入
sudo snap install docker
Sudo apt install docker.io
sudo apt install podman-docker
接下来就是要给docker获取更高的权限以便后续操作。
依次执行如下指令:
sudo chown root:docker /var/run/docker.sock # 修改docker.sock权限为root:docker
sudo groupadd docker # 添加docker用户组
sudo gpasswd -a $USER docker # 将当前用户添加至docker用户组
newgrp docker # 更新docker用户组
接下来就可以继续加载smartcam的驱动部分了,之心如下指令
docker pull xilinx/smartcam:2022.1
KV260-从开箱到人脸识别(小白入门)_第10张图片

SD卡上的存储卷可以通过多个dockers来限制。如果存在空间问题,可以使用以下命令删除现有容器。docker rmi --force
你可以看到已经安装好的镜像文件,指令:docker images
接下来通过复制以下代码来切换到root@xlnx-docker/#:目录下
下面只需要通过执行下面的一段指令就可以实现按智能摄像头对人脸识别的采集,这里我采用的是IAS0接口位置的摄像头,因此执行如下的命令:
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

smartcam --mipi -W 1920 -H 1080 --target rtsp
这时可以看到
KV260-从开箱到人脸识别(小白入门)_第11张图片
视频流已经上传到相应的URL上了,这里需要说一下,打开rtsp网址需要VLC媒体播放器,通过复制网址到VLC播放器中即可看到当前采集的画面,如下图:
KV260-从开箱到人脸识别(小白入门)_第12张图片KV260-从开箱到人脸识别(小白入门)_第13张图片

再次运行时需要依次输入:
sudo xmutil listapps
sudo xmutil unloadapp
sudo xmutil loadapp kv260-smartcam
docker rmi --force
docker images

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

ffmpeg -i input-video.mp4 -c:v libx264 -pix_fmt nv12 -vf scale=1920:1080 -r 30 output.nv12.h264
output: RTSP
smartcam --mipi -W 1920 -H 1080 --target rtsp
output: RTSP with audio
smartcam --mipi -W 1920 -H 1080 --target rtsp --audio
output: DP
smartcam --mipi -W 1920 -H 1080 --target dp
output: file
smartcam --mipi -W 1920 -H 1080 --target file
Note: Output file is “./out.h264”

smartcam --usb 0 -W 1920 -H 1080 -r 30 --target rtsp
smartcam --usb 0 -W 1920 -H 1080 -r 30 --target dp
smartcam --usb 0 -W 1920 -H 1080 -r 30 --target file

接下来首先安装dnf软件包管理器实用程序,指令为“sudo apt install dnf”安装过程中出现提示是否继续,键盘输入“Y”或者“y”即可继续。
安装好包之后我们获取一下应用软件包的列表,指令:
Sudo xmutil getpakgs
安装加速软件包
接下来就会用到dnf指令包中的指令,安装智能相机加速软件包,指令:
sudo dnf install packagegroup-kv260-smartcam.noarchv

获取更高权限的方法:

sudo chown root:docker /var/run/docker.sock # 修改docker.sock权限为root:docker
sudo groupadd docker # 添加docker用户组
sudo gpasswd -a KaTeX parse error: Expected 'EOF', got '#' at position 14: USER docker #̲ 将当前用户添加至docker… docker run \

–env=“DISPLAY”
-h “xlnx-docker”
–env=“XDG_SESSION_TYPE”
–net=host
–privileged
–volume=" H O M E / . X a u t h o r i t y : / r o o t / . X a u t h o r i t y : r w "   − v / t m p : / t m p   − v / d e v : / d e v   − v / s y s : / s y s   − v / e t c / v a r t . c o n f : / e t c / v a r t . c o n f   − v / l i b / f i r m w a r e / x i l i n x : / l i b / f i r m w a r e / x i l i n x   − v / r u n : / r u n   − i t x i l i n x / s m a r t c a m : 2022.1 b a s h d o c k e r : G o t p e r m i s s i o n d e n i e d w h i l e t r y i n g t o c o n n e c t t o t h e D o c k e r d a e m o n s o c k e t a t u n i x : / / / v a r / r u n / d o c k e r . s o c k : P o s t " h t t p : / / S e e ′ d o c k e r r u n − − h e l p ′ . u b u n t u @ k r i a :   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: Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post "http://%2Fvar%2Frun%2Fdocker.sock/v1.24/containers/create": dial unix /var/run/docker.sock: connect: permission denied. See 'docker run --help'. ubuntu@kria:~ 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 itxilinx/smartcam:2022.1bashdocker:GotpermissiondeniedwhiletryingtoconnecttotheDockerdaemonsocketatunix:///var/run/docker.sock:Post"http://Seedockerrunhelp.ubuntu@kria:  sudo chown root:docker /var/run/docker.sock
[sudo] password for ubuntu:
ubuntu@kria:~$ sudo groupadd docker
groupadd: group ‘docker’ already exists
ubuntu@kria:~$ sudo gpasswd -a U S E R d o c k e r A d d i n g u s e r u b u n t u t o g r o u p d o c k e r u b u n t u @ k r i a :   USER docker Adding user ubuntu to group docker ubuntu@kria:~ USERdockerAddinguserubuntutogroupdockerubuntu@kria:  newgrp docker
ubuntu@kria:~$

你可能感兴趣的:(linux,计算机视觉)