YOLOv4之网络结构剖析

1.yolov4的网络结构

yolov4的网络结构包括

  • backbone
    • CSPDarknet53
  • Neck
    • SPP
    • PANet
  • Dence Prediction
    • yolo head

整个网络结构如下图1所示:

YOLOv4之网络结构剖析_第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所示。

YOLOv4之网络结构剖析_第2张图片

图2 CSP结构应用到ResNe(X)t

从结构上来看,CSP是将输入通道分成两部分,一部分经过常规Res(X)Block后跟另一部分进行通道拼接,拼接后进入transition layer。CSP将梯度的变化从头到尾地集成到特征图中,在减少了计算量的同时可以保证准确率(或有所提升)。其中transition layer是一个卷积加池化,用于整合学到的特征,降低特征图的尺寸。

1.1.2 CSPDarknet53

参考了yolov4源码的cfg文件,画了个cspdarknet53比较详细的结构图,如下所示:

YOLOv4之网络结构剖析_第3张图片

YOLOv4之网络结构剖析_第4张图片

图4 CSPDarknet53结构图

总体来看,每个CSP模块都有以下特点:

  • 相比于输入,输出featuremap大小减半
  • 相比于输入,输出通道数增倍
  • 经过第一个CBM后,featuremap大小减半,通道数增倍

CSP1和其他CSP有所不同:

  • 经过模块第二个CBM后,CSP1 featuremap大小和通道数都不变,但是其他模块featuremap大小不变,通道减半
  • 经过最后一个CBM后,CSP1 featuremap大小不变,通道数减半,但是其他模块featuremap大小通道数都不变

1.2 Neck

yolov4的Neck部分主要使用SPP和PANet模块。

1.2.1 SPP

SPP(空间金字塔)可以使得多个尺寸特征融合在一起,输入经过3个maxpool然后concat在一起,maxpool大小分别是13,9和5,yolov4中得SPP模块如下图5所示。

YOLOv4之网络结构剖析_第5张图片

图5 SPP

1.2.2 PANet

PANet的网络结构如图6所示,由5个核心模块组成。其中(a)是一个FPN,(b)是PAN增加的自底向上的特征融合层,©是自适应特征池化层,(d)是PANet的bounding box预测头,(e)是用于预测掩码的全连接融合层。

YOLOv4之网络结构剖析_第6张图片

图7 PaNet结构

PANet是加强版的FPN,通过融合自底向上和自顶向下两个路径增加模型的表征能力。

yolov4的PANnet结构如下图6所示,结构中包括了两次上采样和两次下采样,而与yolov3的Neck部分只包括上采样。

YOLOv4之网络结构剖析_第7张图片

图6 PANet

欢迎指正!

ref:

  • YOLOv4: Optimal Speed and Accuracy of Object Detection

  • CSPNet: A New Backbone that can Enhance Learning Capability of CNN

  • Path Aggregation Network for Instance Segmentation

你可能感兴趣的:(目标检测,深度学习,计算机视觉,目标检测)