yolov4论文笔记

yolov4论文笔记

yolov4论文主要总结了一些技巧,以及实验的效果。

1.yolov4算法的效果:

在这里插入图片描述

2.yolov4的trick

yolov4使用了一些通用功能包括:

  • Weighted-Residual-Connection(WRC)
  • Cross-Stage-partial-connections(CSP)
  • Cross mini-Batch Normalization (CmBN)
  • Self-adversarial-training(SAT)
  • Mish-acticvation
  • Mosaic data augmentation
  • DropBlock regularization
  • CIoU loss

3.目标检测模型

在这里插入图片描述
目标检测模型一般分为3部分:backboneheadneck

  • Backbone:主干网络通常在数据集上进行预训练,常用的网络有:VGG16 、ResNet-50 、SpineNet 、EfficientNet-B0/B7 、CSPResNeXt50 、CSPDarknet53

  • Neck:在head和backbone中间插入一些层,这些层由来自于不同阶段,常用的模块有

    • Additional blocks: SPP 、ASPP 、RFB 、SAM
    • Path-aggregation blocks: FPN 、PAN 、 NAS-FPN 、 Fully-connected FPN 、 BiFPN 、ASFF 、SFAM
  • Heads:用来预测目标的类别和边界框

    • one-stage :
      • RPN 、SSD 、YOLO 、RetinaNet (anchor based )
      • CornerNet 、CenterNet 、 MatrixNet 、 FCOS (anchor free )
    • two-stage:
      • Faster R-CNN、R-FCN、Mask RCNN (anchor based )
      • RepPoints (anchor free)

    one-stage 和two-stage 代表:two-stage 通常先做建议框粗修和背景剔除,然后执行建议框的分类和边界框的回归;one-stage则将这两个过程融合。

    4.技巧分类

    yolov4将技巧进行定义分类:Bag of freebies、Bag of speicals

    Bag of freebies:使目标检测器有更准确但是不增加推理成本的训练方法

    • 图像增强:增加输入图像的可变性,使模型有更好的鲁棒性
      • 光度畸变:调节图像的亮度,对比度,饱和度,噪声
      • 几何畸变:随机缩放,裁剪,翻转,旋转
      • 目标遮挡:随机擦除和剪切可以随机选择图像中的矩区域并填充0或互补值
      • 多个图同时使用
      • 不同的系数将两个图像进行相加和相乘,并调整标签
      • 裁剪图像覆盖到其他图像的矩形区域内
      • GAN样式传递有效地减少CNN学习到的问题偏差
    • 解决有偏差数据集中语义分布的问题,一个重要的问题是不同类别数据不平衡。解决方法:
      • hard negtive example mining 和 online hard example mining(two-stage)
      • focal loss,将硬标签转为软标签(解决不同类别之间的联系程度的表示问题)(one-stage)
    • 边界框回归预测:
      • IOU loss : 边界框的左边偏差和长宽偏差以外又加入IOU损失
      • GIOUloss:将同时覆盖预测框和真是框的边界框作为分母代替原来IOU的分母
      • DIOU:到中心点的距离
      • CIOU:更好的覆盖速度和准确性

    Bag of specials:增加了推理消耗,但是准确性有很高的提升

    • 扩大感受野:SPP、ASPP、RFB
      • SPP:何凯明提出的一维空间金字塔池化,yolov3作者将SPP改进为内核为大小为k*k最大池化输出级联
    • 引入注意力机制:channel-wise attention、point-wise attention两类代表方法分别为:
      • Squeeze-and-Excitation :top-1 accuracy 提升1% ,计算工作量提高了2%,但是GPU推理时间提高了10%(用于移动设备)
      • Spatial Attention Module :top-1 accuracy 提升0.1% 计算工作量提高了0.5%,GPU没有影响
    • 加强特征集成
      • (早期使用skip-connection和hyper-colum去集成低水平物理特征和高水平语义特征)
      • 目前 FPN多尺度预测方法很受欢迎,集成不同特征金字塔的轻量级模型随机提出(SFAM ASFF BiFPN )
    • 后期处理(筛选预测结果)
      • NMS:
      • greedy NMS:考虑了置信度
      • soft NMS:考虑了遮挡问题
    • 激活函数:好的激活函数可以使梯度更高效地传播,同时不会花费额外的计算
      • ReLU:解决梯度消失的问题
      • LReLU和PReLU主要解决输出为0使梯度为0的问题
      • ReLU6为量化网络设计
      • SELU满足网络自归一化

    5.结构选择

    目的:

    • 找到分辨率、卷积层数、参数数量、输出层数的优化平衡

    • 找到额外的模块能增加感受野和参数聚合的方法

    目标检测器的需求:

    • 更高的输入分辨率:检测多个小物体
    • 更多的层数:更大的感受野
    • 更多的参数:检测多尺度的不同目标

    不同感受野大小的影响:

    • 能看到整个物体
    • 能看到物体周围的环境
    • 增加了图像点和最终激活函数之间的连接数

    最终选择:

    backbone:CSPDarknet53(明显增加了感受野)

    neck:PANet (特征集成) SPP additional module (扩大感受野)

    head:YOLOv3(anchor based)

    6.选择BoS和BoF

    一般CNN训练的时候有如下选择:

    • Activations: ReLU, leaky-ReLU, parametric-ReLU, ReLU6, SELU, Swish, or Mish
    • Bounding box regression loss :MSE, IoU, GIoU, CIoU, DIoU
    • Data augmentation :CutOut, MixUp, CutMix
    • Regularization method(正则化) : DropOut, DropPath Spatial DropOut , or DropBlock
    • Normalization of the network activations by their mean and variance(归一化):Batch Normalization (BN) , Cross-GPU Batch Normalization (CGBN or SyncBN), Filter Response Normalization (FRN) , Cross-Iteration Batch Normalization (CBN)
    • Skip-connections: Residual connections , Weighted residual connections , Multi-input weighted residual connections,Cross stage partial connections

    为了更改的适应单个GPU训练,有下列改进:

    • 数据增强的方法:Mosaic 、Self-Adversarial

      • mosaic:混合四张图片输入(Cutmix是两张),这样这一检测他们环境之外的目标(变相降低mini-batch)
      • Self-Adversarial(两阶段操作):第一阶段改变原始图像而不是改变权重,神经网络以这种方式对他自己进行对抗攻击,更改原始图像来创造一个图片上没有对象的假象。在第二阶段,神经网络被正常训练去在这个修改过的图像上检测目标
    • 用遗传算法选择超参数

    • 改进存在的方法使我们的训练更高效:modified SAM, modified PAN, and Cross mini-Batch Normalization (CmBN)

      • CmBN是CBN的改进版本,如图所示
        在这里插入图片描述

      • SAM改进:
        在这里插入图片描述

      • PAN改进

