YOLOX対YOLOv10:アンカーフリーおよびNMSフリーのリアルタイム物体検出の比較

リアルタイムコンピュータビジョンモデルの進化は、アーキテクチャの大幅な飛躍によって特徴付けられてきました。この歩みにおける2つの重要なマイルストーンがYOLOXとYOLOv10です。2021年にリリースされたYOLOXは、非常に効果的なアンカーフリー設計を導入することで、学術研究と産業応用の間のギャップを埋めることに成功しました。その3年後、YOLOv10は後処理におけるNMS(非最大値抑制)の必要性を排除することで分野に革命をもたらし、効率性と速度の限界を押し広げました。

本技術比較では、両モデルのアーキテクチャ、性能指標、理想的なユースケースを詳細に調査し、次回の物体検出プロジェクトに最適なツールを選択するための洞察を提供します。

モデルの起源とメタデータ

これらのモデルの起源を理解することは、そのアーキテクチャの選択と意図されたデプロイ環境の背景を知る助けとなります。

YOLOXの詳細 著者:Zheng Ge, Songtao Liu, Feng Wang, Zeming Li, and Jian Sun 組織:Megvii 日付:2021-07-18 Arxiv:https://arxiv.org/abs/2107.08430 GitHub:https://github.com/Megvii-BaseDetection/YOLOX ドキュメント:https://yolox.readthedocs.io/en/latest/

YOLOXの詳細はこちら

YOLOv10の詳細 著者:Ao Wang, Hui Chen, Lihao Liu, Kai Chen, Zijia Lin, Jungong Han, and Guiguang Ding 組織:Tsinghua University 日付:2024-05-23 Arxiv:https://arxiv.org/abs/2405.14458 GitHub:https://github.com/THU-MIG/yolov10 ドキュメント:https://docs.ultralytics.com/models/yolov10/

YOLOv10の詳細はこちら

アーキテクチャの革新

YOLOXとYOLOv10の主な違いは、バウンディングボックスの予測と後処理の扱いにあります。

YOLOX:アンカーフリー設計の先駆け

YOLOXは、YOLOファミリーをアンカーフリーのアーキテクチャへと移行させることで大きな反響を呼びました。事前定義されたアンカーボックスに頼るのではなく、オブジェクトの中心を予測することで、YOLOXはカスタムデータセットに必要な設計パラメータとヒューリスティックな調整の数を大幅に削減しました。さらに、分類タスクと回帰タスクを個別のパスに分離するデカップルヘッドを導入しました。このアプローチは、オブジェクトが「何であるか」を特定することと「どこにあるか」を決定することの間の矛盾を解消し、収束速度と精度の顕著な向上をもたらしました。

YOLOv10:NMSフリーの革命

YOLOXは検出ヘッドを簡素化しましたが、依然として冗長なバウンディングボックス予測をフィルタリングするためにNMSに依存していました。YOLOv10はこの根本的なボトルネックに対処しました。トレーニング中に一貫した二重割り当てを利用することで、YOLOv10はネイティブなエンドツーエンドの検出を実現しています。トレーニング中は豊富な教師信号を確保するために1対多のヘッドを採用し、推論中は直接最終予測を出力するために1対1のヘッドを利用します。この全体的な効率と精度を重視した設計により、NMSが完全に排除され、組み込みチップ上での推論レイテンシが大幅に削減されました。

NMS排除の影響

NMS(非最大値抑制)は、NPU(ニューラルプロセッシングユニット)での高速化が難しい複雑な演算となることがよくあります。YOLOv10はこれを削除することで、モデルグラフ全体を専用ハードウェア上でシームレスに実行できるようにし、OpenVINOやTensorRTといった最適化フレームワークとの互換性を飛躍的に向上させました。

パフォーマンスメトリクスと比較

本番環境用のモデルを評価する際、精度と計算負荷のバランスをとることは非常に重要です。以下の表は、さまざまなスケールのYOLOXとYOLOv10の間のトレードオフを示しています。

モデルサイズ
(ピクセル)
mAPval
50-95
速度
CPU ONNX
(ms)
速度
T4 TensorRT10
(ms)
パラメータ
(M)
FLOPs
(B)
YOLOXnano41625.8--0.911.08
YOLOXtiny41632.8--5.066.45
YOLOXs64040.5-2.569.026.8
YOLOXm64046.9-5.4325.373.8
YOLOXl64049.7-9.0454.2155.6
YOLOXx64051.1-16.199.1281.9
YOLOv10n64039.5-1.562.36.7
YOLOv10s64046.7-2.667.221.6
YOLOv10m64051.3-5.4815.459.1
YOLOv10b64052.7-6.5424.492.0
YOLOv10l64053.3-8.3329.5120.3
YOLOv10x64054.4-12.256.9160.4

データの分析

この指標は、YOLOv10の世代を超えた飛躍を明確に示しています。例えば、YOLOv10-Sはmean Average Precisionで46.7%を達成し、YOLOX-mの46.9%に匹敵しますが、パラメータ数は3分の1以下(7.2M対25.3M)、FLOPsも大幅に少なくなっています。さらに、最上位のYOLOv10-XモデルはmAPを54.4%まで押し上げ、古いYOLOX-xアーキテクチャよりも高速でありながら、高精度を要求されるタスクにおいて非常に高い競争力を発揮します。

