Meituan YOLOv6
概要
Meituan YOLOv6, released in 2022, offers a strong balance between speed and accuracy, making it a popular choice for real-time applications. This model introduces several notable enhancements on its architecture and training scheme, including the implementation of a Bi-directional Concatenation (BiC) module, an anchor-aided training (AAT) strategy, and an improved backbone and neck design for high accuracy on the COCO dataset.
YOLOv6の概要。 大幅な性能向上をもたらした、再設計されたネットワークコンポーネントとトレーニング戦略を示すモデルアーキテクチャ図。(a) YOLOv6のネック(NおよびSを表示)。M/LではRepBlocksがCSPStackRepに置き換えられている点に注意。(b) BiCモジュールの構造。(c) SimCSPSPPFブロック。(source)。
主な特徴
- 双方向連結(BiC)モジュール: YOLOv6は、検出器のネックにBiCモジュールを導入しており、ローカリゼーション信号を強化し、速度をほとんど低下させることなくパフォーマンスを向上させます。
- アンカー支援トレーニング(AAT)戦略: このモデルは、推論効率を損なうことなく、anchor-basedおよびanchor-freeのパラダイムの両方の利点を享受するためにAATを提案しています。
- 強化されたバックボーンとネックのデザイン: YOLOv6のバックボーンとネックにステージを追加することで、このモデルはリリース当時、高解像度入力においてCOCO datasetで強力なパフォーマンスを達成しました。
- 自己蒸留戦略: 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は、異なるprecisionsに対応した量子化モデルや、モバイルプラットフォーム向けに最適化されたモデルも提供しています。
使用例
この例では、シンプルなYOLOv6のトレーニングおよび推論の例を紹介します。これらやその他のmodesに関する詳細なドキュメントについては、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シリーズは、それぞれが高性能なObject Detection向けに最適化された様々なモデルを提供しています。これらのモデルは、多様な計算ニーズやaccuracy要件に対応しており、幅広いアプリケーションに活用できます。
| モデル | ファイル名 | タスク | 推論 (Inference) | 検証 | 学習 | Export |
|---|---|---|---|---|---|---|
| YOLOv6-N | yolov6n.yaml | 物体検出 | ✅ | ✅ | ✅ | ✅ |
| YOLOv6-S | yolov6s.yaml | 物体検出 | ✅ | ✅ | ✅ | ✅ |
| YOLOv6-M | yolov6m.yaml | 物体検出 | ✅ | ✅ | ✅ | ✅ |
| YOLOv6-L | yolov6l.yaml | 物体検出 | ✅ | ✅ | ✅ | ✅ |
| YOLOv6-X | yolov6x.yaml | 物体検出 | ✅ | ✅ | ✅ | ✅ |
この表は、YOLOv6モデルの各バリエーションの詳細な概要を示しており、object detectionタスクにおける機能や、Inference、Validation、Training、Exportなどの様々な運用モードとの互換性を強調しています。この包括的なサポートにより、ユーザーは幅広い物体検出シナリオで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
Meituan YOLOv6とは何ですか?また、何がユニークなのですか?
2022年にリリースされたMeituan YOLOv6は、リアルタイムアプリケーション向けに設計された、速度と精度のバランスが取れた物体検出器です。双方向連結(BiC)モジュールやアンカー支援トレーニング(AAT)戦略といった注目すべきアーキテクチャの強化が特徴です。これらの技術革新は、速度の低下を最小限に抑えつつ大幅な性能向上をもたらし、物体検出タスクにおいてYOLOv6を競争力のある選択肢にしています。
YOLOv6の双方向連結(BiC)モジュールはどのようにパフォーマンスを向上させますか?
YOLOv6の双方向連結(BiC)モジュールは、検出器のネックにおけるローカリゼーション信号を強化し、速度への影響をほとんど与えずにパフォーマンスの向上を実現します。このモジュールは異なるfeature mapsを効果的に組み合わせることで、モデルが物体を正確に検出する能力を高めています。YOLOv6の機能に関する詳細については、Key Featuresセクションを参照してください。
Ultralyticsを使用してYOLOv6モデルをトレーニングするにはどうすればよいですか?
Ultralyticsを使用してYOLOv6モデルをトレーニングするには、シンプルなPythonコマンドまたはCLIコマンドを使用します。例:
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は複数のバージョンを提供しており、それぞれ異なるパフォーマンス要件に合わせて最適化されています:
- 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 datasetで評価されています。パフォーマンス指標の詳細については、Performance Metricsセクションを参照してください。
アンカー支援トレーニング(AAT)戦略はYOLOv6にどのような利点をもたらしますか?
YOLOv6のアンカー支援トレーニング(AAT)は、アンカーベースのアプローチとアンカーフリーのアプローチの要素を組み合わせており、推論効率を損なうことなくモデルの検出能力を強化します。この戦略はトレーニング中にアンカーを活用してbounding boxの予測を改善し、多様な物体検出タスクにおいてYOLOv6を効果的にします。
UltralyticsのYOLOv6モデルでは、どの運用モードがサポートされていますか?
YOLOv6は、推論、検証、トレーニング、エクスポートを含む様々な運用モードをサポートしています。この柔軟性により、ユーザーはさまざまなシナリオでモデルの機能を最大限に活用できます。各モードの詳細な概要については、Supported Tasks and Modesセクションをご確認ください。