Meet YOLO26: next-gen vision AI.

Link to this sectionモデルの評価とファインチューニングに関する知見#

YOLOモデルのトレーニングが完了したら、次のステップはモデルのパフォーマンスを測定し、ギャップを埋めるために微調整(ファインチューニング)を行うことです。評価にはmAPIoUといった指標を使用して精度を定量化し、微調整ではトレーニングパラメータを調整して弱点を補強し、モデルがプロジェクトの目的を達成できるようにします。このガイドでは、主要な評価指標、その読み方、およびモデルの能力を高めるための微調整テクニックについて解説します。



Watch: Insights into Model Evaluation and Fine-Tuning | Tips for Improving Mean Average Precision

評価と微調整は、コンピュータビジョンのプロジェクトワークフローの終盤に行われます。トレーニングが進行し、モデルの精度、効率、およびデプロイ準備ができていることを確認する必要がある段階です。

Link to this section主要な評価指標#

モデルのパフォーマンスはさまざまな指標によって測定されます。これらのパフォーマンス指標は、モデルが目的を達成していることを確認するための改善指針となる、明確な数値的洞察を提供します。

Link to this section信頼度スコア (Confidence Score)#

信頼度スコアは、検出されたオブジェクトが特定のクラスに属しているというモデルの確信度を表します。スコアは0から1の範囲で、数値が高いほど自信が高いことを示します。信頼度スコアは予測のフィルタリングに役立ちます。指定されたしきい値を超える信頼度スコアを持つ検出のみが有効とみなされます。

予測結果が表示されませんか?

推論を実行した際に予測結果が表示されず、他の項目をすべて確認済みの場合は、信頼度しきい値(confidence threshold)を下げてみてください。しきい値が高すぎて、モデルが有効な予測を無視している場合があります。しきい値を下げることで、モデルはより多くの可能性を考慮できるようになります。これは最終的なプロジェクト目標には適合しないかもしれませんが、モデルの能力を確認し、どのように微調整すべきかを判断するための良い方法です。

Link to this sectionIntersection over Union (IoU)#

Intersection over Union (IoU) is a metric in object detection that measures how well the predicted bounding box overlaps with the ground truth bounding box. IoU values range from 0 to 1, where one stands for a perfect match. IoU is essential because it measures how closely the predicted boundaries match the actual object boundaries.

Intersection over Union Overview

Link to this sectionMean Average Precision#

Mean Average Precision(mAP)は、物体検出モデル全体のパフォーマンスを測定します。各オブジェクトクラスの検出精度を評価し、それらのスコアを平均化することで、モデルがどれほど正確に物体を特定し分類できるかを示す単一の数値を算出します。

一般的に、以下の2つのmAP指標がよく報告されます:

  • mAP@.5: 0.5という単一のIoUしきい値における平均精度を測定します。この指標は、比較的緩やかな精度要件でモデルが正しく物体を見つけられるかを確認します。完璧な配置を必要とせず、物体がおおよそ正しい位置にあるかどうかに焦点を当て、モデルが一般的に物体を検出する能力に優れているかを確認するのに役立ちます。
  • mAP@.5:.95: 0.5から0.95まで0.05刻みで算出された複数のIoUしきい値におけるmAP値を平均化します。この指標はより詳細で厳格です。さまざまな厳格さのレベルでモデルがどれだけ正確にオブジェクトを見つけられるかを包括的に把握できるため、正確なオブジェクト検出が必要なアプリケーションに特に役立ちます。

その他のmAP指標には、より厳格なIoUしきい値である0.75を使用するmAP@0.75や、さまざまなサイズのオブジェクト全体で精度を評価するmAP@small、medium、largeなどがあります。

Mean average precision mAP metric

Link to this sectionYOLO26モデルの評価#

学習済みのYOLO26モデルは、バリデーションモードを使用して評価できます。各指標がどのように計算され解釈されるかについての詳細は、YOLO26パフォーマンス指標ガイドを参照してください。

Link to this section可変画像サイズの処理#

