YOLOv4改进

YOLOv4改进

1、Mosaic data augmentation(马赛克数据增强)

实现:参考CutMix将四张图像拼成一张进行训练;

e155d12c03b257ba82d70b684c73dcda.png

2、DropBlock

实现:类似于Dropout,但是从随机选点变成随机选块;

48d3c44560db15d8211c7cffe4567f5b.png

3、Label Smoothing(标签平滑)

作用:解决过拟合的问题,让网络不过于"自信";

实现:例如将原来的标签(0,1)—> (0.05,0.95);

结果:使用了标签平滑能够使得同类别更紧密,不同类别间更分离;

a8ed7b5652797d06ca593417572c5b4d.md.png

4、损失优化

  • IOU损失(1-IOU)

    说明:在V3版本中用的位置损失函数;

    存在问题:两个框没有相交则IOU为0无法计算梯度,相同的IOU无法反映不同情况;

    7aeb6f6c3af74d9414cdcd53c6c863f9.md.png

  • GIOU损失

    6dc5e17b60ed881c560b0d2d3b33c92d.md.png

    作用:在不重叠的情况下能让预测框尽可能朝真实框靠近;

    存在问题:遇到重叠的情况,GIOU都相同;

    69fb168b49b28cde79a08e11254b2be6.md.png

  • DIOU损失

    504c18b47b9d2f0b599cd5be2c00b93f.md.png

    分母为能够覆盖预测框与真实框的最小Box的对角线长度c;

    作用:直接优化距离,速度更快,并且解决GIOU中重叠问题;

    c55ba852a3d94482165b435c426b9594.png

  • CIOU(V4版本中使用的)

    f83d0001088709fa50bfab2246531252.md.png

    位置损失函数需要考虑的因素:重叠面积、中心点距离、长宽比;

    上面公式中的α可以看作一个权重参数;

5、NMS优化

  • DIOU-NMS

    8044dc6ba500e497d1bbfcb52d16def2.png

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

  • SOFT-NMS

    主要思想:将直接剔除预测框变成对其进行置信度衰减,随后再进行剔除;

6、CSPNet(Cross Stage Partial Network)

实现:每一个block按照特征图的channel维度拆分成两个部分,一部分走正常网络,一部分直接concat到这个block的输出;

d722076b8d63bf37cf9bf10d30683529.md.png

7、CBAM(注意力机制)

实现:对每一个通道学习其权重;

f4369f7d3e954bb61ce1d4349daa332c.md.png

当然,学习通道的权重耗时较长,在V4版本中采用SAM,也就是对特征点学习权重;

0f1c0cacfaad52a9eea6df6a7f8dc2be.md.png

也就是上图中的下面部分,改进了原始的SAM,提高了效率;

8、PAN(Path Aggregation Network 路径聚合网络)

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

90d2011af1fd6ba7726020c17bfa4ab1.md.png

从上图可知,绿色自底向上采用了一种捷径的方式,只用四步就完成;

在V4版本中,PAN最后一步采用的不是加法,而是拼接;

9、Mish激活函数

2f382a2ea2b0b2010bfb62201e4ceff9.md.png

364ea88cc781ecd085a7fc2a02f31674.md.png

作用:相比ReLU激活函数好一些,提升了一点效果,但计算量增加了一点;

10、整体网络架构图

06d7e8620585c2cc99bd0cdf683957d5.png

  • 0
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
需要学习ubuntu系统上YOLOv4的同学请前往:《YOLOv4目标检测实战:原理与源码解析》 【为什么要学习这门课】 Linux创始人Linus Torvalds有一句名言:Talk is cheap. Show me the code. 冗谈不够,放码过来! 代码阅读是从基础到提高的必由之路。尤其对深度学习,许多框架隐藏了神经网络底层的实现,只能在上层调包使用,对其内部原理很难认识清晰,不利于进一步优化和创新。YOLOv4是最近推出的基于深度学习的端到端实时目标检测方法。YOLOv4的实现darknet是使用C语言开发的轻型开源深度学习框架,依赖少,可移植性好,可以作为很好的代码阅读案例,让我们深入探究其实现原理。【课程内容与收获】 本课程将解析YOLOv4的实现原理和源码,具体内容包括:- YOLOv4目标检测原理- 神经网络及darknet的C语言实现,尤其是反向传播的梯度求解和误差计算- 代码阅读工具及方法- 深度学习计算的利器:BLAS和GEMM- GPU的CUDA编程方法及在darknet的应用- YOLOv4的程序流程- YOLOv4各层及关键技术的源码解析本课程将提供注释后的darknet的源码程序文件。【相关课程】 除本课程《Windows版YOLOv4目标检测:原理与源码解析》外,本人推出了有关YOLOv4目标检测的系列课程,包括:《Windows版YOLOv4目标检测实战:训练自己的数据集》《Windows版YOLOv4-Tiny目标检测实战:训练自己的数据集》《Windows版YOLOv4目标检测实战:人脸口罩佩戴检测》《Windows版YOLOv4目标检测实战:中国交通标志识别》建议先学习一门YOLOv4实战课程,对YOLOv4的使用方法了解以后再学习本课程。【YOLOv4网络模型架构图】 下图由白勇老师绘制  

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值