目录
(1_) stem : 7x7,64, stride 2,padding 3
(2_) layer1 ---(第一层的downsample 步长为1,因为第一层尺寸发生的变化是在 max pool 层,之后尺寸并没有发生变化)
(1_) P5 输出 <------------------- C5
(2_) P4输出 <------------- C4 + P5(fpn_layer 之前)
(3_) P3输出 <------------- C3 + P4(fpn_layer 之前)
一、FCOS的整体网络结构
如图1所示,整体网络结构分为ResNet骨干网络和FPN网络两部分。
图1 FCOS的网络结构 ResNet+FPN
图2 FCOS 论文中的网络结构
1. ResNet网络部分
接下来举例计算一下不同层输出特征尺寸是怎么变化的。Conv2d输出的尺寸计算公式如图2所示
图2 Conv2d输出尺寸的计算公式
图 3 ResNet基本模块前向传播
如图 3 所示每个模块的前向传播,每个卷积层后面都跟有归一化层和relu激活函数。
举例:输入img (3,1120,800)
(1_) stem : 7x7,64, stride 2,padding 3
stem输出 (64,560,400)
(2_) layer1 ---(第一层的downsample 步长为1,因为第一层尺寸发生的变化是在 max pool 层,之后尺寸并没有发生变化)
输出 (64,280,200)
输出 (64,280,200)
输出 (64,280,200)
输出 layer_out = (256,280,200)
接下来再重复 2 遍。
--(输入 x 来自 max pool 的输出)
输出 connection =(256, 280, 200)
layer1_out = (256,280,200)
(3_)layer2
输出 (128,140,100)
输出 (128,140,100)
输出 (512,140,100)
一共重复4次
输出 (512,140,100)
layer2_out = (512,140,100) ------------> C3
(4_) layer3
输出 (256,70,50)
输出 (256,70,50)
输出 (1024,70,50)
一共重复 6 次
输出 (1024,70,50)
layer3_out = (1024,70,50) ------------> C4
(5_) layer4
输出 (512,35,25)
输出 (512,35,25)
输出 (2048,35,25)
一共重复3次
输出 (2048,35,25)
layer4_out = (2048,35,25) ------------> C5
2. FPN网络
(1_) P5 输出 <------------------- C5
输出 (256,35,25)
输出 (256,35,25)-----------> P5
(2_) P4输出 <------------- C4 + P5(fpn_layer 之前)
输出 (256,70,50)
输出 (256,70,50)
然后 加和
输出 (256,70,50)-----------> P4
(3_) P3输出 <------------- C3 + P4(fpn_layer 之前)
输出 (256,140,100)
输出 (256,140,100)
然后加和
输出 (256,140,100)-----------> P3
(4_) P6输出 <------------- P5
输出 (256,18,13)-----------> P6
然后经过 Relu层输入给P7
(5_)P7 输出 <------------- P6
输出 (256,9,7) -----------> P7