FC2カウンター FPGAの部屋 2016年05月24日
FC2ブログ

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