5‐01 HDLの全体構成

●カメラ+アダプタボード+FPGAボードでリアルタイム動画処理!

 図5‐01に道路標識認識システムの全体像を示します。CMOSカメラはOV5642モジュール(OmniVisionのイメージセンサ搭載)で、CAM_CTRLはそれを制御するブロックです。

 LineIn_CTRLはカメラとVGAの水平同期をとる回路、SDRAM_CTRLは垂直同期をとる回路ですです(*1)。

(*1)ラインメモリはFPGA内部SRAMを使用、フレームメモリはFPGA外部のSDRAM(IS42S16320F、64MB、ISSI社)を使う。

 VGA_CTRLはVGAに動画を映すための回路ですが、同図の右下のように「推論結果」もミックスされ、動画とともにVGAに映し出されます。

図5-01 HDL化するとこのようなモジュール構成になる

●320usの周期で推論する

 上図の「CNN推論回路」がGTSRB(ドイツの道路標識認識)をHDL化したものになります。LineOut_CTRLから画像データが送られますが、その周期(CNNの1ブロックが送られる時間)は
320us(VGAの水平同期の10回ぶん)になります。

 同図の右下の写真のように、CNNのブロックは30×30画素で、320usの周期で各ブロックが次から次へとCNN推論回路に入力されます。すなわち
その周期内でCNN1ブロックの推論を終える必要があります。それができれば320usが道路標識認識の「スループット」になります(*2)

(*2)VGAは640x480画素あり、それを30x30画素のCNNブロックに分けて推論する(ここ参照)。そのブロックの周期がスループット(320us)となり、画面全体の推論はもっと遅くなる。

●各層の間に画像メモリが入る

 図5‐02はCNN推論回路の内部ブロック図です。1〜4層目は畳み込み(CNN)、5&6層目はDense(全結合型)です。各層間には「画像メモリ」がありそれを介してデータが渡されます。
 6層目の出力はJudge(判定回路)で推論結果となり、VGA_CTRLに出力されます。

図5‐02 画像メモリは4ラインぶん(黄色)と2フレームぶん(水色)の2種類

●各層は順番に動くのではなく同時に動く

 前述のようにCNN推論回路には320us毎に30×30画素のデータが次々と入力されます。したがって各層はその期間内に演算を終える必要があります(*3)。

(*3)各層は並列動作(パイプライン)するので「各層単体」で320us未満であればよい(1〜6までの「全層トータル」の時間ではない)


次のページへ


目次へ戻る