YOLOX vs 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はアンカーフリーアプローチを導入し、カスタムデータセットに必要な設計パラメータ数とヒューリスティックな調整を大幅に削減しました。分類タスクと回帰タスクを分離するデカップルドヘッドを実装し、収束速度と精度を向上させました。さらに、YOLOXはMixUpやMosaicなどの高度なデータ拡張手法を活用して、モデルのロバスト性を高めました。
アンカーボックスを排除することで、YOLOXはトレーニング中に予測結果と正解データ間のIntersection over Union(IoU)を計算する際の計算オーバーヘッドを削減し、必要なCUDAメモリを減らすとともに、トレーニング時間を短縮します。
YOLOv7: トレーニング可能なBag-of-Freebies#
2022年7月に台湾の中央研究院情報科学研究所の研究者によってリリースされたYOLOv7は、リアルタイム物体検出の限界をさらに押し広げました。「trainable bag-of-freebies」という概念を導入し、リリース時に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は53.1 mAPを達成するのに対し、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フリーのエッジデプロイ: Non-Maximum Suppressionの後処理を複雑にすることなく、一貫した低レイテンシー推論が必要なアプリケーション。
- CPUのみの環境: 専用GPUアクセラレーションを持たないデバイスで、YOLO26の最大43%高速なCPU推論が決定的な優位性となる場合。
- 小さな物体の検出: aerial drone imageryやIoTセンサー分析など、ProgLossとSTALによって微小物体の精度が大幅に向上する難しいシナリオ。
Ultralyticsの優位性#
YOLOXとYOLOv7はどちらも強力な研究実装ですが、研究用リポジトリからスケーラブルな本番環境へ移行することは容易ではありません。そこで力を発揮するのがUltralytics Platformです。
Ultralyticsモデルは統合されたPython APIを提供し、モデルのトレーニング、検証、デプロイを合理化・標準化されたタスクとして扱えます。以前のアーキテクチャで一般的だった、複雑なサードパーティ依存関係やカスタムC++オペレーターを管理する煩雑さを回避できます。
さらに、Ultralytics YOLOモデルは、RT-DETRのようなTransformerベースの検出器と比較して、トレーニング中に必要なCUDAメモリが大幅に少なくて済みます。これにより、より大きなバッチサイズを利用でき、カスタムデータセットでのトレーニングを安定させ、収束を高速化できます。
Ultralyticsは、単純なブールフラグにより、ONNX、OpenVINO、CoreMLなどの業界標準フォーマットへのモデルエクスポートをネイティブにサポートし、モデルデプロイプロセスを大幅に簡素化します。
コード例:Ultralyticsでのトレーニング#
Ultralyticsエコシステムを使用すると、わずか数行のコードでYOLOv7またはそれ以降のアーキテクチャを簡単にロード、トレーニングし、推論を実行できます。
from ultralytics import YOLO
# Load a pre-trained YOLOv7 model
model = YOLO("yolov7.pt")
# Train the model on a custom dataset (e.g., COCO8)
# The API handles data loading, augmentation, and memory management automatically
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Run inference on a test image
predictions = model("path/to/image.jpg")
predictions[0].show()未来:Ultralytics YOLO26#
YOLOv7とYOLOXは重要な歴史的ステップを示すモデルですが、最先端技術は急速に進化しています。2026年1月にリリースされたUltralytics YOLO26は、従来のモデルを上回る画期的なパラダイムを導入しています。
- エンドツーエンドのNMSフリー設計: YOLO26は、Non-Maximum Suppression(NMS)の後処理をネイティブに排除します。これにより、レイテンシのボトルネックが大幅に軽減され、さまざまなハードウェア構成で決定論的な実行時間が保証されます。
- 最大43%高速なCPU推論: Distribution Focal Loss(DFL)を削除し、ネットワークの深さを最適化することで、YOLO26は専用GPUハードウェアを持たないエッジデバイス向けに大幅に最適化されています。
- MuSGDオプティマイザー: 高度なLLMトレーニング手法に着想を得たMuSGDオプティマイザー(SGDとMuonのハイブリッド)は、卓越したトレーニング安定性と高速な収束を実現します。
- 小さい物体の検出を改善: ProgLoss + STAL損失関数を統合することで、小さく離れた物体の認識が大幅に向上します。これは、ドローンマッピングやセキュリティ監視に不可欠です。
- ネイティブタスクサポート: YOLO26は、同じ合理化されたAPI内で、Oriented Bounding Boxes(OBB)、インスタンスセグメンテーション、姿勢推定を包括的にネイティブサポートします。
現在、新しいコンピュータビジョンプロジェクトを始める現代の開発者にとって、速度、精度、デプロイの容易さの最適なバランスを実現するには、Platform上のUltralytics YOLO26を評価することが推奨されます。YOLO11やYOLOv8などの以前の世代からアップグレードする場合は、モデル文字列を変更するだけで移行でき、優れた機能をすぐに利用できます。