YOLOv5とEfficientDetの比較#
新しいコンピュータービジョンプロジェクトに着手する際、適切なニューラルネットワークアーキテクチャを選択することは、最も重要な意思決定の一つです。このガイドでは、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
- Docs: https://docs.ultralytics.com/models/yolov5
アーキテクチャのイノベーション#
YOLOv5は、シームレスな機械学習ライフサイクルを重視した、高度に最適化されたアーキテクチャで知られています。改良版CSPDarknet53バックボーンとPath Aggregation Network(PANet)ネックを組み合わせて使用し、複数の空間スケールにわたる特徴伝播を大幅に向上させます。
主な進歩は次のとおりです。
- モザイクデータ拡張: このトレーニング手法では、4つの異なるトレーニング画像を1つのモザイクに組み合わせます。これにより、モデルは複雑な空間コンテキスト内の物体を識別する方法を学習し、小さな対象を検出する能力が大幅に向上します。
- 自動学習アンカーボックス: トレーニング開始前に、YOLOv5はカスタムトレーニングデータを分析し、k-meansクラスタリングを使用して最適なアンカーボックスの寸法を自動的に算出します。
- メモリ効率: 大規模なTransformerベースのモデルと比較して、YOLOv5はトレーニング中と推論中の両方でメモリフットプリントを大幅に低く維持するため、コンシューマー向けハードウェアでもスムーズに動作します。
EfficientDet:スケーラブルな物体検出#
2019年にGoogle Researchが発表したEfficientDetは、スケーラブルな物体検出器のファミリーを提供することを目指しました。EfficientNet画像分類バックボーンを基盤とし、新しい特徴融合メカニズムを導入しています。
- 著者: Mingxing Tan、Ruoming Pang、Quoc V. Le
- 組織: Google
- 日付: 2019-11-20
- Arxiv: https://arxiv.org/abs/1911.09070
- GitHub: https://github.com/google/automl/tree/master/efficientdet
- Docs: 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 Platformの導入により、ユーザーはデータ収集からデプロイまでシームレスに移行できます。このプラットフォームは、オートアノテーション、クラウドトレーニング、モデルモニタリングを標準でサポートしています。一方、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の後処理を必要としない設計をネイティブに実現しています。これによりレイテンシの変動が大幅に抑えられ、デプロイアーキテクチャが簡素化されます。
- CPU推論が最大43%高速: エッジ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は開発者が実世界のビジュアルインテリジェンスの課題を解決するために、常に最適なツールを利用できるようにしています。