跳转到内容

使用特征脸进行叶/人脸识别的人工智能编程

来自维基教科书,开放的书籍,为开放的世界

对特征脸的极度简化描述。

首先,用非技术术语解释什么是特征脸。假设你正在看一对兄妹。你可能会想 - “他看起来很像他的爸爸,但她完全像她的妈妈。” 仔细观察后,你可能会补充 - “但他有他妈妈的眼睛,她有她爸爸的下巴。” 所以假设爸爸和妈妈的脸是我们用来“定义”孩子长相的模型。现在,从“数学”的角度来说,我们可能会说男孩看起来 90% 像爸爸,10% 像妈妈,但女孩看起来 5% 像爸爸,95% 像妈妈。或者为了真正简化描述

Bob = (0.90 0.10)

Jane = (0.05 0.95)

在这个(疯狂的)例子中,爸爸的脸和妈妈的脸是“特征脸” - 我们用来“解构”面部进行比较的理想模型。所以让我们看看接下来会发生什么。有人走进房间(Bob 或 Jane)。我们拍一张照片。我们的算法解构图像,并得出结论,它看起来 85% 像爸爸,15% 像妈妈。或者

Unknown = (0.85 0.15)

将此与我们存储的 Bob 和 Jane 的图像进行比较,你会发现这张图像比 Jane 更“接近”Bob - 所以我们得出结论,我们正在看 Bob。


更好的解释

对于那些有工程背景的人来说,对特征脸更现实的解释是将它与傅里叶变换进行类比。理论上,任何复杂的波形都可以重新创建为无数个具有不同幅度和周期的正弦波的总和。但是,通常你只需要使用几个关键正弦波就能获得复杂波形相当不错的近似值。现在假设你的数据库中有 100 万张脸。那么如果你有 100 万个特征脸,那么你就可以找到完全匹配 - 但这效率很低。事实证明,正如傅里叶示例一样,你实际上只需要几个关键特征脸 - 也许只需要数据库中总人脸的百分之一...... 并且这对于匹配和识别已经“足够好了”。


但是这些都是不好的例子。特征脸究竟是如何工作的?Leaf 如何使用它们?


详细解释

[免责声明:我在这里不会用数学术语解释特征脸或特征值 - 我的目的是展示它们是什么以及它们是如何使用的...... 为了完整描述数学,你需要线性代数的背景......]

好的,我告诉 Leaf “Leaf,我是 Bruce。” Leaf 拍了我的照片。它被转换为黑白灰度图像。OpenCV 有一种算法可以识别图片中可能是一张脸的“感兴趣区域” - 这就是“人脸检测”步骤。提取该区域并缩小或放大,使其正好为 100 像素 x 100 像素。这就是我们的“标准图像”。请注意,此步骤有助于将所有图像调整为相同的大小或比例 - 远处拍摄的图像会放大,近距离拍摄的图像会缩小,以使所有图像的大小大致相同...... 我们将比较苹果和苹果。然后 Leaf 将该图像存储在其“人脸数据库”中,命名为“Bruce”。

当 Leaf 的数据库中有很多图片时,他会运行 Gary Malolepsy 和我编写的基于 OpenCV 的算法,该算法从数据库中存储的人脸中提取特征脸。在我的第一个例子中,这有点像观察一群孩子,并试图创建妈妈和爸爸的照片。在我的第二个例子(更类似于数学的例子)中,这就像对一堆复杂的波形运行傅里叶变换,试图从中提取一些关键正弦波。

如果你想看一些人脸图片,请查看 Leaf 文件夹中的 LeafFaces 文件夹。如果你想看看这些面孔的特征脸,那么请查看 eigen 文件夹 - 特征脸是数学提取物。... 它们看起来很幽灵......

好的。现在我问“Leaf,我是谁?” Leaf 拍了我的照片。将其转换为灰度。将其大小调整为 100 x 100 像素。然后他根据其特征数据库中的特征脸模式,将图片“解构”为其特征值。他得到一些类似于我的第一个例子的特征值 - 就像他在说“好的,这张未知的脸是 45% 特征脸 1,5% 特征脸 2,25% 特征脸 3,等等。那么我的脸部数据库中谁与该描述相匹配?嘿,Bruce 是 46% 特征脸 1,3% 特征脸 2,22% 特征脸 3,等等。我认为它看起来像 Bruce!”


要了解更多信息,这里有一些有用的链接

http://en.wikipedia .org/wiki/ Eigenface

http://www.scholarp edia.org/ article/Eigenfac es

http://www.pages. drexel.edu/ ~sis26/Eigenface %20Tutorial. htm


[另一个免责声明:现在说说坏消息。]

特征脸方法效果很好。但是它也有局限性。

首先,它总是会返回答案。如果 George(不在数据库中)问“Leaf,我是谁?” 那么 Leaf 将会回应与 George 最接近的人 - 可能是“你看起来像 Bruce。” 这表明需要进一步训练。因此,George 应该接着说“Leaf,我是 George。”

但是,该过程也会受到光线变化、脸部部分遮挡(例如戴着太阳镜)、背景变化以及实际上任何会显着改变图片外观的因素的影响。这些图片来自数据库。

我在原始帖子中包含的文章更详细地探讨了这些限制,并尝试找到一种在出现这些问题时改进识别的方法

http://www.mmp.rwth-aachen.de/teaching/cvws08/additional/leonardis-robusteigen-cviu00.pdf

好吧,关于特征脸的非技术性介绍就到这里...... 但希望通过这种解释,如果你决定深入研究它们,你将能够更清楚地理解技术解释......

华夏公益教科书