Ultralytics YOLOv5#
概要#
YOLOv5uは、object detectionの手法における進化を表しています。Ultralyticsによって開発されたYOLOv5モデルの基礎的なアーキテクチャに由来するYOLOv5uは、YOLOv8モデルで以前に導入された機能である、アンカーフリーおよびオブジェクトネスフリーの分割ヘッドを統合しています。この適応によりモデルのアーキテクチャが洗練され、物体検出タスクにおける精度と速度のトレードオフが改善されます。経験的結果およびそこから派生した機能に基づき、YOLOv5uは、研究と実用アプリケーションの両方で堅牢なソリューションを求める人々にとって効率的な代替手段を提供します。

Ultralyticsは、anchor-free variant of YOLOv5 modelを提供しています。ultralytics/yolov5リポジトリでトレーニングされたモデルは、ultralytics/ultralyticsライブラリでは読み込むことができません。ここでYOLOv5を使用するには、Ultralytics YOLOv5uチェックポイント(例:yolov5su.pt)から新しいモデルをトレーニングしてください。
Ultralytics Platform上で直接YOLOv5モデルを探索して実行できます。
主な特徴#
-
アンカーフリーのSplit Ultralytics Head: 従来の物体検出モデルは、事前に定義されたアンカーボックスを使用して物体の位置を予測していました。しかし、YOLOv5uはこの手法を現代化しました。アンカーフリーのSplit Ultralytics Headを採用することで、より柔軟で適応性の高い検出メカニズムを実現し、多様なシナリオでのパフォーマンスを向上させています。
-
最適化された精度と速度のトレードオフ: 速度と精度は、しばしば相反する方向に働きます。しかし、YOLOv5uはこのトレードオフに挑戦します。精度を妥協することなくリアルタイム検出を保証する、調整されたバランスを提供します。この機能は、autonomous vehicles、robotics、リアルタイム映像解析など、迅速な応答が求められるアプリケーションにおいて特に非常に価値があります。
-
多様な事前学習済みモデル: タスクごとに必要なツールセットが異なることを理解し、YOLOv5uでは多数の事前学習済みモデルを提供しています。推論、検証、学習のいずれに注力する場合でも、目的に合わせたモデルが用意されています。この多様性により、汎用的なソリューションではなく、独自の課題に対して特別に微調整されたモデルを利用できます。
サポートされるタスクとモード#
さまざまな事前学習済み重みを持つYOLOv5uモデルは、Object Detectionタスクに優れています。包括的な範囲のモードをサポートしており、開発からデプロイメントまで、多様なアプリケーションに適しています。
| モデルタイプ | 事前学習済みウェイト | タスク | トレーニング | バリデーション | 推論 | エクスポート |
|---|---|---|---|---|---|---|
| YOLOv5u | yolov5nu、yolov5su、yolov5mu、yolov5lu、yolov5xu、yolov5n6u、yolov5s6u、yolov5m6u、yolov5l6u、yolov5x6u | Object Detection | ✅ | ✅ | ✅ | ✅ |
この表では、YOLOv5uモデルのバリアントの詳細な概要を提供し、物体検出タスクにおける適用性や、Inference、Validation、Training、Exportなどのさまざまな操作モードのサポートを強調しています。この包括的なサポートにより、ユーザーは幅広い物体検出シナリオにおいてYOLOv5uモデルの機能を十分に活用できるようになります。
性能メトリクス#
COCO で学習された80の事前トレーニング済みクラスを含むこれらのモデルの使用例については、Detection Docs をご覧ください。
| モデル | YAML | サイズ (ピクセル) | mAPval 50-95 | 速度 CPU ONNX (ms) | 速度 A100 TensorRT (ms) | パラメータ (M) | FLOPs (B) |
|---|---|---|---|---|---|---|---|
| yolov5nu.pt | yolov5n.yaml | 640 | 34.3 | 73.6 | 1.06 | 2.6 | 7.7 |
| yolov5su.pt | yolov5s.yaml | 640 | 43.0 | 120.7 | 1.27 | 9.1 | 24.0 |
| yolov5mu.pt | yolov5m.yaml | 640 | 49.0 | 233.9 | 1.86 | 25.1 | 64.2 |
| yolov5lu.pt | yolov5l.yaml | 640 | 52.2 | 408.4 | 2.50 | 53.2 | 135.0 |
| yolov5xu.pt | yolov5x.yaml | 640 | 53.2 | 763.2 | 3.81 | 97.2 | 246.4 |
| yolov5n6u.pt | yolov5n6.yaml | 1280 | 42.1 | 211.0 | 1.83 | 4.3 | 7.8 |
| yolov5s6u.pt | yolov5s6.yaml | 1280 | 48.6 | 422.6 | 2.34 | 15.3 | 24.6 |
| yolov5m6u.pt | yolov5m6.yaml | 1280 | 53.6 | 810.9 | 4.36 | 41.2 | 65.7 |
| yolov5l6u.pt | yolov5l6.yaml | 1280 | 55.7 | 1470.9 | 5.47 | 86.1 | 137.4 |
| yolov5x6u.pt | yolov5x6.yaml | 1280 | 56.8 | 2436.5 | 8.98 | 155.4 | 250.7 |
使用例#
この例では、簡単なYOLOv5のトレーニングと推論の例を提供しています。これらおよびその他のmodesに関する完全なドキュメントについては、Predict、Train、Val、Exportの各ドキュメントページを参照してください。
PyTorchの事前学習済み *.pt モデル、および設定 *.yaml ファイルを YOLO() クラスに渡すことで、pythonでモデルインスタンスを作成できます:
from ultralytics import YOLO
# Load a COCO-pretrained YOLOv5n model
model = YOLO("yolov5n.pt")
# Display model information (optional)
model.info()
# Train the model on the COCO8 example dataset for 100 epochs
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Run inference with the YOLOv5n model on the 'bus.jpg' image
results = model("path/to/bus.jpg")引用と謝辞#
モデルの急速に進化する性質のため、UltralyticsはYOLOv5に関する公式の研究論文を発表していません。静的なドキュメントを作成することよりも、技術を進歩させ、より使いやすくすることに注力しています。YOLOのアーキテクチャ、機能、および使用方法に関する最新情報については、GitHub repositoryおよびdocumentationを参照してください。
研究でYOLOv5やYOLOv5uを使用する場合は、次のようにUltralytics YOLOv5リポジトリを引用してください:
@software{yolov5,
title = {Ultralytics YOLOv5},
author = {Glenn Jocher},
year = {2020},
version = {7.0},
license = {AGPL-3.0},
url = {https://github.com/ultralytics/yolov5},
doi = {10.5281/zenodo.3908559},
orcid = {0000-0001-5950-6979}
}YOLOv5モデルは、AGPL-3.0およびEnterpriseライセンスの下で提供されていることに注意してください。
よくある質問 (FAQ)#
Ultralytics YOLOv5uとは何ですか、またYOLOv5とどのように異なりますか?#
Ultralytics YOLOv5uはYOLOv5の高度なバージョンであり、リアルタイム物体検出タスクにおけるaccuracyと速度のトレードオフを向上させるアンカーフリー、オブジェクトネスフリーの分割ヘッドを統合しています。従来のYOLOv5とは異なり、YOLOv5uはアンカーフリーの検出メカニズムを採用しており、多様なシナリオにおいてより柔軟で適応性が高くなっています。その機能の詳細については、YOLOv5 Overviewを参照してください。
アンカーフリーのUltralytics Headは、YOLOv5uでの物体検出パフォーマンスをどのように向上させますか?#
YOLOv5uにおけるアンカーフリーのUltralyticsヘッドは、事前定義されたアンカーボックスへの依存をなくすことで、物体検出のパフォーマンスを向上させます。これにより、より高い効率でさまざまな物体のサイズや形状に対応できる、より柔軟で適応性のある検出メカニズムが実現します。この機能強化は、精度と速度のバランスの取れたトレードオフに直接貢献し、YOLOv5uをリアルタイムアプリケーションに適したものにしています。そのアーキテクチャの詳細については、Key Featuresセクションでご確認ください。
事前学習済みのYOLOv5uモデルを異なるタスクやモードで使用できますか?#
はい、Object Detectionなどのさまざまなタスクに事前学習済みYOLOv5uモデルを使用できます。これらのモデルは、Inference、Validation、Training、Exportを含む複数のモードをサポートしています。この柔軟性により、ユーザーはさまざまな運用要件にわたってYOLOv5uモデルの機能を活用できます。詳細な概要については、Supported Tasks and Modesセクションをご確認ください。
YOLOv5uモデルのパフォーマンス指標は、異なるプラットフォーム間でどのように比較されますか?#
YOLOv5uモデルのパフォーマンス指標は、使用するプラットフォームやハードウェアによって異なります。たとえば、YOLOv5nuモデルは、COCOデータセットで34.3 mAPを達成し、CPU(ONNX)で73.6 ms、A100 TensorRTで1.06 msの速度を実現します。さまざまなYOLOv5uモデルの詳細なパフォーマンス指標は、さまざまなデバイスにわたる包括的な比較を提供するPerformance Metricsセクションに記載されています。
Ultralytics Python APIを使用してYOLOv5uモデルを学習するにはどうすればよいですか?#
事前学習済みのモデルを読み込み、データセットで学習コマンドを実行することで、YOLOv5uモデルを学習できます。簡単な例を以下に示します:
from ultralytics import YOLO
# Load a COCO-pretrained YOLOv5n model
model = YOLO("yolov5n.pt")
# Display model information (optional)
model.info()
# Train the model on the COCO8 example dataset for 100 epochs
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)より詳細な手順については、Usage Examplesセクションをご覧ください。