コンテンツにスキップ

EfficientDet vsYOLOv5:詳細な技術比較

精度と計算効率のバランスを取るという絶え間ないニーズによって、物体検出の状況は急速に進化してきた。この分野に大きな影響を与えた2つのアーキテクチャは、Google Brainチームが開発したEfficientDetとYOLOv5Ultralyticsある。どちらのモデルも画像内の物体を効率的にdetect することを目的としていますが、根本的に異なる設計哲学とアーキテクチャ戦略でこの問題にアプローチしています。

このガイドでは、開発者、研究者、エンジニアが特定のコンピュータ・ビジョン・アプリケーションに適したツールを選択できるよう、詳細な技術比較を提供しています。

EfficientDet:スケーラブルで効率的

2019年後半にリリースされたEfficientDetは、精度と効率の両方を同時に最適化するという研究目標から生まれた。これは物体検出に「複合スケーリング」の概念を導入したもので、バックボーンネットワークの解像度、深さ、幅を一様にスケーリングする手法だ。

建築ハイライト

EfficientDetは、EfficientNetのバックボーン上に構築され、BiFPN(双方向特徴ピラミッドネットワーク)と呼ばれる新しい特徴融合ネットワークを導入しています。情報の流れをトップダウンに限定する従来のFPN(Feature Pyramid Networks)とは異なり、BiFPNは異なる解像度のレイヤー間で複雑な双方向の情報の流れを可能にします。

また、このモデルはCompound Scaling(複合スケーリング)を採用しており、ユーザーはリソースの制約に応じてモデルファミリー(D0からD7)を選択することができます。これにより、利用可能な計算量が増えれば、モデルサイズをリニアに大きくして精度を向上させることができます。

長所と短所

EfficientDetの最大の強みは、その理論的効率にある。高い mAPスコアを達成する。このため、パラメータ効率が重要な指標となる学術研究にとって興味深い候補となる。

しかし、EfficientDetには、推論レイテンシという実用的な欠点があります。BiFPNにおける複雑な接続と、深さ方向に分離可能な畳み込みの多用は、数学的には効率的ですが、GPU ハードウェア上では、標準的な畳み込みに比べて十分に最適化されていないことがよくあります。その結果、FLOPsが低いにもかかわらず、EfficientDetは理論計算コストの高いモデルよりもGPU上で遅く実行される可能性があります。

EfficientDetの詳細について。

Ultralytics YOLOv5:実世界のパフォーマンスとユーザビリティ

Ultralytics YOLOv5 、2020年にリリースされた時、パラダイムシフトを象徴するものだった。前作とは異なり、YOLO モデルとして初めて PyTorchでネイティブに実装された最初のYOLOモデルであり、開発者の大規模なエコシステムへのアクセスを可能にした。YOLOモデルは、生のパフォーマンスと並んで「デプロイしやすさ」を優先した。

建築ハイライト

YOLOv5 CSPDarknetバックボーンを採用しており、勾配フローを最適化し、計算量を削減している。YOLOv5は、トレーニング中にモザイク補強(4枚の画像をつなぎ合わせる技術)を使用することで、モデルの小さな物体のdetect 能力を向上させ、大規模なミニバッチサイズの必要性を削減した先駆的なモデルである。

このアーキテクチャはスピードのために設計されている。標準的な畳み込みと合理化されたヘッド構造を利用することで、YOLOv5 最新のGPUの並列処理能力を最大限に活用し、非常に低い推論レイテンシーを実現している。

Ultralytics エコシステムの優位性

YOLOv55の最も大きな利点の一つは、周囲のエコシステムである。Ultralytics 、自動アンカー生成、ハイパーパラメーターの進化、および以下のネイティブ・エクスポート・サポートを含む、シームレスなワークフローを提供します。 ONNX, TensorRTCoreML、TFLiteネイティブエクスポートを含むシームレスなワークフローを提供します。この "バッテリーを含む "アプローチは、コンセプトから生産までの時間を劇的に短縮します。

長所と短所

YOLOv5 リアルタイム推論と 使いやすさに優れている。シンプルなAPIと堅牢なドキュメントにより、開発者は数分で独自のデータでカスタムモデルを学習できる。エッジAIやクラウド展開に最適な方法で、スピードと精度のバランスを取っている。一方 YOLO11のような新しいモデルが精度でこれを上回っているが、YOLOv5 5は信頼できる業界標準の主力製品であり続けている。

YOLOv5の詳細について。

パフォーマンス指標:スピードと精度

以下の表は、COCO val2017データセットにおけるEfficientDetとYOLOv5 5の性能を比較したものです。重要な点は、理論上のコスト(FLOPs)と実際の速度(Latency)の違いです。

