パフォーマンスメトリクスの詳細#
はじめに#
パフォーマンスメトリクスは、精度と物体検出モデルの効率を評価するための重要なツールです。モデルが画像内の物体をどの程度効果的に識別し、位置を特定できるかを明らかにします。また、モデルが偽陽性と偽陰性をどのように処理しているかを理解するのにも役立ちます。これらの知見は、モデルのパフォーマンスを評価し、向上させるうえで重要です。このガイドでは、YOLO26に関連するさまざまなパフォーマンスメトリクス、その重要性、および解釈方法について説明します。
物体検出メトリクス#
まず、YOLO26にとって重要であるだけでなく、さまざまな物体検出モデルに幅広く適用できるメトリクスについて説明します。
-
Intersection over Union (IoU): IoUは、予測されたバウンディングボックスとグラウンドトゥルースのバウンディングボックスの重なりを定量化する指標です。物体の位置特定精度を評価するうえで、基本的な役割を果たします。
-
Average Precision (AP): APはPrecision-Recall曲線の下の面積を計算し、モデルのPrecisionとRecallのパフォーマンスを1つの値に集約します。
-
Mean Average Precision (mAP): mAPは、複数の物体クラスにわたるAP値の平均を計算することで、APの概念を拡張したものです。マルチクラス物体検出のシナリオで、モデルのパフォーマンスを包括的に評価するのに役立ちます。
-
PrecisionとRecall: Precisionは、すべての陽性予測に占める真陽性の割合を定量化し、偽陽性を避けるモデルの能力を評価します。一方、Recallは、実際のすべての陽性に占める真陽性の割合を計算し、あるクラスのすべてのインスタンスを検出するモデルの能力を測定します。
-
F1 Score: F1 ScoreはPrecisionとRecallの調和平均であり、偽陽性と偽陰性の両方を考慮しながら、モデルのパフォーマンスをバランスよく評価します。
YOLO26モデルのメトリクスの計算方法#
ここでは、上記の評価メトリクスを計算するために使用できるYOLO26のValidationモードについて説明します。
Validationモードの使用方法は簡単です。トレーニング済みモデルがあれば、model.val()関数を呼び出せます。この関数はValidationデータセットを処理し、さまざまなパフォーマンスメトリクスを返します。しかし、これらのメトリクスは何を意味し、どのように解釈すればよいのでしょうか。
出力の解釈#
model.val()関数の出力を分解し、出力の各セクションを理解しましょう。
クラス別メトリクス#
出力の1つのセクションでは、パフォーマンスメトリクスをクラス別に分類しています。この詳細な情報は、特に多様な物体カテゴリを含むデータセットで、各クラスに対してモデルがどの程度適切に機能しているかを理解する際に役立ちます。データセット内の各クラスについて、以下の情報が提供されます。
-
Class: 「person」、「car」、「dog」など、物体クラスの名前を示します。
-
Images: Validationセット内で、その物体クラスを含む画像の数を示します。
-
Instances: Validationセット内のすべての画像にわたって、そのクラスが何回出現するかを示します。
-
Box(P, R, mAP50, mAP50-95): 物体検出におけるモデルのパフォーマンスに関する情報を提供します。
-
P (Precision): 検出された物体の精度であり、検出のうち正しかったものがいくつあるかを示します。
-
R (Recall): 画像内の物体のすべてのインスタンスを識別するモデルの能力です。
-
mAP50: 0.50のIntersection over Union (IoU)しきい値で計算されたMean Average Precisionです。「簡単な」検出のみを考慮したモデルの精度を示します。
-
mAP50-95: 0.50から0.95までのさまざまなIoUしきい値で計算されたMean Average Precisionの平均です。異なる検出難易度におけるモデルのパフォーマンスを包括的に把握できます。
-
速度メトリクス#
特にリアルタイム物体検出のシナリオでは、推論速度は精度と同じくらい重要です。このセクションでは、前処理から後処理まで、Validationプロセスの各段階にかかった時間を分解して示します。
COCOメトリクス評価#
COCOデータセットでValidationを行うユーザー向けに、COCO評価スクリプトを使用して追加のメトリクスが計算されます。これらのメトリクスから、異なるIoUしきい値および異なるサイズの物体におけるPrecisionとRecallを把握できます。
可視化出力#
model.val()関数は数値メトリクスを生成するだけでなく、モデルのパフォーマンスをより直感的に理解できる可視化出力も生成します。期待される可視化出力は次のとおりです。
-
F1 Score Curve (
BoxF1_curve.png): さまざまなしきい値におけるF1 Scoreを表す曲線です。この曲線を解釈することで、異なるしきい値における偽陽性と偽陰性のバランスについて知見を得られます。 -
Precision-Recall Curve (
BoxPR_curve.png): あらゆるClassification問題に不可欠な可視化であり、さまざまなしきい値におけるPrecisionとRecallのトレードオフを示します。クラスが不均衡な場合に特に重要です。 -
Precision Curve (
BoxP_curve.png): 異なるしきい値におけるPrecision値をグラフで表したものです。しきい値の変化に伴ってPrecisionがどのように変化するかを理解するのに役立ちます。 -
Recall Curve (
BoxR_curve.png): 同様に、異なるしきい値にわたってRecall値がどのように変化するかを示すグラフです。 -
Confusion Matrix (
confusion_matrix.png): Confusion Matrixは結果を詳細に示し、各クラスについて真陽性、真陰性、偽陽性、偽陰性の数を表示します。 -
Normalized Confusion Matrix (
confusion_matrix_normalized.png): Confusion Matrixを正規化した可視化です。生の件数ではなく割合でデータを表します。この形式により、クラス間のパフォーマンスを簡単に比較できます。 -
Validation Batch Labels (
val_batchX_labels.jpg): Validationデータセット内の個別のバッチについて、グラウンドトゥルースラベルを示す画像です。データセットに基づく物体の種類とそれぞれの位置を明確に確認できます。 -
Validation Batch Predictions (
val_batchX_pred.jpg): ラベル画像とは対照的に、YOLO26モデルが各バッチに対して行った予測を表示します。これらをラベル画像と比較することで、モデルが物体を視覚的にどの程度適切に検出・分類しているかを簡単に評価できます。
検出、セグメンテーション、ポーズタスクでは、曲線プロットにメトリクスの種類を示すプレフィックスが付きます。検出ではBox*曲線、セグメンテーションではBox*とMask*の両方の曲線、ポーズではBox*とPose*の両方の曲線が出力されます。
結果の保存#
後で参照できるように、結果は通常runs/detect/valという名前のディレクトリに保存されます。
適切なメトリクスの選択#
評価に適したメトリクスの選択は、多くの場合、具体的なアプリケーションによって異なります。
-
mAP: モデルのパフォーマンスを幅広く評価するのに適しています。
-
IoU: 物体の正確な位置が重要な場合に不可欠です。
-
Precision: 誤検出の最小化を優先する場合に重要です。
-
Recall: 物体のすべてのインスタンスを検出することが重要な場合に不可欠です。
-
F1 Score: PrecisionとRecallのバランスが必要な場合に役立ちます。
リアルタイムアプリケーションでは、適時に結果を得るために、FPS (Frames Per Second)やレイテンシなどの速度メトリクスが重要です。
結果の解釈#
メトリクスを理解することが重要です。一般的に見られる低いスコアからは、次のようなことが考えられます。
-
Low mAP: モデルに全般的な改善が必要である可能性を示します。
-
Low IoU: モデルが物体の位置を正確に特定できていない可能性があります。異なるバウンディングボックス手法が役立つ場合があります。
-
Low Precision: モデルが存在しない物体を過剰に検出している可能性があります。信頼度しきい値を調整すると、これを減らせる場合があります。
-
Low Recall: モデルが実際の物体を見逃している可能性があります。特徴抽出の改善やデータ量の増加が役立つ場合があります。
-
Imbalanced F1 Score: PrecisionとRecallの間に大きな差があります。
-
Class-specific AP: ここでスコアが低い場合、モデルが苦手とするクラスを特定できます。
ケーススタディ#
実際の例を見ることで、これらのメトリクスが実務でどのように機能するかを明確に理解できます。
ケース1#
-
Situation: mAPとF1 Scoreは最適ではありませんが、Recallが良好である一方、Precisionは良好ではありません。
-
Interpretation & Action: 誤検出が多すぎる可能性があります。信頼度しきい値を厳しくすると減らせますが、Recallもわずかに低下する可能性があります。
ケース2#
-
Situation: mAPとRecallは許容範囲ですが、IoUが低い状態です。
-
Interpretation & Action: モデルは物体を適切に検出していますが、位置を正確に特定できていない可能性があります。バウンディングボックスの予測を改善すると役立つ場合があります。
ケース3#
-
Situation: 全体のmAPが適切であっても、一部のクラスのAPが他のクラスより大幅に低くなっています。
-
Interpretation & Action: これらのクラスはモデルにとってより難しい可能性があります。対象クラスのデータを増やすか、トレーニング中にクラス重みを調整すると効果的な場合があります。
つながりと協力#
熱心なユーザーや専門家のコミュニティを活用することで、YOLO26に関する取り組みをさらに発展させられます。学習、トラブルシューティング、ネットワーキングに役立つ方法を以下に紹介します。
幅広いコミュニティへの参加#
-
GitHub Issues: Ultralytics の GitHub リポジトリには、質問、バグ報告、新機能の提案を行えるIssues タブがあります。コミュニティとメンテナーがここで活発に活動しており、特定の問題に対するヘルプを得るのに最適な場所です。
-
Ultralytics Discord Server: UltralyticsにはDiscordサーバーがあり、他のユーザーや開発者と交流できます。
公式ドキュメントとリソース#
- Ultralytics YOLO26 Docs: 公式ドキュメントでは、YOLO26の包括的な概要に加え、インストール、使用方法、トラブルシューティングに関するガイドを提供しています。
これらのリソースは、さまざまな課題への対応を支援するだけでなく、YOLO26コミュニティにおける最新のトレンドやベストプラクティスを把握するのにも役立ちます。
まとめ#
このガイドでは、YOLO26に不可欠なパフォーマンスメトリクスについて詳しく説明しました。これらのメトリクスは、モデルがどの程度適切に機能しているかを理解するための鍵であり、モデルのファインチューニングを目指す人にとって重要です。改善に必要な知見を提供し、モデルが実際の状況で効果的に動作することを確実にします。
YOLO26とUltralyticsのコミュニティは非常に貴重な資産です。同じ分野の開発者や専門家と交流することで、標準的なドキュメントにはない知見や解決策を得られる可能性があります。物体検出に取り組む際は、学び続ける姿勢を保ち、新しい戦略を試し、得られた知見を共有してください。そうすることで、コミュニティ全体の知識に貢献し、その成長を支えられます。
FAQ#
Mean Average Precision (mAP)は、複数のクラスにわたるPrecisionとRecallを1つのメトリクスに集約するため、YOLO26モデルの評価に不可欠です。mAP@0.50はIoUしきい値0.50におけるPrecisionを測定し、物体を正しく検出するモデルの能力に焦点を当てます。mAP@0.50:0.95は、さまざまなIoUしきい値の範囲でPrecisionを平均し、検出パフォーマンスを包括的に評価します。mAPスコアが高いことは、モデルがPrecisionとRecallのバランスを効果的に取れていることを示します。これは、正確な検出と誤警報の最小化がともに重要な自動運転や監視システムなどのアプリケーションに不可欠です。
Intersection over Union (IoU)は、予測されたバウンディングボックスとグラウンドトゥルースのバウンディングボックスの重なりを測定します。IoU値は0から1の範囲で、高い値ほど位置特定精度が高いことを示します。IoUが1.0の場合は完全に一致していることを意味します。通常、mAPなどのメトリクスで真陽性を定義するために、IoUしきい値0.50が使用されます。IoU値が低い場合、モデルが物体の正確な位置特定に苦労していることを示します。これは、バウンディングボックス回帰を改善するか、トレーニングデータセットのアノテーション精度を高めることで改善できます。
F1 ScoreはPrecisionとRecallの調和平均を提供し、偽陽性と偽陰性の両方のバランスを取るため、YOLO26モデルの評価に重要です。不均衡なデータセットや、PrecisionまたはRecallのどちらか一方だけでは不十分なアプリケーションで特に有用です。F1 Scoreが高いことは、モデルが物体を効果的に検出しながら、検出漏れと誤警報の両方を最小限に抑えていることを示します。そのため、セキュリティシステムや医用画像などの重要なアプリケーションに適しています。
Ultralytics YOLO26は、リアルタイム物体検出において複数のメリットを提供します。
- Speed and Efficiency: 高速な推論向けに最適化されており、低レイテンシが求められるアプリケーションに適しています。
- High Accuracy: 高度なアルゴリズムにより、高いmAPおよびIoUスコアを実現し、PrecisionとRecallのバランスを取ります。
- Flexibility: 物体検出、インスタンスセグメンテーション、セマンティックセグメンテーション、Classificationなど、さまざまなタスクをサポートします。
- Ease of Use: ユーザーフレンドリーなインターフェース、充実したドキュメント、Ultralytics Platformなどのツールとのシームレスな統合(Platform Quickstart)を提供します。
これにより、YOLO26は自動運転車からスマートシティソリューションまで、さまざまなアプリケーションに適しています。
Precision、Recall、mAP、IoUなどのYOLO26のValidationメトリクスは、検出のさまざまな側面に関する知見を提供することで、モデルのパフォーマンスの診断と改善に役立ちます。
- Precision: 偽陽性の特定と最小化に役立ちます。
- Recall: 関連するすべての物体が検出されることを確実にします。
- mAP: パフォーマンスの全体像を示し、全般的な改善の方向性を導きます。
- IoU: 物体の位置特定精度のファインチューニングに役立ちます。
これらのメトリクスを分析することで、Precisionを改善するための信頼度しきい値の調整や、Recallを高めるためのより多様なデータの収集など、具体的な弱点に対処できます。これらのメトリクスの詳細な説明と解釈方法については、物体検出メトリクスを確認し、モデルを最適化するためにハイパーパラメータチューニングの実施も検討してください。