【计算机视觉】Lecture 32:基于PCA的目标识别

模板匹配

对象可以通过存储示例图像或“模板”来表示

在这里插入图片描述

模板匹配的假设

• 将模板放在给定图像的每个位置。

• 将模板中的像素值与图像底层区域中的像素值进行比较。

• 如果发现“良好”匹配,则宣布对象存在于图像中。

•可能的测量方法有:SSD、SAD、互相关、归一化互相关、最大差异等。

在这里插入图片描述

模板匹配的局限性

如果对象在图像上显示为缩放、旋转或倾斜,则匹配将不好。

在这里插入图片描述

解决方法

搜索模板和模板可能的变换(transformations)

在这里插入图片描述

效率不高!(但可行……)

使用特征空间

• 图像中对象的外观取决于以下几点:

–视角

–光照条件

–传感器

–对象本身(例如:人类面部表情)

• 原则上,可以通过增加模板数量来处理这些变化。

特征空间: 使用多个模板

• 模板数量可以快速增长!

• 我们需要:
•存储模板的有效方法
•搜索匹配的有效方法

观察:虽然每个模板不同,但模板之间存在许多相似之处。

有效的图像存储

考虑以下 3×1 的模板:

在这里插入图片描述

如果每个像素存储在一个字节中,我们需要18=3 x 6字节

仔细看,我们可以看到所有的图像都非常相似:它们都是相同的图像,按比例缩放:
在这里插入图片描述

它们只需要用9个字节存储(节省50%:存储一个图像(3字节)+ 乘法常数(6字节))

几何解释

将图像中的每个像素视为向量空间中的坐标。然后,可以将每个3x1模板视为三维空间中的一个点:

在这里插入图片描述

但在这个例子中,所有的点恰好属于一条直线:原始三维空间的一维子空间。

考虑一个新的坐标系,其中一个轴沿直线方向

在这里插入图片描述

在这个坐标系中,每个图像只有一个非零坐标:我们只需要存储直线的方向(一个3字节的图像)和每个图像的非零坐标(6个字节)。

线性子空间

在这里插入图片描述

将 x 变换到 v1,v2坐标

在这里插入图片描述

v2坐标测量什么?

  • 到直线的距离

  • 用它来分类——距离橙黄点接近为 0

v1坐标测量什么?

  • 沿着直线的位置

  • 用它来指定是哪个橙色点

• 分类可能比较耗资源

– 必须搜索(例如近邻的)或存储大概率密度函数。

• 假设数据点按上述方式排列

– 想法——拟合一条直线,分类器测量到线的距离

降维

在这里插入图片描述

• 降维

– 我们只用它们的v1坐标表示橙色点

• 因为v2坐标基本上都是0

– 这使得存储和比较点数更加节省资源

– 但对于更高维度的问题来说是一个比较大的开销

线性子空间

在这里插入图片描述

考虑所有橙色点沿 v 方向的变化:

在这里插入图片描述

什么单位向量 v 使 var 最小化?

在这里插入图片描述

什么单位向量 v 最大化 var?

在这里插入图片描述

在这里插入图片描述

解:v1是A的最大特征值对应的特征向量;v2是A的最小特征值对应的特征向量

主成分分析法(PCA)

给定一组模板,我们如何知道它们是否可以像前面的示例中那样被压缩存储?

–答案是研究模板之间的互相关性

–执行此操作的工具称为PCA 

PCA理论

设x1 x2…xn为一组 n 个 在这里插入图片描述 的向量,设 在这里插入图片描述 为它们的平均值:

在这里插入图片描述

注:每个 N x N 图像模板可以表示为 N2 x 1 向量,其元素是模板像素值。

PCA理论

设 X 为 在这里插入图片描述 的矩阵,列向量为 在这里插入图片描述

在这里插入图片描述

注:减去平均值等价于将坐标系平移到平均值的位置。

PCA理论

在这里插入图片描述 为一个 在这里插入图片描述 矩阵

在这里插入图片描述

注:

  1. Q 是平方的

  2. Q 是对称的

  3. Q 是协方差矩阵[又称为散列矩阵]

  4. Q 可以非常大(记住N2是模板中像素的数量)

PCA理论

理论:
每一个 xj 可以被写成: 在这里插入图片描述

其中 ei 是 Q 的非零特征值所对应的n个特征向量。

注:

  1. 特征向量 在这里插入图片描述 扩展为一个特征空间

  2. e1到en为 在这里插入图片描述 的正交向量 ( N*N 图像)

  3. 标量gji是xj在特征空间中的坐标。

  4. 在这里插入图片描述

使用PCA压缩数据

• 用e1…en表示x不会改变数据的大小

• 但是,如果模板高度相关,x的许多坐标值将为零或接近零。

注:这意味着它们位于一个更低维度的线性子空间中

使用PCA压缩数据

根据特征值排列特征向量 ei

**加粗样式**在这里插入图片描述

假设 在这里插入图片描述

可以得到 在这里插入图片描述

特征空间:有效的图像存储

使用 PCA 压缩数据
每一个图像被存储为一个 k 维向量
需要存储 k 维 N×N 个特征向量
在这里插入图片描述

在这里插入图片描述

特征空间:有效的图像比较

使用相同的过程将给定的图像压缩为一个 k 维向量。

比较压缩的向量:
k 维向量的点积

在这里插入图片描述

实现细节

