人脸识别库[关闭]
computer-vision
image-processing
17
0

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

我目前正在使用OpenCV来检测人脸,并使用粗略的Eigenface算法进行识别。但是我认为应该有比自写的Eigenface算法更好的性能。我并不是说速度就是性能,而是在寻找一种比简单的Eigenface方法效果更好的库。

我看了一下Faint ,但看来该库对于我自己的应用程序不是很可重用。

我对Python,Java,C ++,C或类似的库感到满意。最好的办法是,它是否可以在Windows机器上运行,因为目前我依赖于某些仅用于Windows的外部代码。

参考资料:
Stack Overflow
收藏
评论
共 9 个回答
高赞 时间 活跃

更新资料

OpenCV 2.4.2现在带有非常新的cv :: FaceRecognizer 。请在以下位置查看非常详细的文档:

原始帖子

我已经发布了libfacerec ,这是一个针对OpenCV C ++ API(BSD许可证)的现代人脸识别库。 libfacerec没有其他依赖性,并且实现了Eigenfaces方法,Fisherfaces方法和局部二进制模式直方图。库的部分内容将包含在OpenCV 2.4中。

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

该库是为OpenCV 2.3.1编写的,并考虑了即将发布的OpenCV 2.4,因此我不支持早于2.3.1的OpenCV版本。该项目是一个带有完善API的CMake项目,另外还有一个有关性别分类的教程。您可以在以下位置查看该文档的HTML版本:

如果您想了解这些算法的工作原理,则可能需要阅读《面部识别指南》(包括Python和GNU Octave / MATLAB示例):

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

相关出版物为:

  • 特克(M.)和彭特兰(A. Eigenfaces)表示认可。 。 Journal of Cognitive Neuroscience 3(1991),71-86。
  • Belhumeur,PN,Hespanha,J.和Kriegman,D. Eigenfaces与Fisherfaces:使用类特定的线性投影进行识别。 。 IEEE Transactions on Pattern Analysis and Machine Intelligence 19,7(1997),711–720。
  • T. Ahonen,A。Hadid和M. Pietikainen, 使用本地二进制模式进行人脸识别。 。计算机视觉-ECCV 2004(2004),469–481。
收藏
评论

pam-face-authentication用于面部认证的PAM模块:但是要获得所需的内容,需要做一些工作。快速测试表明,识别率不如NeuroTechnology的VeriLook那样。

Malic是另一个使用Gabor Wavelet描述符的开源人脸识别软件。但是源的最新更新是3年。

来自网站:“ Malic是使用gabor小波的开源人脸识别软件。它是基于Malib和CSU人脸识别评估系统(csuFaceIdEval)的实时人脸识别系统。使用Malib库进行实时图像处理,并使用csuFaceIdEval进行人脸识别认可。

此外,这可能很有趣:

gaborboosting :应用Gabor小波和AdaBoost算法在人脸识别中应用的科学程序

特征提取库-FELib“通过转导核Fisher判别式进行的面部注释”

收藏
评论

我们正在使用OpenCV 。它里面也有很多非面部识别的东西,但是,请放心,它确实具有面部识别功能。

收藏
评论

我想您已经在做的Eigenface是要计算面孔之间距离的方法。您可以尝试使用其他方法,例如支持向量机隐马尔可夫模型 。我找到了一个页面,其中列出了可用于面部识别的主要算法: 面部识别主页

另外,当您说“更好的性能”时,您是指速度还是准确性?你有什么问题?数据有多大变化?它们主要是正面的脸还是包含轮廓?

收藏
评论

我知道已经有一段时间了,但是对于其他感兴趣的人,有一个Faint项目,该项目将很多这些功能(检测,识别等)捆绑到一个不错的软件包中。

收藏
评论

如果您的项目是在电影或电视上,或者是任何带有脚本的项目,那么您似乎肯定想看看Mark Everingham 人的作品。 。该软件可以买到 ,就像布菲的一集的结果一样

收藏
评论

以下是提供在Windows上运行的用于面部识别的现成软件包的商业供应商的列表:

  1. 腓骨 - 面部识别SDK的信息 。这是一家由大学教授创立的公司,因此他们的网站看起来不专业。没有可下载的价格信息或演示。您需要与他们联系以获取价格信息。

  2. NeuroTechnology-有关其面部识别SDK的信息 。该公司既有前期定价信息 ,又有其SDK实际30天试用期

  3. 匹兹堡模式识别 -( 由Google收购 )有关其面部跟踪和识别SDK的信息 。他们提供的演示可帮助您评估他们的技术,但不能评估他们的SDSK。您需要与他们联系以获取价格信息。

  4. 明智的愿景 -有关其SDK的信息。他们的站点使您可以轻松获取报价,还可以订购评估套件,以帮助您评估其技术。

收藏
评论

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

收藏
评论

您应该查看http://libccv.org/

它是相当新的,但是它提供了一个免费的开源高级API来进行人脸检测。

(...我敢说,真是太不可思议了)

编辑:还值得注意的是,这是不依赖于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;
} 
收藏
评论
新手导航
  • 社区规范
  • 提出问题
  • 进行投票
  • 个人资料
  • 优化问题
  • 回答问题

关于我们

常见问题

内容许可

联系我们

@2020 AskGo
京ICP备20001863号