コンテンツぞスキップ

YOLOv10: リアルタむムの゚ンド・ツヌ・゚ンド物䜓怜出

YOLOv10は UltralyticsPython YOLOv10は、 枅華倧孊の研究者によりパッケヌゞ化され、リアルタむムの物䜓怜出に新しいアプロヌチを導入し、以前のバヌゞョンYOLO で芋られた埌凊理ずモデルアヌキテクチャの䞡方の欠陥に察凊しおいたす。非最倧抑制NMSを排陀し、様々なモデルコンポヌネントを最適化するこずで、YOLOv10は、蚈算オヌバヌヘッドを倧幅に削枛しながら、最先端の性胜を達成しおいる。広範な実隓により、耇数のモデルスケヌルにわたっお、その優れた粟床ず遅延のトレヌドオフが実蚌されおいたす。

YOLOv10の䞀貫したデュアルアサむンによるNMSフリヌトレヌニング

抂芁

リアルタむム物䜓怜出は、画像䞭の物䜓のカテゎリず䜍眮を䜎遅延で正確に予枬するこずを目的ずしおいる。YOLO シリヌズは、性胜ず効率のバランスの良さから、この研究の最前線に立っおきた。しかし、NMSぞの䟝存ずアヌキテクチャの非効率性が、最適な性胜を劚げおきた。YOLOv10は、NMSを䜿甚しないトレヌニングのための䞀貫したデュアル割り圓おず、党䜓的な効率-粟床䞻導のモデル蚭蚈戊略を導入するこずで、これらの問題に察凊しおいたす。

建築

YOLOv10のアヌキテクチャヌは、いく぀かの重芁な革新的技術を導入しながらも、以前のモデルYOLO の長所を基に構築されおいる。モデル・アヌキテクチャは以䞋のコンポヌネントで構成されおいる

  1. バックボヌン特城抜出を担圓するYOLOv10のバックボヌンは、募配フロヌを改善し、蚈算の冗長性を削枛するために、CSPNetCross Stage Partial Networkの匷化バヌゞョンを䜿甚しおいる。
  2. ネック異なるスケヌルの特城を集玄し、ヘッドに枡すように蚭蚈されおいる。効果的なマルチスケヌル特城フュヌゞョンのためのPANPath Aggregation Networkレむダヌを含む。
  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

T4GPU 䞊の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のバリ゚ヌションず他の最新モデルを詳现に比范する

モデル Params
(M)
FLOPs
(G)
mAPval
50-95
埅ち時間
(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()
# Load a COCO-pretrained YOLOv10n model and run inference on the 'bus.jpg' image
yolo detect predict model=yolov10n.pt source=path/to/bus.jpg

カスタムデヌタセットで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)
# Build a YOLOv10n model from scratch and train it on the COCO8 example dataset for 100 epochs
yolo train model=yolov10n.yaml data=coco8.yaml epochs=100 imgsz=640

# Build a YOLOv10n model from scratch and run inference on the 'bus.jpg' image
yolo predict model=yolov10n.yaml source=path/to/bus.jpg

サポヌトされるタスクずモヌド

YOLOv10モデルシリヌズは、高性胜な物䜓怜出甚に最適化されたモデルを取り揃えおいたす。これらのモデルは、さたざたな蚈算ニヌズや粟床芁件に察応し、幅広いアプリケヌションに察応したす。

モデル ファむル名 タスク 掚論 バリデヌション トレヌニング 茞出
YOLOv10 yolov10n.pt yolov10s.pt yolov10m.pt yolov10l.pt yolov10x.pt 物䜓怜出 ✅ ✅ ✅ ✅

YOLOv10 の゚クスポヌト

YOLOv10で導入された新しい操䜜のため、Ultralytics が提䟛するすべおの゚クスポヌト圢匏が珟圚サポヌトされおいるわけではありたせん。以䞋の衚は、YOLOv10でUltralytics 、倉換に成功したフォヌマットの抂芁を瀺しおいたす。YOLOv10で远加フォヌマットの゚クスポヌトサポヌトを远加するための貢献倉曎を提䟛できる堎合は、遠慮なくプルリク゚ストを開いおください。

゚クスポヌト圢匏 サポヌト
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リポゞトリを参照されたい。

よくあるご質問

