YOLOv10 vs YOLOX#
コンピュータービジョンの分野は、リアルタイム物体検出アーキテクチャの急速な進歩によって発展しています。この詳細な技術比較では、効率性と設計パラダイムの限界を押し広げた2つの重要なモデル、YOLOv10とYOLOXを取り上げます。アーキテクチャの違い、性能指標、トレーニング手法を検討することで、開発者や研究者は堅牢なビジョンシステムの導入について、十分な情報に基づいた判断を下せます。
モデルの背景と起源#
これらのディープラーニングモデルの起源を理解すると、アーキテクチャの目標や想定されるユースケースについて、貴重な背景情報が得られます。
YOLOv10:NMSを排除し、真のエンドツーエンド検出を実現#
長年のレイテンシボトルネックを解消するために開発されたYOLOv10は、YOLOファミリーにネイティブなエンドツーエンド方式を導入しました。
- 著者: Ao Wang、Hui Chen、Lihao Liuほか
- 組織: 清華大学
- 日付: 2024年5月23日
- ArXiv: 2405.14458
- GitHub: THU-MIG/yolov10
- ドキュメント: 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データセットでよく見られる密集シーンやオクルージョンへの対応も改善しています。
YOLOXが先駆けたようなアンカーフリー設計は、モデルチューニングの複雑さを大幅に軽減します。開発者は最適なアンカーボックスのサイズを定義するために、カスタムデータセットでk-meansクラスタリングを実行する必要がなくなり、貴重な準備時間を節約できます。
YOLOv10のアーキテクチャ#
YOLOXは検出ヘッドを改良しましたが、推論時には依然として非最大抑制(NMS)に依存しており、これがレイテンシのばらつきを招きます。YOLOv10はこの弱点に特化して取り組み、NMSなしのトレーニングを可能にする一貫性のあるデュアル割り当て戦略を導入しました。トレーニング中はone-to-manyとone-to-oneの両方のラベル割り当てを使用しますが、推論時にはone-to-manyヘッドを完全に取り除き、NMSによる後処理なしでクリーンな予測を出力します。
YOLOv10は、効率と精度を総合的に重視したモデル設計も特徴です。軽量な分類ヘッドと空間・チャネル分離型のダウンサンプリングを採用し、精度を損なうことなくパラメーター数とFLOPsを大幅に削減しています。
パフォーマンス比較#
NVIDIA T4 GPUなどのハードウェアでこれらのモデルを評価すると、スケールに応じてそれぞれ異なる利点が明らかになります。以下に詳細な比較表を示します。
| モデル | サイズ (ピクセル) | mAPval 50-95 | 速度 CPU ONNX (ms) | 速度 T4 TensorRT10 (ms) | パラメーター (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| 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 |
| 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
# 事前学習済みYOLOv10モデルを初期化します
model = YOLO("yolov10s.pt")
# COCO8データセットでモデルをトレーニングします
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# モデルの性能を検証します
metrics = model.val()
# 最適化されたモデルをONNX形式にエクスポートします
model.export(format="onnx")このシンプルな構文を使うと、自動混合精度、自動データ拡張、Weights & Biasesなどのツールとの統合を、すぐに利用できます。
ユースケースと推奨事項#
YOLOv10とYOLOXのどちらを選ぶかは、プロジェクト固有の要件、デプロイ上の制約、エコシステムの好みによって異なります。
YOLOv10を選ぶ場合#
YOLOv10は、次の用途に適しています:
- NMSを使用しないリアルタイム検出: 非最大抑制を使用しないエンドツーエンド検出によって、デプロイを簡素化できるアプリケーション。
- 速度と精度のバランス: さまざまなモデルスケールで、推論速度と検出精度の優れたバランスが必要なプロジェクト。
- レイテンシーが安定している必要のあるアプリケーション: ロボティクスや自律システムなど、予測可能な推論時間が重要なデプロイシナリオ。
YOLOXを選ぶタイミング#
YOLOXは次のような用途に推奨されます。
- アンカーフリー検出の研究: 新しい検出ヘッドや損失関数を試す際のベースラインとして、YOLOXのシンプルなアンカーフリーアーキテクチャを使用する学術研究。
- 超軽量エッジデバイス: YOLOX-Nanoバリアントの極めて小さなフットプリント(パラメーター数0.91M)が重要となる、マイクロコントローラーや旧式のモバイルハードウェアへのデプロイ。
- SimOTAラベル割り当ての研究: 最適輸送に基づくラベル割り当て戦略と、トレーニングの収束への影響を調査する研究プロジェクト。
Ultralytics (YOLO26)を選ぶ場合#
多くの新規プロジェクトにおいて、Ultralytics YOLO26はパフォーマンスと開発者体験を最適なバランスで提供します。
- NMSを使用しないエッジデプロイ: 非最大抑制の後処理を複雑化させずに、安定した低レイテンシー推論を必要とするアプリケーション。
- CPUのみの環境: 専用のGPUアクセラレーションを備えていないデバイスで、YOLO26の最大43%高速なCPU推論が大きな優位性を発揮します。
- 小物体検出: ドローンによる航空画像やIoTセンサーの分析など、ProgLossとSTALによって小さな物体の精度が大幅に向上する難しいシナリオ。
ビジョンAIの未来:YOLO26の登場#
YOLOv10とYOLOXは重要なマイルストーンですが、コンピュータービジョンの分野は絶えず進歩しています。現在、新しいプロジェクトを始める開発者には、Ultralytics YOLO26を強くおすすめします。
2026年1月にリリースされたUltralytics YOLO26は、YOLOv10が先駆けたエンドツーエンドのNMSフリー設計を基盤とし、安定性と速度をさらに高めています。
YOLO26は、次のような大きな進歩を導入している点で際立っています。
- CPU推論が最大43%高速化: Distribution Focal Loss(DFL)を戦略的に取り除くことで、YOLO26はGPUを搭載していないエッジデバイスでも、はるかに優れた性能を実現します。
- MuSGDオプティマイザー: LLMのトレーニング安定性に着想を得た新しいSGDとMuonのハイブリッドにより、収束が速まり、トレーニング実行の安定性も大きく向上します。
- ProgLoss + STAL: これらの高度な損失関数は、小物体認識の性能を大幅に向上させます。これは航空画像やIoTセンサーにとって重要な要素です。
- 比類のない汎用性: 物体検出に特化したYOLOXとは異なり、YOLO26は単一の統合ライブラリでインスタンスセグメンテーション、姿勢推定、画像分類、OBB検出をネイティブにサポートします。
本番環境への最も簡単な導入方法として、開発者はUltralytics Platformを使ってデータセットにアノテーションを付け、クラウドでYOLO26モデルをトレーニングし、セットアップ不要で任意のエッジデバイスにデプロイできます。
実際の用途#
適切なモデルの選択は、さまざまな業界における実環境での導入の成否を左右します。
高速動画分析#
スマートシティの交通管理など、高密度の動画ストリームを処理する場合、YOLOv10はNMSフリーの後処理により大きな利点をもたらします。NMSのボトルネックを取り除くことで低レイテンシを安定して実現できるため、BoT-SORTのようなトラッキングアルゴリズムとの組み合わせに適しています。
従来型のエッジデバイスへのデプロイ#
古い学術用環境や、純粋な畳み込みパラダイム向けに高度に最適化された従来のAndroidアプリケーションでは、古いPyTorch環境の維持を許容できる場合、YOLOX-Tinyのような小型モデルが今も特定の用途で使われる可能性があります。
最新のエッジデバイスとIoTデバイス#
ロボティクス、ドローン、小売店の棚分析など、次世代ハードウェアへの導入には、YOLO26が最適なソリューションです。CPUレイテンシが大幅に低く、小物体検出性能にも優れているため、自律航行や詳細な在庫管理に特に適しています。
ディープラーニングのツールキットをさらに広げるには、柔軟なYOLO11やTransformerを活用したRT-DETRなどの代替モデルとの比較もご覧ください。