在这里插入图片描述

7.yolov4模型内容:

  • 网络结构:
    • Backbone: CSPDarknet53
    • Neck: SPP , PAN
    • Head: YOLOv3
  • BoF和BoS的使用
    • Bag of Freebies (BoF) for backbone: CutMix and
      Mosaic data augmentation, DropBlock regularization,
      Class label smoothing
    • Bag of Specials (BoS) for backbone: Mish activation, Cross-stage partial connections (CSP), Multiinput weighted residual connections (MiWRC)
    • Bag of Freebies (BoF) for detector: CIoU-loss,
      CmBN, DropBlock regularization, Mosaic data augmentation, Self-Adversarial Training, Eliminate grid
      sensitivity, Using multiple anchors for a single ground
      truth, Cosine annealing scheduler [52], Optimal hyperparameters, Random training shapes
    • Bag of Specials (BoS) for detector: Mish activation,
      SPP-block, SAM-block, PAN path-aggregation block,
      DIoU-NMS

注释:

  • 感受野:
    在神经网络中,某一层输出的结果中的一个元素对应的输入层区域称作感受野,通俗的解释,就是特征图上的一个点所对应输入层的区域称感受野
    公式:
    rout = rin +(k-1)* jin
    rout:输出层的感受野
    rin:输入层的感受野
    k:卷积核的大小
    jin:输入层的特征之间的距离

注释:

  • 感受野:
    在神经网络中,某一层输出的结果中的一个元素对应的输入层区域称作感受野,通俗的解释,就是特征图上的一个点所对应输入层的区域称感受野
    公式:
    rout = rin +(k-1)* jin
    rout:输出层的感受野
    rin:输入层的感受野
    k:卷积核的大小
    jin:输入层的特征之间的距离
    jout = jin * stride(yolov4中的)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值