图像分类和面部识别

  • 总览
  • 在机器学习中的主要步骤
  • 机器学习的训练和测试
  • 面部识别 (Face Recognition)
  • 人类方法
  • 应用
  • 面部特征 (本地local和整体holistic)
  • 配置信息 (Configure Information)
  • 计算机视觉方法
  • 面部识别系统
  • 早期设计
  • 特征脸 (Eigenfaces)
  • 主成分分析 PCA
  • 特征脸算法
  • 特征脸算法 - 检测
  • 线性判别分析 (Linear Discriminated Analysis - LDA)
  • 局部二进制模式 (Local Binary Patterns)
  • 人脸归一化 (Normalization of Faces)


总览

给定图像或对象的图像,标识图像或对象所代表的对象的类别。

bp图像识别分类 图像识别和分类_机器学习

在机器学习中的主要步骤

  1. 特征提取(feature extraction): 手动设计的特征(hand-crafted features),比如几何特征(Geometry-based),形状。
    基于外观 (apperance-based), 全局 (即 特征脸 eigenfaces,颜色直方图 color histogram,BOW) 和/或 局部 (即SIFT, BOF)。
    基于学习(Learning-based)
  2. 分类 (Classifer): 通常涵盖在机器学习或模式识别(pattern recognition)中。贝叶斯,K-NN,SVM,MLP等。

机器学习的训练和测试

数据集:

  • 有标签的(labelled),带有基本事实 (ground truth) 的数据样本。
  • 无标签的(unlabelled),不带基本事实的数据样本。

被分为:

  • 训练集
  • 验证集
  • 测试集

不平衡数据集(unbalance dataset): 每个类别的数据样本数量明显不同。

性能标准:

  1. 范围 (Scope),类别数量。
  2. 稳键性,对噪声,明度变化,比例改变稳键。
  3. 高效 efficiency,节省计算资源(时间和空间)
  4. 有效性 effectiveness (准确性和混淆矩阵)

面部识别 (Face Recognition)

人类方法

bp图像识别分类 图像识别和分类_计算机视觉_02


从静止图像 (still images) 或视频序列中检测人脸。将检测到的面部与存储在数据库中的面部进行比较。确认或拒绝所获取的身份 (claimed identity identification)。从数据库确定身份。

应用

  • 携带ID (面部识别)。
  • 语音识别 (通过唇读增强 lip-reading)。
  • 通过面部表情表达情感。
  • 访问控制和安全 (access control and security)。
  • 智能卡 (smart cards)。
  • 执法 (law enforcement)。
  • 监视 (surveillance)。

面部特征 (本地local和整体holistic)

  • 个体面部成分 (individual facial components),局部特征。
  • 组件之间的关系,整体配置 (holistic configuration)。

bp图像识别分类 图像识别和分类_数据_03


与未对齐的两半对齐后,执行此任务要困难得多。 大概是因为整体处理 (holistic processing) 与基于特征的处理 (feature-based processing) 相互作用(在这种情况下会干扰 interferes)

bp图像识别分类 图像识别和分类_特征向量_04


由于整体信息发生变化,人脸反转(face inversion)会干扰人脸识别。

面部关键点:

  • 眼睛 -> 嘴巴 -> 鼻子。
  • 使用侧面像 (profiles) 时,独特的鼻子形状可能更重要。
  • 脸的上半部分比较有用。
  • 眉毛至少和眼睛一样重要。

配置信息 (Configure Information)

我们是否需要精确测量属性,例如眼间距离,嘴巴宽度和鼻子长度?

更改x和y维度上的特征距离 (interfeature distance) 和距离比率 (distance ratio) 后,仍然可以识别。

bp图像识别分类 图像识别和分类_数据_05


同一维度内的距离比例保持不变

边缘和线段:

  • 视觉输入的初始表示,也是捕获图像的最重要方面。
  • 对照明变化具有不变性。
  • 但是还不足够。

一些研究表明对象识别是对视点变化具有不变性(viewpoint invariant)的。
一些实验表明,面部记忆与视点高度相关(viewpoint-dependent)。
从一个侧面的视点到另一种视点的泛化性 (generalization) 很差。而从一个四分之三的视点到另一视点的泛化性是很好的。

计算机视觉方法

面部感知是整体分析还是局部特征分析的结果?

  • 整体方法: 使用整个面部区域作为输入。
  • 局部方法: 使用局部特征(如 几何/外观)
  • 混合方法 (hybrid methods): 同时使用局部特征以及整个面部区域。

面部特征的重要性, 特征的权重不同
视点不变研究, 处理姿势问题 (pose problem)

面部识别系统

bp图像识别分类 图像识别和分类_计算机视觉_06

早期设计

基于几何的方法 (geometric-based) 被广泛使用

  • 几何特征:两只眼睛之间的距离,嘴唇的粗细……
  • 从参考面手动提取
  • 存储为模板以供以后匹配
  • 提供有限的结果
  • 通常使用少至10张图像的数据集进行实验。

特点

  • 不受光照变化的影响
  • 不需要多个训练样本
  • 几何特征不可靠(由于运动和视图)
  • 测量和位置需要手动计算(最大的缺点)

特征脸 (Eigenfaces)

