YOLOv10 YOLOXの技術比較
急速に進化するコンピュータビジョンにおいて、適切な物体検出モデルを選択することは、性能、効率、導入の容易さのバランスを取る上で非常に重要です。この技術比較では YOLOv10と、Megviiのアンカーフリーモデルとして高く評価されているYOLOXの違いを探ります。
YOLOXは2021年にアンカーフリーの検出メカニズムに関する重要なイノベーションを導入したが、YOLOv10 2024年の最先端であり、NMS推論とUltralytics エコシステムとのより緊密な統合を提供する。
YOLOv10: エンド・ツー・エンドのリアルタイム検出
YOLOv10 、後処理効率とモデル構築のギャップを埋めることを目的としている。NMSトレーニングのために一貫したデュアル割り当て戦略を導入することで、推論中のNMS(Non-Maximum Suppression)の必要性を排除し、待ち時間を大幅に短縮する。
技術詳細:
- 著者: Ao Wang, Hui Chen, Lihao Liu, et al.
- 組織清華大学
- Date: 2024-05-23
- ArxivarXiv:2405.14458
- GitHubTHU-MIG/yolov10
アーキテクチャーと強み
YOLOv10 、前世代のYOLO 長所を踏まえつつ、効率と精度の両面でアーキテクチャを最適化している。YOLOv10は、軽量な分類ヘッドと空間チャンネル分離ダウンサンプリングを含む全体的なモデル設計を採用している。
- NMS推論: NMS 除去は、リアルタイム推論アプリケーションにとって画期的であり、予測可能なレイテンシーとエッジデバイスのCPU オーバーヘッドの低減を保証します。
- 効率と精度のバランス: YOLOv10 、従来品や競合品と比較して、より少ないパラメータ数とFLOP数で最先端の性能を達成。
- Ultralytics 統合 全面的にサポートされる
ultralyticsパッケージは、ユーザーが統一された Python APIのようなフォーマットへのシームレスなエクスポート TensorRT および OpenVINOそして豊富なドキュメント。
エコシステムの優位性
YOLOv10 Ultralytics エコシステムに統合されたことで、自動アノテーション、クラウドトレーニング、サポートのための強固なコミュニティなどの高度な機能にすぐにアクセスできるようになりました。
弱点
- より新しいアーキテクチャ:2024年リリースのため、サードパーティのチュートリアルのエコシステムは急速に成長しているが、古いレガシーモデルの量にはまだ及ばないかもしれない。
YOLOX:アンカーフリーのパイオニア
2021年にリリースされたYOLOXは、YOLOv4とYOLOv55のアンカーベースのアプローチから脱却し、アンカーフリーのメカニズムと非連結ヘッドに切り替えた。ラベル割り当てにはSimOTA(Simplified Optimal Transport Assignment)を採用し、ダイナミックなラベル割り当て戦略を大きく前進させた。
技術詳細:
- 著者: Zheng Ge、Songtao Liu、Feng Wang、Zeming Li、Jian Sun
- 組織メグヴィ
- Date: 2021-07-18
- ArxivarXiv:2107.08430
- GitHubMegvii-BaseDetection/YOLOX
アーキテクチャーと強み
YOLOXは、そのクリーンなアンカーフリー設計により、研究コミュニティにおける強力なベースラインであり続けている。
- アンカー・フリーのメカニズム:あらかじめ定義されたアンカー・ボックスを削除することで、YOLOXは設計の複雑さを軽減し、チューニングが必要なハイパーパラメータの数を減らします。
- 分離ヘッド:分類とローカライズのタスクを分離することで、従来の結合ヘッド設計に比べて収束速度と精度が向上。
- 強力なベースライン:検出ヘッドと割り当て戦略に関する学術研究の信頼できるベンチマークとして機能する。
弱点
- 推論スピード:YOLOXは当時としては効率的ではあったが、YOLOv10 ような新しいモデルには遅れをとっている。 YOLO11特にNMS 時間を考慮すると。
- 断片化されたワークフロー: Ultralytics モデルとは異なり、YOLOXは独自のコードベースと環境設定を必要とすることが多く、最新のフレームワークに見られるトレーニング、検証、デプロイのための統一されたインターフェースがない。
- リソース強度:最新の効率的なアーキテクチャと比較して、同程度の精度レベルでより高いFLOP数とパラメータ数。
パフォーマンス分析
以下の比較は、これらのモデルを分けた3年間で効率と精度が大きく進歩したことを強調しています。メトリクスは、COCO データセットにおけるモデルサイズ(パラメータ)、計算コスト(FLOPs)、精度mAP)に焦点を当てています。
| モデル | サイズ (ピクセル) | mAP値 50-95 | 速度 CPU ONNX (ms) | 速度 T4 TensorRT10 (ms) | params (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| YOLOv10n | 640 | 39.5 | - | 1.56 | 2.3 | 6.7 |
| YOLOv10s | 640 | 46.7 | - | 2.66 | 7.2 | 21.6 |
| YOLOv10m | 640 | 51.3 | - | 5.48 | 15.4 | 59.1 |
| YOLOv10b | 640 | 52.7 | - | 6.54 | 24.4 | 92.0 |
| YOLOv10l | 640 | 53.3 | - | 8.33 | 29.5 | 120.3 |
| YOLOv10x | 640 | 54.4 | - | 12.2 | 56.9 | 160.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 |
批判的観察
- 精度対サイズ: YOLOv10 、少ないパラメータで一貫して高いmAP 達成している。例えば、YOLOv10sはわずか7.2Mのパラメータで46.7mAP達成しているのに対し、YOLOXsは 9.0Mのパラメータで40.5mAP達成しています。これは、YOLOv1010の優れたアーキテクチャ効率を示している。
- 計算効率: YOLOv10 モデルのFLOP数は大幅に減少している。YOLOXxの 281.9億FLOPsに対し、YOLOv10xは 160.4億FLOPsで動作し、精度ではYOLOXxを上回る(54.4対51.1mAP)。
- 推論速度: NMS 削除とアーキテクチャの最適化により、YOLOv10 より低いレイテンシを達成できるようになった。T4TensorRT ベンチマークでは、YOLOv10xの実行速度は12.2msで、YOLOXxの16.1msよりも大幅に高速です。
理想的なユースケース
YOLOv10:現代のスタンダード
YOLOv10 、ほとんどの新規開発プロジェクト、特にそのようなプロジェクトに適しています:
- エッジAIの展開:低いメモリフットプリントと高い効率性により、Raspberry Piや NVIDIA Jetsonのようなデバイスに最適です。
- リアルタイム・アプリケーション:自律走行、ロボット工学、ビデオ分析など、即時のフィードバックを必要とするシステムは、NMS低レイテンシーから恩恵を受けます。
- 迅速な開発: Ultralytics エコシステムでは、以下のことが可能です。 データセット管理を経由して、トレーニング、配備を行う。
ultralyticsパッケージを参照してください。
YOLOX:遺産と研究
YOLOXは、その関連性を保ち続けている:
- 学術研究:アンカーなし検出器やSimOTAのような特定のラベル割り当て戦略の進化を研究する研究者は、YOLOXをベースラインとして使用することが多い。
- レガシーシステム:すでにYOLOXに最適化されている既存の生産パイプラインは、アップグレードのコストが性能の向上を上回る場合、引き続きYOLOXを使用することができる。
YOLOv10 Ultralytics使う
YOLOv10 10の最も大きな利点の一つは、その使いやすさである。Ultralytics Python APIは、事前に訓練された重みのロードからカスタムデータでの訓練まで、ワークフロー全体を簡素化します。
以下は、YOLOv10 モデルの予測とトレーニングの実行方法の例である:
from ultralytics import YOLO
# Load a pre-trained YOLOv10n model
model = YOLO("yolov10n.pt")
# Run inference on an image
results = model.predict("path/to/image.jpg")
# Train the model on a custom dataset (COCO format)
model.train(data="coco8.yaml", epochs=100, imgsz=640)
トレーニング効率
Ultralytics YOLO モデルは、そのトレーニング効率で知られており、多くの場合、古いアーキテクチャやトランスフォーマーベースのモデルよりも少ないCUDA メモリしか必要としません。これにより、標準的なコンシューマーGPUでより大きなバッチをトレーニングすることができます。
結論
YOLOXはアンカーなし検出の普及に極めて重要な役割を果たした、 YOLOv10は、コンピュータ・ビジョン技術の次の飛躍を象徴しています。NMSアーキテクチャー、優れた精度対計算比、そして堅牢なUltralytics エコシステムへのシームレスな統合により、YOLOv10 開発者にも研究者にも魅力的なパッケージを提供します。
YOLOv10 、最先端のオブジェクト検出を導入したい開発者に、必要なスピードと精度を提供する。ポーズ推定やオリエンテッドなバウンディングボックスなど、さらに幅広い機能に興味のある開発者は、多機能な YOLO11や、広く採用されている YOLOv8.