YOLOXとYOLOv10#
リアルタイムコンピュータービジョンモデルの進化には、アーキテクチャの大きな飛躍がいくつもありました。その過程における重要な節目がYOLOXとYOLOv10です。2021年にリリースされたYOLOXは、非常に効果的なアンカーフリーデザインを導入し、学術研究と産業応用の隔たりを埋めました。それから3年後、YOLOv10は後処理時の非最大値抑制(NMS)を不要にし、この分野に変革をもたらして効率と速度の限界を押し広げました。
この包括的な技術比較では、両モデルのアーキテクチャ、性能指標、最適なユースケースを解説し、次の物体検出プロジェクトに適したツールを選ぶための知見を提供します。
モデルの由来とメタデータ#
これらのモデルの起源を理解すると、アーキテクチャの選択や想定されるデプロイ環境を把握できます。
YOLOXの詳細
- 著者: Zheng Ge、Songtao Liu、Feng Wang、Zeming Li、Jian Sun
- 組織: Megvii
- 日付: 2021-07-18
- Arxiv: https://arxiv.org/abs/2107.08430
- GitHub: https://github.com/Megvii-BaseDetection/YOLOX
- ドキュメント: https://github.com/Megvii-BaseDetection/YOLOX/tree/main/docs
YOLOv10の詳細
- 著者: Ao Wang、Hui Chen、Lihao Liu、Kai Chen、Zijia Lin、Jungong Han、Guiguang Ding
- 組織: 清華大学
- 日付: 2024-05-23
- Arxiv: https://arxiv.org/abs/2405.14458
- GitHub: https://github.com/THU-MIG/yolov10
- ドキュメント: https://docs.ultralytics.com/models/yolov10
アーキテクチャの革新#
YOLOXとYOLOv10の主な違いは、バウンディングボックスの予測と後処理の方法にあります。
YOLOX:アンカーフリーデザインの先駆け#
YOLOXは、YOLOファミリーをアンカーフリーアーキテクチャに移行させ、大きな注目を集めました。事前定義されたアンカーボックスに頼らず、物体の中心を予測することで、カスタムデータセットに必要な設計パラメーターとヒューリスティックな調整を大幅に削減しました。さらに、分類タスクと回帰タスクを別々の経路に分ける分離型ヘッドを導入しました。この手法によって、物体が「何であるか」の識別と「どこにあるか」の特定との競合を解消し、収束速度と精度を目に見えて向上させました。
YOLOv10:NMSフリー革命#
YOLOXは検出ヘッドをシンプルにしましたが、重複したバウンディングボックス予測の除去には依然としてNMSを使用していました。YOLOv10は、この根本的なボトルネックに取り組みました。トレーニング中に一貫性のある二重割り当てを用いることで、YOLOv10はネイティブなエンドツーエンド検出を実現します。豊富な教師信号を確保するため、トレーニング中は1対多ヘッドを使用し、推論時には1対1ヘッドを使って最終予測を直接出力します。この効率と精度を総合的に考慮した設計はNMSを完全に排除し、組み込みチップでの推論レイテンシを大幅に低減します。
非最大値抑制は、ニューラルプロセッシングユニット(NPU)で高速化するのが難しい処理です。YOLOv10はこれを取り除くことで、モデルグラフ全体を専用ハードウェア上でシームレスに実行できるようにし、OpenVINOやTensorRTなどの最適化フレームワークとの互換性を大幅に高めます。
性能指標と比較#
本番環境向けのモデルを評価する際は、精度と計算オーバーヘッドのバランスが重要です。以下の表は、YOLOXとYOLOv10の各スケールにおけるトレードオフを示しています。
| モデル | サイズ (ピクセル) | mAPval 50-95 | 速度 CPU ONNX (ms) | 速度 T4 TensorRT10 (ms) | パラメーター (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| 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 |
| 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 |
データの分析#
指標から、YOLOv10が世代を超えた進化を遂げたことが明確にわかります。たとえば、YOLOv10-Sの平均適合率は46.3%で、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メモリーの使用量を大幅に抑えられます。この効率的なトレーニング時のメモリー使用量により、一般向けハードウェアでもバッチサイズを大きくでき、データ収集からモデルのデプロイまでの時間を短縮できます。さらに、このフレームワークは高い汎用性を備えており、コードをほとんど変更せずに物体検出、インスタンスセグメンテーション、姿勢推定をシームレスに切り替えられます。
トレーニングと推論の例#
統一されたAPIにより、アイデアを非常にすばやく検証できます。以下のコード例では、PyTorchバックエンドを使用して、YOLOv10モデルを簡単にトレーニングし、デプロイする方法を示します。
from ultralytics import YOLO
# 事前学習済みのYOLOv10 nanoモデルを読み込みます
model = YOLO("yolov10n.pt")
# COCO8データセットでモデルをトレーニングします
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# サンプル画像で推論を実行する
predictions = model.predict("https://ultralytics.com/images/bus.jpg")
# エッジデプロイ用にモデルをエクスポート
model.export(format="engine", quantize=16)組み込みのエクスポート機能を活用すれば、モデルをTensorRTやONNXなどの形式に変換するのに必要なのは1行のコードだけで、複雑なコンパイル上の障壁を完全に回避できます。
最適なユースケースとデプロイシナリオ#
どちらのアーキテクチャを選ぶかは、主にハードウェアの制約と特定の分野の要件によって決まります。
リアルタイムの動画分析#
自動運転やリアルタイム交通監視など、極めて低いレイテンシが求められるアプリケーションには、YOLOv10が適しています。エンドツーエンドのNMSフリーデザインにより、実行時間が安定します。これは、後処理のレイテンシの変動を許容できない安全システムに不可欠です。NVIDIA Jetsonシリーズなどのデバイスでも、高いフレームレートを容易に達成できます。
学術研究のベースラインとエッジマイクロコントローラー#
ラベル割り当て戦略を試すため、シンプルな分離型ヘッドのベースラインを求めている研究者にとって、YOLOXは学術研究の場で今も価値があります。また、非常に小型のYOLOX-Nano(パラメーター数100万未満)は、ハードウェアが標準的な畳み込み演算に対応していれば、メモリーが極めて限られたエッジデバイスにも搭載できます。
究極の標準:Ultralytics YOLO26#
YOLOv10はNMSを取り除くという大きな進歩を遂げましたが、コンピュータービジョンの分野は急速に進歩しています。今日、最高水準の性能を実現したい開発者には、YOLO26をぜひご検討いただくことをおすすめします。
ビジョンAIの最新標準としてリリースされたYOLO26は、先行モデルの基礎的なアイデアを発展させ、性能を大幅に強化しています。検出、セグメンテーション、姿勢推定、回転バウンディングボックスをネイティブにサポートし、最高水準の性能バランスを提供します。
最新のコンピュータービジョンパイプラインにYOLO26をおすすめする理由は次のとおりです。
- エンドツーエンドのNMSフリーデザイン: YOLOv10の画期的な成果を基盤に、YOLO26はネイティブなエンドツーエンド推論(
nms=False)をサポートし、NMSによる後処理のボトルネックをなくして、高速かつ安定した推論時間を実現します。 - CPU推論が最大43%高速化: エッジコンピューティング向けに最適化されており、モバイルプロセッサやディスクリート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を活用することで、AIの最先端を維持できます。より古くても安定したアーキテクチャに関心のある方は、充実したコミュニティサポートと実証済みの堅牢性を備えたYOLO11やYOLOv8もご検討ください。