编码并不容易。 如果觉得对你有帮助的话,请点个赞吧~
我是华为算法工程师,长期招聘计算机视觉开发/算法人才。 欢迎添加微信--
人脸识别是人工智能的一个重要研究方向,在日常生活中有着非常重要的应用,比如安防、公共安全、智能门锁、门禁、考勤机、手机解锁、车站人脸识别进展等。基于深度学习的人脸识别技术流程如下图1所示。 主要分为四个步骤:人脸检测、人脸对齐、特征提取、人脸比对。 在具体的应用场景中,会有活体检测模块。 主要用于无生命体识别攻击。
图1:人脸识别关键流程图
详细的人脸识别技术流程如图2所示。主要人脸识别部分的训练和测试是不同的。
图2:详细的人脸识别技术流程图
1. 人脸检测
检测也是计算机视觉的入口。 人脸检测是人脸识别的第一步,其作用是检测待识别图像中的人脸。 基于深度学习的人脸检测方法和研究方向可以参考下面的知乎文章。
2. 人脸对齐
待识别人脸具有不同的姿态和角度,需要进行仿射变换将待识别人脸与标准模板人脸进行映射对齐。 主要技术点是人脸关键点的检测。
3.活体检测
活体检测(识别)是判断输入的人脸图像是否是活体。 简单地说,它是一个二分类任务(生物或非生物),也可以是多分类任务(真人、纸张攻击、屏幕攻击、面具攻击)。
活体检测信息如下:
4. 特征提取
特征提取是将对齐的人脸图像输入到特征提取网络中,输出特征向量。 特征提取是人脸识别中最重要的模块,也是各家公司拉开差距的关键模块。
5. 人脸对比
人脸特征提取最终会得到一个特征向量,通常是1*256或1*128维度。 至此,人脸就被抽象成了特征向量。 接下来要做的就是计算不同特征向量之间的距离。 来识别面孔。 常用的欧氏距离和余弦距离测量方法:
欧氏距离:Loss、Loss、Loss 等。
余弦距离(角距离):-Loss、-Loss、Loss、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.人脸识别损失函数的演变
特征提取网络的发展和演化过程损失函数七、人脸识别常用数据集
人脸识别常用数据集
八、人脸识别行业的技术难点
人脸识别技术在受限或协作场景下具有较高的识别准确率,并已大规模商用。 然而,在无约束场景下这仍然是一个具有挑战性的方向。 例如,口罩识别、大角度人脸识别、小像素人脸识别、模糊人脸识别、不同领域(不同国家、不同肤色)识别、数据不传输等问题是解决问题的方向点。行业差距拉大。
参考:
[1]深脸:A