Meituan YOLOv6
概要
2022年にリリースされたMeituan YOLOv6は、速度と精度の強力なバランスを提供し、リアルタイムアプリケーションで人気のある選択肢となっています。このモデルは、Bi-directional Concatenation (BiC)モジュールの実装、アンカー補助トレーニング (AAT) 戦略、およびCOCOデータセットでの高精度を実現するための改善されたバックボーンとネックデザインなど、そのアーキテクチャとトレーニングスキームにいくつかの注目すべき強化を導入しています。

YOLOv6の概要。 再設計されたネットワークコンポーネントとトレーニング戦略が大幅なパフォーマンス向上をもたらしたモデルアーキテクチャ図。(a) YOLOv6のネック(NとSを示す)。M/Lの場合、RepBlocksはCSPStackRepに置き換えられることに注意。(b) BiCモジュールの構造。(c) SimCSPSPPFブロック。(ソース)。
主な特徴
- 双方向連結 (BiC) モジュール: YOLOv6は、検出器のネックにBiCモジュールを導入し、局所化信号を強化し、速度のわずかな低下でパフォーマンス向上を実現します。
- Anchor-Aided Training (AAT) 戦略: このモデルは、推論効率を損なうことなく、anchor-basedとanchor-freeの両方のパラダイムの利点を享受するために、AATを提案します。
- 強化されたバックボーンとネックデザイン: YOLOv6のバックボーンとネックにもう1つのステージを追加して深くすることで、このモデルはリリース時に高解像度入力でCOCOデータセットにおいて強力な性能を達成しました。
- 自己蒸留戦略: YOLOv6の小型モデルのパフォーマンスを向上させるために、新しい自己蒸留戦略が実装されています。これにより、トレーニング中の補助回帰ブランチが強化され、推論時には速度の大幅な低下を避けるために削除されます。
パフォーマンス指標
YOLOv6は、異なるスケールの様々な事前学習済みモデルを提供しています。
- YOLOv6-N: NVIDIA T4 GPUで1187 FPSにおいてCOCO val2017で37.5%のAP。
- YOLOv6-S: 484 FPSにおいて45.0%のAP。
- YOLOv6-M: 226 FPSにおいて50.0%のAP。
- YOLOv6-L: 116 FPSにおいて52.8%のAP。
- YOLOv6-L6: リアルタイムで最先端の精度。
YOLOv6は、異なる精度に対応する量子化モデルや、モバイルプラットフォーム向けに最適化されたモデルも提供しています。
使用例
この例では、シンプルなYOLOv6のトレーニングと推論の例を提供します。これらおよびその他のモードに関する完全なドキュメントについては、予測、トレーニング、検証、およびエクスポートのドキュメントページを参照してください。
例
YOLOv6 *.yaml filesを以下に渡すことができます。 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")
CLIコマンドは、モデルを直接実行するために利用できます。
# Build a YOLOv6n model from scratch and train it on the COCO8 example dataset for 100 epochs
yolo train model=yolov6n.yaml data=coco8.yaml epochs=100 imgsz=640
# Build a YOLOv6n model from scratch and run inference on the 'bus.jpg' image
yolo predict model=yolov6n.yaml source=path/to/bus.jpg
サポートされているタスクとモード
YOLOv6シリーズは、高性能な物体detect向けにそれぞれ最適化された幅広いモデルを提供しています。これらのモデルは、さまざまな計算ニーズと精度要件に対応し、幅広いアプリケーションで多用途に利用できます。
| モデル | ファイル名 | タスク | 推論 | 検証 | 学習 | エクスポート |
|---|---|---|---|---|---|---|
| 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でアクセス可能です。彼らがこの分野を進展させ、その研究をより広範なコミュニティに利用可能にした努力に感謝いたします。
よくある質問
Meituan YOLOv6とは何ですか?その独自性は何ですか?
2022年にリリースされたMeituan YOLOv6は、リアルタイムアプリケーション向けに設計された、速度と精度を両立させた物体検出器です。Bi-directional Concatenation (BiC)モジュールやAnchor-Aided Training (AAT)戦略など、注目すべきアーキテクチャの強化が特徴です。これらの革新により、速度の低下を最小限に抑えつつ大幅な性能向上が実現され、YOLOv6は物体検出タスクにおいて競争力のある選択肢となっています。
YOLOv6のBi-directional Concatenation (BiC) モジュールは、どのようにパフォーマンスを向上させますか?
YOLOv6の双方向連結 (BiC) モジュールは、検出器のネックにおける局所化シグナルを強化し、速度への影響をほとんど与えずに性能向上を実現します。このモジュールは異なる特徴マップを効果的に結合し、モデルが物体を正確に検出する能力を高めます。YOLOv6の機能に関する詳細は、主要機能セクションを参照してください。
Ultralyticsを使用してYOLOv6モデルをトレーニングするにはどうすればよいですか?
Ultralyticsを使用して、シンプルなpythonまたはCLIコマンドで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)
yolo train model=yolov6n.yaml data=coco8.yaml epochs=100 imgsz=640
詳細については、Trainページをご覧ください。
YOLOv6の異なるバージョンとそれらのパフォーマンスメトリクスは何ですか?
YOLOv6は、異なる性能要件に合わせて最適化された複数のバージョンを提供しています。
- YOLOv6-N: 1187 FPSで37.5% AP
- YOLOv6-S: 484 FPSで45.0% AP
- YOLOv6-M: 226 FPSで50.0% AP
- YOLOv6-L: 116 FPSで52.8% AP
- YOLOv6-L6: リアルタイムシナリオにおける最先端の精度
これらのモデルは、NVIDIA T4 GPUを使用してCOCOデータセットで評価されています。性能指標の詳細については、性能指標セクションを参照してください。
Anchor-Aided Training (AAT) 戦略はYOLOv6にどのように貢献しますか?
YOLOv6のアンカー支援学習 (AAT) は、アンカーベースとアンカーフリーのアプローチの要素を組み合わせることで、推論効率を損なうことなくモデルの検出能力を向上させます。この戦略は、学習中にアンカーを活用してバウンディングボックスの予測を改善し、YOLOv6を多様な物体検出タスクで効果的にします。
UltralyticsのYOLOv6モデルでサポートされている運用モードは何ですか?
YOLOv6は、推論、検証、学習、エクスポートなど、さまざまな運用モードをサポートしています。この柔軟性により、ユーザーはさまざまなシナリオでモデルの機能を最大限に活用できます。各モードの詳細については、サポートされるタスクとモードセクションを参照してください。