YOLOv10 vsYOLOv9:包括的な技術比較
YOLO (ユーオンリールックワンス)アーキテクチャーは、スピードと精度の限界を押し広げながら進化を続けている。この分野への最近の最も重要な貢献は次の2つである。 YOLOv10と YOLOv9.どちらのモデルもCOCO データセットで最先端の性能を達成しているが、その設計思想とアーキテクチャの目的は大きく異なっている。
YOLOv10 、非最大サプレッションNMS)の必要性を排除することにより、低レイテンシーとエンドツーエンドの効率を優先しているのに対し、YOLOv9 、プログラマブル勾配情報(PGI)により情報の保持と精度を最大化することに重点を置いている。本ガイドは、開発者や研究者がコンピュータ・ビジョン・アプリケーションに最適なモデルを選択するための詳細な技術比較を提供します。
YOLOv10:エンド・ツー・エンドのリアルタイム検出器
清華大学の研究者が2024年5月に発表、 YOLOv10は、YOLO 系譜におけるパラダイムシフトを象徴している。その主な革新点は、従来推論レイテンシのボトルネックとなっていたNon-Maximum Suppression(NMS)の後処理ステップを削除したことである。
技術詳細:
- 著者: Ao Wang, Hui Chen, Lihao Liu, et al.
- 組織清華大学
- Date: 2024-05-23
- Arxivリアルタイムのエンド・ツー・エンド物体検出
- GitHubTHU-MIG/yolov10
アーキテクチャと主要なイノベーション
YOLOv10 、コンシステント・デュアル・アサインメントと ホリスティック効率・精度駆動モデル設計の組み合わせにより、その効率性を達成している。
- NMSトレーニング:従来のYOLO モデルは、重複するバウンディングボックスをフィルタリングするためにNMS 依存していた。YOLOv10 、モデル学習時に二重の割り当て戦略を利用します。1対多の分岐は学習に豊富な監視信号を提供し、1対1の分岐は推論時にモデルがオブジェクトごとに1つの最良の予測を生成することを保証します。これにより、NMSなしでモデルを展開することができ、推論の待ち時間を大幅に短縮することができます。
- モデルの最適化:アーキテクチャには、軽量分類ヘッド、空間チャンネル非連結ダウンサンプリング、ランクガイド付きブロック設計が含まれる。これらの機能により、計算の冗長性とメモリ使用量が削減され、限られたリソースのハードウェアで非常に効率的なモデルを実現します。
効率の優位性
YOLOv10 NMS 削除は、エッジ展開において特に有益である。CPU リソースが乏しいデバイスでは、何千もの候補ボックスをソートしてフィルタリングする計算コストを回避することで、大幅なスピードアップを実現できる。
YOLOv9: 情報保持をマスターする
2024年2月、王建耀と廖宏源によって紹介される、 YOLOv9は、ディープ・ニューラル・ネットワークに内在する「情報ボトルネック」問題をターゲットにしている。データが連続するレイヤーを通過する際(特徴抽出)、重要な情報が失われる可能性があり、特に小さな物体や検出がdetect な物体の精度の低下につながる。
技術詳細:
- 著者: Chien-Yao Wang、Hong-Yuan Mark Liao
- 組織中央研究院情報科学研究所
- Date: 2024-02-21
- Arxivプログラム可能な勾配情報を使って学びたいことを学ぶ
- GitHubWongKinYiu/yolov9
アーキテクチャと主要なイノベーション
YOLOv9 、ネットワークが可能な限り多くの入力情報を保持し、活用できるようにするための新しいコンセプトを導入している。
- プログラム可能な勾配情報(PGI):PGIは、ネットワークの重みを更新するための信頼性の高い勾配を生成する補助的な監督フレームワークを提供する。これにより、深層が完全な入力情報を受け取ることが保証され、勾配の消失問題が緩和され、収束が改善される。
- GELAN(Generalized Efficient Layer Aggregation Network):この新しいアーキテクチャは、旧バージョンで使用されていた従来のELANに代わるものです。GELANは、パラメータ使用率と計算効率(FLOPs)を最適化し、YOLOv9 、前バージョンと同等のモデルサイズで、より高い精度を達成することができます。
ディープラーニングの洞察
YOLOv9情報保持に重点を置いているため、バックボーンでのダウンサンプリングオペレーション中に特徴の詳細が失われる可能性のある複雑なシーンでの物体検出に非常に強い。
パフォーマンス指標:スピードと精度
これら2つのモデルの選択は、多くの場合、生の推論スピードと検出精度のトレードオフに帰着する。以下の表は、様々なモデルスケールにおける性能の違いを強調しています。
分析する:
- レイテンシー: YOLOv10 、特に小さいモデルサイズ(NとS)において、レイテンシで一貫してYOLOv9 いる。例えば、YOLOv10nは TensorRT 1.56ミリ秒の推論速度を達成し、同等のモデルよりも大幅に高速です。
- 精度: YOLOv9 、高い精度に優れています。YOLOv9eモデルは55.6%という驚異的な mAP達成しており、精度が最優先される用途に最適です。
- 効率: YOLOv10 、パラメータあたりの精度に優れています。YOLOv10bは、YOLOv9cよりも低いレイテンシで52.7%の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 |
| YOLOv9t | 640 | 38.3 | - | 2.3 | 2.0 | 7.7 |
| YOLOv9s | 640 | 46.8 | - | 3.54 | 7.1 | 26.4 |
| YOLOv9m | 640 | 51.4 | - | 6.43 | 20.0 | 76.3 |
| YOLOv9c | 640 | 53.0 | - | 7.16 | 25.3 | 102.1 |
| YOLOv9e | 640 | 55.6 | - | 16.77 | 57.3 | 189.0 |
理想的なユースケース
各モデルの長所を理解することは、特定のプロジェクト目標に適したツールを選択するのに役立つ。
YOLOv10選ぶとき
- エッジAIの展開: NVIDIA JetsonやRaspberry Piのようなデバイス上で実行されるアプリケーションは、CPU オーバーヘッドを削減するNMS設計のメリットを享受できます。
- 高頻度ビデオ解析: 交通監視やスポーツ分析など、高FPSビデオストリームの処理を必要とするシナリオ。
- リアルタイム・ロボティクス:ナビゲーションと障害物回避のための低遅延フィードバックループに依存する自律システム。
YOLOv9選ぶとき
- 高精度検査:欠陥の見逃し(偽陰性)がコスト高となる産業用品質管理。
- 小さな物体の検出: 衛星画像解析や医療画像など、対象物が小さく特徴に乏しいアプリケーション。
- 複雑なシーン:オブジェクトを識別するために最大限の情報保持が必要な、オクルージョンやクラッタの多い環境。
Ultralytics使用法
これらのモデルを使用する大きな利点の一つは、Ultralytics エコシステムへの統合です。YOLOv10 YOLOv9 両方は、同じ統一されたPython APIとコマンドラインインターフェースCLI)を介して利用することができ、トレーニングからデプロイまでのワークフローを簡素化します。
Python 例
以下のコードでは、両方のモデルをロードして推論を実行する方法を示している。 ultralytics パッケージを参照してください。
from ultralytics import YOLO
# Load a YOLOv10 model (NMS-free, high speed)
model_v10 = YOLO("yolov10n.pt")
# Load a YOLOv9 model (High accuracy)
model_v9 = YOLO("yolov9c.pt")
# Run inference on an image
# The API remains consistent regardless of the underlying architecture
results_v10 = model_v10("https://ultralytics.com/images/bus.jpg")
results_v9 = model_v9("https://ultralytics.com/images/bus.jpg")
# Print results
for r in results_v10:
print(f"YOLOv10 Detections: {r.boxes.shape[0]}")
for r in results_v9:
print(f"YOLOv9 Detections: {r.boxes.shape[0]}")
Ultralytics 優位性
お客様のコンピュータビジョンプロジェクトにUltralytics 選択することで、モデルアーキテクチャだけでなく、いくつかの利点が得られます:
- 使いやすさ:ユーザーフレンドリーなAPIにより、YOLOv9、YOLOv10、および以下のような他のモデルを切り替えることができます。 YOLO11のような他のモデルに切り替えることができます。
- パフォーマンスのバランス: Ultralytics 実装は、スピードと精度のバランスをとりながら、実際のパフォーマンスに合わせて最適化されています。
- トレーニングの効率化:フレームワークは、自動混合精度(AMP)やマルチGPU トレーニングなどの機能をサポートしており、独自のデータセットでカスタムモデルを簡単にトレーニングできる。
- メモリ要件: Ultralytics モデルは通常、トランスフォーマーベースの代替品と比較してメモリ使用量が少なく、コンシューマーグレードのGPUでのトレーニングが容易です。
結論
両方 YOLOv10と YOLOv9は、物体検出における重要なマイルストーンである。 YOLOv10は、その革新的なNMSアーキテクチャにより、スピードと効率を優先するアプリケーションにとっては、明らかに勝者である。逆に YOLOv9は、可能な限り高い精度と情報保持を要求するシナリオでは、依然として強力な選択肢です。
最新かつ最も汎用性の高いソリューションを求める開発者には、次のソリューションもお勧めする。 YOLO11.YOLO11 、これらの先代の長所を基に、検出、セグメンテーション、およびポーズ推定タスクのための速度、精度、および機能の洗練されたバランスを提供します。
その他のモデルを見る
- Ultralytics YOLO11- 最新鋭モデル。
- Ultralytics YOLOv8- 様々な視覚タスクに対応する汎用性の高い成熟したモデル。
- RT-DETR- 高精度アプリケーション用のトランスベースの検出器。