Ultralytics YOLOv5#
概要#
YOLOv5uは、物体検出手法の進化を示すモデルです。Ultralyticsが開発したYOLOv5モデルの基盤アーキテクチャを起点として、YOLOv5uはYOLOv8モデルで初めて導入された、アンカーフリーかつobjectnessフリーの分離ヘッドを統合しています。この適応によりモデルアーキテクチャが洗練され、物体検出タスクにおける精度と速度のトレードオフが改善されています。実験結果と派生した特徴を踏まえ、YOLOv5uは研究用途と実用用途の両方で堅牢なソリューションを求めるユーザーに、効率的な選択肢を提供します。

Ultralyticsはアンカーフリー版のYOLOv5モデルを提供しています。ultralytics/yolov5リポジトリでトレーニングされたモデルは、ultralytics/ultralyticsライブラリではロードできません。ここでYOLOv5を使用するには、Ultralytics YOLOv5uチェックポイント(例:yolov5su.pt)から新しいモデルをトレーニングしてください。
Ultralytics PlatformでYOLOv5モデルを直接探索して実行できます。
主な特徴#
-
**アンカーフリーの分離Ultralyticsヘッド:**従来の物体検出モデルは、物体の位置を予測するためにあらかじめ定義されたアンカーボックスに依存しています。一方、YOLOv5uはこのアプローチを最新化しています。アンカーフリーの分離Ultralyticsヘッドを採用することで、より柔軟で適応性の高い検出メカニズムを実現し、多様なシナリオでの性能を向上させています。
-
**最適化された精度と速度のトレードオフ:**速度と精度はしばしば相反します。しかし、YOLOv5uはこのトレードオフに挑戦します。精度を損なうことなくリアルタイム検出を実現する、調整されたバランスを提供します。この特長は、自動運転車、ロボティクス、リアルタイム動画分析など、迅速な応答が求められるアプリケーションで特に有用です。
-
**多様な事前トレーニング済みモデル:**タスクごとに異なるツールセットが必要であることを踏まえ、YOLOv5uは豊富な事前トレーニング済みモデルを提供します。Inference、Validation、Trainingのいずれに取り組む場合でも、用途に合わせたモデルを利用できます。この多様性により、単一の万能ソリューションではなく、それぞれの課題に合わせて微調整されたモデルを使用できます。
サポートされるタスクとモード#
さまざまな事前トレーニング済みウェイトを備えたYOLOv5uモデルは、物体検出タスクで優れた性能を発揮します。包括的な各種モードをサポートしているため、開発からデプロイまで幅広いアプリケーションに適しています。
| モデルタイプ | 事前学習済み重み | タスク | トレーニング | 検証 | 推論 | エクスポート |
|---|---|---|---|---|---|---|
| YOLOv5u | yolov5nu、yolov5su、yolov5mu、yolov5lu、yolov5xu、yolov5n6u、yolov5s6u、yolov5m6u、yolov5l6u、yolov5x6u | オブジェクト検出 | ✅ | ✅ | ✅ | ✅ |
この表では、YOLOv5uモデルの各バリエーションの詳細を示し、物体検出タスクへの適用性と、Inference、Validation、Training、Exportなどの各種操作モードのサポート状況をまとめています。この包括的なサポートにより、ユーザーは幅広い物体検出シナリオでYOLOv5uモデルの機能を最大限に活用できます。
性能指標#
COCOでトレーニングされたこれらのモデルの使用例については、80個の事前学習済みクラスを含む検出ドキュメントをご覧ください。
| モデル | 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 | 31.3 |
| yolov5s6u.pt | yolov5s6.yaml | 1280 | 48.6 | 422.6 | 2.34 | 15.3 | 97.6 |
| yolov5m6u.pt | yolov5m6.yaml | 1280 | 53.6 | 810.9 | 4.36 | 41.2 | 261.3 |
| yolov5l6u.pt | yolov5l6.yaml | 1280 | 55.7 | 1470.9 | 5.47 | 86.1 | 549.4 |
| yolov5x6u.pt | yolov5x6.yaml | 1280 | 56.8 | 2436.5 | 8.98 | 155.5 | 1002.8 |
使用例#
この例では、YOLOv5のトレーニングとInferenceの簡単な例を示します。これらとその他のモードの詳しいドキュメントについては、Predict、Train、Val、Exportのドキュメントページをご覧ください。
PyTorchの事前学習済み*.ptモデルと設定用の*.yamlファイルをYOLO()クラスに渡すことで、Pythonでモデルインスタンスを作成できます。
from ultralytics import YOLO
# Load a COCO-pretrained YOLOv5nu model
model = YOLO("yolov5nu.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 YOLOv5nu model on the 'bus.jpg' image
results = model("path/to/bus.jpg")引用と謝辞#
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ライセンスおよびエンタープライズライセンスの下で提供されていることにご注意ください。
FAQ#
YOLOv5uのアンカーフリーUltralyticsヘッドは、あらかじめ定義されたアンカーボックスへの依存を排除することで、物体検出性能を向上させます。これにより、さまざまなサイズや形状の物体をより効率的に処理できる、柔軟で適応性の高い検出メカニズムが実現します。この改善は精度と速度のバランスの取れたトレードオフに直接貢献し、YOLOv5uをリアルタイムアプリケーションに適したモデルにしています。アーキテクチャの詳細については、主な特長セクションをご覧ください。
はい、事前トレーニング済みのYOLOv5uモデルは、物体検出などのさまざまなタスクに使用できます。これらのモデルは、Inference、Validation、Training、Exportなど、複数のモードをサポートしています。この柔軟性により、ユーザーはさまざまな運用要件に合わせてYOLOv5uモデルの機能を活用できます。詳しい概要については、サポート対象のタスクとモードセクションをご覧ください。
YOLOv5uモデルの性能指標は、使用するプラットフォームとハードウェアによって異なります。たとえば、YOLOv5nuモデルはCOCOデータセットで34.3 mAPを達成し、CPU (ONNX)で73.6 ms、A100 TensorRTで1.06 msの速度を実現します。さまざまなYOLOv5uモデルの詳細な性能指標については、各種デバイスを包括的に比較した性能指標セクションをご覧ください。
事前トレーニング済みモデルをロードし、データセットを指定してトレーニングコマンドを実行することで、YOLOv5uモデルをトレーニングできます。簡単な例を以下に示します。
例from ultralytics import YOLO # Load a COCO-pretrained YOLOv5nu model model = YOLO("yolov5nu.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)詳しい手順については、使用例セクションをご覧ください。