FC2カウンター FPGAの部屋 ガボール・フィルタ (Gabor Filter) による白線検出8(hls::LineBuffer と hls::Window を使用5)

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

FPGAの部屋

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

ガボール・フィルタ (Gabor Filter) による白線検出8(hls::LineBuffer と hls::Window を使用5)

ガボール・フィルタ (Gabor Filter) による白線検出7(hls::LineBuffer と hls::Window を使用4)”の続き。

前回は、左白線検出と右白線検出ができる両方の白線検出用Gabor Filterを作成した。1ビットのRorL という信号を追加して、右白線検出か、左白線検出かを選べるようにした。新しいGabor_filter_lh.h 、 Gabor_filter_lh.cpp 、 Gabor_filter_lh_tb.cpp を貼った。
今回は、そのC ソースコードを使って、C シミュレーション、C コードの合成を行った。

まずは、プロジェクトを示す。
GaborFilter_21_160727.png

C シミュレーションを行った。
GaborFilter_20_160726.png

エラーは無しだった。つまり、固定小数点演算と浮動小数点演算の差が 2 より大きい箇所は無いということが分かる。
Gabor Filter 処理後の写真を示す。左が固定小数点演算を使用した Gabor Filter で、右が浮動小数点演算を使用した Gabor Filter だ。
GaborFilter_23_160727.jpg GaborFilter_24_160727.jpg

2 つの写真に肉眼で違いは見られない。右の白線が強調されているのがわかる。

次に、C コードの合成を行った。
GaborFilter_22_160727.png

Detail -> Loop 2 を見ると、Latency は307206 だった。これは大体 1 クロックで 1 ピクセルを処理できていることになる。
次に使用リソースだが、DSP48E が 92 % とほとんど消費してしまっている。これは、C ソースコードを見ると分かるが、安易に左白線用の演算と右白線用の演算を if 文で切り替えてしまったからかもしれない?
次は、左白線検出用重みと右白線検出用重みを一緒の配列にしてみよう。
  1. 2016年07月27日 04:14 |
  2. 白線検出
  3. | トラックバック:0
  4. | コメント:0

コメント

コメントの投稿


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

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