コンテンツにスキップ

YOLOX 対 EfficientDet:技術比較

適切な物体検出アーキテクチャを選択することは、コンピュータ・ビジョン・アプリケーションの開発において非常に重要な決定である。YOLOXとEfficientDetの2つのモデルは、画像内の物体の位置と分類の問題を解決することを目的としていますが、両者は根本的に異なる設計思想でこのタスクに取り組んでいます。

本ガイドでは、高性能なアンカーなし検出器であるYOLOXと、効率性を重視したスケーラブルなアーキテクチャであるEfficientDetの詳細な技術比較を行います。両者のアーキテクチャ、ベンチマーク、トレーニング手法を分析し、レガシーの制約に合うモデルを決定するのに役立つ情報を提供します。 Ultralytics YOLO11を紹介します。

YOLOX:アンカーフリーの進化

メグヴィの研究者たちによって2021年に発表されたYOLOXは、これまでのYOLO (You Only Look Once)を定義していたアンカーベースのメカニズムを放棄することで、YOLO 系譜に変化をもたらした。

アーキテクチャと主要なイノベーション

YOLOXは、非結合型ヘッド構造で差別化を図っている。従来の検出器では、分類タスクとローカライゼーションタスクがパラメータを共有する結合ヘッドを使用することが多く、トレーニング中に競合が発生する可能性がありました。YOLOXは、これらのタスクを異なるブランチに分離することで、収束速度と最終精度を大幅に向上させています。

最大の特徴は、アンカーを使わない設計だ。あらかじめ定義されたアンカーボックスの必要性を排除することで、YOLOXはアンカー生成に伴うヒューリスティックなチューニングを排除している。これはSimOTA(Simplified Optimal Transport Assignment)と呼ばれる高度なラベル割り当て戦略と組み合わされ、正サンプルをグランドトゥルースに動的に割り当てることで、静的なIoU しきい値よりも効果的に学習プロセスのバランスをとることができる。

アンカーフリーのメリット

アンカーボックスを削除することで、開発者が調整する必要のある設計パラメータの数が減ります。また、プリセットのボックス形状を調整するのではなく、モデルが直接バウンディングボックスを予測するため、通常とは異なる縦横比のオブジェクトに対してもよりよく一般化されます。

YOLOXの詳細について。

EfficientDet:スケーラブルな効率性

2019年にGoogle Brainチームによって開発されたEfficientDetは、特定の計算予算内で可能な限り高い精度を達成することに重点を置いている。EfficientNetのバックボーンの上に構築され、新しい特徴融合技術を導入している。

アーキテクチャと主要なイノベーション

EfficientDetの革新的なコアはBiFPN(Weighted Bi-directional Feature Pyramid Network)です。異なるスケールからの特徴を等しく合計する従来の特徴ピラミッドネットワーク(FPN)とは異なり、BiFPNは異なる入力特徴の重要性を理解するために学習可能な重みを導入しています。また、トップダウンとボトムアップの両方向に繰り返し情報を流すことができる。

EfficientDetは複合スケーリングも採用している。バックボーンや画像の解像度だけをスケーリングするのではなく、ネットワークの解像度、深さ、幅を均一にスケーリングします。この結果、効率対精度の一貫したカーブを提供するモデルファミリー(D0からD7)ができ、モバイルアプリからハイエンドのクラウド処理まで幅広いタスクに高度に適応できるようになります。

EfficientDetの詳細について。

パフォーマンス分析:スピード対効率

これら2つのモデルの根本的な違いは、最適化のターゲットにある。EfficientDetは理論的な効率(FLOPsとパラメータ)に最適化されており、エッジデバイス上のCPU 性能にうまく変換されることが多い。逆にYOLOXは、GPU上での高スループット推論に最適化されており、アクセラレータが得意とする高密度の演算子を活用しています。

下の表は、このトレードオフを示している。EfficientDet-d0はパラメータが非常に軽量であるのに対し、YOLOX-sは TensorRT最適化されたハードウェアでは、パラメータが多いにもかかわらず、推論速度が大幅に速くなります。

モデルサイズ
(ピクセル)
mAP
50-95
速度
CPU ONNX
(ms)
速度
T4 TensorRT10
(ms)
params
(M)
FLOPs
(B)
YOLOXnano41625.8--0.911.08
YOLOXtiny41632.8--5.066.45
YOLOXs64040.5-2.569.026.8
YOLOXm64046.9-5.4325.373.8
YOLOXl64049.7-9.0454.2155.6
YOLOXx64051.1-16.199.1281.9
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

