EfficientDetとYOLOv10#
急速に進化するコンピュータービジョンの分野では、精度、レイテンシ、計算効率のバランスを取るために、適切な物体検出アーキテクチャを選ぶことが重要です。この包括的な技術ガイドでは、大きな影響を与えた2つのモデル、GoogleのEfficientDetと清華大学のYOLOv10を比較します。どちらも物体検出を大きく進歩させたモデルですが、アーキテクチャ設計とモデル最適化には大きく異なるアプローチを採用しています。
両モデルの基本アーキテクチャを確認し、COCOなどの標準データセットでの性能ベンチマークを検証するとともに、現代の機械学習パイプラインへの統合方法を解説します。特に、包括的なUltralyticsエコシステムの利点に焦点を当てます。
EfficientDet:複合スケーリングの先駆け#
2019年後半に登場したEfficientDetは、ネットワークの各次元を体系的にスケーリングする手法を導入し、スケーラブルで高精度な物体検出の新たなベンチマークを確立しました。
主な革新とアーキテクチャ#
- 著者: Mingxing Tan、Ruoming Pang、Quoc V. Le
- 組織: Google Brain
- 日付: 2019-11-20
- Arxiv: https://arxiv.org/abs/1911.09070
- GitHub: EfficientDetリポジトリ
EfficientDetはEfficientNetバックボーンを基盤とし、独自の双方向特徴ピラミッドネットワーク(BiFPN)を活用します。特徴の重要度を区別せずに合算する従来の特徴ピラミッドネットワーク(FPN)とは異なり、BiFPNは学習可能な重みを用いてマルチスケールの特徴を融合します。これにより、最終的な予測にどの解像度の特徴が最も寄与するかを、ネットワークが効果的に学習できます。さらにEfficientDetは、バックボーン、特徴ネットワーク、ボックス/クラス予測ネットワークの解像度、深さ、幅を一括して均等にスケーリングする複合スケーリング手法を採用しています。
EfficientDetは、旧式のTensorFlowパイプラインと深く統合されたレガシーシステムでは依然として有力な選択肢ですが、トレーニング時にかなりのメモリーを必要とします。また、動的な最新フレームワークと比べて扱いにくい旧式のエコシステムに依存しています。
YOLOv10:NMSフリーの革新モデル#
2024年半ばにリリースされたYOLOv10は、後処理時のNon-Maximum Suppression(NMS)を不要にすることで、リアルタイム物体検出のパラダイムを根本から変え、推論レイテンシを大幅に削減しました。
主な革新とアーキテクチャ#
- 著者: Ao Wang、Hui Chen、Lihao Liuほか
- 組織: 清華大学
- 日付: 2024-05-23
- Arxiv: https://arxiv.org/abs/2405.14458
- GitHub: YOLOv10リポジトリ
YOLOv10は、NMSフリートレーニングのために一貫性のあるデュアルアサインメント戦略を導入しています。トレーニング時にワンツーメニーとワンツーワンの両方のラベル割り当てを利用することで、NMSによる重複除去に頼らず、一意に対応するバウンディングボックスを出力するようネットワークを学習させます。効率と精度を包括的に考慮したこのモデル設計は、計算の冗長性を削減するため、エッジコンピューティングや低レイテンシの動画ストリーミングアプリケーションに最適です。Ultralyticsエコシステムにシームレスに統合されており、開発者は非常に使いやすいPython APIを利用できます。
NMS処理をなくすことで、YOLOv10はシーン内で検出される物体の数に関係なく、一貫した推論速度を実現します。混雑したコンピュータービジョンアプリケーションでよく発生するレイテンシの急増も解消されます。
性能比較:精度、速度、効率#
実環境にモデルをデプロイする際、開発者はパラメーター数や計算量(FLOPs)と平均適合率(mAP)を比較検討する必要があります。以下の表では、両モデルの各スケーリングバリアントについて、これらの指標を詳しく示します。
| モデル | サイズ (ピクセル) | 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 |
| YOLOv10n | 640 | 38.5 | - | 1.84 | 2.3 | 6.7 |
| YOLOv10s | 640 | 46.3 | - | 2.49 | 7.2 | 21.6 |
| YOLOv10m | 640 | 51.1 | - | 4.74 | 15.4 | 59.1 |
| YOLOv10b | 640 | 52.5 | - | 5.74 | 19.1 | 92.0 |
| YOLOv10l | 640 | 53.2 | - | 7.28 | 24.4 | 120.3 |
| YOLOv10x | 640 | 54.4 | - | 10.70 | 29.5 | 160.4 |
注:YOLOv10nバリアントは、初期のEfficientDetモデルと比べてパラメーター数が大幅に少なく(2.3M)、TensorRTでの速度も大幅に優れています(1.84ms)。そのため、本番環境におけるリアルタイム推論により適しています。
モデルのデプロイにUltralyticsを選ぶ理由#
どちらのモデルも歴史的、構造的に重要な意味を持っていますが、現代のパイプラインに統合するのは困難な場合があります。ここで強みを発揮するのがUltralytics Platformです。統合エコシステムを提供することで、Ultralyticsはデータアノテーションからデプロイまで、ライフサイクル全体を簡素化します。
- 使いやすさ: Ultralytics Pythonパッケージは、モデルのトレーニング、検証、エクスポートを単一のインターフェースで実行できます。数百行に及ぶ定型コードを簡潔なコマンドに置き換えられます。
- エコシステムと汎用性: EfficientDetが検出に特化しているのに対し、Ultralytics YOLOモデルはインスタンスセグメンテーション、姿勢推定、回転バウンディングボックス(OBB)、分類にも自然に対応します。
- トレーニング効率: オートバッチングや分散トレーニングなどの最先端技術を活用することで、Ultralyticsモデルは、大型のTransformerや旧式のマルチブランチTFアーキテクチャよりも高速にトレーニングでき、CUDAメモリーの消費量も大幅に抑えられます。
コード例:YOLOv10のトレーニング#
Ultralyticsを使ったYOLOv10のデプロイは非常に簡単です。次のコード例では、Python API内でYOLOv10ネットワークを初期化、トレーニング、評価する方法を示します。
from ultralytics import YOLO
# 事前学習済みのYOLOv10モデルを読み込みます(エッジでの高速動作に適したnanoバリアント)。
model = YOLO("yolov10n.pt")
# COCO8データセットでモデルをトレーニングします
results = model.train(data="coco8.yaml", epochs=50, imgsz=640, batch=16)
# 検証セットでモデルを評価します
metrics = model.val()
# 本番環境へのデプロイに向けて、モデルをONNXにエクスポートします
model.export(format="onnx")ユースケースと推奨事項#
EfficientDetとYOLOv10のどちらを選ぶかは、プロジェクト固有の要件、デプロイ上の制約、エコシステムに関する好みによって異なります。
EfficientDetを選ぶタイミング#
EfficientDetが適しているのは、次のような場合です。
- Google CloudとTPUパイプライン: EfficientDetがネイティブに最適化されている、Google Cloud Vision APIやTPUインフラと緊密に統合されたシステム。
- 複合スケーリングの研究: ネットワークの深さ、幅、解像度をバランスよくスケーリングする効果の研究に焦点を当てた学術的なベンチマーク。
- LiteRTによるモバイルデプロイ: Androidまたは組み込みLinuxデバイス向けに、LiteRT(旧称TensorFlow Lite)形式へのエクスポートが特に必要なプロジェクト。
YOLOv10を選ぶ場合#
YOLOv10は、次のような用途に推奨されます。
- NMSを使用しないリアルタイム検出: 非最大抑制を使用しないエンドツーエンド検出によって、デプロイを簡素化できるアプリケーション。
- 速度と精度のバランス: さまざまなモデルスケールで、推論速度と検出精度の優れたバランスが必要なプロジェクト。
- レイテンシーが安定している必要のあるアプリケーション: ロボティクスや自律システムなど、予測可能な推論時間が重要なデプロイシナリオ。
Ultralytics (YOLO26)を選ぶ場合#
多くの新規プロジェクトにおいて、Ultralytics YOLO26はパフォーマンスと開発者体験を最適なバランスで提供します。
- NMSを使用しないエッジデプロイ: 非最大抑制の後処理を複雑化させずに、安定した低レイテンシー推論を必要とするアプリケーション。
- CPUのみの環境: 専用のGPUアクセラレーションを備えていないデバイスで、YOLO26の最大43%高速なCPU推論が大きな優位性を発揮します。
- 小物体検出: ドローンによる航空画像やIoTセンサーの分析など、ProgLossとSTALによって小さな物体の精度が大幅に向上する難しいシナリオ。
未来はここに:Ultralytics YOLO26の登場#
YOLOv10は革新的なNMSフリーデザインを導入しましたが、その技術はさらに進化しています。2026年1月にリリースされたUltralytics YOLO26は、ビジョンAIにおける決定的な最先端モデルです。YOLO11のマルチタスク機能やRT-DETRの安定性など、従来のアーキテクチャの優れた要素を統合し、高度に最適化された単一の強力なモデルとして実現しています。
新しいプロジェクトを始める場合は、YOLO26へのアップグレードを強く推奨します。Ultralytics Platformを通じて、比類のない柔軟性と使いやすさを提供します。
YOLO26の主な革新:
- エンドツーエンドのNMSフリーデザイン: YOLOv10が築いた基盤を引き継ぐYOLO26は、オプションのエンドツーエンドのワンツーワンヘッド(
nms=False)を備えています。NMSを省略するため、デプロイロジックを最小限に簡素化できます。 - CPU推論を最大43%高速化: Distribution Focal Loss(DFL)を削除することで、YOLO26は計算オーバーヘッドを大幅に削減し、エッジAIデバイスで圧倒的な性能を発揮します。
- MuSGDオプティマイザー: YOLO26は大規模言語モデル(LLM)のトレーニングから着想を得た革新技術を取り入れています。SGDの安定性とMuonの速度を融合することで、従来モデルよりも速く、安定して収束します。
- ProgLoss + STAL: 優れた損失関数により、小物体検出の長年の課題を効果的に解決します。この分野は、従来EfficientDetが苦戦していた領域です。
結論:ユースケースに応じたモデル選び#
最終的に、どちらのネットワークを選ぶかはデプロイ上の制約によって決まります。
- EfficientDetは複合スケーリングに関する学術的な研究対象として引き続き重要であり、実行速度よりもモデルの重みファイルのサイズを重視する、既存のTensorFlowシステムを保守する研究者に適しています。
- YOLOv10は、先駆的なNMSフリーアーキテクチャを採用しているため、高速なマルチオブジェクトトラッキングや交通監視など、超低レイテンシが求められるアプリケーションに非常に適しています。
- 一方、YOLO26は現代のコンピュータービジョンプロジェクトに最適な選択肢です。堅牢なUltralyticsエコシステムに支えられ、最高水準の精度、最小限のメモリーフットプリント、マルチタスクの汎用性を兼ね備えた、最高の性能バランスを提供します。