XfOpenCV が休止になって、後継が
Vitis Vision Library になった。
正確に言うと、
Vitis_Libraries/vision/L1/ が Vitis HLS のフローとなっている。
Vitis Vision Library のマニュアルは、
Vitis Vision Library User Guide で、 Vitis HLS での Vitis Vision Library の使用方法については、
Getting Started with HLS に記述がある。
Vitis Vision Library User Guide の
Prerequisites に従って、”
Ubuntu 18.04 LTS のパソコンに OpenCV 3.4.9 をインストールする”で OpenCV 3.4.9 を Ubuntu 18.04 LTS の自分のパソコンにインストールした。
これで、Vitis HLS 2020.2 で Vitis Vision Library を実行する環境が整ったので、早速やってみよう。
最初に、
Getting Started with HLS に例示されている dilation をやってみよう。
Vitis HLS 2020.2 で ZYBO Z7-20 用の dilation プロジェクトを作成した。
Vitis Libraries を git clone した。
git clone https://github.com/Xilinx/Vitis_Libraries.gitVitis_Libraries/vision/L1/examples/dilation ディレクトリの 3 つのファイル
xf_dilation_accel.cpp
xf_dilation_config.h
xf_dilation_tb.cpp
を Vitis HLS の dilation プロジェクトのディレクトリにコピーした。
Vitis_Libraries/vision/L1/examples/dilation/build ディレクトリの
xf_config_params.h
も Vitis HLS の dilation プロジェクトのディレクトリにコピーした。

Vitis HLS の Explorer で Source に xf_dilation_accel.cpp を Test Bench に xf_dilation_tb.cpp を登録した。
Getting Started with HLS の”Use the following steps to operate the HLS Standalone Mode using GUI”を参考にしながら、Vitis HLS を設定していこう。
まずは、OpenCV のインストールでインストールされた、 include ディレクトリや lib ディレクトリを確認しよう。
OpenCV 3.4.9 の include ディレクトリは /usr/local/include/opencv2 だった。 opencv.hpp がある。

ただし、Vitis Vision library では、 include する際に opencv2 ディレクトリを付加してパスを設定しているので、 /usr/local/include を設定すれば良さそうだ。

#include "opencv2/opencv.hpp"
#include "opencv2/imgproc/imgproc.hpp"
#include "opencv2/highgui/highgui.hpp"
#include "opencv2/imgcodecs/imgcodecs.hpp"
次に OpenCV 3.4.9 の lib のパスは、 /usr/local/lib にあった。

これで OpenCV 関連のパスが分かったので、Vitis HLS 2020.2 の Project メニューから Project Settings... を選択して、設定を行う。
Project Settings (dilation) ダイアログが開く。
左のウインドウで Simulation をクリックする。
xf_dilation_tb.cpp の CFLAGS を設定する。(設定方法は、Edit CFLAGS... ボタンをクリックする)
テストベンチ・ファイルの CFLAGS は
Getting Started with HLS では、
-I<path-to-L1-include-directory> -std=c++0x -I<path-to-opencv-include-folder>
と指定されている。
そこで、実際に入れる CFLAG は
-I/media/masaaki/Ubuntu_Disk/Xilinx_github/Vitis_Libraries/vision/L1/include -std=c++0x -I/usr/local/include
になった。なお、フルパスで入れたのだが、Vitis HLS の Project Settings (dilation) ダイアログ で見える xf_dilation_tb.cpp の CFLAGS は相対パスになっている。
Linker Flags は
Getting Started with HLS では、
-L<path-to-opencv-lib-folder> -lopencv_core -lopencv_imgcodecs -lopencv_imgproc
と指定されている。
よって、実際に入力した Linker Flags は
-L/usr/local/lib -lopencv_core -lopencv_imgcodecs -lopencv_imgproc
とした。
Input Arguments では、画像ファイルを指定する。デフォルトでは、縦 128 行、横 128 ピクセルの画像が指定されている。よって、 Vitis Vision Library の data ディレクトリにあった 128x128.png を指定した。
/media/masaaki/Ubuntu_Disk/Xilinx_github/Vitis_Libraries/vision/data/128x128.png

ここで、 Synthesis まで設定すると OK ボタンが押せなくなるので、 OK ボタンをクリックしてダイアログを終了する。
再度、Vitis HLS 2020.2 の Project メニューから Project Settings... を選択して、設定を行う。
Project Settings (dilation) ダイアログが開く。
左のウインドウで Synthesis をクリックする。
xf_dilation_accel.cpp の CFLAGS を設定する。(設定方法は、Edit CFLAGS... ボタンをクリックする)
ソース・ファイルの CFLAGS は
Getting Started with HLS によると、Simulation のファイルの CFLAGS から OpenCV のインクルード・パスを含めないということだったので、
-I/media/masaaki/Ubuntu_Disk/Xilinx_github/Vitis_Libraries/vision/L1/include -std=c++0x
とした。

こちらはフルパスで入っているようだ。
OK ボタンが押せなくなっていることもあるが、 Cancel ボタンをクリックしても、設定は入力されているようだ。
(2021/01/15 :追記)Top Function を指定すると OK ボタンが押せるようになるようです。
最後に Vitis HLS はデフォルトで AXI4 Master の際の 64 ビットアドレスのアクセスが入っている。UltraScale+ MPSoC の Ultra96 ならまだしも ZYBO Z7-20 では 32 ビットアドレスなので、これを外しておく。
Solution メニューから Solution Settings... を選択して、 Solution Settings (solution 1) ダイアログを開く。
config_interface の左向き三角をクリックして展開する。
m_axi_addr64 のチェックを外す。
(2020/12/31:追記)”
Vitis Library for Video-Stream Core, OpenCV Version?”を読むと、 2020.1 から環境が競合するので OpenCV をインストールしないようになったそうです。つまり自分の都合良いバージョンの OpenCV をインストールしてそれを使うようになったようです。
- 2020年12月27日 04:54 |
- Vitis_Vision
-
| トラックバック:0
-
| コメント:0