主要思路:
通过捕捉训练数据集中面部结构的线性特征来实现的。这种方法不需要成对的“损坏-正常”面部图像,而是通过分析和学习正常面部图像的数据集来推断损坏面部的可能原始外观。
训练阶段:
- 收集大量的正常面部图像,并对这些图像进行预处理,比如将图像转换为灰度图、归一化大小等。
- 将每张图像转换为一个向量,并将所有向量排列成一个矩阵。
- 计算这个矩阵的协方差矩阵,并对其进行特征值分解,得到一组特征向量(也称为“特征脸”)和相应的特征值。
- 选择前K个最大的特征值对应的特征向量,这些特征向量能够解释数据中的主要变化。
推理阶段:
- 对于需要重建的损坏面部图像,首先将其也转换为一个向量。
- 使用训练阶段得到的特征向量来计算测试图像的系数向量。这是通过将测试图像向量与特征向量的点积来完成的。
- 使用这些系数和对应的特征向量来重构面部图像。重构的图像是一个线性组合,它尽可能地接近原始的、未损坏的面部图像。
重构公式:
- 训练图像的重构公式通常表示为:
其中是训练图像的向量,
是训练集的平均面部向量,vi 是第i个特征向量,yi 是对应的系数。
- 对于测试图像,系数向量 ytest可以通过以下公式计算:
其中 xtest是测试图像的向量。
- 然后,新的重建图像 xtest′可以通过将系数向量 ytest与特征向量 vtrain 相乘并加上平均面部向量 mtrain来获得。
优势在于它可以处理复杂的面部变化,并且不需要大量的标记数据。
然而,PCA重建的面部可能缺乏一些细节,特别是在表情、光照变化较大的情况下。
此外,PCA方法假设面部的变化是线性的,这在现实中并不总是成立。因此,虽然PCA是一个强大的工具,但在实际应用中可能需要与其他方法结合使用,以获得更好的重建效果。