コンテンツにスキップ

YOLOv7 YOLOv10比較:アーキテクチャの進化とパフォーマンス分析

YOLO Only Look Once)ファミリーの進化は、推論速度と検出精度の永遠のトレードオフのバランスをとりながら、コンピュータ・ビジョンの進歩の興味深い年表を表している。この比較では、2つの重要なマイルストーンを掘り下げます: YOLOv72022年に新たなベンチマークを設定した堅牢なモデルである YOLOv10YOLOv10は2024年のリリースで、NMSトレーニングによるパラダイムシフトを導入している。

どちらのモデルも物体検出のための優れた選択肢ではあるが、異なるアーキテクチャ哲学に対応している。YOLOv7 、学習可能な「bag-of-freebies」と勾配パスの最適化の限界に挑戦しているのに対し、YOLOv10 、リアルタイムのエンドツーエンドの効率を達成するために、後処理のボトルネックを排除することに重点を置いている。

YOLOv7:勾配パスの最適化

2022年7月にリリースされたYOLOv7 、推論コストを増加させることなく学習プロセスを最適化することに焦点を当てた大幅なアーキテクチャ変更を導入した。YOLOv7は、COCO データセットでの高い精度により、汎用的なコンピュータビジョンタスクで急速に普及した。

著者Chien-Yao Wang, Alexey Bochkovskiy, and Hong-Yuan Mark Liao
組織:Institute of Information Science, Academia Sinica, Taiwan
Date:2022-07-06
ArXiv:YOLOv7: Trainable bag-of-freebies sets new state-of-the-art for real-time object detectors
GitHub:WongKinYiu/yolov7

主な建築上の特徴

YOLOv7 、E-ELAN(Extended Efficient Layer Aggregation Network)が導入された。このアーキテクチャは、最短および最長の勾配パスを制御することで、モデルがより多様な特徴を学習することを可能にし、学習中にネットワークが効果的に収束することを保証する。

さらに、YOLOv7 、推論コストを増加させることなく学習時の精度を向上させる「Bag-of-Freebies」手法を多用している。これにはモデルの再パラメータ化が含まれ、複雑な学習構造を合理的な推論構造に簡略化することで、学習性能を維持しながら待ち時間を短縮する。

YOLOv7もっと知る

YOLOv10:NMS終焉

清華大学の研究者が2024年5月にリリースしたYOLOv10、物体検出における長年のボトルネックに対処している:非最大抑制NMS)である。従来のYOLO モデルは、1つのオブジェクトに対して複数のバウンディングボックスを予測し、重複をフィルタリングするためにNMS 依存していた。この後処理ステップは、シーン内のオブジェクトの数に応じて変化する待ち時間を追加する。

著者Ao Wang, Hui Chen, Lihao Liu, et al.
組織:清華大学
Date:2024-05-23
ArXiv:YOLOv10: Real-Time End-to-End Object Detection
GitHub:THU-MIG/yolov10

主な建築上の特徴

YOLOv10 一貫性のある二重割り当て戦略を導入している。学習中、モデルは1対多のヘッド(リッチな監視用)と1対1のヘッド(エンドツーエンドの予測用)の両方を使用する。推論時には1対1のヘッドのみが使用され、NMS 必要性は完全に排除される。この結果、予測可能でレイテンシーの低い推論が可能になり、処理時間を一定に保つ必要があるエッジAIアプリケーションに非常に適している。

YOLOv10もっと知る

技術的な比較:アーキテクチャと性能

これらのモデルの主な違いは、推論効率に対するアプローチにある。YOLOv7 、高度に最適化されたバックボーン(E-ELAN)に依存して効率的に特徴を抽出するが、依然として従来の後処理が必要である。YOLOv10 、基本的な検出ヘッドを変更して後処理ステップを削除し、同程度の精度レベルでより低いレイテンシーを実現している。

パフォーマンス指標

下の表に示すように、YOLOv10 優れた効率を示している。例えば、YOLOv10bはより高い mAP(52.7%)を達成し、YOLOv7l(51.4%)に比べて、使用するパラメータ(24.4M vs 36.9M)と浮動小数点演算(FLOPs)が大幅に少なくなっています。

レイテンシーを理解する

スピード」メトリクスは、YOLOv10 NMS設計の影響を強調している。NMS ステップを削除することで、YOLOv10 推論中の計算オーバーヘッドを削減します。これは、後処理がボトルネックになりやすいTensorRT ようなハードウェアアクセラレータでは特に有益です。

モデルサイズ
(ピクセル)
mAP
50-95
速度
CPU ONNX
(ms)
速度
T4 TensorRT10
(ms)
params
(M)
FLOPs
(B)
YOLOv7l64051.4-6.8436.9104.7
YOLOv7x64053.1-11.5771.3189.9
YOLOv10n64039.5-1.562.36.7
YOLOv10s64046.7-2.667.221.6
YOLOv10m64051.3-5.4815.459.1
YOLOv10b64052.7-6.5424.492.0
YOLOv10l64053.3-8.3329.5120.3
YOLOv10x64054.4-12.256.9160.4

長所と短所

