SeetaFace Engine是一个开源的C++人脸识别引擎,它可以在不依赖第三方的条件下载CPU上运行。他包含三个关键部分,即:SeetaFace Detection,SeetaFace Alignment和SeetaFace Identification,这三个步骤对建造一个真实可靠的人脸识别应用系统来说是充要的。
- SeetaFace Detection采用漏斗形级联结构来进行多视图人脸检测,这种方法能在检测的准确度和速度之间达到良好的折衷平衡。对于FDDB数据集,SeetaFace Detection能够以高的速度得到业界先进的准确度。
- SeetaFace Alignment级联产生多级栈式的自编码器网络来实时检测特征点(在单个i7 CPU上超过200 fps),且至少能在一些AFLW数据集上得到业界先进的准确度。
- SeetaFace Identification是基于AlexNet CNN的一种针对人脸识别的实现,在准确性(在LFW数据库上能达到97.1%)和速度(在单个i7 CPU上大约需要120 ms)上均有良好的表现。
这个人脸识别引擎是由中国科学院计算研究所的VisualInformation Processing and Learning (VIPL)团队开发的。所有的代码均用C++实现,且不依赖任何第三方的库。它的代码完全开源,免费为任何学术或商业产品使用。
这个开源人脸识别引擎可从以下地址获得:https://github.com/seetaface/SeetaFaceEngine。
开源的源代码内附有四个例子(并附有visual studio工程文件),分别在FaceAlignment、FaceDetection和FaceIdentification的examples文件夹内。要想成功跑起这几个例子,首先得确保你的电脑中安装了OpenCV。opencv的下载地址是:http://opencv.org/downloads.html。安装了opencv之后,将project的properties里和opencv相关的值修改为你的安装目录里对应的值,例子就可以跑通了。我在vs2015下编译时,还出现了fopen报错,参考http://jingyan.baidu.com/article/ce436649fd61543773afd32e.html成功解决了问题。
修改例子后,我得到了以下的输出: