2-08 Pythonの変更はこれで終了(認識率95%台)

●変更後のPythonを走らせる

 ここで入力画像をRGB565にしてビット数を削減、ここでリミッタを設けて層間データのビット数を削減しました。これらの影響でどれくらい認識率が劣化するか見てみましょう。

 図2‐40は変更したPythonコードをJupyter Labで走らせた結果です。認識率は
95.954%となり、小数の場合は98%台→整数化後は97%台→更に95%台と若干落ちました。Pythonの変更はこれで終了です。

図2-40 95%台の認識率で先に進む

赤色でActual, Predと書かれた2枚

 最後に画像が25枚表示され、それぞれの正解(Actual)と推論(Pred)ラベルが書かれています。25枚のうち2枚は不正解(
赤色)であることが分かります(図2‐41)。

図2‐41 2枚不正解(赤色)


●「認識率95%」を組み込むとこんなものかと実感できる

 この状態で「FPGA+カメラモジュール」に実装すれば、「認識率95%台のリアルタイム道路標識認識装置」となります(こんな感じになります)。

●演算の最終結果を見てみる

 lay6out_sample_00.csv(6層目、最終出力)が生成されているので見てみましょう。全結合層なので出力チャネルは一つ、要素数は43になります。
 最大値は293、左から26番目なので、推論結果は26番です。

図2‐42 6層目の出力。これだけ正の数。後は負

CSVファイルは57番目の画像を入力した際の値

 入力画像はTestフォルダの
00057.pngです(図2‐41の左上の画像)。図1‐42にあるように26.pngは信号機の標識なので正解していることが分かります。


●以上のようにビット数削減したPythonコードをここに置きます。正解率は95%台。main_pred.pyを実行すると以下のファイルが生成されます

入力画像1枚のデータ Rin_int.csv, Gin_int.csv, Bin_int.csv
入力画像1枚目の中間層出力 lay1out_00...15, lay2out_00...31, lay3out_00...63, lay4out_00...127, lay5out
入力画像20枚の最終層出力 lay6out_sample_00...19
入力画像20枚のデータ RGB565.csv (この中に20枚ぶんの画像データ、RGBを16ビットにまとめてある)

最初のページへ

目次へ戻る