YOLOv9 YOLOv10:物体検出の技術比較
適切な物体検出モデルを選択することは、開発者や研究者にとって重要な決断であり、高精度の必要性とリアルタイム推論や計算リソースの制約とのバランスをとる必要があります。このガイドでは YOLOv9と YOLOv10このガイドでは、2024年のコンピュータ・ビジョン性能の限界を押し広げた2つの最先端アーキテクチャであるYOLOv9とYOLOv10の詳細な技術比較を行います。
YOLOv9 ディープラーニングの情報ボトルネックを解決するためのアーキテクチャの革新に焦点を当てているのに対し、YOLOv10 レイテンシを最小化するためのNMS設計によるパラダイムシフトを導入しています。どちらのモデルもUltralytics Python パッケージに完全に統合されており、ユーザーは統一されたエコシステム内で簡単にトレーニング、検証、デプロイすることができます。
パフォーマンス指標とベンチマーク
これら2つのモデルの性能のトレードオフは明確である。YOLOv9 一般的に平均平均精度(mAP)の限界を押し上げ、特に大型のバリエーションでは、精度が最優先されるシナリオに適している。逆に、YOLOv10 効率性を追求し、推論の待ち時間とパラメータ数を大幅に削減しており、エッジ展開に最適です。
以下の表は、COCO データセットを使用したこれらの違いを示しています。注目すべきは、YOLOv10nがT4 GPUで驚異的な速度を達成しているのに対し、検出精度ではYOLOv9eが優位に立っていることです。
| モデル | サイズ (ピクセル) | mAP値 50-95 | 速度 CPU ONNX (ms) | 速度 T4 TensorRT10 (ms) | params (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| 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 |
| 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 |
YOLOv9:情報のボトルネックを解消する
2024年2月発売、 YOLOv9は、ディープ・ニューラル・ネットワークにおける基本的な理論的課題である、データが深い層を伝搬する際の情報の損失をターゲットにしている。このモデルは、ネットワークが正確な物体検出に必要な本質的特徴を保持するように設計されている。
技術詳細:
- 著者: Chien-Yao Wang、Hong-Yuan Mark Liao
- 組織中央研究院情報科学研究所
- Date: 2024-02-21
- ArxivarXiv:2402.13616
- GitHubWongKinYiu/yolov9
建築PGIとGELAN
YOLOv9 2つの画期的なコンセプトを導入している:
- プログラム可能な勾配情報(PGI):学習中の情報損失を防ぐ補助的な監視フレームワーク。ネットワークの重みを更新する際に信頼性の高い勾配が生成されるようにし、従来のアーキテクチャに見られた深い監視の問題を解決する。
- 一般化された効率的なレイヤ集約ネットワーク(GELAN):パラメータ効率を最大化する新しいアーキテクチャ。GELANは、レイヤー間の特徴の集約方法を最適化することで、従来の設計と比較して少ないパラメータでより高い精度を達成することを可能にします。
長所と短所
YOLOv9 、精度が重視される用途に優れています。詳細な特徴情報を保持する能力により、小さな物体の検出や複雑なシーンのナビゲーションに優れている。しかし、この洗練された機能は、複雑さというトレードオフを伴う。PGIのようなアーキテクチャの追加は主にトレーニング用であり、推論中に削除することができるが、トレーニングリソースが高くなる可能性がある。さらに、効率的ではあるが、レイテンシはYOLOv1010の特化した効率的な設計よりも一般的に高い。
YOLOv10:NMS検出の時代
YOLOv10清華大学の研究者によって開発され、2024年5月にリリースされたYOLOv10は、リアルタイムのスピードとエンド・ツー・エンドの展開可能性を優先している。その特徴は、従来推論遅延のボトルネックとなっていた後処理ステップであるNMS(Non-Maximum Suppression)を排除したことである。
技術詳細:
- 著者: Ao Wang, Hui Chen, Lihao Liu, et al.
- 組織清華大学
- Date: 2024-05-23
- ArxivarXiv:2405.14458
- GitHubTHU-MIG/yolov10
アーキテクチャー一貫したデュアル割り当て
YOLOv10 10の革新的なコアは、トレーニング中の一貫した二重割り当てである。YOLOv10は、学習時には1対多の割り当て戦略を採用してリッチな監視を行いますが、推論時には1対1の割り当てに切り替えます。このアーキテクチャにより、モデルは各オブジェクトの最適なバウンディングボックスを直接予測することができ、NMS 後処理が不要になります。YOLOv10 、ランク誘導ブロック設計と組み合わせることで、冗長性と計算オーバーヘッド(FLOPs)を削減します。
長所と短所
YOLOv10 10の最大の利点は低レイテンシーである。NMS除去することで、推論レイテンシは決定論的かつ大幅に低くなり、これはリアルタイムのビデオ処理に不可欠である。また、YOLOv10 モデルがより少ないFLOP数で競争力のある精度を達成している比較表に見られるように、優れたパラメータ効率を誇っている。潜在的な弱点は、確立されたエコシステムに比べて比較的最近導入されたことだが、Ultralytics 統合されたことで緩和された。また、エコシステム内の他のモデルがより広範なマルチタスク・サポートを提供しているのに対し、YOLOv10は検知に高度に特化している。
エンド・ツー・エンド・エクスポート
YOLOv10 設計上NMSあるため、ONNX TensorRT ようなフォーマットへのエクスポートは、複雑な後処理プラグインを必要とすることなく、多くの場合よりシンプルで、「純粋な」エンドツーエンドのモデルが得られる。
開発者のための比較分析
これらのモデルを生産に統合する場合、未加工の測定基準だけでなく、いくつかの実際的な要因が絡んでくる。
使いやすさとエコシステム
どちらのモデルも、Ultralytics エコシステムの一部であることから、非常に大きな恩恵を受けています。つまり、開発者はモデルの文字列を変更するだけで、同じトレーニングパイプライン、検証ツール、デプロイメントフォーマットを利用して、YOLOv9 YOLOv10 切り替えることができる。
- トレーニング効率: Ultralytics モデルは通常、トランスフォーマーベースの検出器よりも少ないメモリしか必要としないため、標準的な民生用GPUでのトレーニングが可能です。
- 汎用性: YOLOv9 YOLOv10 検出に重点を置いているが、Ultralytics APIは、YOLO11 YOLOv8ようなモデルを通じて、インスタンスのセグメンテーションや ポーズ推定のような他のタスクもサポートしており、多様なビジョンAIプロジェクトのための包括的なツールキットを提供している。
理想的なユースケース
YOLOv9 選ぶのはこんなときだ:
- お客様のアプリケーションでは、可能な限り高い精度が要求されます(医療用画像処理、製造における欠陥検出など)。
- あなたは、情報の保持が重要な、detect 困難な対象物を扱っている。
- レイテンシーは精度に比べれば二の次だ。
YOLOv10 こんなときに選ぶ:
- スピードは非常に重要です。自律走行、ロボット・ナビゲーション、高FPSビデオ解析などのアプリケーションは、NMS設計の恩恵を受ける。
- CPUGPU CPUリソースが限られているエッジデバイス(NVIDIA JetsonやRaspberry Piなど)への展開。
- NMS 処理によってもたらされるばらつきのない、決定論的な推論時間が必要なのだ。
コード例:両方のモデルを実行する
統一されたUltralytics APIのおかげで、自分のデータでこれらのモデルを比較するのは簡単だ。以下のPython コードは、両方のアーキテクチャで推論をロードして実行する方法を示しています。
from ultralytics import YOLO
# Load a pre-trained YOLOv9 model
model_v9 = YOLO("yolov9c.pt")
# Load a pre-trained YOLOv10 model
model_v10 = YOLO("yolov10n.pt")
# Run inference on an image
results_v9 = model_v9("path/to/image.jpg")
results_v10 = model_v10("path/to/image.jpg")
# Print results
print(f"YOLOv9 Detection: {len(results_v9[0].boxes)}")
print(f"YOLOv10 Detection: {len(results_v10[0].boxes)}")
結論
YOLOv9 YOLOv10 、コンピュータ・ビジョンにおける重要なマイルストーンである。 YOLOv9は、特徴の保持と精度の理論的限界に挑戦しており、研究や精度の高いタスクに威力を発揮する。 YOLOv10は、NMS ボトルネックを取り除くことで効率性を再定義し、リアルタイム・アプリケーションに合理的なソリューションを提供します。
複数のタスク(セグメンテーションや分類を含む)において、精度、スピード、特徴の豊富さの絶対的なベストバランスを求めるユーザーには、次のようなものもお勧めします。 YOLO11.Ultralytics最新版であるYOLO11 、前世代の製品の優れた特性を洗練させ、事実上あらゆるビジョンAIアプリケーションに適した、堅牢でエンタープライズ対応のパッケージに仕上げている。
その他のモデルを見る
Ultralytics エコシステムは広大です。プロジェクト要件が異なる場合は、以下の選択肢をご検討ください:
- YOLO11:検出、セグメンテーション、ポーズ、OBB、分類の各分野で優れた性能と汎用性を発揮する最新の最新モデル。
- YOLOv8:幅広い互換性とマルチタスク対応で知られる、高い人気と安定性を誇るモデル。
- RT-DETR: NMS必要とせずに高精度を提供するトランスベースの検出器で、特定のユースケースにおいてYOLO アーキテクチャの代替となる。
Ultralytics プラットフォームを活用することで、このモデル群全体にアクセスできるようになり、常に仕事に適したツールを利用できるようになります。