相关系列:
目标检测 | yolov1 原理和介绍
目标检测 | yolov2/yolo9000 原理和介绍
目标检测 | yolov3 原理和介绍
目标检测 | yolov4 原理和介绍
目标检测 | yolov5 原理和介绍
目标检测 | yolov6 原理和介绍
目标检测 | yolov7 原理和介绍
目标检测 | yolov8 原理和介绍
目标检测 | yolov9 原理和介绍
目标检测 | yolov10 原理和介绍
论文:https://arxiv.org/abs/2207.02696
代码:https://github.com/WongKinYiu/yolov7
1. 简介
YOLOv7是目标检测领域中YOLO系列的最新进展,它在速度和准确性上都取得了显著的提升,被认为是目标检测领域的新里程碑。YOLOv7的核心技术亮点包括:
- 模型重参数化:YOLOv7首次将模型重参数化技术引入网络架构中,这一技术最早在REPVGG中提出,有助于提升模型表达能力而不增加计算复杂度。
- 标签分配策略:YOLOv7采用了结合YOLOv5和YOLOX优点的标签分配策略,通过跨网格搜索和匹配策略,提高了检测准确性。
- ELAN高效网络架构:YOLOv7提出了ELAN(Extended Efficient Layer Aggregation etwork)架构,通过优化网络结构和计算流程,实现高检测性能和低计算复杂度。
- 带辅助头的训练:YOLOv7引入了辅助头进行训练,这为模型提供了更多监督信息,有助于学习有用的特征表示,尽管这会增加一定的训练成本,但可以提高检测精度,且不影响推理速度 。
- 架构改革:YOLOv7的架构源自YOLOv4、Scaled YOLOv4和YOLO-R,并在此基础上进行了进一步的实验和开发。
- 复合模型缩放:YOLOv7执行模型缩放以适应不同的应用需求,考虑了分辨率、宽度、深度和阶段等因素。
- 可训练的Bag of Freebies (BoF):YOLOv7引入了计划重参数化卷积等BoF方法,在不增加训练成本的情况下提高模型性能。
Coarse for Auxiliary and Fine for Lead loss:YOLOv7采用了深度监督技术,使用多个头进行训练,其中包括Lead Head和辅助头,以及Lead Head Guided Label Assigner,有助于模型更好地学习。
本论文主要工作:
- 提出了一个实时对象检测器,主要是希望它能够从边缘到云端同时支持移动GPU和GPU设备。
- 优化了架构,专注于优化训练过程。重点放在优化模块和优化方法上,称为可训练的 “Bag of freebies”。
- 对于模型重参数化问题,本文使用梯度传播路径的概念分析了适用于不同网络中的层的模型重参数化策略,并提出了有计划的重参数化模型。
- 对于动态标签分配问题,本文提出了一种新的标签分配方法,称为由粗到细引导标签分配
本文主要贡献:
- 提出了几种可用于训练的方法,这些方法仅仅会增加训练上的负担用于提升model性能,而不会增加推理负担
- 对于目标检测方法的发展,作者发现了两个新问题:
①重参数化模块如何替换原始模块
②动态标签分配策略如何处理对不同输出层的分配
不过本文提出了解决这俩问题的方法- 作者针对目标检测可以更有效的利用参数和计算问题,提出了"扩展"(extend)和“复合缩放”(compound scaling)
- 提出的方法可以有效的减少40%参数量和50%计算量,高精度高速度
2. Related work 相关工作
2.1 Real-time object detectors 实时物体检测器
目前最先进的实时目标检测器主要基于 YOLO [61, 62, 63] 和 FCOS [76, 77]