Meet YOLO26: next-gen vision AI.

Link to this sectionYOLOv10: リアルタイム・エンドツーエンド物体検出#

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.

YOLOv10 NMSフリー学習のための整合性のある二重割り当て



Watch: How to Train YOLOv10 on SKU-110k Dataset using Ultralytics | Retail Dataset

Link to this section概要#

リアルタイム物体検出の目的は、画像内の物体カテゴリと位置を低遅延で正確に予測することです。YOLOシリーズは、パフォーマンスと効率のバランスの良さから、この研究分野の最前線に位置してきました。しかし、NMSへの依存とアーキテクチャの非効率性が、最適なパフォーマンスを妨げてきました。YOLOv10は、NMSフリー学習のためのconsistent dual assignments(整合性のある二重割り当て)と、効率と精度を重視した包括的なモデル設計戦略を導入することで、これらの課題に対処しています。

Link to this sectionアーキテクチャ#

YOLOv10のアーキテクチャは、これまでのYOLOモデルの強みを基盤としつつ、いくつかの主要な革新を導入しています。モデルのアーキテクチャは以下のコンポーネントで構成されています。

  1. Backbone: 特徴抽出を担当するYOLOv10のバックボーンは、CSPNet(Cross Stage Partial Network)の改良版を使用しており、勾配フローを改善し、計算の冗長性を削減しています。
  2. Neck: ネックは、さまざまなスケールの特徴を集約し、ヘッドに渡すように設計されています。効果的なマルチスケール特徴融合のためのPAN(Path Aggregation Network)レイヤーが含まれています。
  3. One-to-Many Head: 学習中に物体ごとに複数の予測を生成し、豊富な教師信号を提供して学習精度を向上させます。
  4. One-to-One Head: 推論中に物体ごとに最適な予測を1つだけ生成することで、NMSの必要性を排除し、それによって遅延を削減し効率を向上させます。

Link to this section主な特徴#

  1. NMS-Free Training: 整合性のある二重割り当てを利用してNMSの必要性を排除し、推論遅延を削減します。
  2. Holistic Model Design: 軽量な分類ヘッド、空間チャネル分離ダウンサンプリング、ランク誘導ブロック設計など、効率と精度の両方の観点からさまざまなコンポーネントを包括的に最適化しています。
  3. Enhanced Model Capabilities: 大規模カーネル畳み込みと部分的な自己注意モジュールを組み込むことで、計算コストを大幅に増やすことなくパフォーマンスを向上させます。

Link to this sectionモデルのバリエーション#

YOLOv10には、さまざまなアプリケーションのニーズに対応するために、複数のモデルスケールが用意されています。

  • YOLOv10n: リソースが極めて制限された環境向けのナノバージョン。
  • YOLOv10s: 速度と精度のバランスが取れたスモールバージョン。
  • YOLOv10m: 汎用的なミディアムバージョン。
  • YOLOv10b: 精度の向上のために幅を広げたバランスのとれたバージョン。
  • YOLOv10l: 計算リソースの増加を犠牲にして、より高い精度を実現するラージバージョン。
  • YOLOv10x: 最大限の精度とパフォーマンスを実現するエクストララージバージョン。

Link to this section性能#

YOLOv10は、精度と効率の面で従来のYOLOバージョンや他の最先端モデルを上回っています。例えば、YOLOv10sはRT-DETR-R18と比較して、COCOデータセットで同等のAPを持ちながら1.8倍高速であり、YOLOv10bはYOLOv9-Cと同じパフォーマンスを維持しながら、遅延が46%少なく、パラメータ数が25%少なくなっています。

性能

T4 GPU上でTensorRT FP16を使用して測定された遅延。

モデル入力サイズAPvalFLOPs (G)遅延 (ms)
[YOLOv10n][1]64038.56.71.84
[YOLOv10s][2]64046.321.62.49
[YOLOv10m][3]64051.159.14.74
[YOLOv10b][4]64052.592.05.74
[YOLOv10l][5]64053.2120.37.28
[YOLOv10x][6]64054.4160.410.70

Link to this section手法#

Link to this sectionNMSフリー学習のための整合性のある二重割り当て#

YOLOv10は二重ラベル割り当てを採用しており、学習中にOne-to-ManyとOne-to-Oneの戦略を組み合わせることで、豊かな教師情報と効率的なエンドツーエンドのデプロイを保証します。整合性のあるマッチングメトリックにより、両方の戦略間の教師情報を調整し、推論時の予測品質を向上させます。

