脸部识别SeetaFace介绍

来源:互联网 发布:animate cc 2015 mac 编辑:程序博客网 时间:2024/06/11 11:29

https://github.com/seetaface/SeetaFaceEngine
一、概述
SeetaFace Engine是一款无需任何第三方库就能在CPU上运行的开源C++脸部识别引擎,一共分为三个关键的部分:SeetaFace Detection(脸部检测),SeetaFace Alignment(脸部校准)和SeetaFace Identification(脸部识别),这三个部分对于搭建一个实用的脸部识别应用系统是非常必要的。

  • SeetaFace Detection实现了一个funnel-structured (FuSt) cascade用来针对现实中多视角的脸部检测,并在检测准确性和速度之前达到了很好的平衡。在公开的数据集FDDB上可以达到很高的速度,更多细节见SeetaFace Detection部分
  • SeetaFace Alignment在实际中级联了多个栈式自编码网络去检测关键点(在单个i7台式机CPU中超过200fps),并且在一些公开的数据集上实现了最先进的精度,比如AFLW更多细节见SeetaFace Alignment部分
  • SeetaFace Identification是一个用于脸部识别的AlexNet CNN的改进,在准确性(使用LFW为97.1%)和速度(使用一个i7台式机处理器约120ms一张)上有更好的表现。更多细节见SeetaFace Identification部分。

这个脸部识别引擎是由中国科学院计算所VIPL组研发的,代码使用C++编写且不依赖于任何第三方库,开源代码在BSD-2(详见LICENSE)许可下发布,代码可以自由的在学术界和工业界使用。有任何问题可以联系SeetaFace@vipl.ict.ac.cn

二、SeetaFace Detection
SeetaFace Detection用级联的漏斗结构(Funnel-Structured cascade,FuSt)实现,设计用来做现实中多视角脸部检测。FuSt的目的是使用“由粗到细的结构”从而在准确性和速度之间取得一个很好的平衡。在前几层它包含了多个针对视角的快速LAB级联分类器,后几层是粗多层感知器(coarse Multilayer Perceptron,coarse MLP)级联结构,最后由一个统一的MLP级联结构来处理所有姿态的候选窗口。FuSt级联结构
开源的FuSt包括一个用20万脸部图片训练的模型用来检测近正面脸部(也能够检测一部分非正面脸部),值得注意的是(1)MLP级联结构使用了SURF检测而不是SIFT(2)加入了NMS(Non-Maximal Suprresion)(3)边界盒回归代替了关键点预测
SeetaFace Detector在FDDB上的离散型得分ROC曲线如下图所示,最小的人脸大小设置为20,滑动窗口步长设置为2或者4,采样比例设置为0.8这里写图片描述
速度比较见如下图,使用640x480的VGA图片,滑动窗口的大小设置为4,采样比例设置为0.8,Cascade CNN中图片金字塔的采样比例为0.7这里写图片描述
SeetaFace Detector是在一个3.40GHz i7-3770 CPU上的测试速度,其他方法则是直接从相关论文中引用( Cascade CNN的CPU速度是在一个2GHz的CPU核心上检测的,GPU速度是在NVIDIA Titan Black GPU上检测的)

未完待续

2 0
原创粉丝点击