YOLOv10ずは䜕ですかたた、以前のバヌゞョンYOLO ずの違いは䜕ですか

枅華倧孊の研究者によっお開発されたYOLOv10は、リアルタむムの物䜓怜出にいく぀かの重芁な革新を導入しおいる。YOLOv10は、孊習䞭の䞀貫したデュアル割り圓おず最適化されたモデルコンポヌネントを採甚するこずで、非最倧抑制NMSの必芁性を排陀し、蚈算オヌバヌヘッドを削枛しながら優れたパフォヌマンスを実珟したす。アヌキテクチャず䞻芁機胜の詳现に぀いおは、YOLOv10の抂芁セクションをご芧ください。

YOLOv10を䜿っお掚論を始めるには

簡単に掚論を行うには、Ultralytics YOLO Python ラむブラリ、たたはコマンドラむンむンタヌフェヌス (CLI) を䜿甚するこずができたす。以䞋はYOLOv10を䜿っお新しい画像を予枬した䟋である

䟋

from ultralytics import YOLO

# Load the pre-trained YOLOv10-N model
model = YOLO("yolov10n.pt")
results = model("image.jpg")
results[0].show()
yolo detect predict model=yolov10n.pt source=path/to/image.jpg

その他の䜿甚䟋に぀いおは、䜿甚䟋のセクションをご芧ください。

YOLOv10にはどのようなモデルバリ゚ヌションがあり、どのような䜿甚䟋がありたすか

YOLOv10は、さたざたな䜿甚ケヌスに察応するため、いく぀かのモデルバリ゚ヌションを甚意しおいる

  • YOLOv10-Nリ゜ヌスが極端に制限された環境に最適
  • YOLOv10-Sスピヌドず粟床のバランス
  • YOLOv10-M䞀般甚
  • YOLOv10-B幅を広げるこずでより高い粟床を実珟
  • YOLOv10-L蚈算資源を犠牲にしおも高い粟床
  • YOLOv10-X最高の粟床ずパフォヌマンス

各バリアントは、異なる蚈算ニヌズず粟床芁件に合わせお蚭蚈されおいるため、さたざたなアプリケヌションに察応できたす。詳しくは、モデルバリ゚ヌションのセクションをご芧ください。

YOLOv10のNMSフリヌのアプロヌチはどのようにパフォヌマンスを向䞊させるのか

YOLOv10は、トレヌニングに䞀貫したデュアル割り圓おを採甚するこずで、掚論䞭の非最倧抑制NMSの必芁性を排陀しおいる。このアプロヌチは掚論の埅ち時間を短瞮し、予枬効率を向䞊させる。たた、このアヌキテクチャには掚論甚の1察1ヘッドが含たれおおり、各オブゞェクトが単䞀の最良予枬を埗るこずを保蚌したす。詳现な説明に぀いおは、「NMS-Freeトレヌニングのための䞀貫したデュアル割り圓お」のセクションを参照しおください。

YOLOv10モデルの゚クスポヌトオプションはどこにありたすか

YOLOv10は、TorchScript 、ONNX 、OpenVINO 、TensorRT を含むいく぀かの゚クスポヌト・フォヌマットをサポヌトしおいたす。しかし、Ultralytics が提䟛する゚クスポヌト・フォヌマットは、新しい操䜜のため、珟圚YOLOv10ではすべおサポヌトされおいるわけではありたせん。サポヌトされおいるフォヌマットの詳现ず゚クスポヌトの手順に぀いおは、YOLOv10の゚クスポヌトのセクションをご芧ください。

YOLOv10モデルのパフォヌマンスベンチマヌクは

YOLOv10は、粟床ず効率の䞡方においお、YOLO の旧バヌゞョンや他の最先端モデルを凌駕しおいる。䟋えば、YOLOv10-Sは、COCOデヌタセット䞊で同様のAPを持぀RT-DETR-R18よりも1.8倍高速である。YOLOv10-Bは、同じ性胜のYOLOv9-Cず比范しお、レむテンシが46%少なく、パラメヌタが25%少ない。詳现なベンチマヌクは、比范セクションにありたす。



䜜成日2024-05-25 曎新日2024-07-24
著者hasanghaffari93(1),glenn-jocher(5),zhixuwei(1),abirami-vina(1),RizwanMunawar(3),Burhan-Q(1)

コメント