モデルをさまざまなサイズの画像で評価することで、多様なデータセットに対するパフォーマンスを理解するのに役立ちます。rect=trueのバリデーションパラメータは、アスペクト比ごとに画像をグループ化し、各バッチを適合する最小の形状にパディングするため、長方形の画像も正方形に強制されることなく評価されます。

imgszパラメータは、バリデーション中に使用される画像サイズを正方形として設定します。明示的に設定しない場合、YOLO26はモデルの設定に保存された値(公式の学習済みモデルでは640、またはカスタムチェックポイントの学習サイズ)を再利用します。rect=trueの場合、YOLO26は長い辺をimgszに制限し、短い辺をストライドの倍数になるようにパディングしてアスペクト比を保持します。imgszは、データセットの寸法と利用可能なGPUメモリに基づいて調整してください。

Link to this sectionYOLO26指標へのアクセス#

モデルのパフォーマンスを詳細に把握するために、Pythonの数行のコードで特定の評価指標にアクセスできます。以下のスニペットは、モデルを読み込み、バリデーションを実行し、最も有用な指標を表示します。

使用方法
from ultralytics import YOLO

# Load a model
model = YOLO("yolo26n.pt")

# Run validation on your dataset
results = model.val(data="coco8.yaml")

# Overall metrics
print("mAP50-95:", results.box.map)  # mAP at IoU 0.50:0.95
print("mAP50:", results.box.map50)  # mAP at IoU 0.50
print("mAP75:", results.box.map75)  # mAP at IoU 0.75
print("Mean precision:", results.box.mp)
print("Mean recall:", results.box.mr)
print("Fitness:", results.box.fitness())  # weighted score used for model selection

# Per-class metrics
print("Class indices evaluated:", results.box.ap_class_index)
print("Per-class mAP50-95:", results.box.maps)

# Per-image precision, recall, F1, TP, FP, and FN
print("Per-image metrics:", results.box.image_metrics)

# Per-stage timing breakdown in milliseconds per image
print("Timing breakdown (ms/image):", results.speed)

fitness()はメソッドであり括弧を付けて呼び出す必要がある一方、mapmap50mpなどの指標は直接アクセス可能なプロパティであることに注意してください。

results.box.image_metrics属性は、ファイル名をキーとする画像ごとの辞書であり、各画像におけるIoU 0.5でのprecisionrecallf1tpfpfnを保持しています。前処理、推論、損失計算、および後処理のタイミングは、results.speed辞書で個別に報告されます。これらを組み合わせることで、モデルがどの画像で苦戦しているかを特定し、それに応じて微調整を行うことができます。

Link to this sectionモデルの微調整#

微調整(ファインチューニング)は、学習済みモデルのパラメータを調整し、特定のタスクやデータセットでのパフォーマンスを向上させる手法です。モデルの再学習とも呼ばれ、現実世界で遭遇するデータに対してより優れた理解と予測を可能にします。評価結果に基づき、いくつかの主要なパラメータとテクニックに注意を払いながらモデルを再学習させ、最適な結果を目指します。

Link to this sectionより高い学習率から始める#

通常のトレーニング中、学習率は最初は低く設定され、初期の更新を安定させるために最初の数エポックで徐々に増加します。微調整の際は、モデルはすでに事前学習から有用な特徴を引き継いでいるため、このウォームアップをスキップして、新しいデータへの適応を直ちに開始することができます。

Set the warmup_epochs training argument to 0 in model.train() to disable the warmup phase. Training then continues from the pretrained weights at the configured base learning rate (lr0) instead of ramping up to it, adjusting to the nuances of your new data.

学習率のウォームアップなしでの微調整
from ultralytics import YOLO

# Load a pretrained model
model = YOLO("yolo26n.pt")

# Fine-tune with the warmup phase disabled
model.train(data="coco8.yaml", epochs=10, warmup_epochs=0)

Link to this section小さなオブジェクトのための画像タイリング#

画像のタイル分割は、小さな物体の検出精度を向上させることができます。大きな画像を小さなセグメントに分割する(例:1280x1280の画像を複数の640x640セグメントに分ける)ことで、元の解像度を保持し、高解像度の断片からモデルに学習させることができます。Ultralyticsは、SAHIタイル推論を通じて推論時にこれをサポートしています。タイル状の画像でトレーニングを行う場合は、各セグメントに合わせてラベルを正しく調整してください。

