赞
踩
FPN结构图:
FPN通过利用常规CNN模型内部从底至上各个层对同一scale图片不同维度的特征表达结构,提出了一种克有效在单一图片视图下生成对其的多维度特征表达的方式。它可以有效地赋能常规CNN模型,从而可以生成出表达能力更强地feature maps以供下一阶段计算机视觉任务(如object detection/semantic segmentation等)来使用。本质上说它是一种加强主干网络CNN特征表达的方法。
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]
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。