Faster RCNN 目标检测之Fast RCNN检测器

上一篇文章介绍了rpn的结构和具体实现。今天来介绍faster rcnn中的另一个子网络,fast rcnn检测网络。

  • 网络结构
    如下图所示,检测网络的具体结构如下图所示。
    首先,backbone输出的特征图和rpn网络输出的roi同时进入roi pooling层,将每一个roi对应的特征图区域,池化为统一大小(7 * 7)。pooling的结果然后进入classifier(VGG网络分类器中前两个全连接层),最后分别进入两个不同的全连接层分支,上面一个全连接层输出每个roi的类别概率/得分,下面一个全连接层输出每个roi的坐标偏移。

Faster RCNN 目标检测之Fast RCNN检测器_第1张图片

  • 实现细节
    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 目标检测之Fast RCNN检测器_第2张图片

在下一节中,我会重点介绍faster rcnn中的Loss。

你可能感兴趣的:(pytorch,cnn,python,目标检测)