YOLOV4网络详解

前言

随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。来源于哔哩哔哩博主“霹雳吧啦Wz”,博主学习作为笔记记录,欢迎大家一起讨论学习交流。

一、YOLOV4

在这里插入图片描述
在这里插入图片描述

相比于YOLOV3,YOLOV4提升他AP和FPS提升10和12.

在这里插入图片描述

CSP能够增强CNN的学习能力,移除计算瓶颈,减少显存使用。

原始论文CSPDenseNet将输入分成两个分支,然后对part 2进行一些了block,再通过Transition.最后再和part 1分支进行拼接,最后Transition.

YOLOV4先进行下采样,最后再进入CSP模块。然后将输入通过两个1x1的卷积层,这两个1x1的卷积层的通道数是输入通道数的一半(128-64).然后对part 2进行一些了block,再通过卷积.最后再和part 1分支进行拼接,最后卷积.

CSP DarkNet53网络结构如图:

在这里插入图片描述

ConvBNMish就是虚线部分:Conv2d卷积+Batch Norm批归一化+Mish激活函数

ResBlock:ConvBNMish+ConvBNMish,在两个ConvBNMish之后,再从主干联合输出

DownSample1:里面的ConvBNMish+ConBNMish也是一个残差结构,就是主分支引出一个支路,再和经过两个卷积之后联合输出。

但是和ResBlock结构有所不同的是,虚线部分的ResBlock它虽然也是残差结构,但是他经过两个卷积之后的通道数并没有发生变化。而DownSample1里面的残差结构的经过两个卷积的通道数都发生了变化:先是32,后是64.

另外,DownSample1里面的CSP结构和前面提到的CSP结构有点不同的是:之前提到的CSP结构是“YOLOV4先进行下采样,最后再进入CSP模块。然后将输入通过两个1x1的卷积层,这两个1x1的卷积层的通道数是输入通道数的一半(128-64)”,而DownSample1里面是没有变化,都是64.

从DownSample2之后的CSP模块就和最开始之前的CSP模块结构一致。

在这里插入图片描述

SPP是Spatial Pyramid Pooling,即空间金字塔池化(Spatial Pyramid Pooling),三个MaxPolling之后输出图像的宽度、高度和通道数都是保持不变。最后再将三个模块的输出和原输入进行Concat拼接。

SSP结构在一定程度上解决多尺度问题。

在这里插入图片描述

a左部分是网络主干,即backbone,一般是用来特征提取,a右部分是特征金字塔,即FPN。FPN是将高层的语义信息往低层进行融合。

b是和FPN刚好相反的步骤,是将底层的语义信息往高层进行融合。将FPN思想即将高层的语义信息往低层进行融合+将低层的语言信息往高层融合结合起来,即形成了PAN.YOLOV4中的PAN和原始论文当中的FPN不一样,是进行concatenation操作。

在这里插入图片描述

CSP DarkNet53时候,激活函数是Mish激活函数。但是在搭建PAN这个模块时候,激活函数是Leaky激活函数。

三个输出层上的预测特征层,最后一个1x1卷积只有卷积,没有BN和激活函数,通道数是(4+1+类别)x3。4是对每一个anchor对应预测四个参数,1是objectness,3代表对于每一个预测特征层都会产生三个不同的模板。

对比YOLOV3 SPP结构如图所示:(YOLOV3SPP用的FPN,YOLOV4用的PAN)在这里插入图片描述

在这里插入图片描述

先回顾YOLOV3左图:YOLOV3 采用和YOLOV2预测目标边界框一致,但是和SSD、Fast RCNN之前都不一样,之前是网络预测目标中心点回归参数是相对于Anchor的偏移量,而YOLOV3网络预测目标中心点回归参数不是相对于Anchor的偏移量,而是相对于当前边界框cell的左上角坐标。(将预测边界框的中心限制在当前cell中。)

从前面的网络结构图当中可以看出,最后三个不同尺度的预测特征图都是通过1x1卷积在最终预测特征层上进行预测输出。YOLOV3有三个预测特征层,每一个预测特征层有三个不同的模板。

假设现在是某一个预测特征层,当1x1卷积滑动到当前窗口时候,会对三个不同的模板都进行预测四个位置参数(Tx Ty Tw Th)+一个置信度分数+每一个类别分数(根据数据集采用,coco80类)。

虚线矩形框对应的就是anchor,Pw是anchor的宽度,Ph是anchor的高度。蓝色边界框是网络最终预测目标的一个位置及大小。

