FC2カウンター FPGAの部屋 Vivado HLS を使用した車の白線検出9(Canny フィルタ3)

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

FPGAの部屋

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

Vivado HLS を使用した車の白線検出9(Canny フィルタ3)

Vivado HLS を使用した車の白線検出8(Canny フィルタ2)”の続き。

前回、ガウシアンフィルタの 5x5 では、DSP リソース使用量が ZYBO で使用できる DSP 数をオーバーしてしまうため、3x3 に変更した。しかし、よくよく考えてみると、ガウシアンフィルタや Sobel フィルタなどは、現在はカラーでファイルを掛けているが、グレー変換して1色でやっても同じことだと気がついたので、それでやってみたら、案の定、5x5 のガウシアンフィルタでもリソース使用量が減って、ZYBO に入るようになった。

canny_filter() 関数の変数宣言部を下に示す。

RGB_IMAGE src(rows, cols);
RGBSINGLE_IMAGE src_bw(rows, cols);
RGBSINGLE_IMAGE src_blur(rows, cols);
RGBSINGLE_IMAGE src1(rows, cols);
RGBSINGLE_IMAGE src2(rows, cols);
RGBSINGLE_IMAGE sobel_gx_g(rows, cols);
RGBSINGLE_IMAGE sobel_gy_g(rows, cols);
RGB_IMAGE sobel_gx(rows, cols);
RGB_IMAGE sobel_gy(rows, cols);
RGB_IMAGE_16 grad_gd(rows, cols);
RGB_IMAGE suppressed(rows, cols);
RGB_IMAGE canny_edges(rows, cols);


hls::AXIvideo2Mat() した後で、

hls::CvtColor<HLS_RGB2GRAY>( src, src_bw );

を行って、”HLS_8UC1”に変換し、5x5 のガウシアンフィルタを行い、Sobel フィルタ処理が終了した後で、

hls::CvtColor( sobel_gx_g, sobel_gx );
hls::CvtColor( sobel_gy_g, sobel_gy );

を行い、”HLS_8UC3”に戻している。

この修正を加えて、

hls::GaussianBlur<5,5>( src_bw, src_blur );

を使用して C コードの合成を行った。結果を示す。
Lane-Detecting_53_160524.png

Lane-Detecting_54_160524.png

DSP48E の使用数が 38 個になって、ZYBO のリソースで収まるようになった。

更に自分で撮影した写真で白線検出をやってみた。C シミュレーションの結果を示す。
まずは元の写真を示す。
Lane-Detecting_55_160524.jpg

HLS ビデオライブラリを使用した Canny フィルタを使用して、OpenCV でHough 変換を実行した結果を示す。白線検出はできているようだ。
Lane-Detecting_56_160524.jpg

OpenCV を使って、白線検出した結果を示す。こちらも白線検出できているようだ。
Lane-Detecting_57_160524.jpg

次に C/RTL コシミュレーションを行った。
Lane-Detecting_58_160525.png

640 x 480 ピクセルの画像を Canny フィルタ処理するのに 318060 クロックかかている。318060 / (640x480) ≒ 1.035 となり、1 倍近いので、1 クロックで 1 ピクセルを Canny フィルタ処理できていることになる。

Vivado で C/RTL コシミュレーションの波形を表示した。
Lane-Detecting_60_160525.png

波形を拡大してみると、、input_r_TVALID, input_r_TREADY, output_r_TVALID, output_r_TREADY がほとんど 1 になっているのが分かる。
Lane-Detecting_59_160525.png
  1. 2016年05月24日 04:49 |
  2. Vivado HLS
  3. | トラックバック:0
  4. | コメント:0

コメント

コメントの投稿


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

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