趋近智
尽管 Faster R-CNN 等两阶段检测器通过首先提出区域然后进行分类来实现高精度,但这种顺序过程可能会带来计算开销。单阶段检测器通过同时执行定位和分类来简化此过程,在网络的一次前向传播中直接从特征图中预测边界框和类别概率。这种架构选择通常会带来更快的推理 (inference)速度,使其适用于实时应用。两种有影响力的单阶段检测器是:单次多框检测器 (SSD) 和 RetinaNet。
SSD 通过在基础网络(如 VGG 或 ResNet)的一次前向传播中,从具有不同分辨率的多个特征图中进行预测,来应对检测不同尺度物体的挑战。较早的特征图(更接近输入端)具有更高的空间分辨率并捕获更精细的细节,使其适用于检测较小的物体。较晚的特征图分辨率较低但感受野较大,使其能够检测更大的物体。
架构和多尺度特征图: SSD 从一个标准分类网络(主干网络)开始,该网络在最终分类层之前被截断。然后附加了几个辅助卷积层,这些层空间分辨率逐渐降低,同时通道深度增加。与仅从最终特征层预测的模型不同,SSD 从主干网络和辅助结构的各个阶段的选定特征图中生成预测。
对于每个选定的特征图,一组卷积滤波器会预测:
默认框(锚点): 在选定特征图上的每个位置,SSD 会关联一组具有不同宽高比和尺度的默认框。这些默认框平铺特征图,作为初始提议。网络会预测偏移量 () 来调整这些默认框的位置和大小,使其更好地与真实物体匹配,同时预测每个类别的置信度分数。默认框的尺度对于高分辨率特征图通常较小,对于低分辨率特征图则较大,从而使框的大小与该特征层预期的物体大小对齐 (alignment)。
训练: 训练期间,每个真实边界框都会与具有最高 Jaccard 交并比(IoU)的默认框匹配。与任何真实框的 IoU 大于某个阈值(例如 0.5)的默认框也被视为正匹配。所有其他默认框都被标记 (token)为负(背景)。损失函数 (loss function)是以下各项的加权和:
SSD 在速度和精度之间取得了良好的平衡,通常比两阶段检测器明显更快。然而,由于它使用相对较低分辨率的特征图来检测较大物体,并严重依赖这些跨多尺度的预定义默认框,因此与那些更细致分析细节或拥有专门提议阶段的方法相比,它有时难以准确检测非常小的物体。
对于像 SSD 这样的密集型单阶段检测器,一个主要挑战是训练期间极端的类别不平衡。绝大多数默认框或锚点位置对应背景类别,而只有一小部分代表实际物体。应用于所有位置的标准交叉熵损失意味着那些容易分类的背景样本会共同主导损失值和梯度更新,阻碍网络为较稀有的前景物体类别学习有效的表示。
RetinaNet 引入了焦点损失,专门用于解决这种不平衡。它是一种动态加权的交叉熵损失,其加权因子随着对正确类别置信度的增加而衰减至零。直观来说,焦点损失在训练期间会自动降低易分类样本(通常是大量的背景负例)的贡献,并将模型的注意力集中在难以分类的样本(通常是前景物体或模糊的背景区域)上。
二分类的标准交叉熵(CE)损失可以写为: 其中 是真实类别, 是模型对类别 的估计概率。我们可以更紧凑地将其重写为 ,其中 定义为: 表示真实类别的概率。
焦点损失在标准交叉熵损失中增加了一个调制因子 ,带有一个可调的聚焦参数 (parameter) : 可选地,也可以添加一个 平衡参数: 其中 对于类别 1 是 ,对于类别 0 是 。
焦点损失的特点:
该图表说明了焦点损失(FL)在 时,如何与标准交叉熵(CE,相当于 )相比,减少了已正确分类样本(高 )的损失。更高的 值会增强这种效果,将训练集中在 较低的难分类样本上。
RetinaNet 架构: 虽然焦点损失是主要贡献,但 RetinaNet 检测器本身通常采用基于 ResNet 等主干网络构建的特征金字塔网络(FPN)。FPN 生成一个在所有级别上都具有丰富语义的多尺度特征金字塔,提高了对各种尺度物体的检测能力,补充了焦点损失的效果。锚框应用于特征金字塔的每个级别进行预测。
通过使用焦点损失有效管理类别不平衡,RetinaNet 表现出单阶段检测器可以达到甚至超越 Faster R-CNN 等流行两阶段检测器的精度,同时保持更高的速度。
SSD 和 RetinaNet 都体现了单阶段方法,直接预测框和类别,无需专门的区域提议步骤。
在这些(以及 YOLO 等其他检测器)之间进行选择时,通常需要考虑特定应用在速度、精度、物体尺寸分布和场景复杂性方面的要求。RetinaNet 通常比 SSD 提供更高的精度,特别是在有挑战性的场景中,这得益于焦点损失以及通常使用的 FPN,而如果最高速度是绝对优先事项且其精度权衡可以接受,则 SSD 可能更受青睐。
这部分内容有帮助吗?
© 2026 ApX Machine Learning用心打造