YOLOv7 強み:

  • 実証された堅牢性:2022年以来、様々な学術的・産業的環境で幅広くテストされている。
  • 高解像度サポート:特定のW6/E6バリアントを介した高解像度入力(1280ピクセルなど)で優れたパフォーマンスを発揮します。
  • コミュニティのリソース:チュートリアルやサードパーティの実装が大量に存在する。

YOLOv7 弱点:

  • 複雑さ:再パラメータ化と補助ヘッド構造は、最新のUltralytics モデルと比較してトレーニングパイプラインを複雑にする可能性がある。
  • NMS 依存性:推論速度は、NMSシーン密度に部分的に依存する。

YOLOv10 強み:

  • 最も低いレイテンシー: NMSアーキテクチャは、リアルタイム推論に理想的な極めて高速な推論を可能にします。
  • 効率:少ないパラメータと少ないメモリ使用量で最先端の精度を実現。
  • デプロイの容易さ: NMS ステップを削除することで、ONNX TensorRTフォーマットへのエクスポートプロセスが簡素化されます。

YOLOv10 弱点:

  • Ultralytics エコシステムの他のモデル(YOLO11)は、統一されたフレームワークでセグメンテーション、ポーズ推定、OBBをネイティブにサポートしているのに対し、タスク特異性:主に物体検出に焦点を当てている。

理想的なユースケース

YOLOv7 YOLOv10 どちらを選択するかは、多くの場合、配備環境の特定の制約に依存する。

  • YOLOv7 使用する場合すでにv7アーキテクチャを統合しているレガシープロジェクトに取り組んでいる場合、または、推論速度が生の精度よりも二の次である、大きな画像内の小さなオブジェクト検出用に、特定の高解像度バリアント(YOLOv7ような)が必要な場合。
  • YOLOv10 次のような場合にご利用ください:リソースに制約のあるエッジ・デバイス(Raspberry Pi、Jetson Nano、携帯電話)にデプロイする場合、または自律走行や高速ロボット工学のようなアプリケーションに絶対最小限のレイテンシーを必要とする場合。また、メモリフットプリントが小さいため、クラウド環境でも安価に実行できます。

Ultralytics 優位性

YOLOv7 YOLOv10どちらを選択するにしても、Ultralytics Python APIを介して利用することで、生のリポジトリコードを使用するよりも大きな利点があります。Ultralytics これらのモデルを、使いやすさトレーニングの効率性汎用性を優先した統一エコシステムに統合しました。

合理化されたユーザー・エクスペリエンス

複雑なディープラーニングモデルのトレーニングには、これまで複雑な設定ファイルと依存関係を管理する必要があった。Ultralytics フレームワークは、このプロセスを標準化する。開発者は、アーキテクチャを入れ替えることができます(例えば、YOLOv10nからYOLOv10sへ、あるいは YOLO11)間で、データ・ローダーや検証スクリプトを書き換えることなく、文字列の引数を1つ変えるだけで交換することができます。

コード例

以下の例では、Ultralytics パッケージを使用してこれらのモデルをロードし、予測する方法を示しています。基礎となるモデル・アーキテクチャに関係なく、APIが一貫していることに注意してください。

from ultralytics import YOLO

# Load a pre-trained YOLOv10 model (NMS-free)
model_v10 = YOLO("yolov10n.pt")

# Load a pre-trained YOLOv7 model
model_v7 = YOLO("yolov7.pt")

# Run inference on an image
# The API handles underlying differences automatically
results_v10 = model_v10("https://ultralytics.com/images/bus.jpg")
results_v7 = model_v7("https://ultralytics.com/images/bus.jpg")

# Print results
for result in results_v10:
    result.show()  # Display predictions

エコシステムと将来性

YOLOv7 YOLOv10 強力ですが、Ultralytics エコシステムは絶えず進化しています。最新の YOLO11モデルは、v7(機能集約)とv10(効率性)の両方から学んだ教訓に基づいています。

  • 十分なメンテナンス:頻繁なアップデートにより、PyTorch、CUDA、エクスポートフォーマットCoreML、ONNX、TensorRT)の最新バージョンとの互換性が確保されています。
  • メモリ効率: Ultralytics モデルは、トレーニング中のGPU VRAM使用量を最小限に抑えるように設計されているため、多くのTransformerベースの代替製品(RT-DETR)と比較して、消費者向けハードウェアでより大きなバッチサイズを使用することができます。
  • トレーニングの効率化:事前にチューニングされたハイパーパラメータと「スマートな」データセットスキャンにより、トレーニングの収束はしばしば速くなり、計算コストを節約できる。

今日から新しいプロジェクトを始める開発者にとって YOLO11YOLOv10 見られたスピードと前任者のロバストな特徴抽出の洗練されたバランスを提供し、インスタンスのセグメンテーションや ポーズ推定など、単純な検出を超えるタスクをネイティブでサポートしているため、今日プロジェクトを開始する開発者には、YOLOv10 11を検討することを強く推奨する。

その他のモデルを見る

さらなる比較や異なるアーキテクチャに興味がある場合は、以下のリソースを検討してほしい:


コメント