15-02 lisa-cropped FPGAにプログラミング

●重み係数、バイアス、カメラエミュレータ、推論パターンのHDLコピー

 GTSRB(道路標識認識)を lisa-cropped(信号機認識)に変更してFPGAにプログラムします。

 まず、ここで作成したQuartusプロジェクトのフォルダを開き、このアーカイブ内のHDLと置き換えます(図15‐20)。

図15‐20 lisa-cropped用に自動生成したHDLをコピー

●HDLを置き換えて論理合成

 Quartus Primeからプロジェクトを開きます。図15‐21のようにHDLが置き換わっているか確認するとよいでしょう(*1)。確認後、Start Compilationボタンをクリック。

(*1)conv_layer6.vhdのBIAS_XXを確認。最終層のバイアスはGTSRBでは43個あったが、lisa-croppedでは7個になっている(BIAS_07以降は0)


図15‐21 conv_layerX.vhdはバイアスだけが変わっていくる

●そのままでは閾値が低すぎる

 エラーなくコンパイルが終了したら、ここに倣ってProgrammer→NiosII SBTと進みます。

 一通り手順を終えると、図15‐22のように推論ラベルパターンだらけになっているかもしれません。GTSRBと違ってlisa-croppedはクラスが7種と少ないせいか、判定の閾値を高く設定する必要があるようです。

図15‐22 推論ラベルパターンで埋め尽くされている

●マイコンのCソースでしきい値を高くする

 閾値(THRESH)はNiosIIマイコンで設定します。NiosII SBTを開いて、Cソースを図15‐23のように変更します(*2、3)。

(*2)Quartusの方で何か変更があった場合は以下を試してRunするとよい。
●app01を右クリックし、Nios II -> BSP Editor でGenerateをクリック、その後Build Project

(*3)誤認識が多い(信号機がないのにGO等と出てくる)場合はTHRESHを高くする。HDLではなくCソース(マイコン)で設定すると論理合成の必要がないので素早く変更できる

図15‐23 0x32(50) -> 0xC0(192) と4倍近く大きくする


●夜の方が認識性能が良い(昼間は今一つ)

 しきい値を高くすることにより推論パターンの出現頻度が減ります。図15‐23は緑・黄・赤のLEDを光らせてCMOSカメラを向けたようすです。部屋の照明を暗くするとよく認識されます(*4)。

(*4)lisa-croppedの画像データを見ると信号の背景が黒いものが多い。


図15‐24 GO, WarNing, STop と緑色で上書き


目次へ戻る