InsightFace人脸检测方法分析
编辑
2025-06-02
深度学习
00

目录

1. 人脸检测方法数量和类型
1.1 RetinaFace (CVPR 2020)
总损失公式:
各部分损失公式:
1.2 SCRFD (ICLR 2022)
边界框损失
1.3 BlazeFace (Paddle版本)

1. 人脸检测方法数量和类型

InsightFace主要包含3种核心人脸检测方法:

1.1 RetinaFace (CVPR 2020)

  • 架构: 基于FPN的单阶段检测器
  • 特点: 同时预测人脸边界框和5个关键点
  • 骨干网络: ResNet50/ResNet152/MobileNet0.25
  • 性能: WiderFace验证集 Easy 96.5, Medium 95.6, Hard 90.4
总损失公式:
L=Lcls+λ1Lbox+λ2LlandmL = L_{cls} + \lambda_1 L_{box} + \lambda_2 L_{landm}

各部分损失公式:
  1. 分类损失(交叉熵损失):
Lcls=1Ni=1N[yilog(pi)+(1yi)log(1pi)]L_{cls} = -\frac{1}{N} \sum_{i=1}^{N} \left[ y_i \log(p_i) + (1-y_i) \log(1-p_i) \right]
  1. 边界框回归损失(平滑 L1 损失):
Lbox=1Ni=1NsmoothL1(ti,t^i)L_{box} = \frac{1}{N} \sum_{i=1}^{N} \text{smooth}_{L1}(t_i, \hat{t}_i)
  1. 关键点回归损失(平滑 L1 损失):
Llandm=1Ni=1NsmoothL1(li,l^i)L_{landm} = \frac{1}{N} \sum_{i=1}^{N} \text{smooth}_{L1}(l_i, \hat{l}_i)

1.2 SCRFD (ICLR 2022)

  • 架构: 高效的单阶段检测器,专为移动端优化
  • 特点: 支持多种计算复杂度版本(0.5G-34G FLOPs)
  • 骨干网络: 定制的轻量级ResNet和深度可分离卷积
  • 性能: SCRFD-34G在WiderFace上达到 Easy 96.06, Medium 94.92, Hard 85.29
边界框损失
  • RetinaFace 通常使用平滑 L1 损失(Smooth L1 Loss)进行边界框回归:

    Lbox=1Ni=1NsmoothL1(ti,t^i)L_{box} = \frac{1}{N} \sum_{i=1}^{N} \text{smooth}_{L1}(t_i, \hat{t}_i)
  • SCRFD 则更倾向于使用 IoU 系列损失(如 GIoU、DIoU 或 CIoU 损失),以提升定位精度:

    Lbox=1CIoU(Bi,B^i)L_{box} = 1 - \text{CIoU}(B_i, \hat{B}_i)

    区别

    • RetinaFace 默认使用平滑 L1 损失。
    • SCRFD 更推荐使用 IoU 系列损失(尤其是 CIoU),因为它们能够更好地优化边界框的位置和形状。

1.3 BlazeFace (Paddle版本)

  • 架构: 基于MobileNet的超轻量级检测器
  • 特点: 专为实时应用设计
如果对你有用的话,可以打赏哦
打赏
ali pay
wechat pay

本文作者:Dong

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC。本作品采用《知识共享署名-非商业性使用 4.0 国际许可协议》进行许可。您可以在非商业用途下自由转载和修改,但必须注明出处并提供原作者链接。 许可协议。转载请注明出处!