声明:今天我们解析的Faster-RCNN网络底层源码的backbone主干网络是由ResNet和FPN构成,以前也见过VGG的backbone主干网络构成的Faster-RCNN网络,相关论文我之前也草草的过了一遍,作者原文使用的是VGG构建的主干网络。今天的源码解析均依据,手中现有代码实现。
Faster-RCNN网络结构介绍
我们今天就按照这个顺序来简单分析一下Faster-RCNN网络底层源码:
backbone主干网络
-
参数可控的ResNet50 or ResNet101网络
-
残差快主体结构
-
通过类下采样的方式实现,低阶特征 --> 高阶特征(高阶特征的提取)
-
使用backbone获取特征图并共享到RPN网络和RoiPooling中
-
连续下采样
逻辑图:
-
自定义shape,计算特征图大小
FPN源码解析
注释说明,标注不易,多多鼓励吧
- 在call方法中实现高阶特征(通过池化下采样之后)和低阶特征的融合
RPN网络源码解析
- 实例属性操作
- 初始化非极大值抑制的对应参数以及对象在初始化过程中完成实例化anchor框、正负样本划分参数接受、RPN网络中的分类和回归损失等参数的初始化和赋值工作。
- FPN中的前向传播就不说了,没啥新鲜的
- FPN网络中的损失计算
- 候选区域计算
- 候选区域类别列表获取
- 计算候选区域结果
- 候选区域类别列表获取
至此,Faster-RCNN网络结构的backbone主干网络源码解析完成,代码标注不易,欢迎点赞收藏。