概要
本記事ではAIモデルの精度を改善するための手法について、以下3つの観点から説明します。
-
学習データ
-
学習設定テンプレート
-
閾値調整
本記事を読むことで今後修正作業が少なくなり、より効率的にAIモデルを作成することができるようになります。
学習データ
用意する画像を増やしてみる
AIに学習させる画像データが少ないと、学習させた画像に関しては精度が出るかもしれませんが、学習させていない画像を適用した際に精度が全く出ない可能性があります。
特に20-50枚といった数の画像で「精度が出ない」と感じている場合は、画像の枚数を増やすだけで精度が向上する可能性が高いです。まずは100枚ほどから試してみましょう。
※学習開始には20件以上の学習データ(各ラベルにつき2件以上)が必要です
いろいろなパターンを学習させてみる
上記のように画像の枚数を増やすだけで精度が向上する可能性もありますが、もし実際に検知/分類対象の物体が角度や向きによって写り方が多様な場合は、単純に画像枚数を増やすだけだと解決できないかもしれません。例えば「柴犬」を検知する場合、以下のように「正面から」、「横から」、「走っている」など同じ「柴犬」でも様々な写り方が存在します。
「正面から」だけの画像を多く学習させても、検知対象が「走っている」場合、同じ「柴犬」でも検知できない可能性があります。
ですので検知対象物体が様々な写り方をする可能性がある場合は、上記のように異なるパターンの画像を学習させることが重要です。
撮影環境を整える
特に小さな傷や異物の付着など検知対象が微細な場合、物体への光の当たり方や画像の解像度などを考慮しないと、検知の精度が落ちてしまう可能性があります。
実際は異物の付着があり「不良品」と検知して欲しいのに「良品」と判断してしまうケースでは、光量を増やしたり、画像の解像度を上げるなどの対応をしてみましょう。
アノテーション
アノテーションは、上記の柴犬のように対象物が枠内にギリギリ収まるような囲み方が理想です。
詳しくはこちらをご覧ください。
また、一貫性のあるアノテーションを心がけることも重要です。
こちらの記事も併せてご参考にしてください。
学習設定テンプレート
「物体検知」に限りますが、学習設定テンプレートを変更することで精度が向上する可能性があります。詳細はこちらをご参照ください。
先ほどの不良品の例を挙げると、検知対象が極めて小さいので「書籍モデル」に設定することで精度の改善が見られる場合があります。
閾値調整
Vision には尤度(=AIの自信度)という数値があり、指定した尤度以下の結果に関しては「検知した」と見做さない、という処理が可能です。
「柴犬」を検知したが、尤度が0.6(60%の自信度)ほどだった場合、他の犬種を誤って「柴犬」と検知している可能性が高いです。
このようなケースを踏まえて、例えば尤度の下限(閾値)を0.8とすると、上記のようなパターンは弾かれるので検知精度が向上する可能性があります。
閾値は、推論実行APIをコールする際に、label_optionというパラメータにて指定可能です。
詳細はAPIマニュアルをご参照ください。