• YOLO v4详解


    1.主要贡献

         1.开发了一个高效而强大的目标检测模型。它使每个人都可以使用一个1080 Ti或2080 Ti GPU来训练一个超快和准确的目标探测器。

         2.验证了state-of-the-art Bag-of Freebies and Bag-of-Specials对目标检测的影响。

         3.修改了最先进的方法,使其更有效,更适合于单一的GPU训练,包括CBN[89],PAN[49],SAM[85]等。

    2.Bag of freebies(BOF) 

    只增加训练成本,但是能显著提高精度,并不影响推理速度

    数据增强:调整亮度、对比度、色调、随机缩放、剪切、翻转、旋转

    网络正则化的方法:Dropout、Dropblock等

    类别不平衡,损失函数设计

    在bof中,YOLO v4使用的是Mosaic data augmentation 、 Self-adversarial-training(SAT)、dropblock、labelsmooth、CIOU、DIOU-NMS

    (1)数据增强 

    Mosaic data augmentation 

    首先将四张图片进行各自的数据增强,然后将四张图像拼接在一起

    Random Erase:用随机值或训练集的平均像素值替换图像的区域

    Hide and Seek:根据概率设置随机隐藏一些补丁

     Self-adversarial-training(SAT)

    通过引入噪音点进行数据增强

    DropBlock

    之前的dropout是随机选择点(b),现在随机选择一个区域

    Label Smoothing  

            例如原来标签为(0,1):

     

    使用之后效果分析(右图):簇内更紧密,簇间更分离

    CIOU 

    IOU损失 (也经常1-IOU作为IOU loss) 

             

     问题:没有相交则IOU=0无法梯度计算,相同的IOU却反映不出实际情况

     GIOU损失

            公式:

             

             引入了最小封闭形状C(C可以把A,B包含在内),在不重叠情况下能让预测框尽可能朝着真实框前进

            但是在两个预测框完全重叠的情况下,不能反映出实际情况

    DIOU损失 

    公式:

     其中分子计算预测框与真实框的中心点欧式距离d

    分母是能覆盖预测框与真实框的最小BOX的对角线长度c
    直接优化距离,速度更快,并解决GIOU问题

    CIOU损失

    公式:

     损失函数必须考虑三个几何因素:重叠面积,中心点距离,长宽比

    其中α可以当做权重参数

    NMS

    DIOU-NMS

            之前使用NMS来决定是否删除一个框,现在改用DIOU-NMS

            公式: 

     不仅考虑了IoU的值,还考虑了两个Box中心点之间的距离

    其中M表示高置信度候选框,Bi就是遍历各个框跟置信度高的重合情况

    SOFT-NMS

    对于重合度较大的不是直接剔除,而是施加惩罚。 

    3. Bag of specials(BOS)

             增加稍许推断代价,但可以提高模型精度的方法

            网络细节部分加入了很多改进,引入了各种能让特征提取更好的方法

            注意力机制,网络细节设计,特征金字塔等。

            YOLO V4使用SPPNet、 CSPNet、SAM、PAN、Mish、eliminate grid sensitivity  

    SPPNet(Spatial Pyramid Pooling)

    V3中为了更好满足不同输入大小,训练的时候要改变输入数据的大小

    SPP其实就是用最大池化来满足最终输入特征一致即可

     CSPNet(Cross Stage Partial Network)

    每一个block按照特征图的channel维度拆分成两部分

    一份正常走网络,另一份直接concat到这个block的输出

    CBAM

            不仅每个通道有注意力,而且特征图每个位置有注意力         V4中用的是SAM,也就是空间的注意力机制,只有位置Attention

            

     YOLOV4中的Spatial attention module

    去除池化层和卷积层 

     PAN(Path Aggregation Network)

    FPN:自顶向下的模式,将高层特征传下来

     PAN(Path Aggregation Network)

    引入了自底向上的路径,使得底层信息更容易传到顶部

    YOLOV4中并不是加法,而是拼接

     

     Mish:

            Relu在小于0时完全杀死了梯度,不太符合实际情况

    公式:

    但是计算量确实增加了,效果会提升一点

     

    eliminate grid sensitivity  

     坐标回归预测值都在0-1之间,如果在grid边界怎么表示,此时就需要非常大的数值才可以达到边界,为了缓解这种情况可以在激活函数前加上 一个系数(大于1的):

     

     

    4. 整体网络架构

     

     

  • 相关阅读:
    魔众文库系统 v3.5.0 预览页数调整,批量操作命令,多处优化
    22.【实战】车辆统计
    [软考中级]软件设计师-信息安全
    写给Java开发看的 Docker 干货(零基础部署Nginx MySQL SpringBoot)
    C++17使用std::optional表示一个可能存在的值
    MATLAB基于隐马尔可夫模型-高斯混合模型-期望最大化的MR图像分割
    期货开户手续费加一分是主流
    RK3588 AP6398RS3之WIFI调试(一)
    敏捷开发时代,彻底结束了
    自己搭的centOS7虚拟机,ping baidu出现Temporary failure in name resolution
  • 原文地址:https://blog.csdn.net/qq_52053775/article/details/126401662