Sirovich和Kirby在1987年开发了使用特征脸进行识别的方法。1991年由Turk和Alex Pentland在人脸识别中使用。自动面部识别技术 (automated facial recognition) 的第一个成功例子。
这是一个基于主成分分析(Principle Components Analysis, PCA)的整体方法。快速且相对简单。

主成分分析 PCA

是一种识别数据模式并以突出其相似性和差异性 (similarities and differences) 的方式表示数据的方法。可以寻找可以有效表示数据的方向。其能够减少数据的维度 (reduce the dimension of the data) 并用于加快计算时间。

例子:

这是一个二维的数据集

bp图像识别分类 图像识别和分类_特征向量_07


将所有数据与其均值相减

bp图像识别分类 图像识别和分类_数据_08


接着,求协方差矩阵(covariance matrix)

bp图像识别分类 图像识别和分类_bp图像识别分类_09


接着求协方差矩阵的特征向量 (eigenvectors) 和特征值 (eigenvalues)

bp图像识别分类 图像识别和分类_特征向量_10


特征向量之一穿过点的中间,就像画一条最拟合的线。接着该特征向量向我们展示了这些数据如何沿着这条线关联。第二个特征向量为我们提供了数据中另一个不那么重要的模式,即所有的点都遵循主线,但会偏离主线的一定量。

bp图像识别分类 图像识别和分类_计算机视觉_11


接着,我们可以使用两个特征向量来转换数据。将原始数据以特征向量为轴进行旋转。现在,我们将数据点归类为每条线的贡献的组合。

在此分解中,不会有任何信息丢失。

bp图像识别分类 图像识别和分类_机器学习_12


或者我们可以采用特征值最大的特征向量,此时较小特征向量的贡献被去除。

基本上,我们已经对数据进行了转换,以便根据它们之间的模式来表达。模式 (pattern) 是最紧密地描述数据之间关系的线。

bp图像识别分类 图像识别和分类_数据_13

特征脸算法

假设: 图像是N x N = N2,M是数据库中图像的数量,P是数据库中人物的数量。

现在我们的训练集有八张图

bp图像识别分类 图像识别和分类_数据_14


计算“平均脸”(average face)

bp图像识别分类 图像识别和分类_计算机视觉_15

bp图像识别分类 图像识别和分类_计算机视觉_16


让训练集中的所有脸减去"平均脸"

bp图像识别分类 图像识别和分类_bp图像识别分类_17


接着建立A矩阵,该矩阵存放了所有数据库中所有脸部信息。

bp图像识别分类 图像识别和分类_bp图像识别分类_18


接着,计算A的协方差矩阵 (covariance matrix)

bp图像识别分类 图像识别和分类_bp图像识别分类_19


接着查找协方差矩阵的特征值 eigenvalue (矩阵很大, 计算量很大)。我们最多对M个特征值感兴趣。(减小矩阵的尺寸, 线性代数的技巧)计算另一个矩阵

bp图像识别分类 图像识别和分类_特征向量_20


查找M个特征值和特征向量。其中,Cov和L的特征向量是等效的。每个特征向量都称为训练数据的特征脸 (AAT)特征脸 (eigenface):

bp图像识别分类 图像识别和分类_特征向量_21


根据 L 的特征向量构建矩阵V。

协方差矩阵(Cov)的特征向量是图像空间与L的特征向量的线性组合。

bp图像识别分类 图像识别和分类_计算机视觉_22


特征向量表示脸部的变化(variation in the faces)。

计算每张脸在脸部空间上的投影 (projection onto the face space)。

bp图像识别分类 图像识别和分类_bp图像识别分类_23


计算出阈值

bp图像识别分类 图像识别和分类_机器学习_24

特征脸算法 - 检测

输入值,测试脸部图片(称为测试脸)

bp图像识别分类 图像识别和分类_特征向量_25


让测试脸减去"平均脸"

bp图像识别分类 图像识别和分类_数据_26


计算测试脸在脸部空间的投射

bp图像识别分类 图像识别和分类_特征向量_27


计算测试脸与所有已知脸之间的脸部空间距离。脸部将会识别为脸部空间中最接近的脸部。

bp图像识别分类 图像识别和分类_数据_28


为了验证,会将该距离与之前计算的阈值相对比,若小于该阈值,则确认这是一张已知脸。

bp图像识别分类 图像识别和分类_数据_29

线性判别分析 (Linear Discriminated Analysis - LDA)

这个方法是特征脸的扩展。其通过最大化类间方差(maximising the between-class variance)和最小化类内方差 (minimising the within-class variance) 来寻找线性变化。当每个类别有多个样本时,分类性能会提高。

bp图像识别分类 图像识别和分类_数据_30

局部二进制模式 (Local Binary Patterns)

bp图像识别分类 图像识别和分类_计算机视觉_31


bp图像识别分类 图像识别和分类_特征向量_32


bp图像识别分类 图像识别和分类_计算机视觉_33

人脸归一化 (Normalization of Faces)

有时我们会遇到脸部并不正对镜头,而是面对着其他方向的情况。为了使系统能够正确识别非正脸面部,我们需要做人脸归一化。

如何做到:使用脸部地标(face landmarks)。

bp图像识别分类 图像识别和分类_机器学习_34


结合仿射变换 Affine Transformation (平移,旋转,缩放和剪切),使外眼角 (outer eye corners) 和鼻子对齐。将识别到的脸部地标转化为正对着镜头的版本。

bp图像识别分类 图像识别和分类_机器学习_35