OpenCV / EmguCV人脸识别

时间:2010-05-16 18:02:35

标签: c# opencv emgucv face-recognition

我正在尝试创建一个检测面部并识别它的应用程序。我进行了人脸检测,但在进行识别时我想要一些想法。我正在使用网络摄像头进行跟踪,它可以检测到脸部。然后我只将脸部的一部分带到一个新的灰色图像,并使用EigenObjectRecognizer与数据库中的图像列表进行比较。

但它没有给出好的结果。有时候它会发现一些错误的东西,有时却没有。我想问一下,为了比较照片我必须实施哪些其他技术?像直方图均衡或面部均衡的分辨率?

4 个答案:

答案 0 :(得分:13)

我有一个OpenCV人脸识别(Haar人脸检测+直方图均衡+特征脸)教程和免费的源代码,您可以尝试: http://www.shervinemami.info/faceRecognition.html

答案 1 :(得分:2)

人脸检测和人脸分类是完全不同的问题。我可以从我的经验和阅读几篇关于面部分类的论文中告诉你,开始的一个好方法是阅读主成分分析(PCA也称为特征脸),费希尔的线性判别分析(LDA),以及支持向量机(SVM)。这些分类方法对于面部分类非常有用,事实证明OpenCV已经在PCASVM上包含了优秀的实现。在C ++中,OpenCV的面部识别和分类代码的优秀资源是this website

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

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

答案 2 :(得分:1)

Eigenfaces只会让你在面部识别方面得到进一步的发展。您可以训练的面数有限制。您将不得不研究更新的算法,查看该领域的新论文并实施它们。

您可以通过确保所有图像具有相同的方向和大小来实现特征脸的效率。方向和位置很重要。因此,请确保在比较之前应用正确的转换

答案 3 :(得分:0)

点击以下链接查看我的回答。其中有一些链接会对您有所帮助,主要是我提到的YouTube视频。

Dice face value recognition