モデルの評価と微調整に関する洞察
はじめに
コンピュータ・ビジョン・モデルをトレーニングしたら、それを評価し、最適に動作するように改良することが不可欠です。モデルをトレーニングするだけでは十分ではありません。モデルが正確で、効率的で、コンピュータビジョンプロジェクトの目的を達成していることを確認する必要があります。モデルを評価し、微調整することで、弱点を特定し、精度を向上させ、全体的なパフォーマンスを高めることができます。
見るんだ: モデル評価とファインチューニングへの洞察|平均平均精度向上のヒント
このガイドでは、コンピュータビジョンプロジェクトのこのステップをよりアプローチしやすくする、モデルの評価と微調整に関する洞察を共有します。評価指標を理解し、微調整テクニックを実装する方法について説明し、モデルの能力を向上させるための知識を提供します。
メトリクスを用いたモデル性能の評価
モデルの性能を評価することは、そのモデルがどれだけ効果的に機能するかを理解するのに役立つ。パフォーマンスを測定するために、さまざまな測定基準が用いられます。これらのパフォーマンス測定基準は、明確な数値的洞察を提供し、モデルが意図した目標を確実に達成するための改善の指針となります。いくつかの主要な測定基準を詳しく見てみましょう。
コンフィデンス・スコア
確信度スコアは、検出された物体が特定のクラスに属するというモデルの確信度を表す。スコアの範囲は0から1で、スコアが高いほど信頼度が高いことを示す。信頼スコアは予測のフィルタリングに役立ち、指定されたしきい値以上の信頼スコアを持つ検出のみが有効とみなされます。
簡単なヒント推論を実行するとき、予測が表示されず、他のすべてをチェックした場合は、信頼スコアを下げてみてください。しきい値が高すぎて、モデルが有効な予測を無視してしまうことがあります。スコアを下げることで、モデルはより多くの可能性を考慮できるようになります。これはプロジェクトの目標に合わないかもしれませんが、モデルができることを確認し、微調整の方法を決めるには良い方法です。
ユニオン交差点
Intersection over Union(IoU)は、予測されたバウンディングボックスがグランドトゥルースのバウンディングボックスとどの程度重なっているかを測定する、オブジェクト検出におけるメトリックである。IoU値は0から1の範囲で、1は完全一致を意味します。IoUは、予測された境界が実際のオブジェクトの境界にどれだけ近いかを測定するため、不可欠です。
平均平均精度
平均平均精度(mean Average Precision:mAP)は、オブジェクト検出モデルがどの程度優れているかを測定する方法です。これは、各オブジェクトクラスの検出精度を調べ、これらのスコアを平均し、モデルがどれだけ正確にオブジェクトを識別・分類できるかを示す総合的な数値を与える。
2つの具体的なmAP指標に注目してみよう:
- mAP@.5:IoU (Intersection over Union)しきい値0.5での平均精度を測定。この指標は、モデルがより緩い精度要件でオブジェクトを正しく見つけることができるかどうかをチェックする。完璧な配置を必要とせず、オブジェクトがおおよそ正しい位置にあるかどうかに焦点を当てます。これは、モデルが一般的にオブジェクトを見つけるのが得意かどうかを確認するのに役立ちます。
- mAP@.5:.95:0.05刻みで0.5から0.95までの複数のIoUしきい値で計算されたmAP値を平均する。この指標はより詳細で厳密です。この指標は、異なる厳密さのレベルにおいて、モデルがどの程度正確に物体を見つけることができるかの全体像を示し、正確な物体検出を必要とするアプリケーションに特に有用です。
その他のmAPメトリクスには、0.75というより厳しいIoUしきい値を使用するmAP@0.75、異なるサイズのオブジェクトにわたって精度を評価するmAP@small、medium、largeがある。
YOLO11 モデルの性能評価
YOLO11 については、検証モードを使用してモデルを評価することができます。また、YOLO11 パフォーマンス・メトリクスとその解釈方法について詳しく解説したガイドもぜひご覧ください。
コミュニティでよくある質問
YOLO11 モデルを評価する際、いくつかの問題にぶつかるかもしれません。コミュニティでよくある質問に基づき、YOLO11 モデルを最大限に活用するためのヒントをいくつかご紹介します:
可変画像サイズの処理
さまざまなサイズの画像でYOLO11 モデルを評価することで、多様なデータセットに対する性能を理解することができます。モデルを rect=true
検証パラメータ、YOLO11 は、画像サイズに基づいて各バッチのネットワークのストライドを調整し、モデルを単一のサイズに強制することなく、長方形の画像を処理できるようにします。
について imgsz
バリデーションパラメータは、画像リサイズの最大寸法を設定します。データセットの最大寸法と、GPU の利用可能なメモリに基づいて調整できます。ただし imgsz
セット、 rect=true
は、ストライドを動的に調整することで、さまざまな画像サイズを効果的に管理することができます。
YOLO11 メトリクスへのアクセス
YOLO11 モデルのパフォーマンスをより深く理解したい場合、Python のコードを数行書くだけで、特定の評価メトリクスに簡単にアクセスすることができます。以下のコード・スニペットは、モデルをロードし、評価を実行し、モデルの性能を示す様々なメトリクスを出力します。
使用方法
from ultralytics import YOLO
# Load the model
model = YOLO("yolo11n.pt")
# Run the evaluation
results = model.val(data="coco8.yaml")
# Print specific metrics
print("Class indices with average precision:", results.ap_class_index)
print("Average precision for all classes:", results.box.all_ap)
print("Average precision:", results.box.ap)
print("Average precision at IoU=0.50:", results.box.ap50)
print("Class indices for average precision:", results.box.ap_class_index)
print("Class-specific results:", results.box.class_result)
print("F1 score:", results.box.f1)
print("F1 score curve:", results.box.f1_curve)
print("Overall fitness score:", results.box.fitness)
print("Mean average precision:", results.box.map)
print("Mean average precision at IoU=0.50:", results.box.map50)
print("Mean average precision at IoU=0.75:", results.box.map75)
print("Mean average precision for different IoU thresholds:", results.box.maps)
print("Mean results for different metrics:", results.box.mean_results)
print("Mean precision:", results.box.mp)
print("Mean recall:", results.box.mr)
print("Precision:", results.box.p)
print("Precision curve:", results.box.p_curve)
print("Precision values:", results.box.prec_values)
print("Specific precision metrics:", results.box.px)
print("Recall:", results.box.r)
print("Recall curve:", results.box.r_curve)
結果オブジェクトには、前処理時間、推論時間、損失、後処理時間などの速度メトリクスも含まれます。これらのメトリクスを分析することで、YOLO11 モデルのパフォーマンスを向上させるための微調整や最適化が可能になり、特定のユースケースに対してより効果的になります。
微調整の仕組み
ファインチューニングとは、事前に訓練されたモデルを、特定のタスクやデータセットでのパフォーマンスを向上させるために、そのパラメータを調整することである。モデルの再トレーニングとしても知られるこのプロセスにより、モデルは実世界のアプリケーションで遭遇する特定のデータをよりよく理解し、結果を予測できるようになります。最適な結果を得るために、モデル評価に基づいてモデルを再トレーニングすることができます。
モデルを微調整するためのヒント
モデルの微調整とは、最適なパフォーマンスを達成するために、いくつかの重要なパラメータとテクニックに細心の注意を払うことを意味します。ここでは、そのプロセスを通してあなたを導くために不可欠なヒントをいくつかご紹介します。
高い学習率から始める
通常、最初の学習エポックでは学習率を低く設定し、学習プロセスを安定させるために徐々に上げていく。しかし、モデルはすでに以前のデータセットからいくつかの特徴を学習しているため、すぐに高い学習率で開始する方が有益である。
YOLO11 モデルを評価する際、以下のように設定できます。 warmup_epochs
バリデーション・パラメータを warmup_epochs=0
学習率が高くなりすぎないようにするためである。このプロセスに従うことで、新しいデータのニュアンスに調整しながら、与えられた重みから学習が続けられる。
小さなオブジェクトのイメージ・タイリング
画像のタイリングにより、小さな物体の検出精度を向上させることができる。1280x1280の画像を複数の640x640のセグメントに分割するなど、大きな画像を小さなセグメントに分割することで、元の解像度を維持し、モデルは高解像度の断片から学習することができます。YOLO11 を使用する場合は、これらの新しいセグメントのラベルを正しく調整してください。
地域社会との関わり
他のコンピュータ・ビジョン愛好家とアイデアや質問を共有することで、プロジェクトの障害に対する創造的な解決策がひらめくことがあります。ここでは、学び、トラブルシューティングし、つながるための優れた方法をいくつか紹介します。
ヘルプとサポートを探す
- GitHub Issues: YOLO11 GitHub リポジトリを探索し、Issues タブで質問、バグ報告、機能提案を行ってください。コミュニティとメンテナーは、あなたが遭遇した問題をサポートします。
- Ultralytics Discordサーバー: Ultralytics Discord サーバーに参加して、他のユーザーや開発者とつながり、サポートを受け、知識を共有し、アイデアを出し合いましょう。
公式文書
- Ultralytics YOLO11 ドキュメント様々なコンピュータビジョンタスクやプロジェクトに関する包括的なガイドや貴重な洞察については、 YOLO11 の公式ドキュメントをご覧ください。
最終的な感想
コンピュータビジョンモデルの評価と微調整は、モデルの展開を成功させるための重要なステップです。これらのステップは、モデルが正確で、効率的で、アプリケーション全体に適していることを確認するのに役立ちます。可能な限り最高のモデルをトレーニングする鍵は、継続的な実験と学習です。パラメータを微調整し、新しいテクニックを試し、異なるデータセットを探索することをためらわないでください。実験を続け、可能性の限界を押し広げましょう!
よくあるご質問
YOLO11 モデルのパフォーマンスを評価するための主な指標は?
YOLO11 モデルの性能を評価するために、重要なメトリクスには信頼スコア、Intersection over Union (IoU)、平均平均精度 (mAP) が含まれる。Confidence Scoreは、検出された各オブジェクトクラスに対するモデルの確実性を測定します。IoUは、予測されたバウンディングボックスがどれだけグラウンドトゥルースと重なっているかを評価します。平均平均精度(mAP)は、クラス間の精度スコアを集約し、mAP@.5とmAP@.5:.95 は、IoUのしきい値を変化させるための2つの一般的なタイプです。これらのメトリクスの詳細については、YOLO11 パフォーマンス・メトリクス・ガイドをご覧ください。
特定のデータセット用に事前に訓練されたYOLO11 モデルを微調整するにはどうすればよいですか?
事前に訓練されたYOLO11 モデルの微調整には、特定のタスクやデータセットでのパフォーマンスを向上させるために、そのパラメータを調整することが含まれます。メトリクスを使ってモデルを評価することから始め、次に warmup_epochs
パラメータを0に設定する。以下のようなパラメータを使用する。 rect=true
様々な画像サイズを効果的に扱うためにより詳細なガイダンスについては、以下のセクションを参照してください。 YOLO11 モデルの微調整.
YOLO11 モデルを評価する際、可変画像サイズをどのように扱えばよいでしょうか?
評価中に可変画像サイズを扱うには rect=true
YOLO11これは、画像サイズに基づいて、バッチごとにネットワークのストライドを調整するものである。このパラメータは imgsz
パラメータは画像のリサイズの最大寸法を設定します(デフォルトは640)。調整 imgsz
を、データセットとGPU メモリに合わせて変更してください。詳細は 可変画像サイズの取り扱いに関するセクション.
YOLO11 モデルの平均平均精度を向上させるために、どのような実用的な手段を講じることができますか?
YOLO11 モデルの平均平均精度(mAP)を向上させるには、いくつかのステップを踏む必要がある:
- ハイパーパラメータの調整:学習率、バッチサイズ、画像補強を変えて実験する。
- データ拡張:MosaicやMixUpのようなテクニックを使って、多様なトレーニングサンプルを作成する。
- 画像タイリング:小さな物体の検出精度を向上させるために、大きな画像を小さなタイルに分割します。 具体的な戦略については、モデルの微調整に関する詳細なガイドを参照してください。
Python でYOLO11 モデルの評価指標にアクセスするには?
以下の手順で、Python を使用してYOLO11 モデル評価メトリクスにアクセスできます:
使用方法
from ultralytics import YOLO
# Load the model
model = YOLO("yolo11n.pt")
# Run the evaluation
results = model.val(data="coco8.yaml")
# Print specific metrics
print("Class indices with average precision:", results.ap_class_index)
print("Average precision for all classes:", results.box.all_ap)
print("Mean average precision at IoU=0.50:", results.box.map50)
print("Mean recall:", results.box.mr)
これらの指標を分析することは、YOLO11 モデルの微調整と最適化に役立ちます。詳しくは、YOLO11 メトリクスのガイドをご覧ください。