学習済みモデルを評価する
Model Evaluation を使って、テストデータセットでのモデルの性能を確認できます。
概要
モデル評価では次のことがわかります:
本番メトリクスエクスプローラー。モデルを実行する最適な信頼度しきい値を見つけるのに役立ちます。
モデル改善の推奨事項。モデルの精度を高める方法を提案します。
クラス別の性能。モデルがさまざまなクラスをどの程度うまく識別できるかを示します。
混同行列。モデルが得意なクラスや苦手なクラスを見つけるのに使えます。
インタラクティブなベクトルエクスプローラー。モデルがうまくいく画像やうまくいかない画像のクラスタを特定できます。
モデル評価を使うと、モデルの改善点を特定できます。
モデル評価は、有料ユーザーによって Roboflow に学習済みとしてアップロードされた、または Roboflow で学習されたすべてのバージョン管理済みモデルに対して自動的に実行されます。数百枚の画像のデータセットでは評価の実行に数分かかる場合があり、数千枚以上の大規模データセットでは数時間かかることがあります。
対応プロジェクトタイプ
モデル評価は、Object Detection、Instance Segmentation、Classification、Semantic Segmentation の各プロジェクトをサポートしています。
Semantic Segmentation では、主要指標は mIoU (mean Intersection-over-Union)で、mAP ではありません。すべての指標(precision、recall、F1)は、インスタンスごとではなくピクセル単位で計算されます。クラス別の内訳には、各クラスの IoU、precision、recall、F1、および最適な信頼度しきい値が表示されます。混同行列の値は、オブジェクト数ではなくピクセル数を表します。
Webアプリ
モデル評価を開く
モデルの混同行列とベクトルエクスプローラーを見つけるには、プロジェクト内の任意の学習済みモデルを開きます。次に、"View Evaluation" ボタンをクリックします:

ウィンドウが開き、混同行列とベクトル分析を表示できます。
本番メトリクスエクスプローラー
本番メトリクスエクスプローラーでは、考えられるすべての信頼度しきい値におけるモデルの Precision、Recall、F1 スコアを表示します。この情報はグラフで示されます。
これらの統計をもとに、本番メトリクスエクスプローラーは「最適な信頼度」を推奨します。これは、Precision/Recall/F1 スコアのトレードオフが最も良くなるしきい値です。
モデル評価が完了すると、最適な信頼度しきい値がモデルの推論リクエストのデフォルトとして自動的に適用されます。クラス別しきい値が利用可能な場合は、それも適用され、グローバルしきい値は独自の値を持たないクラスのフォールバックとして使用されます。
なお、個別の推論リクエストでは、 confidence パラメータを明示的に渡すことで、信頼度しきい値を上書きできます。

スライダーをドラッグすると、異なる信頼度しきい値での F1/Precision/Recall の値を確認できます:

モデル改善の推奨事項
モデル評価の「モデル改善の推奨事項」セクションには、モデルの精度を高める方法に関する提案が一覧表示されます。これらの改善提案は、モデルで計算された混同行列の結果に基づいています。(混同行列の詳細については、このページの後半を参照してください)。
モデル改善の推奨事項機能では、次のような提案が可能です:
多くの偽陰性を予測するモデルを改善する方法。
多くの偽陽性を予測するモデルを改善する方法。
どのクラスがよく混同されるか(誤識別されるか)。
どのクラスに精度向上のためにより多くのデータが必要か。
テストセットまたは検証セットが小さすぎる可能性がある場合。
その他。

クラス別の性能
クラス別の性能チャートでは、データセット内のすべてのクラスにわたる正しい予測、誤分類、偽陰性、偽陽性の数を示します。
この情報を使うと、モデルがどのクラスをよく識別でき、どのクラスの識別が苦手かを一目で確認できます。

データセットに多くのクラスがある場合は、「All Classes」ドロップダウンを開いて強調表示したいクラスを選ぶことで、チャートを特定のクラスに絞り込めます:

Confidence Threshold スライダーを動かすと、このチャートが異なる信頼度しきい値でどう変わるかも確認できます:

