因为是resnet50+FPN。这里的backbone.py 主要是先通过resnet.py配合config,我的是生成resnet50的网络,并且由于
"R-50-FPN": ResNet50FPNStagesTo5,又要配合FPN,所以可以看到配置是在index是1~4层,也就是conv2~conv5都作为特征提取层的。如果不配合FPN,只是标准的残差,只要conv5是特征提取层。
# ResNet-50-FPN (including all stages)
ResNet50FPNStagesTo5 = tuple(
StageSpec(index=i, block_count=c, return_features=r)
for (i, c, r) in ((1, 3, True), (2, 4, True), (3, 6, True), (4, 3, True))
)
那么backbone.py就是结合resnet.py和fpn.py 生成backbone。
body = resnet.ResNet(cfg)
fpn = fpn_module.FPN()
最终是用C2~C5来构建FPN,P2~P5。egP2参数是(batchsize,256,1/4,1/4)。并且对C5用LastLevelMaxPool,构建了P6层。它们通道数都是256.
# Copy