RPN的原理和流程
我们首先输入图片,并用卷积提取特征。
在设计RPN网络之前,需要想明白几个问题。
A. 候选锚框该如何设定,称为锚框的设计,这基于以下三点考虑:
- 锚框的大小;
- 锚框的长宽比;
- 锚框的铺设间隔。
B. 如何从这些候选锚框中,选出位置合适的锚框,这称为锚框的匹配:
- 正样本:最佳匹配或 I o U ≥ θ + IoU \ge \theta_+ IoU≥θ+
- 负样本: I o U < θ − IoU \lt \theta_- IoU<θ−
- 忽略样本:非正非负。
注:正样本是针对锚框的匹配程度。
C.如何从这些候选锚框中,选出对象合适的锚框,这称为锚框的分类:
正负样本 + 二分类函数
D. 预设的锚框不能坐以待毙,总得尽可能与标签接近吧,这称为锚框的回归:
正样本 + SmoothL1损失函数
其目标值计算,有如下公式:
也就是说,在提取特征后,我们的步骤如下:
实际上,在RPN网络中,回归与分类是双线并行的,思路是如此:
分类部分是为了挑出检测到目标的,框定面积合适的锚框;
回归部分是为了把每个锚框做一些修正,不顾你好坏,弄得和标签像一些;
综合上述考量,RPN选出了合适的锚框且做出了一些优化,一举两得。
锚框的设计
我们规定了三种尺寸,以及三种长宽比例,产生了九个锚框。
生成候选区域
通过回归和分类以后,我们已经找到了是前景且经过优化的锚框;
最后呢,我们利用非极大值抑制(NMS)去掉冗余的候选区域,输出最终的候选区域。
Fast R-CNN原理和流程
其中,我们通过RPN完成了前三个步骤。
Faster R-CNN将得到的候选区域与整张特征图输入RoI,等价于前三步骤。
Fast R-CNN是先生成候选区域,后提特征,这是相反的。