CNN推論回路を入れて完成!
●スライドスイッチ2つでモード変更

 DE1-SoCにはスライドスイッチが10個あります(以降SW0〜9)。そのうちSW0〜1をモード設定用に使用します(下表)。

  スライドスイッチは基板の縁側でL、内側でHになる
名前 Lのとき Hのとき
SW0 EMUMODE ノーマル(カメラ画像入力) エミュレータ(GTSRBテスト画像入力)
SW1 THRUMODE ノーマル(推論ON) スルー動画映すだけ(推論OFF)


●まずは普通に動画を映してみる

 DE1-SoCのスイッチを写真01(b)のようにSW1だけHに設定すると「
動画映すだけモード」になります。すると同写真(a)のようにCMOSカメラからのカラー動画がVGAに映されます。
(a)
(b)
  写真01 SW0がL、SW1が
Hだとカメラ動画が映るだけ


●カメラの代わりにGTSRBテスト画像を映す

 次にSW0を写真02(b)のようにHにすると「
エミュレータモード」になります。同写真(a)のようにGTSRBテスト画像がVGAに映されます(*1)。


(*1)ROM内にGTSRBテスト画像データがあり、図01のようにカメラ画像データに代わって入力される。ここのPythonプログラムで使用した画像と同じもの。
(a)
(b)

  写真02 GTSRB画像二十個が横に並ぶ。それを画面下まで繰り返す


  図01 カメラ画像とGTSRB画像をスイッチで切り替え


GTSRBテスト画像を推論してみる

 ここでSW1を写真03(b)のようにLにすると推論がONになります。同写真(a)のようにGTSRBテスト画像の推論結果が
緑色で上書きされます。26, 9, 16, 38, 10, 4,…と正解していることを確認します(*2)。

(*2)右の方に1つ推論されない画像があるが、演算結果が一定の閾値を超えない場合はそうなる。
(a)
(b)
  写真03 緑色の数字が推論結果


●カメラ動画から推論してみる

 SW0を写真04(b)のようにLに戻してカメラ動画に戻し、同写真(a)のように道路標識のサンプルを紙に印刷してかざしてみます。推論結果が
緑色で動画に上書きされます(*3)。

(*3)緑色の「格子」の中に数字が入るように映すとうまく推論される。また、誤認識が気になる場合はここTHRESHの値を上げてみる
(a)
(b)

  写真04 紙を上下左右に動かしてもちゃんと推論される!

●GTSRB画像を使ってFPGA内部演算を検証

 写真03の状態でSignalTapというロジックアナライザで検証してみましょう(ここにその手順)。FPGA内部の信号の値がPython, Excel, 論理シミュレーションと一致しているのを確認できます。

最初のページへ

目次へ戻る