本文转载自:<span id="profileBt"><a href="https://mp.weixin.qq.com/s/KgqaIMlW6l1OZ9KGyY5s4w"> 硬码农二毛哥微信公众号</a></span>
<strong>问题</strong>
在运行Vitis AI VART例程时出现如下问题,在读取视频时出现错误。
<center><img src="http://xilinx.eetrend.com/files/2021-09/%E5%8D%9A%E5%AE%A2/100553792-22…; alt=""></center>
<strong>解决办法</strong>
需要在配方文件中加入opencv功能
进入工程目录project-spec/meta-user中,新建目录:
<pre>mkdir -p recipes-support/opencv</pre>
将配方文件opencv_3.4.3.bbappend拷贝到该目录,opencv_3.4.3.bbappend文件中内容如下:
<pre>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
}</pre>
<strong>编译工程</strong>
运行
<pre>petalinux-build
petalinux-build --sdk
cd images/linux/
./sdk.sh -d xx_custom_pkg/pfm</pre>
修改Vitis Platform
将如下两个文件拷贝到Vitis Platform工程,xx_custom_pkg为vitis工程目录。
下面文件在创建platform时使用:
<pre>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/</pre>
下面文件在创建应用时使用:
<pre>cp images/linux/image.ub xx_custom_pkg/pfm/image/
cp images/linux/rootfs.ext4 xx_custom_pkg/pfm/image/</pre>
重新编译Vitis 应用
进入xx_custom_pkg目录,运行vitis,右键点击工程名,在出来的对话框中点击Clean Project
<center><img src="http://xilinx.eetrend.com/files/2021-09/%E5%8D%9A%E5%AE%A2/100553792-22…; alt=""></center>
重新编译Vitis应用。
烧写SD卡
<pre>sudo dd bs=4M if=sd_card.img of=/dev/sdb status=progress conv=fsync</pre>
将如下文件拷贝到sd卡
<img src="http://xilinx.eetrend.com/files/2021-09/%E5%8D%9A%E5%AE%A2/100553792-22…; alt="">
<strong>上电测试</strong>
启动单板后,先执行init.sh
<pre>cd /mnt/sd_mmcblk1p1
source ./init.sh</pre>
拷贝文件
<pre>cp dpu_sw_optimize.tar.gz vitis-ai-runtime-1.2.0.tar.gz vitis_ai_runtime_r1.2.0_image_video.tar.gz ~/</pre>
运行dpu_sw_optimize
<pre>cd ~
tar -xzf dpu_sw_optimize.tar.gz
cd dpu_sw_optimize/zynqmp/
./zynqmp_dpu_optimize.sh</pre>
安装 Vitis AI Runtime 1.2.0
<pre>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</pre>
修改文件名
<pre>cd /mnt/sd_mmcblk1p1
mv binary_container_1.xclbin dpu.xclbin</pre>
修改/etc/vart.conf文件
<pre>firmware:/mnt/sd-mmcblk1p1/dpu.xclbin</pre>
解压vitis_ai_runtime_r1.2.x_image_video.tar.gz
<pre>mkdir -p ~/Vitis-AI/VART
tar -xzvf vitis_ai_runtime_r1.2.0_image_video.ta.gz -C ~/Vitis-AI/VART</pre>
yolov3_adas_pruned_0_9.el和adas_detection拷贝到~/Vitis-AI/VART/samples/adas_detection
设置显示器
export DISPLAY=:0.0 xrandr --output DP-1 --mode 640x480
运行例程
<pre>./adas_detection video/adas.aviyolov3_adas_pruned_0_9.elf</pre>