FC2カウンター FPGAの部屋 2018年07月07日

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

FPGAの部屋

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

Kerasを使用したMNIST CNNで手書き文字認識11(特徴マップが10個のMNISTのCNNを再学習3)

Kerasを使用したMNIST CNNで手書き文字認識10(特徴マップが10個のMNISTのCNNを再学習2)”の続き。

前回は、Vivado HLS 2018.2 で mnist_conv_nn10_hlss_ko_dma プロジェクトを作成して、IP 化を行い、PYNQ_MNIST_CNN10_182 フォルダのVivado 2018.2 プロジェクトを作成し、論理合成、インプリメンテーション、ビットストリームの生成を行った。今回は、SDK を起動して、PYNQボードをコンフィギュレーションし、アプリケーションソフトを起動して、手書き数字の認識を行った。

まずは、PYNQ_MNIST_CNN10_182 フォルダのVivado 2018.2 プロジェクトで、ハードウェアをエクスポートし、SDK を起動した。
keras_minst_cnn_67_180702.png

PYNQボードの電源ON、SDK からビットファイルをダウンロードし、SDK で mnist_conv_soft_test.c を起動した。
手書き数字の画像を示す。
keras_minst_cnn_18_180629.jpg

まずは、1 を認識させた。
keras_minst_cnn_54_180702.png

正常に認識できた。ハードウェアの認識時間は、約 2.05 ms だった。ソフトウェアの認識時間は、約 35.0 ms だった。約 17 倍ハードウェアの方が高速ということになる。

2 を認識させた。
keras_minst_cnn_55_180702.png

正常に認識できた。

3 を認識させた。
keras_minst_cnn_56_180702.png

正常に認識できた。

4 を認識させた。
keras_minst_cnn_57_180702.png

正常に認識できた。

5 を認識させた。
keras_minst_cnn_58_180702.png

正常に認識できた。

6 を認識させた。
keras_minst_cnn_59_180702.png

正常に認識できた。

7 を認識させた。
keras_minst_cnn_60_180702.png

正常に認識できた。

8 を認識させた。
keras_minst_cnn_61_180702.png

正常に認識できた。

9 を認識させた。
keras_minst_cnn_62_180702.png

正常に認識できたが、少し上にスペースを空ける必要があった。

0 を認識させた。
keras_minst_cnn_63_180702.png

正常に認識できた。

すべての数字が正常に認識できた。ただし、9 は少し字が大きかったのか?すこし上にスペースを空ける必要があったくらいで、気持ちよく認識できた。MNISTの手書き数字のデータを学習して、カメラで撮影した自分の手書き数字の画像を認識させる実験では、特徴マップが 10 個のCNN を使う必要があった。カメラで撮影した自分の手書き数字の画像を使用して学習すれば、もう少し小さい特徴マップ数でも行けるかもしれない?
なお、特徴マップ 5 個の時は 3 個の時よりも間違っていた。
  1. 2018年07月07日 04:58 |
  2. PYNQ
  3. | トラックバック:0
  4. | コメント:0