YOLOv5と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://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
- ドキュメント: 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 | - | 1.12 | 1.9 | 4.5 |
| YOLOv5s | 640 | 37.4 | - | 1.92 | 7.2 | 16.5 |
| YOLOv5m | 640 | 45.4 | - | 4.03 | 21.2 | 49.0 |
| YOLOv5l | 640 | 49.0 | - | 6.61 | 46.5 | 109.1 |
| YOLOv5x | 640 | 50.7 | - | 11.89 | 86.7 | 205.7 |
| 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)を達成することがよくあります。しかし、この理論上の効率性が、エッジGPUでの実時間推論の高速化に必ずしもつながるとは限りません。BiFPNレイヤーの複雑なルーティングは、計算能力よりもメモリ帯域幅がボトルネックとなる場合があるためです。
エコシステムと使いやすさ#
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のオプションであるワンツーワンヘッド(
nms=False)は、Non-Maximum Suppressionによる後処理を不要にします。これによりレイテンシーのばらつきが大幅に減り、デプロイアーキテクチャが簡素化されます。 - CPU推論を最大43%高速化: エッジAI向けに徹底的に最適化されており、専用GPUを搭載しない低消費電力のエッジデバイスや標準CPUで、かつてない速度を実現します。
- MuSGD Optimizer: 大規模言語モデル(LLM)のトレーニング手法に着想を得た、SGDとMuonのハイブリッド方式です。非常に安定したトレーニングと迅速な収束を実現します。
- 高度な損失関数: ProgLossとSTALの統合により、小さな対象物の認識精度が大幅に向上します。これは、高高度からのドローン画像やロボティクスに不可欠です。
- DFLの削除: Distribution Focal Lossを削除することで、モデルのエクスポートプロセスが簡素化され、さまざまなハードウェアアクセラレーターとの互換性がさらに向上します。
Ultralyticsエコシステム内の最近の他のアーキテクチャにも関心がある方は、YOLOv10やRT-DETRなどのモデルも比較できます。
Ultralytics Python APIは、後方互換性と前方互換性を考慮して設計されています。YOLOv5からYOLO26へのアップグレードは、コード内のモデルウェイト文字列を変更するだけで完了します。
コード例:トレーニングと推論#
Ultralyticsエコシステムの比類ない使いやすさを示すために、最新のYOLOモデルを使ったトレーニングと推論の実行方法を紹介します。このコードはそのまま実行でき、データセットのダウンロード、トレーニングループ、検証を自動的に処理します。
from ultralytics import YOLO
# 最新モデルを読み込みます(最新アーキテクチャを試すには「yolov5su.pt」を「yolo26n.pt」に置き換えてください!)
model = YOLO("yolov5su.pt") # YOLOv5u: ultralyticsパッケージ向けのアンカーフリーYOLOv5重み
# COCO8サンプルデータセットでモデルを20エポック学習します
results = model.train(data="coco8.yaml", epochs=20, imgsz=640)
# ウェブ上の画像で推論を実行します
inference_results = model("https://ultralytics.com/images/bus.jpg")
# バウンディングボックス付きの画像を表示します
inference_results[0].show()ユーザー体験を重視し、堅牢なエコシステムを維持し、YOLO26のようなアップデートを通じて可能性の限界を広げ続けることで、Ultralyticsは、開発者が現実世界の視覚的インテリジェンスの課題を解決するための最適なツールを常に利用できるようにしています。