モデル評価と微調整に関する考察
はじめに
コンピュータービジョンモデルをトレーニングしたら、モデルを評価および改良して、最適なパフォーマンスを発揮させることが不可欠です。モデルをトレーニングするだけでは十分ではありません。モデルが正確で効率的であり、コンピュータービジョンプロジェクトの目的を達成していることを確認する必要があります。モデルを評価および微調整することにより、弱点を特定し、精度を向上させ、全体的なパフォーマンスを高めることができます。
見る: モデル評価とファインチューニングに関する考察 | 平均適合率を向上させるためのヒント
このガイドでは、モデルの評価と微調整に関する洞察を共有し、コンピュータービジョンプロジェクトのこのステップをより取り組みやすくします。評価指標を理解し、微調整テクニックを実装する方法について説明し、モデルの機能を向上させるための知識を提供します。
指標を用いたモデル性能の評価
モデルの性能を評価することは、その効果を理解する上で役立ちます。性能を測るためには様々な指標が用いられます。これらの性能指標は、モデルが意図した目標を確実に達成できるように改善を導く、明確な数値による洞察を提供します。ここでは、いくつかの重要な指標について詳しく見ていきましょう。
信頼度スコア
信頼度スコアは、検出されたオブジェクトが特定のクラスに属するとモデルが確信する度合いを表します。0から1の範囲で、スコアが高いほど信頼度が高いことを示します。信頼度スコアは予測をフィルタリングするのに役立ち、指定された閾値を超える信頼度スコアを持つ検出のみが有効と見なされます。
ヒント: 推論を実行しているときに、予測が表示されず、他のすべてを確認した場合は、信頼性スコアを下げてみてください。閾値が高すぎるために、モデルが有効な予測を無視している場合があります。スコアを下げると、モデルはより多くの可能性を考慮できます。これはプロジェクトの目標を満たさないかもしれませんが、モデルが何ができるかを確認し、微調整の方法を決定するのに役立ちます。
Intersection over Union(IoU)
Intersection over Union(IoU)は、予測されたバウンディングボックスが正解のバウンディングボックスとどれだけ重なっているかを測定する物体検出の指標です。IoUの値は0から1の範囲で、1は完全に一致することを意味します。IoUは、予測された境界が実際の物体の境界とどれだけ一致するかを測定するため、非常に重要です。
平均適合率
Mean Average Precision(mAP)は、物体検出モデルの性能を測定する方法です。各物体クラスの検出精度を評価し、これらのスコアを平均して、モデルが物体をどれだけ正確に識別および分類できるかを示す全体的な数値を提供します。
2つの特定のmAPメトリクスに焦点を当てましょう。
- mAP@.5: 0.5の単一のIoU(Intersection over Union)閾値での平均精度を測定します。この指標は、モデルが緩い精度要件でオブジェクトを正しく見つけられるかどうかをチェックします。完璧な配置は必要なく、オブジェクトがおおよそ正しい場所にあるかどうかに焦点を当てています。モデルがオブジェクトを特定するのが一般的に得意かどうかを確認するのに役立ちます。
- mAP@.5:.95: 複数のIoU閾値(0.5から0.95まで0.05刻み)で計算されたmAP値を平均します。この指標はより詳細かつ厳密です。モデルがさまざまな厳密さのレベルでオブジェクトをどれだけ正確に見つけられるかについて、より完全な全体像を提供し、特に正確な物体検出が必要なアプリケーションに役立ちます。
その他のmAPメトリクスには、より厳密なIoU閾値0.75を使用するmAP@0.75や、さまざまなサイズのオブジェクト全体の精度を評価するmAP@small、medium、largeなどがあります。
YOLO11モデルの性能評価
YOLO11に関して、検証モードを使用してモデルを評価できます。また、YOLO11のパフォーマンス指標とその解釈方法について詳しく解説したガイドもぜひご覧ください。
コミュニティでよくある質問
YOLO11モデルを評価する際、いくつかの問題に遭遇する可能性があります。コミュニティでよくある質問に基づいて、YOLO11モデルを最大限に活用するためのヒントを以下に示します。
可変画像サイズの処理
サイズの異なる画像でYOLO11モデルを評価することで、多様なデータセットに対する性能を理解することができます。 rect=true
validation パラメータを使用すると、YOLO11は画像サイズに基づいて各バッチのネットワークのストライドを調整し、長方形の画像を単一のサイズに強制することなく処理できます。
The imgsz
validation パラメータは、画像のリサイズにおける最大寸法を設定します。デフォルトでは640です。これは、データセットの最大寸法と利用可能な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)
resultsオブジェクトには、前処理時間、推論時間、損失、後処理時間などの速度指標も含まれています。これらの指標を分析することで、特定のユースケースに合わせてYOLO11モデルを微調整および最適化し、パフォーマンスを向上させることができます。
ファインチューニングはどのように機能しますか?
ファインチューニングとは、事前学習済みのモデルを取得し、特定のタスクまたはデータセットでパフォーマンスを向上させるためにそのパラメータを調整することです。モデルの再トレーニングとも呼ばれるこのプロセスにより、モデルは、実際のアプリケーションで遭遇する特定のデータをより良く理解し、結果を予測することができます。モデルの評価に基づいてモデルを再トレーニングし、最適な結果を得ることができます。
モデルを微調整するためのヒント
モデルのファインチューニングとは、最適なパフォーマンスを達成するために、いくつかの重要なパラメータとテクニックに細心の注意を払うことを意味します。ここでは、そのプロセスをガイドする上で不可欠なヒントをいくつかご紹介します。
より高い学習率で開始
通常、初期トレーニングのエポック中、学習率は低く始まり、トレーニングプロセスを安定させるために徐々に増加します。ただし、モデルが以前のデータセットからいくつかの特徴をすでに学習しているため、より高い学習率ですぐに開始する方が有益な場合があります。
YOLO11モデルを評価する際、以下の設定が可能です。 warmup_epochs
validation パラメータを warmup_epochs=0
学習率が高すぎる状態から開始されるのを防ぎます。このプロセスに従うことで、トレーニングは提供された重みから継続され、新しいデータのニュアンスに合わせて調整されます。
小さいオブジェクトのための画像のタイル分割
画像のタイル分割は、小さいオブジェクトの検出精度を向上させることができます。大きな画像をより小さなセグメントに分割することで、例えば1280x1280の画像を複数の640x640のセグメントに分割すると、元の解像度を維持でき、モデルは高解像度の断片から学習できます。YOLO11を使用する場合は、これらの新しいセグメントに合わせてラベルを正しく調整してください。
コミュニティとの連携
あなたのアイデアや質問を他のコンピュータビジョン愛好家と共有することで、あなたのプロジェクトの障害に対する創造的な解決策を刺激することができます。ここでは、学習、トラブルシューティング、接続するためのいくつかの優れた方法を紹介します。
ヘルプとサポート
- GitHub Issues: YOLO11 GitHubリポジトリを調べて、Issuesタブを使用して質問、バグの報告、機能の提案を行ってください。コミュニティとメンテナーが、発生した問題の解決を支援します。
- Ultralytics Discordサーバー: Ultralytics Discordサーバーに参加して、他のユーザーや開発者と繋がり、サポートを受けたり、知識を共有したり、アイデアを出し合ったりしましょう。
公式ドキュメント
- Ultralytics YOLO11ドキュメント: 包括的なガイドと、さまざまなコンピュータビジョンタスクやプロジェクトに関する貴重な洞察については、公式YOLO11ドキュメントをご覧ください。
まとめ
コンピュータビジョンモデルの評価と微調整は、モデルのデプロイを成功させるための重要なステップです。これらのステップは、モデルが正確で効率的であり、アプリケーション全体に適していることを確認するのに役立ちます。可能な限り最高のモデルをトレーニングするための鍵は、継続的な実験と学習です。パラメーターを微調整したり、新しいテクニックを試したり、さまざまなデータセットを探索したりすることを躊躇しないでください。実験を続け、可能性の限界を押し広げてください!
よくある質問
YOLO11モデルの性能を評価するための主要な指標は何ですか?
YOLO11モデルのパフォーマンスを評価するために、重要な指標には、信頼性スコア、Intersection over Union(IoU)、およびMean Average Precision(mAP)が含まれます。信頼性スコアは、検出された各オブジェクトクラスに対するモデルの確実性を測定します。IoUは、予測されたバウンディングボックスがグラウンドトゥルースとどの程度重なっているかを評価します。Mean Average Precision(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の指標に関するガイドをご覧ください。