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においてAP 37.5%、1187 FPS。
- YOLOv6-S:AP 45.0%、484 FPS。
- YOLOv6-M:AP 50.0%、226 FPS。
- YOLOv6-L:AP 52.8%、116 FPS。
- YOLOv6-L6:リアルタイム処理で最先端の精度を実現。
YOLOv6には、さまざまな精度に対応した量子化モデルや、モバイルプラットフォーム向けに最適化されたモデルも用意されています。
使用例#
この例では、YOLOv6の学習と推論の基本的な例を紹介します。これらのモードやその他のモードの詳しいドキュメントについては、Predict、Train、Val、Exportの各ドキュメントページをご覧ください。
YOLOv6の*.yamlファイルをYOLO()クラスに渡すと、Pythonで対応するモデルを構築できます。
from ultralytics import YOLO
# YOLOv6nモデルをスクラッチから構築する
model = YOLO("yolov6n.yaml")
# モデル情報を表示(任意)
model.info()
# COCO8サンプルデータセットでモデルを100エポック学習する
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# 'bus.jpg'画像でYOLOv6nモデルによる推論を実行する
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からアクセスできます。分野の発展に尽力し、幅広いコミュニティが研究成果を利用できるようにしたことに感謝します。
よくある質問#
2022年にリリースされたMeituan YOLOv6は、リアルタイムアプリケーション向けに設計された、速度と精度のバランスに優れた物体検出器です。双方向連結(BiC)モジュールやアンカー支援学習(AAT)戦略など、注目すべきアーキテクチャ上の改良を備えています。これらの技術革新により、速度の低下を最小限に抑えながら大幅な性能向上を実現し、YOLOv6は物体検出タスクにおいて有力な選択肢となっています。
簡単なPythonコマンドまたはCLIコマンドで、Ultralyticsを使ってYOLOv6モデルを学習できます。例:
例from ultralytics import YOLO # YOLOv6nモデルをスクラッチから構築する model = YOLO("yolov6n.yaml") # COCO8サンプルデータセットでモデルを100エポック学習する results = model.train(data="coco8.yaml", epochs=100, imgsz=640)詳細については、Trainページをご覧ください。
YOLOv6には、異なる性能要件に合わせて最適化された複数のバージョンがあります。
- YOLOv6-N:AP 37.5%、1187 FPS
- YOLOv6-S:AP 45.0%、484 FPS
- YOLOv6-M:AP 50.0%、226 FPS
- YOLOv6-L:AP 52.8%、116 FPS
- YOLOv6-L6:リアルタイムシナリオで最先端の精度を実現
これらのモデルは、NVIDIA T4 GPUを使用してCOCOデータセットで評価されています。性能指標の詳細については、性能指標のセクションをご覧ください。
YOLOv6のアンカー支援学習(AAT)は、アンカーベースとアンカーフリーの手法を組み合わせ、推論効率を損なわずにモデルの検出能力を高めます。この戦略では学習中にアンカーを活用してバウンディングボックスの予測精度を向上させるため、YOLOv6は多様な物体検出タスクで効果を発揮します。
YOLOv6は、推論、検証、学習、エクスポートなど、さまざまな運用モードに対応しています。この柔軟性により、さまざまなシナリオでモデルの機能を最大限に活用できます。各モードの詳しい概要については、サポート対象のタスクとモードのセクションをご覧ください。