什么是特征脸?

时间:2011-06-23 06:21:41

标签: computer-vision face-detection face-recognition eigenvector

我正在使用特征脸来处理我正在写的面部识别程序。我有几个关于如何实际生成特征脸的问题:

  1. 它们是由很多不同人物的照片或同一个人的很多照片生成的吗?

  2. 这些人是否需要包含您想要识别的人?如果没有,那么将如何进行任何类型的比较?

  3. 是否为您提供的每个图像确定了特征脸,或者是否创建了一个特征脸来创建一个特征脸?

  4. 这完全是关于特征脸的生成或学习阶段。感谢您的帮助或指导我朝着正确的方向前进!

2 个答案:

答案 0 :(得分:2)

我实际上发现Eigenfaces on Wikipedia的描述非常有用。回答你的问题:

  1. 是的,你应该拍许多人的照片。
  2. 不,特征脸基本上为您提供了描述其他脸的方法。您可以将特征脸视为vector space的基础。您必须确保可以使用您拥有的特征脸来描述您想要识别的脸部。如果您只使用高加索人脸来确定特征脸,那么您可能无法用它们描述各种亚洲面孔,反之亦然。
  3. 根据一组图像计算特征脸,即多个图像导致多个特征脸。
  4. 编辑:回答这个问题,Kevin在评论中添加了问题:

    使用特征脸的背后的想法是,您可以通过将特征脸混合在一起来表达脸部的图像。假设您有三个特征脸ef_1, ef_2, ef_3并且您有一张脸f_1 = a_1 * ef_1 + a_2 * ef_2 + a_3 * ef_3的图像。无论你想用哪个面来表达,特征脸都不会改变,但系数a = (a_1, a_2, a_3)是脸部的特征。这是您用来比较两个面孔的方法。

    但是为了进入可以使用特征脸的阶段,首先必须将观察到的面与特征脸对齐(注册),这不是微不足道的,而是一个完全不同的主题(参见pxu's回答)。

    P.S。:我建议您密切关注Area 51: Computer Vision,这是一个关于计算机视觉的Stack Overflow姐妹网站。

答案 1 :(得分:1)

  1. 许多不同的人非常有必要获得支持以涵盖所有可能的面孔。
  2. 不需要,尽管您需要代表所有尺寸。一个很好的类比是用于描述三角形中一个点的位置的重心坐标。您正在获得顶点的加权平均值。如果你没有足够的向量支持(例如,只有两个点),那么无论你如何使用加权平均值,你都无法描述位于线外的点。对于高加索人与亚洲人的面孔来说,这基本上是bjoernz的观点。请注意,这种类比是一种粗略的简化。特征脸中的权重实际上更像是PCA或傅立叶系数。
  3. 每个图像都变成了一个特征脸,它是主成分的矢量。
  4. Nota bene:你需要非常好的面部注册。特征脸在翻译/旋转不变性方面是非常糟糕的。除非你注册好,否则你的结果可能很糟糕。最初的Turk和Pentland论文是开创性的,不仅仅是因为这项技术,而且因为他们收集的数据集的规模和质量使得这种技术得以实现。