借鉴文章:
自己关于YOLO-YOLOv3的记录链接:
YOLO系列网络原理
YOLOv4资源链接:
论文:添加链接描述
代码:python代码:
c++代码:
python版本的Tensorrt代码:
c++版本的Tensorrt代码:
但我觉得算法创新分为三种方式:
Yolov4既有第二种也有第三种创新,组合尝试了大量深度学习领域最新论文的20多项研究成果
为了便于分析,将Yolov4的整体结构拆分成四大板块:
创新主要在以下四个部分:
YOLOv4对YOLOv3的各个部分都进行了改进优化,下面作者的算法对比图。
Mosiac是基于2019年底提出的CutMix数据增强的方式,但CutMix只使用了两张图片进行拼接,而Mosaic数据增强则采用了4张图片,随机缩放、随机裁剪、随机排布的方式进行拼接。
为什么使用Mosaic?可以增加小目标的数量,使得训练数据中的小目标、中目标和大目标的数据均衡。Mosaic数据增强具有几个优点:
此外,在训练中,作者也加入了一种技巧值得借鉴技巧:在训练计算Losss时采用缺啥补啥的思路:如果上一个iteration中,小物体产生别的loss不足,则下一个iteration就用拼接图;否则就用正常的图训练。
SAT自对抗训练
是生成对抗样本那个标记训练。是一种数据增强技术。首先会在训练样本上执行一次前向通过。使用传统方法时,我们会在反向传播过程中调整模型的权重来提升检测器检测图像中目标的能力。但这里所采样的方向却相反。它会修改图像,使其能在最大程度上降低检测器的性能,即创建以当前模型为目标的对抗攻击–即使新图像可能在人眼看来与原来的一样。接下来,使用这张新图像与原始的边界框和类别标签来训练该模型。这有助于提升模型的泛化能力并降低过拟合。
CutMix数据增强
下面是最近论文提出的数据增强的集中方法的对比。
Cutout 数据增强会移除图像的部分区域(见下图)。这会迫使模型在执行分类时不过于相信特定的特征。但是,如果图像的某部分充满了无用信息,则这种操作就浪费了。CutMix 的做法则不同,其是将图像的一部分剪切下来再粘贴到另一张图像上。其基本真值标签会根据补丁的面积比例进行调整,比如狗的部分占 0.6,猫的部分占 0.4。
从概念上讲,CutMix 在目标的可能组成成分方面有更宽广的视角。裁减掉的部分会迫使模型学习使用不同的特征组合进行分类。这可避免信心过高。因为是用另一张图像替代该区域,所以图像中的信息量和训练效率都不会受到显著的影响。
主干网络在Darknet53的基础上,借鉴2019年CSPNet的经验,产生的Backbone结构,其中包含了5个CSP模块。
包含了5个CSP个模块,每个模块前面的卷积核的大小都是33,stride=2,因此起到下采样的作用。输入图像是608608,所以特征变化的规律是608-》304-》152
本文发布于:2024-01-31 23:46:30,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170671599232268.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |