热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

从YOLOv4看模型优化方法

YOLOv4中相关优化方法1.Bagoffreebies(增加训练时间,不影响推理速度下提升性能)1.1数据增强:亮度、

YOLOv4中相关优化方法


1.Bag of freebies(增加训练时间,不影响推理速度下提升性能)


1.1 数据增强:


  • 亮度、对比度、色调、饱和度、噪音

  • 随机缩放、裁剪、翻转、旋转

  • 模拟遮挡

    • random erase or CutOut: 随机将图像中的矩形区域随机填充像素值或置零
    • MixUp:将两张图像按照一定比例因子进行叠加融合,该比例因子服从B分布。融合后的label包含两张图像的所有标签。
    • CutMix:从一张图中crop一块矩形图像到另一张图中,对应融合后图像的label也要进行更新。
    • 风格迁移GAN:通过GAN的方式扩增数据量
  • feature map层面的增强

    • DropOut:

      • 原理:前向传播的时候,让某个神经元的激活值以一定的概率1-p停止工作(输出值清0),bp更新权值时,不再更新与该节点相连的权值。
      • 作用:解决因参数过多导致的过拟合,多用于全连接层。
    • DropConnect:

      • 原理:输出节点中将每个与其相连的输入权值以1-p的概率清0(模型权重清零),DorpConnect为DorpOut的改进
      • dropout与dropconnect如下图:

    • 作用:针对卷积层正则化。


1.2 解决语义分布差异(类别不平衡)


  • Two Stage检测使用:

    • OHEM:

      • 优点:

        • 对于数据的类别不平衡问题不需要采用设置正负样本比例的方式来解决,这种在线选择方式针对性更强
        • 当数据集增大,算法可以在原来基础上提升更大
      • 核心:核心是选择一些hard example作为训练的样本从而改善网络参数效果,hard example指的是有多样性和高损失的样本

      • 原理:(基于fast rcnn改进)hard example是根据每个ROI的损失来选择的,选择损失最大的一些ROI。首先,ROI经过ROI plooling层生成feature map,然后进入只读的ROI network得到所有ROI的loss;然后根据损失排序选出hard example,并把这些hard example作为下面那个ROI network(从图中可知两个RoI Network是参数共享的)的输入进行训练。下面为OHEM原理图:

    • RFB-Net

      • 背景:在one stage检测中尽可能地增加backbone感受野
      • 原理:借鉴了inception结构的并行结构,并对不同大小卷积核后加上不同空洞率的空洞卷积(卷积核为kxk,空洞率为k)(作者认为这样做对kernels的大小和离心率之间的关系进行了建模)
      • 图示

  • ASFF(自适应尺度融合)

    • 原理:首先通过FPN产生level1-level3不同尺度的特征图,作者使用ASFF(adaptively spatial feature fusion)思想进行融合,思想就是level1-level3个尺度图分别再融合成3个对应尺度的特征图,融合的权重自适应调整。拿ASFF-1作为例子,首先将3个尺度的图都resize到level1尺度大小,然后学习一个融合权重(使用softmax 做不同feature map加权),这样可以更好地学习不同特征尺度对于预测特征图的贡献。
    • 原理图

  • BiFPN模块–来自EfficientDet

    • 模块结构:BiFPN是对PANet的改动,提出了三个优化
      • 删掉那些只有一个输入边的节点,因为只有一个输入边的节点就没有特征融合,对特征网络的贡献少
      • 添加了从原始输入到输出节点的边(同一级别的输入输出)
      • 把双向路径看作是一个特征网络层,就可以多次重复特征层得到更多的特征融合。(就是图中f子图,可以把f图当作一个层,可以多次重复,前一层的5个输出(

        • 特点:Swish函数可以看做是介于线性函数与ReLU函数之间的平滑函数,模型效果优于ReLU
      • Hard-Swish

        • 公式:
          h−swish(x)=x∗ReLU6(x+3)6h-swish(x)=x*\frac{ReLU6(x+3)}{6} hswish(x)=x6ReLU6(x+3)

        • 曲线:

        • 特点:针对量化模式下对Swish的改进(Sigmoid比ReLU6耗时),使用ReLU6替换sigmoid

      • Mish:

        • 公式:

        Mish=x∗tanh(ln(1+ex))Mish= x*tanh(ln(1+e^x)) Mish=xtanh(ln(1+ex))

        • 曲线:

        • 特点:Mish激活函数比ReLU等激活函数更加平滑,训练更稳定精度有提升,有望替换ReLU,只是计算更复杂.


      2.5 后处理(anchor free无)


      • NMS

      • soft NMS:

        • 特点: 对于重叠框中除置信度最高的框外,将其余框的置信度用稍低一点的置信度来代替原有置信度,而不是像NMS直接将iou超过阈值的框置信度置零.这种方式可以有效地增加重叠目标的召回.具体如何降低置信度的方式如下图公式:

      • DIoU NMS:

        • 特点: 基于soft NMS进行改进.将bbox中心点之间的距离信息考虑到置信度更新中来,将中心点距离信息作为soft NMS公式的偏执项.

推荐阅读
author-avatar
yangxinhui2602905795
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有