用cat连接这些采样图,生成通道数为12的特征图 # return self.conv(self.contract(x)) 1.4 CSP结构 yolo v4 与yolov4不同点在于,yolov4中只有主干网络使用CSP结构,而在yolov5中设计了两种CSP结构,CSP1_X应用于主干网络,CSP2_X结构应用于Neck中。 yolo v5 在neck部分,v4和v5中一样都采用FPN+PAN结构,v4的ne...
Yolov4网络结构中,借鉴了CSPNet的设计思路,在主干网络中设计了CSP结构。Yolov5与Yolov4不同点在于,Yolov5中设计了两种CSP结构,以Yolov5s网络为例,CSP1_X结构应用于Backbone主干网络,另一种CSP2_X结构则应用于Neck中,结构图如下图所示。 每个CSP模块前面的卷积核的大小都是3*3,stride=2,因此可以起到下采样的作...
backbone部分:focus结构、csp结构、spp结构 neck部分:PAN结构 head:三分支 Focus 这个结构是为了降低flops,替换yolov3/v4的一些层,参考这里。具体操作见下图,将特征图上间隔位置放置到相同通道。这是space2Depth的做法,破坏了相邻像素间的位置关系,这里有人的实验说明用conv替换后性能差异不大。 代码如下: classFocus(...
如上图,CSP1_X应用于backbone主干网络部分,输入输出的特征图shape不变;backbone是较深的网络,增加残差结构可以增加层与层之间反向传播的梯度值,避免因为加深而带来的梯度消失,从而可以提取到更细粒度的特征并且不用担心网络退化。 图3 CSP2_X主要应用在Neck部分,因为网络没那么深,去掉残差可以减少计算量。 最原始的...
YOLOv5l的结构如图2所示,其中CSPDarknet53包含C3块,这是CSP融合模块。CSP策略将基础层的特征图分成两部分,然后通过Cross-Stage层次结构合并它们。因此,C3模块可以有效地处理冗余的梯度,同时提高残差和稠密块之间信息传递的效率。C3是BottleNeckCSP的简化版本,目前用于最新的YOLOv5变体。
YOLOv5s的CSP结构是将原输入分成两个分支,分别进行卷积操作使得通道数减半,然后一个分支进行Bottleneck * N操作,然后concat两个分支,使得BottlenneckCSP的输入与输出是一样的大小,这样是为了让模型学习到更多的特征。 YOLOv5中的CSP有两种设计,分别为CSP1_X结构和CSP2_X结构。
yolov5主要分为输入端,backbone,Neck,和head(prediction)。backbone是New CSP-Darknet53。Neck层为SPFF和New CSP-PAN。Head层为Yolov3 head。 yolov5 6.0版本的主要架构如下图所示: 从整体结构图中,我们可以看到Backbone,neck和head由不同的blocks构成,下面是对于这三个部分,逐一介绍各个blocks。
YOLOv5网络结构 部分二:Backbone骨干网络 Backbone骨干网络主要作用是提取图片的特征,并不断缩小特征图,Backbone包含了CBL模块、Focus模块、CSP模块和SPP模块。 (1)CBL模块 CBL为标准卷积模块,包括普通卷积层Conv、批量归一化层BN和LeakyReLU激活函数层,如下图所示: ...
YOLOv5l的结构如图2所示,其中CSPDarknet53包含C3块,这是CSP融合模块。CSP策略将基础层的特征图分成两部分,然后通过Cross-Stage层次结构合并它们。因此,C3模块可以有效地处理冗余的梯度,同时提高残差和稠密块之间信息传递的效率。C3是BottleNeckCSP的简化版本,目前用于最新的YOLOv5变体。
1.1.2 CSP结构 Yolov5与Yolov4都有CSP结构,不同点在于,Yolov4中只有主干网络使用了CSP结构,如下图所示,是YOLOV4的CSP结构。 Yolov5中设计了两种CSP结构,以Yolov5s网络为例,CSP1_X结构应用于Backbone主干网络,另一种CSP2_X结构则应用于Neck中。 1.2 Neck ...