LoginSignup
0
1

More than 1 year has passed since last update.

DOBOT×AI 分類結果が一定確率以下の場合、無視する

Last updated at Posted at 2022-02-21

以下のテキストでは、AIを用いた画像認識により対象物を分類し、ロボットアームにより仕分けを行っています。
DOBOT Magician AIx画像認識xロボットアーム制御

分類した結果として、最も該当している(それらしい、確率が高い)ラベルが出力されるため、ぎりぎり該当したようなものも学習したいずれかのラベルに分類されてしまいます。そのような状態を回避したい場合、学習データをもっと集めて、より良いモデルを学習させる方法もありますが、今回の記事では、該当している確率が低いものは無視するようにプログラムを修正したいと思います。

修正前

classifer.py
            # 分類する(3-10)
            result = model.predict_classes(image)
            proba  = model.predict_proba(image)
            result_num = int(result[0])

修正前は、似ている対象物が異なるラベルとして出力されることがあります。
以下の画像では、左下のパーツは本来「beam_3」が正しいラベルとして学習していますが、「beam_2x4」という別のパーツとして認識しています。

修正後

classifer.py
            # 分類する(3-10)
            result = model.predict_classes(image)
            proba  = model.predict_proba(image)

            proba_check = False
            for p in proba[0]:
                if p >= 0.95: # 確率が95%以上の場合、フラグを立てる
                    proba_check = True

            if proba_check != True: # 95%以上のものがなければcontinueする
                continue

            result_num = int(result[0])

分類結果として出力されているそれぞれのラベルである確率を順番に確認し、95%以上のものがなければ以降の処理をスキップするように修正しています。
以下の画像のように95%に満たないものは判別結果として表示されません。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1