FC2カウンター FPGAの部屋 MNISTの畳み込みニューラルネットワークで自分の手書き数字を認識する3(カメラ画像)
FC2ブログ

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

FPGAの部屋

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

MNISTの畳み込みニューラルネットワークで自分の手書き数字を認識する3(カメラ画像)

MNISTの畳み込みニューラルネットワークで自分の手書き数字を認識する2”の続き。

前回はGIMP2 で幅 2 ピクセルの鉛筆ツールを使用して書いた手書き数字を認識させてみた。今回は、手書き数字をカメラで撮影した画像を切り出して認識させてみよう。

まずは、久しぶりにZYBO をブートして、”Zybot のカメラ画像をBMPファイルに変換するアプリケーションを作成した”の cam_capture_bmp.cpp をコンパイルして、実行ファイルの cam_capture_bmp を生成した。
cam_capture_bmp を起動して、BMP画像を取得した。
hand_draw_num_32_170627.png

取得した bmp_file0.bmp を示す。表示ツールは gthumb を使用している。
hand_draw_num_33_170627.png

WinSCP を使用して、bmp_file0.bmp をZYBOからパソコンに持ってきた。
GIMP2 を立ち上げて、手書き数字を切り出して 28 x 28 のBMPファイルにした。
hand_draw_num_34_170627.png

0 (test0.bmp) の画像を示す。
hand_draw_num_35_170627.png

手書き数字が大きいときは、32 x 32 位に切り取って、GIMP2 の「画像」メニューの「画像の拡大・縮小」を選択して、28 x 28 に縮小する。
BMPファイルにエクスポートするときは、「互換性のオプション」の「色空間の情報を書き込まない」にチェックを入れて、「詳細設定」は「24 ビット R8 G8 B8」のラジオボタンをクリックしてから、エクスポートボタンをクリックする。
hand_draw_num_36_170627.png

必要なBMPファイルができた。
hand_draw_num_37_170627.png

VirtualBox 上のUbuntu 16.04 のVivado HLS 2016.4 に持って行った。
hand_draw_num_38_170627.png

Vivado HLS で C シミュレーションを行った。
hand_draw_num_39_170627.png

レポートを示す。

INFO: [SIM 2] *************** CSIM start ***************
INFO: [SIM 4] CSIM will launch GCC as the compiler.
Compiling ../../../mnist_conv_nn_tb_bmp.cpp in debug mode
Compiling ../../../mnist_conv_nn10.cpp in debug mode
Generating csim.exe
test0.bmp
id = 0, max_id_hw = 0
id = 0, max_id_sw = 0
test1.bmp
id = 1, max_id_hw = 1
id = 1, max_id_sw = 1
test2.bmp
id = 2, max_id_hw = 3
id = 2, max_id_sw = 2
test3.bmp
id = 3, max_id_hw = 3
id = 3, max_id_sw = 3
test4.bmp
id = 4, max_id_hw = 4
id = 4, max_id_sw = 4
test5.bmp
id = 5, max_id_hw = 5
id = 5, max_id_sw = 5
test6.bmp
id = 6, max_id_hw = 6
id = 6, max_id_sw = 6
test7.bmp
id = 7, max_id_hw = 7
id = 7, max_id_sw = 7
test8.bmp
id = 8, max_id_hw = 8
id = 8, max_id_sw = 8
test9.bmp
id = 9, max_id_hw = 4
id = 9, max_id_sw = 4
INFO: [SIM 1] CSim done with 0 errors.
INFO: [SIM 3] *************** CSIM finish ***************


ハードウェアでは 2 が 3 に間違っていて、ソフトウェア、ハードウェア共に、9 を 4 に間違っていた。
まあ、精度はいまいちだが、一応、カメラで撮影した手書き数字を認識できているようなので、本格的にPYNQボードに組み込んで、カメラで撮影した画像から手書き数字を認識させてみようかな?
  1. 2017年06月27日 05:13 |
  2. DNN
  3. | トラックバック:0
  4. | コメント:0

コメント

コメントの投稿


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

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