趋近智
两阶段目标检测器,例如R-CNN系列,首先在图像中提出可能包含对象的候选区域,然后对这些区域进行分类。早期方法如R-CNN和Fast R-CNN依赖于外部算法,例如Selective Search,来生成这些区域候选。虽然有效,但这一外部步骤通常计算成本高昂,并成为瓶颈,阻碍了真正的端到端训练和推理 (inference)。
Faster R-CNN引入了一项重要创新来解决这一瓶颈:区域候选网络(RPN)。RPN是一个全卷积网络,旨在直接从主干网络(如VGG或ResNet)生成的卷积特征图中高效预测对象候选。这种集成使得候选生成步骤能够与下游检测网络共享卷积特征,大大提高了速度。
设想主干网络处理输入图像后生成的深层卷积特征图。此特征图保留了空间信息,尽管分辨率低于原始图像。RPN通过在特征图上滑动一个小型卷积网络(通常使用3x3卷积核)来工作。
在特征图上的每个滑动窗口位置,RPN同时执行两项任务:
RPN不从零开始预测边界框(这是一个复杂任务),而是使用一组预定义的参考框,称为锚框(或简称锚点)。在RPN滑动窗口操作的每个位置,它会考虑多个锚框,这些锚框通常在尺度(大小)和长宽比(宽度与高度比)上有所不同。例如,一种常见配置是在每个位置使用9个锚框:即3种尺度与3种长宽比(例如1:1、1:2、2:1)的组合。
这些锚框作为潜在对象位置和形状的初始猜测或先验信息。RPN的任务不是凭空创建框,而是将每个预定义的锚框分类为“对象”或“背景”,并微调 (fine-tuning)有希望的锚框的坐标。
Faster R-CNN内部流程。RPN从主干网络获取特征,使用锚框,并通过分类和回归层生成候选。这些候选与主干特征一同送入最终的检测头部。
对于每个滑动窗口位置的个锚框,RPN具有两个并行的输出层:
训练期间,锚框根据其与真实对象框的交并比(IoU)进行标记 (token)。锚框可能被标记为:
RPN随后使用多任务损失函数 (loss function)进行端到端训练,该函数结合了:
RPN处理特征图后,我们获得大量潜在的对象候选,每个都带有对象性分数和调整后的坐标。这些候选中有许多会高度重叠和冗余。为了精简这组候选,通常会执行两个步骤:
剩余的候选(通常每张图像几百到几千个,例如Faster R-CNN在NMS后大约300个)随后与原始特征图一同被传递到Faster R-CNN检测器的第二阶段(通常称为RoI头部或Fast R-CNN检测器)。该第二阶段对每个候选对应的特征执行RoIPooling(或RoIAlign),然后使用最终的分类和回归层以分配特定的类别标签(例如“汽车”、“人物”、“狗”)并进一步调整边界框坐标。
RPN的核心优势在于其计算效率。通过与最终检测网络共享高成本的卷积特征提取层,生成区域候选的成本变得几乎可以忽略不计,与依赖独立算法(如Selective Search)的旧方法相比。这种集成使Faster R-CNN能够实现显著更高的速度,实现接近实时的目标检测同时保持高准确性,并促进了整个检测流程的真正端到端优化。理解RPN对于理解许多现代高效两阶段目标检测器的架构非常重要。
这部分内容有帮助吗?
© 2026 ApX Machine Learning用心打造