人脸识别

时间:2011-03-23 22:23:10

标签: face-recognition

我很想知道,面部识别是如何正常工作的?因为每个人都有不同的面孔,你无法发现一些“普通”的面孔或其他东西。

4 个答案:

答案 0 :(得分:11)

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

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

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

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

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

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

答案 1 :(得分:5)

在这里你可以找到答案:Face recognition

每张脸都有许多可区分的地标,不同的山峰和山谷构成了面部特征。 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

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

答案 2 :(得分:4)

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

OpenCV已经包含了PCASVM的出色实现。在C ++中,OpenCV的面部识别和分类代码的优秀资源是this website

一个网站提供资源和相关论文链接,用于最相关的面部分类方法this one

PCA Eigenfaces和LDA的一个很好的解释示例,其中包含Matlab中的示例代码,这对我的第一个面部分类程序is here非常有用。

答案 3 :(得分:1)

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