一、Faster R-CNN
Faster R-CNN能够识别图像中的多个目标,并给出它们的位置和类别信息。它利用CNN提取图像特征,通过RPN生成候选区域,经RoI Pooling/Align处理后,分类器预测类别,回归器微调边界框,实现目标检测。
RPN首先接收由卷积神经网络(如VGG、ResNet等)提取的图像特征图作为输入。然后在特征图上,RPN使用一种滑动窗口的方法来扫描图像,生成多个预定义的锚框。这些锚框有不同的尺寸和比例,以覆盖不同形状和大小的目标物体。
最后RPN预测两个输出,一个是锚框包含目标物体的概率(对象分数),另一个是边界框回归调整参数。对象分数用于区分前景(含有目标物体)与背景,而边界框回归调整参数则用于精调锚框的位置,以更准确地匹配到真实目标物体。
二、网络结构
Faster R-CNN的网络结构是什么?Faster R-CNN利用预训练的卷积神经网络提取特征,通过区域提议网络(RPN)生成候选区域,经过ROI Pooling将候选区域特征转换为固定大小,最后通过分类和回归网络对候选区域进行类别判断和边界框优化,并采用多任务损失函数进行训练。
Faster R-CNN通常使用预训练的卷积神经网络(CNN),如VGG或ResNet,作为特征提取器。将输入图像通过一系列卷积层和池化层,提取出特征映射(Feature Map)。此过程将输入图像转换为更小的高维特征表示,保留重要的视觉信息。
二、区域提议网络(RPN)
RPN是Faster R-CNN的关键创新点之一,它直接从基础网络生成的特征图中产生候选区域。RPN利用3×3滑动窗口在特征图上遍历,为每个位置生成锚框,并通过分类分支预测锚框的前景/背景概率,通过回归分支输出边界框偏移量,从而判断锚框是否包含对象并调整其位置以匹配真实对象。
Faster R-CNN将通过RPN获得的候选区域在特征映射上进行ROI Pooling,将不规则大小的候选区域变换为固定大小的特征图,以便后续的全连接层处理。
Faster R-CNN将ROI Pooling后的特征被送入两个并行的全连接层。一个负责对候选区域进行类别分类,判断目标类别;另一个则进一步优化候选区域的坐标,进行边界框回归,进一步调整目标框位置和大小。
Faster R-CNN的训练涉及到多个子任务,因此采用了多任务损失函数。总损失是由分类损失(交叉熵损失Cross Entropy Loss)和回归损失(平滑L1损失Smooth L1 Loss)组成。
分类损失用于训练RPN和分类分支;回归损失则用于优化RPN提出的边界框以及最终输出的边界框。