4、人脸特征提取传统方法:几何特征、局部二值模式(LBP)、Gabor小波、主成分分析(PCA/Eigenfaces)、线性判别分析(LDA/Fisherfaces)
在人脸识别技术发展的早期阶段,深度学习方法尚未普及,研究者们主要依赖手工设计的特征提取算法来表征人脸图像。这些传统方法的核心思想是将高维的人脸像素空间映射到低维的特征空间,同时保留对身份判别最有价值的信息。本章将系统梳理五类经典方法:几何特征、局部二值模式(LBP)、Gabor小波、主成分分析(PCA/Eigenfaces)和线性判别分析(LDA/Fisherfaces)。理解这些方法的数学原理、适用场景与局限性,不仅有助于构建对特征工程的完整认知,也能为理解现代深度学习方法提供重要的思想基础——例如,CNN中的卷积核本质上可视为学习得到的Gabor滤波器组,而度量学习的目标与LDA的类间/类内距离优化异曲同工。
4.1 几何特征:基于结构度量的早期探索
核心原理
几何特征是人脸识别最早期的实现方式,其基本假设是:人脸的身份信息可以通过面部关键器官(眼睛、鼻子、嘴巴、下巴等)之间的相对位置、距离、角度和比例关系来表征。该方法首先需要定位面部关键点(如眼角、鼻尖、嘴角),然后计算一组几何度量值构成特征向量。典型的几何特征包括:双眼间距与脸宽之比、鼻宽与鼻高之比、嘴巴宽度与脸宽之比、眼裂高度等。这些特征具有直观的物理意义,且特征维度较低(通常10~30维),计算效率极高。
操作流程
- 关键点定位:使用Haar级联、ASM(主动形状模型)或AAM(主动外观模型)定位面部关键点。
- 归一化处理:以双眼连线为基准进行旋转校正,以瞳距为尺度基准进行缩放归一化。
- 特征计算:计算各关键点之间的欧氏距离、角度、面积比等几何量。
- 特征向量构建:将几何量拼接为固定维度的特征向量。
- 分类识别:使用最近邻、SVM等分类器进行身份判别。
案例拆解:基于几何特征的侧面轮廓识别
在2000年前后,某安防系统尝试使用几何特征进行侧面人脸识别。系统首先提取鼻尖、下巴尖、额头最高点、嘴唇前后缘等8个关键点,计算了鼻深与脸长比、下巴倾斜角、额头曲率等12维特征。在受控光照、固定姿态的采集条件下,对50人规模的库识别率达到85%。然而,当姿态偏转超过15°或表情变化较大时,关键点定位误差导致识别率骤降至60%以下。该案例揭示了几何特征的根本局限:对关键点定位精度极度敏感,且无法表达面部纹理细节。
4.2 局部二值模式(LBP):纹理编码的经典范式
核心原理
LBP(Local Binary Pattern)由Ojala等人于1996年提出,其核心思想是对图像中每个像素与其邻域像素进行灰度比较,将比较结果编码为二进制数。原始LBP算子取3×3邻域,以中心像素灰度值为阈值,将周围8个像素与阈值比较,大于阈值记为1,否则记为0,从而得到一个8位二进制数(0~255),即为该像素的LBP码。随后统计整幅图像或分块区域的LBP直方图作为特征向量。LBP的突出优势在于:灰度单调变化不变性——即光照的线性变化不会改变LBP编码结果,这使其对光照变化具有天然鲁棒性。
改进与扩展
| 变体名称 | 改进点 | 适用场景 |
|---|---|---|
| 圆形LBP | 将邻域扩展为任意半径的圆形采样,支持多尺度 | 多尺度纹理分析 |
| Uniform LBP | 仅保留跳变次数≤2的模式,降维至59维 | 直方图特征,降低维度 |
| MB-LBP | 将邻域块均值作为比较对象,增强抗噪性 | 低分辨率图像 |
| LBPH | 分块计算LBP直方图并拼接 | OpenCV中人脸识别模块 |
实战场景:LBP在嵌入式门禁系统中的应用
某智能门禁设备采用ARM Cortex-A7处理器,算力有限。工程师选用分块LBP方案:将人脸图像归一化至128×128像素,划分为8×8=64个不重叠子块,每个子块计算59维Uniform LBP直方图,拼接得到3776维特征。使用PCA降维至200维后,采用卡方距离进行最近邻匹配。在室内光照环境下,对100人库的识别率达到92%,单次识别耗时约35ms,满足实时性要求。但室外强光或逆光场景下,识别率下降至75%,需配合光照归一化预处理。
4.3 Gabor小波:多尺度多方向的生物视觉模拟
核心原理
Gabor小波变换模拟哺乳动物视觉皮层简单细胞的感受野响应特性,通过一组不同频率(尺度)和方向的正弦平面波与高斯核函数的乘积构成滤波器组。二维Gabor滤波器可表示为:
G(x,y) = exp(-(x'²+γ²y'²)/(2σ²)) × cos(2πx'/λ + ψ)
其中 x' = xcosθ + ysinθ, y' = -xsinθ + ycosθ
λ:波长(尺度),θ:方向,ψ:相位偏移,γ:空间纵横比,σ:高斯标准差
典型配置采用5个尺度(波长从4到16像素递增)和8个方向(0°到157.5°间隔22.5°),共40个滤波器。将人脸图像与每个滤波器卷积,得到40幅幅值响应图,再对这些响应图进行降采样和特征编码,构成Gabor特征向量。Gabor特征能同时捕捉人脸在不同尺度下的边缘、纹理和脊线信息,对光照和表情变化具有较好的鲁棒性。
特征降维策略
- 下采样:对每幅响应图进行4×4或8×8网格降采样,保留空间分布信息。
- 幅值特征:取卷积结果的幅值(模)作为特征,忽略相位信息以增强鲁棒性。
- Gabor+PCA:先提取Gabor幅值特征,再用PCA降维,兼顾局部纹理与全局结构。
- Gabor+LBP:对Gabor响应图再提取LBP直方图,形成Gabor-LBP混合特征。
案例拆解:Gabor特征在表情变化下的识别实验
在FERET人脸库的fb(表情变化)子集上,研究者对比了不同特征的表现。实验设置:训练集为1000张中性表情图像,测试集为500张表情变化图像。结果显示:原始像素特征识别率78.2%,LBP特征识别率84.5%,Gabor幅值特征(5尺度×8方向,8×8下采样)识别率91.3%,而Gabor+LBP混合特征达到93.8%。进一步分析发现,Gabor特征在眼睛和嘴巴区域的高频响应能有效捕捉表情引起的局部形变,而低频响应保留了身份相关的稳定结构。但Gabor特征的代价是计算量大——40个滤波器对128×128图像卷积需约200ms(单核CPU),且特征维度高达40×16×16=10240维,必须配合降维使用。
4.4 主成分分析(PCA/Eigenfaces):无监督降维的基石
核心原理
PCA(Principal Component Analysis)由Turk和Pentland于1991年引入人脸识别领域,其数学本质是对训练样本的协方差矩阵进行特征分解,找到数据方差最大的正交投影方向。对于人脸图像,将每张m×n的图像展开为mn维列向量,计算所有训练样本的均值脸,然后求协方差矩阵的特征向量。由于mn通常远大于训练样本数N,实际计算中采用SVD技巧:先计算N×N小矩阵的特征向量,再映射回原始空间。保留前k个最大特征值对应的特征向量(称为"特征脸"),将人脸图像投影到这些特征脸张成的子空间,得到k维系数向量作为特征。
操作流程
- 数据预处理:人脸检测、对齐、裁剪至统一尺寸(如112×92),灰度归一化。
- 构建数据矩阵:将每张图像拉直为列向量,组成数据矩阵X(维度d×N)。
- 计算均值脸:对所有训练样本求平均,得到均值向量μ。
- 中心化:每个样本减去均值,得到中心化矩阵。
- 协方差矩阵特征分解:计算C = (1/N)XXᵀ的特征值和特征向量。
- 选择主成分:按特征值降序排列,保留前k个特征向量(通常k=50~200)。
- 投影与识别:将待识别图像投影到特征脸空间,用欧氏距离或余弦距离进行最近邻匹配。
案例拆解:ORL人脸库上的PCA实验
ORL库包含40人、每人10张图像,含光照、表情、微小姿态变化。实验设置:每人前5张训练,后5张测试。使用112×92分辨率图像,原始维度10304。保留前100个主成分时,识别率达到95.5%;保留50个主成分时,识别率94.0%;保留20个主成分时,识别率降至88.5%。分析发现:前几个主成分主要编码光照变化(全局亮度方向),中间主成分编码身份信息(面部结构差异),后部主成分编码噪声和细节。因此,主成分数量的选择需要在保留身份信息和去除噪声之间权衡。此外,PCA对光照变化敏感——同一人在不同光照下的投影距离可能大于不同人在相同光照下的距离。
4.5 线性判别分析(LDA/Fisherfaces):监督判别的最优投影
核心原理
LDA(Linear Discriminant Analysis)由Belhumeur等人于1997年引入人脸识别,其核心思想是寻找一组投影方向,使得投影后类间散度与类内散度的比值最大化。定义类内散度矩阵S_w和类间散度矩阵S_b:
S_w = Σᵢ Σₓ∈Cᵢ (x-μᵢ)(x-μᵢ)ᵀ
S_b = Σᵢ Nᵢ(μᵢ-μ)(μᵢ-μ)ᵀ
最优投影W* = argmax |WᵀS_bW| / |WᵀS_wW|
该优化问题等价于求解广义特征值问题S_bW = λS_wW。由于人脸图像维度远高于样本数,S_w通常奇异,需先使用PCA将维度降至N-c(c为类别数),再在降维空间执行LDA,即Fisherfaces方法。LDA最多能提取c-1个有效判别方向,因此输出特征维度不超过类别数减一。
PCA与LDA对比
| 对比维度 | PCA(Eigenfaces) | LDA(Fisherfaces) |
|---|---|---|
| 监督信息 | 无监督,不使用标签 | 有监督,使用类别标签 |
| 优化目标 | 最大化全局方差 | 最大化类间/类内散度比 |
| 最大特征维度 | min(d, N-1) | c-1(类别数减一) |
| 光照鲁棒性 | 较差,前几个主成分易编码光照 | 较好,类内散度抑制光照影响 |
| 小样本问题 | 无 | 严重,需PCA预降维 |
| 计算复杂度 | 较低 | 较高(需两步分解) |
实战场景:LDA在受限环境下的优势
在某考勤系统的对比测试中,采集了200名员工、每人10张图像,包含室内光照变化和轻微表情变化。使用相同的前处理流程,分别提取PCA(100维)和LDA(199维)特征,采用余弦距离最近邻分类。测试结果显示:LDA识别率97.2%,PCA识别率93.5%。进一步分析发现,LDA的类内散度约束有效抑制了同一员工不同图像间的光照差异,而PCA的前几个主成分中约有30%的能量被光照变化占据。但LDA的局限在于:当类别数较少时(如只有2类),只能提取1维特征,判别能力受限;且当训练样本不足时,S_w估计不准确,导致过拟合。
4.6 方法对比与选型建议
| 方法 | 特征类型 | 典型维度 | 光照鲁棒性 | 姿态鲁棒性 | 计算开销 | 适用场景 |
|---|---|---|---|---|---|---|
| 几何特征 | 结构度量 | 10~30 | 中 | 差 | 极低 | 侧面识别、质量评估 |
| LBP | 局部纹理直方图 | 数百~数千 | 好 | 中 | 低 | 嵌入式、实时系统 |
| Gabor | 多尺度多方向响应 | 数千~数万 | 好 | 中 | 高 | 离线高精度识别 |
| PCA | 全局线性子空间 | 50~200 | 差 | 中 | 低 | 快速原型、光照受控 |
| LDA | 判别子空间 | c-1 | 较好 | 中 | 中 | 类别数适中的受控场景 |
综合选型决策框架
在实际项目中,选择哪种传统特征提取方法需考虑以下约束:算力资源(嵌入式设备优先LBP)、类别规模(大规模类别避免LDA)、环境光照(室外多变环境优先LBP或Gabor)、实时性要求(视频流处理需控制在50ms内)、训练样本量(小样本场景避免LDA)。值得注意的是,这些传统方法并非互相排斥——实际系统中常采用特征融合策略,如LBP+Gabor+PCA的级联方案,在多个公开数据集上均取得了优于单一方法的性能。