YOLOv8 YOLOv5比較:リアルタイム物体検出の進化
めまぐるしく変化するコンピュータ・ビジョンの世界で、YOLO (You Only Look Once)ほど強く響く名前はない。開発者 UltralyticsYOLOv5 YOLOv8 、物体検出の歴史において極めて重要な瞬間である。YOLOv5 2020年にリリースされ、使いやすさとスピードの業界標準を打ち立てたが、YOLOv8 2023年に発売され、精度とアーキテクチャの柔軟性の限界をさらに押し上げた。
この包括的な比較では、これら2つの強力なモデルの技術的な違い、アーキテクチャの進化、パフォーマンス指標を探ります。レガシーシステムを保守している場合でも、最先端のAIソリューションを構築している場合でも、これらのバージョン間のニュアンスを理解することは、十分な情報に基づいた導入の意思決定を行う上で極めて重要です。
建築の進化
YOLOv5 YOLOv8 移行は、設計思想の大きな転換を意味し、確立されたアンカー・ベースの手法から、最新のアンカー・フリーのアプローチへと移行した。この進化は、モデルのトレーニングと汎化における共通の課題に対処するものである。
YOLOv5:アンカー・ベース・スタンダード
YOLOv5 5は、アンカーベースの検出スキームを利用している。これは、モデルが特定のデータセットに合わせて事前に定義された「アンカーボックス」からオフセットを予測することを意味する。このアプローチは非常に効果的ではあるが、多くの場合、カスタムデータセットに最適なアンカー寸法を計算する必要があり、これは "オートアンカー "として知られるプロセスである。
- バックボーン:CSPDarknet53 バックボーンとフォーカスレイヤー(以前のバージョン)またはステムレイヤー(以降のバージョン)を使用して画像をダウンサンプリングします。
- ネック特徴フュージョンにPANet(Path Aggregation Network)を採用。
- ヘッド:最終出力層まで、分類タスクとローカライゼーションタスクが特徴を共有する結合ヘッド構造。
YOLOv8:アンカーフリーのイノベーター
YOLOv8 、アンカーフリーの検出ヘッドが導入され、手動でのアンカーボックス定義が不要になりました。これにより、トレーニングパイプラインが簡素化され、多様な形状やアスペクト比を持つオブジェクトのパフォーマンスが向上します。
- C2fモジュール: YOLOv55に搭載されていたC3モジュールを置き換える。C2f(Cross-Stage Partial Bottleneck with two convolutions)モジュールは、フットプリントを軽量に保ちながら、勾配フローと特徴抽出機能を向上させるように設計されています。
- 分離されたヘッド: YOLOv8 YOLOv5異なり、YOLOv8 、対象性、分類、回帰の各タスクを別々のブランチに分離している。これにより、各ブランチが特定のタスクに集中できるようになり、より高い精度と高速な収束につながります。
- 損失関数: YOLOv8 、タスクに沿った割り当てと分布フォーカルロスを採用し、トレーニング中の正負サンプルの扱い方をさらに洗練させた。
YOLO11:最新世代
YOLOv8 YOLOv5大幅に改善されているが、Ultralytics 革新を続けている。最近リリースされた YOLO11は、さらに高い効率と精度を提供します。新しいプロジェクトでは、YOLO11 検討することを強くお勧めします。
パフォーマンス分析
性能を比較する際には、精度mAP)と推論速度の両方を見ることが重要です。下の表は、YOLOv8 COCO データセットにおいて、同規模のYOLOv5 比較して一貫して高い平均精度(mAP)を達成し、推論速度も同等かそれ以上であることを示しています。
| モデル | サイズ (ピクセル) | mAP値 50-95 | 速度 CPU ONNX (ms) | 速度 T4 TensorRT10 (ms) | params (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| YOLOv8n | 640 | 37.3 | 80.4 | 1.47 | 3.2 | 8.7 |
| YOLOv8s | 640 | 44.9 | 128.4 | 2.66 | 11.2 | 28.6 |
| YOLOv8m | 640 | 50.2 | 234.7 | 5.86 | 25.9 | 78.9 |
| YOLOv8l | 640 | 52.9 | 375.2 | 9.06 | 43.7 | 165.2 |
| YOLOv8x | 640 | 53.9 | 479.1 | 14.37 | 68.2 | 257.8 |
| YOLOv5n | 640 | 28.0 | 73.6 | 1.12 | 2.6 | 7.7 |
| YOLOv5s | 640 | 37.4 | 120.7 | 1.92 | 9.1 | 24.0 |
| YOLOv5m | 640 | 45.4 | 233.9 | 4.03 | 25.1 | 64.2 |
| YOLOv5l | 640 | 49.0 | 408.4 | 6.61 | 53.2 | 135.0 |
| YOLOv5x | 640 | 50.7 | 763.2 | 11.89 | 97.2 | 246.4 |
主なポイント
- 精度の大幅な向上: YOLOv8n(Nano)は、YOLOv5n(28.0)と比較してmAP(37.3)が大幅に向上しており、最小のv8モデルは、より大きなYOLOv5sとほぼ同じ精度です。
- 計算効率: YOLOv8 モデルは、いくつかのバリエーションでFLOPが若干高くなりますが、トレードオフの結果、精度が不釣り合いに高くなり、計算投資に対するリターンが良くなります。
- 推論速度: YOLOv5 、特に古いハードウェアや純粋にCPU エッジ・デバイス上では、依然として非常に高速です。しかし、YOLOv8 、以下のような最新のGPUとアクセラレーターに最適化されている。 TensorRTに最適化されており、速度差は大幅に縮まっている。
Ultralytics YOLOv8:マルチタスク・パワーハウス
著者Glenn Jocher、Ayush Chaurasia、Jing Qiu
組織:Ultralytics
日付:2023-01-10
Docsyolov8
GitHubultralytics
YOLOv8 、コンピュータビジョンのための汎用性の高いオールインワンのソリューションとして設計されました。インスタンスのセグメンテーション、ポーズ推定、分類、オリエンテッドバウンディングボックス(OBB)検出など、単純な物体検出にとどまらない幅広いタスクをネイティブにサポートしています。
長所
- 最先端の精度: COCO Roboflow 100のような標準的なベンチマークで優れた検出性能を発揮。
- 統一されたフレームワーク: を基盤としている。
ultralyticsPython パッケージは、トレーニングのシームレスな体験を保証します、 検証、そしてデプロイメントを実現します。 - 開発者に優しい:APIは驚くほど直感的だ。タスク間の切り替え(例えば、検出からセグメンテーション)は、CLI またはPython コードの引数を1つ変更するだけで済むことが多い。
- トレーニングの効率化:スマートな」データセットの増強や自動的なハイパーパラメータのチューニングなどの機能により、データから展開されたモデルまでの経路が効率化されます。
弱点
- リソースの使用:より大きなバリアント(LとX)は、v5の前バージョンと比較して、トレーニング中にリソースを消費する可能性があり、GPU上でより多くのVRAMを必要とします。
Ultralytics YOLOv5:レガシー・スタンダード
Author: Glenn Jocher
Organization:Ultralytics
Date: 2020-06-26
Docs:https://docs.ultralytics.com/models/yolov5/
GitHub:https://github.com/ultralytics/yolov5
YOLOv5 5はAIのアクセシビリティに革命をもたらした。活用することで PyTorchを活用することで、ディープラーニングの経験が浅い開発者でもカスタムオブジェクト検出器をトレーニングできるようにした。そのエコシステムは広大で、何千ものチュートリアル、統合、実際のデプロイメントがある。
長所
- 実証された安定性: YOLOv5 、長年にわたる生産環境での積極的な使用により、最も安定した信頼性の高いビジョンモデルのひとつとなりました。
- 幅広い展開をサポート:以下のエクスポートフォーマットを幅広くサポート ONNXやCoreML、TFLite エクスポート形式を幅広くサポートしているため、携帯電話からRaspberry Piまで、さまざまなハードウェアターゲットに最適です。
- コミュニティのエコシステム:大規模なコミュニティにより、ほとんどすべてのエッジケースやエラーに対する解決策が、フォーラムやGitHub issueですぐに利用できる。
弱点
- 精度の天井が低い:2020年からのモデルであるため、精度の指標はv8や YOLO11.
- アンカー管理: アンカーボックスの計算が必要であり、これは、独自または非常に変動の大きいデータセットを持つユーザーにとって摩擦点になる可能性があります。
コードの統合と使いやすさ
Ultralytics モデルの特徴の一つは、共有された合理化されたAPIです。精度の高さでYOLOv8 選んでも、レガシー・サポートでYOLOv5 選んでも、UltralyticsのAPIは同じです。 ultralytics パッケージはワークフローを統一している。これにより、参入障壁が大幅に下がり、簡単に実験ができるようになる。
わずか数行のPython コードで、学習、検証、予測を行うことができる。
from ultralytics import YOLO
# Load a YOLOv8 model (recommended for new projects)
model_v8 = YOLO("yolov8n.pt")
# Train the model on the COCO8 dataset
results_v8 = model_v8.train(data="coco8.yaml", epochs=100, imgsz=640)
# Run inference on an image
model_v8.predict("https://ultralytics.com/images/bus.jpg", save=True)
# Load a YOLOv5 model (automatically handled by the same package)
model_v5 = YOLO("yolov5su.pt") # 'u' suffix indicates updated v5 model structure
# The same API works for training and inference
results_v5 = model_v5.train(data="coco8.yaml", epochs=100, imgsz=640)
統一されたエコシステムの利点
統一されたUltralytics エコシステムを使用することで、Ultralytics HUBのような強力なツールにアクセスし、コードなしでモデルのトレーニングや可視化を行うことができます。このプラットフォームはデータセットの管理とコラボレーションを簡素化し、チームはインフラストラクチャの管理よりも問題解決に集中することができます。
推奨ユースケース
YOLOv8 YOLOv5 どちらを選ぶかは、特定のプロジェクト要件、ハードウェアの制約、開発目標によって決まる。
YOLOv8選ぶとき
- 新しいプロジェクトゼロから始める場合、YOLOv8 (または新しい YOLO11)が明らかに勝者です。その優れた精度は、あなたのアプリケーションの競争力と堅牢性を保証します。
- 複雑なタスク ポーズ推定や セグメンテーションを必要とするアプリケーションでは、YOLOv88のネイティブ・マルチタスク・サポートが不可欠です。
- 高精度のニーズ: 医療画像や欠陥検出のような分野では、YOLOv8 8の改良されたmAP 、偽陰性を大幅に減らすことができる。
YOLOv5選ぶとき
- レガシーのメンテナンス: YOLOv5 中心に構築された既存のプロダクション・パイプラインがうまく機能している場合、移行はすぐに必要ではないかもしれない。
- 極端なエッジ制約:ミリ秒単位のレイテンシが重要で、精度が二の次になるような極端な低消費電力デバイスの場合、特定の古いCPUでは、より軽量なYOLOv5 Nanoのバリエーションが、生のスループットでわずかに優位を保つ可能性がある。
- チュートリアルの互換性:オリジナルのYOLOv5 リポジトリ構造に大きく依存している特定のレガシーチュートリアルやコースに従っている場合。
結論
YOLOv5 YOLOv8 ともに、AIを利用しやすく、速く、正確にするというUltralyticsコミットメントを体現している。 YOLOv5は、物体検出を民主化し、大規模なコミュニティを構築し、ユーザビリティの基準を設定しました。 YOLOv8はこの基盤の上に、最先端の性能と汎用性を実現するアーキテクチャーの革新を導入しています。
大多数のユーザーにとって YOLOv8-またはさらに進化した YOLO11-をお勧めします。機械学習のライフサイクル全体を簡素化する最新の機能豊富なソフトウェア・エコシステムに支えられ、スピードと精度の最高のバランスを提供します。
また、Ultralytics GitHubにアクセスして、ビジョンAIの未来に貢献してください。