首页 > 其他分享 >Vitis Accelerated Libraries 学习笔记--OpenCV 安装指南

Vitis Accelerated Libraries 学习笔记--OpenCV 安装指南

时间:2024-06-19 23:57:46浏览次数:22  
标签:-- XF Libraries OpenCV Vitis PROJ L1 ROOT

目录

1. 简介

2. 安装过程

2.1 安装准备

2.2 常见错误

2.2.1 核心共享库报错

3. 通过实例测试 

4. 总结


1. 简介

使用Vitis Vision Library Vitis 视觉库,为什么要安装opencv库?

在使用Vitis Vision Library时,安装OpenCV库是因为许多视觉库的功能都提供了示例设计测试平台,使用OpenCV来演示加速内核的功能。虽然 Vitis Vision 库的内核实现并不依赖于 OpenCV,但OpenCV提供了一个广泛的集合功能,可以用来验证和测试Vitis Vision库中的加速内核。此外,OpenCV的使用可以帮助开发者更好地理解和验证他们的算法在实际场景中的性能。

本文提供了一个详细的步骤指南,包括必要的预置条件、如何创建源目录、从GitHub中复制OpenCV库以及如何设置环境变量等。

2. 安装过程

2.1 安装准备

先决条件:

  • 安装 Vitis 20xx.x
  • 安装 XRT

安装步骤:

  • 创建一个目录“source”并将 opencv-4.4.0 克隆到其中
  • 创建一个目录“source_contrib”并将 opencv-4.4.0-contrib 克隆到其中
  • 再创建 2 个目录: build 、 install
  • 打开 bash 终端并 cd 到 build 目录
  • 运行命令:export LIBRARY_PATH=/usr/lib/x86_64-linux-gnu/
  • 运行命令:
cmake .. -D CMAKE_BUILD_TYPE=RELEASE \
         -D CMAKE_INSTALL_PREFIX=/usr/local \
         -D WITH_V4L=ON \
         -D OPENCV_EXTRA_MODULES_PATH=../../source_contrib/modules \
         -DBUILD_TESTS=OFF -DBUILD_ZLIB=ON -DBUILD_JPEG=ON \
         -DWITH_JPEG=ON -DWITH_PNG=ON -DBUILD_EXAMPLES=OFF \
         -DINSTALL_C_EXAMPLES=OFF -DINSTALL_PYTHON_EXAMPLES=OFF \
         -DWITH_OPENEXR=OFF -DBUILD_OPENEXR=OFF \
         -DOPENCV_GENERATE_PKGCONFIG=ON \
         -D CMAKE_CXX_COMPILER=$XILINX_HLS/tps/lnx64/gcc-6.2.0/bin/g++
make all -j8
sudo make install

make all -j8

使用所有八个处理器核心(由“-j8”指定)来同时构建项目

  • OpenCV 包含文件和库将位于安装目录中

2.2 常见错误

2.2.1 核心共享库报错

/xx/xx/.../: error while loading shared libraries: libopencv_imgcodecs.so.4.4: cannot open shared object file: No such file or directory

意味着程序无法找到OpenCV的核心共享库文件。

解决办法:

使用以下命令行查找包含共享库 libopencv_imgcodecs.so.4.4 的文件夹:

sudo find / -name "libopencv_imgcodecs.so.4.4"

创建一个名为 /etc/ld.so.conf.d/opencv.conf 的文件,并向其中写入存储二进制文件的文件夹的路径。例如,我将 /usr/local/lib/ 写入我的 opencv.conf 文件。按如下方式运行命令行:

sudo ldconfig -v

3. 通过实例测试 

  • 1. 在 GUI 中创建空白工程
source /opt/Xilinx/Vitis_HLS/2022.1/settings64.sh
vitis_hls -gui # 在GUI中创建空白工程
  • 2. 在 shell 中,确定目录位置各个目录位置:
pwd # 在 vision 目录下
pkg-config --cflags opencv4 | sed 's/-I//g'
pkg-config --libs-only-L opencv4  | sed 's/-L//g'
  • 3. 按顺序复制到此处
set XF_PROJ_ROOT /home/dong/Documents/vision
set OPENCV_INCLUDE /usr/local/include/opencv4
set OPENCV_LIB /usr/local/lib
  •  4. 进入 vitis_hls -i 赋值以上内容,三行分开复制
  • 5. 继续在 vitis_hls -i 中,运行如下内容(根据示例调整)
