[CS131] Lecture 13 Face Recognition and LDA

本文介绍了面部识别技术的应用场景,区分了面部检测与识别的概念,并详细解释了特征脸算法原理及其实现过程。此外,还对比了PCA与LDA两种降维方法在面部识别中的优缺点。

开发板推荐:天空星STM32F407VET6开发板

超高性价比 STM32主控 | 超高主频 | 一板兼容百芯 | 比赛神器 | 沉金彩色丝印

根据 Stanford CS131 课程写的笔记(大部分为 note 翻译),英语水平一般,如有错误请评论指正

Lecture 13 Face Recognition and LDA

Introduction to Facial Recognition

Applications

  • 数字摄影:聚焦人脸
  • 监视器
  • 组织相册:将相同的人放在同一相册
  • 人物追踪
  • 动作和表情:构建基于心情互动的智能设备
  • 安全和战争:检测特殊人物、敌军
  • 电话会议:提供正在视频的人的信息

A Key Distinction: Detection vs. Recognition

Face Detection: 检测照片是否包含人脸和照片上人脸的位置

Face Recognition: 检测照片包含的脸

Space of Faces

如果我们考虑一张大小为 m×nm×n灰度图,这张图可以用一个在高维空间 RmnRmn上的点表示。一张图不止包含脸,所以脸只占了相对小的子空间。我们的任务就是对脸的子空间建模。

我们计算出 K 维子空间,这样数据点在子空间的投影在所有子空间中都有最大的方差。这个低维子空间捕捉了脸部关键样貌特点。

The Eigenfaces Algorithm

Key Ideas and Assumptions

  • 假设大多数脸部图像都位于低维子空间,由最大方差的前 kk个方向决定
  • 用 PCA 检测旋转子空间的向量或特征面
  • 将所有数据集中的脸部图像表现为特征面的线性组合,特征面被定义为 SVD 分解的主成份

What are eigenfaces?

特征面是最大方差方向的特征向量的视觉呈现。

