YOLOv10: リアルタイム・エンドツーエンド物体検出
YOLOv10, released in May 2024 and built on the Ultralytics Python package by researchers at Tsinghua University, introduces a new approach to real-time object detection, addressing both the post-processing and model architecture deficiencies found in previous YOLO versions. By eliminating non-maximum suppression (NMS) and optimizing various model components, YOLOv10 achieved excellent performance with significantly reduced computational overhead at its time of release. Its NMS-free end-to-end design pioneered an approach that has been further developed in YOLO26.

Watch: How to Train YOLOv10 on SKU-110k Dataset using Ultralytics | Retail Dataset
概要
リアルタイム物体検出は、低遅延で画像内の物体カテゴリーと位置を正確に予測することを目的としています。YOLOシリーズは、パフォーマンスと効率のバランスの良さから、この分野の研究の最前線に立ってきました。しかし、NMSへの依存とアーキテクチャ上の非効率性が最適なパフォーマンスを妨げていました。YOLOv10は、NMSフリー学習のための整合性のあるデュアル割り当てと、全体的な効率と精度を重視したモデル設計戦略を導入することで、これらの課題に対処しています。
アーキテクチャ
YOLOv10のアーキテクチャは、以前のYOLOモデルの強みを基盤としつつ、いくつかの重要な革新を導入しています。モデルアーキテクチャは以下のコンポーネントで構成されています。
- Backbone: 特徴抽出を担当するYOLOv10のバックボーンは、CSPNet(Cross Stage Partial Network)の強化版を使用しており、勾配フローの改善と計算冗長性の削減を実現しています。
- Neck: ネックは、さまざまなスケールから特徴を集約し、ヘッドに渡すように設計されています。効果的なマルチスケール特徴融合のために、PAN(Path Aggregation Network)層が含まれています。
- One-to-Many Head: 学習中に物体ごとに複数の予測を生成し、豊富な監視信号を提供して学習精度を向上させます。
- One-to-One Head: 推論中に物体ごとに単一の最適な予測を生成し、NMSの必要性を排除することで、遅延を削減し効率を向上させます。
主な特徴
- NMS-Free Training: 整合性のあるデュアル割り当てを活用してNMSの必要性を排除し、推論遅延を削減します。
- Holistic Model Design: 軽量分類ヘッド、空間・チャネル分離ダウンサンプリング、ランクガイド付きブロック設計など、効率と精度の両観点からさまざまなコンポーネントを包括的に最適化しています。
- Enhanced Model Capabilities: 大規模カーネル畳み込みと部分的な自己注意モジュール(Partial Self-Attention)を組み込み、計算コストを大幅に増やすことなくパフォーマンスを向上させます。
モデルバリアント
YOLOv10には、さまざまなアプリケーションのニーズに応えるため、複数のモデルスケールが用意されています。
- YOLOv10n: リソースが極めて制限された環境向けのNanoバージョン。
- YOLOv10s: 速度と精度のバランスをとったSmallバージョン。
- YOLOv10m: 汎用的なMediumバージョン。
- YOLOv10b: より高い精度を実現するために幅を広げたBalancedバージョン。
- YOLOv10l: 計算リソースを犠牲にして精度を向上させたLargeバージョン。
- YOLOv10x: 最大限の精度とパフォーマンスを実現するExtra-largeバージョン。
性能
YOLOv10は、精度と効率の面で、以前のYOLOバージョンや他の最先端モデルを上回っています。例えば、YOLOv10sはCOCOデータセットで同等のAPを持ちながら、RT-DETR-R18よりも1.8倍高速であり、YOLOv10bは同等のパフォーマンスを持ちながらYOLOv9-Cと比較して遅延が46%少なく、パラメータ数も25%少なくなっています。
遅延は、T4 GPU上でTensorRT FP16を使用して測定されています。
| モデル | 入力サイズ | APval | FLOPs (G) | 遅延 (ms) |
|---|---|---|---|---|
| [YOLOv10n][1] | 640 | 38.5 | 6.7 | 1.84 |
| [YOLOv10s][2] | 640 | 46.3 | 21.6 | 2.49 |
| [YOLOv10m][3] | 640 | 51.1 | 59.1 | 4.74 |
| [YOLOv10b][4] | 640 | 52.5 | 92.0 | 5.74 |
| [YOLOv10l][5] | 640 | 53.2 | 120.3 | 7.28 |
| [YOLOv10x][6] | 640 | 54.4 | 160.4 | 10.70 |
方法論
NMSフリー学習のための整合性のあるデュアル割り当て
YOLOv10は、学習中にOne-to-Many(1対多)戦略とOne-to-One(1対1)戦略を組み合わせたデュアルラベル割り当てを採用し、豊富な監視と効率的なエンドツーエンドデプロイメントを確保しています。整合性のあるマッチングメトリックにより、両方の戦略間の監視が調整され、推論中の予測品質が向上します。
全体的な効率と精度を重視したモデル設計
効率向上のための取り組み
- Lightweight Classification Head: 深層分離畳み込み(depth-wise separable convolutions)を使用することで、分類ヘッドの計算オーバーヘッドを削減します。
- Spatial-Channel Decoupled Down sampling: 空間的削減とチャネル変調を分離することで、情報損失と計算コストを最小限に抑えます。
- Rank-Guided Block Design: 本質的なステージ冗長性に基づいてブロック設計を適応させ、最適なパラメータ利用を確保します。
精度向上のための取り組み
- Large-Kernel Convolution: 受容野を拡大し、特徴抽出能力を強化します。
- Partial Self-Attention (PSA): 自己注意モジュールを組み込み、最小限のオーバーヘッドでグローバルな表現学習を向上させます。
実験と結果
YOLOv10は、COCOなどの標準的なベンチマークで広範にテストされており、優れたパフォーマンスと効率を実証しています。このモデルはさまざまなバリアントで最先端の結果を達成しており、以前のバージョンや他の現代の検出器と比較して、遅延と精度の両面で大幅な改善を示しています。
比較

