一、FPN结构
FPN结构图:
FPN通过利用常规CNN模型内部从底至上各个层对同一scale图片不同维度的特征表达结构,提出了一种克有效在单一图片视图下生成对其的多维度特征表达的方式。它可以有效地赋能常规CNN模型,从而可以生成出表达能力更强地feature maps以供下一阶段计算机视觉任务(如object detection/semantic segmentation等)来使用。本质上说它是一种加强主干网络CNN特征表达的方法。
二、PAN结构
PAN即PANet,结构图如下:
简答来说,就是在FPN上采样融合的特征金字塔之后,又增加了一个下采样融合的特征金字塔。原版的PAN,最后采用下采样融合时使用的是shortcut操作而不是YOLOV4中的concat操作。PAN代码如下:
class PAN(nn.Module):
def __init__(self, planes):
super(PAN, self).__init__()
self.P3_down = nn.Conv2d(planes,
planes,
kernel_size=3,
stride=2,
padding=1)
self.P4_down = nn.Conv2d(planes,
planes,
kernel_size=3,
stride=2,
padding=1)
self.P5_down = nn.Conv2d(planes,
planes,
kernel_size=3,
stride=2,
padding=1)
self.P6_down = nn.Conv2d(planes,
planes,
kernel_size=3,
stride=2,
padding=1)
def forward(self, inputs):
[P3, P4, P5, P6, P7] = inputs
P3_downsample = self.P3_down(P3)
P4 = P3_downsample + P4
P4_downsample = self.P4_down(P4)
P5 = P4_downsample + P5
P5_downsample = self.P5_down(P5)
P6 = P5_downsample + P6
P6_downsample = self.P6_down(P6)
P7 = P6_downsample + P7
del P3_downsample, P4_downsample, P5_downsample, P6_downsample
return [P3, P4, P5, P6, P7]
版权声明:本文为CSDN博主「易水潇潇666」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_40373651/article/details/121482491
暂无评论