详细的人脸识别技术流程如图2所示,其主体人脸识别部分训练和测试不同。
1.人脸检测 检测也是计算机视觉的入口,人脸检测是人脸识别的第一步,其功能就是将待识别的图像中人脸检测出来。基于深度学习的人脸检测方法和研究方向可参考下面文章。
2.人脸对齐 待识别的人脸姿态,角度各异,需要通过一个仿射变换将待识别的人脸和标准模板人脸进行映射对齐,其主要技术点是人脸关键点检测。
3.活体检测
活体检测(识别)就是判断输入的人脸图片是不是活体,简单来讲是个二分类任务(活体or非活体),也可以是多分类任务(真人,纸张攻击,屏幕攻击,面具攻击). 活体检测的资料如下:4.特征提取
特征提取就是将对齐后的人脸图像输入特征提取网络,输出一个特征向量。特征提取是人脸识别中最重要的模块,也是各个公司拉开差距的关键模块。5.人脸比对
人脸特征提取最后会得到一个特征向量,一般为1*256或者1*128维,至此,一张人脸就被抽象成一个特征向量,接下来需要做的是计算不同特征向量之间的距离来识别人脸的比对。常用常用的欧式距离和余弦距离度量方式:欧氏距离:Contrastive Loss,Triplet Loss,Center Loss等
余弦距离(角度距离):Large-Margin Softmax Loss,Angular-Softmax Loss,Large Margin Cosine Loss,Additive Angular Margin Loss等等。
欧式距离和余弦距离本质上等价的,其推到公式如下所示:
余弦相似度的计算如下所示:
import numpy as np
from numpy import random
feature1 = random.randint(10, size=(128))
feature2 = random.randint(10, size=(128))
def cosin_metric(x1, x2):
return np.dot(x1, x2) / (np.linalg.norm(x1) * np.linalg.norm(x2))
consin = cosin_metric(feature1,feature2)
print("consin = ",consin)
#consin = 0.6719802076064119
6.人脸识别Loss函数演进
7.人脸识别常用的数据集
8.人脸识别业界技术难点 人脸识别技术在约束或配合式场景下识别准确率很高,已经大规模商用,但在非约束场景下依旧是一个充满挑战的方向。例如口罩人脸识别、大角度人脸识别、小像素人脸识别、模糊人脸识别、不同域识别(不同国家、不同肤色)、数据不回传等问题是工业界拉开差距的方向点。参考文献: [1]Deep Face Recognition: A Survey