人脸识别的过程中有4个关键的步骤:
- 人脸检测
- 人脸对齐
- 人脸编码
- 人脸匹配
人脸识别的 5 个难点
- 头部姿势
- 年龄
- 遮挡
- 光照条件
- 人脸表情
常用的人脸检测的算法有Dilb,OpenCV,OpenFace,MTCNN等。常用人脸识别的算法包括FaceNet,InsightFace模型等。
FaceNet中采用基于深度神经网络的图像映射方法和基于triplets(三元组)的loss函数训练神经网络,网络直接输出为128维度的向量空间。三元组由Anchor(A), Negative(N), Positive(P)组成,在网络的学习过程中,A和P的欧式距离会逐渐减小,而A和N的距离会逐渐拉大。
无论是SphereFace、CosineFace还是ArcFace的损失函数,都是基于传统的softmax loss进行修改得到的