他の最先端検出器との比較:
- YOLOv10s / xは、同等の精度でRT-DETR-R18 / R101よりも1.8倍 / 1.3倍高速です。
- YOLOv10bは、同等の精度でYOLOv9-Cと比較してパラメータ数が25%少なく、遅延が46%低くなっています。
- YOLOv10l / xは、YOLOv8l / xよりも0.3 AP / 0.5 AP優れており、パラメータ数は1.8倍 / 2.3倍少なくなっています。
YOLOv10バリアントと他の最先端モデルの詳細な比較を以下に示します:
| モデル | パラメータ数 (M) | FLOPs (G) | mAPval 50-95 | 遅延 (ms) | 遅延-フォワード (ms) |
|---|---|---|---|---|---|
| YOLOv6-3.0-N | 4.7 | 11.4 | 37.0 | 2.69 | 1.76 |
| Gold-YOLO-N | 5.6 | 12.1 | 39.6 | 2.92 | 1.82 |
| YOLOv8n | 3.2 | 8.7 | 37.3 | 6.16 | 1.77 |
| YOLOv10n | 2.3 | 6.7 | 39.5 | 1.84 | 1.79 |
| YOLOv6-3.0-S | 18.5 | 45.3 | 44.3 | 3.42 | 2.35 |
| Gold-YOLO-S | 21.5 | 46.0 | 45.4 | 3.82 | 2.73 |
| YOLOv8s | 11.2 | 28.6 | 44.9 | 7.07 | 2.33 |
| YOLOv10s | 7.2 | 21.6 | 46.8 | 2.49 | 2.39 |
| RT-DETR-R18 | 20.0 | 60.0 | 46.5 | 4.58 | 4.49 |
| YOLOv6-3.0-M | 34.9 | 85.8 | 49.1 | 5.63 | 4.56 |
| Gold-YOLO-M | 41.3 | 87.5 | 49.8 | 6.38 | 5.45 |
| YOLOv8m | 25.9 | 78.9 | 50.6 | 9.50 | 5.09 |
| YOLOv10m | 15.4 | 59.1 | 51.3 | 4.74 | 4.63 |
| YOLOv6-3.0-L | 59.6 | 150.7 | 51.8 | 9.02 | 7.90 |
| Gold-YOLO-L | 75.1 | 151.7 | 51.8 | 10.65 | 9.78 |
| YOLOv8l | 43.7 | 165.2 | 52.9 | 12.39 | 8.06 |
| RT-DETR-R50 | 42.0 | 136.0 | 53.1 | 9.20 | 9.07 |
| YOLOv10l | 24.4 | 120.3 | 53.4 | 7.28 | 7.21 |
| YOLOv8x | 68.2 | 257.8 | 53.9 | 16.86 | 12.83 |
| RT-DETR-R101 | 76.0 | 259.0 | 54.3 | 13.71 | 13.58 |
| YOLOv10x | 29.5 | 160.4 | 54.4 | 10.70 | 10.60 |
パラメータおよびFLOPsの値は、Conv層とBatchNorm層を結合し、補助的なone-to-many検出ヘッドを削除する model.fuse() を実行した後のフューズドモデルに対するものです。事前学習済みチェックポイントは完全な学習アーキテクチャを保持しており、より高い数値を示す場合があります。
使用例
YOLOv10を使用した新規画像の予測用です。モデルはUltralytics Platformを通じてクラウドGPU上で学習させることも可能です。
from ultralytics import YOLO
# Load a pretrained YOLOv10n model
model = YOLO("yolov10n.pt")
# Perform object detection on an image
results = model("image.jpg")
# Display the results
results[0].show()カスタムデータセットでYOLOv10を学習する場合:
from ultralytics import YOLO
# Load YOLOv10n model from scratch
model = YOLO("yolov10n.yaml")
# Train the model
model.train(data="coco8.yaml", epochs=100, imgsz=640)サポートされているタスクとモード
YOLOv10モデルシリーズは、高性能なObject Detection向けに最適化された一連のモデルを提供します。これらのモデルは、計算上のニーズや精度要件に合わせて幅広く対応しており、さまざまなアプリケーションで柔軟に使用できます。
| モデル | ファイル名 | タスク | 推論 (Inference) | 検証 | 学習 | Export |
|---|---|---|---|---|---|---|
| YOLOv10 | yolov10n.pt yolov10s.pt yolov10m.pt yolov10l.pt yolov10x.pt | 物体検出 | ✅ | ✅ | ✅ | ✅ |
YOLOv10のエクスポート
YOLOv10で導入された新しい操作のため、Ultralyticsが提供するすべてエクスポート形式が現在サポートされているわけではありません。以下の表は、Ultralyticsを使用してYOLOv10の変換に成功した形式を示しています。YOLOv10用に追加形式のエクスポートサポートを提供できる場合は、お気軽にプルリクエストを作成して貢献してください。
| エクスポート形式 | エクスポートサポート | エクスポートモデルの推論 | 備考 |
|---|---|---|---|
| TorchScript | ✅ | ✅ | 標準のPyTorchモデル形式。 |
| ONNX | ✅ | ✅ | デプロイメントで幅広くサポートされています。 |
| OpenVINO | ✅ | ✅ | Intelハードウェア向けに最適化されています。 |
| TensorRT | ✅ | ✅ | NVIDIA GPU向けに最適化されています。 |
| CoreML | ✅ | ✅ | Appleデバイス限定です。 |
| TF SavedModel | ✅ | ✅ | TensorFlowの標準モデル形式。 |
| TF GraphDef | ✅ | ✅ | レガシーTensorFlow形式。 |
| TF Lite | ✅ | ✅ | モバイルおよび組み込み向けに最適化されています。 |
| TF Edge TPU | ✅ | ✅ | GoogleのEdge TPUデバイス専用です。 |
| TF.js | ✅ | ✅ | ブラウザ利用向けのJavaScript環境。 |
| PaddlePaddle | ❌ | ❌ | 中国で一般的ですが、グローバルなサポートは限定的です。 |
| NCNN | ✅ | ❌ | レイヤー torch.topk が存在しないか、登録されていません |
結論
YOLOv10は、以前のYOLOバージョンの欠点を克服し、革新的な設計戦略を取り入れることで、リリース時にリアルタイム物体検出の新しい基準を打ち立てました。そのNMSフリーのアプローチは、YOLOファミリーにおけるエンドツーエンドの物体検出の先駆けとなりました。パフォーマンスが向上し、NMSフリーの推論を実現した最新のUltralyticsモデルについては、YOLO26をご覧ください。
引用と謝辞
We would like to acknowledge the YOLOv10 authors from Tsinghua University for their extensive research and significant contributions to the Ultralytics framework:
@article{THU-MIGyolov10,
title={YOLOv10: Real-Time End-to-End Object Detection},
author={Ao Wang, Hui Chen, Lihao Liu, et al.},
journal={arXiv preprint arXiv:2405.14458},
year={2024},
institution={Tsinghua University},
license = {AGPL-3.0}
}詳細な実装、アーキテクチャの革新、および実験結果については、Tsinghua UniversityチームによるYOLOv10の研究論文およびGitHubリポジトリを参照してください。
FAQ
YOLOv10とは何か、また以前のYOLOバージョンとどのように異なりますか?
YOLOv10はTsinghua Universityの研究者によって開発され、リアルタイム物体検出にいくつかの主要な革新をもたらしました。学習中に一貫した二重割り当てを採用し、計算オーバーヘッドを削減しつつ優れたパフォーマンスを発揮するようにモデルコンポーネントを最適化することで、非最大値抑制(NMS)を不要にしました。アーキテクチャと主な機能の詳細については、YOLOv10概要セクションを確認してください。
YOLOv10を使用して推論を開始するにはどうすればよいですか?
簡単な推論には、Ultralytics YOLO Pythonライブラリまたはコマンドラインインターフェース(CLI)を使用できます。以下は、YOLOv10を使用して新しい画像を予測する例です:
from ultralytics import YOLO
# Load the pretrained YOLOv10n model
model = YOLO("yolov10n.pt")
results = model("image.jpg")
results[0].show()その他の使用例については、使用例セクションをご覧ください。
YOLOv10はどのようなモデルバリアントを提供しており、それらのユースケースは何ですか?
YOLOv10は、さまざまなユースケースに対応するためにいくつかのモデルバリアントを提供しています。
- YOLOv10n: リソースが極めて制限された環境に適しています
- YOLOv10s: スピードと精度のバランスに優れています
- YOLOv10m: 汎用的な用途向けです
- YOLOv10b: 幅を拡張し、より高い精度を実現します
- YOLOv10l: 計算リソースを消費しますが、高い精度を提供します
- YOLOv10x: 最大限の精度とパフォーマンスを提供します
各バリアントは異なる計算ニーズと精度要件に合わせて設計されており、さまざまなアプリケーションに対応可能です。詳細についてはModel Variantsセクションをご覧ください。
YOLOv10のNMSフリー手法はどのようにパフォーマンスを向上させますか?
YOLOv10は、トレーニング時に一貫したデュアルアサインメントを採用することで、推論時のNMS(非最大値抑制)を不要にしました。このアプローチにより、推論のレイテンシが短縮され、予測効率が向上します。また、アーキテクチャには推論用にワン・ツー・ワンヘッドが含まれており、各オブジェクトに対して最適な予測が1つだけ得られるようになっています。詳細な説明については、Consistent Dual Assignments for NMS-Free Trainingセクションを参照してください。
YOLOv10モデルのエクスポートオプションはどこで確認できますか?
YOLOv10は、TorchScript、ONNX、OpenVINO、TensorRTなど、いくつかのエクスポート形式をサポートしています。ただし、YOLOv10の新しい操作の特性上、Ultralyticsが提供するすべてエクスポート形式が現在サポートされているわけではありません。サポートされている形式やエクスポートの手順についての詳細は、Exporting YOLOv10セクションをご覧ください。
YOLOv10モデルのパフォーマンスベンチマークはどのようなものですか?
YOLOv10は、精度と効率の両面で、これまでのYOLOバージョンや他の最先端モデルを上回ります。例えば、YOLOv10sはCOCOデータセットにおいて、同等のAPを持つRT-DETR-R18と比較して1.8倍高速です。また、YOLOv10bはYOLOv9-Cと同等のパフォーマンスを発揮しながら、レイテンシを46%、パラメータ数を25%削減しています。詳細なベンチマークはComparisonsセクションで確認できます。