YOLOv5 vs. EfficientDet: リアルタイム物体検出アーキテクチャの評価
コンピュータビジョンの新しいプロジェクトを開始する際、適切なニューラルネットワークアーキテクチャを選択することは、最も重要な決定事項の1つです。本ガイドでは、Ultralytics YOLOv5とGoogleのEfficientDetの技術的な詳細を比較します。そのアーキテクチャ、パフォーマンス指標、およびトレーニングエコシステムを分析することで、開発者や研究者が特定のデプロイメント環境に最適な物体検出モデルを見極める一助となることを目指します。
EfficientDetが複合スケーリングと特徴融合における新たな概念を導入した一方で、YOLOv5は、非常に直感的なPyTorch実装、効率化されたユーザーエクスペリエンス、そしてスピードと精度の卓越したバランスによって、高性能AIへのアクセスを民主化し、業界に革命をもたらしました。
Ultralytics YOLOv5: アクセシビリティの業界標準
2020年夏にリリースされたYOLOv5は、YOLOの系譜における重要な転換点となりました。C言語ベースのDarknetフレームワークからネイティブなPyTorchへと移行し、開発者がモデルを迅速に構築、トレーニング、デプロイするための定番アーキテクチャとなりました。
- 著者: Glenn Jocher
- 組織: Ultralytics
- 日付: 2020-06-26
- GitHub: https://github.com/ultralytics/yolov5
- ドキュメント: https://platform.ultralytics.com/ultralytics/yolov5
アーキテクチャの革新
YOLOv5は、シームレスな機械学習ライフサイクルを優先する高度に最適化されたアーキテクチャで高く評価されています。改良されたCSPDarknet53バックボーンとPath Aggregation Network (PANet) ネックを組み合わせることで、複数の空間スケールにわたる特徴伝播を劇的に改善しています。
主な進歩は以下の通りです。
- Mosaicデータ拡張: このトレーニング手法は、4つの異なるトレーニング画像を1つのモザイクに結合します。これにより、モデルは複雑な空間コンテキスト内で物体を識別する方法を学習せざるを得なくなり、小さなターゲットを検出する能力が大幅に向上します。
- 自動学習アンカーボックス: トレーニング開始前に、YOLOv5はカスタムトレーニングデータを分析し、k-meansクラスタリングを使用して最適なアンカーボックスサイズを自動的に計算します。
- メモリ効率: 重いTransformerベースのモデルと比較して、YOLOv5はトレーニングおよび推論中のメモリ消費量が大幅に少なく、コンシューマーグレードのハードウェアでもスムーズに実行できます。
EfficientDet: スケーラブルな物体検出
2019年にGoogle Researchによって導入されたEfficientDetは、スケーラブルな物体検出器のファミリーを提供することを目的としていました。EfficientNet画像分類バックボーンをベースにしており、新規の特徴融合メカニズムを導入しています。
- 著者: Mingxing Tan, Ruoming Pang, and Quoc V. Le
- 組織: Google
- 日付: 2019-11-20
- Arxiv: https://arxiv.org/abs/1911.09070
- GitHub: https://github.com/google/automl/tree/master/efficientdet
- ドキュメント: https://github.com/google/automl/tree/master/efficientdet#readme
アーキテクチャの革新
EfficientDetの核心となる提案は、スケーリングと特徴集約に対する体系的なアプローチにあります。
- BiFPN (双方向特徴ピラミッドネットワーク): 上から下へ情報を渡すだけの従来のFPNとは異なり、BiFPNは、異なる入力特徴の重要度を学習するための学習可能な重みを導入することで、高速かつ容易なマルチスケール特徴融合を実現しています。
- 複合スケーリング: EfficientDetは、バックボーン、特徴ネットワーク、およびボックス/クラス予測ネットワークの解像度、深さ、幅を同時にスケーリングし、軽量なD0から大規模なD7まで幅広いモデルを実現します。
EfficientDetはTensorFlowエコシステムとAutoMLライブラリに大きく依存していますが、YOLOv5はPyTorch内でネイティブに動作し、多くの開発者がより直感的でPythonらしく、デバッグが容易だと感じるワークフローを提供します。
パフォーマンスとメトリクスの比較
これらのモデルを比較する際は、COCOデータセットのような標準的なベンチマークでのパフォーマンスを評価することが重要です。以下の表は、サイズ、計算要求(FLOPs)、および推論速度の間のトレードオフを示しています。
| モデル | サイズ (ピクセル) | mAPval 50-95 | 速度 CPU ONNX (ms) | 速度 T4 TensorRT10 (ms) | パラメータ (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 |
| EfficientDet-d0 | 640 | 34.6 | 10.2 | 3.92 | 3.9 | 2.54 |
| EfficientDet-d1 | 640 | 40.5 | 13.5 | 7.31 | 6.6 | 6.1 |
| EfficientDet-d2 | 640 | 43.0 | 17.7 | 10.92 | 8.1 | 11.0 |
| EfficientDet-d3 | 640 | 47.5 | 28.0 | 19.59 | 12.0 | 24.9 |
| EfficientDet-d4 | 640 | 49.7 | 42.8 | 33.55 | 20.7 | 55.2 |
| EfficientDet-d5 | 640 | 51.5 | 72.5 | 67.86 | 33.7 | 130.0 |
| EfficientDet-d6 | 640 | 52.6 | 92.8 | 89.29 | 51.9 | 226.0 |
| EfficientDet-d7 | 640 | 53.7 | 122.0 | 128.07 | 51.9 | 325.0 |
バランスの取れた分析
YOLOv5は、デプロイの柔軟性とハードウェアアクセラレーションとの高い互換性が強みです。T4 GPUでの驚異的なTensorRTの速度に注目してください。これにより、YOLOv5は高スループットのビデオ分析やリアルタイム推論パイプラインに最適です。さらに、Ultralyticsエコシステムにより、ONNX、CoreML、TensorRTなどの形式へのエクスポートが1行のコマンドで完了します。
EfficientDetは優れたパラメータ効率を提供します。特定のパラメータ数において、高い平均適合率 (mAP)をしばしば達成します。しかし、BiFPN層の複雑なルーティングのため、この理論上の効率がエッジGPUでの実際の推論時間の短縮に常に直結するとは限りません。これは、計算負荷というよりもメモリ帯域幅の制限を受ける可能性があるためです。
エコシステムと使いやすさ
Ultralyticsモデルを選択する決定的な利点は、周辺のエコシステムにあります。YOLOv5は、強力なコミュニティサポートを受ける、手厚く管理・開発されたリポジトリの一部です。
Ultralyticsプラットフォームの導入により、ユーザーはデータ収集からデプロイまでシームレスに移行できます。このプラットフォームは、自動アノテーション、クラウドトレーニング、モデル監視をすぐに利用できます。対照的に、EfficientDetのトレーニングは多くの場合、古いTensorFlowの物体検出APIの複雑さを扱う必要があり、ラピッドプロトタイピングにおいては高い学習コストが生じる可能性があります。
さらに、YOLOv5の汎用性はバウンディングボックスを超えて広がります。継続的なアップデートを通じて、Ultralyticsフレームワークはインスタンスセグメンテーションと画像分類をネイティブでサポートし、複数のコンピュータビジョンタスクに対して統合されたAPIを提供しています。
理想的な使用ケース
- YOLOv5を選ぶべき場合: ラピッドプロトタイピング、摩擦のないトレーニング体験、そして高度に最適化されたエッジデプロイメントが必要な場合。低遅延が不可欠なドローン、小売分析、モバイルアプリケーションに最適です。
- EfficientDetを選ぶべき場合: Google Cloud/TensorFlow AutoML環境内で厳密に運用しており、リアルタイムの低遅延制約が厳しくない環境で、パラメータあたりの精度を最大化する必要がある場合。
次世代: YOLO26の採用
YOLOv5は信頼できる主力製品であり続けていますが、コンピュータビジョンの情勢は進歩しています。2026年に究極の最先端を求める開発者にとって、YOLO26はUltralyticsラインナップの新たな頂点となります。
先行モデル(YOLOv8やYOLO11など)のレガシーを基盤に、YOLO26は画期的な革新を導入しています。
- エンドツーエンドのNMSフリー設計: YOLO26は、Non-Maximum Suppression(NMS)の後処理をネイティブで排除しました。これにより、遅延のばらつきが大幅に減少し、デプロイメントアーキテクチャが簡素化されます。
- 最大43%高速なCPU推論: エッジAI向けに大幅に最適化されており、専用GPUを持たない低電力のエッジデバイスや標準CPUでも前例のない速度を実現します。
- MuSGDオプティマイザ: 大規模言語モデル (LLM) のトレーニング手法に着想を得た、SGDとMuonのこのハイブリッド手法は、極めて安定したトレーニングと迅速な収束を保証します。
- 高度な損失関数: ProgLossとSTALの統合により、高高度からのドローン画像やロボティクスにとって不可欠な、小さなターゲットの認識精度が劇的に向上しました。
- DFLの排除: Distribution Focal Lossを排除することで、モデルのエクスポートプロセスが合理化され、多様なハードウェアアクセラレータ間での互換性がさらに向上しました。
Ultralyticsエコシステム内の他の最新アーキテクチャに関心があるユーザーは、YOLOv10やRT-DETRなどのモデルと比較することもできます。
Ultralytics Python APIは、後方および前方互換性を考慮して設計されています。YOLOv5からYOLO26へのアップグレードは、コード内のモデルウェイト文字列を変更するのと同じくらい簡単です!
コード例:学習と推論
Ultralyticsエコシステムの比類なき使いやすさを実証するために、最新のYOLOモデルを使用してトレーニングと推論を実行する方法を紹介します。このコードは100%実行可能であり、データセットのダウンロード、トレーニングループ、検証を自動的に処理します。
from ultralytics import YOLO
# Load a modern model (Swap 'yolov5s.pt' for 'yolo26n.pt' to test the newest architecture!)
model = YOLO("yolov5s.pt")
# Train the model on the COCO8 example dataset for 20 epochs
results = model.train(data="coco8.yaml", epochs=20, imgsz=640)
# Run inference on an image from the web
inference_results = model("https://ultralytics.com/images/bus.jpg")
# Display the image with bounding boxes
inference_results[0].show()ユーザーエクスペリエンスを優先し、堅牢なエコシステムを維持し、YOLO26のようなアップデートを通じて可能なことの境界を押し広げ続けることで、Ultralyticsは開発者が現実世界のビジュアルインテリジェンスの課題を解決するために常に最高のツールを利用できるようにしています。