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
- ドキュメント:yolov5
アーキテクチャの革新
YOLOv5 、シームレスな機械学習ライフサイクルを優先する高度に最適化されたアーキテクチャで高くYOLOv5 。改良版CSPDarknet53バックボーンとPath Aggregation Network(PANet)ネックを組み合わせることで、複数の空間スケールにわたる特徴伝播を劇的に改善する。
主な進展には以下が含まれます:
- モザイクデータ拡張:この訓練手法は、4枚の異なる訓練画像を単一のモザイク画像に統合する。これによりモデルは複雑な空間的文脈における物体識別を学習せざるを得なくなり、detect ターゲットをdetect 能力が大幅に向上する。
- 自動学習アンカーボックス:トレーニング開始前に、YOLOv5はカスタムトレーニングデータを YOLOv5 、k-meansクラスタリングを用いて最適なアンカーボックスの寸法を自動計算します。
- メモリ効率:大規模なトランスフォーマーベースのモデルと比較して、YOLOv5 学習時と推論時の両方で大幅に低いメモリ使用量を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 その展開の柔軟性とハードウェアアクセラレーションとの互換性において優れています。T4GPU上TensorRT 驚異的なTensorRT に注目してください。これにより、YOLOv5 高スループットの動画解析やリアルタイム推論パイプラインにYOLOv5 適しています。さらに、Ultralytics により、ONNXや ONNX、 CoreML、 TensorRT ワンラインコマンド。
EfficientDetは優れたパラメータ効率を提供します。与えられたパラメータ数において、高い平均精度(mAP)を頻繁に抽出します。しかし、BiFPN層の複雑なルーティングにより、この理論的な効率が必ずしもエッジGPUでの実時間推論速度の向上に直結するわけではありません。これは演算負荷ではなくメモリ帯域幅がボトルネックとなる可能性があるためです。
エコシステムと使いやすさ
Ultralytics 決定的な利点は、その周辺エコシステムにある。YOLOv5 、大規模なコミュニティサポートのもと、精力的にメンテナンスされ、活発に開発が進められているリポジトリYOLOv5 。
Ultralytics により、ユーザーはデータ収集からデプロイまでシームレスに移行できます。このプラットフォームは、自動アノテーション、クラウドトレーニング、モデル監視を標準でサポートしています。一方、EfficientDetのトレーニングでは、TensorFlow 複雑な操作が必要となることが多く、迅速なプロトタイピングには急峻な学習曲線が伴う場合があります。
さらに、YOLOv5バウンディングボックスを超えています。継続的な更新を通じて、Ultralytics インスタンスセグメンテーションと 画像分類をネイティブにサポートし、複数のコンピュータビジョンタスクに対して統一されたAPIを提供します。
理想的なユースケース
- YOLOv5 を選択YOLOv5 :迅速なプロトタイピング、摩擦のないトレーニング体験、高度に最適化されたエッジデプロイメントが必要な場合。低遅延が重要なドローン、小売分析、モバイルアプリケーションに最適です。
- 効率的な検出(EfficientDet)を選択するタイミング: Google TensorFlow 内でのみ運用し、厳密なリアルタイム遅延制約がなく、パラメータごとの最大精度を必要とする場合。
次世代:YOLO26の採用
YOLOv5 信頼性の高い主力モデルYOLOv5 、コンピュータビジョンの分野は進化を続けています。2026年において最先端を求める開発者にとって、YOLO26 Ultralytics 新たな頂点を示しています。
その前身(例えば YOLOv8 や YOLO11)の遺産を基盤とし、YOLO26は画期的な革新を導入します:
- エンドツーエンドNMS設計:YOLO26は、非最大抑制(NMS)後処理をネイティブに不要にします。これにより、遅延のばらつきが大幅に低減され、展開アーキテクチャが簡素化されます。
- 最大43%高速CPU : エッジAI向けに高度に最適化され、専用GPUなしの低消費電力エッジデバイスや標準CPUに前例のない速度をもたらします。
- MuSGDオプティマイザ:大規模言語モデル(LLM)の学習手法に着想を得た、SGD ミューオンのハイブリッド手法であり、極めて安定した学習と高速な収束を保証する。
- 高度損失関数:ProgLossとSTALの統合により、小型目標の認識精度が飛躍的に向上し、高高度ドローン画像処理やロボティクスにおいて極めて重要である。
- DFL除去:ディストリビューション・フォーカル・ロスを除去することで、モデルエクスポートプロセスが合理化され、多様なハードウェアアクセラレータ間での互換性がさらに向上します。
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 開発者が現実世界の視覚的インテリジェンス課題解決に常に最適なツールを利用できることをUltralytics