yolo head 整个网络结构如下图1所示: 图1 yolov4结构 1.1 BackBone 1.1.1 CSP模块 CSP在论文《CSP:A New Backbone that can Enhance Learning Capability of CNN 》提出,把CSP(Cross Stage Partial)应用到ResNe(X)t,模型结构如下图2所示。 图2 CSP结构应用到ResNe(X)t 从结构上来看,CSP是将...
(nn.Module): ''' 这里与darknet53最大的不同是: 每一次Resblock_body 都会采用csp结构,将输入利用卷积的方式分为2个部分(split_conv0, split_conv1),这两部分其中一部分会和原始darknet一样,做resnet的残差卷积,然后在做1x1卷积,最后与另一部分进行cat拼接操作,很像残差结构,但并不是,残差是各个位置相加...
交叉阶段部分连接(CSP)CSPNet 将密集模块的输入特征图分为了两部分。第一部分 x_₀’ 会绕过密集模块,成为下个过渡层的输入的一部分。第二部分 x_₀’’ 则会通过密集模块,如下图所示。这种新设计通过将输入分为两部分而降低了计算复杂度——此时仅有一部分输入会经过密集模块。CSPDarknet53 YOLOv4 使用...
1.2 YOLO V4的创新点 为了便于分析,将Yolov4的整体结构拆分成四大板块: (1)输入端:这里指的创新主要是训练时对输入端的改进,主要包括Mosaic数据增强、cmBN、SAT自对抗训练。 (2)BackBone主干网络:将各种新的方式结合起来,包括:CSPDarknet53、Mish**函数、Dropblock。 (3)Neck:目标检测网络在BackBone和最后的输出层...
Yolov4的结构图和Yolov3相比,因为多了CSP结构,PAN结构,如果单纯看可视化流程图,会觉得很绕,不过在绘制出上面的图形后,会觉得豁然开朗,其实整体架构和Yolov3是相同的,不过使用各种新的算法思想对各个子结构都进行了改进。 先整理下Yolov4的五个基本组件:
Yolov3是2018年发明提出的,这成为了目标检测one-stage中非常经典的算法,包含Darknet-53网络结构、anchor锚框、FPN等非常优秀的结构。 本文主要目的在于描述Yolov4和Yolov3算法的不同及创新之处,对Yolov3的基础不过多描述。 不过大白也正在准备Yolov3算法非常浅显易懂的基础视频课程,让小白也能简单清楚的了解Yolov3的...
1.2 CSPnet结构 resblock_body的结构进行修改,采用CSPNet结构,即增加一个大的残差边将输入数据和最后的输出数据进行堆叠(concatenate) 分别取CSPDarknet53的最后三个特征层(8倍下采样、16倍下采样、32倍下采样),作为提取的特征输出 defdarknet_body(x): ...
CSPnet结构并不算复杂,就是将原来的残差块的堆叠进行了一个拆分,拆成左右两部分: 主干部分继续进行原来的残差块的堆叠; 另一部分则像一个残差边一样,经过少量处理直接连接到最后。 因此可以认为CSP中存在一个大的残差边。 代码语言:javascript 复制 #---# # CSPdarknet的结构块 # 存在一个大残差边 # 这个大...
采用CSP结构有如下几点好处: 1.加强CNN学习能力 2.删除计算瓶颈 3.减少内存成本 CSPNet实际上是基于Densnet的思想,即首先将数据划分成Part 1和Part 2两部分,Part 2通过dense block发送副本到下一个阶段,接着将两个分支的信息在通道方向进行Concat拼接,最后再通过Transition层进一步融合。CSPNet思想可以和ResNet、ResNe...