デフォルトでは、このチャートには推奨される最適な信頼度しきい値が使用されます。
混同行列
混同行列は、モデルがさまざまなクラスでどの程度うまく機能するかを示します。
混同行列は、学習済みモデルを使ってテストセットと検証セットの画像を実行することで計算されます。その後、モデルの結果はデータセットのアノテーションにある「ground truth」と比較されます。
混同行列ツールを使うと、次のことを特定できます:
モデルがうまく機能するクラス。
モデルがオブジェクトに対して誤ったクラスを識別するクラス(偽陽性)。
モデルが、実際には存在しないオブジェクトを識別してしまうケース(偽陰性)。
以下は混同行列の例です:

モデルが多くのクラスを検出する場合、スクロールバーが表示され、混同行列を移動できます。
デフォルトでは、混同行列にはモデルに対して計算された最適なしきい値で実行したときの性能が表示されます。
Confidence Threshold スライダーを使って信頼度しきい値を調整できます。スライダーを変更すると、混同行列、precision、recall が更新されます:

混同行列の各ボックスをクリックすると、対応するカテゴリにどの画像が含まれるかを確認できます。
たとえば、「False Positive」列の任意のボックスをクリックすると、ground truth データには存在しないオブジェクトが識別された画像を特定できます。

個々の画像をクリックすると、ground truth(アノテーション)とモデル予測を切り替えられるインタラクティブ表示に入ります:

