コンテンツにスキップ

RTDETRv2とYOLOX:リアルタイム物体検出の技術比較

急速に進化するコンピュータ・ビジョンの世界では、スピードと精度の最適なバランスを追求することが、技術革新の原動力となっている。TransformerベースのRTDETRv2とアンカーフリーCNNベースのYOLOXです。この比較では、開発者が特定のニーズに適したツールを選択できるように、アーキテクチャの違い、性能指標、理想的な使用例を探ります。

モデル概要

技術的な話に入る前に、この2つの影響力のあるモデルの起源と核となる哲学を確立しておこう。

RTDETRv2

RTDETRv2(Real-TimeDEtection TRansformer version 2)は、リアルタイムアプリケーションにTransformerアーキテクチャを導入する上で、大きな前進となる。Baiduの研究者によって開発され、推論レイテンシを増加させることなく、トレーニングの安定性とパフォーマンスを向上させる「Bag-of-Freebies」を導入することで、オリジナルのRT-DETR ベースにしている。これは、従来のCNN検出器よりも精度が高い一方で、Vision Transformers(ViT)に一般的に関連する高い計算コストを解決することを目的としている。

RTDETRv2の詳細について。

YOLOX

YOLOXは2021年、アンカー・フリー・メカニズムに切り替え、非結合ヘッドやSimOTAラベル割り当てなどの先進技術を取り入れることで、YOLO ファミリーを活性化させた。YOLO シリーズの特徴であるダークネットスタイルのバックボーンはそのままに、そのアーキテクチャの転換により、アンカーベースのディテクターの多くの制限に対処し、エッジデバイスで非常に優れた性能を発揮する、高効率で柔軟性の高いモデルを実現した。

YOLOXの詳細について。

パフォーマンス分析

RTDETRv2とYOLOXの性能トレードオフは異なる。RTDETRv2はピーク精度mAP)を優先し、複雑なシーンやオクルージョンオブジェクトをよりよく理解するために、トランスフォーマーのグローバルアテンションメカニズムを活用する。しかし、これには、特にGPU メモリ使用に関して、より高い計算要求が伴います。

逆に、YOLOXはスピードと効率のために最適化されている。そのアンカーフリー設計は、検出ヘッドを簡素化し、設計パラメータの数を減らし、後処理NMS)を高速化する。YOLOXモデル、特にNanoとTinyのバリエーションは、ハードウェア・リソースに制約のあるエッジAIの展開に好まれることが多い。

以下の表は、これらの違いを強調している。RTDETRv2がより高いmAP スコアを達成する一方で、YOLOX-sはTensorRT上でより速い推論速度を提供し、待ち時間の影響を受けやすいアプリケーションに適していることを示していることに注意してください。

モデルサイズ
(ピクセル)
mAP
50-95
速度
CPU ONNX
(ms)
速度
T4 TensorRT10
(ms)
params
(M)
FLOPs
(B)
RTDETRv2-s64048.1-5.032060
RTDETRv2-m64051.9-7.5136100
RTDETRv2-l64053.4-9.7642136
RTDETRv2-x64054.3-15.0376259
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

アーキテクチャー・ディープ・ダイブ

構造的な違いを理解することは、なぜこれらのモデルが異なるパフォーマンスを発揮するのかを明らかにするのに役立つ。

RTDETRv2:ハイブリッド・エンコーダー・デコーダー

RTDETRv2は、効率的なハイブリッドエンコーダを導入することで、標準的なDETRモデルの計算ボトルネックに対処している。このコンポーネントはマルチスケール特徴を処理し、(同じ特徴レイヤー内の)イントラスケールの相互作用と(レイヤーをまたいだ)インタースケールの融合を切り離す。

  • IoUクエリ選択:RTDETRv2は、静的なオブジェクトクエリを選択する代わりに、その分類スコアに基づいて、初期オブジェクトクエリとして機能する一定数の画像特徴を選択し、初期化を改善する。
  • 柔軟なデコーダー:デコーダーは推論中のクエリー数の動的な調整をサポートしており、ユーザーは再トレーニングをすることなく、速度と精度のトレードオフを行うことができる。

YOLOX:アンカーフリーとデカップリング

YOLOXは、YOLOv4とYOLOv5使われていたアンカーベースのパラダイムから脱却した。

  • アンカーフリー:オブジェクトの中心とサイズを直接予測することで、YOLOXは手作業によるアンカーボックスの設計を不要にし、ハイパーパラメータのチューニングの複雑さを軽減します。
  • 分離されたヘッド:分類と回帰のタスクを、ネットワーク・ヘッドの異なるブランチに分離する。この分離により、収束が速くなり、精度が向上することが多い。
  • SimOTA:ラベル割り当てプロセスを最適輸送問題として捉え、大域的な最適化コストに基づいて正サンプルをグランドトゥルースに動的に割り当てる高度なラベル割り当て戦略。

アンカーベースとアンカーフリー

