本帖最后由 开山师傅 于 2023-8-3 15:18 编辑
KV260-行人跟踪监测
前面的教程已经部署好了智能摄像头以及实现了摄像头在线识别人脸的功能,环境已经配置完毕,板子上电之前需要连接网线、uart接口线即可,通讯方式选择SSH通讯方式,不需要进入ubuntu界面,同时视频传输选择URL数据格式传输。(以下指令时已经安装了各种包和相关的操作,再次使用时需要依次输入的指令集合及说明)
再次运行时需要依次输入:
sudo xmu
til listapps #列出当前安装的app
sudo xmutil unloadapp #卸载当前运行的app
sudo xmutil loadapp kv260-smartcam #加载kv260智能摄像头app
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
MP4文件转化为h264格式需要执行以下命令,其中红色部分为需要替换的输入文件名称,蓝色为指定输出的文件名称:
ffmpeg -i input-video.mp4 -c:v libx264 -pix_fmt nv12 -vf scale=1920:1080 -r 30 output.nv12.h264
视频输出的几种方式:
1.纯视频输出output: RTSP ,指令:
smartcam --mipi -W 1920 -H 1080 --target rtsp
2.纯视频输出output: RTSP with audio ,指令:
smartcam --mipi -W 1920 -H 1080 --target rtsp --audio
3.先视频输出output: DP 指令:
smartcam --mipi -W 1920 -H 1080 --target dp
4.文件输出output: file 指令:
smartcam --mipi -W 1920 -H 1080 --target file
输出文件的路径就是: “./out.h264”
利用摄像头输出,需要注意如果同时连接了两个USB摄像头需要指定USB0,或者USB1,参考以下指令:
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
KV260首次部署行人检测步骤
接下来首先安装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 $USER docker # 将当前用户添加至docker用户组
newgrp docker # 更新docker用户组
————————————————
ubuntu@kria:~$ 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: 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:~$ 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 $USER docker
Adding user ubuntu to group docker
ubuntu@kria:~$ newgrp docker
OK,那么接下来就部署行人检测系统到我们的KV260板子上。
因为后面要用到板子对视频文件(MP4文件)的传输,这里介绍一下通过SSH进行连接板子。
PC的windows与KV260的Ubuntu进行SSH通讯
SSH通讯实在同一个局域网内进行数据通讯传输的通讯方式,因此我们需要准备如下的硬件设备来支持接下来的操作。
首先我们需要保证电脑和
开发板连接到同一个路由器分出来的网络,因为目前kv260不支持无线网络连接,因此需要一根网线连接路由器,电脑可以通过网线连接也可以通过无线连接(路由器发出的无线网络)。因此我们至少需要一个路由器保证下面的设置试没问题的。
其次,要进行SSH通讯需要专门的软件,这里推荐“MobaXterm”,下载方式大家可以自行百度。打开软件后点击“Session”窗口根据需要创建相关的连接,软件支持多种协议的连接,点击相应的图标即可按照步骤创建相关的连接。
准备好开发板,依次连接网线,uart串口通讯线,
电源,输入用户名和密码,进入系统过后,要先验证网络通讯是否正常,打开串口窗口输入如下命令:ping 8.8.8.8,如果数据正常跳动则说明通讯正常。
串口获取KV260 Ip地址
为了连接SSH通讯需要知道当前板子的IP地址,可以再串口输入命令“ip addr show”,系统会展示当前连接的设备IP地址,kv260的地址就是 eth0 ,对应的,如下图红色框圈出的位置,Ip地址就是红色框圈出的。
有了IP地址后点击MobaXterm软件左上角的“session”创建SSH连接。按照图中顺序依次点击,注意第二步中的IP地址需要根据上一步中读取到的IP地址输入点击确定就进入了ssh连接的界面。
进入界面后提示log in,需要设置用户登陆的名称和密码,这里根据自己的意愿设置即可。填写好后会进入系统命令界面。
下载应用驱动包
首先列出kv260支持的包,执行命令
sudo apt search xlnx-firmware-kv260
系统提示如下内容:
红色框美味我们此次需要安装的应用的包,接下来下载包的二进制文件,执行如下命令:
sudo apt install xlnx-firmware-kv260-aibox-reid
需要等待一段时间进行下载,下载成功后可以列出当前安装的app有哪些内容,执行如下命令:
sudo xmutil listapps
切换app到kv260-aibox-reid
sudo xmutil unloadapp
sudo xmutil loadapp kv260-aibox-reid
获取kv260-aibox-reid镜像
使用下列指令推出aibox-reid:
docker pull xilinx/aibox-reid:2022.1
等待下载完毕。。。。
可以查看是否有多个镜像容器,进行如下命令
docker rmi --force
提示没有新的线程就ok。
查看当前的镜像运行的是哪个app。
docker images
提示如下内容说明安装成功。
下面就可以进入kv260-aibox-reid,输入如下指令:
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/aibox-reid:2022.1 bash
提示如下内容说明进入镜像成功。
运行行人跟踪检测app
需要注意的是当前的模型是有一定的适用条件的,一般支持RTSP视频流,同时也支持通过文件读取的视频资源进行检测,但是视频格式需要利用FFmpeg进行转化为h264格式,这里需要用户在Ubuntu(开发板系统)内安装ffmpeg包,可以输入ffmpeg根据相关的提示进行安装,这里不做说明。
官方提供了几个下载mp4的地址,这里仅供参考,地址放在了下面:
https://pixabay.com/videos/liverpool-people-couple-pier-head-46090/
https://pixabay.com/videos/liverpool-pier-head-england-uk-46098/
https://pixabay.com/videos/spring-walk-park-trees-flowers-15252/
https://pixabay.com/videos/walking-people-city-bucharest-6099/
下载好MP4文件后需要将文件转化为好h264格式文件,其中***为文件名字需要进行替换。执行指令如下:
ffmpeg -i ***.mp4 -c:v libx264 -pix_fmt nv12 -vf scale=1920:1080 -r 30 output.nv12.h264
下面需要把文件从 /opt/xilinx/kv260-aibox-reid/share/notebooks复制到/root/notebooks/aibox-reid 执行如下命令:
aibox-reid-install.py
输入命令查看jupyter服务器列表,执行如下命令:
jupyter-server list
要在目标上启动Jupyter notebook,运行以下命令:
aibox-reid-install.py
jupyter-lab --notebook-dir=/root/notebooks/aibox-reid --allow-root --ip=192.168.101.122 &
(这里需要root权限,方法在文章最下边)
这时可以通过网页的py插件运行相关的指令操作,这里不做演示。
运行一个文件,需要将视频文件转化为h264文件格式,并将文件复制到/tme/movies目录下(红色部分需要替换的视频文件):
aibox-reid -s /tmp/movies/shop.nv12.30fps.1080p.h264 -t file -p 1
运行结果展示:
获取root权限的方法:
1、输入命令:sudo passwd 回车
2、接下来会提示您:输入新密码,重复输入密码(试验过,重新上电这个密码不会保存),最后提示您passwd:password updated sucessfully
此时已完成root密码的设置
3、接着就可以输入命令:su root
即以root的身份登录到系统里面去了,此时你再拷贝文件,就ok啦
Sudo passwd
Su root