60 秒回答模板

MTCNN 可以按三级级联回答。P-Net 在图像金字塔上快速生成大量候选人脸框,并做初步边框回归;R-Net 对 P-Net 的候选框进一步分类和回归,过滤掉大量误检;O-Net 最后输出更精细的人脸框和五点关键点。每一级都会做 NMS 去重和 bounding box calibration。训练时是多任务学习,通常包含人脸/非人脸分类损失、边框回归损失和关键点定位损失,不同样本类型承担不同任务。整体优势是速度和精度平衡,级联结构让早期网络快速筛掉简单负样本,后续网络专注难样本和精定位。

考点 从粗到细
难度 真实面经题
回答目标 讲清原理、实现和边界

深入解析

01

三级级联结构

P-Net、R-Net、O-Net 是从粗到细的级联。前一级负责高召回地产生候选,后一级负责更强判别和更精确定位,这样避免直接用大网络扫描整张图。

02

P-Net 生成候选

P-Net 是全卷积网络,作用在图像金字塔上,快速预测每个位置是否有人脸以及边框偏移。它追求召回率,候选框多但允许噪声,后面会继续过滤。

03

R-Net 和 O-Net 精修

R-Net 接收 P-Net 候选裁剪区域,进一步分类和边框回归;O-Net 做最终分类、边框回归和关键点定位,输出更稳定的人脸框与眼、鼻、嘴角等关键点。

04

训练样本和损失

训练样本通常按 IoU 分为正样本、负样本、部分人脸样本和关键点样本。分类使用交叉熵,边框和关键点用回归损失,不同样本只参与对应任务或赋予不同 loss 权重。

05

级联训练过程

常见训练流程是先训练 P-Net,用它在训练集上挖掘候选和 hard negative,再训练 R-Net,最后训练 O-Net。每一级都通过 NMS 和框校准把候选传给下一级。

易错点

  • 只说 MTCNN 有三个网络,不说明每一级的输入输出和职责。
  • 忽略图像金字塔、NMS 和边框校准这些关键流程。
  • 把所有样本都用于所有 loss,没区分样本类型。
  • 只讲检测框,不讲 O-Net 的关键点定位。

面试官追问

为什么 MTCNN 要用图像金字塔?

人脸尺度变化大,图像金字塔让固定感受野的 P-Net 能在不同缩放尺度上检测不同大小的人脸。

NMS 在 MTCNN 中有什么作用?

每级网络都会产生重叠候选框,NMS 用来去掉重复框,减少后续计算并稳定最终输出。

partial face 样本有什么用?

它们通常不用于分类正负,而用于边框回归,让模型学习如何把不准的候选框修正到真实框。

MTCNN 的局限是什么?

对极端姿态、遮挡、低分辨率和复杂光照可能不够鲁棒,现代方案可能用更强 backbone 或 anchor-free 检测器替代。