【论文研读】Faster-RCNN原理精读

前言:

半年前有读过对应的Faster-RCNN的论文,包括看过很多讲解,随着领域知识的不断加深,对这一经典论文的理解也更加深度,重新读关注更多细节问题,也获得了不少新的知识,原始研读文更关注论文本身的创新点,原研读文链接【Faster-RCNN】,可作为辅助参考。本博文则更关注完整流程内容细节方面的知识,希望能给大家启发。
最近在研读mask-rcnn,故而将faster-rcnn重新进行了细节上的阅读,并书写博文

mask-rcnn系列:
阅读的代码为:mask-rcnn benchmark
【github地址】
0.代码总览:【地址】
1.骨架网络【backbone.py及代码入口】
2.RPN层【粗分割的rpn.py】
3.ROI_HEAD【实现各个分支】
4.其他辅助代码杂会【其他】

完整流程概览

在这里插入图片描述
这是一个faster-rcnn的简单流程图,在看mask-rcnn时重新对该论文进行一个认识。全内容分为三个部分,(红框标注)特征提取部分,RPN(区域提议网路)部分,以及最后的分类和回归部分。

特征提取部分

特征提取通过基础的网络模型,最常用的是Resnet50,Resnet101。
输入:原始图片
输出:通过滑动卷积的形式输出对应的feature map(特征图)

RPN网络模型:

在这里插入图片描述
作用:有两个分支,分别为是否为前景物体的判断,和候选框的粗回归。
通过一个3*3卷积在特征图上进行滑动,对应每个cell(中心点),生成对应的k个anchor box(候选框),以进行后面的候选框回归以及点操作。

该部分作为全文创新点,最难搞懂,下面通过一定解释进行说明

在这里插入图片描述
计算量为哪些框含有物体(2k cls layer),含有物体的框偏移量有多少(4k reg layer)
这里回归出来的不是原始的坐标点(第一次为achor给定的候选框,如右所示),而是原始坐标点的偏移量(4k)

候选框生成

将生成的delta框的偏移量与anchor进行组合,生成原始的区域提议框,并进行如下操作:

  • 去除背景框
  • 去除分数低的框
  • NMS去除非极大值框
    然后生成对应ROI候选框,在特征图上进行尺度的统一化(ROIpooling操作)并进入到下一步RCNN的操作

在这里插入图片描述

分类和回归分支:

该部分来自RCNN,流程代码基本一致。
在这里插入图片描述
图源于mask-rcnn的操作,roialign应改为roipoling操作,其余基本一致
流程介绍如下:

  • 通过rpn生成的roi_box已经为优质的候选区域框,于对应的feature map进行roipooling操作,
  • 将尺度归一化的roi层进行特征提取,全连接分类输出三个变量,将概率和回归框的第二次偏移值进行处理
  • 首先确定对应框内最高概率的类别,并将它作为分类结构,进而重新对回归框进行第三次修补,
  • 后处理阶段:通过NMS,排序,删除候选框

流程细节


这是我看过最完整并且细节展示最详细的图,
根据给出的步骤细节,说明如下:

  • 特征提取网络
  • 找出对应的候选框
  • 通过后处理,1.删除全背景的候选框 2.有前景的候选框进行nms操作 3.取出得分较高的候选框,放回到特征图中
  • 通过映射的方式,将后处理后优质的ROI(候选区域)返回到特征图
  • 将各个优质候选框进行尺度统一的ROIpooling操作,再进行分类和回归
发布了68 篇原创文章 · 获赞 31 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/qq_35307005/article/details/102481877