YOLOv10とYOLOv5#
適切なニューラルネットワークアーキテクチャを選ぶことは、本番環境でのコンピュータービジョンパイプラインを成功させるうえで重要です。このページでは、リアルタイム物体検出の発展に大きな影響を与えた2つのモデル、YOLOv10とYOLOv5を詳しく技術的に比較します。どちらのモデルもAIコミュニティに大きな影響を与えてきましたが、ディープラーニングのアーキテクチャ設計において異なる時代と理念を代表しています。
このガイドでは、平均適合率(mAP)、推論レイテンシ、パラメーター効率、エコシステムのサポートに基づいてこれらのアーキテクチャを評価し、デプロイのニーズに最適なモデルを選べるようにします。
モデルの概要#
YOLOv10:リアルタイムのエンドツーエンド物体検出#
YOLOv10は清華大学の研究者によって開発され、後処理を不要にすることで、物体検出に新たなアプローチを導入しました。
- 著者: Ao Wang、Hui Chen、Lihao Liuほか
- 組織: 清華大学
- 日付: 2024-05-23
- 研究論文: arXiv:2405.14458
- ソースコード: YOLOv10 GitHubリポジトリ
YOLOv10を特徴づける画期的な技術は、エンドツーエンドのNMSフリー設計です。従来のYOLOモデルは、重複するバウンディングボックスを除外するために非極大値抑制(NMS)に依存していました。YOLOv10はNMSフリーのトレーニングに一貫したデュアル割り当てを使用し、推論レイテンシのばらつきを大幅に抑え、デプロイのロジックを簡素化します。さらに、アーキテクチャには効率性と精度を総合的に重視した設計が採用されており、さまざまなコンポーネントを徹底的に最適化して計算の重複を削減します。
YOLOv5:使いやすさの業界標準#
Ultralytics PyTorchリポジトリの立ち上げ直後にリリースされたYOLOv5は、オープンソースのビジョンAIフレームワークに対する開発者の期待を一新しました。現在も、世界で最も広くデプロイされているアーキテクチャの1つです。
- 著者: Glenn Jocher
- 組織: Ultralytics
- 日付: 2020-06-26
- ソースコード: YOLOv5 GitHubリポジトリ
YOLOv5は、使いやすさと、十分に保守されたエコシステムで高く評価されています。PyTorchのみで実装されており、トレーニング、検証、ONNXやTensorRTなどの形式へのエクスポートをすぐに利用できるため、「ゼロから一流へ」のシームレスな体験を提供しました。純粋な物体検出を主な対象とするYOLOv10とは異なり、YOLOv5は優れた汎用性を備えており、統一されたPython APIでインスタンスセグメンテーションと画像分類に対応しています。
パフォーマンスと指標の比較#
速度と精度の関係を可視化することは、速度の制約内で最も高い精度を提供するモデルを特定するうえで重要です。こうした性能指標を理解することは、特定のハードウェア制約に合ったモデルを選ぶための基本です。
| モデル | サイズ (ピクセル) | mAPval 50-95 | 速度 CPU ONNX (ms) | 速度 T4 TensorRT10 (ms) | パラメーター (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| YOLOv10n | 640 | 38.5 | - | 1.84 | 2.3 | 6.7 |
| YOLOv10s | 640 | 46.3 | - | 2.49 | 7.2 | 21.6 |
| YOLOv10m | 640 | 51.1 | - | 4.74 | 15.4 | 59.1 |
| YOLOv10b | 640 | 52.5 | - | 5.74 | 19.1 | 92.0 |
| YOLOv10l | 640 | 53.2 | - | 7.28 | 24.4 | 120.3 |
| YOLOv10x | 640 | 54.4 | - | 10.70 | 29.5 | 160.4 |
| YOLOv5n | 640 | 28.0 | - | 1.12 | 1.9 | 4.5 |
| YOLOv5s | 640 | 37.4 | - | 1.92 | 7.2 | 16.5 |
| YOLOv5m | 640 | 45.4 | - | 4.03 | 21.2 | 49.0 |
| YOLOv5l | 640 | 49.0 | - | 6.61 | 46.5 | 109.1 |
| YOLOv5x | 640 | 50.7 | - | 11.89 | 86.7 | 205.7 |
技術分析#
- 精度(mAP): YOLOv10は、精度において世代間の明確な優位性を示しています。たとえば、YOLOv10-Xモデルは54.4% mAPvalを達成し、YOLOv5x(50.7% mAP)を上回ります。この飛躍は主に、2024年に導入されたNMSフリーのトレーニング戦略とアーキテクチャの改良によるものです。
- 推論レイテンシ: YOLOv5モデルはT4 TensorRTの生ベンチマークで非常に高速ですが(例:YOLOv5nは1.12ms)、YOLOv10はNMSの後処理ステップを完全に取り除きます。エンドツーエンドの実運用デプロイでは、YOLOv10のNMSフリー設計により、レイテンシの一貫性と決定性が向上します。これは、自動運転車やロボティクスなどのリアルタイムアプリケーションで重要です。
- パラメーター効率: YOLOv10モデルは、非常に優れた性能バランスを維持しています。YOLOv10-Sは、YOLOv5sと同じ7.2Mのパラメーター数で46.3% mAPを達成します。YOLOv5sのmAPは37.4%です。
NVIDIA JetsonなどのエッジAIデバイスにデプロイする場合、NMSロジックを持たないモデル(YOLOv10や、nms=Falseを指定してエクスポートしたYOLO26など)は、多くの場合、TensorRTによりスムーズにコンパイルでき、CPUへのフォールバック処理を回避できます。
ユースケースと推奨事項#
YOLOv10とYOLOv5のどちらを選ぶかは、具体的なプロジェクト要件、デプロイの制約、エコシステムに関する希望によって異なります。
YOLOv10を選ぶ場合#
YOLOv10は、次の用途に適しています:
- NMSを使用しないリアルタイム検出: 非最大抑制を使用しないエンドツーエンド検出によって、デプロイを簡素化できるアプリケーション。
- 速度と精度のバランス: さまざまなモデルスケールで、推論速度と検出精度の優れたバランスが必要なプロジェクト。
- レイテンシーが安定している必要のあるアプリケーション: ロボティクスや自律システムなど、予測可能な推論時間が重要なデプロイシナリオ。
YOLOv5を選ぶ場合#
YOLOv5は、次のような場合に推奨されます。
- 実績のある本番システム: YOLOv5の長年にわたる安定性の実績、充実したドキュメント、幅広いコミュニティサポートが重視される既存のデプロイ環境です。
- リソースが限られたトレーニング: GPUリソースが限られており、YOLOv5の効率的なトレーニングパイプラインと低いメモリ要件が有利となる環境です。
- 幅広いエクスポート形式への対応: ONNX、TensorRT、CoreML、LiteRTなど、多様な形式でのデプロイが必要なプロジェクトです。
Ultralytics (YOLO26)を選ぶ場合#
多くの新規プロジェクトにおいて、Ultralytics YOLO26はパフォーマンスと開発者体験を最適なバランスで提供します。
- NMSを使用しないエッジデプロイ: 非最大抑制の後処理を複雑化させずに、安定した低レイテンシー推論を必要とするアプリケーション。
- CPUのみの環境: 専用のGPUアクセラレーションを備えていないデバイスで、YOLO26の最大43%高速なCPU推論が大きな優位性を発揮します。
- 小物体検出: ドローンによる航空画像やIoTセンサーの分析など、ProgLossとSTALによって小さな物体の精度が大幅に向上する難しいシナリオ。
Ultralyticsの強み#
YOLOv10は優れた検出性能を備えていますが、学術機関のリポジトリに依存すると、本番パイプラインが複雑になることがあります。公式のUltralytics Pythonパッケージを使用すると、高度な機能に加え、YOLOv5とYOLOv10の両方に対応する統一されたエコシステムを利用できます。
- トレーニング効率: Ultralytics YOLOアーキテクチャは、トレーニング時のメモリ要件を抑えるよう徹底的に最適化されています。膨大なCUDAメモリを必要とする重いTransformerモデル(RT-DETRなど)とは異なり、一般的なコンシューマー向けGPUでYOLOv5とYOLOv10を無理なくトレーニングできます。
- エコシステムとの統合: Ultralytics Platformとの統合により、開発者はデータセットを視覚的に管理し、Weights & Biasesを使用して実験を追跡し、ハイパーパラメーターを自動的に調整できます。
コード例:シームレスなトレーニング#
Ultralyticsライブラリでは、モデル文字列を変更するだけで、これらのアーキテクチャを簡単に切り替えられます。トレーニングパイプラインがデータ拡張、スケーリング、オプティマイザーの設定を自動で処理します。
from ultralytics import YOLO
# YOLOv5を使用するには:
# model = YOLO("yolov5su.pt")
# YOLOv10を使用するには:
model = YOLO("yolov10s.pt")
# カスタムデータセットでモデルをトレーニングします
results = model.train(
data="coco8.yaml",
epochs=100,
imgsz=640,
batch=16,
device=0, # GPU 0を使用します
)
# トレーニング済みモデルをONNX形式にエクスポートします
path = model.export(format="onnx")次世代モデル:Ultralytics YOLO26#
今日、新しい機械学習プロジェクトを始める場合は、最新のUltralytics YOLO26を評価することを強くおすすめします。2026年1月にリリースされたYOLO26は、過去5年間の優れた技術革新を組み合わせた、最先端のモデルです。
YOLO26は、YOLOv10が先駆けとなったエンドツーエンドのNMSフリー設計をオプションの1対1ヘッド(nms=False)として標準で採用し、高速かつ決定性の高いデプロイを可能にします。さらに、YOLO26では次のような重要な技術革新が導入されています。
- CPU推論が最大43%高速化: Distribution Focal Loss(DFL)モジュールを取り除くことで、YOLO26は標準的なCPUで大幅な高速化を実現し、モバイルデプロイや低消費電力のIoTセンサーに最適な選択肢となります。
- MuSGDオプティマイザー: Moonshot AIのKimi K2など、大規模言語モデル(LLM)のトレーニング手法に着想を得たYOLO26は、SGDとMuonを組み合わせたハイブリッド方式を採用しています。これにより、従来のYOLOモデルで使われていた標準的なSGDやAdamWオプティマイザーと比べて、トレーニングが非常に安定し、収束が大幅に速くなります。
- ProgLoss + STAL: これらの高度な損失関数により、小物体認識が大幅に向上します。これは、ドローン画像や航空セキュリティアプリケーションで重要です。
- タスク別の高度な機能: YOLOv10がバウンディングボックス検出に特化しているのに対し、YOLO26は、姿勢推定向けのResidual Log-Likelihood Estimation(RLE)や回転バウンディングボックス(OBB)向けの専用角度損失など、すべてのタスクに対して専用のアーキテクチャ改良を提供します。
物体検出の幅広い動向を調べている場合は、これらのアーキテクチャをほかのフレームワークと比較することにも関心があるかもしれません。より包括的なベンチマークについては、YOLO11とEfficientDetの比較やRT-DETRとYOLOv8の比較をご覧ください。
YOLOv5の確かな実績、YOLOv10のNMSフリーの革新、YOLO26の比類のない最先端の性能のいずれを活用する場合でも、Ultralyticsエコシステムは、ビジョンAIアプリケーションを迅速かつ効率的に実現するために必要なツールを提供します。