YOLOv4

部署运行你感兴趣的模型镜像

关于YOLOv4的个人理解

背景

在这里插入图片描述
从上述图中,我们可以看出YOLOv4在于v3拥有相同的速度上,精度有了质的飞跃。这得益于本文将当时各种最先进的检测技术运用到了其中,主要分为以下几个方面:模型结构上加入SPP、PAN等其他模块,正负样本的判定规则,不同的定位损失。

思想

本文的核心思想与v3基本上一致,无论是grid还是多尺度预测特征图都是一样的。不一样的地方仅是调整了anchor尺寸,原本的v3中采用的anchor尺寸为(10 × 13), (16 × 30), (33 × 23), (30 × 61), (62 × 45), (59 ×119), (116 × 90), (156 × 198), (373 × 326),而在v4中依旧512*512的图像作了相应的调整:(12×16),(19×36),(40×28),(36×75),(76×55),(72×146),(142×110),(192×243),(459×401)。

模型结构

在这里插入图片描述
以上模型结构并不是本人绘制的,但可作为参考。可以看到模型的输入为整张图像416 * 416,模型的输出仍然为3中不同尺寸的预测特征图。输入输出的大小与v3是一样的,不同的仅是中间特征提取模块的设计,但这并不是本文所要讲解的重点,我只对v4是怎么训练模型以及怎么预测作详细介绍(对模型结构的选择感兴趣的读者,可以阅读原文中作者给出的详细解释,我就不再赘述了)。

训练

老规矩,既然是训练模型,那么就需要介绍文章中用到了那些损失函数(这在v4的原文中,作者并没有给出相关的说明),但大体上与v3还是相同的,分为有目标边界框损失L1、目标置信度损失L2、无目标置信度损失L3、目标类别损失L4。其中只有L1是与v3中的目标边界框损失是不同的,因此我也只会对该损失作出详细解释,其余可以阅读我以往的v3文章。

  • L1
    以下为L1损失的相关公式:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    该损失之所以被称为边界框损失,是因为它的作用相当于v1、v2、v3中的目标中心点损失+目标宽高损失,用一个损失替换掉了两个损失,文中所采用的损失为CIOU损失(关于该损失,其实它是有一个进阶过程的,我会将其单独放到一篇博客中进行讲解),此处我只讲该损失是怎么计算的,以及每一个变量的含义是什么。
    1ijobj1_{i j}^{obj}1ijobj:该变量为正负样本的判定准则参数,正样本为1,否则为0。在v4中正负样本的判定规则与之前有着很大的不同,接下来我会详细介绍。首先由于作者将预测的bounding box的偏移量预测公式作了修改,致使偏移量的大小由[0~1]转变成了[-0.5,1.5],这么做的原因是:作者发现只有当txt_xtx变量趋近于无穷的时候,中心点才能够取到当前grid的左上角、右下角,因此为了缓解这个问题,使用了额外参数进行缩放,下图为新的偏移公式:
    在这里插入图片描述
    在这里插入图片描述
    宽高预测规则不变。
    在这里插入图片描述
    我们先来回顾以下v3是怎么判定正负样本的:
    首先每一个GT只能对应一个预测的bounding box,先将所有的anchor与GT计算IOU,将其中最大的anchor对应的预测bounding box标定为正样本,后除正样本外,如果存在anchor与一个GT的IOU超过规定的阈值(默认为0.5),则被标定为忽略样本(不参与任何的损失计算),其余则为负样本。
    而在v4当中由于我们预测的中心点偏移的范围发生了变化,所以需要对此进行改变,并且在v4中允许一个GT同时标定多个预测的bounding box为正样本(只要满足相应的条件即可),判定规则如下只要被标定为正样本的anchor与GT的IOU大于设定的阈值(v4中默认为0.3),并且GT的中心点坐标落在相距grid左上角坐标的[-0.5,1.5]之内就可以被选为正样本,那么由原本的每一个GT只能标定一个grid内的anchor变成了可以标定该grid周围多个grid内的anchor(并且需要注意的是:grid扩展的部分只能是原先grid的上、下、左、右四个部分,不存在左上,左下,右上,右下的grid),具体样式如下图所示。于是我此处产生了一个疑惑:如果一个anchor同时满足了多个GT,那么该如何计算损失呢,这里给出我认为的做法:选取其中IOU最大的计算损失,至于忽略样本这边论文中并没有给出详细的介绍我猜测是不需要考虑忽略样本,因为按照我们上述的新的正样本判定准则,我们将会得到大量的正样本,自然就可以解决之前由于正负样本不平衡带来的影响,因此除去正样本,剩下的都被标为负样本。
    在这里插入图片描述
    CIOU:该变量表示除了预测的bounding box与GT计算IOU值,还需要考虑到中心点距离,宽高比问题。因此在上述的CIOU公式中,c2c^2c2表示使用最小矩形框将预测的bounding box与GT 框住的对角线长度的平方,而d2d^2d2表示预测的bounding box与GT的中心点坐标的欧氏距离:(x−xg)2+(y−yg)2(x-x_g)^2+(y-y_g)^2(xxg)2+(yyg)2

测试阶段

与前几个版本相同,不再做任何的赘述。

总结

如理解上存在纰漏,敬请指正,谢谢!

您可能感兴趣的与本文相关的镜像

Yolo-v5

Yolo-v5

Yolo

YOLO(You Only Look Once)是一种流行的物体检测和图像分割模型,由华盛顿大学的Joseph Redmon 和Ali Farhadi 开发。 YOLO 于2015 年推出,因其高速和高精度而广受欢迎

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值