需要找到Q的“第一个” k 维特征向量:

在这里插入图片描述

Q是N2 x N2,其中N2是每个图像中的像素数。对于256 x 256图像,N2=65536!!

找到 Q 的 ev

Q = XXT 是非常大的。所以,考虑矩阵 P = XTX

Q 和 P 都是对称阵,但 Q 不等于 PT
Q 是 N2 x N2,P 是 n×n
n 是训练图像的数量,一般 n<<N

设e是具有特征值lamda的P的特征向量:

在这里插入图片描述

Xe也是具有特征值lamda的Q的特征向量:

奇异值分解(SVD)

任何 m×n 的矩阵 X 可以被转换为三个矩阵的乘积:

在这里插入图片描述

其中:

  1. U 是 m x m 矩阵,其列向量是正交向量

  2. V 是 n x n 矩阵,其列向量是正交向量

  3. D 是 m x n 对角矩阵,其对角线元素被称为X的奇异值(singular values),并且是这样的:

在这里插入图片描述

SVD性质

在这里插入图片描述

U 的列向量是矩阵 XXT 的特征向量

V 的列向量是矩阵 XTX 的特征向量

矩阵 D 的对角线元素的平方是矩阵 XXT 和矩阵 XTX 的特征值

算法 特征空间学习 EIGENSPACE_LEARN

假设

  1. 每个图像只包含一个对象

  2. 对象由固定相机成像

  3. 图像被规范化为 N*N 的尺寸
    ——图像帧是包围对象的最小矩形

  4. 像素值的能量函数归一化为1
    ——在这里插入图片描述

  5. 对象在所有图像中都是完全可见以及未被遮挡的。

算法 特征空间学习 EIGENSPACE_LEARN

获取数据
对于要表示的每个对象o,o=1,…,O

  1. 将o放置在转台上,通过以360度/n的增量方式旋转转台来获取一组n个图像
  2. 对每一个图像p, p = 1, …, n:
    1. 把o从背景中分割出来
    2. 归一化图像尺寸和能量
    3. 将像素排列为 在这里插入图片描述

算法 特征空间学习 EIGENSPACE_LEARN

存储数据

  1. 求平均图像向量 在这里插入图片描述

  2. 组合矩阵 X

在这里插入图片描述

  1. 找到 XXT 的第一个 k 维特征向量:e1, …, ek (使用XTX或者SVD)

  2. 对于每一个对象 o,每一个图像p:计算对应的 k 维点:

在这里插入图片描述

算法 特征空间学习 EIGENSPACE_LEARN

从DB中识别一个对象

  1. 给定一个图像,从背景中分割出一个对象
  2. 归一化尺寸和能量,将其表示为向量 i
  3. 计算对应的 k 维点:

在这里插入图片描述

  1. 找到离 g 最近的 k 维点 在这里插入图片描述

特征空间表示法的关键性质

给定:

两个图像 在这里插入图片描述 用来创建特征空间
——在这里插入图片描述是图像在这里插入图片描述的特征空间投影
——在这里插入图片描述是图像在这里插入图片描述的特征空间投影

然后,

在这里插入图片描述

也就是说,特征空间中的距离近似等于两幅图像之间的互相关性

例子:Murase and Nayar, 1996

物体的数据库

无背景杂波或遮挡

在这里插入图片描述

Murase and Nayar, 1996

使用转台获取对象外观模型

在这里插入图片描述

外观流形

在这里插入图片描述在这里插入图片描述

例子:特征脸

在这里插入图片描述

• 图像是高维空间中的一个点

– N x M图像是 R N M R^{NM} RNM中的一个点

– 我们可以在这个空间中定义向量,就像在二维空间的情况那样

降维

在这里插入图片描述

脸集是图像集的“子空间”

–假设它是K维的

–我们可以使用PCA找到最佳子空间

–这就像将“超平面”拟合到脸集

•通过向量 在这里插入图片描述 扩展

任何脸: 在这里插入图片描述

产生特征脸

  1. 拍摄了大量的人脸图像。

  2. 图像被标准化,以排列眼睛、嘴巴和其他特征。

  3. 然后提取人脸图像协方差矩阵的特征向量。

  4. 这些特征向量称为特征脸。

特征脸

在这里插入图片描述

特征脸看起来有点像一般的脸

面部识别的特征脸

•适当加权后,可将特征脸相加,以生成人脸的近似灰度渲染。

•几乎不需要特征向量项就能让大多数人的脸看起来很像。

•因此,特征脸提供了一种将数据压缩应用于面部识别目的的方法

特征脸

PCA提取 A 的特征向量
——给出一组向量 v1, v2, v3, …
——这些向量中的每一个都是脸空间中的一个方向

在这里插入图片描述

投影到特征脸上

特征脸 v1, …, vk扩展脸空间
—— 通过下面的操作,脸被转换到特征脸坐标系中

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

使用特征脸来识别

算法

  1. 处理图像数据库(一组有labels的图像)
    ——进行PCA—计算特征脸
    ——为每个图像计算 K 个系数

  2. 给定一个新的图像(为了被识别)x,计算 K 个系数

在这里插入图片描述

  1. 检测 x 是否是脸

在这里插入图片描述

  1. 如果是脸,是谁?
    ——在数据库中查找最近的打了label的脸
    ——K维空间中的最近邻

注意事项: PCA有遮挡问题以及外点问题

在这里插入图片描述

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值