YOLOv7とYOLOXの比較#
コンピュータービジョンの進化は、リアルタイム物体検出の急速な進歩によって特徴づけられてきました。この過程における重要な節目がYOLOv7とYOLOXです。どちらのモデルも速度と精度の限界を押し広げましたが、異なるアーキテクチャの設計思想を採用して成果を実現しました。このガイドでは、これら2つの強力なモデルを包括的に技術比較し、コンピュータービジョンプロジェクトに適したアーキテクチャの選択を支援します。
モデルの概要#
最新の機械学習運用でこれらのモデルを効果的にデプロイするには、起源と主な設計上の選択を理解することが重要です。
YOLOv7の詳細#
CSPNetとScaled-YOLOv4アーキテクチャを保守していた研究者によって開発されたYOLOv7は、推論コストを増やさずに精度を最大化する「トレーニング可能なbag-of-freebies」方式を導入しました。
- 著者: Chien-Yao Wang、Alexey Bochkovskiy、Hong-Yuan Mark Liao
- 組織: 台湾、中央研究院情報科学研究所
- 日付: 2022-07-06
- Arxiv: https://arxiv.org/abs/2207.02696
- GitHub: https://github.com/WongKinYiu/yolov7
- ドキュメント: Ultralytics YOLOv7ドキュメント
YOLOXの詳細#
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
- ドキュメント: YOLOX公式ドキュメント
アーキテクチャの違いと革新#
YOLOv7とYOLOXの主な違いは、特徴抽出、バウンディングボックス予測、ラベル割り当ての手法にあります。
YOLOX:アンカーフリーの先駆け#
YOLOXはアンカーフリーデザインへ移行し、YOLOファミリーに変革をもたらしました。従来のアンカーベース検出器では、アンカーボックスのクラスタリングに複雑なヒューリスティック調整が必要で、データセットによって大きく異なる場合があります。アンカーボックスを排除することで、YOLOXは設計パラメーターの数を大幅に削減しました。さらに、YOLOXは分離型ヘッドを採用し、分類タスクと位置特定タスクを別々のネットワーク分岐に分割しています。これにより、物体の分類と空間座標の回帰との間にある本質的な競合を解消します。また、トレーニング中に正サンプルを動的に割り当てるSimOTAなどの高度なラベル割り当て戦略も統合しています。
YOLOv7: Extended Efficient Layer Aggregation#
YOLOv7はアンカーベースの手法に回帰しつつ、Extended Efficient Layer Aggregation Network (E-ELAN)を導入しました。E-ELANは勾配パスの長さを最適化し、さまざまな深さでネットワークが効果的に学習できるようにします。このアーキテクチャは再パラメーター化手法に大きく依存しており、推論中に畳み込みレイヤーを統合して、精度を損なわずに速度を高めます。YOLOv7の「bag-of-freebies」戦略には、計画的な再パラメーター化畳み込みや、粗密誘導型のリードラベル割り当てなどの革新が含まれ、モデルの平均適合率を大幅に高めます。
YOLOXのアンカーフリー構成はデプロイパイプラインを簡素化しましたが、その後、最新のUltralyticsアーキテクチャはこの手法をさらに洗練させ、新しい世代では事前定義されたボックスを不要にしています。
パフォーマンス比較#
本番環境向けにこれらのモデルを評価する際は、精度と計算効率のバランスが重要です。以下の表ではトレードオフを示し、最も優れた指標を太字で強調しています。
| モデル | サイズ (ピクセル) | mAPval 50-95 | 速度 CPU ONNX (ms) | 速度 T4 TensorRT10 (ms) | パラメーター (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| YOLOv7l | 640 | 51.4 | - | 6.84 | 36.9 | 104.7 |
| YOLOv7x | 640 | 53.1 | - | 11.57 | 71.3 | 189.9 |
| 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 |
上記のとおり、YOLOv7xは最も高いmAPを達成し、複雑なデータセットに対して非常に高い精度を示します。一方、YOLOX-Nanoは極めて厳しいリソース制約に合わせて高度に最適化されています。ただし、どちらのモデルもトレーニング時のメモリ使用量は、最新のアーキテクチャと比べて比較的高くなっています。
トレーニング手法とエコシステム#
研究者や開発者にとって重要な要素は、実装のしやすさです。従来、旧世代のYOLOは大幅にカスタマイズしたC++スクリプトや複雑な依存関係の管理が必要でした。
Ultralyticsエコシステムの利点#
YOLOv7とYOLOXはUltralytics Pythonパッケージでネイティブにサポートされていません。新規プロジェクトでは、保守の行き届いたUltralyticsエコシステムでUltralytics YOLOモデルを使用するのが最も効果的です。Ultralyticsは統一された直感的なPython APIを提供し、トレーニング、検証、デプロイを大幅に簡素化します。
- 使いやすさ: 数行のコードでトレーニングループを開始でき、生のPyTorch実装に伴う急な学習曲線を緩和できます。
- トレーニング効率: Ultralytics YOLOモデルは、RT-DETRなどの大規模なTransformerモデルと比べて、トレーニング時のメモリ使用量を本質的に抑えます。これにより、開発者は一般向けハードウェアでバッチサイズを最大化できます。
- 汎用性: 単純なバウンディングボックスにとどまらず、エコシステムはインスタンスセグメンテーションや姿勢推定などのタスクにも簡単に対応できます。
以下は、Ultralytics APIを使用してモデルをトレーニングする方法を示す、完全に実行可能な例です。
from ultralytics import YOLO
# 事前学習済みモデルを読み込む
model = YOLO("yolov8n.pt") # 転移学習をすばやく行うための学習済み重みを利用する
# カスタムデータでモデルを効率的にトレーニングする
results = model.train(
data="coco8.yaml",
epochs=100,
imgsz=640,
batch=16,
device="0", # 最適化されたCUDAメモリ管理を利用する
)
# ONNXまたはTensorRTにシームレスにエクスポートする
model.export(format="onnx")エクスポートパイプラインを標準化することで、開発者は重みをTensorRTやONNXなどの形式へ簡単に変換し、ターゲットハードウェアで高速な推論を実現できます。
最適なユースケースと実際の応用例#
YOLOXとYOLOv7のどちらを選ぶかは、主にデプロイ先によって決まります。
- エッジAI向けのYOLOX: YOLOX-NanoとYOLOX-Tinyのバリアントは、低消費電力デバイスへのデプロイに非常に適しています。Raspberry Piでスマートセキュリティカメラを構築する場合、YOLOXのシンプルなアンカーフリー畳み込みは、エッジアクセラレータに容易に適用できます。
- 高精度分析向けのYOLOv7: 高解像度の衛星画像を処理する場合や、複雑な製造品質管理を実行する場合、ハイエンドのNVIDIA GPUを活用したYOLOv7xの高いmAPにより、最小の異常も確実に検出できます。
未来:Ultralytics YOLO26へのアップグレード#
YOLOv7とYOLOXは登場当初、画期的なモデルでしたが、コンピュータビジョンの分野は大きく進歩しました。新たにデプロイする場合、開発者は2026年1月にリリースされたUltralytics YOLO26に注目するべきです。この最先端モデルは、優れたアーキテクチャ理論を統合し、究極の本番環境対応システムを実現します。
アップグレードを強く推奨する理由は次のとおりです。
- エンドツーエンドのNMSフリーデザイン: YOLO26のオプションのワンツーワンヘッド(
nms=False)は、後処理時の非極大値抑制(NMS)を不要にします。YOLOv10で初めて導入されたこの設計により、低レイテンシーが一貫して保たれ、NMSのハードウェアサポートがないデバイスへのデプロイが簡素化されます。 - DFLの削除: Distribution Focal Lossを削除することで、YOLO26は低消費電力のエッジデバイスとの互換性が大幅に向上し、ONNXへのエクスポートも容易になります。
- MuSGDオプティマイザー: LLMの学習におけるイノベーションに着想を得たYOLO26は、ハイブリッドのMuSGDオプティマイザーを採用し、収束の高速化と非常に安定した学習ダイナミクスを実現します。
- CPU推論を最大43%高速化: 実環境のハードウェアに合わせて徹底的に最適化されており、高価なGPUインフラを必要とせず、標準的なCPUで優れた性能を発揮します。
- ProgLoss + STAL: Progressive LossとSmall-Target-Aware Label Assignmentにより、小さな物体の認識が大幅に向上します。これは、航空ドローンによる点検や高度なIoTネットワークに欠かせない機能です。
物体検出、セグメンテーションなどにおいて最高のパフォーマンスバランスを求める開発者には、Ultralytics Platformを通じたモデルのデプロイにより、比類のないシームレスな体験を実現できます。
結論#
YOLOXとYOLOv7は、オープンソースのビジョンAIの発展を形作る重要な技術をそれぞれ導入しました。YOLOXはアンカーフリーの分離型ヘッドの有効性を示し、YOLOv7は勾配経路の再パラメーター化が持つ大きな力を実証しました。現在、Ultralyticsのエコシステムでは、最新のUltralytics YOLOモデルを使ってこれらのアイデアを発展させ、最先端のYOLO26へシームレスに移行することで、次のコンピュータビジョンアプリケーションを将来にわたって活用できます。