YOLOv5 . EfficientDet: リアルタイム物体検出アーキテクチャの評価
新しいコンピュータビジョンプロジェクトに着手する際、適切なニューラルネットワークアーキテクチャを選択することは、最も重要な決定事項の一つです。本ガイドでは、以下の技術的比較を詳細に提供します。 Ultralytics YOLOv5とGoogleのEfficientDetについて、詳細な技術比較を行います。各モデルのアーキテクチャ、性能指標、トレーニング環境を分析することで、開発者や研究者が特定のデプロイ環境に適した最適な物体検出モデルを選択する手助けを目的としています。
EfficientDetが複合スケーリングと特徴融合において新たな概念を導入した一方で、 YOLOv5 は、その驚くほど直感的なインターフェースを通じて高性能AIへのアクセスを民主化し、業界に革命をもたらした。 PyTorch 実装、合理化されたユーザー体験、そして比類のない速度と精度のバランスによって、業界に革命をもたらしました。
Ultralytics YOLOv5:アクセシビリティの業界標準
2020年夏にリリースされたYOLOv5 、YOLO 重要な転換点YOLOv5 。C言語ベースのDarknetフレームワークからPyTorchネイティブへ移行し、モデルの構築・学習・展開を迅速に行いたい開発者にとって最適なアーキテクチャとなった。
- 著者: Glenn Jocher
- 組織:Ultralytics
- 日付: 2020-06-26
- GitHub:https://github.com/ultralytics/yolov5
- ドキュメント:https://platform.ultralytics.com/ultralytics/yolov5
アーキテクチャの革新
YOLOv5 、シームレスな機械学習ライフサイクルを優先する高度に最適化されたアーキテクチャで高くYOLOv5 。改良版CSPDarknet53バックボーンとPath Aggregation Network(PANet)ネックを組み合わせることで、複数の空間スケールにわたる特徴伝播を劇的に改善する。
主な進展には以下が含まれます:
- Mosaicデータ拡張: このトレーニング手法は、4つの異なるトレーニング画像を1つのモザイクに結合します。これにより、モデルは複雑な空間コンテキストでオブジェクトを識別する方法を学習し、小さなターゲットをdetectする能力を大幅に向上させます。
- アンカーボックスの自動学習: トレーニング開始前に、YOLOv5 はカスタムのトレーニングデータを分析し、k-meansクラスタリングを使用して最適なアンカーボックスの寸法を自動的に計算します。
- メモリ効率: 重いTransformerベースのモデルと比較して、YOLOv5はトレーニングと推論の両方で大幅に低いメモリフットプリントを維持し、コンシューマーグレードのハードウェアでスムーズに動作することを可能にします。
EfficientDet: スケーラブルな物体検出
Google 2019年に発表した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
- ドキュメント:https://github.com/google/automl/tree/master/efficientdet#readme
アーキテクチャの革新
EfficientDetの核となる提案は、スケーリングと特徴集約への体系的なアプローチにあります。
- BiFPN(双方向特徴ピラミッドネットワーク): 情報をトップダウンにのみ伝達する従来のFPNとは異なり、BiFPNは学習可能な重みを導入して異なる入力特徴の重要性を学習することで、高速かつ容易なマルチスケール特徴融合を可能にします。
- 複合スケーリング:EfficientDetは、すべてのバックボーン、特徴ネットワーク、ボックス/クラス予測ネットワークの解像度、深さ、幅を同時にスケールアップし、軽量なD0から大規模なD7までのモデルを実現します。
フレームワークの違い
EfficientDetは主に TensorFlow エコシステムとAutoMLライブラリに大きく依存しているのに対し、YOLOv5 PyTorch内でネイティブにYOLOv5 、多くの開発者がより直感的でPythonらしい、デバッグしやすいワークフローを提供します。
パフォーマンスとメトリクスの比較
これらのモデルを比較する際には、COCO などの標準ベンチマークにおける性能評価が極めて重要です。下表は、モデルサイズ、計算量(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 |
| 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などの形式へのエクスポートがワンラインコマンドで可能です。
EfficientDetは優れたパラメータ効率を提供します。特定のパラメータ数に対して、高い平均平均精度(mAP)を達成することがよくあります。しかし、この理論的な効率が、BiFPN層の複雑なルーティングが計算能力よりもメモリ帯域幅に制約される可能性があるため、エッジGPUでの実測推論時間の高速化に常につながるわけではありません。
エコシステムと使いやすさ
Ultralytics 決定的な利点は、その周辺エコシステムにある。YOLOv5 、大規模なコミュニティサポートのもと、精力的にメンテナンスされ、活発に開発が進められているリポジトリYOLOv5 。
Ultralytics により、ユーザーはデータ収集からデプロイまでシームレスに移行できます。このプラットフォームは、自動アノテーション、クラウドトレーニング、モデル監視を標準でサポートしています。一方、EfficientDetのトレーニングでは、TensorFlow 複雑な操作が必要となることが多く、迅速なプロトタイピングには急峻な学習曲線が伴う場合があります。
さらに、YOLOv5バウンディングボックスを超えています。継続的な更新を通じて、Ultralytics インスタンスセグメンテーションと 画像分類をネイティブにサポートし、複数のコンピュータビジョンタスクに対して統一されたAPIを提供します。
理想的なユースケース
- YOLOv5を選択してください。迅速なプロトタイピング、摩擦のないトレーニング体験、および高度に最適化されたエッジデプロイメントが必要な場合に最適です。ドローン、小売分析、および低レイテンシが重要となるモバイルアプリケーションに理想的です。
- EfficientDetを選択する場合: Google Cloud/TensorFlow AutoML環境内で厳密に運用しており、厳密なリアルタイムレイテンシ制約なしに、パラメータあたりの最大精度を必要とする場合。
次世代:YOLO26の採用
YOLOv5 信頼性の高い主力モデルYOLOv5 、コンピュータビジョンの分野は進化を続けています。2026年において最先端を求める開発者にとって、YOLO26 Ultralytics 新たな頂点を示しています。
その前身モデル(YOLOv8やYOLO11など)の遺産の上に構築され、YOLO26は画期的なイノベーションを導入しています。
- エンドツーエンドのNMSフリー設計: YOLO26は、Non-Maximum Suppression の後処理の必要性をネイティブに排除します。これにより、レイテンシのばらつきが大幅に低減され、デプロイメントアーキテクチャが簡素化されます。
- CPU推論が最大43%高速化: エッジAI向けに大幅に最適化されており、専用GPUを持たない低電力エッジデバイスや標準CPUに前例のない速度をもたらします。
- MuSGDオプティマイザ: 大規模言語モデル (LLM) の学習技術に触発されたこのSGDとMuonのハイブリッドは、非常に安定した学習と迅速な収束を保証します。
- Advanced Loss Functions: ProgLossとSTALの統合は、小さなターゲットの認識を劇的に改善し、高高度ドローン画像やロボティクスにとって不可欠です。
- DFLの削除: Distribution Focal Lossを削除することで、モデルのエクスポートプロセスが合理化され、多様なハードウェアアクセラレータとの互換性がさらに向上します。
Ultralytics 内の他の最新アーキテクチャを探求したいユーザーは、以下のようなモデルも比較できるでしょう。 YOLOv10 や RT-DETRなどのモデルを比較することもできます。
移行は簡単です
Ultralytics Python 、後方互換性と前方互換性を考慮して設計されています。YOLOv5 は、コード内のモデルウェイト文字列を変更するだけで実現できます!
コード例: トレーニングと推論
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は、開発者が現実世界の視覚インテリジェンスの課題を解決するための最高のツールを常に利用できるようにします。