On September 5, the Visual Intelligence Department of Meituan released the YOLOv6 version 2.0. This update has comprehensively upgraded the lightweight network. The quantitative version model YOLOv6-S has reached 869 FPS. Large network (YOLOv6-M/L) enriches the YOLOv6 network series. Among them, the detection accuracy (AP) of YOLOv6-M/L on COCO reaches 49.5%/52.5% respectively, and the inference speed on T4 card can reach 233/121 FPS respectively (batch size = 32).
GitHub download address: https://github.com/meituan/YOLOv6 . Welcome to the Star collection and use it at any time.
The official detailed Tech Report takes you to deconstruct YOLOv6 : YOLOv6: A Single-Stage Object Detection Framework for Industrial Applications .
Note: YOLOv6 series models are obtained under training 300epoch without using pre-trained models or additional detection datasets, "‡" indicates that the self-distillation algorithm is used, "∗" indicates that the released model is re-evaluated from the official code base. The above speed indicators are tested in the T4 TRT7.2 environment.
Note: YOLOv6 series models are obtained under training 300epoch without using pre-trained models or additional detection datasets, "‡" indicates that the self-distillation algorithm is used, "∗" indicates that the released model is re-evaluated from the official code base. The above speed indicators are tested in the T4 TRT7.2 environment.
This version upgrade mainly includes the following updates:
A full range of models with enhanced performance
- For medium and large models (YOLOv6-M/L), a new backbone network CSPStackRep is designed, which has more advantages than the previous version of the Single Path structure in terms of comprehensive performance.
- For different networks, the advantages and disadvantages of various latest strategies/algorithms, comprehensive accuracy and speed are systematically verified, and the appropriate scheme is selected for each type of network. At the same time, the overall training time of the model is reduced by 50%, which greatly improves the training efficiency of the model.
- The self-distillation idea was introduced and a new learning strategy was designed, which greatly improved the model accuracy of YOLOv6-M/L.
- Through the Early Stop strong data enhancement during training and the image resize optimization strategy during inference, the problem of accuracy loss after the input size was aligned to 640x640 in the previous version was fixed, and the actual deployment accuracy of the existing model was improved.
Table 1 shows the experimental results comparing YOLOv6 with other current mainstream YOLO series algorithms. Compared with other YOLO series in the industry, YOLOv6 has certain advantages in all series:
- YOLOv6-M achieves 49.5% accuracy on COCO val, and can achieve 233 FPS performance on T4 graphics card using TRT FP16 batchsize=32 for inference.
- YOLOv6-L achieves 52.5% accuracy on COCO val, and can achieve 121 FPS performance on T4 graphics card using TRT FP16 batchsize=32 for inference.
- At the same time, the YOLOv6-N/S model has greatly improved the accuracy index while maintaining the same inference speed. Under the condition of training 400 epochs, the N network increased from 35.0% to 36.3%, and the S network increased from 43.1% to 43.8%.
Tailored Quantification Solutions
This release also integrates a quantization scheme specifically for YOLOv6, which is also useful for the quantization of reparameterized series models. This scheme draws on RepOptimizer [1] to re-parameterize the gradient update, which solves the problem of difficult quantization caused by the large dynamic range of multiple branches. The YOLOv6 model trained with RepOptimizer can directly use Post-training Quantization (PTQ) ) without incurring excessive precision loss.
On this basis, we analyzed the quantization sensitivity of each layer, and calculated some sensitive layers with higher precision, which further improved the accuracy of the model. In addition, we also released the Quantization-aware Training (QAT) based channel-by-channel distillation for version 2.0. Combined with graph optimization, the quantization performance of YOLOv6-S version 2.0 can reach 43.3 mAP and 869 FPS (batch size=32).
Note: The above speed indicators are tested in the T4 TRT8.4 environment. The comparison method is PaddleSlim [30].
The difference is that PaddleSlim uses YOLOv6-S version 1.0 and our quantization scheme is applied to version 2.0. More detailed related content about quantitative deployment practices will be pushed on the official account of the Meituan technical team in the near future, so stay tuned.
Complete development support and multi-platform deployment adaptation
YOLOv6 supports detection model training, evaluation, prediction, model quantization, distillation and other full-link development processes, and supports the deployment of different platforms such as GPU (TensorRT), CPU (OPENVINO), ARM (MNN, TNN, NCNN), which greatly simplifies Adaptation work during project deployment. For more detailed tutorial instructions, please go to the Deployment section of the YOLOv6 Github repository.
Related papers
[1] RepOptimizer: Re-parameterizing Your Optimizers rather than Architectures
Read more collections of technical articles from the Meituan technical team
Frontend | Algorithm | Backend | Data | Security | O&M | iOS | Android | Testing
| Reply keywords such as [2021 stock], [2020 stock], [2019 stock], [2018 stock], [2017 stock] in the public account menu bar dialog box, you can view the collection of technical articles by the Meituan technical team over the years.
| This article is produced by Meituan technical team, and the copyright belongs to Meituan. Welcome to reprint or use the content of this article for non-commercial purposes such as sharing and communication, please indicate "The content is reproduced from the Meituan technical team". This article may not be reproduced or used commercially without permission. For any commercial activities, please send an email to tech@meituan.com to apply for authorization.
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。