3

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

  1. 它们是由许多不同人的照片生成的,还是由同一个人的许多照片生成的?

  2. 这些人需要包括你想认识的人吗?如果不是,那么如何进行任何类型的比较?

  3. 是为您提供的每张图像确定一个特征面,还是多张图片用于创建一个特征面?

这都是关于特征脸的生成或学习阶段的。感谢您的帮助或为我指明正确的方向!

4

2 回答 2

2

实际上,我发现Wikipedia 上对 Eigenfaces的描述非常有用。要回答您的问题:

  1. 是的,你应该从许多不同的人那里拍照。
  2. 不,特征脸基本上给了你一种描述其他脸的方法。您可以将特征面视为向量空间中的基础。你必须确保你可以用你拥有的特征脸来描述你想要识别的脸。如果您只使用高加索人脸来确定特征脸,您可能会遇到用他们描述各种亚洲人脸的问题,反之亦然。
  3. 特征脸是从一组图像中计算出来的,即多个图像导致多个特征脸。

编辑:回答问题,凯文在问题的评论中添加:

使用特征脸背后的想法是,您可以通过将特征脸混合在一起来表达人脸的图像。假设您有三个特征脸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的答案)。

PS:我建议你密切关注51 区:计算机视觉,这是 Stack Overflow 的姊妹网站,关于计算机视觉的制作。

于 2011-06-23T11:46:13.923 回答
1
  1. 非常需要许多不同的人来获得支持以覆盖所有可能的面孔。
  2. 不需要,尽管您需要表示所有维度。一个很好的类比是用于描述三角形中点的位置的重心坐标。您将获得顶点的加权平均值。如果您没有足够的向量支持(例如,只有两个点),那么无论您如何使用加权平均值,都无法描述位于线外的点。这本质上是 bjoernz 对于高加索人与亚洲人面孔的观点。请注意,这个类比是一个粗略的简化。特征脸中的权重实际上更像 PCA 或傅立叶系数。
  3. 每个图像都变成一个特征面,它是一个主成分的向量。

Nota bene: you need very good registration of the faces. Eigenfaces is notoriously bad about translation/rotation invariance. Your results are likely to be terrible unless you register well. The original Turk and Pentland paper was groundbreaking not just because of the technique but for the scale and quality of data set they gathered which enabled said technique.

于 2011-06-23T12:57:48.673 回答