YOLOv10:リアルタイムのエンドツーエンド物体検出#
2024年5月にリリースされたYOLOv10は、清華大学の研究者によって開発され、Ultralytics Pythonパッケージを基盤としています。従来のYOLOバージョンに見られた後処理とモデルアーキテクチャの両方の課題に対処する、リアルタイム物体検出の新しいアプローチを導入しています。非最大抑制(NMS)を排除し、さまざまなモデルコンポーネントを最適化することで、YOLOv10はリリース時点で計算オーバーヘッドを大幅に削減しながら、優れた性能を達成しました。NMSを使用しないエンドツーエンド設計は、YOLO26でさらに発展したアプローチの先駆けとなりました。

Watch: How to Train YOLOv10 on SKU-110k Dataset using Ultralytics | Retail Dataset
概要#
リアルタイム物体検出では、低レイテンシで画像内の物体カテゴリと位置を正確に予測することを目指します。YOLOシリーズは、性能と効率のバランスにより、この研究分野をリードしてきました。しかし、NMSへの依存とアーキテクチャ上の非効率性が、最適な性能の妨げとなっていました。YOLOv10は、NMSフリートレーニング向けの一貫性のあるデュアル割り当てと、効率性と精度を総合的に考慮したモデル設計戦略を導入することで、これらの課題に対処します。
アーキテクチャ#
YOLOv10のアーキテクチャは、従来のYOLOモデルの長所を基盤としながら、複数の重要な革新を導入しています。モデルアーキテクチャは、次のコンポーネントで構成されています。
- Backbone: 特徴抽出を担うYOLOv10のバックボーンでは、CSPNet(クロスステージパーシャルネットワーク)の拡張版を使用し、勾配フローを改善するとともに計算の冗長性を削減します。
- Neck:ネックは異なるスケールの特徴を集約し、ヘッドに渡すように設計されています。効果的なマルチスケール特徴融合のため、PAN(パスアグリゲーションネットワーク)レイヤーを含みます。
- One-to-Many Head:トレーニング中に物体ごとに複数の予測を生成し、豊富な教師信号を提供して学習精度を向上させます。
- One-to-One Head:推論時に物体ごとに最良の予測を1つ生成してNMSの必要性をなくし、レイテンシを削減して効率を向上させます。
主な特徴#
- NMS-Free Training:一貫性のあるデュアル割り当てを利用してNMSの必要性をなくし、推論レイテンシを削減します。
- 全体的なモデル設計: 軽量な分類ヘッド、空間チャネル分離型ダウンサンプリング、ランク誘導型ブロック設計など、効率と精度の両方の観点からさまざまなコンポーネントを包括的に最適化しています。
- Enhanced Model Capabilities:大規模カーネルの畳み込みと部分的なセルフアテンションモジュールを組み込み、大幅な計算コストを伴わずに性能を向上させます。
モデルバリアント#
YOLOv10には、さまざまなアプリケーションのニーズに対応する複数のモデルスケールがあります。
- YOLOv10n:極めてリソースが限られた環境向けのNanoバージョンです。
- YOLOv10s:速度と精度のバランスを取ったSmallバージョンです。
- YOLOv10m:汎用用途向けのMediumバージョンです。
- YOLOv10b:精度向上のために幅を拡大した、バランス型のバージョンです。
- 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戦略とone-to-one戦略を組み合わせたデュアルラベル割り当てを採用し、豊富な教師信号と効率的なエンドツーエンドのデプロイを実現します。Ultralyticsの予測および検証ではデフォルトでNMS付きのone-to-manyヘッドが使用されますが、NMSフリーヘッドを選択するには nms=False を設定してください。一貫したマッチング指標により、両方の戦略間の教師信号が揃えられ、推論時の予測品質が向上します。
効率性と精度を総合的に考慮したモデル設計#
効率性の向上#
- 軽量な分類ヘッド:深さ方向に分離可能な畳み込みを使用して、分類ヘッドの計算オーバーヘッドを削減します。
- 空間チャネル分離型ダウンサンプリング: 情報損失と計算コストを最小限に抑えるために、空間削減とチャネル変調を分離します。
- ランク誘導型ブロック設計:固有のステージ冗長性に基づいてブロック設計を適応させ、パラメーターを最適に利用します。
精度の向上#
- 大規模カーネル畳み込み:受容野を拡大し、特徴抽出能力を高めます。
- 部分的セルフアテンション(PSA):セルフアテンションモジュールを組み込み、最小限のオーバーヘッドでグローバル表現学習を改善します。
実験と結果#
YOLOv10はCOCOなどの標準ベンチマークで広範にテストされ、優れた性能と効率を実証しています。さまざまなバリアントで最先端の結果を達成し、従来バージョンや同時代の他の検出器と比較して、レイテンシと精度が大幅に向上しています。
比較#

