YOLOV6网络结构

发布于:2023-01-04 ⋅ 阅读:(418) ⋅ 点赞:(0)

1.整体结构

 由上图所示,从整体上来看,YOLOV6的网络结构与YOLOV4、YOLOV5是很相似的,尤其是backbone和neck,但是其中的实现模块是有变化的;但最大的不同在于Head部分,采用的是YOLOX的Head方式,将分类与回归分为两个支路,进行了解耦操作;具体内容下面将会详细的介绍。

2. Backbone

 可见,Backbone的实现的基本模块为RVB1_X结构,其全程为RepVGGBlock_X,表示由多个RepVGGBlock组成;

(1)RepVGGBlock

 上图是RepVGGBlock论文中绘制的图像,整个网络包括两种残差结构,如上图中的绿框红框

<1> 绿框

其残差结构仅仅包含Conv1*1残差分支,用另一种表示为:

  两种的不同在于,Rep-I使用的Conv+BN模块,其步长都为2,用于进行降采样,如主干网络中的下面红框中的两种,Rep-!hui进行降采样,将输入降采样到1*32*320*320,而剩余的RVB1_X模块中,其第一个RepVGGBlock都是采用的Rep-I的方式,先进行降采样。

<2> 红框 

红框不仅包含Conv1*1的残差结构,而且包含了一个Identity分支,这里常用BN层表示,如下图所示

 其另一种表示为:

 其中的卷积为1*1和3*3,且步长为1,通常是通道和size没有变化,常用在RVB1_X中的后面部分,如下图所示:

(2)SimSPPF

    结构如下图所示:

     其与YOLOV4、YOLOV5中的SPP结构是类似的,目的都是为了正大感受野,但是不同的是这里将9*9和13*13的池化核都用5*5的池化核来表示,极大的降低了计算量。

3. Neck部分

    结构上与YOLOV4的PANet结构类似,先上采样融合再下采样融合,但是这里却将基本模块更换为了效果更佳的RepVGGBlock结构,整体结构如下图所示:

   等同于:

        其中重要的结构有两种,分别为RVB2_XRVB3_X,其实两种结构基本上是一样的,其最大的不同在于它们的第一个RepVGGBlock结构,从上图可见,经过RVB2_X的特征图的通道数是有所变化的,而经过RVB3_X的特征图的通道是没有变化的。

 4. Head部分

        和YOLOX一样,YOLOv6也对检测头进行了解耦,分开了边框与类别的分类过程。将边框回归和类别分类耦合在一起时会影响性能,因为这样不仅加慢收敛的速度,也会提高检测头的复杂程度。 


网站公告

今日签到

点亮在社区的每一天
去签到