Training Algorithm

  1. 排列训练图像:x1,...,xn

  2. 计算平均脸:

    μ=1Nxiμ=1N∑xi
  3. 计算协方差矩阵:

    Σ=1NXcXTcΣ=1NXcXcT
  4. 用 PCA 计算协方差矩阵ΣΣ的特征向量

  5. 计算每个训练图像 xixi的投影

    xi(xciϕ1,xciϕ2,...,xciϕk)(a1,a2,...,ak)xi→(xic·ϕ1,xic·ϕ2,...,xic·ϕk)≡(a1,a2,...,ak)

    其中ϕiϕi是第ii个特征向量。

  6. 重构的脸xiμ+a1·ϕ1+...+ak·ϕk

  7. Why can we do this?

    因为特征值(特征向量的方差)随着主成份数目的增加迅速下降

    Reconstruction and Error

    我们只需要前kk个特征面用于减少维度。特征面越少损失越多,脸部越不明显。

    Testing Algorithm

    1. 取查询图像t

    2. 映射至特征向量:

      t((tμ)ϕ1,(tμ)ϕ2,...,(tμ)ϕk)(w1,w2,..,wk)t→((t−μ)·ϕ1,(t−μ)·ϕ2,...,(t−μ)·ϕk)≡(w1,w2,..,wk)
    3. 比较投影ww和所有N个训练投影。用欧几里德距离和 KNN 算法输出标签。

    4. Advantages and Disadvantages

      Advantages

      • 这个方法不需要预先知道脸部、表情信息
      • 快速、全局最优

      Disadvantages

      • 要求小心控制的数据
        1. 所有脸部必须集中在框架。否则结果噪音大
        2. 图像必须大小相同
        3. 对脸的角度敏感
      • 方法不需要预先知识
        1. 脸的类别之间没有差别
        2. PCA 不考虑与脸相关的标签。因此它可能将不同的脸对应到相同的子空间,使得分类器难以区别这些脸。
      • PCA 投影在从低维重构上可能是最优的,但在在辨别方面不是最优的。

      Beyond Facial Recognition: Expressions and Emotions

      这项技术也可以用于检测表达和情绪,且算法不改变。

      高兴↓

      厌恶↓

      Linear Discriminant Analysis (LDA)

      PCA vs. LDA

      PCA 与 LDA 都能减少样本的维度。但是,PCA 偏重于重建物体,LDA 偏重于分类。LDA 会将不同的类相互远离。

      • PCA 保持最大方差
      • LDA 找到能够在类之间最大化散射和在类中最小化散射的投影。

      如图,PCA 保持了最大方差,并将所有类的点都映射在正斜率方向上,因此难以判别类别。但是,LDA 将点映射到负斜率,导致点被映射到接近同类点,与非同类点相反的位置。

      General Idea

      LDA 用两个值运行:类间散度、类内散度。类间散度指不同类之间的距离,类内散度指类内点之间的距离。LDA 最大化类间散度,最小化类内散度。

      Mathematical Formulation of LDA with 2 Variables

      我们想要找到一个投影wwxRn空间中映射出 0 和 1 的点到一个新的空间zRmz∈Rm,例如z=wTxz=wTx。其中,m<nm<n,且投影必须最大化以下公式:

      J(w)=SB when projected onto wSW when projected onto wJ(w)=SB when projected onto wSW when projected onto w

      公式中,SBSB代表类间散度,SWSW代表类内散度。接下来定义一个代表类内点的平均的变量μiμi
      μi=EX|Y[X|Y=i]μi=EX|Y[X|Y=i]

      定义变量ΣiΣi代表类的协方差矩阵:
      Σi=EX|Y[(Xμi)(Xμi)T|Y=i]Σi=EX|Y[(X−μi)(X−μi)T|Y=i]

      用以上变量,可以定义SBSBSWSW
      SB=(μ1μ0)2=(μ1μ0)(μ1μ0)TSW=(Σ1+Σ0)SB=(μ1−μ0)2=(μ1−μ0)(μ1−μ0)TSW=(Σ1+Σ0)

      将变量放回原式J(w)J(w)可得:
      J(w)=wT(μ1μ0)(μ1μ0)TwwT(Σ1+Σ0)wJ(w)=wT(μ1−μ0)(μ1−μ0)TwwT(Σ1+Σ0)w

      我们要最大化J(w)J(w),即最大化分子,保持分母为常数:
      maxwT(Σ1+Σ0)w=KwT(μ1μ0)(μ1μ0)TwmaxwT(Σ1+Σ0)w=KwT(μ1−μ0)(μ1−μ0)Tw

      用拉格朗日乘数法,我们定义拉格朗日算子为:
      L=wTSBwλ(wTSWwK)=wT(SBλSW)w+KL=wTSBw−λ(wTSWw−K)=wT(SB−λSW)w+K

      我们必须最大化LLλww的值。我们可以通过用其关于w的梯度和找到关键点的位置:
      wL=2(SBλSW)w=0∇wL=2(SB−λSW)w=0

      用这个公式,我们可以得到关键点位置:
      SBw=λSWwSBw=λSWw

      这是一个广义的特征向量问题。在S1W=(Σ1+Σ0)1SW−1=(Σ1+Σ0)−1存在的情况下,我们得到:
      S1WSBw=λwSW−1SBw=λw

      代入SBSB得:
      S1W(μ1μ0)=λαwSW−1(μ1−μ0)=λαw

      ww的大小并不重要,所以我们可以得到映射w
      w=S1W(μ1μ0)=(Σ1Σ0)1(μ1μ0)w∗=SW−1(μ1−μ0)=(Σ1−Σ0)−1(μ1−μ0)

      LDA with N Variables and C Classes

      Preliminaries

      Variables:

      • N 个样本:{x1,...,xN}{x1,...,xN}

      • C 个类:{Y1,Y2,...,YC}{Y1,Y2,...,YC}。每一类都有 N 个样本。

      • 每个类的平均:类ii的平均为

        μi=1NixkYixk

      • 所有数据的平均:

        μ=1Nk=1Nxkμ=1N∑k=1Nxk

      Scatter Matrices:

      • ii散度:Si=xkYi(xkμi)(xkμi)T
      • 类内散度:Sw=ci=1SiSw=∑i=1cSi
      • 类间散度:Sb=ci=1Ni(μiμ)(μiμ)TSb=∑i=1cNi(μi−μ)(μi−μ)T
      Mathematical Formulation

      我们需要一个将所有点从xRmx∈Rm映射到zRnz∈Rn的投影:

      z=wTx,xRm,zRnz=wTx,x∈Rm,z∈Rn

      Results: Eigenface(PCA) vs. Fisherface(LDA)

开发板推荐:天空星STM32F407VET6开发板

超高性价比 STM32主控 | 超高主频 | 一板兼容百芯 | 比赛神器 | 沉金彩色丝印

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值