Faster R-CNN是一种检测算法,与之前提出的算法差异较大的地方在于RPN的提出,RPN的作用是在图像上提取出可能存在物体的矩形区域并给出关于存在目标可能性的打分,给定后的区域将用于分类。
RPN的输入可以为任意尺寸的图片,经过网络的计算后,将输出5个变量,其中四个是预测目标所在位置矩形的坐标,包括中心点坐标和矩形的长宽,第五个变量是对输出矩形框的打分,打分越高矩形框的置信度越高。
RPN的工作过程是将图片输入后,利用卷积网络对图片的特征进行提取并得到一个feature map,在feature map上可以采用滑窗,每一个滑窗都将映射一部分图片的特征,特征输入至两全连接层,分别输出bbox回归和bbox分类,在原论文中特征映射进入全连接层之前,先采用3*3卷积预处理(在输入图片较大的前提下)。
对于每个滑窗的所在位置,同时预测多个建议(k个),回归层输出4k个坐标,分类层输出2k个分数(是否是目标,或可采用softmax实现,具体实现待定),每个中心点存在33个anchor(尺寸数比例数),分类层的输出最终将整合为一个值,其中回归层输出的坐标是来自原图的坐标。
RPN的feature map和原图之间存在着平移不变性,feature map与原图可以通过线性变换直接对应,RPN 是一种独特的多尺寸定位方法,提升计算效率,共享卷积层。
对于训练RPN,每个anchor分配一个双值label(是否是一个目标),两类正标签:具备与真值框(ground truth)的最大IoU;与任意真值框存在大于0.7的IoU;采纳第一种方法以防止少数情况第二种不存在结果。单个真值框可以赋予多个anchor正标签,对于所有IoU均小于0.3的anchor赋予负标签,非正非负标签对于训练无帮助。
定义损失函数:
分类损失函数 log loss;坐标损失函数 smooth L1;第二项权值10(与二者N相关),坐标回归的损失函数中,只有正标签才参与计算,每一个anchor下的坐标回归独立运算,因此可以很好的预测多尺寸目标。
RPN可以被端到端的训练,训练中采用反向传递和随机梯度,由于网络中将产生大量的anchor,我们将随机选取256个anc