在petalinux中加入读视频功能

本文转载自: 硬码农二毛哥微信公众号

问题
在运行Vitis AI VART例程时出现如下问题,在读取视频时出现错误。

解决办法
需要在配方文件中加入opencv功能

进入工程目录project-spec/meta-user中,新建目录:

mkdir -p recipes-support/opencv

将配方文件opencv_3.4.3.bbappend拷贝到该目录,opencv_3.4.3.bbappend文件中内容如下:

PACKAGECONFIG_remove = " gstreamer"
PACKAGECONFIG_append = " libav ffmpeg"
PACKAGECONFIG[ffmpeg] = "-DWITH_FFMPEG=ON,-DWITH_FFMPEG=OFF,ffmpeg,"

do_install_append() {
        rm ${D}/usr/share/OpenCV/haarcascades -rf
        rm ${D}/usr/share/OpenCV/lbpcascades -rf
}

编译工程
运行

petalinux-build
petalinux-build --sdk
cd images/linux/
./sdk.sh -d  xx_custom_pkg/pfm

修改Vitis Platform
将如下两个文件拷贝到Vitis Platform工程,xx_custom_pkg为vitis工程目录。

下面文件在创建platform时使用:

cp zynqmp_fsbl.elf pmufw.elf bl31.elf u-boot.elf ../../../xx_custom_pkg/pfm/boot/
cp boot.scr system.dtb ../../../fzu3_custom_pkg/pfm/image/

下面文件在创建应用时使用:

cp images/linux/image.ub  xx_custom_pkg/pfm/image/
cp images/linux/rootfs.ext4   xx_custom_pkg/pfm/image/

重新编译Vitis 应用
进入xx_custom_pkg目录,运行vitis,右键点击工程名,在出来的对话框中点击Clean Project

重新编译Vitis应用。

烧写SD卡

sudo dd bs=4M if=sd_card.img of=/dev/sdb status=progress conv=fsync

将如下文件拷贝到sd卡

上电测试
启动单板后,先执行init.sh

cd /mnt/sd_mmcblk1p1
source ./init.sh

拷贝文件

cp dpu_sw_optimize.tar.gz vitis-ai-runtime-1.2.0.tar.gz vitis_ai_runtime_r1.2.0_image_video.tar.gz ~/

运行dpu_sw_optimize

cd ~
tar -xzf dpu_sw_optimize.tar.gz
cd dpu_sw_optimize/zynqmp/
./zynqmp_dpu_optimize.sh

安装 Vitis AI Runtime 1.2.0

tar -xzvf vitis-ai-runtime-1.2.0.tar.gz
cd ~/vitis-ai-runtime-1.2.0/aarch64/centos
rpm -ivh --force libunilog-1.2.0-r10.aarch64.rpm
rpm -ivh --force libxir-1.2.0-r12.aarch64.rpm
rpm -ivh --force libtarget-factory-1.2.0-r10.aarch64.rpm
rpm -ivh --force libvart-1.2.0-r16.aarch64.rpm
rpm -ivh --force libvitis_ai_library-1.2.0-r15.aarch64.rpm

修改文件名

cd /mnt/sd_mmcblk1p1
mv binary_container_1.xclbin dpu.xclbin

修改/etc/vart.conf文件

firmware:/mnt/sd-mmcblk1p1/dpu.xclbin

解压vitis_ai_runtime_r1.2.x_image_video.tar.gz

mkdir -p ~/Vitis-AI/VART
tar -xzvf vitis_ai_runtime_r1.2.0_image_video.ta.gz -C ~/Vitis-AI/VART

yolov3_adas_pruned_0_9.el和adas_detection拷贝到~/Vitis-AI/VART/samples/adas_detection

设置显示器

export DISPLAY=:0.0 xrandr --output DP-1 --mode 640x480

运行例程

./adas_detection video/adas.aviyolov3_adas_pruned_0_9.elf

最新文章

最新文章