上一篇文章介绍了rpn的结构和具体实现。今天来介绍faster rcnn中的另一个子网络,fast rcnn检测网络。
- 网络结构
如下图所示,检测网络的具体结构如下图所示。
首先,backbone输出的特征图和rpn网络输出的roi同时进入roi pooling层,将每一个roi对应的特征图区域,池化为统一大小(7 * 7)。pooling的结果然后进入classifier(VGG网络分类器中前两个全连接层),最后分别进入两个不同的全连接层分支,上面一个全连接层输出每个roi的类别概率/得分,下面一个全连接层输出每个roi的坐标偏移。
- 实现细节
fast rcnn的结构比较简单,也容易理解,代码实现也并不复杂。
这里主要解释ROI Pooling是如何实现的。下图演示了ROI Pooling的过程。其具体过程如下:
1、首先得到每个roi在特征图上对应的区域,roi_region = np.round(roi * spatial_scale)。
2、然后将得到的区域划分成out_h * out_w的格网,每一个格网的大小为h // out_h, w // out_w。
3、最后在每个格网进行max pooling。
在下一节中,我会重点介绍faster rcnn中的Loss。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。