Vitis HLS opencv环境搭建和测试

文章目录

安装OpenCV

首先是准备工作,包括下面三个软件的下载和安装

  • 下载OpenCV安装包,双击解压,我将其解压在【D:\opencv\】文件夹中。解压后,其目录的【build】文件夹里,是编译好的环境。为了能够在vitis中调用,还需用Mingw64重新编译。
  • 下载Ming-w64,将其解压,并将解压后的【bin】文件夹添加到环境变量。打开cmd,输入gcc -v,若出现gcc的版本信息,说明配置成功。
  • 下载Cmake,若下载的压缩包,直接解压,并添加环境变量;若下载的msi文件,则双击安装。安装完成后,进入cmd,输入cmake --version,若返回cmake的版本信息,说明配置成功。

然后配置opencv的编译信息,打开cmake-gui

  • 1 将源代码地址选为opencv的sources文件夹,我这里选择【D:\opencv\opencv\sources】
  • 2 新建一个build文件夹,作为其输出二进制的路径,我这里是【D:\opencv\build】。
  • 3 点击下方的【Configuration】按钮,将【Specify the generator for this project】设为【MinGW Makefiles】,并选择【Specify native compilers】->【Next】->将C和C++的Compilers分别设为gcc和g+±>【Finish】->等待配置生效。
    • 我这里的gcc/g++路径分别是【D:\Libs\mingw64\bin\gcc.exe】和【D:\Libs\mingw64\bin\g++.exe】。
  • 4 勾选【WITH_OPENGL】、取消勾选【 OPENCV_ENABLE_ALLOCATOR_STATS】->【Configure】->等待
  • 5 出现【config done】之后,单击【Generate】->出现【Generating done】,说明编译配置文件已生成。

接下来,打开命令行,进入刚刚创建的【build】文件夹,相继输入

bash 复制代码
D:\opencv\build>mingw32-make
# 出现一大堆进度信息,请等待
D:\opencv\build>mingw32-make install

执行完毕后,【build】下会出现【install】文件夹。

最后,配置环境变量,添加用户变量

变量名 变量值
LD_LIBRARY_PATH D:\opencv\build\install\x64\mingw\lib
OPENCV_INCLUDE D:\opencv\build\install\include
OPENCV_LIB D:\opencv\build\install\x64\mingw\lib

并在path下新增两条路径

复制代码
D:\opencv\build\install\x64\mingw\bin
D:\opencv\build\install\x64\mingw\lib

运行示例程序

Xilinx在Github上提供了Vitis_Libraries,其中的vision文件夹提供了一些机器视觉方面的案例代码。其中【L1】文件夹提供了基础的opencv API,并在其【examples】文件夹中,提供了许多示例程序。这些示例程序中,一般包含两对源文件和头文件,其中以【tb】结尾的文件,为测试文件;此外还有一个【config】文件夹,用于存放配置参数。

  • 1 将【L1】文件夹解压到单独的文件夹,我将其放在了Xilinx文件夹下,并重命名为opencv,即路径变为【E:\Xilinx\opencv】。

  • 2 新建一个Vitis HLS工程,并在工程路径下新建一个【src】文件夹,将【examples\houghlines】下的头文件和源文件复制进去,如下

    xf_config_params.h
    xf_houghlines_accel.cpp
    xf_houghlines_accel_config.h
    xf_houghlines_tb.cpp
    xf_houghlines_tb_config.h

  • 3 在Vitis HLS中,右键【Source】->【Add Files】,选中【xf_houghlines_accel.cpp】。右键【Test Bench】->【Add Files】,选中【xf_houghlines_tb.cpp】。

  • 4 点击【Project】->【Project Setting】

    • 【Synthesis】->选中.cpp文件,将【Edit CFLAGS】设为下面的内容;【Simulation】->选中.cpp文件,将【Edit CFLAGS】、【Edit CSIMFLAGS】设为下面的内容。
    c 复制代码
    -ID:/opencv/build/install/include -IE:/Xilinx/opencv/include -std=c++14
    • 勾选【Clean Build】,将【Linker Flags】设为

      -L D:/opencv/build/install/x64/mingw/lib -llibopencv_imgcodecs4120 -llibopencv_imgproc4120 -llibopencv_core4120 -llibopencv_highgui4120 -llibopencv_flann4120 -llibopencv_features2d4120

    • 将【Input Argument】设为测试图片的路径,我的图片路径为

      E:/work/fpga/02_hls_cv/hls_cv/src/test.png

  • 5 修改测试文件,将xf_houghlines_tb.cpp第316行和356行附近的#if#endif注释掉。

执行【C Simulation】。执行完毕后,即可在...\solution1\csim\build文件夹下,找到【out_floatref.png】、【outhls.png】这两个文件,即示例程序的运行结果。