Home
Login

PyTorchをベースとした最先端のリアルタイム物体検出モデルYOLOv5。物体検出、画像セグメンテーション、画像分類タスクをサポート。

AGPL-3.0Python 54.3kultralyticsyolov5 Last Updated: 2025-06-21

YOLOv5プロジェクト詳細

プロジェクト概要

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データセットでのパフォーマンス:

  • YOLOv5s: mAP@0.5:0.95 = 37.4%, 速度6.4ms(V100)
  • YOLOv5m: mAP@0.5:0.95 = 45.4%, 速度8.2ms(V100)
  • YOLOv5l: mAP@0.5:0.95 = 49.0%, 速度10.1ms(V100)
  • YOLOv5x: mAP@0.5:0.95 = 50.7%, 速度12.1ms(V100)

インストールとクイックスタート

環境要件

  • Python >= 3.8.0
  • PyTorch >= 1.8

インストール手順

# リポジトリをクローン
git clone https://github.com/ultralytics/yolov5
cd yolov5

# 依存関係をインストール
pip install -r requirements.txt

PyTorch Hubを使用した推論

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トレーニング

# 複数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

高度な機能

テスト時間拡張(TTA)

反射とスケール拡張により予測精度を向上させます。

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プラットフォームと深く統合されています。

  • Weights & Biases: 実験の追跡と可視化
  • Comet ML: 実験の管理と監視
  • Roboflow: データのラベル付けと管理
  • Intel OpenVINO: モデルの最適化とデプロイ
  • Neural Magic: モデルのスパース化と高速化
  • Ultralytics HUB: ワンストップのトレーニングとデプロイプラットフォーム

コミュニティとサポート

まとめ

YOLOv5は、物体検出分野における重要なマイルストーンとして、その優れたパフォーマンス、使いやすさ、および豊富な機能により、学術研究および産業アプリケーションにとって好ましいフレームワークとなっています。初心者であろうとプロの開発者であろうと、YOLOv5のエコシステムで適切なソリューションを見つけることができます。

Star History Chart