YOLOv5
エンタープライズライセンスをリクエストするには、Ultralyticsライセンスのフォームに記入してください。
当社の新しいYOLOv5リリースv7.0インスタンスセグメンテーションモデルは、世界で最も速く、最も正確であり、現在のすべてのSOTAベンチマークを上回っています。トレーニング、検証、デプロイを非常に簡単にしました。詳細についてはリリース ノートを参照し、クイックスタート チュートリアルについては YOLOv5 セグメンテーション Colab ノートブックをご覧ください。
A100 GPU を使用して、画像サイズ 640 で 300 エポックの COCO で YOLOv5 セグメンテーション モデルをトレーニングしました。CPU 速度テスト用にすべてのモデルを ONNX FP32 に、GPU 速度テスト用に TensorRT FP16 にエクスポートしました。簡単に再現できるように、Google Colab Proノートブックですべての速度テストを実行しました。
モデル | サイズ (ピクセル) |
mAPボックス 50-95 |
mAPマスク 50-95 |
列車時間 300 エポック A100 (時間 ) |
速度 ONNX CPU (ミリ秒) |
速度 TRT A100 (ミリ秒) |
パラメータ(M) |
FLOPs @640 (B) |
---|---|---|---|---|---|---|---|---|
YOLOv5n-seg | 640 | 27.6 | 23.4 | 80:17 | 62.7 | 1.2 | 2.0 | 7.1 |
YOLOv5s-seg | 640 | 37.6 | 31.7 | 88:16 | 173.3 | 1.4 | 7.6 | 26.4 |
YOLOv5m-seg | 640 | 45.0 | 37.1 | 108:36 | 427.0 | 2.2 | 22.0 | 70.8 |
YOLOv5l-seg | 640 | 49.0 | 39.9 | 66:43 (2x) | 857.4 | 2.9 | 47.9 | 147.7 |
YOLOv5x-seg | 640 | 50.7 | 41.4 | 62:56 (3x) | 1579.2 | 4.5 | 88.8 | 265.7 |
lr0=0.01
weight_decay=5e-5
python segment/val.py --data coco.yaml --weights yolov5s-seg.pt
python segment/val.py --data coco.yaml --weights yolov5s-seg.pt --batch 1
export.py
python export.py --weights yolov5s-seg.pt --include engine --device 0 --half
YOLOv5セグメンテーショントレーニングは、引数付きのCOCO128セグメンテーションデータセットの自動ダウンロードと、 とを使用したCOCOセグメントデータセットの手動ダウンロードをサポートしています。
--data coco128-seg.yaml
bash data/scripts/get_coco.sh --train --val --segments
python train.py --data coco.yaml
# Single-GPU
python segment/train.py --data coco128-seg.yaml --weights yolov5s-seg.pt --img 640
# Multi-GPU DDP
python -m torch.distributed.run --nproc_per_node 4 --master_port 1 segment/train.py --data coco128-seg.yaml --weights yolov5s-seg.pt --img 640 --device 0,1,2,3
COCO データセットで YOLOv5s-seg マスク mAP を検証します。
bash data/scripts/get_coco.sh --val --segments # download COCO val segments split (780MB, 5000 images)
python segment/val.py --weights yolov5s-seg.pt --data coco.yaml --img 640 # validate
事前トレーニング済みの YOLOv5m-seg.pt を使用してバスを予測.jpg:
python segment/predict.py --weights yolov5m-seg.pt --data data/images/bus.jpg
model = torch.hub.load('ultralytics/yolov5', 'custom', 'yolov5m-seg.pt') # load from PyTorch Hub (WARNING: inference not yet supported)
![]() |
![]() |
---|
YOLOv5s-seg モデルを ONNX と TensorRT にエクスポートします。
python export.py --weights yolov5s-seg.pt --include onnx engine --img 640 --device 0
トレーニング、テスト、デプロイに関する完全なドキュメントについては、YOLOv5 ドキュメントを参照してください。クイックスタートの例については、以下を参照してください。
PyTorch>=1.7 を含む Python>=3.7.0 環境でリポジトリを複製してインストール.txtする必要があります。
git clone https://github.com/ultralytics/yolov5 # clone
cd yolov5
pip install -r requirements.txt # install
YOLOv5 PyTorch Hub 推論。最新のモデルから自動的にダウンロードされるモデル YOLOv5 リリース。
import torch
# Model
model = torch.hub.load('ultralytics/yolov5', 'yolov5s') # or yolov5n - yolov5x6, custom
# Images
img = 'https://ultralytics.com/images/zidane.jpg' # or file, Path, PIL, OpenCV, numpy, list
# Inference
results = model(img)
# Results
results.print() # or .show(), .save(), .crop(), .pandas(), etc.
detect.pyさまざまなソースで推論を実行し、モデルを自動的にダウンロードします 最新の YOLOv5 リリースと .
runs/detect
python detect.py --weights yolov5s.pt --source 0 # webcam
img.jpg # image
vid.mp4 # video
screen # screenshot
path/ # directory
list.txt # list of images
list.streams # list of streams
'path/*.jpg' # glob
'https://youtu.be/Zgi9g1ksQHc' # YouTube
'rtsp://example.com/media.mp4' # RTSP, RTMP, HTTP stream
次のコマンドは、YOLOv5 COCO の結果を再現します。モデルとデータセットは最新のものから自動的にダウンロードされます YOLOv5 リリース。YOLOv5n/s/m/l/x のトレーニング時間は V100 GPUで1/2/4/6/8日(マルチGPUは倍高速)。[ 可能な限り最大、またはパス YOLOv5 オートバッチ。V100-16GBの場合のバッチサイズを示しています。
--batch-size
--batch-size -1
python train.py --data coco.yaml --epochs 300 --weights '' --cfg yolov5n.yaml --batch-size 128
yolov5s 64
yolov5m 40
yolov5l 24
yolov5x 16
ロボフロー | クリアML |
コメット |
ニューラルマジック |
---|---|---|---|
カスタムデータセットにラベルを付けてYOLOv5に直接エクスポートし、Roboflowでトレーニングします | ClearMLを使用してYOLOv5を自動的に追跡、視覚化、さらにはリモートトレーニングします(オープンソース! | 永久に無料のCometを使用すると、YOLOv5モデルを保存し、トレーニングを再開し、予測をインタラクティブに視覚化およびデバッグできます | ニューラルマジックディープスパースでYOLOv5推論を最大6倍高速に実行 |
Ultralytics HUBは
YOLOv5は、非常に簡単に始められ、習得しやすいように設計されています。私たちは実際の結果を優先します。
python val.py --task study --data coco.yaml --iou 0.7 --weights yolov5n6.pt yolov5s6.pt yolov5m6.pt yolov5l6.pt yolov5x6.pt
モデル | サイズ (ピクセル) |
mAPval 50-95 |
mAPval 50 |
速度 CPU b1 (ミリ秒) |
速度 V100 b1 (ミリ秒) |
速度 V100 b32 (ミリ秒) |
パラメータ(M) |
FLOPs @640 (B) |
---|---|---|---|---|---|---|---|---|
YOLOv5n | 640 | 28.0 | 45.7 | 45 | 6.3 | 0.6 | 1.9 | 4.5 |
YOLOv5s | 640 | 37.4 | 56.8 | 98 | 6.4 | 0.9 | 7.2 | 16.5 |
ヨロ5m | 640 | 45.4 | 64.1 | 224 | 8.2 | 1.7 | 21.2 | 49.0 |
YOLOv5l | 640 | 49.0 | 67.3 | 430 | 10.1 | 2.7 | 46.5 | 109.1 |
YOLOv5x | 640 | 50.7 | 68.9 | 766 | 12.1 | 4.8 | 86.7 | 205.7 |
YOLOv5n6 | 1280 | 36.0 | 54.4 | 153 | 8.1 | 2.1 | 3.2 | 4.6 |
YOLOv5s6 | 1280 | 44.8 | 63.7 | 385 | 8.2 | 3.6 | 12.6 | 16.8 |
YOLOv5m6 | 1280 | 51.3 | 69.3 | 887 | 11.1 | 6.8 | 35.7 | 50.0 |
YOLOv5l6 | 1280 | 53.7 | 71.3 | 1784 | 15.8 | 10.5 | 76.8 | 111.4 |
YOLOv5x6 + TTA |
1280年 1536年 |
55.0 % 55.8% |
72.7 % 72.7% |
3136 - |
26.2 - |
19.4 - |
140.7 - |
209.8 - |
python val.py --data coco.yaml --img 640 --conf 0.001 --iou 0.65
python val.py --data coco.yaml --img 640 --task speed --batch 1
python val.py --data coco.yaml --img 1536 --iou 0.7 --augment
YOLOv5 リリース v6.2 では、分類モデルのトレーニング、検証、デプロイがサポートされます。詳細についてはリリース ノートを参照し、クイックスタート チュートリアルについては YOLOv5 分類コラボ ノートブックをご覧ください。
4xA100 インスタンスを使用して ImageNet で YOLOv5-cls 分類モデルを 90 エポックトレーニングし、ResNet モデルと EfficientNet モデルを同じ既定のトレーニング設定でトレーニングして比較しました。CPU 速度テスト用にすべてのモデルを ONNX FP32 に、GPU 速度テスト用に TensorRT FP16 にエクスポートしました。簡単に再現できるように、Google Colab Proですべての速度テストを実行しました。
モデル | サイズ (ピクセル) |
ACC トップ1 |
ACC トップ5 |
トレーニング 90 エポック 4xA100 (時間) |
速度 ONNX CPU (ミリ秒) |
スピード テンソルRT V100 (ミリ秒) |
パラメータ(M) |
FLOPs @224 (B) |
---|---|---|---|---|---|---|---|---|
YOLOv5n-cls | 224 | 64.6 | 85.4 | 7:59 | 3.3 | 0.5 | 2.5 | 0.5 |
YOLOv5s-cls | 224 | 71.5 | 90.2 | 8:09 | 6.6 | 0.6 | 5.4 | 1.4 |
YOLOv5m-cls | 224 | 75.9 | 92.9 | 10:06 | 15.5 | 0.9 | 12.9 | 3.9 |
YOLOv5l-cls | 224 | 78.0 | 94.0 | 11:56 | 26.9 | 1.4 | 26.5 | 8.5 |
YOLOv5x-cls | 224 | 79.0 | 94.4 | 15:04 | 54.3 | 1.8 | 48.1 | 15.9 |
レスネット18 | 224 | 70.3 | 89.5 | 6:47 | 11.2 | 0.5 | 11.7 | 3.7 |
レスネット34 | 224 | 73.9 | 91.8 | 8:33 | 20.6 | 0.9 | 21.8 | 7.4 |
レスネット50 | 224 | 76.8 | 93.4 | 11:10 | 23.4 | 1.0 | 25.6 | 8.5 |
レスネット101 | 224 | 78.5 | 94.3 | 17:10 | 42.1 | 1.9 | 44.5 | 15.9 |
EfficientNet_b0 | 224 | 75.1 | 92.4 | 13:03 | 12.5 | 1.3 | 5.3 | 1.0 |
EfficientNet_b1 | 224 | 76.4 | 93.2 | 17:04 | 14.9 | 1.6 | 7.8 | 1.5 |
EfficientNet_b2 | 224 | 76.6 | 93.4 | 17:10 | 15.9 | 1.6 | 9.1 | 1.7 |
EfficientNet_b3 | 224 | 77.7 | 94.0 | 19:19 | 18.9 | 1.9 | 12.2 | 2.4 |
lr0=0.001
weight_decay=5e-5
python classify/val.py --data ../datasets/imagenet --img 224
python classify/val.py --data ../datasets/imagenet --img 224 --batch 1
export.py
python export.py --weights yolov5s-cls.pt --include engine onnx --imgsz 224
YOLOv5 分類トレーニングでは、引数を使用して MNIST、Fashion-MNIST、CIFAR10、CIFAR100、Imagenette、Imagewoof、および ImageNet データセットの自動ダウンロードがサポートされています。たとえば、MNISTのトレーニングを開始するには、を使用します。
--data
--data mnist
# Single-GPU
python classify/train.py --model yolov5s-cls.pt --data cifar100 --epochs 5 --img 224 --batch 128
# Multi-GPU DDP
python -m torch.distributed.run --nproc_per_node 4 --master_port 1 classify/train.py --model yolov5s-cls.pt --data imagenet --epochs 5 --img 224 --device 0,1,2,3
ImageNet-1k データセットで YOLOv5m-cls の精度を検証します。
bash data/scripts/get_imagenet.sh --val # download ImageNet val split (6.3G, 50000 images)
python classify/val.py --weights yolov5m-cls.pt --data ../datasets/imagenet --img 224 # validate
事前トレーニング済みの YOLOv5s-cls.pt を使用してバスを予測します.jpg:
python classify/predict.py --weights yolov5s-cls.pt --data data/images/bus.jpg
model = torch.hub.load('ultralytics/yolov5', 'custom', 'yolov5s-cls.pt') # load from PyTorch Hub
トレーニング済みの YOLOv5s-cls、ResNet、および EfficientNet モデルのグループを ONNX および TensorRT にエクスポートします。
python export.py --weights yolov5s-cls.pt resnet50.pt efficientnet_b0.pt --include onnx engine --img 224
検証済みの環境で数秒で開始できます。詳細については、以下の各アイコンをクリックしてください。
ウルトラリティクスアプリをダウンロードして、iOSまたはAndroidデバイスでYOLOv5モデルを実行します!
私たちはあなたの意見が大好きです!私たちは、YOLOv5への貢献をできるだけ簡単で透明性のあるものにしたいと考えています。開始するには寄稿ガイドを参照し、YOLOv5アンケートに記入して、経験に関するフィードバックを送信してください。すべての貢献者に感謝します!
YOLOv5 は、次の 2 つの異なるライセンスで利用できます。
YOLOv5 のバグと機能リクエストについては、GitHub の問題をご覧ください。専門的なサポートについては、お問い合わせください。