YOLOXとYOLOv7の比較#
リアルタイム物体検出の進化は、継続的なアーキテクチャの革新によって推進されてきました。この進化における重要な節目が、YOLOXとYOLOv7です。1年以内に相次いでリリースされた両モデルは、標準的な物体検出の枠組みに新しいアプローチを導入し、速度と精度のトレードオフを大幅に改善しました。
このページでは、YOLOXとYOLOv7のアーキテクチャ、性能指標、理想的なユースケースを詳しく技術分析し、開発者がコンピュータービジョンのデプロイに適したツールを選択できるようにします。
YOLOX: アンカーフリー検出の先駆け#
2021年7月にMegviiの研究者によって発表されたYOLOXは、従来のアンカーベース設計から移行する大きな転換点となりました。学術研究と産業応用の隔たりを埋めることで、YOLOXは検出ヘッドを簡素化し、全体的な性能を向上させました。
主なモデル情報:
- 著者: Zheng Ge、Songtao Liu、Feng Wang、Zeming Li、Jian Sun
- 組織: Megvii
- 日付: 2021-07-18
- 研究論文: arXiv:2107.08430
- ソースコード: Megvii YOLOX GitHub
- ドキュメント: YOLOX GitHubドキュメント
アーキテクチャの革新#
YOLOXはアンカーフリーのアプローチを導入し、カスタムデータセットで必要となる設計パラメーターやヒューリスティックな調整の数を大幅に削減しました。また、分類タスクと回帰タスクを分離する分離型ヘッドを実装し、収束速度と精度を改善しました。さらに、モデルの堅牢性を高めるため、MixUpやMosaicなどの高度なデータ拡張手法を活用しました。
アンカーボックスを排除することで、YOLOXはトレーニング中に予測と正解データ間のIntersection over Union(IoU)を計算する際の計算オーバーヘッドを削減し、CUDAメモリの要件を抑え、トレーニング時間を短縮します。
YOLOv7:トレーニング可能なBag-of-Freebies#
2022年7月に台湾の中央研究院情報科学研究所の研究者によってリリースされたYOLOv7は、リアルタイム物体検出の限界をさらに押し広げました。「学習可能なフリービーのバッグ」という概念を導入し、リリース時にMS COCOデータセットで最先端のベンチマークを確立しました。
主なモデル情報:
- 著者: Chien-Yao Wang、Alexey Bochkovskiy、Hong-Yuan Mark Liao
- 所属機関: 台湾、中央研究院情報科学研究所
- 日付: 2022-07-06
- 研究論文: arXiv:2207.02696
- ソースコード: WongKinYiu YOLOv7 GitHub
- ドキュメント: Ultralytics YOLOv7 Docs
アーキテクチャの革新#
YOLOv7のアーキテクチャは、拡張効率的層集約ネットワーク(E-ELAN)を中心に構築されており、勾配経路を損なうことなく、モデルがより多様な特徴を継続的に学習できるようにします。さらに、YOLOv7ではモデルの再パラメーター化技術を採用しており、複雑なマルチブランチのトレーニングネットワークを、推論時により高速な単一路ネットワークへと簡略化できます。
パフォーマンス比較#
実際のアプリケーションでこれらのモデルを評価する際は、異なる規模での性能を理解することが重要です。以下の表では、YOLOXとYOLOv7のさまざまなサイズについて、標準的な指標を比較します。
| モデル | サイズ (ピクセル) | 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 |
| YOLOv7l | 640 | 51.4 | - | 6.84 | 36.9 | 104.7 |
| YOLOv7x | 640 | 53.1 | - | 11.57 | 71.3 | 189.9 |
分析#
- 精度: YOLOv7は通常、同等のYOLOXモデルより高いmAPを達成します。たとえば、YOLOv7xのmAPは53.1で、YOLOXxの51.1を上回ります。
- 速度: 両モデルともTensorRTを用いたGPU実行に向けて高度に最適化されていますが、YOLOv7のE-ELANアーキテクチャはハイエンドのアプリケーションでやや高いスループットを実現します。一方、YOLOXは小型のエッジデバイスでも優れたレイテンシを維持します。
- 汎用性: YOLOv7は、インスタンスセグメンテーションと姿勢推定の重みをネイティブに提供することで、バウンディングボックス以外にも対応範囲を広げ、基本的なYOLOXリポジトリより高い汎用性を実現しています。
実際の用途#
これらのモデルのどちらを選ぶかは、多くの場合、具体的なデプロイ環境によって決まります。
エッジコンピューティングとIoT#
Raspberry Piや旧世代のモバイルプロセッサーなど、リソースが限られたエッジデバイスでは、YOLOX-NanoとYOLOX-Tinyが非常に魅力的です。パラメーター数が少なくアンカーフリーであるため、基本的な動体追跡やスマートドアベルのアプリケーションなど、低消費電力環境でも容易にデプロイできます。
高精細な動画分析#
産業向けの欠陥検出や高密度な交通監視で高解像度映像を処理する場合、YOLOv7が優れています。堅牢な特徴集約により、物体の一部が遮蔽されていたり、物体のスケールが大きく異なったりする場合でも、高い精度を維持できます。
ユースケースと推奨事項#
YOLOXとYOLOv7のどちらを選ぶかは、具体的なプロジェクト要件、デプロイ上の制約、エコシステムの好みによって決まります。
YOLOXを選ぶタイミング#
YOLOXは次のような用途に適しています:
- アンカーフリー検出の研究: 新しい検出ヘッドや損失関数を試す際のベースラインとして、YOLOXのシンプルなアンカーフリーアーキテクチャを使用する学術研究。
- 超軽量エッジデバイス: YOLOX-Nanoバリアントの極めて小さなフットプリント(パラメーター数0.91M)が重要となる、マイクロコントローラーや旧式のモバイルハードウェアへのデプロイ。
- SimOTAラベル割り当ての研究: 最適輸送に基づくラベル割り当て戦略と、トレーニングの収束への影響を調査する研究プロジェクト。
YOLOv7を選ぶ場合#
YOLOv7は次の用途におすすめです。
- 学術的なベンチマーク: 2022年当時の最先端の結果を再現する場合、またはE-ELANやトレーニング可能なbag-of-freebies技術の効果を研究する場合。
- 再パラメーター化の研究: 計画的な再パラメーター化畳み込みや、複合モデルスケーリング戦略を調査する場合。
- 既存のカスタムパイプライン: YOLOv7固有のアーキテクチャを中心に高度にカスタマイズされ、容易にリファクタリングできないパイプラインを使用するプロジェクト。
Ultralytics (YOLO26)を選ぶ場合#
多くの新規プロジェクトにおいて、Ultralytics YOLO26はパフォーマンスと開発者体験を最適なバランスで提供します。
- NMSを使用しないエッジデプロイ: 非最大抑制の後処理を複雑化させずに、安定した低レイテンシー推論を必要とするアプリケーション。
- CPUのみの環境: 専用のGPUアクセラレーションを備えていないデバイスで、YOLO26の最大43%高速なCPU推論が大きな優位性を発揮します。
- 小物体検出: ドローンによる航空画像やIoTセンサーの分析など、ProgLossとSTALによって小さな物体の精度が大幅に向上する難しいシナリオ。
Ultralyticsの強み#
YOLOXとYOLOv7はどちらも強力な研究用実装ですが、研究用リポジトリからスケーラブルな本番環境に移行するのは容易ではありません。そこで力を発揮するのがUltralytics Platformです。
Ultralyticsのモデルは統合されたPython APIを提供し、モデルのトレーニング、検証、デプロイを簡素化・標準化されたタスクとして扱います。古いアーキテクチャでよく見られる、複雑なサードパーティ依存関係やカスタムC++オペレーターの管理に悩まされることはありません。
さらに、Ultralytics YOLOモデルは、RT-DETRのようなTransformerベースの検出器と比べ、トレーニング時に必要なCUDAメモリが大幅に少なくなります。これにより、より大きなバッチサイズを利用でき、カスタムデータセットでトレーニングを安定させ、収束を加速できます。
Ultralyticsでは、単一のformat引数を使用して、モデルをONNX、OpenVINO、CoreMLなどの業界標準形式にネイティブにエクスポートできるため、モデルのデプロイプロセスが大幅に簡略化されます。
コード例: Ultralyticsによるトレーニング#
Ultralytics Pythonパッケージは、YOLOv7の.ptチェックポイントのトレーニングや実行をネイティブにはサポートしていません(エクスポート済みのONNXモデルまたはTensorRTモデルの実行方法はYOLOv7 docsを参照してください)。一方、YOLO26のような新しいアーキテクチャは、わずか数行のコードで読み込み、トレーニング、実行できます。
from ultralytics import YOLO
# 事前学習済みYOLO26モデルを読み込みます
model = YOLO("yolo26n.pt")
# カスタムデータセット(例: COCO8)でモデルをトレーニングします
# APIがデータ読み込み、拡張、メモリ管理を自動的に処理します
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# テスト画像に対して推論を実行します
predictions = model("path/to/image.jpg")
predictions[0].show()未来を見据えて:Ultralytics YOLO26#
YOLOv7とYOLOXは歴史上重要な段階を示すモデルですが、最先端技術は急速に進化しています。2026年1月にリリースされたUltralytics YOLO26は、従来モデルに取って代わる画期的なパラダイムを導入しています。
- エンドツーエンドのNMSフリー設計: YOLO26のオプションのワンツーワンヘッド(
nms=False)は、非最大抑制(NMS)の後処理を省略します。これによりレイテンシのボトルネックが大幅に軽減され、さまざまなハードウェア環境で決定論的な実行時間が保証されます。 - CPU推論を最大43%高速化: Distribution Focal Loss(DFL)を削除し、ネットワークの深さを最適化することで、YOLO26は専用GPUハードウェアを持たないエッジデバイスに合わせて最適化されています。
- MuSGDオプティマイザー: 高度なLLMのトレーニング手法に着想を得たMuSGDオプティマイザー(SGDとMuonのハイブリッド)は、優れたトレーニング安定性と高速な収束を実現します。
- 小物体検出の改善: ProgLoss + STAL損失関数の統合により、小さく離れた物体の認識が大幅に向上します。これは、ドローンマッピングやセキュリティ監視に不可欠です。
- タスクのネイティブサポート: YOLO26は、回転バウンディングボックス(OBB)、インスタンスセグメンテーション、姿勢推定を、同じシンプルなAPI内で包括的にネイティブサポートしています。
現在、新しいコンピュータービジョンプロジェクトを始める開発者には、速度、精度、デプロイの容易さの最適なバランスを実現するため、Platform上のUltralytics YOLO26を評価することを推奨します。YOLO11やYOLOv8などの旧世代からアップグレードする場合、モデル名を変更するだけで移行でき、すぐに優れた機能を利用できます。