Bx=sigmoid(Tx)+Cx,Cx是当前cell的左上角x坐标,Bx是最终预测目标的x坐标,Tx是网络预测的位置参数x.同理By=sigmoid(Ty)+Cy,Cy是当前cell的左上角y坐标,By是最终预测目标的y坐标,Ty是网络预测的位置参数y.Bw=PwETw,其中Bw是最终预测目标的宽度,Pw是anchor的宽度.Bh=PhETh,其中Bh是最终预测目标的高度,Ph是anchor的高度.

综上所述:通过公式即可将网络预测的四个位置回归参数转化为最终目标边界框的位置参数。

极端情况下:如果GT在左上角,即中心=0,当x区域正无穷时候,才满足(根据sigma函数得知)

在这里插入图片描述

sigma函数的取值是在0-1之间;2sigma-0.5的取值是-0.5到1.5之间。在相同的x取值范围,y的变化更大。

在这里插入图片描述

YOLOv4的Mosaci数据增强:就是将四个图片拼接在一起,扩充样本训练多样性。

在这里插入图片描述

u版的YOLOV3 实现准则(实现部分):蓝色对于GT,黄色对于是Anchor 模板。将每一个GT与anchor 模板左上角进行一个重合再计算IOU,通过设置一个阈值比如0.3,大于0.3阈值的我们都会变成正样本,即第二个模板中满足条件。然后将GT映射到Grid网格(预测特征层上),黑色圆点对应的是GT的中心点。GT中心点落在哪个cell中,就由该cell当中满足阈值的模板作为正样本。通过此方法大大加大原论文中正样本数目,因为原论文中仅仅把只和GT重合度最高的anchor作为正样本数目。(下面是原始YOLOv3论文关于正负样本匹配)

正负样本匹配:针对一张图片有几个GT,我们就分配几个bounding box(prior),即每一个GT我们仅仅分配一个bounding box(prior)。

原则:1.与GT重合程度最大的bounding box(prior)作为正样本;

2.对于bounding box(prior)与GT也重合但他不是最大,比如超过某个阈值0.5,我们直接丢去这个预测结果。即既不是正样本也不是负样本。

3.如果bounding box prior没有任何GT,那么它没有位置和类别预测,仅仅有confidence score。

在这里插入图片描述

扩充正样本的数量:如果多个GT也是大于阈值,都作为正样本,因为原始YOLOV3中是将一个GT分配一个之分配一个anchor.

YOLOV4:每一个GT与anchor 模板左上角进行一个重合再计算IOU,通过设置一个阈值比如0.3,大于0.3阈值的我们都会变成正样本。然后将GT映射到Grid网格(预测特征层上),黑色圆点对应的是GT的中心点。GT中心点落在哪个cell中,就由该cell当中满足阈值的模板作为正样本。

在上面和左面都增加了两个grid cell,为哈这样做,因为2sigma-0.5的取值是-0.5到1.5之间。在x轴小于0.5,在y轴小于1.5(top),在x轴小于1.5,在y轴小于0.5(left),进一步扩充正样本数量

在这里插入图片描述

在这里插入图片描述

调整了anchor

在这里插入图片描述

CIOU

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
YOLOv4是一种高效的目标检测算法,具有极高的实时性能和较低的计算复杂度。其网络结构主要由三个部分组成:骨干网络、特征金字塔和检测头。 首先是骨干网络YOLOv4采用了CSPDarknet53作为其骨干网络,相比于以往的Darknet53,CSPDarknet53通过引入CSP(Cross Stage Partial)结构来提升网络的性能。CSP结构将输入特征图分为两部分,并在其中一部分上进行卷积操作,然后将结果与另一部分进行串联操作,这样可以减少计算量并保持信息传递的完整性。 其次是特征金字塔,特征金字塔由四个不同尺寸的特征图组成,分别用于检测不同大小的目标。为了生成这个金字塔,YOLOv4引入了Panet结构,即特征金字塔网络。Panet结构通过上采样和融合操作,将不同尺度的特征图进行融合,以便在不同尺度上进行目标检测。 最后是检测头,YOLOv4采用了三个并行的检测头,分别预测不同尺度的目标框。每个检测头输出相应的目标框、置信度和类别信息。为了提高检测精度,YOLOv4还使用了多尺度训练和数据增强技术,并引入了CIoU损失函数来优化边界框的预测。 总的来说,YOLOv4网络结构的设计充分考虑了骨干网络、特征金字塔和检测头的协同作用,通过引入CSP结构和Panet结构,以及采用多尺度训练和数据增强等策略,使得YOLOv4在目标检测任务上表现出了较高的准确性和实时性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿康Obliviate

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值