我正在为我正在编写的面部识别程序使用 eigenfaces。我有几个关于如何实际生成特征脸的问题:
它们是由许多不同人的照片生成的,还是由同一个人的许多照片生成的?
这些人需要包括你想认识的人吗?如果不是,那么如何进行任何类型的比较?
是为您提供的每张图像确定一个特征面,还是多张图片用于创建一个特征面?
这都是关于特征脸的生成或学习阶段的。感谢您的帮助或为我指明正确的方向!
我正在为我正在编写的面部识别程序使用 eigenfaces。我有几个关于如何实际生成特征脸的问题:
它们是由许多不同人的照片生成的,还是由同一个人的许多照片生成的?
这些人需要包括你想认识的人吗?如果不是,那么如何进行任何类型的比较?
是为您提供的每张图像确定一个特征面,还是多张图片用于创建一个特征面?
这都是关于特征脸的生成或学习阶段的。感谢您的帮助或为我指明正确的方向!
实际上,我发现Wikipedia 上对 Eigenfaces的描述非常有用。要回答您的问题:
编辑:回答问题,凯文在问题的评论中添加:
使用特征脸背后的想法是,您可以通过将特征脸混合在一起来表达人脸的图像。假设您有三个特征脸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 的姊妹网站,关于计算机视觉的制作。
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.