人脸检测和比较

我正在为我的文章进行面部检测和比较的小型研究。 目前,我正在使用基于类似基于OpenCV级联的function的快速人脸检测(我稍后将实施学习)。 下一步是进行面部比较。 有没有熟知的算法? 它会很棒,如果有一些C#代码,解释它们或一些实现它们的dll。

特征脸

为了生成一组特征脸,在相同的光照条件下拍摄的大量人脸数字化图像被标准化以排列眼睛和嘴巴。 然后,它们以相同的像素分辨率重新采样。 可以通过称为主成分分析(PCA)的数学工具从图像数据中提取特征脸。

现在可以使用特征脸来表示新面部:我们可以在特征脸上投射新的(平均减去的)图像,从而记录新面部与平均面部的差异。 与每个特征脸相关联的特征值表示训练集中的图像与该方向上的平均图像的差异。 我们通过将图像投影到特征向量的子集上来丢失信息,但是我们通过保持那些具有最大特征值的特征脸来最小化这种损失。

Fisherfaces和Eigenfaces

如果你的脸没有对齐,那么我建议你阅读以下论文:

支持向量机

摘要:我们提出了一种基于组件的方法和两种全局的人脸识别方法,并针对姿势变化的鲁棒性进行评估。 在组件系统中,我们首先定位面部组件,提取它们并将它们组合成单个特征向量,该向量由支持向量机(SVM)分类。

两个全局系统通过对由整个面部图像的灰度值组成的单个特征向量进行分类来识别面部。 在第一个全局系统中,我们为数据库中的每个人训练了一个SVM分类器。 第二个系统由一组特定于视点的SVM分类器组成,并涉及训练期间的聚类。

我编写了一个教程和演示程序,其中包含免费的源代码,用于从网络摄像头(也在OpenCV中)实时进行人脸检测和人脸识别:

http://www.shervinemami.info/faceRecognition.html

Beveridge有一个评估系统。 他们实施了三种具有不同指标的人脸识别算法 算法被实现用于评估,因此可能难以将它们用于您自己的程序。

一些Java API和一般链接可以在我关于人脸识别的问题中找到。