人脸识别库

我正在为大学项目寻找免费的面部识别库。 我不是在寻找人脸检测 。 我正在寻找实际的认可。 这意味着查找包含指定面或库的图像,以计算特定面之间的距离。

目前我正在使用OpenCV来检测人脸和粗糙的Eigenfacealgorithm进行识别。 但是我认为应该有比自己写的Eigenfacealgorithm更好的性能。 我不是在谈论速度的performance,我正在寻找一个比简单的特征脸方法更好的结果库。

我看了一眼Faint ,但是看起来这个库对于我自己的应用程序来说并不是很可重用。

我对Python,Java,C ++,C或类似的库感到满意。 最好的情况是,如果它可以在Windows机器上运行,因为我现在只依赖一些外部的Windows代码。

以下是一些商业供应商列表,提供在Windows上运行的面部识别的现成包装:

  1. Cybula – 关于他们的面部识别SDK的信息 。 这是一个由大学教授创build的公司,因此他们的网站看起来不专业。 没有可以下载的定价信息或演示。 您需要联系他们了解价格信息。

  2. 神经科技 – 面部识别SDK的信息 。 该公司既提供前期定价信息 ,也提供实际的30天试用版SDK 。

  3. 匹兹堡模式识别 – ( 由Google收购 ) 面部跟踪和识别SDK的信息 。 他们提供的演示帮助您评估他们的技术,但不是他们的SDSK。 您需要联系他们了解价格信息。

  4. 明智的愿景 – 关于他们的SDK的信息。 他们的网站可以让您轻松获得报价,您也可以订购评估套件,以帮助您评估他们的技术。

更新

OpenCV 2.4.2现在带有非常新的cv :: FaceRecognizer 。 请参阅以下详细的文档:

原始post

我已经发布了libfacerec ,一个面向OpenCV C ++ API(BSD许可证)的现代人脸识别库。 libfacerec没有额外的依赖关系,并实现了特征脸方法,Fisherfaces方法和局部二值模式直方图。 图书馆的部分内容将被包含在OpenCV 2.4中。

libfacerec的最新版本可在以下位置获得:

该库是为即将推出的OpenCV 2.4而编写的OpenCV 2.3.1,因此我不支持早于2.3.1的OpenCV版本。 这个项目是一个CMake项目,具有良好的文档API,还有一个关于性别分类的教程。 您可以在以下位置看到HTML版本的文档:

如果您想了解这些algorithm是如何工作的,您可能需要阅读我的人脸识别指南(包括Python和GNU Octave / MATLAB示例):

在我的github仓库中还有一个Python和GNU Octave / MATLAB的algorithm实现。 facerec中的两个项目还包括几种用于评估algorithm的交叉validation方法:

有关的出版物是:

  • 土耳其人,M.,和Pentland,A .识别的特征脸。 。 Journal of Cognitive Neuroscience 3(1991),71-86。
  • Belhumeur,PN,Hespanha,J.和Kriegman,D.特征面对Fisherfaces:使用类特定线性投影的识别。 。 IEEE Transactions on Pattern Analysis and Machine Intelligence 19,7(1997),711-720。
  • Ahonen,T.,Hadid,A.和Pietikainen,M. 用局部二元模式进行人脸识别。 。 计算机视觉 – ECCV 2004(2004),469-481。

pam-face-authentication一个面向身份validation的PAM模块:但是需要一些工作来获得你想要的。 一个快速testing表明,识别率不如NeuroTechnology公司的VeriLook。

Malic是另一个开源的人脸识别软件,它使用Gabor小波描述符。 但最近更新到源是3岁。

来自网站:“ Malic是一个使用gabor小波的开源人脸识别软件,它是基于Malib和CSU人脸识别评估系统(csuFaceIdEval)的实时人脸识别系统。使用Malib库进行实时image processing,使用一些csuFaceIdEval进行人脸识别承认“。

此外这可能是有趣的:

gaborboosting :Gabor小波和AdaBoostalgorithm在人脸识别中的一个科学scheme

特征提取库 – FELib是指“用传导核Fisher判别式进行人脸注释”

如果你想计算人脸之间的距离,我认为你已经在做的Eigenface是要走的路。 你可以尝试不同的方法,如支持向量机或隐马尔可夫模型 。 我find了一个页面,列出了可用于面部识别的主要algorithm: 人脸识别主页 。

另外,当你说“更好的performance”,你的意思是速度或准确性? 你有什么问题? 数据如何变化? 他们大多是正面还是包括configuration文件?

如果您的项目是在电影或电视上,或任何有脚本的东西,看起来您肯定希望看看Mark Everingham 等 人的工作。 。 该软件是可用的 ,就像一个Buffy情节的结果 。

你应该看看http://libccv.org/

这是相当新的,但它提供了一个免费的开源高级API面部检测。

(…而且,我敢说,真是太了不起了)

编辑:值得注意的是,这是less数几个不依赖于opencv的库,只是为了踢,这里是从文档页面的面部检测代码的副本,给你一个想法,包括什么:

#include <ccv.h> int main(int argc, char** argv) { ccv_dense_matrix_t* image = 0; ccv_read(argv[1], &image, CCV_IO_GRAY | CCV_IO_ANY_FILE); ccv_bbf_classifier_cascade_t* cascade = ccv_load_bbf_classifier_cascade(argv[2]); ccv_bbf_params_t params = { .interval = 8, .min_neighbors = 2, .accurate = 1, .flags = 0, .size = ccv_size(24, 24) }; ccv_array_t* faces = ccv_bbf_detect_objects(image, &cascade, 1, params); int i; for (i = 0; i < faces->rnum; i++) { ccv_comp_t* face = (ccv_comp_t*)ccv_array_get(faces, i); printf("%d %d %d %d\n", face->rect.x, face->rect.y, face->rect.width, face->rect.y); } ccv_array_free(faces); ccv_bbf_classifier_cascade_free(cascade); ccv_matrix_free(image); return 0; } 

我知道这已经有一段时间了,但是对于任何感兴趣的人来说,还有一个Faint项目,它将很多这些function(检测,识别等)捆绑到一个很好的软件包中。

我们正在使用OpenCV 。 这里面还有很多非脸部识别的东西,但是放心吧,它确实会做脸部识别。

您可以尝试打开MVG库,它也可以用于多个接口。

下一步将是FisherFaces。 试试看,看看它们是否适合你。 这是一个很好的比较。

不是真的你在找什么,但它可能对你有用。 人脸检测/计算机视觉algorithm的MATLAB。

Interesting Posts