我一直认为谷歌可以回答这个问题,但我没有太多的运气。C++人脸检测/识别实现
没有人知道任何开源C++的比方法堇菜 - 琼斯(Haar特征的升压级联)以外的任何人脸检测算法的实现的?
而且,不存在任何地方费舍尔一个开源C++实现?
谢谢。
我一直认为谷歌可以回答这个问题,但我没有太多的运气。C++人脸检测/识别实现
没有人知道任何开源C++的比方法堇菜 - 琼斯(Haar特征的升压级联)以外的任何人脸检测算法的实现的?
而且,不存在任何地方费舍尔一个开源C++实现?
谢谢。
这篇文章得到了一些关注,所以我想更新它。我撰写了OpenCV的面部识别库,其中包括本征面,Fisherface和局部二值模式直方图。所以OpenCV的2.4.2现在来的一切上手,看到非常详细的文档:
现在原来的答案。
我是文章链接凯文的文章的作者。请注意,您需要找到Fisherfaces的非对称矩阵S_ {W}^{ - 1} S_ {B}的特征值,我没有在我的博客中明确提及它。 OpenCV只有当前版本中的对称矩阵求解器;由于非对称矩阵的特征值和奇异值不等价,因此不能使用SVD。对于我的项目,我已经将JAMA解算器改编为C++来解决非对称矩阵的特征值问题,因此不需要使用外部库。 CMakeLists.txt已配置,因此也可以使用Eigen,因此您可以选择。
现在我终于找到了几分钟落实Fisherfaces method与OpenCV2 C++ API,推动了代码到我的github帐户:
的main.cpp告诉您如何使用Fisherfaces class以及如何使用线性判别分析与以下示例相同的示例:http://www.bytefish.de/wiki/pca_lda_with_gnu_octave。它是作为一个CMake的项目,所以编译是打字一样容易:
[email protected]:~/some/dir$ mkdir build; cd build
[email protected]:~/some/dir/build$ cmake ..
[email protected]:~/some/dir/build$ make
[email protected]:~/some/dir/build$ ./lda
我不知道这是否是首选的#1的方式在答题后的代码,但我认为这是一个有点太长发布。
请注意两件事。 (1)我从CSV文件中读取图像(just like this one),您不必关心标签的顺序。 (2)我按列存储特征向量,而OpenCV中的PCA按行存储它们。这样做只是个人品味的问题,但我从来没有见过这样的解决方案,所以我决定按列存储它们。
我很迟才回复此问题,但非常感谢。这非常有帮助。 – theotherphil
没问题。你需要在脸部检测的任何代码?我有一些我可以分享的Python和C++代码。 – bytefish
你有什么实现?我目前只使用OpenCV的Haar级联功能。如果你有使用另一种方法的代码,那么尝试它肯定会很好。 – theotherphil