YOLOv10 vs YOLOX: アンカーフリーおよびNMSフリー物体検出の進化
コンピュータビジョンの分野は、リアルタイム物体検出アーキテクチャの急速な進歩によって牽引されています。この詳細な技術比較では、効率性と設計パラダイムの限界を押し上げた2つの影響力のあるモデル、YOLOv10とYOLOXについて解説します。開発者や研究者は、そのアーキテクチャの違い、パフォーマンスメトリクス、およびトレーニング手法を検証することで、堅牢なビジョンシステムをデプロイするための情報に基づいた意思決定が可能になります。
モデルの背景と起源
これらのディープラーニングモデルの起源を理解することは、そのアーキテクチャの目標と対象となるユースケースに関する有益な背景情報を提供します。
YOLOv10: 真のエンドツーエンド検出に向けたNMSの排除
長年のレイテンシのボトルネックを解決するために開発されたYOLOv10は、YOLOファミリーにネイティブなエンドツーエンドのアプローチを導入しました。
- 著者: Ao Wang, Hui Chen, Lihao Liu, 他
- 所属: 清華大学
- 日付: 2024年5月23日
- ArXiv: 2405.14458
- GitHub: THU-MIG/yolov10
- Docs: Ultralytics YOLOv10 ドキュメント
YOLOX: 研究と産業のギャップを埋める
YOLOXは従来のYOLO設計のアンカーフリー版として登場し、特に産業界での導入を容易にすることを目的として、競争力のあるパフォーマンスを備えたよりシンプルな手法を提供しました。
- 著者: Zheng Ge, Songtao Liu, Feng Wang, Zeming Li, Jian Sun
- 組織: Megvii
- 日付: 2021年7月18日
- ArXiv: 2107.08430
- GitHub: Megvii-BaseDetection/YOLOX
- ドキュメント: YOLOX公式ドキュメント
アーキテクチャのハイライトと革新
両フレームワークとも従来のアンカーベースの検出器から脱却していますが、物体検出パイプラインにおける異なる課題を解決しています。
YOLOXのアーキテクチャ
YOLOXは2021年にエコシステムへいくつかの重要な更新をもたらしました。その主な貢献は、アンカーフリー検出器の設計への移行です。事前に定義されたアンカーボックスを排除することで、YOLOXはデータセットごとに必要となる設計パラメータやヒューリスティックな調整の数を大幅に削減しました。
さらに、YOLOXはデカップルヘッドを採用し、分類タスクと回帰タスクを分離しました。これにより2つの目的間の競合が解消され、トレーニング中の収束が大幅に加速しました。また、高度なラベル割り当てのためにSimOTAを利用し、COCO datasetで一般的な混雑したシーンや遮蔽への対応能力が向上しました。
YOLOXが先駆けたようなアンカーフリー設計は、モデル調整の複雑さを大幅に軽減します。開発者は、最適なアンカーボックスサイズを定義するためにカスタムデータセット上でk-meansクラスタリングを実行する必要がなくなり、準備時間を大幅に節約できます。
YOLOv10 アーキテクチャ
YOLOXは検出ヘッドを改善しましたが、推論中に依然としてNon-Maximum Suppression (NMS)に依存しており、これがレイテンシの変動を引き起こしていました。YOLOv10は、NMSフリーのトレーニングのために一貫したデュアル割り当て戦略を導入することで、この欠陥を具体的にターゲットにしました。トレーニング中にはワン・ツー・メニーとワン・ツー・ワンの両方のラベル割り当てを使用しますが、推論時にはワン・ツー・メニーヘッドを完全に削除し、NMS後処理なしでクリーンな予測を出力します。
YOLOv10は、効率性と精度の両立を追求したモデル設計も特徴としています。軽量な分類ヘッドと空間チャネル分離ダウンサンプリングを組み込むことで、精度を犠牲にすることなくパラメータ数とFLOPsを大幅に削減しています。
パフォーマンスの比較
NVIDIA T4 GPUなどのハードウェアでこれらのモデルを評価すると、スケールに応じて明確な利点が明らかになります。以下は包括的な比較表です。
| モデル | サイズ (ピクセル) | mAPval 50-95 | 速度 CPU ONNX (ms) | 速度 T4 TensorRT10 (ms) | パラメータ (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| YOLOv10n | 640 | 39.5 | - | 1.56 | 2.3 | 6.7 |
| YOLOv10s | 640 | 46.7 | - | 2.66 | 7.2 | 21.6 |
| YOLOv10m | 640 | 51.3 | - | 5.48 | 15.4 | 59.1 |
| YOLOv10b | 640 | 52.7 | - | 6.54 | 24.4 | 92.0 |
| YOLOv10l | 640 | 53.3 | - | 8.33 | 29.5 | 120.3 |
| YOLOv10x | 640 | 54.4 | - | 12.2 | 56.9 | 160.4 |
| 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 |
上記のように、YOLOv10は非常に優れたスケーラビリティを持っています。YOLOv10xバリアントは最高精度(54.4 mAP)を達成し、YOLOv10nバリアントはTensorRT統合を使用して最速の推論を実現します。逆に、レガシーなYOLOX nanoモデルは、非常に制約の厳しい環境向けに最も小さな全体フットプリントを備えています。
トレーニング手法とリソース要件
本番環境向けにモデルを実装する場合、トレーニングのエコシステムとリソース需要は、生の推論速度と同じくらい重要です。
YOLOXは、管理が煩雑になる可能性がある古い環境構成に依存することがよくあります。さらに、そのレガシーなコードベースでは、マルチGPU分散トレーニングや混合精度最適化を実現するために、より多くのボイラープレートコードが必要です。
対照的に、YOLOv10は最新のPyTorchワークフローとスムーズに統合されますが、開発者エクスペリエンスを真に変革するのはUltralyticsエコシステムです。Ultralyticsモデルは、RT-DETRのようなTransformerベースのアーキテクチャと比較して、トレーニング中のCUDAメモリ使用量が大幅に少ないことが特徴です。
コード例: 合理化されたトレーニング
統合されたUltralytics APIを使用すると、わずか数行のPythonコードで最先端モデルをシームレスにトレーニングできます。これにより、C++オペレータの手動コンパイルや複雑な構成ファイルを回避できます。
from ultralytics import YOLO
# Initialize a pre-trained YOLOv10 model
model = YOLO("yolov10s.pt")
# Train the model on the COCO8 dataset
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Validate the model's performance
metrics = model.val()
# Export the optimized model to ONNX format
model.export(format="onnx")このシンプルな構文により、自動混合精度、自動データ拡張、およびWeights & Biasesのようなツールとの統合をすぐに利用できます。
ユースケースと推奨事項
YOLOv10とYOLOXのどちらを選択するかは、特定のプロジェクト要件、デプロイメントの制約、およびエコシステムの優先順位に依存します。
YOLOv10を選ぶべき場合
YOLOv10は以下の用途に強力な選択肢です:
- NMSフリーのリアルタイム検出: Non-Maximum Suppressionなしでエンドツーエンドの検出を行い、デプロイの複雑さを軽減できるアプリケーション。
- バランスの取れた速度と精度のトレードオフ: さまざまなモデルスケール全体で、推論速度と検出精度の強力なバランスが求められるプロジェクト。
- Consistent-Latency Applications: Deployment scenarios where predictable inference times are critical, such as robotics or autonomous systems.
YOLOXを選択すべき場合
YOLOXは以下の場合に推奨されます:
- アンカーフリー検出の研究: YOLOXのクリーンでアンカーフリーなアーキテクチャを、新しい検出ヘッドや損失関数の実験のためのベースラインとして使用する学術研究。
- 超軽量エッジデバイス: マイクロコントローラーやレガシーなモバイルハードウェアへのデプロイ。YOLOX-Nanoバリアントの極めて小さなフットプリント(0.91Mパラメータ)が不可欠な場合。
- SimOTAラベル割り当ての研究: 最適輸送ベースのラベル割り当て戦略と、それが学習の収束に与える影響を調査する研究プロジェクト。
Ultralytics (YOLO26) を選択すべき場合
ほとんどの新規プロジェクトにおいて、Ultralytics YOLO26はパフォーマンスと開発者体験の最高の組み合わせを提供します:
- NMSフリーのエッジデプロイ: Non-Maximum Suppressionの後処理の複雑さを伴わずに、一貫した低レイテンシの推論が求められるアプリケーション。
- CPUのみの環境: 専用のGPUアクセラレーションがないデバイスにおいて、YOLO26の最大43%高速なCPU推論が決定的な利点となります。
- 小物体の検出: 航空ドローンの映像 やIoTセンサーの分析など、ProgLossとSTALが小物体の精度を大幅に高めることができる困難なシナリオ。
ビジョンAIの未来: YOLO26の登場
YOLOv10とYOLOXは重要なマイルストーンですが、コンピュータビジョンの領域は絶えず前進しています。今日、新しいプロジェクトを開始する開発者には、Ultralytics YOLO26を強く推奨します。
2026年1月にリリースされたUltralytics YOLO26は、YOLOv10が先駆けたエンドツーエンドNMSフリー設計という画期的な基盤の上に構築されており、安定性と速度をさらに高めるために改良されています。
YOLO26は、以下のようないくつかの大きな飛躍を遂げています。
- 最大43%高速なCPU推論: Distribution Focal Loss (DFL)を戦略的に削除することで、YOLO26はGPUのないエッジデバイスで非常に優れたパフォーマンスを実現します。
- MuSGDオプティマイザ: LLMのトレーニング安定性に触発された、SGDとMuonの新しいハイブリッドにより、より高速な収束と非常に安定したトレーニングの実行を保証します。
- ProgLoss + STAL: これらの高度な損失関数は、航空画像やIoTセンサーにおいて重要な要素となる、小さな物体の認識において顕著な改善をもたらします。
- 比類のない汎用性: 純粋な物体検出器であるYOLOXとは異なり、YOLO26はインスタンスセグメンテーション、姿勢推定、画像分類、およびOBB検出を単一の統合ライブラリ内でネイティブにサポートします。
本番環境への最もシンプルなパスとして、開発者はUltralyticsプラットフォームを使用して、データセットのアノテーション、クラウドでのYOLO26モデルのトレーニング、そしてセットアップ不要であらゆるエッジデバイスへのデプロイを行うことができます。
実世界の応用例
適切なモデルの選択は、さまざまな業界における現実世界でのデプロイメントの成功を左右します。
高速ビデオ解析
スマートシティの交通管理など、高密度のビデオフィードを処理する場合、YOLOv10はNMSフリーの後処理により大きな利点を提供します。NMSのボトルネックを排除することで一貫した低レイテンシが可能になり、BoT-SORTのような追跡アルゴリズムと組み合わせるのに最適です。
レガシーエッジデプロイメント
純粋な畳み込みパラダイムに最適化された古い学術環境やレガシーなAndroidアプリケーションの場合、古いPyTorch環境を維持することが許容されるトレードオフである特殊なケースでは、YOLOX-Tinyのような小型モデルが依然として活用されることがあります。
最新のエッジおよびIoTデバイス
ロボティクス、ドローン、小売棚分析などの次世代ハードウェアのデプロイメントには、YOLO26が究極のソリューションです。大幅に削減されたCPUレイテンシと優れた小物体検出性能により、自律航行や詳細な在庫管理に最適です。
ディープラーニングツールキットを拡張するための追加の比較として、柔軟なYOLO11やTransformerベースのRT-DETRといった代替モデルとこれらのモデルがどのように比較されるかを確認することもできます。