目录
1. 简介
使用Vitis Vision Library Vitis 视觉库,为什么要安装opencv库?
在使用Vitis Vision Library时,安装OpenCV库是因为许多视觉库的功能都提供了示例设计测试平台,使用OpenCV来演示加速内核的功能。
虽然 Vision 库的 Vitis 实现不需要 OpenCV,但运行示例设计需要 OpenCV,并且可能需要在用户测试平台验证中使用。
此外,OpenCV的使用可以帮助开发者更好地理解和验证他们的算法在实际场景中的性能。
本文提供了一个详细的步骤指南,包括必要的预置条件、如何创建源目录、从GitHub中复制OpenCV库以及如何设置环境变量等。
2. 安装过程
2.1 安装准备
先决条件:
- 安装对应版本的 Vitis 统一软件环境,如 Vitis 2022.1
- 安装对应版本的 XRT
安装 Vitis 的过程比较简单,通过官方的安装包执行安装即可。安装XRT则需要单独进行说明。
首先说明什么 XRT:
XRT 是 Xilinx Runtime 的缩写,它是一种开源软件接口,用于在 AMD 灵活应变平台上部署应用程序。
2.2 编译并安装 XRT
Linux 版本:Ubuntu 20.04.6 LTS
Vitis 版本:2022.1
XRT版本:2022.1
2.2.1 下载 XRT 源码
2.2.2 安装依赖项
cd <XRT>/src/runtime_src/tools/scripts/
sudo ./xrtdeps.sh
这个脚本会配置通用依赖项和特定依赖项,如下:
通用依赖项
- CMake: 一个跨平台的安装(编译)工具,可以用来管理软件编译的过程。
- GCC/G++: GNU编译器套件,用于编译C和C++程序。
- Git: 一个版本控制系统,用于跟踪在编程过程中对文件的更改。
- Python3 & pip3: Python编程语言的解释器和Python包管理工具。
- Boost: 提供C++库,用于任务,如线性代数、伪随机数生成、多线程、图像处理等。
- OpenCL: 一个框架,用于编写在多种处理器上执行的程序,包括CPU、GPU和FPGA。
针对不同Linux发行版的特定依赖项
- Ubuntu/Debian: libboost-dev, libcurl4-openssl-dev, libdrm-dev, libgtest-dev, libprotobuf-dev, libssl-dev 等。
- CentOS/RHEL/Amazon Linux: boost-devel, libcurl-devel, libdrm-devel, gtest-devel, protobuf-devel, openssl-devel 等。对CentOS 7和RHEL 7,还会启用EPEL仓库和安装cmake3。
- Fedora: 类似于CentOS/RHEL的依赖,但是使用dnf而不是yum作为安装命令。
- SLES: 一些特定的库版本和开发工具,如libboost_filesystem1_66_0-devel, libopenssl-devel, libpng12-devel等。
2.2.3 构建 XRT
cd <XRT>/build
./build.sh
该脚本执行构建:编译、清理构建目录、运行单元测试、生成文档等。
脚本包含一个usage函数,提供了关于如何使用脚本的详细说明。
构建完毕如下
2.2.4 打包 DEB
cd build/Release
make package
2.2.5 安装 XRT
cd build/Release
ls *.deb
其中,xrt_202210.2.13.0_20.04-amd64-xrt.deb,是我们需要的 deb 安装文件,执行命令:
sudo apt install --reinstall ./xrt_202210.2.13.0_20.04-amd64-xrt.deb
2.3 编译并安装 OpenCV
2.3.1 下载 OpenCV 源码
OpenCV 库
这是 OpenCV 项目的主要库,包含了核心的功能模块。这些模块提供了构建基础计算机视觉功能所需的所有工具和算法,如图像处理、视频捕获、特征提取、基本的图形绘制功能等。这是使用 OpenCV 进行项目开发时必须要用到的基础库。
通过 git 命令或者直接下载。
git clone https://github.com/opencv/opencv --branch 4.4.0 source
OpenCV Contrib 库
这个库包含了 OpenCV 的额外模块,这些模块并不包含在主库中,主要是因为它们可能是实验性的,或者是因为版权或专利问题不能被广泛分发。Contrib 库提供了一些最新的、最先进的算法实现,这些通常是由社区贡献的。例如,一些最新的面部识别算法、特殊的图像处理效果和机器学习模块可能只在 Contrib 库中可用。
通过 git 命令或者直接下载。
git clone https://github.com/opencv/opencv_contrib --branch 4.4.0 source_contrib
2.3.2 创建目录
建议的目录结构:
Documents/
└── opencv4/
├── source/
└── source_contrib/
cd source
mkdir build
cd build
2.3.3 设置环境变量
export LIBRARY_PATH=/usr/lib/x86_64-linux-gnu/:$LIBRARY_PATH
将 /usr/lib/x86_64-linux-gnu/ 这个目录添加到了环境变量LIBRARY_PATH的前面。这个目录通常包含了许多标准和第三方的库文件,这些库文件是64位系统上的共享库(shared libraries),用于程序的动态链接。
2.3.4 构建 opencv
这段 CMake 命令用于配置OpenCV库的编译和安装过程。
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++
$XILINX_HLS 需要替换为 Vitis HLS 安装目录:/opt/Xilinx/Vitis_HLS/2022.1/
注:不能使用 source /opt/Xilinx/Vitis_HLS/2022.1/settings64.sh 命令,因为会导致cmake的版本过低问题。
构建和并安装:
make all -j8 #使用所有八个处理器核心(由“-j8”指定)来同时构建项目
sudo make install
如果不清楚有多少个处理器核心,可以通过如下指令进行构建:
make all -j$(grep -c ^processor /proc/cpuinfo)
该命令会使用全部可用核心进行构建。
3. 总结
本文详细介绍了使用Vitis Vision Library时为什么需要安装OpenCV库,并提供了详尽的安装指南。OpenCV库的安装对于运行Vitis Vision Library的示例设计至关重要,因为它不仅可以帮助开发者演示加速内核的功能,还能在用户测试平台上验证算法性能。
安装过程涵盖了从安装 Vitis 环境和 XRT 到编译和安装 OpenCV 库的全过程。通过逐步的说明,用户可以轻松地完成安装并设置环境变量,为开发和测试提供必要的环境。
本文还提供了对于安装过程中可能遇到的依赖项的详细解释,确保了用户可以顺利完成安装过程。希望在 Vitis Vision Library 中利用 OpenCV 库的开发者提供一些有益指导。