モデルの評価と微調整に関する洞察
はじめに
コンピュータ・ビジョン・モデルをトレーニングしたら、それを評価し、最適に動作するように改良することが重要です。モデルをトレーニングするだけでは十分ではありません。モデルが正確で、効率的で、コンピュータビジョンプロジェクトの目的を達成していることを確認する必要があります。モデルを評価し、微調整することで、弱点を特定し、精度を向上させ、全体的なパフォーマンスを高めることができます。
このガイドでは、コンピュータビジョンプロジェクトのこのステップをよりアプローチしやすくする、モデルの評価と微調整に関する洞察を共有します。評価指標を理解し、微調整テクニックを実装する方法について説明し、モデルの能力を向上させるための知識を提供します。
メトリクスを使用したモデル性能の評価
モデルの性能を評価することは、そのモデルがどれだけ効果的に機能するかを理解するのに役立つ。パフォーマンスを測定するために、さまざまな測定基準が用いられます。これらのパフォーマンス測定基準は、明確な数値的洞察を提供し、モデルが意図した目標を確実に達成するための改善の指針となります。いくつかの主要な測定基準を詳しく見てみましょう。
信頼度スコア
信頼度スコアは、検出されたオブジェクトが特定のクラスに属しているというモデルの確実性を表します。範囲は 0 から 1 で、スコアが高いほど信頼度が高いことを示します。信頼度スコアは、予測のフィルター処理に役立ちます。指定されたしきい値を超える信頼度スコアを持つ検出のみが有効と見なされます。
簡単なヒント推論を実行するとき、予測が表示されず、他のすべてをチェックした場合は、信頼スコアを下げてみてください。しきい値が高すぎて、モデルが有効な予測を無視してしまうことがあります。スコアを下げることで、モデルはより多くの可能性を考慮できるようになります。これはプロジェクトの目標に合わないかもしれませんが、モデルができることを確認し、微調整の方法を決めるには良い方法です。
ユニオン上の交差点
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.
Mean Average Precision
Mean Average Precision (mAP) is a way to measure how well an object detection model performs. It looks at the precision of detecting each object class, averages these scores, and gives an overall number that shows how accurately the model can identify and classify objects.
ここでは、2つの特定のmAP指標に注目してみましょう。
- mAP@.5: Measures the average precision at a single IoU (Intersection over Union) threshold of 0.5. This metric checks if the model can correctly find objects with a looser accuracy requirement. It focuses on whether the object is roughly in the right place, not needing perfect placement. It helps see if the model is generally good at spotting objects.
- mAP@.5:.95:0.05刻みで0.5から0.95までの複数のIoUしきい値で計算されたmAP値を平均する。この指標はより詳細で厳密です。この指標は、異なる厳密さのレベルにおいて、モデルがどの程度正確に物体を見つけることができるかの全体像を示し、正確な物体検出を必要とするアプリケーションに特に有用です。
その他のmAPメトリクスには、0.75というより厳しいIoUしきい値を使用するmAP@0.75、異なるサイズのオブジェクトにわたって精度を評価するmAP@small、medium、largeがある。
Evaluating YOLO11 Model Performance
With respect to YOLO11, you can use the validation mode to evaluate the model. Also, be sure to take a look at our guide that goes in-depth into YOLO11 performance metrics and how they can be interpreted.
コミュニティに関する一般的な質問
When evaluating your YOLO11 model, you might run into a few hiccups. Based on common community questions, here are some tips to help you get the most out of your YOLO11 model:
可変画像サイズの処理
Evaluating your YOLO11 model with images of different sizes can help you understand its performance on diverse datasets. Using the rect=true
validation parameter, YOLO11 adjusts the network's stride for each batch based on the image sizes, allowing the model to handle rectangular images without forcing them to a single size.
について imgsz
バリデーションパラメータは、画像リサイズの最大寸法を設定します。データセットの最大寸法と、GPU の利用可能なメモリに基づいて調整できます。たとえ imgsz
セット rect=true
ストライドを動的に調整することで、モデルがさまざまなイメージ サイズを効果的に管理できるようにします。
Accessing YOLO11 Metrics
If you want to get a deeper understanding of your YOLO11 model's performance, you can easily access specific evaluation metrics with a few lines of Python code. The code snippet below will let you load your model, run an evaluation, and print out various metrics that show how well your model is doing.
使用方法
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)
The results object also includes speed metrics like preprocess time, inference time, loss, and postprocess time. By analyzing these metrics, you can fine-tune and optimize your YOLO11 model for better performance, making it more effective for your specific use case.
微調整の仕組み
微調整には、事前トレーニング済みのモデルを取得し、そのパラメーターを調整して、特定のタスクまたはデータセットのパフォーマンスを向上させることが含まれます。このプロセスはモデルの再トレーニングとも呼ばれ、モデルは実際のアプリケーションで遭遇する特定のデータの結果をよりよく理解し、予測することができます。最適な結果を得るために、モデルの評価に基づいてモデルを再トレーニングできます。
モデルを微調整するためのヒント
モデルの微調整とは、最適なパフォーマンスを実現するために、いくつかの重要なパラメーターと手法に細心の注意を払うことを意味します。ここでは、プロセスをガイドするための重要なヒントをいくつか紹介します。
Starting With a Higher Learning Rate
Usually, during the initial training epochs, the learning rate starts low and gradually increases to stabilize the training process. However, since your model has already learned some features from the previous dataset, starting with a higher learning rate right away can be more beneficial.
When evaluating your YOLO11 model, you can set the warmup_epochs
validation パラメーターを warmup_epochs=0
学習率が高くなりすぎないようにします。このプロセスに従うことで、トレーニングは指定された重みから続行され、新しいデータのニュアンスに合わせて調整されます。
小さなオブジェクトの画像タイリング
Image tiling can improve detection accuracy for small objects. By dividing larger images into smaller segments, such as splitting 1280x1280 images into multiple 640x640 segments, you maintain the original resolution, and the model can learn from high-resolution fragments. When using YOLO11, make sure to adjust your labels for these new segments correctly.
コミュニティとの関わり
Sharing your ideas and questions with other computer vision enthusiasts can inspire creative solutions to roadblocks in your projects. Here are some excellent ways to learn, troubleshoot, and connect.
ヘルプとサポートの検索
- GitHub Issues: Explore the YOLO11 GitHub repository and use the Issues tab to ask questions, report bugs, and suggest features. The community and maintainers are available to assist with any issues you encounter.
- Ultralytics Discordサーバー: Ultralytics Discord サーバーに参加して、他のユーザーや開発者とつながり、サポートを受け、知識を共有し、アイデアを出し合いましょう。
公式文書
- Ultralytics YOLO11 Documentation: Check out the official YOLO11 documentation for comprehensive guides and valuable insights on various computer vision tasks and projects.
最終的な感想
Evaluating and fine-tuning your computer vision model are important steps for successful model deployment. These steps help make sure that your model is accurate, efficient, and suited to your overall application. The key to training the best model possible is continuous experimentation and learning. Don't hesitate to tweak parameters, try new techniques, and explore different datasets. Keep experimenting and pushing the boundaries of what's possible!
よくあるご質問
What are the key metrics for evaluating YOLO11 model performance?
To evaluate YOLO11 model performance, important metrics include Confidence Score, Intersection over Union (IoU), and Mean Average Precision (mAP). Confidence Score measures the model's certainty for each detected object class. IoU evaluates how well the predicted bounding box overlaps with the ground truth. Mean Average Precision (mAP) aggregates precision scores across classes, with mAP@.5 and mAP@.5:.95 being two common types for varying IoU thresholds. Learn more about these metrics in our YOLO11 performance metrics guide.
How can I fine-tune a pre-trained YOLO11 model for my specific dataset?
Fine-tuning a pre-trained YOLO11 model involves adjusting its parameters to improve performance on a specific task or dataset. Start by evaluating your model using metrics, then set a higher initial learning rate by adjusting the warmup_epochs
パラメータを0に設定する。以下のようなパラメータを使用する。 rect=true
様々な画像サイズを効果的に扱うためにより詳細なガイダンスについては、以下のセクションを参照してください。 fine-tuning YOLO11 models.
How can I handle variable image sizes when evaluating my YOLO11 model?
評価中に可変画像サイズを扱うには rect=true
parameter in YOLO11, which adjusts the network's stride for each batch based on image sizes. The imgsz
パラメータは画像のリサイズの最大寸法を設定します(デフォルトは640)。調整 imgsz
を、データセットとGPU メモリに合わせて変更してください。詳細は 可変画像サイズの取り扱いに関するセクション.
What practical steps can I take to improve mean average precision for my YOLO11 model?
Improving mean average precision (mAP) for a YOLO11 model involves several steps:
- Tuning Hyperparameters: Experiment with different learning rates, batch sizes, and image augmentations.
- Data Augmentation: Use techniques like Mosaic and MixUp to create diverse training samples.
- Image Tiling: Split larger images into smaller tiles to improve detection accuracy for small objects. Refer to our detailed guide on model fine-tuning for specific strategies.
How do I access YOLO11 model evaluation metrics in Python?
You can access YOLO11 model evaluation metrics using Python with the following steps:
使用方法
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)
Analyzing these metrics helps fine-tune and optimize your YOLO11 model. For a deeper dive, check out our guide on YOLO11 metrics.