禁止任何形式的转载!
前言
《Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks》
论文地址:https://arxiv.org/abs/1506.01497.
Fast R-CNN发表的同年,2015年6月 Faster R-CNN发表于NIPS上。将一直以来使用的Selective Search提取候选框的方法,改用卷积神经网路( RPN tells the Fast R-CNN module where to look.)。这样Faster R-CNN目标检测速度有了极大的提升。建议先阅读Fast R-CNN,更容易理解这篇论文中的一些设计思路,因此在有延续Fast R-CNN方法的地方可能不会那么细致解释为什么这样设计。
Faster R-CNN网络结构
接下来从下往上介绍整个网络结构:
- backbone: 特征提取网络采用的是VGG16,前面13层卷积网络输出feature map。输入图片进行缩放,使得长边小于等于 1000,短边小于等于 600(至少有一个等于)。
- RPN( Region Proposal Networks):在feature map上使用一个3x3的滑窗(卷积+ReLu),之后再分别使用1*1的卷积送给分类和回归。分类层为二分类,一次性给出9个锚框内正负样本的概率(通过一个点以及周围区域512维的特征去推断9种锚框的情况,是不是感觉很神奇,其实这里对应原图还是有较大的感受野)。边框回归也同理,一次性预测9个框的坐标。
训练时: 与ground truth重叠比例最大的锚框记为正样本 (保证每个ground true 至少对应一个正样本anchor),对剩余的锚框,如果其与某个标定区域重叠比例大于0.7,记为正样本(每个ground truth可能会对应多个正样本anchor,但每个正样本anchor只能对应一个ground truth);如果其与任意一个标定的重叠比例都小于0.3,记为负样本。选取几率大的12000个进行NMS后剩~2000个,训练时从中随机选取正负样本各128个 。 - 选取候选区:这里feature map上一个点就有9个框,这样计算大概就有20000个锚框(当然,feature map大小与输入图像大小有关,卷积层和Pooling层对图片输入大小其实没有size的限制,因此RCNN系列的网络模型其实非必需把图片resize到固定大小)。
预测时: 会根据分类得到的分数,~6000个候选区进行非极大值抑制NMS(IoU阈值为0.7),预测时选用3