Faster R-CNN的Region Proposal Network详解
Faster R-CNN引入了Region Proposal Network(RPN)实现了候选区域的端到端生成。请详细解释RPN的工作原理、锚框机制和训练方法。
回答
屠龙少年
Faster R-CNN由Ren等人于2015年提出,核心创新是RPN(Region Proposal Network),将候选区域生成也纳入神经网络,实现端到端的目标检测。
RPN工作原理:
- 输入的卷积特征图(如VGG-16的conv5_3,大小W×H×512)。
- 用一个3×3卷积滑动窗口在特征图上滑动,将每个位置映射到512维特征向量。
- 该特征向量送入两个并列的1×1卷积层:
- 分类层(cls layer):输出2k个分数(每个锚框是前景或背景的概率),k为每个位置的锚框数量。
- 回归层(reg layer):输出4k个坐标(每个锚框的边界框回归偏移量)。
锚框(Anchor Boxes)机制:
- 在每个滑动窗口位置,预定义k个不同尺度和宽高比的锚框(通常k=9:3种尺度×3种宽高比)。
- 锚框与输入图像对齐,不依赖于图像内容。
- 训练时根据锚框与真实框的IoU分配正/负标签。
训练方法:
- 端到端联合训练(Alternating Training或Approximate Joint Training)。
- 损失函数:L({p_i},{t_i}) = 1/N_cls Σ L_cls(p_i,p_i*) + λ/N_reg Σ p_i*·L_reg(t_i,t_i*)
- 正样本:与任一真实框IoU最高的锚框,或与任意真实框IoU>0.7的锚框。
- 负样本:与所有真实框IoU<0.3的锚框。
- 每个Mini-batch采样256个锚框,正负比约1:1。
在Faster R-CNN中的角色: RPN生成约2000个候选框,经NMS筛选后输入Fast R-CNN检测头进行精确分类和回归。