• 《YOLOV4&5原理与源代码解析之一:数据增强》


          项目中使用YOLO系列已经大半年,是时候总结下原理了。

          事实上YOLO3已经是成熟可靠的目标检测框架,具有很好的商业价值;而YOLO4&5是将近年来DL领域一些创新、可靠、有效的tricks加进去,进一步提升了YOLO的效果,江湖传言曰:嫁衣神功。

     

        YOLOV4的数据增强只会增加训练成本,得到鲁棒性更强的网络模型;而不会影响推理阶段性能。

    一、MixUp混合

      如上图MixUp[48]的效果图,是将Dog图和Cat作了线性叠加,权重各取0.5。

    二、Cutout随机裁剪

      如上图Cutout[3]的效果图,随机遮挡目标狗的头部、尾巴,脚等部位。

      (注:dropblock是一种剪枝方式,这种方式其实是借鉴2017年的cutout数据增强的方式,cutout是将输入图像的部分区域清零,而Dropblock则是将Cutout应用到每一个特征图。而且并不是用固定的归零比率,而是在训练时以一个小的比率开始,随着训练过程线性的增加这个比率。)

    三、CutMix随机遮挡

      CutMix = CutUp + CutOut,单词组合。

      如上图CutMix的效果图,将其他类别的图像块剪切到当前图像,进行遮挡干扰,达到数据增强效果。注意标签的定义,表示当前目标:是Dog置信度为0.6,是Cat置信度为0.4。这个置信度是SoftMax函数输出的值,取值范围[0,1],可输出当前目标属于每个类别的概率;扯远了。

           还有其他的旋转、反转、亮度、色调、对比度增强就不提了,比较简单。YOLOV4&5有一个重要的数据增强,叫做:马赛克增强。

    四、Mosaic马赛克增强

           这种数据增强算法是YOLOV5的作者提出,据说V5作者曾公开发表言论:YOLOV4之所以有很好的效果,很大程度上归功于马赛克增强。

           训练的时候,我们知道,batchsize大小设置是和显存大小有关,例如:batchsize=1,表示一张图,这里Mosaic增强有四张图,如下图,将四张图象合成一张图像训练,在GPU资源有限的情况下,一次batchsize处理的图片越多越好。当然,下面这四张图,还是常规增强、标注。四张图混在一起,增加了图像背景复杂度,亦是增强。马赛克增强是使得YOLOV4对平明用户很友好(我自己的RTX2060就能训练)。

     五、Random Erase

         用随机值或者训练集的平均像素值替换图像的区域。如图,左边一列都是原图,右边三列是增强后效果图。

    六、Hide and Seek

         根据概率随机隐藏一些补丁块。如图在图像上设置随机补丁。

     七、随机噪声

      在此之前,先说明下YOLOV4的SAT技术,即:添加随机噪声,如下图,中间是自动生成的随机噪声矩阵,乘一个系数0.07,将其线性叠加到原图上,这也是一种数据增强。Self-adversarial-training(SAT)。对抗训练(adversarial training)是增强神经网络鲁棒性的重要方式。在对抗训练的过程中,样本会被混合一些微小的扰动(改变很小,但是很可能造成误分类),然后使神经网络适应这种改变,从而对对抗样本具有鲁棒性。

            以上所提及的数据增强,马赛克增强是YOLOV4&5的亮点,其他方法也是集“百家之长于一身”。

    reference:对抗训练:

    https://zhuanlan.zhihu.com/p/104040055

  • 相关阅读:
    阿里云主机和RDS使用心得
    iOS_2_button控制物体形变
    js 继承概述
    Android 代码混淆
    “...”是字段,但此处被当作类型来使用
    Mali GPU OpenGL ES 应用性能优化--測试+定位+优化流程
    uva 213
    XML基础以及用DOM4j读取数据
    【Hibernate】Hibernate3.x独立执行时的Failed to load class "org.slf4j.impl.StaticLoggerBinder"错误
    《Pro Android Graphics》读书笔记之第六节
  • 原文地址:https://www.cnblogs.com/tensorrt/p/14417867.html
Copyright © 2020-2023  润新知