”
ガボール・フィルタ (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 コードの合成を行った。
まずは、プロジェクトを示す。

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

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

2 つの写真に肉眼で違いは見られない。右の白線が強調されているのがわかる。
次に、C コードの合成を行った。

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