FC2カウンター FPGAの部屋 Vivado HLS 2015.4 で OpenCV を使ってみた6(Sobelフィルタを試した4)

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

FPGAの部屋

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

Vivado HLS 2015.4 で OpenCV を使ってみた6(Sobelフィルタを試した4)

Vivado HLS 2015.4 で OpenCV を使ってみた5(Sobelフィルタを試した3)”の続き。

前々回はX軸方向のSobel フィルタ前回はY軸方向のSobel フィルタをやってみた。今回はXY軸方向のSobel フィルタをやってみた。
実は、HLS Sobel では、”Only SIZE=3, 5, or 7 is supported. Only (XORDER=1 and YORDER=0, horizontal derivative) or (XORDER=0 and YORDER=1, vertical derivative) is supported”と書いてあるので、両方 1 はダメだとは思うのだが、一応確かめる。

ソースコードの opencv_ex_ug.cpp の変更部分を示す。X軸とY軸を両方 1 にした。

hls::Sobel<1,1,3>(img_1g, img_2g);


テストベンチの opencv_ex_ug_tb.cpp の変更部分を示す。同様にX軸とY軸を両方 1 にした。

Sobel(gray, img0g, IPL_DEPTH_16S, 1, 1, 3);


これでC シミュレーションを行った。
Vivado_HLS_OpenCV_45_160408.png

1つエラーが出ている。

Sobel フィルタ結果を示す。ソースの方の test_result.jpg を示す。
Vivado_HLS_OpenCV_49_160408.jpg

テストベンチの出力の test_result_cv.jpg を示す。
Vivado_HLS_OpenCV_50_160408.jpg

エッジの検出が弱い気がする。

C コードからの合成を行った。
Vivado_HLS_OpenCV_46_160408.png

これはX軸方向、Y軸方向とも一緒だ。

リソース使用量は異なる。最初にX軸方向、次にY軸方向、最後にXY軸方向のリソース使用量を示す。
Vivado_HLS_OpenCV_20_160404.pngVivado_HLS_OpenCV_36_160406.pngVivado_HLS_OpenCV_47_160408.png

XY軸方向の方が FF、LUT ともに少ないので、やはりおかしいかもしれない?XY軸方向だとX軸、Y軸ともに2乗して平方根を取っているはずなので、増えるはずだと思う。

C/RTL コシミュレーションを行った。
Vivado_HLS_OpenCV_48_160408.png

Latency は 29319 クロックかかった。Y軸方向と同じだ。ちなみにX軸方向は 30207 クロックかかっている。
C/RTL コシミュレーション波形は同じだと思うので省略する。

Gimp でSobel を掛けてみた結果を下に示す。やはり綺麗に輪郭が出ている。
Vivado_HLS_OpenCV_51_160408.jpg
  1. 2016年04月08日 04:47 |
  2. Vivado HLS
  3. | トラックバック:0
  4. | コメント:0

コメント

コメントの投稿


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

トラックバック URL
http://marsee101.blog19.fc2.com/tb.php/3437-12be4d06
この記事にトラックバックする(FC2ブログユーザー)