他の最先端検出器との比較:
- YOLOv10s / xは、同程度の精度でRT-DETR-R18 / R101より1.8倍 / 1.3倍高速です
- YOLOv10bは、同じ精度でYOLOv9-Cよりパラメーター数が25%少なく、レイテンシが46%低くなっています
- YOLOv10l / xは、パラメーター数が1.8倍 / 2.3倍少ないにもかかわらず、YOLOv8l / xを0.3 AP / 0.5 AP上回ります
以下の図は、YOLOv10 論文で報告されているものであり、同論文独自のプロトコルで測定されています。そのため、Ultralyticsのモデルページに掲載されている値と直接比較することはできません。
| モデル | パラメーター (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 |
Paramsと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モデルシリーズは、高性能な物体検出向けにそれぞれ最適化された、さまざまなモデルを提供します。これらのモデルは計算要件と精度要件の違いに対応しており、幅広いアプリケーションで柔軟に利用できます。
| モデル | ファイル名 | タスク | トレーニング | 検証 | 推論 | エクスポート |
|---|---|---|---|---|---|---|
| YOLOv10 | yolov10n.pt yolov10s.pt yolov10m.pt yolov10b.pt yolov10l.pt yolov10x.pt | オブジェクト検出 | ✅ | ✅ | ✅ | ✅ |
YOLOv10のエクスポート#
YOLOv10で導入された新しい演算のため、Ultralyticsが提供するすべてのエクスポート形式が現在サポートされているわけではありません。次の表は、YOLOv10向けにUltralyticsを使用して正常に変換された形式を示しています。YOLOv10で追加形式のエクスポートをサポートするための変更への貢献を提供できる場合は、プルリクエストを作成してください。
| エクスポート形式 | エクスポートサポート | エクスポート済みモデルの推論 | 注記 |
|---|---|---|---|
| TorchScript | ✅ | ✅ | 標準のPyTorchモデル形式です。 |
| ONNX | ✅ | ✅ | デプロイで広くサポートされています。 |
| OpenVINO | ✅ | ✅ | Intelハードウェア向けに最適化されています。 |
| TensorRT | ✅ | ✅ | NVIDIA GPU向けに最適化されています。 |
| CoreML | ✅ | ✅ | Appleデバイスに限定されます。 |
| TF SavedModel | ✅ | ✅ | TensorFlowの標準モデル形式です。 |
| TF GraphDef | ✅ | ✅ | TensorFlowのレガシー形式です。 |
| LiteRT | ✅ | ✅ | モバイル、組み込み環境、ブラウザー(LiteRT.js)向けに最適化されています。 |
| TF Edge TPU | ✅ | ✅ | GoogleのEdge TPUデバイス専用です。 |
| PaddlePaddle | ❌ | ❌ | 中国で人気がありますが、グローバルなサポートは限定的です。 |
| NCNN | ✅ | ❌ | torch.topk オペレーターは NCNN ランタイムではサポートされていません。 |
まとめ#
YOLOv10は、従来のYOLOバージョンの課題に対処し、革新的な設計戦略を取り入れることで、リリース時点のリアルタイム物体検出における新たな基準を打ち立てました。NMSを使用しないアプローチにより、YOLOファミリーにおけるエンドツーエンド物体検出を先駆けて実現しました。性能が向上し、NMSを使用しない推論に対応した最新のUltralyticsモデルについては、YOLO26をご覧ください。
引用と謝辞#
Tsinghua UniversityのYOLOv10著者の皆様による広範な研究と、Ultralyticsフレームワークへの多大な貢献に感謝いたします。
@inproceedings{wang2024yolov10,
title={YOLOv10: Real-Time End-to-End Object Detection},
author={Wang, Ao and Chen, Hui and Liu, Lihao and Chen, Kai and Lin, Zijia and Han, Jungong and Ding, Guiguang},
booktitle={Advances in Neural Information Processing Systems},
doi = {10.52202/079017-3429},
url = {https://proceedings.neurips.cc/paper_files/paper/2024/file/c34ddd05eb089991f06f3c5dc36836e0-Paper-Conference.pdf},
volume={37},
pages={107984--108011},
year={2024}
}実装の詳細、アーキテクチャ上の革新、実験結果については、Tsinghua UniversityチームによるYOLOv10のresearch paperとGitHub repositoryをご参照ください。
FAQ#
Tsinghua Universityの研究者によって開発されたYOLOv10は、リアルタイム物体検出にいくつかの重要な革新をもたらします。トレーニング時に一貫性のあるデュアル割り当てを採用し、優れた性能と計算オーバーヘッドの削減を実現する最適化されたモデルコンポーネントを使用することで、最大抑制(NMS)の必要性を排除しています。アーキテクチャと主な機能の詳細については、YOLOv10 overviewセクションをご覧ください。
簡単に推論を実行するには、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()その他の使用例については、Usage Examplesセクションをご覧ください。
YOLOv10には、さまざまな用途に対応する複数のモデルバリアントがあります。
- YOLOv10n: 極めてリソースが限られた環境に適しています
- YOLOv10s: 速度と精度のバランスに優れています
- YOLOv10m: 汎用的な用途に適しています
- YOLOv10b: ネットワーク幅を広げることで、より高い精度を実現します
- YOLOv10l: 計算リソースを要する代わりに、高い精度を実現します
- YOLOv10x: 最高レベルの精度と性能を実現します
各バリアントは、異なる計算要件と精度要件に対応するよう設計されているため、さまざまなアプリケーションで柔軟に利用できます。詳細については、Model Variantsセクションをご覧ください。
YOLOv10は一貫したデュアルアサインメントでトレーニングを行うため、1対1ヘッドがオブジェクトごとに最適な予測を1つ生成し、推論時の非最大値抑制(NMS)が不要になります。Ultralyticsの予測および検証では、NMSを使用する1対多ヘッドがデフォルトとなっています。NMSフリーのヘッドを選択してNMSパスを省略するには、
nms=Falseを設定してください。詳細な解説については、一貫したデュアルアサインメントによるNMSフリー学習のセクションをご覧ください。YOLOv10は、TorchScript、ONNX、OpenVINO、TensorRTなど、複数のエクスポート形式をサポートしています。ただし、新しい演算のため、Ultralyticsが提供するすべてのエクスポート形式が現在YOLOv10でサポートされているわけではありません。サポートされている形式とエクスポート手順の詳細については、Exporting YOLOv10セクションをご覧ください。
YOLOv10は、精度と効率の両方において、従来のYOLOバージョンやその他の最先端モデルを上回ります。たとえば、YOLOv10sは、COCOデータセット上で同程度のAPを維持しながら、RT-DETR-R18より1.8倍高速です。YOLOv10bは、同等の性能でありながら、YOLOv9-Cよりレイテンシが46%低く、パラメーター数が25%少なくなっています。詳細なベンチマークについては、Comparisonsセクションをご覧ください。