モデルサイズ
(ピクセル)
mAP
50-95
速度
CPU ONNX
(ms)
速度
T4 TensorRT10
(ms)
params
(M)
FLOPs
(B)
EfficientDet-d064034.610.23.923.92.54
EfficientDet-d164040.513.57.316.66.1
EfficientDet-d264043.017.710.928.111.0
EfficientDet-d364047.528.019.5912.024.9
EfficientDet-d464049.742.833.5520.755.2
EfficientDet-d564051.572.567.8633.7130.0
EfficientDet-d664052.692.889.2951.9226.0
EfficientDet-d764053.7122.0128.0751.9325.0
YOLOv5n64028.073.61.122.67.7
YOLOv5s64037.4120.71.929.124.0
YOLOv5m64045.4233.94.0325.164.2
YOLOv5l64049.0408.46.6153.2135.0
YOLOv5x64050.7763.211.8997.2246.4

イラストの通りだ、 YOLOv5 GPU レイテンシーで圧倒.例えば、 YOLOv5s (37.4mAP)で実行される。 1.92 ms T4GPU EfficientDet-d0 (34.6mAP)を取る。 3.92 msYOLOv5 おおまかに作る 2倍速い より高い精度を実現しながら。この格差は、より大きなモデルになるほど広がる; YOLOv5l (49.0mAP)である。 5倍速い 同クラスの EfficientDet-d4 (49.7mAP)。

逆に、EfficientDetはCPU環境で輝きを放ち、FLOPの低さが性能に反映されることが多く、小型のD0バリアントのONNX CPU 速度に見られる。

理想的なユースケース

これらのモデルのどちらを選ぶかは、あなたの特定の制約による:

EfficientDetを選ぶとき

  • アカデミックベンチマーキング:パラメータ効率やアーキテクチャのスケーリング則を実証することが主目的の場合。
  • 厳しいCPU 制約:FLOPsが絶対的なボトルネックとなるような古いCPU ハードウェアへの導入が厳しく制限される場合、最小のEfficientDetバリエーション(D0-D1)は競争力のある性能を提供します。
  • 研究内容BiFPNのような特徴ピラミッドネットワークのバリエーションを研究する。

Ultralytics YOLOv5選ぶとき

  • リアルタイム・アプリケーション: 自律走行車ロボット工学、ビデオ監視など、低遅延が譲れないアプリケーションに不可欠。
  • プロダクションへの展開: 整備されたエコシステムと、TensorRT OpenVINO ようなエンジンへの容易なエクスポートにより、YOLOv5 5は商用製品として優れている。
  • トレーニングの効率化: YOLOv5 モデルは通常、EfficientDetやTransformerベースのモデルのような複雑なアーキテクチャよりも高速に学習し、より少ないメモリしか必要としないため、クラウドの計算コストを削減します。
  • 汎用性: Ultralytics フレームワークは、単純なバウンディングボックスを越えて、セグメンテーションと分類タスクへのシームレスな移行を可能にします。

コード例Ultralyticsシンプルさ

Ultralytics モデルの特徴の1つは、使いやすさです。EfficientDetを実装するには複雑なTensorFlow 設定や特定のリポジトリクローンが必要になることが多いのですが、YOLOv5 PyTorch Hubを経由して数行のPython コードでロードして実行することができます。

import torch

# Load the YOLOv5s model from the official Ultralytics repository
model = torch.hub.load("ultralytics/yolov5", "yolov5s", pretrained=True)

# Define an image (URL or local path)
img = "https://ultralytics.com/images/zidane.jpg"

# Perform inference
results = model(img)

# Display results
results.print()  # Print predictions to console
results.show()  # Show image with bounding boxes

結論と今後の展望

EfficientDetは複合スケーリングと効率的な特徴融合の価値を証明し、コンピュータビジョンにおける重要なマイルストーンとなった、 YOLOv5は、高性能な物体検出を利用しやすく、高速で、導入しやすくすることで、業界に革命をもたらした。

今日から新しいプロジェクトを始める開発者には、Ultralytics 系譜の最新の進歩を見ることをお勧めします。 YOLO11は、YOLOv55の強固な基盤の上に構築され、以下を提供します:

  • さらに高い精度と スピード
  • ネイティブサポート ポーズ推定, インスタンス分割および OBB.
  • 統一されたpython ultralytics MLOpsのライフサイクル全体を簡素化する。

Ultralytics モデルと他のアーキテクチャとの比較については、以下をご覧ください。 YOLOv8および RT-DETR.


コメント