従来の検出器では、あらかじめ定義されたボックス(アンカー)を使って物体の位置を推定していました。YOLOXはこの依存性を取り除き、アーキテクチャを簡素化し、様々なオブジェクト形状に対してよりロバストなモデルを実現している。RTDETRv2は変換器であるため、アンカーの代わりにオブジェクトクエリを完全に使用し、関連する画像領域に動的に注目するように学習する。

長所と短所

RTDETRv2

  • 長所:
    • 高精度: COCO ベンチマークで最先端のmAP 達成。
    • グローバルな文脈:トランスフォーマーの注意メカニズムは、長距離の依存関係を効果的に捉える。
    • 適応性:調整可能なクエリー選択により、推論時に柔軟性を持たせることができる。
  • 弱点:
    • リソース集約型:CNNと比較して、学習と推論に大きなGPU メモリを必要とする。
    • トレーニングが遅い:変換器は一般的にCNNベースのアーキテクチャよりも収束に時間がかかる。

YOLOX

  • 長所:
    • 推論スピード:特に小型のバリエーション(ナノ、タイニー、S)は極めて速い。
    • 展開が容易:FLOPとパラメータ数が少ないため、エッジ・デバイスやCPUSへの展開が容易。
    • シンプルさ:アンカー不要の設計により、エンジニアリングの複雑さを軽減します。
  • 弱点:
    • 低いピーク精度:RTDETRv2-xのような大型トランス・モデルのトップクラスの精度に及ばない。
    • 機能の進化:新しいフレームワークに見られるマルチモーダル機能の一部が欠けている。

Ultralyticsの利点:YOLO11を選ぶ理由

RTDETRv2とYOLOXは手強いモデルですが Ultralytics YOLOエコシステムは、最先端の YOLO11-を筆頭とするUltralytics YOLOエコシステムは、しばしば個々のモデルの利点を凌駕する包括的なソリューションを提供する。

  • パフォーマンス・バランス: YOLO11 11は、スピードと精度の最適なトレードオフを提供するように設計されています。YOLO ファミリーの特徴である推論スピードを維持しながら、トランスベースのモデルの精度に匹敵するか、それを上回ることがよくあります。
  • 使いやすさ: Ultralytics 開発者の使いやすさを最優先しています。統一されたPython APIと CLI、わずか数行のコードでモデルのトレーニング、検証、デプロイが可能です。
  • メモリ効率: GPU VRAMに負荷のかかるRTDETRv2とは異なり、YOLO11 学習時と推論時のメモリ効率が非常に高い。そのため、コンシューマーグレードのハードウェアを持つ研究者や開発者が利用しやすくなっている。
  • 整備されたエコシステム: Ultralytics モデルは、頻繁なアップデート、活気あるコミュニティ、豊富なドキュメントに支えられています。Ultralytics HUBのような機能は、シームレスなモデル管理とクラウドトレーニングを容易にします。
  • 汎用性: YOLO11 RTDETRv2が主に検出に重点を置いているのに対し、YOLO11 単純な物体検出だけでなく、インスタンスのセグメンテーションポーズ推定OBB分類をネイティブにサポートしている。
  • トレーニングの効率化: YOLO11 、様々なタスクに対応した事前学習済みの重みと、洗練された転移学習機能により、高性能モデルの学習に必要な時間とエネルギーを大幅に削減します。

YOLO11の詳細について。

コード例

Ultralytics 使えば、これらの高度なモデルを驚くほど簡単に使うことができる。以下は、YOLO11推論を実行する方法の例である。特筆すべきは、Ultralytics RT-DETR 直接サポートしており、オリジナルのリポジトリに比べて使い方が大幅に簡素化されていることである。

from ultralytics import RTDETR, YOLO

# Load the Ultralytics YOLO11 model (Recommended)
model_yolo = YOLO("yolo11n.pt")

# Run inference on an image
results_yolo = model_yolo("path/to/image.jpg")

# Load an RT-DETR model via Ultralytics API
model_rtdetr = RTDETR("rtdetr-l.pt")

# Run inference with RT-DETR
results_rtdetr = model_rtdetr("path/to/image.jpg")

結論

RTDETRv2とYOLOXのどちらを選ぶかは、結局のところ、特定の制約による。

  • RTDETRv2は、学術研究や高精度の工業検査など、絶対的に高い精度が要求されるアプリケーションで、強力なGPU リソースを利用できる場合に選択します。
  • Raspberry Piやモバイルデバイスのようなリソースに制約のある環境で、1ミリ秒単位のレイテンシーが重要な場合は、YOLOXをお選びください。

しかし、実世界でのアプリケーションの大半は、このようなものである、 Ultralytics YOLO11が、より優れたオールラウンドな選択肢として浮上している。YOLO11は、最新のアーキテクチャの精度とCNNのスピードと効率性を兼ね備え、そのすべてがユーザーフレンドリーで生産可能なエコシステムに包まれています。YOLO11 、エッジまたはクラウドのどちらに向けて構築する場合でも、成功するためのツールとパフォーマンスを提供します。

その他の比較

意思決定をさらに支援するために、他のモデル比較を検討してください。


コメント