やりたいこと
以下のテキストでは、AIを用いた画像認識により対象物を分類し、ロボットアームにより仕分けを行っています。
上記テキストでは、仕分けを行う環境上で判別する対象物の学習データの収集を行っていますが、AIによる画像識別では、実動作環境以外で収集した画像データを学習に含めることもあると思います。
今回は、スマホのカメラで撮影した実動作環境ではない画像を学習データとし、判別が可能かを検証しました。
前提条件
- 以下の記事で修正したプログラムを使用し、カメラ画像全体を学習済モデルに入れて、判別結果を出力する形式を取っています。
- 対象物を置く位置(=DOBOTが対象物を拾いに行く座標)は固定
※ 切り出しをしない(領域を取得しない)ので対処物のカメラ座標が取得できないため
できたもの
判別対象
今回は対象物として、3種類の板ガムを使用しました。
学習データとして、以下のような画像を各種30枚程度集めました。
動作
問題なく判別は出来ていますが、やや確率が低めです。
学習データを増やすことで改善できるかもしれません。
プログラム
撮影した画像の拡張子がjpgだったため、jpg画像も学習データとして読み込めるように以下の部分を追加しました。
(元々のプログラムではpng画像のみ)
train.py
+ print("png : ", len(glob.glob(dir1 + "/*.png")))
+ print("jpg : ", len(glob.glob(dir1 + "/*.jpg")))
files = glob.glob(dir1 + "/*.png")
+ files += glob.glob(dir1 + "/*.jpg")
random.shuffle(files)