18-03 Pythonの変更点(白埋めによる正方形化など、続き)
●クラスIDとパスをCSVファイルにまとめる
図18‐22は評価(推論)用画像のクラスIDとパス(場所)を読み込む部分、GTSRBではTest.csvだったものがTestMovObj.csvに変わっています。 |
図18-22 movobj_float.pyを検索
●これがないと正解か不正解か分からない
TestMovObj.csvには各画像のクラスIDとパスが書かれています(図18‐23)。プログラムはこのファイルを参考にして評価用画像を見に行き、推論結果とクラスIDを比較し、正解不正解を判定します(*1)。
(*1)このCSVは評価用画像の情報のみ。評価用画像と訓練用画像の分け方はここ参照 |
図18-23 各画像ファイルの場所と正解値
●def shiroumeで関数定義されている
"Shiro"で検索すると図18‐24のような「白埋め」の関数が現れます。元々長方形である画像の左右(または上下)を白色で埋めて正方形化するものです(*2)。
(*2)白埋めのプログラムはこのサイトから頂きました |
図18-24 白埋めなので(255,255,255)
●ヒトやバイクが太くなるのを防止
Pythonプログラム内で画像を30×30画素にしますが、単なる「リサイズ」だと図18‐25のようにバイクや人物が横に引き延ばされ、認識率の悪化に繋がります。 |
図18-25 形が変わるのは好ましくない
●本来の形状を保ったまま学習→推論
したがって上記関数により画像の左右を白色で埋め、正方形にしてから30×30画素にリサイズします。物体の形(縦に長い/短い)も特徴の一つとして大事なので、この方が性能が上がりそうです。 |
図18-26 30×30になった画像
●小数で99.9%以上ある
変更したPythonプログラム(movobj_float.py)をJupyter Labで走らせると図18‐27のように99.93%になりました(走らせるたびに微妙に変わる)。この後「整数化」や「ビット削減・リミッタ追加」と進みます。 |
: : : :
: : : :
図18‐27 小数だとほとんど正解する
次のページへ
目次へ戻る
|