基于深度神经网络算法模型FaceNet完成人脸识别

BigCowPeking 2019-06-25

人脸识别是什么?

现如今人工智能技术发展迅速,尤其体现在计算机视觉领域,人脸识别是计算机视觉领域最具发展潜力的方向之一,近些年来取得了优异的成绩。人脸识别,是基于人的脸部特征信息进行身份识别的一种生物识别技术。用摄像头采集含有人脸的视频流,并自动在图像中检测和跟踪人脸,进而对检测到的人脸进行脸部识别的一系列相关技术。

基于深度神经网络算法模型FaceNet完成人脸识别

人脸识别

人脸识别的应用

人脸识别目前已经得到的广泛的应用,人脸识别产品已广泛应用于金融、司法、军队、公安、边检、政府、航天、电力、工厂、教育、医疗及众多企事业单位等领域。

基于深度神经网络算法模型FaceNet完成人脸识别

无人超市

基于深度神经网络算法模型FaceNet完成人脸识别

人脸支付

基于深度神经网络算法模型FaceNet完成人脸识别

智能安防

随着科技的发展,人脸识别技术迅速发展,并广泛运用于各个行业,如上中是人脸识别技术已经取得较好应用的部分场景。

人脸识别技术

在以前,传统的人脸识别解决方案是依靠人为手动提取特征,然后使用传统机器学习算法,比如支持向量机算法(SVM),然后对人脸进行分类。这种方案虽然可以完成人脸识别,但是存在诸多的问题。

现如今,随着深度学习时代的到来,传统的机器学习算法模型逐渐被淘汰,深度神经网络开始应用于人脸识别领域,比如卷积神经网络,这将人脸识别的准确率大大的提高。

谷歌提出FaceNet,并且在LFW数据集上达到99.63%正确率,在YTF DB数据集上达到95.12%正确率,再次刷新LFW上人脸验证的效果记录。

FaceNet

FaceNet是谷歌公司提出的人脸识别模型,它与其他的深度学习方法在人脸上的应用不同,FaceNet并没有用传统的softmax的方式对人脸进行分类。它通过对人脸数据的学习,将每张人脸映射为一个128维的向量作为人脸的特征,然后基于每张人脸编码的欧式距离来进行人脸识别,具体来说当两个人很像的时候,欧式距离会很小,当两个人不像的时候,欧式距离会很大。

基于深度神经网络算法模型FaceNet完成人脸识别

同一个人的照片欧式距离小,不同的人的照片欧式距离大

如图所示,我们可以将阈值设置为1.04,我们可以看到相同的人欧式距离小于1.04,不同的人欧式距离大于1.04。

那么如何才能学习到这样的128维的特征向量呢?

基于深度神经网络算法模型FaceNet完成人脸识别

FaceNet架构

如图所示是FaceNet的架构,一张图片输入到模型之后,经过卷积神经网络进行特征提取,然后进行L2归一化处理,最后是一个全连接层,输出一个128维的特征向量,这个特征向量就是输入到FaceNet中的人脸的编码,现在人脸图片已经可以进行编码了,那么如何才能使得同一个人的人脸的编码差异小,而不同人的编码差异大呢?

要想完成这种特殊的人脸编码,我们需要定义符合这种要求的损失函数,只有这样,当模型训练最小化损失函数的时候,模型才能学习到符合要求的人脸编码,FaceNet使用的损失函数是Triplet loss三重损失函数。

Triplet loss三重损失函数

基于深度神经网络算法模型FaceNet完成人脸识别

三重损失函数图像

如图所示就是三重损失函数,这个损失函数可以这样理解,Anchor和Positive是同一个人,Negative是另外一个人,开始的时候我们可以看到Anchor和Negative在欧式空间很近,这显然不符合我们的编码要求,那么此时我们就认为这种情况造成了损失,当有损失的时候,模型就会进行反向传播,参数调整,完成了一次学习,当学习完成之后,我们可以看到Anchor和Positive更近了,这就是三重损失的意义。

基于深度神经网络算法模型FaceNet完成人脸识别

三元损失函数的数学公式

通过这个公式我们可以看到只要Anchor与Negative的距离和Anchor与Positive的距离的差大于阈值a,那么我们就认为造成了损失,那么我们模型就要进行参数调整,保证Anchor与Negative的距离越来越大,而Anchor与Positive的距离越来越小,最终达到相似的人在欧式空间上越来越近,而不相似的人在欧式空间上越来越远。

FaceNet与人脸识别结合

当我们基于大量的人脸数据训练完成FaceNet之后,我们就可以进行人脸识别了,具体来说我们需要建立一个人脸数据库,然后将所有人脸放入输入到模型中,从而获取每张人脸对应的128维特征编码,这就是人脸识别的编码库,我们就可以使用该模型和编码库进行人脸识别了。

人脸识别的时候,采集一个人的照片传递到FaceNet中,输出该人脸的128维特征向量,将其与编码库的所有人进行欧式距离计算,其中与这个人欧式距离最小的编码库的人脸就是这个人的身份了。

相关推荐

wandaxiao / 0评论 2020-01-12