Link to this section効率と精度を重視した包括的なモデル設計#

Link to this section効率の向上#

  1. Lightweight Classification Head: デプスワイズ分離畳み込みを使用することで、分類ヘッドの計算オーバーヘッドを削減します。
  2. Spatial-Channel Decoupled Down sampling: 空間縮小とチャネル変調を分離することで、情報損失と計算コストを最小限に抑えます。
  3. Rank-Guided Block Design: 本質的なステージの冗長性に基づいてブロック設計を適応させ、最適なパラメータ利用を確保します。

Link to this section精度の向上#

  1. Large-Kernel Convolution: 受容野を拡大し、特徴抽出能力を向上させます。
  2. Partial Self-Attention (PSA): 自己注意モジュールを組み込み、最小限のオーバーヘッドでグローバルな表現学習を改善します。

Link to this section実験と結果#

YOLOv10はCOCOのような標準的なベンチマークで広範囲にテストされており、優れたパフォーマンスと効率を実証しています。モデルはさまざまなバリエーション全体で最先端の結果を達成しており、以前のバージョンや他の現代的な検出器と比較して、遅延と精度の面で大幅な改善を示しています。

Link to this section比較#

YOLOv10とSOTA物体検出器の比較

他の最先端検出器との比較:

  • 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のバリエーションと他の最先端モデルの詳細な比較です。

モデルパラメータ
(M)
FLOPs
(G)
mAPval
50-95
遅延
(ms)
遅延-forward
(ms)
YOLOv6-3.0-N4.711.437.02.691.76
Gold-YOLO-N5.612.139.62.921.82
YOLOv8n3.28.737.36.161.77
YOLOv10n2.36.739.51.841.79
YOLOv6-3.0-S18.545.344.33.422.35
Gold-YOLO-S21.546.045.43.822.73
YOLOv8s11.228.644.97.072.33
YOLOv10s7.221.646.82.492.39
RT-DETR-R1820.060.046.54.584.49
YOLOv6-3.0-M34.985.849.15.634.56
Gold-YOLO-M41.387.549.86.385.45
YOLOv8m25.978.950.69.505.09
YOLOv10m15.459.151.34.744.63
YOLOv6-3.0-L59.6150.751.89.027.90
Gold-YOLO-L75.1151.751.810.659.78
YOLOv8l43.7165.252.912.398.06
RT-DETR-R5042.0136.053.19.209.07
YOLOv10l24.4120.353.47.287.21
YOLOv8x68.2257.853.916.8612.83
RT-DETR-R10176.0259.054.313.7113.58
YOLOv10x29.5160.454.410.7010.60

ParamsおよびFLOPsの値は、Conv層とBatchNorm層を結合し、補助的なone-to-many検出ヘッドを削除した model.fuse() 後のフューズドモデルに対するものです。事前学習済みチェックポイントはトレーニング用の全アーキテクチャを保持しているため、より大きな値を示す場合があります。

Link to this section使用例#

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)

Link to this sectionサポートされるタスクとモード#

YOLOv10モデルシリーズは、高性能なObject Detection(物体検出)向けに最適化された様々なモデルを提供しています。これらのモデルは、計算上のニーズや精度の要件に応じて幅広く対応でき、多種多様なアプリケーションで活用可能です。

モデルファイル名タスク推論バリデーショントレーニングエクスポート
YOLOv10yolov10n.pt yolov10s.pt yolov10m.pt yolov10l.pt yolov10x.ptオブジェクト検出

Link to this sectionYOLOv10のエクスポート#

YOLOv10で導入された新しい操作により、Ultralyticsが提供するすべてエクスポートフォーマットが現在サポートされているわけではありません。以下の表は、Ultralyticsを使用してYOLOv10の変換に成功したフォーマットの概要です。YOLOv10用に追加フォーマットのエクスポートサポートを提供するための貢献が可能な場合は、ぜひプルリクエストを作成してください。

エクスポートフォーマットエクスポートサポートエクスポート済みモデルの推論注意点
TorchScript標準的なPyTorchモデルフォーマット。
ONNXデプロイメントに広く対応しています。
OpenVINOIntelハードウェア向けに最適化されています。
TensorRTNVIDIA GPU向けに最適化されています。
CoreMLAppleデバイスに限定されます。
TF SavedModelTensorFlowの標準モデルフォーマット。
TF GraphDefレガシーなTensorFlowフォーマットです。
TF Liteモバイルおよび組み込み向けに最適化されています。
TF Edge TPUGoogleのEdge TPUデバイス専用です。
TF.jsブラウザで使用するためのJavaScript環境。
PaddlePaddle中国で普及しており、グローバルでのサポートは限定的です。
NCNNレイヤー torch.topk が存在しないか、登録されていません

Link to this section結論#

YOLOv10は、従来のYOLOバージョンの欠点に対処し、革新的な設計戦略を組み込むことで、リリース時にリアルタイム物体検出の新しい標準を確立しました。そのNMSフリーのアプローチは、YOLOファミリーにおけるエンドツーエンド物体検出の先駆けとなりました。パフォーマンスが向上し、NMSフリーの推論を実現した最新のUltralyticsモデルについては、YOLO26をご覧ください。

Link to this section引用と謝辞#

Tsinghua UniversityのYOLOv10の著者による広範な研究と、Ultralyticsフレームワークへの多大な貢献に感謝いたします:

引用
@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リポジトリをご参照ください。

Link to this sectionよくある質問 (FAQ)#

Link to this sectionYOLOv10とは何ですか?また、以前のYOLOバージョンとどのように異なりますか?#

Tsinghua Universityの研究者によって開発されたYOLOv10は、リアルタイム物体検出にいくつかの主要な革新をもたらしました。トレーニング中に一貫したデュアルアサインメントを採用し、計算オーバーヘッドを削減しつつ優れたパフォーマンスを発揮するようにモデルコンポーネントを最適化することで、非最大値抑制(NMS)を不要にしています。アーキテクチャと主な特徴の詳細については、YOLOv10の概要セクションをご確認ください。

Link to this sectionYOLOv10を使用して推論を開始するにはどうすればよいですか?#

簡単に推論を行うには、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()

その他の使用例については、使用例セクションをご覧ください。

Link to this sectionYOLOv10はどのようなモデルバリエーションを提供しており、それぞれのユースケースは何ですか?#

YOLOv10は、様々なユースケースに対応するため、いくつかのモデルバリエーションを提供しています:

  • YOLOv10n: 非常にリソースが制限された環境に適しています
  • YOLOv10s: 速度と精度のバランスが取れています
  • YOLOv10m: 一般的な用途向けです
  • YOLOv10b: 幅を広げた高精度モデルです
  • YOLOv10l: 計算リソースを消費しますが、高い精度を実現します
  • YOLOv10x: 最大限の精度とパフォーマンスを実現します

各バリエーションは異なる計算ニーズと精度の要件に合わせて設計されており、多種多様なアプリケーションに対応可能です。詳細については、モデルバリエーションセクションをご覧ください。

Link to this sectionYOLOv10のNMSフリーアプローチは、どのようにパフォーマンスを向上させますか?#

YOLOv10は、トレーニング用に一貫したデュアルアサインメントを採用することで、推論中の非最大値抑制(NMS)を不要にしました。このアプローチにより、推論の遅延が短縮され、予測効率が向上します。また、推論用に1対1のヘッドを搭載しており、各オブジェクトに対して単一の最適な予測がなされるようになっています。詳細な説明については、NMSフリートレーニング向けの一貫したデュアルアサインメントセクションをご覧ください。

Link to this sectionYOLOv10モデルのエクスポートオプションはどこで確認できますか?#

YOLOv10は、TorchScript、ONNX、OpenVINO、TensorRTなど、いくつかのエクスポートフォーマットをサポートしています。ただし、YOLOv10で導入された新しい操作により、Ultralyticsが提供するすべてエクスポートフォーマットが現在サポートされているわけではありません。サポートされているフォーマットの詳細とエクスポートの手順については、YOLOv10のエクスポートセクションをご覧ください。

Link to this sectionYOLOv10モデルのパフォーマンスベンチマークはどのようになっていますか?#

YOLOv10は、精度と効率の両面で、以前のYOLOバージョンや他の最先端モデルを上回っています。例えば、YOLOv10sは、COCOデータセットにおいて同等のAPを維持しながら、RT-DETR-R18よりも1.8倍高速です。YOLOv10bは、YOLOv9-Cと比較して、パフォーマンスは同等ながら、遅延が46%少なく、パラメータ数が25%少なくなっています。詳細なベンチマークは、比較セクションで確認できます。

コメント