YOLOv10とYOLOv9#
リアルタイムコンピュータービジョンの進化により、速度、精度、アーキテクチャ効率は着実に向上してきました。次のデプロイに向けてモデルを評価する際、YOLOv10とYOLOv9を比較すると、ディープラーニングのボトルネックに対する2つの異なるアプローチがわかります。YOLOv9がトレーニング中の勾配情報の流れを最大化する一方、YOLOv10はNMS後処理を取り除くエンドツーエンド設計を導入しました。
このガイドでは、開発者や研究者がコンピュータービジョンタスクに適したモデルを選べるよう、両モデルのアーキテクチャ上の革新、性能指標、最適なユースケースを分析します。
YOLOv10:NMSフリーのリアルタイム検出#
従来の物体検出器におけるレイテンシのボトルネックを解消するために開発されたYOLOv10は、非極大値抑制(NMS)を不要にするエンドツーエンドアーキテクチャを導入しています。
技術情報と系譜:
- 著者: Ao Wang、Hui Chen、Lihao Liuほか
- 組織: 清華大学
- 日付: 2024年5月23日
- リンク: arXiv論文、GitHubリポジトリ、Ultralyticsドキュメント
アーキテクチャと強み#
YOLOv10の分野への最も大きな貢献は、NMSフリートレーニングを実現する一貫性のあるデュアル割り当て戦略です。NMSを取り除くことで、特に後処理がパイプライン全体のボトルネックになり得るエッジデバイスで、推論レイテンシを低減します。効率と精度の両方の観点からさまざまな構成要素を最適化し、優れた速度とパラメーター数のトレードオフを実現します。たとえば、YOLOv10-SはTensorRTを使用したT4 GPU上で2.49 msで動作するため、高速な動画分析やリアルタイムのロボットナビゲーションに適しています。
弱点#
NMSフリー設計はバウンディングボックス検出における重要な進歩でしたが、YOLOv10は物体検出に特化したモデルです。インスタンスセグメンテーションやポーズ推定にネイティブ対応する新しいモデルのような、すぐに利用できる汎用性は備えていません。
YOLOv10を本番環境向けに準備する際は、モデルをTensorRTやONNXなどの最適化形式にエクスポートし、nms=Falseを使用してNMSフリーの1対1ヘッドを選択してください。最適化されていないグラフ処理が原因で、デプロイ時にPyTorchの重みをそのまま実行すると、予想より推論が遅くなる場合があります。
YOLOv9:プログラム可能な勾配情報#
YOLOv10以前には、YOLOv9がディープニューラルネットワークに内在する情報ボトルネックの問題を解決するため、新しいアーキテクチャの概念を導入し、パラメーターを非常に効率よく活用できるようにしました。
技術情報と系譜:
- 著者: Chien-Yao Wang、Hong-Yuan Mark Liao
- 所属機関: 台湾、中央研究院情報科学研究所
- 日付: 2024年2月21日
- リンク: arXiv論文、GitHubリポジトリ、Ultralyticsドキュメント
アーキテクチャと強み#
YOLOv9は、Programmable Gradient Information(PGI)とGeneralized Efficient Layer Aggregation Network(GELAN)を導入しています。PGIは、データがネットワークの深い層を通過する際に重要なターゲット情報が失われないようにし、重み更新に信頼性の高い勾配を生成します。GELANはネットワークのパラメーター効率を最大化します。これらの技術によりYOLOv9は、MS COCOデータセットで高い平均適合率(mAP)を達成し、より少ないFLOPsで、より大規模なモデルを上回ることもあります。精度指標の最大化を重視する研究者にとって、有力なモデルです。
弱点#
高い精度を備える一方、YOLOv9は標準的なNMS後処理に依存しています。そのため、ニューラルネットワークの演算が高速でも、最終的なバウンディングボックスのフィルタリングでは、シーン内の物体密度に応じてレイテンシが変動する可能性があります。また、後発モデルと比べてトレーニングに多くのメモリを必要とする場合があり、独自データセットでファインチューニングするには、より高性能なGPUリソースが必要です。
パフォーマンス比較#
以下の表は、両モデルの主要な指標を示しています。YOLOv10はTensorRTで通常レイテンシを低く抑える一方、YOLOv9は最大構成で精度の上限を押し上げている点に注目してください。
| モデル | サイズ (ピクセル) | mAPval 50-95 | 速度 CPU ONNX (ms) | 速度 T4 TensorRT10 (ms) | パラメーター (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| YOLOv10n | 640 | 38.5 | - | 1.84 | 2.3 | 6.7 |
| YOLOv10s | 640 | 46.3 | - | 2.49 | 7.2 | 21.6 |
| YOLOv10m | 640 | 51.1 | - | 4.74 | 15.4 | 59.1 |
| YOLOv10b | 640 | 52.5 | - | 5.74 | 19.1 | 92.0 |
| YOLOv10l | 640 | 53.2 | - | 7.28 | 24.4 | 120.3 |
| YOLOv10x | 640 | 54.4 | - | 10.70 | 29.5 | 160.4 |
| YOLOv9t | 640 | 38.3 | - | 2.3 | 2.0 | 7.7 |
| YOLOv9s | 640 | 46.8 | - | 3.54 | 7.2 | 26.7 |
| YOLOv9m | 640 | 51.4 | - | 6.43 | 20.1 | 76.8 |
| YOLOv9c | 640 | 53.0 | - | 7.16 | 25.5 | 102.8 |
| YOLOv9e | 640 | 55.6 | - | 16.77 | 58.1 | 192.5 |
次世代モデル:YOLO26を推奨する理由#
YOLOv9とYOLOv10は重要な節目ですが、機械学習分野の進歩は速く進んでいます。本番環境では、多くの開発者が統合された、適切にメンテナンスされているUltralytics Platformエコシステムを利用しています。2026年現在、研究とエンタープライズの両方でUltralyticsが推奨するモデルはYOLO26です。
YOLO26は、先行モデルのコンセプトを基盤に、使いやすいエクスペリエンス、シンプルなAPI、Transformerベースのアーキテクチャより少ないトレーニング時のメモリ要件を実現しています。
YOLO26の主な革新#
- エンドツーエンドNMSフリー設計: YOLOv10を基盤とするYOLO26は、オプションのエンドツーエンド推論に対応しています。
nms=FalseでNMS後処理を省略し、デプロイを簡素化して、より予測しやすいレイテンシを実現します。 - CPU推論が最大43%高速: YOLO26nはCPU上でYOLO11nより最大43%高速に動作するため、専用GPUのないエッジAIや組み込みシステムに適しています。
- MuSGD Optimizer: SGDとMuonのハイブリッドで、大規模言語モデルの最適化に着想を得ており、安定したトレーニングと高速な収束を実現します。
- DFLの削除: Distribution Focal Lossを取り除くことで、YOLO26はモデルのエクスポート処理を簡素化し、低消費電力デバイスやさまざまなエッジデプロイフレームワークとの互換性を高めます。
- タスク固有の機能強化: 単一タスクの検出器とは異なり、YOLO26は検出、インスタンスセグメンテーション、セマンティックセグメンテーション、深度推定、分類、ポーズ推定、OBBに対応します。インスタンスセグメンテーションの性能向上にはセマンティックセグメンテーション損失を使用し、より正確なポーズ推定にはResidual Log-Likelihood Estimation(RLE)を使用します。また、OBB(Oriented Bounding Box)の境界問題を解決する専用の角度損失も備えています。
実践的な実装#
Ultralytics Pythonパッケージを使えば、これらのモデルのトレーニングとデプロイを簡単に行えます。次の例では、学習率スケジューリングとデータ拡張を自動で処理するUltralyticsのトレーニングワークフローを紹介します。
from ultralytics import YOLO
# 推奨されるYOLO26モデルを読み込む
model = YOLO("yolo26n.pt") # 'yolov10n.pt'または'yolov9c.pt'にも対応しています
# COCO8のサンプルデータセットでモデルをトレーニングする
train_results = model.train(data="coco8.yaml", epochs=100, imgsz=640, device=0, batch=16)
# 推論を実行
predictions = model.predict("https://ultralytics.com/images/bus.jpg")
# エッジへのデプロイを簡素化するため、ONNXにエクスポートします
model.export(format="onnx")ユースケースと推奨事項#
YOLOv10とYOLOv9のどちらを選ぶかは、プロジェクト固有の要件、デプロイ時の制約、エコシステムの好みによって異なります。
YOLOv10を選ぶ場合#
YOLOv10は、次の用途に適しています:
- NMSを使用しないリアルタイム検出: 非最大抑制を使用しないエンドツーエンド検出によって、デプロイを簡素化できるアプリケーション。
- 速度と精度のバランス: さまざまなモデルスケールで、推論速度と検出精度の優れたバランスが必要なプロジェクト。
- レイテンシーが安定している必要のあるアプリケーション: ロボティクスや自律システムなど、予測可能な推論時間が重要なデプロイシナリオ。
YOLOv9を選ぶ場合#
YOLOv9は、次のような用途に推奨されます。
- 情報ボトルネックの研究: プログラム可能な勾配情報(PGI)や一般化効率的層集約ネットワーク(GELAN)のアーキテクチャを研究する学術プロジェクト。
- 勾配フロー最適化の研究: 学習中の深層ネットワーク層における情報損失の理解と抑制に焦点を当てた研究。
- 高精度検出のベンチマーク: アーキテクチャの比較において、YOLOv9の優れたCOCOベンチマーク性能を基準として必要とするシナリオ。
Ultralytics (YOLO26)を選ぶ場合#
ほとんどの新規プロジェクトでは、Ultralytics YOLO26が性能と開発者体験の最適な組み合わせを提供します。
- NMSを使用しないエッジデプロイ: 非最大抑制の後処理を複雑化させずに、安定した低レイテンシー推論を必要とするアプリケーション。
- CPUのみの環境: 専用GPUによる高速化機能のないデバイスでは、YOLO26nはCPU上でYOLO11nより最大43%高速に動作します。
- 小物体検出: ドローンによる空撮画像やIoTセンサー分析などの難しいシナリオでは、ProgLossとSTALが小さな物体の精度を向上させます。
結論#
YOLOv9とYOLOv10には、それぞれ独自の利点があります。YOLOv9はパラメーター効率と勾配フローを最大化し、この比較ではYOLOv9eが最高精度を達成します。YOLOv10は、NMSによるレイテンシーの増加を伴わないエンドツーエンドのバウンディングボックス検出をYOLOファミリーに導入しました。
性能、汎用性、使いやすさの最適なバランスを求める開発者にとって、新しいモデルへのアップグレードは有益です。MuSGDオプティマイザー、小物体検出を向上させるProgLoss + STAL、マルチタスク対応を備えたYOLO26は、実環境のコンピュータービジョンプロジェクトに推奨されるモデルです。