← 返回博客
研究人脸检测Deep Learning

人脸检测的演进:从 Handcrafted Features 到 Deep Learning Frameworks

引言

人脸检测是计算机视觉中的基础任务,其目标是在数字图像中发现并定位人脸。几乎所有后续的人脸分析应用——包括识别、验证、属性估计和 face swapping——都依赖这一环节。它要回答的问题很直接:图像中的人脸在哪里?

Viola-Jones 时代(2001–2012)

里程碑式突破

2001 年提出的 Viola-Jones detector 在十多年里一直是人脸检测的代表性方法。其关键创新包括:

  • Haar-like Features:以矩形特征高效描述眼周与面颊等基础结构
  • Integral Images:通过预计算实现跨尺度快速特征求值
  • AdaBoost:将多个弱分类器迭代组合为强分类器
  • Cascade Architecture:通过多级筛选快速排除非人脸区域,实现实时处理能力

局限性

尽管影响深远,Viola-Jones detector 对非正脸、极端光照和局部遮挡的适应性较弱。它主要针对 frontal face detection 设计,在非受控环境中的泛化能力有限。

过渡阶段:DPM 与混合方法(2010–2015)

Deformable Part Models

随着需求变复杂,研究者开始使用 Deformable Part Models,将人脸表示为眼睛、鼻子、嘴巴等部件及其空间关系的组合。DPM 在姿态变化上的表现更好,但计算成本也明显提高。

Deep Learning 革命(2014–至今)

CNN 改变格局

Convolutional Neural Networks 彻底改变了人脸检测。深度模型可以直接从数据中学习层次化特征,而不必依赖人工设计。推动这场变革的关键因素包括:

  • 大规模训练数据集(WIDER FACE)
  • 更强的 GPU 硬件
  • 网络结构设计的持续进步

关键 Framework

MTCNN (2016)

Multi-task Cascaded Convolutional Networks 采用 Proposal Network (P-Net)、Refine Network (R-Net) 和 Output Network (O-Net) 的三级结构,实现了人脸检测与对齐的联合建模。

RetinaFace (CVPR 2020)

InsightFace 推出的 RetinaFace 在复杂环境下实现了高密度人脸定位。其主要贡献包括:

  • single-stage、anchor-based 检测框架
  • 联合学习人脸检测与 5 点 landmark 定位
  • 带有 self-supervised mesh decoder 的 multi-task learning
  • 在 WIDER FACE benchmark 上达到 state-of-the-art 表现

SCRFD (ICLR 2022)

Sample and Computation Redistribution for Efficient Face Detection 将效率推进到了新的水平:

  • 基于 NAS 的 architecture search,用于优化计算分配
  • 使用 sample redistribution 提升训练效率
  • 在精度与速度之间实现更优平衡
  • 模型规模覆盖 500M FLOPs 到 34G FLOPs

性能对比

现代 Deep Learning detector 相比传统方法有明显优势:

MethodWIDER FACE EasyWIDER FACE MediumWIDER FACE Hard
Viola-Jones~50%~40%~20%
MTCNN85.1%82.0%60.7%
RetinaFace96.9%96.1%91.4%
SCRFD-34GF97.2%96.5%93.7%

实际集成

借助 InsightFace,部署 state-of-the-art 人脸检测能力会更直接。

from insightface.app import FaceAnalysis

app = FaceAnalysis(providers=['CUDAExecutionProvider'])

app.prepare(ctx_id=0, det_size=(640, 640))

faces = app.get(img)

for face in faces:

print(f"Bounding box: {face.bbox}")

print(f"Detection score: {face.det_score:.4f}")

print(f"Landmarks: {face.kps}")

结论

从 Handcrafted Features 走向 Deep Learning Frameworks,是计算机视觉发展中最显著的跃迁之一。InsightFace 的 RetinaFace 与 SCRFD 正处于这一演进的前沿,在准确率与实际部署能力之间取得了优秀平衡。