5

我想知道,人脸识别究竟是如何工作的?因为每个人都有不同的面孔,所以您无法检测到一些“一般”面孔或其他东西。

4

4 回答 4

12

张军等人。(1997) 研究了适用于计算机视觉的三种不同的人脸识别方法,每种方法本身都是一个值得注意的统计分析领域:

1)特征脸算法
2)弹性匹配
3)自动关联和分类网络

eigenface 方法使用某种形式的降维方法(如 PCA)对人脸图像之间的统计变化进行编码,其中在特征空间中产生的特征差异不一定对应于孤立的面部特征,例如眼睛、耳朵和鼻子(在其他换句话说,特征向量的不可缺少的成分不是预先确定的)。

弹性匹配生成与面部特定轮廓点(例如眼睛、下巴、鼻尖等)相对应的节点图(即线框模型),并且识别基于图像图与已知数据库的比较。由于图像图可以在匹配过程中旋转,因此该系统往往对图像中的大变化更加稳健。

分类网络识别利用与弹性匹配相同的几何特征,但根本不同之处在于它是一种有监督的机器学习技术(通常涉及使用支持向量机)。

尽管当照明或面部对齐变化很大时,特征面部检测的性能可能不如其他方法,但它的优点是易于实现、计算效率高,并且能够以无监督的方式识别面部,因此往往成为事实上的标准。许多最先进的检测技术在识别之前也依赖于某种形式的降维,即使特征向量提取的处理方式不同。

于 2011-05-15T13:53:36.713 回答
5

在这里你可以找到答案:人脸识别

每张脸都有许多可区分的地标,即构成面部特征的不同峰谷。FaceIt 将这些地标定义为节点。每个人脸大约有 80 个节点。软件测量的其中一些是:

* Distance between the eyes
* Width of the nose
* Depth of the eye sockets
* The shape of the cheekbones
* The length of the jaw line

这些节点被测量创建一个数字代码,称为面部指纹,代表数据库中的面部。

于 2011-03-23T22:28:33.643 回答
4

一个好的开始方法是阅读主成分分析(PCA,也称为特征脸)、Fisher 的线性判别分析(LDA)和支持向量机(SVM)。这些是对人脸分类非常有用的分类方法。

OpenCV 已经包含了PCASVM的优秀实现。这个网站是 C++ 中 OpenCV 的人脸识别和分类代码的绝佳资源。

一个为面部分类最相关的方法提供资源和论文链接的网站就是这个

一个很好解释的 PCA 特征脸和 LDA 示例以及 Matlab 中的示例代码,这对我的第一个人脸分类程序非常有用

于 2012-05-22T19:10:33.473 回答
1

这是一门复杂的学科,需要大量学习。我建议你先看看 OpenCV - http://opencv.willowgarage.com/wiki/ - 一个带有教程等的计算机视觉库。部分不是关于“一般面孔”,而是关于挑选特征,然后运行一个指标——比如这些特征的相距多远或相对方向。

于 2011-03-23T22:28:36.233 回答