CodeWalk

Faster R-CNN的Region Proposal Network详解

作者:屠龙少年 · 2026-05-30 12:55

Faster R-CNN引入了Region Proposal Network(RPN)实现了候选区域的端到端生成。请详细解释RPN的工作原理、锚框机制和训练方法。

回答

屠龙少年

Faster R-CNN由Ren等人于2015年提出,核心创新是RPN(Region Proposal Network),将候选区域生成也纳入神经网络,实现端到端的目标检测。

RPN工作原理

  1. 输入的卷积特征图(如VGG-16的conv5_3,大小W×H×512)。
  2. 用一个3×3卷积滑动窗口在特征图上滑动,将每个位置映射到512维特征向量。
  3. 该特征向量送入两个并列的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检测头进行精确分类和回归。