基于主成分分析的人脸识别方法,本质上是将高维的人脸图像通过线性变换投影到一个低维子空间,并利用该空间中的特征进行识别。这一方法由 Turk 和 Pentland 在 1991 年提出的 Eigenfaces(特征脸) 技术所开创,是模式识别与计算机视觉中最为经典的子空间方法之一。

以下从主成分分析的统计原理在人脸识别中的应用两部分进行说明。


1. 主成分分析的统计分析方法

主成分分析(Principal Component Analysis, PCA)是一种经典的无监督线性降维技术,其目标是在尽可能保留原始数据变异信息的前提下,将高维数据变换到低维空间。

1.1 统计思想

设有一组 ( M ) 个样本,每个样本由 ( N ) 个变量描述,组成数据矩阵 ( X \in \mathbb{R}^{N \times M} )。
PCA 寻找一组正交基,使得数据在这些基上的投影:
- 第一主成分的方差最大;
- 第二主成分的方差次之,且与第一主成分不相关(正交);
- 依此类推,前 ( k ) 个主成分能够保留原始数据中的大部分变异信息。

从最小化重构误差的角度,PCA 也可以理解为:在低维线性子空间中对数据做最小均方误差逼近。

1.2 数学推导(基于协方差矩阵)

  1. 数据中心化
    计算样本均值:

$$
\mu = \frac{1}{M} \sum_{i=1}^{M} x_i
$$

将每个样本减去均值,得到中心化向量:
[
\bar{x}_i = x_i - \mu
]

  1. 构建协方差矩阵
    协方差矩阵刻画各变量之间的线性相关关系:
    [
    C = \frac{1}{M} \sum_{i=1}^{M} \bar{x}_i \bar{x}_i^T = \frac{1}{M} A A^T
    ]
    其中 ( A = [\bar{x}_1, \bar{x}_2, \dots, \bar{x}_M] \in \mathbb{R}^{N \times M} )。
    ( C ) 是一个 ( N \times N ) 的对称半正定矩阵。

  2. 特征分解
    对协方差矩阵进行特征值分解:
    [
    C u_j = \lambda_j u_j
    ]

  3. ( \lambda_j ) 是特征值,表示第 ( j ) 个主成分方向上的方差大小;
  4. ( u_j ) 是相应的特征向量,即主成分方向
    通常将特征值从大到小排序:( \lambda_1 \ge \lambda_2 \ge \dots \ge \lambda_N )。

  5. 降维与重构
    保留前 ( k ) 个最大特征值对应的特征向量,构成投影矩阵 ( U_k = [u_1, u_2, \dots, u_k] )。
    任意中心化样本 ( \bar{x} ) 的低维表示(主成分得分)为:
    [
    y = U_k^T \bar{x} \in \mathbb{R}^k
    ]
    用 ( k ) 个主成分重构原始样本的近似值为:
    [
    \hat{x} = U_k y + \mu
    ]
    重构误差 ( |x - \hat{x}|^2 ) 等于被舍弃特征值之和,因此特征值的大小直接反映了信息的保留量。

1.3 关键统计性质

  • 方差最大化:第一主成分是所有线性投影中方差最大的方向,后续每个主成分都在与之前方向正交的约束下最大化方差。
  • 不相关性:不同主成分之间的协方差为 0,实现了数据白化。
  • 能量压缩:数据的总方差等于所有特征值之和,前 ( k ) 个主成分保留的方差比例为:
    [
    \frac{\sum_{i=1}^k \lambda_i}{\sum_{i=1}^N \lambda_i}
    ]
    在人脸图像等高维数据中,通常前 10%~20% 的特征值就能占据 90% 以上的总方差,这使得降维极为有效。
  • 均方误差最优:在所有秩为 ( k ) 的线性逼近中,PCA 给出的投影矩阵使重构均方误差最小。

2. 基于 PCA 的人脸识别方法(Eigenfaces)

在人脸识别任务中,一张 ( w \times h ) 的灰度图像可拉直为一个 ( N = w \times h ) 维的列向量。如果有 ( M ) 张训练图像,则数据维度 ( N ) 通常远大于样本数 ( M )(称为“小样本问题”),直接计算 ( N \times N ) 的协方差矩阵开销巨大,因此需要借助数学技巧。

2.1 计算特征脸(Eigenfaces)

  1. 图像向量化与均值脸
    将每张训练图像转换为向量 ( x_i \in \mathbb{R}^N ),计算平均脸:
    [
    \mu = \frac{1}{M} \sum_{i=1}^M x_i
    ]
    得到中心化图像矩阵 ( A = [x_1 - \mu, \dots, x_M - \mu] )。

  2. 求解高维协方差矩阵的特征向量——通过小矩阵间接计算
    协方差矩阵 ( C = \frac{1}{M} A A^T \in \mathbb{R}^{N \times N} ) 维度过大。利用线性代数技巧,先计算小矩阵 ( L = A^T A \in \mathbb{R}^{M \times M} ) 的特征值和特征向量:
    [
    L v_i = \lambda_i v_i
    ]
    则原协方差矩阵 ( C ) 的特征向量(特征脸)为:
    [
    u_i = A v_i
    ]
    对其归一化后,得到一组正交的单位向量。( u_i ) 与原始图像同维度,可重新排成图像显示,看起来像一张张“脸”,故称特征脸

  3. 特征脸空间与投影
    选取前 ( k ) 个最大特征值对应的特征向量 ( u_1, \dots, u_k ),构成特征脸子空间。
    任一人脸图像 ( x ) 的特征表示为:
    [
    y = U_k^T (x - \mu)
    ]
    其中 ( U_k = [u_1, \dots, u_k] )。原本 ( N ) 维的人脸图像被压缩为 ( k ) 维的特征向量(通常几十到几百维),且该向量包含了人脸最主要的全局特征。

2.2 识别流程

  • 训练阶段
    计算平均脸、特征脸,将训练集中每一个人脸图像投影到特征脸空间,得到特征向量集合,并与其身份标签一起存入数据库。

  • 测试阶段

  • 将待识别人脸图像 ( x_{\text{test}} ) 投影,得到特征向量 ( y_{\text{test}} )。
  • 在特征空间中,计算 ( y_{\text{test}} ) 与所有训练样本特征向量的距离(常用欧氏距离或余弦相似度)。
  • 利用最近邻分类器或阈值判决:
    • 若最小距离小于某一阈值,将测试图像归为该训练样本的身份;
    • 否则,判断为陌生人(可用于人脸验证)。
  • 有时也可以将特征向量送入更复杂的分类器(如支持向量机)。

2.3 方法特点

  • 优势
  • 降维显著,去除大量冗余,计算高效。
  • 以全局视角捕获人脸的主要变异(如光照、表情、姿态的宏观变化)。
  • 基础扎实,便于理解和实现。
  • 局限
  • 线性子空间方法,对大幅度的光照变化、面部遮挡、极端姿态等非线性因素敏感。
  • 基于二阶统计,未利用类别标签信息(区别于线性判别分析 LDA)。
  • 对人脸对齐要求较高,图像需严格归一化。

尽管后续出现了大量更复杂的方法(如 LDA、核 PCA、深度学习等),PCA 人脸识别仍是理解子空间学习和降维的基石,其“特征脸”的概念深刻影响了整个计算机视觉领域。