Meituan YOLOv6#
概要#
2022年にリリースされたMeituan YOLOv6は、速度と精度のバランスに優れており、リアルタイムアプリケーションで広く利用されています。このモデルでは、双方向連結(BiC)モジュールの実装、アンカー支援トレーニング(AAT)戦略、高精度なCOCOデータセット処理を実現する改良されたバックボーンおよびネック設計など、アーキテクチャとトレーニング方式にいくつかの注目すべき改良が導入されています。
YOLOv6の概要。 大幅な性能向上につながった、再設計されたネットワークコンポーネントとトレーニング戦略を示すモデルアーキテクチャ図です。(a) YOLOv6のネック(NおよびSを表示)。M/Lでは、RepBlocksがCSPStackRepに置き換えられる点に注意してください。(b) BiCモジュールの構造。(c) SimCSPSPPFブロック。(出典)。
主な特徴#
- 双方向連結(BiC)モジュール: YOLOv6では検出器のネックにBiCモジュールを導入し、位置特定シグナルを強化するとともに、速度をほとんど低下させることなく性能を向上させています。
- アンカー支援トレーニング(AAT)戦略: このモデルでは、推論効率を損なうことなく、アンカーベース方式とアンカーフリー方式の両方の利点を得るためにAATを提案しています。
- 強化されたバックボーンおよびネック設計: YOLOv6のバックボーンとネックに別のステージを追加して深層化することで、リリース時に高解像度入力でCOCOデータセットに対して優れた性能を達成しました。
- 自己蒸留戦略: YOLOv6の小規模モデルの性能を向上させるため、新しい自己蒸留戦略を実装しています。トレーニング中は補助回帰ブランチを強化し、推論時には顕著な速度低下を避けるために削除します。
性能指標#
YOLOv6には、さまざまなスケールの事前学習済みモデルが用意されています。
- YOLOv6-N: NVIDIA T4 GPUでCOCO val2017において37.5% AP、1187 FPS。
- YOLOv6-S: 45.0% AP、484 FPS。
- YOLOv6-M: 50.0% AP、226 FPS。
- YOLOv6-L: 52.8% AP、116 FPS。
- YOLOv6-L6: リアルタイム処理で最先端の精度。
YOLOv6には、さまざまな精度に対応した量子化モデルと、モバイルプラットフォーム向けに最適化されたモデルも用意されています。
使用例#
この例では、YOLOv6のシンプルなトレーニングおよび推論の例を紹介します。これらの機能やその他のモードの完全なドキュメントについては、Predict、Train、Val、Exportのドキュメントページを参照してください。
YOLOv6の*.yamlファイルをYOLO()クラスに渡すことで、Pythonで対応するモデルを構築できます。
from ultralytics import YOLO
# Build a YOLOv6n model from scratch
model = YOLO("yolov6n.yaml")
# Display model information (optional)
model.info()
# Train the model on the COCO8 example dataset for 100 epochs
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Run inference with the YOLOv6n model on the 'bus.jpg' image
results = model("path/to/bus.jpg")サポートされるタスクとモード#
YOLOv6シリーズには、高性能な物体検出向けにそれぞれ最適化されたさまざまなモデルが用意されています。これらのモデルは、異なる計算要件と精度要件に対応しており、幅広いアプリケーションで柔軟に利用できます。
| モデル | ファイル名 | タスク | トレーニング | 検証 | 推論 | エクスポート |
|---|---|---|---|---|---|---|
| YOLOv6-N | yolov6n.yaml | 物体検出 | ✅ | ✅ | ✅ | ✅ |
| YOLOv6-S | yolov6s.yaml | 物体検出 | ✅ | ✅ | ✅ | ✅ |
| YOLOv6-M | yolov6m.yaml | 物体検出 | ✅ | ✅ | ✅ | ✅ |
| YOLOv6-L | yolov6l.yaml | 物体検出 | ✅ | ✅ | ✅ | ✅ |
| YOLOv6-X | yolov6x.yaml | 物体検出 | ✅ | ✅ | ✅ | ✅ |
この表では、YOLOv6のモデルバリエーションの詳細な概要を示し、物体検出タスクにおける性能と、推論、検証、トレーニング、エクスポートなど、さまざまな運用モードとの互換性を取り上げています。この包括的なサポートにより、さまざまな物体検出シナリオでYOLOv6モデルの機能を最大限に活用できます。
引用と謝辞#
リアルタイム物体検出分野に多大な貢献をされた著者の皆様に謝意を表します。
@misc{li2023yolov6,
title={YOLOv6 v3.0: A Full-Scale Reloading},
author={Chuyi Li and Lulu Li and Yifei Geng and Hongliang Jiang and Meng Cheng and Bo Zhang and Zaidan Ke and Xiaoming Xu and Xiangxiang Chu},
year={2023},
eprint={2301.05586},
archivePrefix={arXiv},
primaryClass={cs.CV}
}YOLOv6の原著論文はarXivでご覧いただけます。著者は研究成果を一般公開しており、コードベースはGitHubからアクセスできます。分野の発展に貢献し、研究成果をより広いコミュニティに公開された著者の取り組みに感謝します。
FAQ#
2022年にリリースされたMeituan YOLOv6は、速度と精度のバランスに優れた、リアルタイムアプリケーション向けに設計された物体検出器です。双方向連結(BiC)モジュールやアンカー支援トレーニング(AAT)戦略など、注目すべきアーキテクチャ上の改良を備えています。これらの革新により、速度を最小限しか低下させずに大幅な性能向上を実現しており、YOLOv6は物体検出タスクにおける競争力の高い選択肢となっています。
シンプルなPythonまたはCLIコマンドを使用して、UltralyticsでYOLOv6モデルをトレーニングできます。たとえば、次のように実行します。
例from ultralytics import YOLO # Build a YOLOv6n model from scratch model = YOLO("yolov6n.yaml") # Train the model on the COCO8 example dataset for 100 epochs results = model.train(data="coco8.yaml", epochs=100, imgsz=640)詳細については、Trainページを参照してください。
YOLOv6には、異なる性能要件に合わせて最適化された複数のバージョンがあります。
- YOLOv6-N: 37.5% AP、1187 FPS
- YOLOv6-S: 45.0% AP、484 FPS
- YOLOv6-M: 50.0% AP、226 FPS
- YOLOv6-L: 52.8% AP、116 FPS
- YOLOv6-L6: リアルタイムシナリオで最先端の精度
これらのモデルは、NVIDIA T4 GPUを使用してCOCOデータセットで評価されています。性能指標の詳細については、性能指標のセクションを参照してください。
YOLOv6のアンカー支援トレーニング(AAT)は、アンカーベース方式とアンカーフリー方式の要素を組み合わせ、推論効率を損なうことなくモデルの検出能力を高めます。この戦略では、トレーニング中にアンカーを活用してバウンディングボックスの予測を改善するため、YOLOv6はさまざまな物体検出タスクで効果を発揮します。
YOLOv6は、推論、検証、トレーニング、エクスポートなど、さまざまな運用モードをサポートしています。この柔軟性により、さまざまなシナリオでモデルの機能を最大限に活用できます。各モードの詳細な概要については、サポートされているタスクとモードのセクションを確認してください。