问题
在运行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
硬码农二毛哥