"Ground Truth" をクリックするとアノテーションを、"Model Predictions" をクリックするとモデルの出力を表示できます。
HTTP API
モデル評価は、Version のテスト分割におけるモデルの性能を把握するものです。クラス別指標、信頼度しきい値の曲線、画像埋め込みのクラスタリング、画像ごとの予測、および改善提案が含まれます。Object Detection と Instance Segmentation では主要指標は mAP、Semantic Segmentation では mIoU です。評価は学習完了時に自動生成され、アプリから手動で再実行することもできます。
Model Evaluations API を使うと、アプリの評価ページに表示される内容をすべて読み取れます。UI の各パネルは専用エンドポイントに対応しています:
認証
すべてのエンドポイントには、 model-eval:read スコープを持つ API キーが必要です。クエリパラメータとして、または Bearer トークンとして Authorization ヘッダーに渡してください。
よくあるエラー
401
未認証
API キーがないか無効です
404
model_eval_not_found
評価が存在しないか、別のワークスペースに属しています
409
model_eval_not_done
評価が完了していません。パネルデータはまだ利用できません
400
invalid_confidence
confidence クエリパラメータが整数ではありません [0, 100]
400
invalid_split
split クエリパラメータが、このエンドポイントで許可されている値のいずれでもありません
モデル評価の一覧
ワークスペース内のモデル評価を一覧表示します。軽量なプロジェクションを返します。特定の評価の主要指標については、次を参照してください モデル評価を取得.
クエリパラメータ
project
文字列
URL スラッグでプロジェクトを絞り込みます(例: chess-pieces-fmhpz)
version (別名 versionId)
文字列
特定のバージョンに絞り込みます(例: "4")
model (別名 modelId)
文字列
特定のモデル ID の評価に絞り込みます
status
列挙型
次のいずれか running, done, failed。不明な値は 400.
limit
整数
ページサイズ。デフォルト 50、最大 200
次のうち最大1つまで project / version / model が各呼び出しで設定できます(最も具体的な条件が優先されます: model > version > project)。組み合わせは 400 invalid_filter_combination で拒否され、ストレージインデックスの上限を保ちます。
レスポンス
project はプロジェクトの URL スラッグであり、REST API が URL パスで使用するのと同じ識別子です(/:workspace/:project/...)。評価 UI へディープリンクするには: https://app.roboflow.com/{workspace}/{project}/evaluation/{versionId}.
モデル評価を取得
ID を指定して単一のモデル評価を取得します。完了した評価では、レスポンスに summary オブジェクトが含まれ、主要指標が返されます。実行中または失敗した評価では、軽量な形のみが返されます。どの主要指標が入るかはタスクタイプによって異なります - mAP は検出系タスクで、 mIoU は Semantic Segmentation です。
レスポンス(完了済み評価)
レスポンス(実行中または失敗)
同じフィールドですが、 summary ブロックは含まれません。
注記
mAPは IoU 0.5 における平均適合率(map50)です。これはnullで、検出以外の評価タスク(例: 分類、Semantic Segmentation)ではmIoUは前景のマクロ平均 Intersection-over-Union です。これは Semantic Segmentation の評価でのみ設定され、nullそれ以外ではprecisionとrecallは、テスト分割に対する F1 最適信頼度しきい値で報告されます。evalIdは、各パネルのレスポンスに埋め込まれているのと同じ識別子です -modelEvals.getpayload は構造的には任意のパネル payload のスーパーセットなので、summaryで拡張されたmodelEvals.getものとgetMapResultsのレスポンスは、同じクライアントコードパスでレンダリングできます。projectはプロジェクトの URL スラッグであり、REST API が URL パスで使用するのと同じ識別子です。評価 UI へディープリンクするには:https://app.roboflow.com/{workspace}/{project}/evaluation/{versionId}.projectはnullプロジェクトが削除されている場合です。
Map Results
評価の主要指標の詳細を返します。レスポンスの形はタスクタイプによって異なります:
Object detection / instance segmentation - IoU 0.5 / 0.5-0.95 / 0.75 における mAP を、オブジェクトサイズ別およびクラス別に分解して返します。
Semantic segmentation - スプリットごとの mIoU、precision、recall、F1(ピクセルレベル)に加え、クラス別 IoU と最適信頼度しきい値を返します。
レスポンスの taskType フィールドは、どの形を期待すべきかを示します: "object-detection-like" または "semantic-segmentation".
これはアプリの スプリットごとのメトリクス パネルが読み取るデータです。
レスポンス(Object Detection / Instance Segmentation)
レスポンス(Semantic Segmentation)
注記
レスポンスの
taskTypeフィールドはレスポンスの形を判別します。スプリット内容を解析する前に必ず確認してください。検出:
map50_95は、IoU しきい値 0.5 から 0.95 までを 0.05 刻みで平均した mAP です(COCO 標準)。オブジェクトサイズのバケットはnullそのサイズのインスタンスがスプリットに含まれていない場合はperClassの下にクラス名をキーとして表示されます。Semantic segmentation: すべての指標は、前景クラスに対するピクセルレベルのマクロ平均です(背景は除外)。
miouは mean Intersection-over-Union です。optimalThresholdはクラスごとの F1 最適信頼度しきい値です。値0.0は有効であり、モデルが argmax でピークになることを意味します。
信頼度スイープ
スプリットごと(およびクラスごと)の信頼度しきい値別の指標曲線と F1 最適しきい値を返します。precision/recall のトレードオフを描画したり、デプロイ時のしきい値を選んだりするのに役立ちます。
これはアプリの 本番メトリクスエクスプローラー パネルが読み取るデータです。
レスポンス
注記
perThresholdのキーは、10進文字列で表された信頼度しきい値で、通常は0.01ごとに0.00から0.99.optimalThresholdが、そのスプリットで F1 を最大化するしきい値です。スプリット内の
perClassのクラス別エントリは、入れ子のperClass.
クラス別の性能
を除いて同じ形を持ちます。
Object detection / instance segmentation クラス別
map50,map50_95,map75、precision、recall、F1、および最適なしきい値を返します。Semantic segmentation クラス別
iou、precision、recall、F1、および最適なしきい値(ピクセルレベル)を返します。
レスポンスの taskType フィールドは、どの形を期待すべきかを示します。
これはアプリの クラス別の性能 パネルが読み取るデータです。
クエリパラメータ
split
列挙型
次のいずれか train, valid, test。デフォルト test. all は はここでは 有効ではありません。クラス別指標はスプリット間で集約できません。
レスポンス(Object Detection / Instance Segmentation)
レスポンス(Semantic Segmentation)
注記
taskTypeクラスごとのフィールドセットを区別します。検出クラスにはmap50/map50_95/map75; セマンティックセグメンテーションのクラスにはiouとクラスIDの代わりに。optimalThresholdは、confidence sweep から得られるクラスごとのF1最適信頼度しきい値です。precision,recall、およびF1は、そのクラスごとの最適しきい値で報告されます。検出では、mAPフィールドは
nullその分割にそのクラスのインスタンスが存在しない場合。セマンティックセグメンテーションでは、すべての指標がピクセル単位です。
optimalThresholdの0.0は有効です。
混同行列
画像ごとの予測から導出された集計済み混同行列を返します。各セル matrix[actual][predicted] は、正解クラスが 実際 であり、モデルが 予測したインスタンス数を表します。セマンティックセグメンテーションの評価では、値はインスタンス数ではなくピクセル数を表します。
これはアプリの 混同行列 パネルが読み取るデータです。
クエリパラメータ
split
列挙型
次のいずれか train, valid, test、または all。デフォルト test.
confidence
整数
Confidenceしきい値の割合 [0, 100]。既定では正規ファイル(通常は 20).
レスポンス
上の例では、信頼度しきい値0.2で:
の20件すべてが
Car-rims正しく分類されました(matrix[0][0] = 20)モデルは80件の偽陽性を生成しました。つまり、
Car-rims実際のクラスがbackground(matrix[2][0] = 80)テスト分割には
music-noteのインスタンスはありません。
注記
confidenceレポートのどの信頼度ごとの派生版を集計するかを選択します。しきい値が異なると、異なる行列になります。split=alltrain、valid、test 全体の生カウントを集計します。
ベクトル分析
評価の画像埋め込みクラスタリング結果を返します。UMAPで射影した埋め込みをHDBSCANでクラスタリングし、クラスタごとの集計指標を含みます。モデルの性能が体系的に良い、または悪い画像群を見つけるのに役立ちます。
これはアプリの ベクトル分析 パネルが読み取るデータです。
クエリパラメータ
confidence
整数
Confidenceしきい値の割合 [0, 100] (既定では正規レポート)。
レスポンス
注記
クラスタID
-1はノイズ/未クラスタ化バケット(HDBSCANの慣例)です。- どの密な領域にも当てはまらない画像。平均適合率と平均再現率はクラスタ内のすべての画像で平均化されます。画像ごとの埋め込みとクラスタ割り当ては、次を通じて公開されます: 画像ごとの予測.
画像ごとの予測
画像ごとの予測レコードを返します。TP/FP/FNの件数、画像ごとのprecision/recall/F1、画像のクラスタIDと2D埋め込み、そして生の混同行エントリを含みます。ページ分割あり。
これはアプリの 画像ごとの予測 パネルが読み取るデータです。
クエリパラメータ
split
列挙型
次のいずれか train, valid, test、または all。デフォルト all.
confidence
整数
Confidenceしきい値の割合 [0, 100] (読み取る信頼度ごとのレポート派生版を選択します)。
limit
整数
ページサイズ。デフォルト 200、最大 1000.
offset
整数
返却前にこの件数のレコードをスキップします。既定 0.
レスポンス
注記
画像IDはRoboflowの元画像IDです。- 他のRoboflow APIとの照合に便利です。混同行エントリは[actualClassIdx, predictedClassIdx, count]のタプルです。クラスインデックスは、次と同じ配列を参照します: 混同行列のクラス.2D埋め込みは、次で使用されるUMAPで射影された2D座標です: ベクトル分析 プロット。異なる
confidence値を返すと、異なる統計が得られます。予測はしきい値に応じて変化します。任意のconfidence値の照会が成功するのは、評価パイプラインが生成済みのしきい値に限られます。未生成の派生版は404 report_not_found.ページネーションのコスト:各ページで完全な
model_eval_results.jsonファイルをストレージから再読み込みし、サーバー側でスライスします。非常に大きなimage_results配列を含むevalでは、より大きなlimit値(最大1000)を、多数の小さなページより優先して、ページごとの固定コストを最小化してください。
推奨事項
完了した評価から生成されたモデル改善の推奨事項を返します。- クラス不均衡の警告、検出漏れのパターン、データセットに追加すべき内容や再学習方法に関するその他の実行可能な提案を含みます。
これはアプリの モデル改善の推奨事項 パネルが読み取るデータです。
このエンドポイントは 読み取り専用です。推奨事項は、学習完了の副作用として(または従来のアプリ内「推奨事項を更新」アクション経由で)生成されます。まだ生成されていない場合、レスポンスは 200 {"generated": false} - ただし、これは はここでは a 409 EVAL_NOT_DONE。評価は は 完了しています。ただし、オプションの推奨事項のサイド出力がないだけです。その他のパネルエンドポイント(map-results, confidence-sweep、など)は 409 EVAL_NOT_DONE その基盤データが欠落している場合に返されます。なぜなら、そのデータは評価に不可欠だからです。推奨事項はそうではありません。
レスポンス(推奨事項あり)
レスポンス(未生成)
最終更新
役に立ちましたか?