Ultralyticsエコシステムの利点

YOLOXは堅牢なオープンソースの研究実装として依然として価値がありますが、YOLOv10を採用することで、Ultralyticsが提供する保守の行き届いたエコシステムを即座に利用できます。Ultralyticsがサポートするモデルを選択することで、シンプルなAPIと包括的なドキュメントによって特徴づけられる、効率化されたユーザーエクスペリエンスが保証されます。

開発者はこのフレームワークのメモリ要件から大きな恩恵を受けます。Ultralyticsモデルのトレーニングは、RT-DETRのような計算負荷の高いTransformerベースの代替品と比較して、通常、はるかに少ないCUDAメモリしか消費しません。この効率的なトレーニングフットプリントにより、消費者向けハードウェア上でも大きなバッチサイズが可能となり、データ収集からモデルデプロイまでの時間を短縮できます。さらに、このフレームワークは比類のない汎用性を備えており、ユーザーは最小限のコード変更でobject detectioninstance segmentationpose estimationをシームレスに切り替えることができます。

トレーニングと推論の例

統一されたAPIにより、アイデアの検証が非常に高速になります。PyTorchバックエンドを使用してYOLOv10モデルをトレーニングおよびデプロイする方法を以下のスニペットで示します。

from ultralytics import YOLO

# Load a pre-trained YOLOv10 nano model
model = YOLO("yolov10n.pt")

# Train the model on the COCO8 dataset
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)

# Run inference on a sample image
predictions = model.predict("https://ultralytics.com/images/bus.jpg")

# Export the model for edge deployment
model.export(format="engine", half=True)

組み込みのエクスポートルーチンを活用することで、モデルをTensorRTONNXのようなフォーマットに変換するのに必要なのはわずか1行のコードであり、複雑なコンパイルの手間を完全に回避できます。

理想的なユースケースとデプロイシナリオ

これらのアーキテクチャの選択は、主にハードウェアの制約と特定のドメイン要件に依存します。

リアルタイムビデオ解析

自動運転やリアルタイム交通監視など、超低レイテンシを必要とするアプリケーションには、YOLOv10が最適です。そのエンドツーエンドのNMSフリー設計により、決定論的な実行時間が保証されます。これは、可変的な後処理レイテンシが許容されない安全システムにおいて極めて重要です。このモデルは、NVIDIA Jetsonシリーズのようなデバイス上で高いフレームレートを簡単に達成します。

学術的ベースラインとエッジマイコン

YOLOXは、研究者がラベル割り当て戦略を実験するための、クリーンでデカップルヘッドを持つベースラインを望む学術的な場において依然として価値があります。さらに、極めて小型のYOLOX-Nano(パラメータ数100万未満)は、ハードウェアが標準的な畳み込み演算をサポートしている限り、メモリがキロバイト単位で測定される高度に制約されたエッジマイコンにも収めることができます。

究極のスタンダード:Ultralytics YOLO26

YOLOv10はNMSを削除することで大きな飛躍を遂げましたが、コンピュータビジョンの分野は急速に進歩しています。今日においてクラス最高性能の実装を目指す開発者の皆様には、YOLO26を調査することを強くお勧めします。

ビジョンAIの最新スタンダードとしてリリースされたYOLO26は、前身モデルの基盤となるアイデアを取り入れ、さらにパワーアップさせています。検出、セグメンテーション、ポーズ推定、指向性バウンディングボックスをネイティブサポートし、究極のパフォーマンスバランスを提供します。

YOLO26が現代のコンピュータビジョンパイプラインにおいて推奨される選択肢である理由は以下の通りです。

  • エンドツーエンドのNMSフリー設計: YOLOv10のブレイクスルーを基盤とするYOLO26はネイティブなエンドツーエンド設計であり、後処理のボトルネックなしに、より高速で決定論的な推論時間を保証します。
  • 最大43%高速なCPU推論: エッジコンピューティングに特化して最適化されており、モバイルプロセッサやディスクリートGPUを持たないデバイスでも並外れたパフォーマンスを発揮します。
  • MuSGDオプティマイザー: 大規模言語モデルのトレーニング(特にMoonshot AIのKimi K2)に触発され、YOLO26はSGDとMuonのハイブリッドを利用し、非常に安定したトレーニングと迅速な収束を実現します。
  • ProgLoss + STAL: これらの高度な損失関数は、航空画像やドローンナビゲーションといった要求の厳しいドメインにおいて重要な、小物体認識の著しい向上をもたらします。
  • DFLの削除: Distribution Focal Lossを削除することで、YOLO26はエッジデバイスや低電力デバイスへの円滑なエクスポートのためにモデルグラフを簡素化します。
  • タスク固有の改善: ポーズ推定のためのResidual Log-Likelihood Estimation (RLE)を使用する場合でも、OBBのための専門的な角度損失を使用する場合でも、YOLO26はあらゆる主要なビジョンタスク向けに微調整されています。

利用可能な最も効率的なトレーニングおよびデプロイツールを使ってパイプラインをアップグレードする準備ができている開発者にとって、Ultralytics Platformへの移行とYOLO26の活用は、人工知能の最先端に留まることを保証します。より古くても安定したアーキテクチャに興味のあるユーザーは、広範なコミュニティサポートと実証済みの堅牢性を持つYOLO11YOLOv8も検討してください。

コメント