Ultralytics YOLOv5
概要
YOLOv5uは、物体検出手法の進化を表しています。Ultralyticsが開発したYOLOv5モデルの基本的なアーキテクチャから派生したYOLOv5uは、YOLOv8モデルで以前に導入されたアンカーフリー、objectnessフリーのスプリットヘッドを統合しています。この改良により、モデルのアーキテクチャが洗練され、物体検出タスクにおける精度と速度のトレードオフが改善されます。実験結果とその派生機能を考慮すると、YOLOv5uは、研究と実用的なアプリケーションの両方で堅牢なソリューションを求める人々にとって効率的な代替手段となります。
主な特徴
-
アンカーフリー分割Ultralyticsヘッド: 従来の物体検出モデルは、物体の位置を予測するために事前定義されたアンカーボックスに依存しています。しかし、YOLOv5uはこのアプローチを現代化しました。アンカーフリー分割Ultralyticsヘッドを採用することで、より柔軟で適応性のある検出メカニズムを保証し、その結果、多様なシナリオでの性能を向上させます。
-
最適化された精度と速度のトレードオフ: 速度と精度は相反する方向に引っ張られることがよくあります。しかし、YOLOv5u はこのトレードオフに挑戦します。バランスの取れた調整を提供し、精度を損なうことなくリアルタイム検出を保証します。この機能は、自動運転車、ロボット工学、リアルタイムビデオ分析など、迅速な応答を必要とするアプリケーションにとって特に貴重です。
-
Variety of Pre-trained Models(多様な事前学習済みモデル): さまざまなタスクには異なるツールセットが必要であることを理解し、YOLOv5uは多数の事前学習済みモデルを提供します。推論、検証、または学習に焦点を当てているかどうかにかかわらず、お客様に合わせたモデルが待っています。この多様性により、単一のソリューションを使用するだけでなく、お客様固有の課題に合わせて特別に微調整されたモデルを使用できます。
サポートされているタスクとモード
さまざまな事前トレーニング済み重みを持つYOLOv5uモデルは、オブジェクト検出タスクに優れています。開発からデプロイまで、多様なアプリケーションに適した包括的な範囲のモードをサポートしています。
モデルの種類 | 事前学習済み重み | タスク | 推論 | 検証 | 学習 | エクスポート |
---|---|---|---|---|---|---|
YOLOv5u | yolov5nu , yolov5su , yolov5mu , yolov5lu , yolov5xu , yolov5n6u , yolov5s6u , yolov5m6u , yolov5l6u , yolov5x6u |
物体検出 | ✅ | ✅ | ✅ | ✅ |
この表は、YOLOv5uモデルのバリアントの詳細な概要を示し、オブジェクト検出タスクでの適用性と、Inference、Validation、Training、Exportなどのさまざまな操作モードのサポートを強調しています。この包括的なサポートにより、ユーザーは幅広いオブジェクト検出シナリオでYOLOv5uモデルの機能を最大限に活用できます。
パフォーマンス指標
パフォーマンス
Detection Docsを参照してください。これらのモデルはCOCOで学習されており、80個の学習済みクラスが含まれています。使用例が記載されています。
モデル | YAML | サイズ (ピクセル) |
mAPval 50-95 |
速度 CPU ONNX (ms) |
速度 A100 TensorRT (ms) |
params (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のトレーニングと推論の例を提供します。これらおよびその他のモードに関する完全なドキュメントについては、Predict、Train、Val、およびExportのドキュメントページを参照してください。
例
PyTorch 学習済み *.pt
モデルおよび構成 *.yaml
filesを以下に渡すことができます。 YOLO()
pythonでモデルインスタンスを作成するためのclass:
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")
CLIコマンドは、モデルを直接実行するために利用できます。
# Load a COCO-pretrained YOLOv5n model and train it on the COCO8 example dataset for 100 epochs
yolo train model=yolov5n.pt data=coco8.yaml epochs=100 imgsz=640
# Load a COCO-pretrained YOLOv5n model and run inference on the 'bus.jpg' image
yolo predict model=yolov5n.pt source=path/to/bus.jpg
引用と謝辞
Ultralytics YOLOv5の公開
Ultralyticsは、モデルの急速な進化に対応するため、YOLOv5に関する正式な研究論文を発表していません。静的なドキュメントを作成するよりも、テクノロジーを進歩させ、使いやすくすることに重点を置いています。YOLOアーキテクチャ、機能、および使用法に関する最新情報については、GitHubリポジトリおよびドキュメントを参照してください。
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ライセンスの下で提供されることにご注意ください。
よくある質問
Ultralytics YOLOv5uとは何ですか?また、YOLOv5とどのように異なりますか?
Ultralytics YOLOv5uは、YOLOv5の高度なバージョンであり、リアルタイム物体検出タスクの精度と速度のトレードオフを向上させる、アンカーフリー、objectnessフリーのスプリットヘッドを統合しています。従来のYOLOv5とは異なり、YOLOv5uはアンカーフリーの検出メカニズムを採用しており、多様なシナリオでより柔軟かつ適応可能です。その機能の詳細については、YOLOv5の概要を参照してください。
アンカーフリーのUltralyticsヘッドは、YOLOv5uにおける物体検出のパフォーマンスをどのように向上させますか?
YOLOv5uのアンカーフリーUltralyticsヘッドは、事前定義されたアンカーボックスへの依存をなくすことで、オブジェクト検出のパフォーマンスを向上させます。これにより、さまざまなオブジェクトのサイズと形状をより効率的に処理できる、より柔軟で適応性のある検出メカニズムが実現します。この機能強化は、精度と速度のバランスの取れたトレードオフに直接貢献し、YOLOv5uをリアルタイムアプリケーションに適したものにします。アーキテクチャの詳細については、主な機能セクションを参照してください。
さまざまなタスクとモードで、事前トレーニング済みのYOLOv5uモデルを使用できますか?
はい、オブジェクト検出など、さまざまなタスクに事前トレーニング済みのYOLOv5uモデルを使用できます。これらのモデルは、推論、検証、トレーニング、エクスポートなど、複数のモードをサポートしています。この柔軟性により、ユーザーはさまざまな運用要件にわたってYOLOv5uモデルの機能を活用できます。詳細な概要については、サポートされているタスクとモードのセクションを確認してください。
YOLOv5uモデルのパフォーマンス指標は、異なるプラットフォームでどのように異なりますか?
YOLOv5uモデルのパフォーマンス指標は、使用されるプラットフォームとハードウェアによって異なります。たとえば、YOLOv5nuモデルは、CPU(ONNX)で73.6 ms、A100 TensorRTで1.06 msの速度でCOCOデータセットで34.3 mAPを達成します。さまざまなYOLOv5uモデルの詳細なパフォーマンス指標は、さまざまなデバイス間の包括的な比較を提供するパフォーマンス指標セクションにあります。
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)
# Load a COCO-pretrained YOLOv5n model and train it on the COCO8 example dataset for 100 epochs
yolo train model=yolov5n.pt data=coco8.yaml epochs=100 imgsz=640
より詳細な手順については、使用例のセクションをご覧ください。