YOLOv5 vs PP-YOLOE+:詳細な技術比較
適切な物体検出モデルの選択は、精度、速度、実装の容易さのバランスを取る上で非常に重要な決定です。このページでは、広く採用されている汎用性と性能で知られる業界標準のUltralytics YOLOv5と、BaiduのPaddlePaddleエコシステムの高精度モデルであるPP-YOLOE+という、2つの著名なモデル間の詳細な技術比較を提供します。アーキテクチャの違い、パフォーマンスのベンチマーク、理想的なユースケースを検証し、コンピュータビジョンプロジェクトのために情報に基づいた選択ができるよう支援します。
Ultralytics YOLOv5:確立された業界標準
Ultralytics YOLOv5は、リリース以来、コンピュータビジョンコミュニティにおけるベンチマークとなっています。その卓越したスピードと精度のバランスが評価され、幅広い現実世界のアプリケーションにとって非常に実用的な選択肢となっています。PyTorchでの開発と、それを取り巻く包括的なエコシステムにより、開発者や研究者の間で人気を博しています。
Author: Glenn Jocher
Organization: Ultralytics
Date: 2020-06-26
GitHub: https://github.com/ultralytics/yolov5
Docs: https://docs.ultralytics.com/models/yolov5/
アーキテクチャと主な機能
YOLOv5のアーキテクチャは、効率的な設計の証であり、最大限の柔軟性と使いやすさを実現するために、完全にPyTorchで構築されています。
- Backbone: CSPDarknet53バックボーンを使用します。これは、計算を削減しながら高い特徴抽出機能を維持するために、Cross Stage Partial(CSP)モジュールを組み込んだDarknetのバリアントです。
- ネック: Path Aggregation Network (PANet)は、特徴集約に採用され、さまざまなバックボーンレベルからの特徴を効果的に結合して、さまざまなスケールでの検出を改善します。
- Head: YOLOv5は、事前定義されたアンカーボックスのセットに基づいてバウンディングボックスを予測するアンカーベースの検出ヘッドを使用します。このアプローチは、速度のために高度に最適化されています。
- スケーラビリティ: さまざまなサイズ(n、s、m、l、x)があり、ユーザーはエッジデバイス向けの軽量モデルから、最大の精度を実現する大型モデルまで、特定のニーズに合ったモデルを選択できます。
長所と短所
長所:
- 卓越したパフォーマンスバランス: YOLOv5は、推論速度と検出精度の間で素晴らしいトレードオフを提供し、多くのリアルタイム推論シナリオに適しています。
- 使いやすさ: 効率化されたユーザーエクスペリエンス、シンプルなPythonおよびCLIインターフェース、および充実したドキュメントで知られています。
- 優れたエコシステム: 活発な開発、大規模で支援的なコミュニティ、頻繁なアップデート、ノーコードトレーニングのためのUltralytics HUBのようなツールを含む、統合されたUltralyticsエコシステムの恩恵を受けられます。
- 学習効率: 効率的な学習プロセス、すぐに利用できる事前学習済みの重み、および一般的に多くの代替手段と比較してより低いメモリ要件を提供します。
- 多様性: 物体検出、インスタンスセグメンテーション、画像分類など、複数のタスクをサポートします。
弱点:
- 非常に高精度ですが、より新しいモデルはCOCOのようなベンチマークでそのmAPスコアを上回ることがあります。
- アンカーボックスに依存しているため、アンカーフリーな手法と比較して、特殊な形状のオブジェクトを持つデータセットでは、ハイパーパラメータの調整がより多く必要になる場合があります。
ユースケース
YOLOv5の速度と汎用性により、以下の用途に最適です。
- リアルタイム物体追跡: 監視、ロボティクス、自律システムに最適です。詳細はインスタンスセグメンテーションと追跡ガイドをご覧ください。
- エッジデバイス展開: 効率的なモデル(YOLOv5n、YOLOv5s)は、Raspberry PiやNVIDIA Jetsonのようなリソース制約のあるデバイスで効果的に動作します。
- 産業オートメーション:品質管理、欠陥検出、およびリサイクル自動化に利用されます。
PP-YOLOE+:PaddlePaddleエコシステムにおける高精度
Baiduによって開発されたPP-YOLOE+は、PaddlePaddle深層学習フレームワーク内で構築されたアンカーフリーのシングルステージオブジェクト検出器です。これはPP-YOLOEモデルを基盤としており、効率を維持しながら精度を向上させることを目的とした機能拡張を導入しています。
著者: PaddlePaddle Authors
所属: Baidu
日付: 2022-04-02
Arxiv: https://arxiv.org/abs/2203.16250
GitHub: https://github.com/PaddlePaddle/PaddleDetection/
ドキュメント: https://github.com/PaddlePaddle/PaddleDetection/blob/release/2.8.1/configs/ppyoloe/README.md
アーキテクチャと主な機能
PP-YOLOE+は、パフォーマンスを最大化するために、いくつかの最新の設計上の選択肢を取り入れています。
- Anchor-Free Design: 事前に定義されたアンカーボックスの必要性を排除し、パイプラインを簡素化し、ハイパーパラメータの調整を削減できます。用語集でアンカーフリー検出器の詳細をご覧ください。
- Backbone: 強力な特徴表現のために設計された、CSPRepResNetのような効率的なバックボーンを利用します。
- Neck: 堅牢な特徴融合のために、YOLOv5と同様の原理でPath Aggregation Network(PAN)を採用しています。
- Head: 分類タスクと回帰タスクを分離するデカップリングされたヘッド(ET-Head)を搭載しており、多くの場合、精度が向上します。
- 損失関数:分類スコアとローカリゼーション精度との間のアライメントを改善するために、Task Alignment Learning(TAL)やVariFocal Lossのような高度な手法を使用します。
長所と短所
長所:
- 特に、リーダーボードの上位を占めることが多い、より大きなモデルバリアントでは、高い精度が期待できます。
- アンカーフリーのアプローチは、場合によってはハイパーパラメータのチューニングを簡素化できます。
- 効率的な推論速度、特にTensorRTで最適化した場合。
- PaddlePaddleエコシステム内にうまく統合されています。
弱点:
- 主にPaddlePaddleフレームワーク向けに最適化されているため、PyTorchを好む大多数の開発者にとっては使いやすさが制限される可能性があります。
- Ultralytics YOLOモデルを取り巻く広範なエコシステムと比較して、コミュニティと利用可能なリソースは小規模です。
- 使いやすさやデプロイの容易性は重視されず、多くの場合、より多くのボイラープレートコードやフレームワーク固有の知識が必要になります。
ユースケース
PP-YOLOE+は以下に適しています。
- 産業用品質検査: 高精度は、製造業におけるAIでのわずかな欠陥の検出に役立ちます。
- スマートリテール: 在庫管理や顧客分析などのアプリケーションは、その精度から恩恵を受けることができます。
- PaddlePaddle中心のプロジェクト: PaddlePaddleフレームワークにすでに投資している、または標準化している開発者にとって理想的な選択肢です。
性能とベンチマーク:YOLOv5 vs. PP-YOLOE+
性能を比較する場合、ターゲットハードウェアと主な目標(速度と精度)によって選択が大きく左右されます。
- 精度 (mAP): PP-YOLOE+モデルは一般に、同様のサイズのYOLOv5と比較して、COCOデータセットでより高いmAPvalスコアを達成します。わずかなパーセンテージポイントの精度が重要なアプリケーションでは、PP-YOLOE+が有力な候補となります。
- 推論速度: Ultralytics YOLOv5は、特にCPUにおいて、優れた速度を発揮します。YOLOv5nモデルは非常に高速で、幅広いハードウェアでのリアルタイムアプリケーションに最適です。PP-YOLOE+はTensorRTを搭載したGPUでは高速ですが、YOLOv5は特にエッジデバイスにおいて、優れたワット当たりの性能を維持しています。
- 効率性(パラメータとFLOPs): YOLOv5モデルは軽量になるように設計されています。例えば、YOLOv5nはPP-YOLOE+sよりもパラメータとFLOPsが大幅に少なく、リソースが限られた環境への展開が容易です。
モデル | サイズ (ピクセル) |
mAPval 50-95 |
速度 CPU ONNX (ms) |
速度 T4 TensorRT10 (ms) |
params (M) |
FLOPs (B) |
---|---|---|---|---|---|---|
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 |
PP-YOLOE+t | 640 | 39.9 | - | 2.84 | 4.85 | 19.15 |
PP-YOLOE+s | 640 | 43.7 | - | 2.62 | 7.93 | 17.36 |
PP-YOLOE+m | 640 | 49.8 | - | 5.56 | 23.43 | 49.91 |
PP-YOLOE+l | 640 | 52.9 | - | 8.36 | 52.2 | 110.07 |
PP-YOLOE+x | 640 | 54.7 | - | 14.3 | 98.42 | 206.59 |
トレーニング、ユーザビリティ、およびエコシステム
生の性能だけでなく、開発者の体験も重要な要素です。Ultralytics YOLOv5が真価を発揮するのは、まさにこの点です。
-
YOLOv5: Ultralyticsエコシステムは、開発者の生産性を向上させるように設計されています。PyTorchネイティブであるため、最も人気のある深層学習ワークフローにシームレスに統合できます。使いやすさは比類がなく、シンプルで十分に文書化されたAPIにより、わずか数行のコードでトレーニング、検証、推論が可能です。十分に管理されたエコシステムは、継続的なアップデート、サポートのための巨大なコミュニティ、Weights & BiasesやClearMLなどのツールとの統合により、大きな利点を提供します。さらに、トレーニング効率が重要な焦点であり、モデルは迅速にトレーニングでき、必要なメモリも少なくなります。
-
PP-YOLOE+:トレーニングはPaddlePaddleフレームワークに限定されています。強力ではありますが、このことがPaddlePaddleのエコシステムに慣れていない開発者にとっては障壁となります。ドキュメントやコミュニティサポートは優れていますが、YOLOv5ほど広範またはアクセスしやすいものではありません。PyTorchベースのパイプラインに統合するには、追加の手順と潜在的な変換が必要となり、MLOpsライフサイクルに複雑さが加わります。
結論: どのモデルを選ぶべきか?
YOLOv5とPP-YOLOE+はいずれも優れたモデルですが、それぞれ異なるニーズに対応しています。
Ultralytics YOLOv5は、プロジェクトの大部分にとって推奨される選択肢です。 その卓越した速度と精度のバランスは、比類のない開発者フレンドリーなエコシステムと組み合わされ、最も実用的で効率的なオプションとなっています。新しいアイデアをプロトタイピングする初心者であろうと、エッジハードウェアに堅牢なシステムをデプロイする専門家であろうと、YOLOv5の使いやすさ、汎用性、および強力なコミュニティサポートは、開発サイクルを加速させ、成功を保証します。
PP-YOLOE+ は、絶対的に最高のmAPを達成することが主な目標であり、開発チームがすでにPaddlePaddleフレームワークに精通しているシナリオで優れた性能を発揮する特殊なツールです。特定の環境で作業することを厭わないのであれば、研究や、精度が妥協できないアプリケーションにとって強力なモデルとなります。
その他のモデルを見る
Ultralyticsは、物体検出で可能なことの限界を押し広げ続けています。さらに優れたパフォーマンスと機能を求める方には、YOLOv8や最先端のYOLO11のような新しいモデルを検討することをお勧めします。これらのモデルは、YOLOv5の基盤の上に構築されており、精度が向上し、サポートされるタスクが増え、効率も向上しています。詳細な比較は、メインの比較ページでご覧いただけます。