目录
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库的顺利运行和性能测试。此外,解决常见的安装错误,如共享库文件的查找和配置,进一步确保了开发环境的稳定性。