EfficientDetとYOLOX#
最新のコンピュータビジョンパイプラインを設計する際、適切なモデルの選択は、精度とリアルタイムでの実用性の両方を左右する重要な判断です。この技術ガイドでは、ニューラルネットワークの進化における重要な2つのアーキテクチャ、GoogleのEfficientDetとMegviiのYOLOXを詳しく比較します。それぞれの設計パラダイムを分析し、ベンチマーク性能を評価するとともに、新たにリリースされたUltralytics YOLO26などの最先端ソリューションとの比較も行います。
EfficientDetの概要#
Google Brainチームが発表したEfficientDetは、モデルスケーリングに高度に体系化されたアプローチを導入しました。多くのパラメーターを持つ同時代のネットワークより大幅に少ないパラメーターで、高い精度を達成できることを示しました。
EfficientDetの詳細:
- 著者: Mingxing Tan、Ruoming Pang、Quoc V. Le
- 組織: Google
- 日付: 2019-11-20
- ArXiv: 1911.09070
- GitHub: google/automl/efficientdet
- ドキュメント: EfficientDetドキュメント
アーキテクチャの主な特徴#
EfficientDetはEfficientNetバックボーンを基盤とし、複合スケーリング手法によってネットワークの解像度、深さ、幅を一様に拡大します。代表的な特徴は双方向特徴ピラミッドネットワーク(BiFPN)で、高速かつ効果的なマルチスケール特徴融合を可能にします。異なる入力特徴に学習可能な重みを割り当てることで、BiFPNはより重要な空間情報をネットワークが優先するようにします。
EfficientDetは理論上のFLOPsが非常に少ない一方、TensorFlowエコシステムや古いAutoML構成に依存しているため、変化の速い最新のPyTorchワークフローへの統合が煩雑になる場合があります。さらに、複雑なマルチブランチネットワークのため、最新のYOLOバリアントと比べてトレーニング時のメモリ消費量が予想以上に増えることがあります。
YOLOXの概要#
2年後にリリースされたYOLOXは、従来のYOLOアーキテクチャをアンカーフレームワークに変えることで、学術研究と産業でのデプロイの隔たりを埋めようとしました。
YOLOXの詳細:
- 著者: Zheng Ge、Songtao Liu、Feng Wang、Zeming Li、Jian Sun
- 組織: Megvii
- 日付: 2021-07-18
- ArXiv: 2107.08430
- GitHub: Megvii-BaseDetection/YOLOX
- ドキュメント: YOLOXドキュメント
アーキテクチャの主な特徴#
YOLOXは物体検出のパラダイムを大幅に簡素化しました。アンカーフリー設計に切り替えることで、データセット固有の複雑なアンカーボックス調整を不要にし、ヒューリスティックなオーバーヘッドを削減しました。また、分類と位置特定のタスクを分離する分離型ヘッドを統合し、収束速度を大幅に向上させました。さらに、SimOTAラベル割り当て戦略を導入し、トレーニング中の正例サンプルの割り当てを動的に最適化しました。
こうした進歩にもかかわらず、YOLOXのリポジトリを管理するには、C++拡張を手動でコンパイルし、複雑な依存関係に対処する必要があることが多く、経験の浅いチームでは迅速なモデルのデプロイが難しくなる場合があります。
パフォーマンス比較#
本番環境向けのモデルを評価する際は、平均適合率(mAP)と推論速度のバランスが重要です。以下の表では、標準的なCOCOベンチマークにおいてEfficientDetとYOLOXの各モデル群を直接比較します。
| モデル | サイズ (ピクセル) | mAPval 50-95 | 速度 CPU ONNX (ms) | 速度 T4 TensorRT10 (ms) | パラメーター (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| 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 |
| YOLOXnano | 416 | 25.8 | - | - | 0.91 | 1.08 |
| YOLOXtiny | 416 | 32.8 | - | - | 5.06 | 6.45 |
| YOLOXs | 640 | 40.5 | - | 2.56 | 9.0 | 26.8 |
| YOLOXm | 640 | 46.9 | - | 5.43 | 25.3 | 73.8 |
| YOLOXl | 640 | 49.7 | - | 9.04 | 54.2 | 155.6 |
| YOLOXx | 640 | 51.1 | - | 16.1 | 99.1 | 281.9 |
EfficientDetは大型のd7バリアントで高い精度を達成する一方、YOLOXはGPUハードウェア上で(TensorRT経由で)はるかに優れたレイテンシを実現します。そのため、自動運転やスポーツトラッキングのように高いFPSが求められるアプリケーションに適しています。
ユースケースと推奨事項#
EfficientDetとYOLOXのどちらを選ぶかは、具体的なプロジェクト要件、デプロイ上の制約、エコシステムの好みによって異なります。
EfficientDetを選ぶタイミング#
EfficientDetが適しているのは、次のような場合です。
- Google CloudとTPUパイプライン: EfficientDetがネイティブに最適化されている、Google Cloud Vision APIやTPUインフラと緊密に統合されたシステム。
- 複合スケーリングの研究: ネットワークの深さ、幅、解像度をバランスよくスケーリングする効果の研究に焦点を当てた学術的なベンチマーク。
- LiteRTによるモバイルデプロイ: Androidまたは組み込みLinuxデバイス向けに、LiteRT(旧称TensorFlow Lite)形式へのエクスポートが特に必要なプロジェクト。
YOLOXを選ぶタイミング#
YOLOXは次のような用途に推奨されます。
- アンカーフリー検出の研究: 新しい検出ヘッドや損失関数を試す際のベースラインとして、YOLOXのシンプルなアンカーフリーアーキテクチャを使用する学術研究。
- 超軽量エッジデバイス: YOLOX-Nanoバリアントの極めて小さなフットプリント(パラメーター数0.91M)が重要となる、マイクロコントローラーや旧式のモバイルハードウェアへのデプロイ。
- SimOTAラベル割り当ての研究: 最適輸送に基づくラベル割り当て戦略と、トレーニングの収束への影響を調査する研究プロジェクト。
Ultralytics (YOLO26)を選ぶ場合#
多くの新規プロジェクトにおいて、Ultralytics YOLO26はパフォーマンスと開発者体験を最適なバランスで提供します。
- NMSを使用しないエッジデプロイ: 非最大抑制の後処理を複雑化させずに、安定した低レイテンシー推論を必要とするアプリケーション。
- CPUのみの環境: 専用のGPUアクセラレーションを備えていないデバイスで、YOLO26の最大43%高速なCPU推論が大きな優位性を発揮します。
- 小物体検出: ドローンによる航空画像やIoTセンサーの分析など、ProgLossとSTALによって小さな物体の精度が大幅に向上する難しいシナリオ。
Ultralyticsの強み:YOLO26の紹介#
EfficientDetとYOLOXはそれぞれの時代に大きな飛躍をもたらしましたが、現代のコンピュータービジョンには、より高い汎用性、効率化されたワークフロー、妥協のない速度が求められています。使いやすさ、低いメモリ要件、十分に保守されたエコシステムを重視する開発者には、2026年1月にリリースされたUltralytics YOLO26へのアップグレードを強くおすすめします。
YOLO26はYOLOシリーズにパラダイムシフトをもたらし、YOLOXやEfficientDetなどの旧モデルに見られた制約を体系的に克服しています。
- エンドツーエンドのNMSフリーデザイン: 高コストなNon-Maximum Suppression (NMS)の後処理が必要なEfficientDetやYOLOXとは異なり、YOLO26はオプションのone-to-oneヘッド(
nms=False)を通じて、ネイティブなエンドツーエンド推論をサポートします。これにより、NMSによるレイテンシのボトルネックが解消され、エッジデプロイが大幅に簡素化されます。 - CPU推論が最大43%高速: 戦略的なアーキテクチャ調整とDFLの削除(Distribution Focal Loss)により、YOLO26は専用GPUのない環境向けに独自に最適化されており、Raspberry PiなどのエッジAIハードウェアでも優れたパフォーマンスを発揮します。
- MuSGDオプティマイザー: LLMトレーニングの革新(Moonshot AIのKimi K2など)に着想を得て、YOLO26はSGDとMuonを組み合わせたハイブリッド方式を採用しています。これにより、非常に安定したトレーニングと高速な収束が実現し、旧来のTensorFlow推定器を大きく上回ります。
- ProgLoss + STAL: 高度な損失関数により、小さな物体の認識が大幅に改善されています。これは、YOLOXとEfficientDetの双方にとって歴史的な弱点でした。ドローン分析やIoTでは、特に重要な特性です。
- 優れた汎用性: EfficientDetとYOLOXはバウンディングボックス検出のみを行いますが、YOLO26はインスタンスセグメンテーション、(Residual Log-Likelihood Estimationを用いた)姿勢推定、回転バウンディングボックス(OBB)をネイティブにサポートします。
効率化されたユーザーエクスペリエンスとトレーニング効率#
YOLOXなどのモデルを使用する際の大きな課題の1つは、トレーニング環境のセットアップです。統合されたUltralytics Python APIを使えば、最先端モデルのトレーニングに必要なコードは数行だけです。また、YOLOモデルには高度に最適化されたデータローダーが備わっており、Transformerを多用するモデルや旧来のマルチブランチネットワークと比べて、CUDAメモリ使用量を大幅に抑えられます。
from ultralytics import YOLO
# 最先端のYOLO26nモデルを読み込みます(nms=FalseでNMSフリー推論を利用できます)
model = YOLO("yolo26n.pt")
# カスタムデータセットでモデルをトレーニングします
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# エッジデプロイ用にモデルをONNXまたはOpenVINOへスムーズにエクスポートします
model.export(format="openvino")結論:適切な選択をする#
TensorFlowエコシステムに深く組み込まれたレガシーシステムを保守している場合は、特に大規模な複合スケーリングが理論上必要となるシナリオにおいて、EfficientDetが引き続き安定した選択肢となります。一方、レガシーなアンカーフリーのコードベースで純粋な速度が必要な場合は、YOLOXが高速で信頼性の高い検出器として機能します。
ただし、本番環境へ移行する新規プロジェクトには、間違いなくUltralytics YOLO26(またはレガシーエンタープライズのサポート向けに非常に安定したYOLO11)をおすすめします。エンドツーエンドのNMSフリー推論をオプションで利用できるほか、CPU速度が大幅に向上し、OpenVINOやTensorRTなどのプラットフォームを通じたデプロイパイプラインもシームレスです。YOLO26を使うことで、コンピュータービジョンアプリケーションを将来にわたって利用でき、高精度を保ちながら、非常に簡単に保守できます。