中国語 | 한국어 | 日本語 | Русский |ドイツ語 |フランセ |スペイン語 |ポルトガル語 |テュルクチェ |ティエン・ヴィエット |ああ
YOLOv5 ?は世界で最も愛されているビジョン AI であり、将来のビジョン AI 手法に関する Ultralytics のオープンソース研究を代表しており、何千時間もの研究開発で得られた教訓と進化したベスト プラクティスが組み込まれています。
ここのリソースが YOLOv5 を最大限に活用するのに役立つことを願っています。詳細については YOLOv5 ドキュメントを参照し、サポートについては GitHub で問題を提起し、質問やディスカッションについては Discord コミュニティに参加してください。
エンタープライズ ライセンスをリクエストするには、Ultralytics ライセンスのフォームに記入してください。
YOLO11 ?新しい
当社の最先端 (SOTA) ビジョン モデルの最新の進歩である Ultralytics YOLO11 ? の発売を発表できることを嬉しく思います。現在GitHubで入手できる YOLO11 は、速度、精度、使いやすさという当社の伝統に基づいて構築されています。物体検出、画像セグメンテーション、画像分類のいずれに取り組んでも、YOLO11 はさまざまなアプリケーションで優れた性能を発揮するために必要なパフォーマンスと多用途性を提供します。
今すぐ始めて、YOLO11 の可能性を最大限に引き出してください!包括的なガイドとリソースについては、Ultralytics のドキュメントにアクセスしてください。
pip インストール Ultralytics
ドキュメント
トレーニング、テスト、展開に関する完全なドキュメントについては、YOLOv5 ドキュメントを参照してください。クイックスタートの例については、以下を参照してください。
リポジトリのクローンを作成し、 PyTorch>=1.8を含むPython>=3.8.0環境に required.txt をインストールします。
git clone https://github.com/ultralytics/yolov5 # clonecd yolov5 pip install -r required.txt # インストール
YOLOv5 PyTorch ハブ推論。モデルは最新の YOLOv5 リリースから自動的にダウンロードされます。
import torch# Modelmodel = torch.hub.load("ultralytics/yolov5", "yolov5s") # または yolov5n - yolov5x6,custom# Imagesimg = "https://ultralytics.com/images/zidane.jpg" # またはファイル,パス、PIL、OpenCV、numpy、list# Inferenceresults = model(img)# Resultsresults.print() # または .show()、.save()、.crop()、.pandas() など。
detect.py
さまざまなソースで推論を実行し、最新の YOLOv5 リリースからモデルを自動的にダウンロードし、結果をruns/detect
に保存します。
python detect.py --weights yolov5s.pt --source 0 # ウェブカメラ img.jpg # 画像 vid.mp4 # ビデオ 画面番号のスクリーンショット パス/ # ディレクトリ list.txt # 画像のリスト list.streams # ストリームのリスト 'path/*.jpg' # glob 'https://youtu.be/LNwODJXcvt4' # YouTube 'rtsp://example.com/media.mp4' # RTSP、RTMP、HTTP ストリーム
以下のコマンドは、YOLOv5 COCO の結果を再現します。モデルとデータセットは、最新の YOLOv5 リリースから自動的にダウンロードされます。 YOLOv5n/s/m/l/x のトレーニング時間は、V100 GPU で 1/2/4/6/8 日です (マルチ GPU の方が高速です)。可能な限り最大の--batch-size
を使用するか、YOLOv5 AutoBatch の場合は--batch-size -1
を渡します。バッチ サイズは V100-16GB で示されています。
python train.py --data coco.yaml --epochs 300 --weights '' --cfg yolov5n.yaml --batch-size 128 ヨロフ5s 64 ヨロフ5分40 ヨロフ5l 24 ヨロフ5x 16
カスタム データをトレーニングしますか?推奨
最高のトレーニング結果を出すためのヒント ☘️
マルチ GPU トレーニング
PyTorch ハブ ?新しい
TFLite、ONNX、CoreML、TensorRT エクスポート ?
NVIDIA Jetson プラットフォームの展開 ?新しい
テスト時間拡張 (TTA)
モデルアンサンブル
モデルの枝刈り/スパース性
ハイパーパラメータの進化
凍結層を使用した転移学習
アーキテクチャの概要 ?新しい
Ultralytics HUB で YOLO をトレーニングして展開しますか?推奨
ClearML ロギング
Neural Magic の Deepsparse を使用した YOLOv5
彗星の記録?新しい
統合
主要な AI プラットフォームとの主要な統合により、Ultralytics の製品機能が拡張され、データセットのラベル付け、トレーニング、視覚化、モデル管理などのタスクが強化されます。 Ultralytics が W&B、Comet、Roboflow、OpenVINO と連携して AI ワークフローを最適化する方法をご覧ください。
ウルトラリティクス ハブ ? | W&B | 彗星⭐NEW | ニューラルマジック |
---|---|---|---|
YOLO ワークフローを合理化: Ultralytics HUB を使用して、ラベル付け、トレーニング、デプロイを簡単に実行します。今すぐ試してください! | 重みとバイアスを使用して実験、ハイパーパラメータ、結果を追跡する | 永久無料の Comet では、YOLOv5 モデルの保存、トレーニングの再開、対話型の視覚化と予測のデバッグが可能です | Neural Magic DeepSparse を使用して YOLO11 推論を最大 6 倍高速に実行 |
ウルトラリティクス ハブ
データ視覚化、YOLOv5 および YOLOv8 のためのオールインワン ソリューションである Ultralytics HUB ⭐ でシームレスな AI を体験してください。コーディングなしでモデルのトレーニングとデプロイメントを実行できます。最先端のプラットフォームとユーザーフレンドリーな Ultralytics アプリを使用して、画像を実用的な洞察に変換し、AI ビジョンを簡単に実現します。今すぐ無料で旅を始めましょう!
なぜYOLOv5なのか
YOLOv5 は、非常に簡単に始められ、簡単に学習できるように設計されています。私たちは現実世界の結果を優先します。
COCO AP val は、256 から 1536 までのさまざまな推論サイズにわたって 5000 枚の画像 COCO val2017 データセットで測定された [email protected]:0.95 メトリックを示します。
GPU 速度は、バッチサイズ 32 の AWS p3.2xlarge V100 インスタンスを使用して、COCO val2017 データセットの画像あたりの平均推論時間を測定します。
バッチ サイズ 8 の google/automl からのEfficientDetデータ。
pythonで再現python val.py --task study --data coco.yaml --iou 0.7 --weights yolov5n6.pt yolov5s6.pt yolov5m6.pt yolov5l6.pt yolov5x6.pt
モデル | サイズ (ピクセル) | マップ値 50-95 | マップ値 50 | スピード CPU b1 (MS) | スピード V100b1 (MS) | スピード V100 b32 (MS) | パラメータ (男) | フロップス @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 |
YOLOv5m | 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 - |
すべてのチェックポイントは、デフォルト設定で 300 エポックにトレーニングされます。 Nano モデルと Small モデルは hyp.scratch-low.yaml hyps を使用し、その他のモデルはすべて hyp.scratch-high.yaml を使用します。
mAP val値は、COCO val2017 データセットの単一モデル単一スケールのものです。
python val.py --data coco.yaml --img 640 --conf 0.001 --iou 0.65
AWS p3.2xlarge インスタンスを使用した COCO val イメージの平均速度。 NMS 時間 (~1 ms/img) は含まれません。
python val.py --data coco.yaml --img 640 --task speed --batch 1
で再現します。
TTAテスト時間の拡張には、リフレクションとスケールの拡張が含まれます。
python val.py --data coco.yaml --img 1536 --iou 0.7 --augment
で再現します。
セグメンテーション
新しい YOLOv5 リリース v7.0 インスタンス セグメンテーション モデルは、世界で最も高速かつ最も正確であり、現在のすべての SOTA ベンチマークを上回っています。トレーニング、検証、デプロイが非常に簡単になるようにしました。詳細についてはリリース ノートを参照し、クイックスタート チュートリアルについては YOLOv5 Segmentation Colab Notebook にアクセスしてください。
A100 GPU を使用して、画像サイズ 640 で 300 エポックにわたって COCO 上で YOLOv5 セグメンテーション モデルをトレーニングしました。 CPU 速度テスト用にすべてのモデルを ONNX FP32 にエクスポートし、GPU 速度テスト用に TensorRT FP16 にエクスポートしました。再現性を容易にするために、すべての速度テストを Google Colab Pro ノートブックで実行しました。
モデル | サイズ (ピクセル) | マップボックス 50-95 | マップマスク 50-95 | 電車の時間 300エポック A100(時間) | スピード ONNX CPU (MS) | スピード TRT A100 (MS) | パラメータ (男) | フロップス @640(B) |
---|---|---|---|---|---|---|---|---|
YOLOv5n セグメント | 640 | 27.6 | 23.4 | 80:17 | 62.7 | 1.2 | 2.0 | 7.1 |
YOLOv5秒セグメント | 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 |
YOLOv51 セグ | 640 | 49.0 | 39.9 | 66:43 (2x) | 857.4 | 2.9 | 47.9 | 147.7 |
YOLOv5x セグメント | 640 | 50.7 | 41.4 | 62:56 (3x) | 1579.2 | 4.5 | 88.8 | 265.7 |
すべてのチェックポイントは、イメージ サイズ 640 およびすべてのデフォルト設定で、 lr0=0.01
およびweight_decay=5e-5
の SGD オプティマイザーを使用して 300 エポックにトレーニングされます。
https://wandb.ai/glenn-jocher/YOLOv5_v70_official に記録される実行
精度値は、COCO データセットの単一モデル、単一スケールのものです。
python segment/val.py --data coco.yaml --weights yolov5s-seg.pt
で再現します。
Colab Pro A100 High-RAM インスタンスを使用した 100 枚の推論画像の平均速度。値は推論速度のみを示します (NMS は画像ごとに約 1 ミリ秒を追加します)。
python segment/val.py --data coco.yaml --weights yolov5s-seg.pt --batch 1
で再現します。
FP32 で ONNX に、FP16 で TensorRT にエクスポートexport.py
ます。
python export.py --weights yolov5s-seg.pt --include engine --device 0 --half
YOLOv5 セグメンテーション トレーニングは--data coco128-seg.yaml
引数を使用した COCO128 セグメント セグメンテーション データセットの自動ダウンロードと、 bash data/scripts/get_coco.sh --train --val --segments
を使用した COCO セグメント データセットの手動ダウンロードをサポートしています。 python train.py --data coco.yaml
。
# シングル GPUpython セグメント/train.py --data coco128-seg.yaml --weights yolov5s-seg.pt --img 640# マルチ GPU DDPpython -m torch.distributed.run --nproc_per_node 4 --master_port 1 セグメント/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 # COCO val セグメントを分割してダウンロード (780MB、5000 個のイメージ)python セグメント/val.py --weights yolov5s-seg.pt --data coco.yaml --img 640 # 検証する
事前トレーニングされた YOLOv5m-seg.pt を使用して、bus.jpg を予測します。
python セグメント/predict.py --weights yolov5m-seg.pt --source data/images/bus.jpg
model = torch.hub.load( "ultralytics/yolov5", "custom", "yolov5m-seg.pt") # PyTorch Hub からロード (警告: 推論はまだサポートされていません)
YOLOv5s セグメント モデルを ONNX および TensorRT にエクスポートします。
python export.py --weights yolov5s-seg.pt --include onnx エンジン --img 640 --device 0
分類
YOLOv5 リリース v6.2 では、分類モデルのトレーニング、検証、展開がサポートされています。詳細についてはリリース ノートを参照し、クイックスタート チュートリアルについては YOLOv5 分類 Colab ノートブックにアクセスしてください。
4xA100 インスタンスを使用して、ImageNet 上で YOLOv5-cls 分類モデルを 90 エポックトレーニングし、同じデフォルトのトレーニング設定を使用して ResNet モデルと EfficientNet モデルを並行してトレーニングし、比較しました。 CPU 速度テスト用にすべてのモデルを ONNX FP32 にエクスポートし、GPU 速度テスト用に TensorRT FP16 にエクスポートしました。再現性を高めるために、すべての速度テストを Google Colab Pro で実行しました。
モデル | サイズ (ピクセル) | ACC トップ1 | ACC トップ5 | トレーニング 90エポック 4xA100 (時間) | スピード ONNX CPU (MS) | スピード TensorRT V100 (MS) | パラメータ (男) | フロップス @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 |
すべてのチェックポイントは、イメージ サイズ 224 およびすべてのデフォルト設定で、 lr0=0.001
およびweight_decay=5e-5
の SGD オプティマイザーを使用して 90 エポックにトレーニングされます。
https://wandb.ai/glenn-jocher/YOLOv5-Classifier-v6-2 に記録される実行
精度の値は、ImageNet-1k データセット上の単一モデル、単一スケールに対するものです。
python classify/val.py --data ../datasets/imagenet --img 224
で再現します
Google Colab Pro V100 High-RAM インスタンスを使用した 100 枚以上の推論画像の平均速度。
python classify/val.py --data ../datasets/imagenet --img 224 --batch 1
で再現します
FP32 で ONNX に、FP16 で TensorRT にエクスポートexport.py
ます。
python export.py --weights yolov5s-cls.pt --include engine onnx --imgsz 224
YOLOv5 分類トレーニングは、 --data
引数を使用した MNIST、Fashion-MNIST、CIFAR10、CIFAR100、Imagenette、Imagewoof、および ImageNet データセットの自動ダウンロードをサポートします。たとえば、MNIST でトレーニングを開始するには、 --data mnist
使用します。
# シングル GPUpython assign/train.py --model yolov5s-cls.pt --data cifar100 --epochs 5 --img 224 --batch 128# マルチ GPU DDPpython -m torch.distributed.run --nproc_per_node 4 - -master_port 1 assign/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 # ImageNet val 分割をダウンロード (6.3G、50000 画像)python assign/val.py --weights yolov5m-cls.pt --data ../datasets/imagenet --img 224 # 検証する
事前トレーニングされた YOLOv5s-cls.pt を使用して、bus.jpg を予測します。
python assign/predict.py --weights yolov5s-cls.pt --source data/images/bus.jpg
model = torch.hub.load("ultralytics/yolov5", "custom", "yolov5s-cls.pt") # PyTorch Hub からロード
トレーニング済みの YOLOv5s-cls、ResNet、および EfficientNet モデルのグループを ONNX および TensorRT にエクスポートします。
python export.py --weights yolov5s-cls.pt resnet50.ptefficientnet_b0.pt --include onnx エンジン --img 224
環境
検証済みの環境で数秒で始められます。詳細については、以下の各アイコンをクリックしてください。
貢献する
皆様からのご意見をお待ちしております。私たちは、YOLOv5 への貢献をできるだけ簡単かつ透明なものにしたいと考えています。開始するには貢献ガイドを参照し、YOLOv5 アンケートに記入して体験に関するフィードバックを送信してください。貢献者の皆様、ありがとうございました!
ライセンス
Ultralytics は、さまざまなユースケースに対応する 2 つのライセンス オプションを提供します。
AGPL-3.0 ライセンス: この OSI 承認のオープンソース ライセンスは、学生や愛好家にとって理想的であり、オープンなコラボレーションと知識の共有を促進します。詳細については、LICENSE ファイルを参照してください。
エンタープライズ ライセンス: 商用利用を目的として設計されたこのライセンスは、AGPL-3.0 のオープンソース要件をバイパスして、Ultralytics ソフトウェアと AI モデルを商用商品およびサービスにシームレスに統合することを許可します。あなたのシナリオに当社のソリューションを商用製品に組み込むことが含まれる場合は、Ultralytics ライセンスを通じてご連絡ください。
接触
YOLOv5 のバグ レポートや機能リクエストについては、GitHub Issues にアクセスし、質問やディスカッションについては Discord コミュニティに参加してください。