ResNet+ FPN网络结构

1.ResNet

论文地址:ResNet
 ResNet在PyTorch的官方代码中共有5种不同深度的结构分别为18、34、50、101、152,和论文的完全一致。如下图所示,下图是论文的截图。
在这里插入图片描述
 根据Block类型,可以将这五种ResNet分为两类:一种是基于BasicBlock;另一种基于Bottleneck。

1.1 Block前面的层

 如下图所示,
在这里插入图片描述
 上图红色框的层的具体结构如下图所示,这里只包含卷积层和pooling层,而BN层和ReLU层等均未画出。
 输入输出用椭圆形表示,中间是输入输出的尺寸:channel×height×width
在这里插入图片描述
 这里补充一个卷积的基础知识(输出的宽公式如下图),O是代表输出尺寸,K 是过滤器尺寸,P 是填充,S 是步幅。在这里插入图片描述
 零填充:K 是过滤器尺寸,那么输入和输出内容就总能保持一致的空间维度。
在这里插入图片描述

1.2 BasicBlock

 浅层网络ResNet18, 34都由BasicBlock搭成。下面就ResNet18叙述一下BasicBlock。
conv2_x
 conv2_x的结构比较简单,下图中方框内便是BasicBlock的主要结构——两个3×3 的卷积层,每个layer都由若干Block组成,又因为conv2_x的两个block结构完全相同,所以图中就x2代替。
在这里插入图片描述
conv3_x
 conv2_x和conv3_x就有所不同了(如下图),首先645656(c,h,w)输入到第一个block的conv1中,这个conv1的步长变为2,和conv2_x不同,这是为了降低输入尺寸,减少数据量,输出尺寸为1282828(c,h,w)。其次是将输入经过11128的kernel,步长为2,padding=1的卷积操作得到1282828的输出(这里补充一个知识点,1x1 卷积作用:降维和升维,简单来说就是通道数的增加和减少)这个部分就是PyTorch ResNet代码中的downsample,然后和第一条路线合并,简单来说就是1x1的卷积步长是2。
 到第二个block,由于已经降低了尺寸,第2个block的conv1的stride就设置为1。由于该block没有降低尺寸,residual和输出尺寸相同,所以也没有downsample部分。
在这里插入图片描述
 conv4_x和conv5_x结构上与conv3_x相同,具体就输通道数的改变已经输出尺寸的缩小,就不具体赘述。

1.3 Bottleneck

 Bottleneck,深层网络ResNet50, 101, 152乃至更深的网络,都由Bottleneck搭成。就ResNet50叙述一下Bottleneck。
conv2_x
 结构如下图所示,和Basicblock不同的一点是,每一个Bottleneck都会在输入和输出之间加上一个卷积层,只不过在layer1中还没有downsample,这点和Basicblock是相同的。至于一定要加上卷积层的原因,就在于Bottleneck的conv3会将输入的通道数扩展成原来的4倍,导致输入一定和输出尺寸不同。
在这里插入图片描述
conv3_x
 conv3_x结构如下图所示,输出尺寸是2565656,输入进入layer2的第1个block后,首先要通过conv1将通道数降下来,之后conv2负责将尺寸降低(stride=2,下图从左向右数第2个红圈标注)。到输出处,由于尺寸发生变化,需要将输入downsample,同样是通过stride=2的1×1卷积层实现。
 之后的3个block(layer2有4个block)就不需要进行downsample了(无论是residual还是输入),如下图从左向右数第3、4个红圈标注,stride均为1。因为这3个block结构均相同,所以用x3表示。
在这里插入图片描述
 conv4_x和conv5_x结构与conv3_x相同,就不赘述。

2.特征金字塔-Feature Pyramid Networks(FPN)

论文链接:RPN

2.1

  目标检测任务和语义分割任务里面常常需要检测小目标。但是当小目标比较小时,可能在原
图里面只有几十个像素点。
 对于深度卷积网络,从一个特征层卷积到另一个特征层,无论步长是1还是2还是更多,卷积核都要遍布整个图片进行卷积,大的目标所占的像素点比小目标多,所以大的目标被经过卷积核的次数远比小的目标多,所以在下一个特征层里,会学习到更多大目标的特点。
 特别是在步长大于等于2的情况下,大目标的特点更容易得到保留,小目标的特征点容易被跳过。
 因此,经过很多层的卷积之后,小目标的特点会越来越少。、
在这里插入图片描述
 如上图,特征图(feature map)用蓝色轮廓表示,较粗的轮廓表示语义上更强的特征图。

  • a. 使用图像金字塔构建特征金字塔。
    特征是根据每个不同大小比例的图
    像独立计算的,每计算一次特征都
    需要resize一下图片大小,耗时,
    速度很慢。
  • b. 检测系统都在采用的为了更快地检
    测而使用的单尺度特征检测。
  • c. 由卷积计算的金字塔特征层次来进
    行目标位置预测,但底层feature
    map特征表达能力不足。
  • d. 特征金字塔网络(FPN)和b,c一样快,
    但更准确。

 如下图,FPN的提出是为了实现更好的feature maps融合,一般的网络都是直接使用最后一层的feature maps,虽然最后一层的feature maps 语义强,但是位置和分辨率都比较低,容易检测不到比较小的物体。FPN的功能就是融合了底层到高层的feature maps ,从而充分的利用了提取到的各个阶段的特征(ResNet中的C2-C5)。
在这里插入图片描述

2.2特征金字塔FPN的构建(Mask R-CNN)

• 特征金字塔FPN的构建是为了实现特征多尺度的融合,在Mask R-CNN当中,我们取出在主干特征提取网络中长宽压缩了两次C2、三次C3、四次C4、五次C5的结果来进行特征金字塔结构的构造。
• P2-P5是将来用于预测物体的bbox,boxregression,mask的。
• P2-P6是用于训练RPN的,即P6只用于RPN网络中。
如下图所示(h,w,c)
在这里插入图片描述

FPN+Resnet

 FPN+Resnet网络结构如下所示
在这里插入图片描述

参考:https://zhuanlan.zhihu.com/p/79378841
参考:https://zhuanlan.zhihu.com/p/103263215

  • 9
    点赞
  • 64
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值