open_project NAME # 打开工程,可参考 get_project
add_files "${XF_PROJ_ROOT}/L1/examples/customconv/xf_custom_convolution_accel.cpp" -cflags " -I ${XF_PROJ_ROOT}/L1/examples/customconv/build -I${XF_PROJ_ROOT}/L1/include -I ./ -D__SDSVHLS__ -std=c++0x" -csimflags " -I ${XF_PROJ_ROOT}/L1/examples/customconv/build -I${XF_PROJ_ROOT}/L1/include -I ./ -D__SDSVHLS__ -std=c++0x"
add_files -tb "${XF_PROJ_ROOT}/L1/examples/customconv/xf_custom_convolution_tb.cpp" -cflags " -I ${XF_PROJ_ROOT}/L1/examples/customconv/build -I${OPENCV_INCLUDE} -I${XF_PROJ_ROOT}/L1/include -I ./ -D__SDSVHLS__ -std=c++0x" -csimflags " -I ${XF_PROJ_ROOT}/L1/examples/customconv/build -I${XF_PROJ_ROOT}/L1/include -I ./ -D__SDSVHLS__ -std=c++0x"
set_top Filter2d_accel
vitis_hls -p NAME 启动当前工程的 GUI 界面
  • 6. 根据示例,设置 csim 参数
csim_design -ldflags "-L ${OPENCV_LIB} -lopencv_imgcodecs -lopencv_imgproc -lopencv_core -lopencv_highgui -lopencv_flann -lopencv_features2d" -argv " ${XF_PROJ_ROOT}/data/128x128.png "

 

4. 总结

在使用Vitis Vision Library进行图像处理和计算机视觉项目时,OpenCV库的安装是为了提供一个功能强大的测试和验证平台。OpenCV不仅支持Vitis Vision库中加速内核的功能演示,而且还提供了一系列工具来帮助开发者验证和优化他们的算法。通过详细的安装指南,用户可以轻松地在他们的系统上配置OpenCV环境,从而确保Vitis Vision库的顺利运行和性能测试。此外,解决常见的安装错误,如共享库文件的查找和配置,进一步确保了开发环境的稳定性。

标签:--,XF,Libraries,OpenCV,Vitis,PROJ,L1,ROOT
From: https://blog.csdn.net/DongDong314/article/details/139803440

相关文章

  • 基于Java+Vue前后端分离在线考试系统(源码+LW+PPT+部署教程)
    博主介绍:✌全网粉丝10W+平台特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于毕业项目实战✌一、作品包含源码+数据库+设计文档LW+PPT+全套环境和工具资源+部署教程二、项目技术前端技术:Ht......
  • 虚拟机的初步安装
    一,虚拟机简介VMware是一个虚拟PC的软件,可以在现有的操作系统上虚拟出一个新的硬件环境,相当于模拟出一台新的PC,以此来实现在一台机器上真正同时运行两个独立的操作系统。VMware主要特点:1,不需要分区或重新开机就能在同一台PC上使用两种以上的操作系统2.本机系统可以与虚拟......
  • misc——流量分析usb(2)
    目录键盘鼠标CTF中usb流量分析以键盘和鼠标为主键盘usb协议数据部分数据长度为8个字节,其中击键信息集中在第三个字节思路:在Linux中使用tshark命令把capdata提取出来,根据《usb键盘协议中键码》中的HIDUsageID将数据还原为键跑脚本(先将每个字节以冒号分割,方便提取)......
  • misc——流量分析icmp(3)
    目录​​​​​​​​​​​​​​ping也可以携带数据(响应的包icmp.type==8,请求是0)ping包的大小奇怪(length)ping也可以携带数据(响应的包icmp.type==8,请求是0)依次查看ping的内容,取出即可/脚本提取Pyshark:python的一个库          (0,25):0到25条数据......
  • 01个人课堂练习
    //policy123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828......
  • 02个人课堂练习
    packagecom.example.policyquery;importandroid.content.Intent;importandroid.os.Bundle;importandroid.util.Log;importandroid.view.View;importandroid.widget.AdapterView;importandroid.widget.ArrayAdapter;importandroid.widget.AutoCompleteTextView;import......
  • hdu2845dp问题
    看了一眼题目,简单dp问题,但超时了一晚上,试了各种方法无法解决,最终放弃java,改用C直接过,我哭了。。。。#include<stdio.h>#include<string.h>#definemaxn200010intdp[maxn],ans[maxn],map[maxn];intmax(intx,inty){returnx>y?x:y;}intmain(){inti,j;......
  • SqlserverCDCSource DataStream方式
    org.apache.flink没有jar包,要换为com.ververica.cdc2.com.ververica.cdc最新的也只有3.0.1,3.1.1的没有主要mvnrepository仓库没找到如下是单并行度和多并行度的demo==============================================================================================......
  • Web之http学习笔记
    目录HTTPurlhttp请求请求行请求方法请求头请求正文http响应响应行状态码响应头响应正文Cookie定义:内容:用途:生命周期:隐私和安全性:Session实现原理组成:PHP中的Session设置函数session传输HTTPhttp文本传输协议(HyperTextTransferProtocol),遵循请求/响应(request/response)模型url......
  • Python代码解压的中文文件名是乱码,怎么解决?
    大家好,我是Python进阶者。一、前言前几天在Python白银交流群【fashjon】问了一个Python自动化办公的问题,问题如下:importzipfiledefunzip_file(zip_file_path,output_folder_path):withzipfile.ZipFile(zip_file_path,'r')aszip_ref:zip_ref.extractall(......