Ultralytics YOLOv5 🚀 は、Ultralyticsによって開発された、最先端の(SOTA)コンピュータビジョンモデルです。PyTorchフレームワークに基づいており、YOLOv5はその使いやすさ、速度、および精度で知られています。広範な研究開発の洞察とベストプラクティスを融合しており、さまざまな視覚AIタスクで人気の選択肢となっています。
プロジェクトアドレス: https://github.com/ultralytics/yolov5
YOLOv5は、さまざまなコンピュータビジョンタスクをサポートしています。
主な機能には、リアルタイム推論、テスト時間拡張(TTA)やモデルアンサンブルなどのさまざまなトレーニングテクニックのサポート、およびTFLite、ONNX、CoreML、TensorRTなどのエクスポート形式との互換性があります。
YOLOv5は、さまざまなニーズを満たすために、さまざまなモデルサイズを提供しています。
モデル | パラメータ数(M) | 速度 | 精度 | 適用シーン |
---|---|---|---|---|
YOLOv5n | 1.9 | 最速 | 低い | モバイルデバイス、エッジコンピューティング |
YOLOv5s | 7.2 | 速い | 中程度 | 汎用アプリケーション |
YOLOv5m | 21.2 | 中程度 | 高い | バランスの取れたパフォーマンス |
YOLOv5l | 46.5 | 遅い | 高い | 高精度が必要 |
YOLOv5x | 86.7 | 最も遅い | 最高 | 最高精度が必要 |
COCOデータセットでのパフォーマンス:
# リポジトリをクローン
git clone https://github.com/ultralytics/yolov5
cd yolov5
# 依存関係をインストール
pip install -r requirements.txt
import torch
# YOLOv5モデルをロード
model = torch.hub.load("ultralytics/yolov5", "yolov5s")
# 入力画像ソースを定義
img = "https://ultralytics.com/images/zidane.jpg"
# 推論を実行
results = model(img)
# 結果を処理
results.print() # 結果をコンソールに出力
results.show() # 結果をウィンドウに表示
results.save() # 結果をruns/detect/expに保存
# カメラを使用して推論
python detect.py --weights yolov5s.pt --source 0
# ローカル画像ファイルに対して推論
python detect.py --weights yolov5s.pt --source img.jpg
# ビデオファイルに対して推論
python detect.py --weights yolov5s.pt --source vid.mp4
# 画像ディレクトリに対して推論
python detect.py --weights yolov5s.pt --source path/to/images/
# YouTubeビデオに対して推論
python detect.py --weights yolov5s.pt --source 'https://youtu.be/LNwODJXcvt4'
# COCOデータセットでYOLOv5sを300エポックトレーニング
python train.py --data coco.yaml --epochs 300 --weights '' --cfg yolov5s.yaml --batch-size 64
# YOLOv5mをトレーニング
python train.py --data coco.yaml --epochs 300 --weights '' --cfg yolov5m.yaml --batch-size 40
# YOLOv5lをトレーニング
python train.py --data coco.yaml --epochs 300 --weights '' --cfg yolov5l.yaml --batch-size 24
# 複数GPU分散トレーニングを使用
python -m torch.distributed.run --nproc_per_node 4 --master_port 1 train.py --data coco.yaml --weights '' --cfg yolov5s.yaml --batch-size 64 --device 0,1,2,3
YOLOv5 v7.0バージョンでは、インスタンスセグメンテーション機能が導入され、COCOデータセットで最先端のパフォーマンスを達成しました。
モデル | mAP^box | mAP^mask | パラメータ数(M) | 速度(ms) |
---|---|---|---|---|
YOLOv5n-seg | 27.6 | 23.4 | 2.0 | 59.2 |
YOLOv5s-seg | 37.6 | 32.0 | 7.6 | 63.7 |
YOLOv5m-seg | 45.0 | 37.1 | 22.0 | 89.5 |
YOLOv5l-seg | 49.0 | 39.9 | 47.8 | 168.4 |
YOLOv5x-seg | 50.7 | 41.4 | 88.8 | 265.7 |
# セグメンテーションモデルをトレーニング
python segment/train.py --data coco128-seg.yaml --weights yolov5s-seg.pt --img 640
# セグメンテーションモデルを検証
python segment/val.py --weights yolov5s-seg.pt --data coco.yaml --img 640
# セグメンテーションモデルを使用して予測
python segment/predict.py --weights yolov5m-seg.pt --source data/images/bus.jpg
YOLOv5 v6.2バージョンでは、画像分類機能が追加され、ImageNetデータセットで90エポックトレーニングした結果:
モデル | Top1精度 | Top5精度 | パラメータ数(M) | 速度(ms) |
---|---|---|---|---|
YOLOv5s-cls | 71.5% | 90.2% | 5.5 | 1.7 |
YOLOv5m-cls | 75.9% | 92.9% | 13.0 | 2.8 |
YOLOv5l-cls | 78.0% | 94.0% | 27.4 | 4.9 |
YOLOv5x-cls | 79.0% | 94.4% | 55.4 | 8.7 |
# CIFAR-100データセットでトレーニング
python classify/train.py --model yolov5s-cls.pt --data cifar100 --epochs 5 --img 224 --batch 128
# ImageNetモデルを検証
python classify/val.py --weights yolov5m-cls.pt --data ../datasets/imagenet --img 224
# 画像分類予測
python classify/predict.py --weights yolov5s-cls.pt --source data/images/bus.jpg
YOLOv5は、さまざまなデプロイメント形式をサポートしています。
# ONNX形式にエクスポート
python export.py --weights yolov5s.pt --include onnx
# TensorRT形式にエクスポート
python export.py --weights yolov5s.pt --include engine
# CoreML形式にエクスポート(iOS用)
python export.py --weights yolov5s.pt --include coreml
# TFLite形式にエクスポート(モバイルデバイス用)
python export.py --weights yolov5s.pt --include tflite
反射とスケール拡張により予測精度を向上させます。
python val.py --data coco.yaml --img 1536 --iou 0.7 --augment
複数のモデルを組み合わせて、より優れたパフォーマンスを実現します。
python val.py --data coco.yaml --weights yolov5s.pt yolov5m.pt yolov5l.pt yolov5x.pt
最適なトレーニングハイパーパラメータを自動的に見つけます。
python train.py --data coco.yaml --evolve 300
YOLOv5は、複数の主要なAIプラットフォームと深く統合されています。
YOLOv5は、物体検出分野における重要なマイルストーンとして、その優れたパフォーマンス、使いやすさ、および豊富な機能により、学術研究および産業アプリケーションにとって好ましいフレームワークとなっています。初心者であろうとプロの開発者であろうと、YOLOv5のエコシステムで適切なソリューションを見つけることができます。