YOLOv5的Neck从backbone中获取相对于较浅的特征,再与深层次的语义特征concat到一起。从图中可以看出,neck在左路通过Upsample上采样的方式,向特征图中插值,使特征图的尺度变大,以便于融合来自backbone的特征图,做特征的向上融合,特征图不断变大;neck的右路继续做下采样,一是为了获取不同尺度的特征图,二是使浅层的...
利用双线性插值将它们上采样到S尺度,进行后续融合。空间注意力机制通过Concat层将3个上下文特征的通道进行合并; 然后特征图依次经过1×1卷积层、ReLU激活层、3×3卷积层和sigmoid激活层,为每个特征图生成相应的空间权值。生成的权值映射和合并通道后的特征映射经过Hadamard乘积操作,将其分离并添加到输入特征映射M5中,将...
在YOLOv5模型上通过P2层特征引出检测头结构如图,P2层检测头分辨率为160x160像素,相当于在主干网络只进行了2次下采样操作,含有目标更为丰富的底层特征信息。颈部网络中自上而下和自下而上得到的两个P2层特征与主干网络中的同尺度特征通过concat形式进行特征融合,输出的特征为3个输入特征的融合结果, 这样使得P2层检测...
为了实现上述微小目标同样可以达到较好的检测效果, YOLOv5模型上通过P2层特征引出了新的检测头. P2层检测头分辨率为160×160像素, 相当于在主干网络中只进行了2次下采样操作, 含有目标更为丰富的底层特征信息. 颈部网络中自上而下和自下而上得到的两个P2层特征与主干网络中的同尺度特征通过concat形式进行特征融合,...
CSPDarknet在Darknet的基础上增加了CSP结构。进一步减少计算量并且增强梯度的表现。主要做法是在输入block之前,将输入分为两个部分,其中一部分通过block进行计算,另一部分直接通过一个shortcut进行concat,当然两个分支都会先使用一个1x1的卷积层将通道数减半,这样能保证concat之后通道数不变。
YOLOv5s的CSP结构是将原输入分成两个分支,分别进行卷积操作使得通道数减半,然后一个分支进行Bottleneck * N操作,然后concat两个分支,使得BottlenneckCSP的输入与输出是一样的大小,这样是为了让模型学习到更多的特征。 YOLOv5中的CSP有两种设计,分别为CSP1_X结构和CSP2_X结构。
SPPF由SPP改进而来,SPP先通过一个标准卷积模块将输入通道减半,然后分别做kernel-size为5,9,13的max pooling(对于不同的核大小,padding是自适应的)。对三次最大池化的结果与未进行池化操作的数据进行concat,最终合并后channel数是原来的2倍。 yolo的SPP借鉴了空间金字塔的思想,通过SPP模块实现了局部特征和全部特征。
1、数据加强 2、滑动窗口检测:将图片分割为n个小区域分别检测,最后在concat成正常图像大小。本文也是主要介绍这种思想。 小目标训练数据集 获取方式 关注公众号 datayx 然后回复小目标即可获取。 相关代码 只需要对yolo下的yaml文件进行如上的配置,就可以大大地提高小目标监测的精度,但是处理时间可能会有所上升。
CSP结构主要思想是在输入block(如Bottleneck)之前,将输入分为两个部分,其中一部分通过block进行计算,另一部分直接通过一个带卷积shortcut进行concat。主要作用是加强CNN的学习能力、减少内存消耗,减少计算瓶颈,现在的网络大多计算代价昂贵,不利于工业的落地。
在SPP模块中,使用k={11,55,99,1313}的最大池化的方式,再将不同尺度的特征图进行Concat操作。 研究发现,采用SPP模块的方式,比单纯的使用k*k最大池化的方式,更有效的增加主干特征的接收范围,显著的分离了最重要的上下文特征。 4 Neck 4.1 FPN+PAN结构 ...