FC2カウンター FPGAの部屋 Vitis HLS 2020.2 で xfOpenCV の medianblur をやってみよう
fc2ブログ

FPGAやCPLDの話題やFPGA用のツールの話題などです。 マニアックです。 日記も書きます。

FPGAの部屋

FPGAの部屋の有用と思われるコンテンツのまとめサイトを作りました。Xilinx ISEの初心者の方には、FPGAリテラシーおよびチュートリアルのページをお勧めいたします。

Vitis HLS 2020.2 で xfOpenCV の medianblur をやってみよう

Vitis Vision Library で AXI4-Stream 入出力の medianblur を実装する1”で Vitis Vision Library で AXI4-Stream 入出力の medianblur を実装したのだが、C シミュレーションはエラーで実行できなかった。
それでは、 xfOpenCV を Vitis HLS 2020.2 では使えないのだろうか? ということでやってみた。

Vivado HLS 2019.2 で xfOpenCV のAXI4-Stream 版 medianblur をやってみる1”のコードをそのまま使用して、”Vivado HLS 2019.2 で xfOpenCV の medianblur をやってみる1”の Vivado HLS の設定をそのまま使用するのだが、多少変更する必要がある。

Vitis HLS 2020.2 で xfopencv ディレクトリの下に medainblur プロジェクトを作成した。
Vitis Vision Library で AXI4-Stream 入出力の medianblur を実装する1”と同じファイルを持ってきて、Vitis HLS の Source に xf_median_blur.cpp を Test Bench に im0.jpg と xf_median_blur_tb.cpp を登録した。
Vitis_Vision_Library4Vitis_HLS_47_210102.png

Vitis HLS 2020.2 の Project メニューから Project Settings... を選択すると、Project Settings (medianblur) ダイアログが開く。
Project Settings (medianblur) ダイアログで、Simulation をクリックして、xf_median_blur_tb.cpp の CFLAGS に

-D__SDSVHLS__ -I/home/masaaki/xfopencv/include --std=c++0x -I/usr/local/include

を入力した。これは、Vitis HLS 2020.2 は OpenCV へのリンクが無いので、自分でインストールした OpenCV 3.4.9 の include へのパスを追加した。
Linker Flags に

-L/usr/local/lib -lopencv_core -lopencv_imgcodecs -lopencv_imgproc

を入力した。
Input Arguments に

im0.jpg

を設定した。
Vitis_Vision_Library4Vitis_HLS_48_210102.png

Project Settings (medianblur) ダイアログで、Synthesis をクリックして、

-D__SDSVHLS__ -I/home/masaaki/xfopencv/include --std=c++0x

を設定した。
Vitis_Vision_Library4Vitis_HLS_49_210102.png

これで準備が整った。
Project メニューから Run Simulation を選択して、 C シミュレーションをスタートしたが、エラーで終了した。
Vitis_Vision_Library4Vitis_HLS_50_210102.png

エラー内容を示す。

INFO: [SIM 2] *************** CSIM start ***************
INFO: [SIM 4] CSIM will launch GCC as the compiler.
   Compiling ../../../xf_median_blur_tb.cpp in debug mode
csim.mk:73: recipe for target 'obj/xf_median_blur_tb.o' failed
In file included from ../../../../../../../../../home/masaaki/xfopencv/include/common/xf_axi_io.h:33:0,
                 from ../../../../../../../../../home/masaaki/xfopencv/include/common/xf_infra.h:43,
                 from ../../../xf_median_blur_tb.cpp:11:
/media/masaaki/Ubuntu_Disk/tools/Xilinx/Vitis_HLS/2020.2/include/utils/x_hls_utils.h:243:40: 警告: ‘hls_preserve’ 属性指示が無視されました [-Wattributes]
 __attribute__((hls_preserve)) T reg(T d)
                                        ^
In file included from ../../../xf_median_blur_tb.cpp:12:0:
../../../../../../../../../home/masaaki/xfopencv/include/common/xf_axi.h: In instantiation of ‘void cvMat2AXIvideoxf(cv::Mat&, hls::stream<ap_axiu<W, 1, 1, 1> >&) [with int NPC = 1; int W = 32]’:
../../../xf_median_blur_tb.cpp:63:38:   required from here
../../../../../../../../../home/masaaki/xfopencv/include/common/xf_axi.h:144:18: エラー: conversion from ‘cv::Mat’ to non-scalar type ‘IplImage {aka _IplImage}’ requested
   IplImage img = cv_mat;
                  ^~~~~~
../../../../../../../../../home/masaaki/xfopencv/include/common/xf_axi.h: In instantiation of ‘void AXIvideo2cvMatxf(hls::stream<ap_axiu<W, 1, 1, 1> >&, cv::Mat&) [with int NPC = 1; int W = 32]’:
../../../xf_median_blur_tb.cpp:65:39:   required from here
../../../../../../../../../home/masaaki/xfopencv/include/common/xf_axi.h:259:17: エラー: conversion from ‘cv::Mat’ to non-scalar type ‘IplImage {aka _IplImage}’ requested
  IplImage img = cv_mat;
                 ^~~~~~
make: *** [obj/xf_median_blur_tb.o] Error 1
ERR: [SIM 100] 'csim_design' failed: compilation error(s).
INFO: [SIM 3] *************** CSIM finish ***************


エラー内容は”conversion from ‘cv::Mat’ to non-scalar type ‘IplImage {aka _IplImage}’”ということだ。
これは、”Vitis Vision Library で AXI4-Stream 入出力の medianblur を実装する1”と同じエラーだ。
  1. 2021年01月02日 05:36 |
  2. reVISION, xfOpenCV
  3. | トラックバック:0
  4. | コメント:0

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック URL
https://marsee101.blog.fc2.com/tb.php/5108-7856641e
この記事にトラックバックする(FC2ブログユーザー)