1

我最近阅读了 RetinaNet 论文,但我还没有理解一个小细节:
我们有从 FPN (P2,...P7) 获得的多尺度特征图。
然后两个 FCN 头(分类器头和回归器头)对每个特征图进行卷积。
然而,每个特征图都有不同的空间尺度,那么,在所有卷积参数都是固定的情况下,分类器头和回归器头如何保持固定的输出量?(即步幅为 1 的 3x3 过滤器等)。

看看PyTorch 的 RetinaNet 实现中的这条线,我看到头部只是对每个特征进行卷积,然后所有特征都以某种方式堆叠(它们之间唯一的共同维度是 Channel 维度,它是 256,但在空间上它们是彼此的两倍)。
很想听听它们是如何结合在一起的,我无法理解这一点。

4

1 回答 1

1

在每个金字塔步骤的卷积之后,您将输出重塑为形状(H*W, out_dim)out_dim用于num_classes * num_anchors类头和4 * num_anchorsbbox 回归器)。最后,您可以沿H*W维度连接生成的张量,这现在是可能的,因为所有其他维度都匹配,并像在具有单个特征层的网络上一样计算损失。

于 2020-05-12T18:26:56.200 回答