YOLOv10 YOLOX: アンカーフリーかつNMS物体検出の進化
コンピュータビジョン分野は、リアルタイム物体検出アーキテクチャの急速な進歩によって牽引されている。本稿では、効率性と設計パラダイムの限界を押し広げた2つの影響力あるモデルを詳細に技術比較する: YOLOv10とYOLOX。両モデルのアーキテクチャ上の差異、性能指標、トレーニング手法を検証することで、開発者や研究者は堅牢なビジョンシステムを展開するための情報に基づいた判断が可能となる。
モデルの背景と起源
これらの深層学習モデルの起源を理解することは、そのアーキテクチャ目標と対象となるユースケースに関する貴重な背景情報を提供する。
YOLOv10: 真のエンドツーエンドNMS 排除
長年のレイテンシボトルネックを解決するために開発されたYOLOv10 、YOLO にネイティブなエンドツーエンドアプローチYOLOv10 。
- 著者: Ao Wang, Hui Chen, Lihao Liu, et al.
- 組織:清華大学
- 日付: 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は分離型ヘッドを採用し、分類タスクと回帰タスクを分離している。これにより両目的間の競合が解消され、学習時の収束が大幅に加速された。また高度なラベル割り当てのためにSimOTAを利用し、COCO 頻出する混雑したシーンやオクルージョンの処理を改善している。
アンカー不要の利点
YOLOXが先駆けたようなアンカーフリー設計は、モデル調整の複雑さを大幅に低減します。開発者は最適なアンカーボックスサイズを定義するためにカスタムデータセットでk-meansクラスタリングを実行する必要がなくなり、貴重な準備時間を節約できます。
YOLOv10アーキテクチャ
YOLOXは検出ヘッドを改善したものの、推論時には依然として非最大抑制(NMS)に依存しており、これが遅延変動を引き起こす。 YOLOv10 は、NMS のための一貫した二重割り当て戦略を導入することで、この欠点を特に狙い撃ちしました。トレーニング中は、1対多と1対1の両方のラベル割り当てを使用しますが、推論時には1対多のヘッドを完全に削除し、NMS を行わないクリーンな予測を出力します。
YOLOv10 効率性と精度を重視した包括的なモデルYOLOv10 特徴としている。軽量な分類ヘッドと空間チャネル分離型ダウンサンプリングを採用し、精度を損なうことなくパラメータ数とFLOPsを大幅に削減している。
パフォーマンス比較
NVIDIA GPU などのハードウェア上でこれらのモデルを評価すると、規模に応じて明確な利点がGPU 。以下に包括的な比較表を示します。
| モデル | サイズ (ピクセル) | mAPval 50-95 | 速度 CPU ONNX (ms) | 速度 T4 TensorRT10 (ms) | params (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 極めて優れたYOLOv10 。 YOLOv10x この変種が最高の精度を達成する(54.4mAP一方、 YOLOv10n このバリアントは、最も高速な推論を実現します TensorRT 統合。一方、従来のYOLOX nanoモデルは、制約の厳しい環境において最小の全体フットプリントを実現している。
トレーニング手法とリソース要件
モデルを本番環境へ導入する際、トレーニング環境とリソース要件は、純粋な推論速度と同様に重要である。
YOLOXはしばしば古い環境設定に依存しており、管理が煩雑になりがちです。さらに、そのレガシーなコードベースでは、GPU トレーニングや混合精度最適化を実現するために、より多くの定型コードが必要となります。
対照的に、YOLOv10 PyTorch とシームレスにYOLOv10 、開発者体験を真に変革するのはUltralytics です。Ultralytics 、Transformerベースのアーキテクチャと比較して、トレーニング中のCUDA 大幅に低いという特徴があります。 RT-DETRといったトランスフォーマーベースのアーキテクチャと比較して、トレーニング時のCUDAメモリ使用量が大幅に低い
コード例:効率化されたトレーニング
統一されたUltralytics を使用すれば、わずか数行の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 具体的なプロジェクト要件、デプロイメント上の制約、およびエコシステムの好みに依存します。
YOLOv10を選択すべき時
YOLOv10 以下に最適YOLOv10 :
- NMSリアルタイム検出:ノンマキシマム抑制なしのエンドツーエンド検出により、導入の複雑さを軽減するアプリケーション。
- 速度と精度のバランスの取れたトレードオフ:様々なモデル規模において、推論速度と検出精度との強力なバランスを必要とするプロジェクト。
- 一貫したレイテンシを必要とするアプリケーション:予測可能な推論時間が極めて重要な展開シナリオ(例:ロボティクスや自律システム)。
YOLOXを選択すべき時
YOLOXは以下の方におすすめです:
- アンカーフリー検出研究:YOLOXのクリーンなアンカーフリーアーキテクチャをベースラインとして、新たな検出ヘッドや損失関数の実験を行う学術研究。
- 超軽量エッジデバイス:マイクロコントローラーやレガシーモバイルハードウェアへの展開において、YOLOX-Nanoモデルの極めて小さなフットプリント(0.91Mパラメータ)が極めて重要となる。
- SimOTAラベル割り当て研究:最適輸送に基づくラベル割り当て戦略と、それが学習収束に与える影響を調査する研究プロジェクト。
Ultralytics YOLO26)を選択すべきタイミング
ほとんどの新規プロジェクトにおいて、Ultralytics パフォーマンスと開発者体験の最適な組み合わせを提供します:
- NMSデプロイメント:ノンマキシマムサプレッション(NMS)後処理の複雑さを伴わずに、一貫した低遅延推論を必要とするアプリケーション。
- CPU: GPU を持たないデバイスにおいて、YOLO26のCPU 決定的な優位性を提供する。
- 小型物体検出: ドローン航空写真やIoTセンサー解析といった困難なシナリオにおいて、ProgLossとSTALが微小物体の精度を大幅に向上させる。
ビジョンAIの未来:YOLO26の登場
YOLOv10 重要なマイルストーンではあるものの、コンピュータビジョンの世界は絶え間なく進化を続けている。今日新たなプロジェクトを始める開発者にとって、Ultralytics 最善の選択肢である。
2026年1月にリリースUltralytics 、YOLOv10が先駆けたエンドツーエンドのNMS設計という基盤となるブレークスルーを基盤とし、さらに高い安定性と速度を実現するために改良を加えています。
YOLO26は、いくつかの大きな飛躍をもたらすことで際立っている:
- 最大43%高速CPU :ディストリビューション焦点損失(DFL)を戦略的に除去することで、YOLO26はGPUなしのエッジデバイス上で圧倒的に優れた性能を実現します。
- MuSGDオプティマイザー:LLMトレーニングの安定性に着想を得た、SGD ミューオンの革新的なハイブリッド手法により、収束速度の向上と極めて安定したトレーニング実行を実現します。
- ProgLoss + STAL:これらの高度な損失関数は、航空画像やIoTセンサーにとって重要な要素である小物体認識において顕著な改善をもたらす。
- 比類なき汎用性:純粋な物体検出器であるYOLOXとは異なり、YOLO26は単一の統合ライブラリ内でインスタンスセグメンテーション、姿勢推定、画像分類、OBB検出をネイティブにサポートします。
Ultralytics を活用する
開発者は、Ultralytics を活用することで、データセットの注釈付け、クラウド上でのYOLO26モデルのトレーニング、そして設定不要であらゆるエッジデバイスへのデプロイを実現し、最もシンプルな方法で本番環境へ移行できます。
現実世界のアプリケーション
適切なモデルの選択は、様々な業界における実世界の導入の成否を左右する。
高速動画解析
スマートシティの交通管理など、高密度な動画フィードの処理において、 YOLOv10NMS処理により大きな優位性を提供する。NMS 排除することで一貫した低遅延を実現し、BoT-SORTのような追跡アルゴリズムとの組み合わせに最適である。
レガシーエッジ展開
古い学術環境や、純粋な畳み込みパラダイム向けに高度に最適化されたレガシーAndroid においては、YOLOX-Tinyのような小型モデルが、古いPyTorch を維持することが許容されるトレードオフとなる特殊なユースケースで依然として有用である可能性がある。
モダンエッジとIoTデバイス
次世代ハードウェア展開(ロボット工学、ドローン、小売棚分析など)において、YOLO26は究極のソリューションです。大幅に低減されたCPU と優れた小物体検出能力により、自律航行や詳細な在庫管理に特に適しています。
深層学習ツールキットを拡充するための追加比較として、これらのモデルが柔軟な代替モデル(例:YOLO11)とどのように比較されるかを探ることもできます。 YOLO11 やトランスフォーマーベースの RT-DETRといった代替モデルとの比較も検討できます。