Link to this section結論#

評価と微調整を行うことで、学習済みモデルは信頼性の高い、実運用可能なモデルへと変わります。mAPやIoUのような指標が弱点を露呈させ、対象を絞ったパラメータ変更がそれに対処します。まずはバリデーションモードでモデルのベンチマークを行い、次に上記の微調整テクニックを適用して、新しいパラメータ、手法、データセットを用いて繰り返し試行してください。途中で質問がある場合は、Ultralytics GitHubリポジトリUltralytics Discordサーバーでコミュニティに問い合わせてください。

Link to this sectionよくある質問 (FAQ)#

Link to this sectionYOLO26モデルのパフォーマンスを評価するための主要な指標は何ですか?#

YOLO26モデルのパフォーマンスを評価するための重要な指標には、信頼度スコア、Intersection over Union (IoU)、およびMean Average Precision (mAP) があります。信頼度スコアは、検出された各オブジェクトクラスに対するモデルの確実性を測定します。IoUは、予測されたバウンディングボックスがグラウンドトゥルースとどれだけ重なっているかを評価します。Mean Average Precision (mAP) はクラス全体の精度スコアを集約するもので、mAP@.5とmAP@.5:.95は、さまざまなIoUしきい値に対して一般的に使用される2つの指標です。これらの指標の詳細については、YOLO26パフォーマンス指標ガイドを参照してください。

Link to this section事前トレーニング済みのYOLO26モデルを特定のデータセット用にファインチューニングするにはどうすればよいですか?#

Fine-tuning a pretrained YOLO26 model involves adjusting its parameters to improve performance on a specific task or dataset. Start by evaluating your model with metrics, then set the warmup_epochs training argument to 0 in model.train() so the learning rate starts at the configured base value immediately instead of ramping up. During evaluation, parameters like rect=true help handle varied image sizes effectively. For more detailed guidance, refer to our section on fine-tuning your model.

Link to this sectionYOLO26モデルの評価時に可変画像サイズをどのように処理すればよいですか?#

評価時に可変画像サイズを処理するには、YOLO26のrect=trueパラメータを使用します。これにより、すべての画像を正方形に強制するのではなく、アスペクト比で画像をグループ化し、各バッチをパディングします。imgszパラメータはバリデーション用の画像サイズを設定します。これを上書きしない場合、YOLO26はモデルの保存値(公式の事前学習済みモデルでは640)を再利用します。データセットとGPUメモリに合わせてimgszを調整してください。詳細は、「可変画像サイズの処理」セクションをご覧ください。

Link to this sectionYOLO26モデルのMean Average Precisionを向上させるためにどのような実践的なステップが取れますか?#

YOLO26モデルのMean Average Precision (mAP) を向上させるには、いくつかのステップが必要です。

  1. ハイパーパラメーターの調整: さまざまな学習率、バッチサイズ、および画像拡張を試してください。
  2. データ拡張: MosaicやMixUpなどの手法を使用して、多様なトレーニングサンプルを作成します。
  3. 画像のタイル分割: 大きな画像を小さなタイルに分割して、小さな物体の検出精度を向上させます。

具体的な戦略については、「モデルの微調整」の詳しいセクションを参照してください。

Link to this sectionPythonでYOLO26モデルの評価指標にアクセスするにはどうすればよいですか?#

バリデーション実行後、Pythonを使用してYOLO26モデルの評価指標にアクセスできます:

使用方法
from ultralytics import YOLO

# Load a model
model = YOLO("yolo26n.pt")

# Run validation
results = model.val(data="coco8.yaml")

# Access key metrics
print("Mean average precision at IoU=0.50:", results.box.map50)
print("Mean average precision at IoU=0.50:0.95:", results.box.map)
print("Mean recall:", results.box.mr)
print("Class indices evaluated:", results.box.ap_class_index)

これらの指標を分析することで、YOLO26モデルの微調整と最適化が可能になります。詳細については、「YOLOパフォーマンス指標」ガイドをご覧ください。

コメント