YOLOv5 と EfficientDet の比較#
新しいcomputer visionプロジェクトに着手する際、適切なニューラルネットワークアーキテクチャの選択は、下す決断の中で最も結果を左右する重要なものの1つです。本ガイドでは、Ultralytics YOLOv5とGoogleのEfficientDetの間に深い技術的比較を提供します。アーキテクチャ、パフォーマンス指標、トレーニングエコシステムを分析することで、開発者や研究者が特定のデプロイ環境に最適なobject detectionモデルを特定できるよう支援することを目指しています。
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は、シームレスなmachine learningライフサイクルを優先する、高度に最適化されたアーキテクチャで高く評価されています。これは、改良されたCSPDarknet53バックボーンとPath Aggregation Network(PANet)ネックを組み合わせて利用しており、複数の空間スケールにわたる特徴伝播を劇的に改善します。
主な進歩は以下の通りです:
- Mosaicデータ拡張: この学習テクニックは、4つの異なる学習画像を1つのモザイクに結合します。これにより、モデルは複雑な空間コンテキスト内での物体識別を学習せざるを得なくなり、小さなターゲットを検出する能力が大幅に向上します。
- 自動学習アンカーボックス: トレーニングが開始される前に、YOLOv5はカスタムtraining dataを分析し、k-meansクラスタリングを使用して最適なanchor boxの寸法を自動的に計算します。
- メモリ効率: 重い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
- Docs: https://github.com/google/automl/tree/master/efficientdet#readme
アーキテクチャの革新#
EfficientDetの中核となる提案は、スケーリングと特徴集約に対する体系的なアプローチにあります:
- BiFPN (双方向特徴ピラミッドネットワーク): 情報をトップダウンにのみ渡す従来型のFPNとは異なり、BiFPNは学習可能な重みを導入して異なる入力特徴の重要度を学習することで、高速かつ容易なマルチスケール特徴融合を可能にします。
- 化合物スケーリング: EfficientDetは、バックボーン、特徴ネットワーク、ボックス/クラス予測ネットワークの解像度、深さ、幅をすべて同時にスケーリングし、軽量なD0から大規模なD7までのモデルを実現しています。
EfficientDetがTensorFlowエコシステムとAutoMLライブラリに強く依存しているのに対し、YOLOv5はPyTorch内でネイティブに動作し、多くの開発者がより直感的で、Pythonらしく、デバッグしやすいワークフローであると感じるものを提供します。
パフォーマンスと指標の比較#
これらのモデルを比較する際、COCO datasetのような標準ベンチマークでのパフォーマンスを評価することが不可欠です。以下の表は、サイズ、計算需要(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は高スループットのビデオ分析およびreal-time inferenceパイプラインに非常に適したものとなっています。さらに、Ultralyticsエコシステムにより、ONNX、CoreML、TensorRTなどの形式へのエクスポートが1行のコマンドで行えます。
EfficientDetは優れたパラメータ効率を提供します。特定のパラメータ数に対して、高いmean Average Precision (mAP)を抽出することがよくあります。しかし、この理論上の効率は、BiFPN層の複雑なルーティングのために、エッジGPUでの実際のウォールクロック推論時間を速くすることに常に直結するとは限らず、計算バウンドではなくメモリ帯域幅バウンドになる可能性があります。
エコシステムと使いやすさ#
Ultralyticsモデルを選択する決定的な利点は、周辺のエコシステムにあります。YOLOv5は、強力なコミュニティサポートを受け、活発にメンテナンスおよび開発されているリポジトリの一部です。
Ultralytics Platformの導入により、ユーザーはデータ収集からデプロイまでシームレスに移行できます。このプラットフォームは、自動アノテーション、クラウドトレーニング、モデルモニタリングを標準でサポートしています。対照的に、EfficientDetのトレーニングでは、古いTensorFlowオブジェクト検出APIの複雑さを乗り越える必要があることが多く、迅速なプロトタイピングにとって急な学習曲線をもたらす可能性があります。
さらに、YOLOv5の多様性はバウンディングボックスにとどまりません。継続的なアップデートを通じて、Ultralyticsフレームワークはinstance segmentationとimage classificationをネイティブでサポートし、複数のコンピュータビジョンタスクに向けた統合APIを提供します。
理想的なユースケース#
- 次の場合にYOLOv5を選択してください: 迅速なプロトタイピング、摩擦のないトレーニング体験、高度に最適化されたエッジデプロイが必要な場合。低レイテンシが不可欠なドローン、retail analytics、モバイルアプリケーションに最適です。
- EfficientDetを選択すべきケース: Google Cloud/TensorFlow AutoML環境に厳密に依存しており、厳格なリアルタイム遅延制限なしでパラメータあたりの精度を最大化する必要がある場合。
次世代: YOLO26の採用#
YOLOv5は信頼できる主力製品であり続けていますが、コンピュータビジョンの分野は進歩しています。2026年における絶対的な最先端を求める開発者にとって、YOLO26はUltralyticsラインナップの新たな最高峰を表しています。
前身のレガシー(YOLOv8やYOLO11など)を基盤として、YOLO26画期的なイノベーションを導入します:
- エンドツーエンドのNMSフリー設計: YOLO26はNon-Maximum Suppressionのポストプロセッシングをネイティブに排除します。これにより遅延の変動が大幅に減少し、デプロイアーキテクチャが簡素化されます。
- 最大43%高速なCPU推論: edge AI向けに高度に最適化されており、専用GPUを持たない低電力のエッジデバイスや標準CPUに前例のない速度をもたらします。
- MuSGDオプティマイザー: 大規模言語モデル (LLM) の学習テクニックに触発されたSGDとMuonのハイブリッドにより、非常に安定した学習と高速な収束を保証します。
- 高度な損失関数: ProgLossとSTALの統合により、高高度のドローン画像やroboticsにとって不可欠である小規模ターゲットの認識が大幅に向上します。
- 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は、開発者が現実世界の視覚的知能に関する課題を解決するための最良のツールを常に手元に持てるようにします。