FC2カウンター FPGAの部屋 Kerasを使用したMNIST CNNで手書き文字認識5(実機確認2)
FC2ブログ

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

FPGAの部屋

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

Kerasを使用したMNIST CNNで手書き文字認識5(実機確認2)

”Kerasを使用したMNIST CNNで手書き文字認識4(実機確認)”の続き。

前回は、SDK でPYNQボードをコンフィギュレーションし、アプリケーションソフトの mnist_conv_soft_test.elf を起動してPYNQボードで動作を確認した。今回はアプリケーションソフトを動作させて、自分で書いた手書き数字を認識させてみよう。

SDK で Xilinx メニューから Program FPGA を選択して、FPGA をコンフィギュレーションして、mnist_conv_soft_test.elf を右クリックし、右クリックメニューからRun As -> 1 Launch on Hardware (System Debugger) を選択して、アプリケーションソフトをRun するとHMDI out にカメラ画像が出力された。
keras_minst_cnn_18_180629.jpg

一番下の段の手書き数字を認識させよう。
最初に 1 にピンクの四角枠を合わせて 1 を認識させる。
keras_minst_cnn_19_180629.png

ハードウェアのCNN の認識時間は約 1.03 ms でソフトウェアでは、35.00 ms だった。ハードウェアの方はVivado HLS 2018.2 でのレイテンシとほぼ同じだった。ただし、四角枠の位置を調整してもどうしても 1 のはずが 3 と誤認されてしまう。ソフトウェアは以前のCNN で特徴マップが 10 個のものを使用している。こちらは、きちんと 1 と認識されている。

次に 2 を認識させよう。
keras_minst_cnn_20_180629.png

こちらは 2 と認識した。

3 を認識させる。
keras_minst_cnn_21_180629.png

3 も認識できた。

4 を認識させた。
keras_minst_cnn_22_180629.png

4 もどう位置を調整しても 8 と誤認されてしまう。

5 を認識させた。
keras_minst_cnn_23_180629.png

5 は問題無く認識できている。

6 を認識させた。
keras_minst_cnn_24_180629.png

6 は 8 と誤認された。

7 を認識させた。
keras_minst_cnn_25_180629.png

7 は 3 と誤認された。

8 を認識させた。
keras_minst_cnn_26_180629.png

8 は問題無く認識された。

9 を認識させた。
keras_minst_cnn_27_180629.png

9 は問題無く認識された。

0 を認識させた。
keras_minst_cnn_28_180629.png

0 も問題なく認識できた。

1, 4, 6, 7 が誤認してしまう。以前の 10 個の特徴マップのCNN では、正常に認識しているので、手書き数字は大丈夫だと思うのだが。。。量子化の精度、および飽和演算に問題があるのか?はたまた過学習になっているのかを検証するために、今回の特徴マップが 3 個の時の float 演算のCNN を動作させてみよう。これが問題無く認識できているようならば、量子化の精度、および飽和演算に問題があるということになる。
  1. 2018年06月30日 05:19 |
  2. PYNQ
  3. | トラックバック:0
  4. | コメント:0

コメント

コメントの投稿


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

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