YOLOv10 YOLOv8:リアルタイム物体検出の技術比較
YOLO Only Look Once)ファミリーの進化は、一貫してコンピュータビジョンの限界を押し広げ、開発者により高速で正確な物体検出ツールを提供してきました。どちらを選ぶか YOLOv10と YOLOv8YOLOv10とYOLOv8のどちらかを選択する場合、アーキテクチャ、効率、エコシステムのサポートの違いを理解することが重要です。YOLOv10 、効率化のために斬新なアーキテクチャの変更を導入しているが、YOLOv8 、使いやすさと包括的な機能セットで知られる、堅牢で汎用性の高い標準であることに変わりはない。
このガイドでは、機械学習プロジェクトに適したモデルを選択するための詳細な技術的比較を提供します。
パフォーマンス分析
COCO データセットの性能指標は、これらのモデル の背後にある明確な設計思想を示しています。YOLOv10 、パラメータ・カウントと浮動小数点演算(FLOPs)を削減することに重点を置いており、与えられたモデル・サイズに対して高いmAP (平均平均精度)を達成することがよくあります。しかし YOLOv8のような最適化されたフォーマットにエクスポートした場合、特にCPU上で、非常に競争力のある推論速度を維持します。 TensorRTのような最適化された形式にエクスポートされた場合、特にCPU上で非常に競争力のある推論速度を維持します。
| モデル | サイズ (ピクセル) | 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 |
| YOLOv8n | 640 | 37.3 | 80.4 | 1.47 | 3.2 | 8.7 |
| YOLOv8s | 640 | 44.9 | 128.4 | 2.66 | 11.2 | 28.6 |
| YOLOv8m | 640 | 50.2 | 234.7 | 5.86 | 25.9 | 78.9 |
| YOLOv8l | 640 | 52.9 | 375.2 | 9.06 | 43.7 | 165.2 |
| YOLOv8x | 640 | 53.9 | 479.1 | 14.37 | 68.2 | 257.8 |
YOLOv10:建築イノベーションによる効率化
著者Ao Wang, Hui Chen, Lihao Liu, et al.
Organization:Tsinghua University
Date:2024-05-23
Arxiv:YOLOv10: Real-Time End-to-End Object Detection
GitHub:THU-MIG/yolov10
YOLOv10 、清華大学の研究者たちによって開発された。最大の目標は、後処理における非最大抑制NMS)への依存をなくすことである。NMS 、レイテンシが重要なアプリケーションにおいてボトルネックとなる可能性がある。YOLOv10 、学習中に一貫した二重割り当て戦略を導入し、モデルが各オブジェクトに対して単一の最適なボックスを予測することを可能にし、効果的にエンドツーエンドの検出器を実現します。
YOLOv1010の主な強み
- NMS推論: NMS ステップを削除することにより、YOLOv10 後処理段階での計算オーバーヘッドを削減し、特定のエッジシナリオでの待ち時間を短縮することができる。
- パラメータ効率:全体的なモデル設計により、前世代と比較してパラメータ数とFLOP数が大幅に削減され、ストレージが極端に制限されたデバイスにとって魅力的なものとなっています。
- 高精度:このサイズで最先端のmAP スコアを達成し、アーキテクチャの最適化の有効性を実証している。
弱点
- タスクの特化: YOLOv10 主に物体検出用に設計されています。インスタンスのセグメンテーションやポーズ推定など、他のコンピュータビジョンタスクのネイティブサポートはありません。
- エコシステムの成熟度:新しいアカデミックリリースであるため、確立されたUltralytics エコシステムと比較すると、サードパーティの統合やコミュニティリソースが少ない。
Ultralytics YOLOv8:多目的な業界標準
著者Glenn Jocher、Ayush Chaurasia、Jing Qiu
組織:Ultralytics
Date:2023-01-10
Docs:Ultralytics YOLOv8 ドキュメント
GitHub:ultralytics
Ultralytics発表したYOLOv8 、実用的でユーザーフレンドリーなAIに関する長年の研究の集大成です。YOLOv8は高いパフォーマンスだけでなく、卓越した開発者体験のために設計されています。YOLOv8 、アンカーフリーの検出メカニズムと豊富な勾配フローを利用し、ロバストな学習を保証します。その際立った特徴は、検出、セグメンテーション、分類、ポーズ推定、OBBといった幅広いタスクを、単一の統一されたフレームワーク内でネイティブにサポートしていることです。
YOLOv8 推薦する理由
- 使いやすさ: Ultralytics YOLOv8 、そのシンプルな操作性で知られています。 PythonとCLI インターフェースで有名です。開発者はわずか数行のコードでモデルのトレーニング、検証、デプロイが可能です。
- 整備されたエコシステム: Ultralytics エコシステムの一員であることは、頻繁なアップデート、大規模なコミュニティ、Ultralytics HUBのようなツールとのシームレスな統合によるモデル管理の容易さへのアクセスを意味します。
- パフォーマンスのバランス:スピードと精度の理想的なバランスを実現しています。このモデルは、CPU、GPU、Edge TPUなど、さまざまなハードウェアバックエンドに高度に最適化されています。
- トレーニングの効率化: YOLOv8 、多くのトランスフォーマーベースの代替品よりも少ないメモリ要件で効率的なトレーニングプロセスを提供し、計算コストを節約します。
- 汎用性:バウンディングボックスに限定されたモデルとは異なり、YOLOv8 フレームワークを切り替えることなく、セグメンテーションマスクやキーポイントを必要とする複雑なプロジェクトに対応できます。
メモリ効率
YOLOv8 ようなUltralytics モデルは、メモリ効率が高くなるように設計されています。このため、カスタムモデルをトレーニングする際の参入障壁が大幅に低くなっています。 RT-DETRのようなかさばるトランスフォーマーモデルに比べてCUDAメモリが少なくて済むため、コンシューマーグレードのGPUでのトレーニングが可能になります。
比較分析:アーキテクチャとユースケース
建築の違い
根本的な違いは、後処理と割り当て戦略にある。 YOLOv10はデュアルヘッドアーキテクチャを採用しており、一方のヘッドでは(従来のYOLOのように)トレーニング中の豊富な監視信号に1対多の割り当てを使用し、もう一方のヘッドでは推論に1対1の割り当てを使用することで、NMS必要性を排除している。
YOLOv8は、逆に、タスクに整列した割り当て器とアンカーを使わない結合ヘッド構造を採用している。この設計により、検出ヘッドが簡素化され、汎化が向上する。NMS必要とするが、以下のようなエクスポート・フォーマットでは動作が高度に最適化される。 ONNXやTensorRTようTensorRTエクスポートフォーマットで高度に最適化され、多くの場合、ロバストなデプロイメントパイプラインでは実用的なレイテンシの差は無視できるほど小さくなる。
理想的なユースケース
この2つのどちらを選ぶかは、多くの場合、プロジェクトの具体的な制約による:
高性能エッジAI(YOLOv10):アプリケーションが、1メガバイト単位のストレージが重要となるようなリソース制約の厳しいハードウェア上で実行される場合、またはNMS オペレーションがターゲット・チップ上で特定のボトルネックを生み出す場合、YOLOv10 優れた候補となる。例えば、農業用組み込みセンサーや軽量ドローンなどです。
汎用・マルチタスクAI(YOLOv8):商用および研究用アプリケーションの大半に対応、 YOLOv8が優れている。セグメンテーション(例:精密医療画像)やポーズ推定(例:スポーツ分析)が可能なため、非常に汎用性が高い。さらに、その豊富なドキュメントとサポートにより、開発者は問題を迅速に解決し、より早くデプロイすることができます。
コードの実装
Ultralytics フレームワークの大きな利点の一つは、統一されたAPIです。YOLOv8 使用していても、新しいモデルを探求していても、ワークフローは一貫して直感的なままです。
ここでは、Python YOLOv8 モデルの学習を簡単に開始する方法を紹介する:
from ultralytics import YOLO
# Load a pre-trained YOLOv8 model
model = YOLO("yolov8n.pt")
# Train the model on your custom dataset
# The system automatically handles data downloading and processing
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Run inference on an image
results = model("path/to/image.jpg")
YOLOv10、Ultralytics パッケージもアクセスを容易にし、研究者は使い慣れた環境でアーキテクチャを試すことができる:
from ultralytics import YOLO
# Load a pre-trained YOLOv10 model
model = YOLO("yolov10n.pt")
# Train the model using the same simple API
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
結論
YOLOv10 YOLOv8 どちらも、コンピューター・ビジョンにおける印象的なマイルストーンである。 YOLOv10はアーキテクチャー効率の限界を押し広げ、特殊な低レイテンシー・アプリケーション向けにNMS未来を垣間見せている。
しかし Ultralytics YOLOv8は、開発者や組織にとって推奨されるモデルであり続けています。その堅牢なエコシステム、実証済みの信頼性、マルチタスク機能は、単純な検知にとどまらない包括的なソリューションを提供します。Ultralytics YOLOv8、単なるモデルではなく、ワールドクラスのAIソリューションを効率的に構築、トレーニング、デプロイするための完全なツールキットを提供します。
常に最先端を走り続けたい人は、ぜひこちらもチェックしてほしい。 YOLO11Ultralytics 最新版で、YOLOv8さらに高いパフォーマンスと効率性を実現しています。
参考資料
- SOTAの最新モデルをご覧ください: YOLO11
- メトリクスを理解するYOLO パフォーマンス指標
- どこにでもデプロイできるモデルエクスポートモード
- 他の比較を見るYOLOv5 YOLOv8比較