概要
本記事では、APIを使用した推論しきい値の設定方法について紹介します。
Vision では、プレビュー機能を用いて簡単にAIモデルの検知結果を確認することができます。この際にAIが50%以上の自信を持っている結果が表示されますが、APIを使用することで、この「50%」という値を調整することができるようになります。つまりは、検知結果のフィルターが可能になります。
推論しきい値とは?
まず、推論しきい値とはなんでしょうか?
作成したAIモデルは物体を検出した際に、ラベル名や座標の他にAIの確信度(0%~100%)も出力します。以下は推論実行APIをコールした際のレスポンスを一部抜粋したものですが、"score"に確信度が出力されています。
デフォルトは「確信度 (score) が50% (0.5) 以上の結果を出力する」という仕様になっています。
この「0.5」こそが推論しきい値であり、任意の値に設定することが可能です。
使用用途
対象業務の要件に合わせて推論しきい値を調整することで、以下のような効果が得られます。
しきい値を高く設定
<メリット>
・より精度の高い結果のみを出力可能
<デメリット>
・正しい検知結果も排除してしまう可能性あり
・結果、何も出力しないことも...
しきい値を低く設定
<メリット>
・検知結果の抜け漏れを防ぐことが可能
<デメリット>
・確信度の低い結果も拾うため、質の低い検知結果になりうる
・誤ったラベル含め、複数ラベルを検出する場合あり(後続処理で正しい検知結果を抽出する手間が生じる)
上記のように、しきい値設定が高すぎても低すぎても悪影響が出てしまうので、検証しながら対象業務の要件に合ったしきい値を見つけることが重要です。
推論しきい値の設定方法
それでは、具体的な推論しきい値の設定方法を説明します。
Learning Center Vision API にはいくつかの種類がありますが、推論しきい値は「推論実行API」で設定します。APIをコールする際、リクエストボディへ画像情報と共に推論しきい値の設定も追加してください。
{
"image": "string",
"label_option": [
{
"label_name": "cat",
"score_threshold": 0.9
},
{
"label_name": "dog",
"score_threshold": 0.8
}
]
}
label_option内の"label_name"にラベル名、"score_threshold"に推論しきい値を入力します。
上記のように設定することで、冒頭で例に挙げたレスポンスは次のように変化します。
"dog"に対する推論しきい値を80%に設定したので、約63%の確信度だった"dog"の検知結果は最終的なレスポンスから削除されています。