Jun Zhang et al. (1997) investigate three distinct methods of face recognition applicable to computer vision, each a noteworthy domain of statistical analysis in its own right:
The eigenface method encodes the statistical variation among face images using some form of dimensionality reduction method (like PCA), where the resulting characteristic differences in the feature space don't necessarily correspond to isolated facial features such as eyes, ears and noses (in other words, the indispensable components of the feature vector are not pre-determined).
Elastic matching generates nodal graphs (ie wireframe model) that correspond to specific contour points of a face, such as the eyes, chin, tip of the nose, etc, and recognition is based on a comparison of image graphs against a known database. Since image graphs can be rotated during the matching process, this system tends to be more robust to large variation in the images.
Classification net recognition utilizes the same geometric characteristics as elastic matching, but fundamentally differs by being a supervised machine learning technique (often involving the use of support vector machines).
Although eigenface detection can underperform other methods when variation in lighting or facial alignment is large, it has the benefit of being easy to implement, computationally efficient, and able to recognize faces in an unsupervised manner, and therefore tends to be a de facto standard. Many state-of-the-art detection techniques also rely on some form of dimensionality reduction prior to recognition, even if feature vector extraction is handled differently.
Every face has numerous, distinguishable landmarks, the different peaks and valleys that make up facial features. FaceIt defines these landmarks as nodal points. Each human face has approximately 80 nodal points. Some of these measured by the software are:
* Distance between the eyes
* Width of the nose
* Depth of the eye sockets
* The shape of the cheekbones
* The length of the jaw line
These nodal points are measured creating a numerical code, called a faceprint, representing the face in the database.
A good way to start is by reading about Principal Component Analysis (PCA also known as Eigenfaces), Fisher's Linear Discriminant Analysis (LDA), and Support Vector Machines (SVMs). These are classification methods that are extremely useful for face classification.
OpenCV already includes excellent implementations of PCA and SVM. An excellent resource for face recognition and classification code for OpenCV in C++ is this website.
One website that offers resources and links to papers for most relevant methods for face classification is this one.
A well explained example of PCA Eigenfaces and LDA with sample code in Matlab that was extremely useful for my first face classification program is here.
This is a complex subject that requires much learning. I'd suggest you start by looking at OpenCV - http://opencv.willowgarage.com/wiki/ - a computer vision library with tutorials etc. Partly it is about not so much a "general face" but about picking out features, and then running a metric - like how far apart or relative orientation of those features.
发布评论
评论(4)
张军等人。 (1997) 研究了适用于计算机视觉的三种不同的人脸识别方法,每种方法本身都是值得注意的统计分析领域:
1) 特征脸算法
2)弹性匹配
3)自动关联和分类网络
特征脸方法使用某种形式的降维方法(如PCA)对人脸图像之间的统计变化进行编码,其中特征空间中产生的特征差异不一定对应于孤立的面部特征,例如如眼睛、耳朵和鼻子(换句话说,特征向量的不可或缺的组成部分不是预先确定的)。
弹性匹配生成对应于面部特定轮廓点(例如眼睛、下巴、鼻尖等)的节点图(即线框模型),并且识别基于图像图与已知数据库的比较。由于图像图可以在匹配过程中旋转,因此该系统对于图像中的大变化往往更加鲁棒。
分类网络识别利用与弹性匹配相同的几何特征,但根本不同之处在于它是一种监督机器学习技术(通常涉及支持向量机的使用)。
尽管当光照或面部对齐变化较大时,特征脸检测的性能可能不如其他方法,但它的优点是易于实现、计算效率高,并且能够以无监督的方式识别面部,因此往往成为事实上的标准。许多最先进的检测技术也依赖于识别之前某种形式的降维,即使特征向量提取的处理方式不同。
Jun Zhang et al. (1997) investigate three distinct methods of face recognition applicable to computer vision, each a noteworthy domain of statistical analysis in its own right:
1) Eigenface algorithm
2) Elastic matching
3) Autoassociation and classification nets
The eigenface method encodes the statistical variation among face images using some form of dimensionality reduction method (like PCA), where the resulting characteristic differences in the feature space don't necessarily correspond to isolated facial features such as eyes, ears and noses (in other words, the indispensable components of the feature vector are not pre-determined).
Elastic matching generates nodal graphs (ie wireframe model) that correspond to specific contour points of a face, such as the eyes, chin, tip of the nose, etc, and recognition is based on a comparison of image graphs against a known database. Since image graphs can be rotated during the matching process, this system tends to be more robust to large variation in the images.
Classification net recognition utilizes the same geometric characteristics as elastic matching, but fundamentally differs by being a supervised machine learning technique (often involving the use of support vector machines).
Although eigenface detection can underperform other methods when variation in lighting or facial alignment is large, it has the benefit of being easy to implement, computationally efficient, and able to recognize faces in an unsupervised manner, and therefore tends to be a de facto standard. Many state-of-the-art detection techniques also rely on some form of dimensionality reduction prior to recognition, even if feature vector extraction is handled differently.
您可以在这里找到答案:人脸识别
每张脸都有许多可区分的标志,构成面部特征的不同峰和谷。 FaceIt 将这些地标定义为节点。每张人脸大约有 80 个节点。软件测量的一些数据包括:
这些节点被测量,创建一个数字代码,称为面部印记,代表数据库中的面部。
Here you can find the answer: Face recognition
Every face has numerous, distinguishable landmarks, the different peaks and valleys that make up facial features. FaceIt defines these landmarks as nodal points. Each human face has approximately 80 nodal points. Some of these measured by the software are:
These nodal points are measured creating a numerical code, called a faceprint, representing the face in the database.
一个好的开始方法是阅读主成分分析(PCA 也称为特征脸)、Fisher 线性判别分析 (LDA) 和支持向量机 (SVM)。这些分类方法对于人脸分类非常有用。
OpenCV 已经包含了 PCA 和 SVM。 此网站是 C++ 中 OpenCV 人脸识别和分类代码的绝佳资源。
这个是一个网站,它提供了大多数人脸分类相关方法的资源和论文链接。
一个很好解释的 PCA Eigenfaces 和 LDA 示例,在 Matlab 中包含示例代码,这对于我的第一个面部分类程序非常有用 在这里。
A good way to start is by reading about Principal Component Analysis (PCA also known as Eigenfaces), Fisher's Linear Discriminant Analysis (LDA), and Support Vector Machines (SVMs). These are classification methods that are extremely useful for face classification.
OpenCV already includes excellent implementations of PCA and SVM. An excellent resource for face recognition and classification code for OpenCV in C++ is this website.
One website that offers resources and links to papers for most relevant methods for face classification is this one.
A well explained example of PCA Eigenfaces and LDA with sample code in Matlab that was extremely useful for my first face classification program is here.
这是一门复杂的学科,需要大量学习。我建议您首先查看 OpenCV - http://opencv.willowgarage.com/wiki/ - 带有教程等的计算机视觉库。部分而言,它并不是关于“一般面孔”,而是关于挑选特征,然后运行度量 - 例如这些特征的距离或相对方向。
This is a complex subject that requires much learning. I'd suggest you start by looking at OpenCV - http://opencv.willowgarage.com/wiki/ - a computer vision library with tutorials etc. Partly it is about not so much a "general face" but about picking out features, and then running a metric - like how far apart or relative orientation of those features.