AMD Vitis™ Libraries Vision L3 Isppipeline U50流程示例

一. 关于 amd vitis vision library
vitis vision 库是一组 90 多个内核,基于 opencv 计算机视觉库,针对 amd fpga、amd ai engine 和 amd soc 进行了优化。 vitis vision 库中的内核在 vitis 工具套件中进行了优化和支持。
二. 硬件和软件要求
vitis vision 库设计用于与 amd zynq、amd zynq ultrascale+、amd vck190 和 amd alveo fpga 配合使用。 该库已在 zcu102、zcu104、vck190、u50 和 u200 板上经过验证。
必要条件:
有效安装 vitis 2022.2 或更高版本以及相应的许可证。
必须安装 xilinx runtime (xrt)。 xrt 为 amd fpga 提供软件接口。
安装 opencv-4.4.0 x86 库(兼容 libjpeg.so)。 x86 库必须用于:
a.l1 flow irrespective of target fpga device being pcie or embedded.
b.l2/l3 flow when the target device is pcie based
c.l2/l3 flow when performing software emulation for an embedded platform.
对于针对嵌入式平台的 l2/l3 flow(针对hardware emulation and hardware build),应使用 sysroot 中附带的 aarch32/aarch64 版本 opencv。
如果 libopencl.so 不存在,则必须安装。
安装 vitis 2022.2 或更高版本支持该平台的卡。
如果针对嵌入式平台,请安装它并设置评估板。
三. opencv 安装指导
建议全新安装 opencv 4.4.0,不要使用系统的现有库,因为它们可能适用于 vitis 环境,也可能不适用于。
请确保更新和升级系统的软件包和操作系统库,并安装 cmake 版本>3.5,然后再继续。不然可能遇到如下的错误:
#cmake error: the source directory /home/***/desktop/source/source/build/with_v4l=on does not exist.
以下步骤可帮助安装编译和链接 vitis vision 主机代码中的 opencv 调用所需的基本库。
下面是一个完整的示例,基于 ubuntu 22.04/bash,在 /home/ycw/desktop 路径下操作。
以下为可能会遇到的问题:
q1: 遇到下面的这个错误,可能 cmake 的版本没有大于3.5。
cmake error: the source directory /home/ycw/desktop/source/source/build/with_v4l=on does not exist.
q2:fatal: in-source builds are not allowed.
需要安装上面的步骤 mkdir build文件夹,注意如果已经创建了 build 目录,还是出现这个 fatal error 注意 cd 回 source 目录内,尝试使用如下命令清理一下 cache:rm -rf cmakecache.txt cmakefiles
q3:cmake_cxx_compiler=.
这里的 path-to-vitis-installation-directory应该设置成 vitis_hls 的路径。
见上面的完整示例。
五. 两种 platform 的 master/vision/l3/examples/isppipeline 的流程
level 3: pipeline applications:
https://github.com/xilinx/vitis_libraries/tree/master/vision/l3#level-3-pipeline-applications
不同设备和行为流程如下:
实例:
1. pcie设备示例(u50):
xilinx_u50_gen3x16_xdma_5_202210_1.xpfm的编译 make 流程:
a. opencv_include、opencv_lib 指向的是步骤3(opencv 安装指导)cmake_install_prefix 设置的目录内。
b. u50 的 platform
(xilinx_u50_gen3x16_xdma_5_202210_1.xpfm)
该示例 xilinx_u50_gen3x16_xdma_5_202210_1.xpfm 默认部署在下图的路径。
c. 示例代码:
2. embedded 设备示例(zcu102):
xilinx_zcu102_base_202220_1.xpfm 的编译 make 流程:
注意点:
a. opencv_include、opencv_lib指向的是步骤3(opencv 安装指导)cmake_install_prefix 设置的目录内。
b. sysroot 可以通过如下的方式获取:
2.1 在下面的链接下载 zynqmp 的 common image : 
https://www.xilinx.com/member/forms/download/xef.html?filename=xilinx-zynqmp-common-v2022.2_10141622.tar.gz
2.2 解压之后,cd 到 common-image 目录内,使用命令(./sdk.sh -y -d ./ -p)安装 sysroot。该示例安装完成之后,安装在下图显示的目录:/home/ycw/desktop/xilinx-zynqmp-common-v2022.2/sysroots/
c. 示例代码:
六. 板上运行
u50 的 hw 运行示例:
1. 使用 make run target=hw 运行的示例代码:
注:运行之后可以看到在
/home/ycw/desktop/vitis_libraries-2022.2/vision/l3/examples/isppipeline/ 目录下生成了 hls_output.png 文件。
2. build hw 之后生成的 app 运行示例:
注:
1. 当前在
/home/ycw/desktop/vitis_libraries-2022.2/vision/l3/examples/isppipeline/build_dir.hw.xilinx_u50_gen3x16_xdma_5_202210_1/ 
路径内,isppipeline 需要带入输入图片的绝对路径参数,这里输入图片的路径是:
/home/ycw/desktop/vitis_libraries-2022.2/vision/l3/examples/isppipeline/input.png
2. 生成的图片默认也在
/home/ycw/desktop/vitis_libraries-2022.2/vision/l3/examples/isppipeline/build_dir.hw.xilinx_u50_gen3x16_xdma_5_202210_1/
路径内。


DevOps是什么 DevOps常用的工具有哪些
滤波器是什么?滤波器知识详细整理,射频工程师必读文档!
电能管理系统在某改造项目的应用
腾讯 Robotics X 实验室机器狗 Jamoca 首次亮相 挑战梅花桩
嵌入式工业以太网控制方案的研究
AMD Vitis™ Libraries Vision L3 Isppipeline U50流程示例
什么是防爆粉尘浓度检测仪?
Intel即将推出全新处理器Meteor Lake,全新命名引猜测
宏碁暗影骑士3进阶版怎么样 4999元的入门款也具有相当高的性价比
TDK-Lambda电源在系留无人机及水下机器人中的应用
村田制作所开发出新型收发模块--TransferJet
桥式整流电路详解:定义,电路分析,桥式整流和全波整流的区别,应用
上班通勤用什么蓝牙耳机比较好?千元内好用的蓝牙耳机盘点
安全“新”解读 | 人员定位&智慧电厂,释放安全新能量!
容器——“轻量级”的虚拟化
曝华为P40 Pro将后置五颗摄像头 Pro版与普通版造型基本相同
电机绕组匝间短路原因及处理方法
2016年手机最佳设计奖给魅族PRO6, 你觉得如何
电源风扇冷却的气流方向是什么
村镇污水处理设备PLC数据采集监控运维系统解决方案