批判的観察

  1. GPU レイテンシー:YOLOXはアクセラレーター上で優れた性能を発揮。YOLOX-lは、EfficientDet-d4と同じ精度(49.7mAP)を達成していますが、T4GPU 上では3.7倍近く高速に動作します(9.04ms対33.55ms)。
  2. パラメータ効率:EfficientDetは、ストレージが主な制約である場合に優れています。EfficientDet-d3は、わずか1,200万個のパラメータで強力な精度(47.5mAP)を提供しますが、YOLOXで同様の精度を達成するには、2倍以上のパラメータを持つMediumモデルが必要です。
  3. トレーニングの複雑さ:YOLOXは、MosaicやMixUp ような強力なデータ増強技術をネイティブに組み込んでいるため、ロバストなモデルをゼロからトレーニングするのに役立ちますが、EfficientDetは、EfficientNetバックボーンと複合スケーリングルールの特定の特性に大きく依存しています。

Ultralytics YOLO11:優れた代替品

YOLOXとEfficientDetはそれぞれの時代において画期的であったが、コンピュータービジョンの分野は急速に進歩している。2024年以降の最新のアプリケーションのために、 Ultralytics YOLO11は、スピード、精度、使いやすさにおいて、両方のレガシーアーキテクチャを凌駕する包括的なソリューションを提供します。

Ultralytics YOLO11を選ぶ理由

  • パフォーマンス・バランス: YOLO11 11は、スピードと精度のトレードオフを最適化するように設計されています。通常、EfficientDet-d7の最高精度に匹敵するか、それを上回る一方、推論速度は最速のYOLOXに近い速度を維持しています。
  • 使いやすさ:EfficientDetやYOLOXのような複雑なリサーチリポジトリとは異なり、Ultralytics 実稼働可能なPython APIを提供しています。わずか数行のコードでモデルのロード、トレーニング、デプロイが可能です。
  • 整備されたエコシステム: Ultralytics モデルは、活発な開発、頻繁なアップデート、活気あるコミュニティに支えられています。統合されたエコシステムには、シームレスなデータセット管理とモデルトレーニングのためのUltralytics HUBが含まれています。
  • 汎用性:YOLOXとEfficientDetが主に物体検出であるのに対し、YOLO11 インスタンス分割姿勢推定OBB(Oriented Bounding Boxes)、分類など、1つのフレームワークで幅広いタスクをサポートしている。
  • トレーニングの効率化: YOLO11 、旧来のトランスフォーマーや複雑なバックボーン・アーキテクチャと比較して、トレーニング時に必要なメモリを削減する洗練されたアーキテクチャ・ブロックを採用している。これにより、民生グレードのハードウェアで最先端のモデルをトレーニングすることが可能になります。

YOLO11始めよう

YOLO11 予測を実行するのは驚くほど簡単だ。以下のコード・スニペットは、事前にトレーニングされたモデルをロードし、画像に対して推論を実行する方法を示しています。

from ultralytics import YOLO

# Load the YOLO11n model (nano version for speed)
model = YOLO("yolo11n.pt")

# Perform object detection on an image
results = model("path/to/image.jpg")

# Display the results
results[0].show()

理想的なユースケース

  • EfficientDetを選択するのは、FLOPカウントが絶対的な制限要因であり、レガシーな依存関係があるような、極めて制約の多いCPUエッジデバイスにデプロイする場合のみです。
  • GPU上のアンカーなし検出器に関する学術研究のための強力なベースラインが必要な場合は、YOLOXを選択するが、最新のフレームワークと比較してより複雑なセットアップに注意すること。
  • Ultralytics YOLO11、事実上すべての新しい商業プロジェクトや研究プロジェクトにお選びください。自律走行車の構築、スマートシティ分析、製造品質管理など、YOLO11 11はプロトタイプから生産に効率的に移行するために必要な堅牢性、スピード、ツールを提供します。

結論

YOLOXとEfficientDetはともに、物体検出の進歩に大きく貢献した。EfficientDetは、モデルのスケーリングが科学的かつ構造的に行えることを証明し、YOLOXは完全なアンカーフリーの検出パイプラインの普及に成功した。

しかし Ultralytics YOLO11は、効率性、アンカーフリー設計、GPU 最適化といった、これらのアーキテクチャから得られた最良の教訓を、統一されたユーザーフレンドリーなパッケージに統合している。トレーニング時のメモリフットプリントの低減、多様なコンピュータビジョンタスクのサポート、ONNX CoreMLようなデプロイメントフォーマットとのシームレスな統合により、Ultralytics YOLO11 11は、今日の開発者にとって推奨される選択肢となっています。

参考資料

物体検出モデルの現状を理解するために、さらに多くの比較をご覧ください:


コメント