YOLOV7详细解读(三)技术要点归纳
YOLOV7技术要点归纳
技术要点归纳
前言
继美团发布YOLOV6之后,YOLO系列原作者也发布了YOLOV7。
YOLOV7主要的贡献在于:
1.
模型重参数化
YOLOV7将模型重参数化引入到网络架构中,重参数化这一思想最早出现于REPVGG中。
2.标签分配策略
YOLOV7的标签分配策略采用的是YOLOV5的跨网格搜索,以及YOLOX的匹配策略。
3.ELAN高效网络架构
YOLOV7中提出的一个新的网络架构,以高效为主。
4.带辅助头的训练
YOLOV7提出了辅助头的一个训练方法,主要目的是通过增加训练成本,提升精度,同时不影响推理的时间,因为辅助头只会出现在训练过程中。
一、YOLOV7是什么?
YOLO算法作为
one-stage
目标检测算法最典型的代表,其基于深度神经网络进行对象的识别和定位,运行速度很快,可以用于实时系统。
YOLOV7是目前YOLO系列最先进的算法
,在准确率和速度上超越了以往的YOLO系列。
了解YOLOV7是对目标检测算法研究的一个必须步骤。
二、论文贡献
1.设计了几种可训练的
Bag-of-Freebies
方法,使得实时目标检测在不增加推理代价的情况下,大大提高了检测精度;
2.对于目标检测方法的发展,我们发现了两个新的问题,即重新参数化的模块如何替换原始模块
,以及动态标签分配策略
如何处理对不同输出层的分配。此外,我们还提出了解决这些问题所产生的困难的方法。
3.提出了实时目标检测器的“扩展
”和“复合缩放
”方法,可以有效地利用参数和计算;
4.论文提出的方法可以有效地减少现有实时目标检测器约40%的参数和50%的计算量
,并具有更快的推理速度和更高的检测精度。
三、相关工作
- 更快更强的网络架构
- 更有效的特征集成方法
- 更准确的检测方法
- 更鲁棒的损失函数
- 更有效的标签分配分配
- 更有效的训练方法
四、网络架构
五、重参数化
Step1
. 融合卷积层( identity )和 BN 层,再对融合后的 1x1 卷积和 identity 进行补零(类似 padding 操作)扩展成 3x3 大小的卷积核;
Step2
. 利用卷积的可加性,将 3 个 3x3 卷积合并为一个;
Step3
. 完成结构重参数化,得到 plain 形式的推理模型(上一层输出为下一层输入,没有skip等分支操作)。
六、模型缩放
模型缩放通过扩大或缩小baseline,使其适用于不同的计算设备。模型缩放方法通常包括不同的缩放因子,如:
input size
(输入图像大小)depth
(层数)width
(通道数)stage
(特征金字塔数量)
从而在网络的参数量、计算量、推理速度和精度方面实现很好的权衡。网络架构搜索(NAS)也是目前常用的模型缩放方法之一。
七、E-ELAN
结构图
分组卷积
将卷积的输入feature map分成组,每个卷积核也相应地分成组,在对应的组内做卷积。
如下图所示,图中分组数,即上面的一组feature map只和上面的一组卷积核做卷积,下面的一组feature map只和下面的一组卷积核做卷积。每组卷积都生成一个feature map,共生成group组feature map。
八、损失函数
目标置信度损失
:BCEWithLogitsLoss
分类损失采用
:BCEWithLogitsLoss
坐标损失采用
:CIoU损失
BCEWithLogitsLoss
与BCELoss
的区别:
该loss 层包括了 Sigmoid 层和BCELoss 层,故而神经网络的输出无需经过sigmoid函数,其他都是一样的
九、动态标签分配策略
步骤
①yolov5:使用yolov5正负样本分配策略分配正样本。
②YOLOX:计算每个样本对每个GT的Reg+Cla loss(Loss aware)
③YOLOX:使用每个GT的预测样本确定它需要分配到的正样本数(Dynamic k)
④YOLOX:为每个GT取loss最小的前dynamic k个样本作为正样本
⑤YOLOX:人工去掉同一个样本被分配到多个GT的正样本的情况(全局信息)
软标签
yolov5的跨网格匹配
YOLOX中的simOTA
- lead head中每个网格与gt如果匹配上,附加周边两个网格
- aux head附加4个网格(如上面导数第二幅图,匹配到浅黄+橘黄共5个网格)
- lead head中将top10个样本iou求和取整,而aux head中取top20。
- aux head更关注于recall,而lead head从aux head中精准筛选出样本。
更多推荐
所有评论(0)