YOLOv5 YOLOXの比較:アーキテクチャの変化とパフォーマンス指標
物体検出の状況は急速に進化しており、様々なアーキテクチャが推論速度と検出精度の最適なバランスを競っている。この旅における2つの重要なマイルストーンは YOLOv5と、Megviiの研究に特化したモデルであるYOLOXである。どちらのモデルも「You Only Look Once(一度しか見ない)」の系譜を受け継いでいるが、そのアーキテクチャ哲学において、特にアンカーベースとアンカーフリーの検出メカニズムにおいて大きく異なっている。
この比較では、開発者や研究者がコンピュータビジョンプロジェクトに適したツールを選択できるように、両モデルの技術仕様、アーキテクチャの違い、性能指標を探ります。
Ultralytics YOLOv5:エンジニアリング・スタンダード
2020年にリリースされたYOLOv5 5は、瞬く間に実用的な物体検出の業界標準となった。主に学術的な研究プロジェクトであった前身とは異なり、YOLOv5 5は使いやすさ、デプロイの容易さ、実世界でのパフォーマンスに重点を置いて設計された。合理化されたPyTorchワークフローを導入することで、カスタムモデルのトレーニングとデプロイをより多くのユーザーが利用できるようにした。
- 著者: Glenn Jocher
- 組織Ultralytics
- Date: 2020-06-26
- GitHub:https://github.com/ultralytics/yolov5
- ドキュメントhttps://docs.ultralytics.com/models/yolov5/
YOLOv5 5はアンカーベースのアーキテクチャを採用しており、あらかじめ定義されたアンカーボックスを利用してオブジェクトの位置を予測します。学習前にアンカー形状をカスタムデータセットに合わせて進化させる「AutoAnchor」機能を統合し、最適な収束を保証します。このモデルはCSPNetバックボーンとPANetネックを備え、迅速な特徴抽出と集約のために最適化されている。このモデルの最大の強みは、卓越した推論速度と少ないメモリフットプリントにあり、エッジコンピューティングやモバイルアプリケーションに最適です。
YOLOX:アンカーなしのコンテンダー
Megviiが2021年に発表したYOLOXは、アンカーフリー設計を採用することで、YOLO ファミリーの限界を押し広げようとした。このアプローチでは、あらかじめ定義されたアンカーボックスは必要なく、代わりにオブジェクトの中心とサイズを直接予測する。この転換は、設計プロセスを簡素化し、多様な物体形状における汎用性を向上させることを目的としている。
- 著者: Zheng Ge、Songtao Liu、Feng Wang、Zeming Li、Jian Sun
- 組織メグヴィ
- Date: 2021-07-18
- Arxiv:https://arxiv.org/abs/2107.08430
- GitHub:https://github.com/Megvii-BaseDetection/YOLOX
- ドキュメントhttps://yolox.readthedocs.io/en/latest/
YOLOXは非結合型ヘッドアーキテクチャを導入し、分類タスクと回帰タスクを異なるブランチに分離している。これにより、理論的には、物体が何であるかを識別するための特徴表現と、物体がどこにあるかを識別するための特徴表現とを区別して学習することができる。さらに、SimOTA(Simplified Optimal Transport Assignment)として知られる高度なラベル割り当て戦略を採用し、学習中にポジティブなサンプルを動的に割り当てる。これらの技術革新は高い精度に貢献する一方で、計算量の増加を伴うことが多い。
最新技術をお探しですか?
YOLOv5 YOLOXはコンピュータ・ビジョンの歴史における重要なステップであるが、この分野の進歩は速い。 YOLO11Ultralytics最新モデルであるYOLO11は、検出、セグメンテーション、ポーズ推定などをサポートする洗練されたアーキテクチャを特徴とし、両者に比べて優れた精度とスピードを提供します。
性能分析:速度 vs. 精度
YOLOv5 YOLOXを比較する場合、通常は推論レイテンシーと絶対精度のトレードオフが中心となる。YOLOv5 5は、特にハードウェア・アクセラレータ上で TensorRTとONNX Runtimeを使用しています。以下のデータに示すように、YOLOv5 モデルは、同等のモデルサイズにおいて、レイテンシが大幅に低い(速度が速い)ことを実証しています。
| モデル | サイズ (ピクセル) | mAP値 50-95 | 速度 CPU ONNX (ms) | 速度 T4 TensorRT10 (ms) | params (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| YOLOv5n | 640 | 28.0 | 73.6 | 1.12 | 2.6 | 7.7 |
| YOLOv5s | 640 | 37.4 | 120.7 | 1.92 | 9.1 | 24.0 |
| YOLOv5m | 640 | 45.4 | 233.9 | 4.03 | 25.1 | 64.2 |
| YOLOv5l | 640 | 49.0 | 408.4 | 6.61 | 53.2 | 135.0 |
| YOLOv5x | 640 | 50.7 | 763.2 | 11.89 | 97.2 | 246.4 |
| 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 |
主なポイント
- 推論速度: YOLOv5 5は、速度において決定的な優位性を持っています。例えば、YOLOv5nの TensorRT レイテンシはわずか1.12msで、NVIDIA Jetsonのようなエッジデバイスでの高FPSビデオ処理に非常に適しています。対照的に、YOLOXの最小モデルは、CPU同等のベンチマークデータがなく、GPU レイテンシは、同程度の精度層では一般的に高い。
- 精度(mAP):YOLOXはやや高い精度を達成する傾向がある。 mAPCOCO データセットでは、特にYOLOX-xが51.1であるのに対し、YOLOv5xは50.7である。これは、アンカーフリーの設計と非結合型ヘッドにより、オブジェクトのバリエーションにうまく対応できるためである。しかし、このわずかな利得は、多くの場合、著しく高い計算オーバーヘッド(FLOPs)の代償となる。
- 効率: YOLOv5 モデルは一般的に、与えられた推論速度に対して必要なFLOP数が少ない。YOLOv5 5の結合ヘッドデザインは、よりハードウェアに優しく、CPUとGPUの両方でより高速に実行できます。
アーキテクチャの詳細
根本的な違いは、それぞれのモデルが検出問題にどうアプローチするかにある。
YOLOv5 (アンカーベース): YOLOv5 、あらかじめ定義されたアンカーボックスのセットを利用する。学習中、モデルはオブジェクトに合わせてこれらのボックスを調整するよう学習する。この方法は、オブジェクトのサイズとグリッドセルのサイズの相関関係に依存している。
- 長所安定したトレーニング、確立された手法、標準的なデータセットでの優れたパフォーマンス。
- 短所:エキゾチックなデータセットでは、アンカーのためのハイパーパラメーターのチューニングが必要(YOLOv55のAutoAnchorはこれを軽減するが)。
YOLOX(アンカーフリー): YOLOXは物体検出を点回帰問題として扱います。グリッドセルの中心からオブジェクトの境界までの距離を予測します。
- 長所設計パラメータの数が減る(アンカーを調整する必要がない)。
- 短所:トレーニング中の収束が遅くなる可能性がある。また、非結合ヘッドは推論のレイテンシーを増加させるレイヤーを追加する。
ユーザー・エクスペリエンスとエコシステム
ウルトラリティクスの最大の特徴のひとつは Ultralytics YOLOv5の最大の特徴は、その強固なエコシステムである。YOLOXが強力な学術的ベースラインを提供する一方で、YOLOv5 開発者向けに設計された製品化可能なフレームワークを提供する。
使いやすさ
YOLOv5 5は「最初から最後まで」のシンプルさで有名です。データのアノテーションからモデルのトレーニング、デプロイまで、Ultralytics エコシステムはすべてのステップを合理化します。モデルは数行のコードでロードでき、以下のようなフォーマットへの自動エクスポートをサポートしています。 TFLite, CoreMLおよび ONNX.
import torch
# Load a pretrained YOLOv5s model from PyTorch Hub
model = torch.hub.load("ultralytics/yolov5", "yolov5s")
# Run inference on an image
results = model("https://ultralytics.com/images/zidane.jpg")
# Print results
results.print()
汎用性とメンテナンス
Ultralytics モデルは検出だけではない。このフレームワークは画像の分類や インスタンスのセグメンテーションをサポートし、複数のタスクのための統一されたAPIを提供する。このような多機能性は、主に検出に焦点を当てたYOLOXのような研究に特化したリポジトリには欠けていることが多い。さらに、Ultralytics 積極的なメンテナンスは、PyTorch CUDA最新バージョンとの互換性を保証し、時間の経過による「コードの腐敗」を軽減する。
理想的なユースケース
Ultralytics YOLOv5 5は、次のような方におすすめです:
- エッジデバイス(Raspberry Pi、携帯電話)でリアルタイムのパフォーマンスが必要です。
- デプロイの容易さを優先し、TensorRT、CoreML、またはTFLiteエクスポートのビルトイン・サポートが必要です。
- あなたは、コミュニティの活発なサポートがある、安定した、十分に文書化されたフレームワークを好む。
- お客様のアプリケーションは、低遅延が重要なセキュリティ監視や自律航法に関係しています。
YOLOXを選ぶなら
- あなたはアンカーフリーアーキテクチャに特化した学術研究を行っている。
- 競技やベンチマークでは、推論速度に関係なく、絶対最大mAP 要求される。
- 特殊なデータセットで、アンカーベースの手法が明らかに失敗し(例えば、極端なアスペクト比)、AutoAnchorでも問題が解決しなかった。
結論
YOLOv5 YOLOXは、コンピュータビジョンの歴史にその名を刻んでいる。YOLOXは、YOLO ファミリーのアンカーフリー検出器の実行可能性を示し、学術研究に強力なベースラインを提供した。しかし、実用的なアプリケーションの大部分では Ultralytics YOLOv5は、その比類のないスピード、効率性、開発者に優しいエコシステムにより、優れた選択肢であり続けています。
今日から新しいプロジェクトをスタートさせる方には、次のことを強くお勧めします。 YOLO11.使いYOLOv5さとYOLOv55の長所をベースにしながら、YOLOv5 YOLOXの精度と汎用性を凌駕する最新のアーキテクチャの進歩を統合しています。
その他のモデル比較
Ultralytics モデルが、この分野の他のアーキテクチャーとどのように比較されるかをご覧ください: