コンテンツへスキップ

YOLOv10: リアルタイムのエンド・ツー・エンド物体検出

YOLOv10は UltralyticsPython YOLOv10は、 清華大学の研究者によりパッケージ化され、リアルタイムの物体検出に新しいアプローチを導入し、以前のバージョン(YOLO )で見られた後処理とモデルアーキテクチャの両方の欠陥に対処しています。非最大抑制(NMS)を排除し、様々なモデルコンポーネントを最適化することで、YOLOv10は、計算オーバーヘッドを大幅に削減しながら、最先端の性能を達成している。広範な実験により、複数のモデルスケールにわたって、その優れた精度と遅延のトレードオフが実証されています。

YOLOv10の一貫したデュアルアサインによるNMSフリートレーニング

概要

リアルタイム物体検出は、画像中の物体のカテゴリと位置を低遅延で正確に予測することを目的としている。YOLO シリーズは、性能と効率のバランスの良さから、この研究の最前線に立ってきた。しかし、NMSへの依存とアーキテクチャの非効率性が、最適な性能を妨げてきた。YOLOv10は、NMSを使用しないトレーニングのための一貫したデュアル割り当てと、全体的な効率-精度主導のモデル設計戦略を導入することで、これらの問題に対処しています。

建築

YOLOv10のアーキテクチャーは、いくつかの重要な革新的技術を導入しながらも、以前のモデル(YOLO )の長所を基に構築されている。モデル・アーキテクチャは以下のコンポーネントで構成されている:

  1. バックボーン:特徴抽出を担当するYOLOv10のバックボーンは、勾配フローを改善し、計算の冗長性を削減するために、CSPNet(Cross Stage Partial Network)の強化バージョンを使用している。
  2. Neck: The neck is designed to aggregate features from different scales and passes them to the head. It includes PAN (Path Aggregation Network) layers for effective multi-scale feature fusion.
  3. One-to-Many Head: トレーニング中にオブジェクトごとに複数の予測を生成し、豊富な監視信号を提供し、学習精度を向上させます。
  4. One-to-Oneヘッド:推論中にオブジェクトごとに最良の予測を1つ生成し、NMSを不要にすることで、待ち時間を短縮し、効率を向上させる。

主な特徴

  1. NMSフリートレーニング:一貫したデュアル割り当てを利用してNMSの必要性を排除し、推論の待ち時間を短縮。
  2. 全体的なモデル設計:軽量分類ヘッド、空間チャンネル分離ダウンサンプリング、ランクガイド付きブロック設計など、効率と精度の両面から様々なコンポーネントを包括的に最適化。
  3. モデル機能の強化:大きなカーネル畳み込みと部分的な自己アテンションモジュールを組み込み、大きな計算コストをかけずにパフォーマンスを向上。

モデルバリエーション

YOLOv10には、さまざまな用途のニーズに応えるため、さまざまなモデルスケールがある:

  • YOLOv10-N:リソースが極端に制限された環境向けのナノバージョン。
  • YOLOv10-S:スピードと精度をバランスさせた小型バージョン。
  • YOLOv10-M:汎用ミディアムバージョン。
  • YOLOv10-B:精度を高めるために幅を広げたバランス・バージョン。
  • YOLOv10-L:計算リソースを増やす代わりに精度を高めた大型バージョン。
  • YOLOv10-X:最高の精度と性能を誇る特大バージョン。

パフォーマンス

YOLOv10は、YOLO の旧バージョンや他の最先端モデルを、精度と効率の面で上回っている。例えば、YOLOv10-Sは、COCOデータセットにおいて、同様のAPでRT-DETR-R18より1.8倍高速であり、YOLOv10-Bは、同じ性能でYOLOv9-Cよりレイテンシが46%少なく、パラメータが25%少ない。

モデル 入力サイズ エーピーバル フロップ数(G) 待ち時間 (ms)
YOLOv10-N 640 38.5 6.7 1.84
YOLOv10-S 640 46.3 21.6 2.49
YOLOv10-M 640 51.1 59.1 4.74
YOLOv10-B 640 52.5 92.0 5.74
YOLOv10-L 640 53.2 120.3 7.28
YOLOv10-X 640 54.4 160.4 10.70

T4 GPU上のTensorRT FP16で測定したレイテンシ。

方法論

NMSを使わないトレーニングのための一貫した二重割り当て

YOLOv10は、豊富な監視と効率的なエンド・ツー・エンドの展開を保証するために、学習中に一対多と一対一の戦略を組み合わせた二重のラベル割り当てを採用している。一貫性のあるマッチングメトリックは、両ストラテジー間の監視を整列させ、推論時の予測品質を向上させる。

全体的な効率と精度を重視したモデル設計

効率性の向上

  1. 軽量分類ヘッド:深さ方向に分離可能な畳み込みを使用することで、分類ヘッドの計算オーバーヘッドを削減。
  2. 空間-チャンネル分離ダウンサンプリング:空間縮小とチャネル変調を切り離し、情報損失と計算コストを最小限に抑える。
  3. ランク誘導型ブロック設計:内在するステージの冗長性に基づいてブロック設計を適応し、最適なパラメータ利用を保証します。

精度の向上

  1. ラージカーネル畳み込み:受容野を拡大して特徴抽出能力を高める。
  2. パーシャルセルフアテンション(PSA):セルフアテンションモジュールを組み込むことで、オーバーヘッドを最小限に抑えながらグローバル表現学習を改善。

実験と結果

YOLOv10は、COCOのような標準的なベンチマークで広範囲にテストされ、優れた性能と効率を実証しています。YOLOv10は、様々なバリエーションにおいて最先端の結果を達成しており、旧バージョンや他の最新ディテクターと比較して、レイテンシーと精度が大幅に改善されています。

比較

YOLOv10とSOTA天体検出器の比較

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

  • YOLOv10-S / Xは、RT-DETR-R18 / R101と同程度の精度で、1.8倍 / 1.3倍高速である。
  • YOLOv10-BはYOLOv9-Cに比べ、同じ精度で25%少ないパラメータと46%低いレイテンシを実現。
  • YOLOv10-L / Xは、YOLOv8-L / Xを1.8倍 / 2.3倍少ないパラメータで0.3AP / 0.5AP上回る。

ここでは、YOLOv10のバリエーションと他の最新モデルを詳細に比較する:

モデル パラメータ (M) フロップ数(G) APval (%) 待ち時間 (ms) レイテンシ(順方向) (ms)
YOLOv6-3.0-N 4.7 11.4 37.0 2.69 1.76
ゴールドYOLO-N 5.6 12.1 39.6 2.92 1.82
YOLOv8-N 3.2 8.7 37.3 6.16 1.77
YOLOv10-N 2.3 6.7 39.5 1.84 1.79
YOLOv6-3.0-S 18.5 45.3 44.3 3.42 2.35
ゴールドYOLO-S 21.5 46.0 45.4 3.82 2.73
YOLOv8-S 11.2 28.6 44.9 7.07 2.33
YOLOv10-S 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
ゴールドYOLO-M 41.3 87.5 49.8 6.38 5.45
YOLOv8-M 25.9 78.9 50.6 9.50 5.09
YOLOv10-M 15.4 59.1 51.3 4.74 4.63
YOLOv6-3.0-L 59.6 150.7 51.8 9.02 7.90
ゴールドYOLO-L 75.1 151.7 51.8 10.65 9.78
YOLOv8-L 43.7 165.2 52.9 12.39 8.06
RT-DETR-R50 42.0 136.0 53.1 9.20 9.07
YOLOv10-L 24.4 120.3 53.4 7.28 7.21
YOLOv8-X 68.2 257.8 53.9 16.86 12.83
RT-DETR-R101 76.0 259.0 54.3 13.71 13.58
YOLOv10-X 29.5 160.4 54.4 10.70 10.60

使用例

YOLOv10で新しい画像を予測するために:

from ultralytics import YOLO

# Load a pre-trained 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)

サポートされるタスクとモード

The YOLOv10 models series offers a range of models, each optimized for high-performance Object Detection. These models cater to varying computational needs and accuracy requirements, making them versatile for a wide array of applications.

モデル ファイル名 タスク 推論 バリデーション トレーニング 輸出
YOLOv10 yolov10n.pt yolov10s.pt yolov10m.pt yolov10l.pt yolov10x.pt 物体検出 ✅ ✅ ✅ ✅

Exporting YOLOv10

Due to the new operations introduced with YOLOv10, not all export formats provided by Ultralytics are currently supported. The following table outlines which formats have been successfully converted using Ultralytics for YOLOv10. Feel free to open a pull request if you're able to provide a contribution change for adding export support of additional formats for YOLOv10.

Export Format Supported
TorchScript ✅
ONNX ✅
OpenVINO ✅
TensorRT ✅
CoreML ❌
TF SavedModel ❌
TF GraphDef ❌
TF ライト ❌
TF エッジTPU ❌
TF.js ❌
PaddlePaddle ❌
NCNN ❌

結論

YOLOv10は、YOLO の旧バージョンの欠点に対処し、革新的な設計戦略を取り入れることで、リアルタイムの物体検出における新たな基準を打ち立てました。低い計算コストで高精度を実現する能力により、実世界の幅広いアプリケーションに理想的な選択肢となっています。

引用と謝辞

清華大学の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}
}

詳細な実装、アーキテクチャ上の工夫、実験結果については、清華大学チームによるYOLOv10の研究論文と GitHubリポジトリを参照されたい。



Created 2024-05-25, Updated 2024-06-20
Authors: Burhan-Q (1), glenn-jocher (3), RizwanMunawar (2)

コメント