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ビットにまとめてある) |
|
最初のページへ
目次へ戻る
|