yolov5目标检测算法解析:基础网络模块

    Yolov5的模型定义分两个阶段,分别是基础模块设计阶段和完整模型搭建阶段。基础模块设计阶段,是基于pytorch架构的基本神经网络算子,进一步构造成具有特定功能和含义的自定义神经网络模块。完整模型搭建阶段,是通过结构化文件,利用基础模块,以搭积木的形式,构建成一个完整的神经网络模型。其基础模块的设计如下所述:

1、标准卷积模块(Conv)

        标准卷积模块(Standard convolution mudule),在源代码中被命名为Conv,它是由一个二维的卷积层(Conv2D)、批正则化层(BatchNorm2D)、一个激活层(Activation)串联组装而成,其网络结构如图1所示。

图1 标准卷积模块

 2、瓶颈结构模块(Bottleneck)

       瓶颈结构模块(Bottle neck mudule)在源代码中被命名为Bottleneck,它是两个标准卷积模块串联,输出再与输入进行短接而成,其网络结构如图2所示。

图2 瓶颈结构模块

3、跨阶段局部瓶颈模块(CSP Bottleneck) 

        跨阶段局部瓶颈模块(Cross stage partial bottle neck mudile)在源代码中被命名为BottlenectCSP,它是由一系列卷积层(ConvD)、标准卷积模块(Conv)、批正则化层(BN)、瓶颈结构模块(Bottlenect)等模块组成,其结构如图3所示。

图3 跨阶段局部瓶颈模块

 4、三卷积跨阶段局部瓶颈模块(C3)

        三卷积跨阶段局部瓶颈模块(Cross stage partial bottle neck mudule)在源代码中被命名为C3,它是由三个标准卷积模块和若干瓶颈结构模块组成,其网络结构如图4所示。

图4 三卷积夸阶段局部瓶颈模块

 5、空间金字塔池化模块(SPP)

        空间金字塔池化模块(Spatial pyramid pooling mudule)在源代码中被命名为SPP,它是由三个并列的池化层和两个标准卷积层组合而成,其网络结构如图5所示。

图5 空间金字塔池化模块

 6、快速空间金字塔池化模块(SPPF)

        快速空间金字塔池化模块(Fast spatial pyramid pooling mudule)在源码中被命名为SPPF,同样是由三个池化层和两个标准卷积组成,但其网络结构和SPP模块不一样,其网络结构如图6所示。

图6 快速空间金字塔池化模块

 7、聚焦模块(Focus)

        聚焦模块(Focus mudule)在源代码中被命名为Focus,它的作用是把宽度和高度上的像素进行拆分,并重组到通道维度上,从而在特征信息不丢失的情况下实现特征的尺度减半。它是由特征重组层(Reorg Layer)和一个标准卷积模块组成,其网络结构如图7所示。

图7 聚焦模块

猜你喜欢

转载自blog.csdn.net/qq_28249373/article/details/129753648