人脸识别介绍

本文介绍了人脸识别的发展,重点讲述了深度学习在人脸识别中的应用,包括L-SoftMax、CosFace、ArcFace和Triplet Loss等损失函数的改进,以及在构建人脸识别系统时的关键步骤和技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 目标

在这一讲中,我们将以人脸识别为具体应用,讲解如何用深度神经网络构建一个实用的人脸识别系统。

2. 人脸识别的发展

首先,回顾人脸识别邻域近年来的发展,在2013年AlexNet提出之后,FaceBook公司迅速跟进,在2014年构建了一个DeepFace的卷积神经网络。训练数据库包含4000人、400万张人脸,该模型在LFW数据集上取得了97.25%的平均精度,同时在Youtube数据集上取得了当前最好的结果,比之前的第一整整高出了12.7%

在这里插入图片描述

图1 DeepFace

2015年,香港中文大学唐晓鸥老师实验室研发了DeepID卷积神经网络,这一系统在LFW (Labeled Faces in the Wild)数据库上获得了99.15%的人脸辨识率,超过了人用肉眼在LFW上的辨识率97.52%。这也是第一个声称表现超过人的人脸识别系统。

在这里插入图片描述

图2 DeepID

以近年来领域的发展和经验讲解如何构建实用的人脸识别系统。首先需要注意的是卷积神经网络提取的特征,例如在上图2中,在卷积神经网络的倒数第二层输出是一个160维的向量,而最后一层SoftMax输出的维度是类别数,一般来说我们采用的大型人脸识别数据库类别数都是上万甚至上十万。

例如常用的WebFace数据库,总共有10575个人,也就是10705类。所以,最后一个SoftMax的输出是10575维。由于测试时如此巨大的维度很冗余,对此采取一个折中的方案,在训练的时候保留最后一层SoftMax,而在测试的时候却不要最后一层,将倒数第二层160个维度作为最后人脸识别的特征。在测试时,每张人脸通过卷积神经网络,获得160维向量,利用距离量度,如欧氏距离和余弦距离等,算出基于这160维向量的人脸距离,最终通过阈值获得识别结果。当然,倒数第二层也可以不是160维,适当维数即可。

3. 损失函数的改进

接下来讨论近年来人脸识别在损失函数方面的改进。最基础的损失函数为SoftMax损失函数,SoftMax损失公式定义为(偏置 b j b_j bj设置为0)

L 1 = 1 N ∑ i − l o g ( e f y i ∑ i e f j ) (1) L_1=\frac1N\sum_i-log\left(\frac{e^{f_{yi}}}{\sum_i e^{f_j}}\right)\tag{1} L1=N1ilog(iefjefyi)(1)

其中 N N N是样本的数量, i i i代表第 i i i个样本, j j j代表第 j j j个类别, f y i = W y i T x i f_{yi}=W_{yi}^Tx_i fyi=WyiTxi是最后一层全连接的输出,代表着第 i i i个样本所属类别的分数。将其用角度表示为

L i = − l o g ( e ∣ ∣ W y i ∣ ∣ ∣ ∣ x i ∣ ∣ c o s ( θ y i ) ∑ j e ∣ ∣ W j ∣ ∣ ∣ ∣ x i ∣ ∣ c o s ( θ j ) ) (2) L_i=-log\left(\frac{e^{||W_{yi}||||x_i||cos(θ_{yi})}}{\sum_j e^{||W_j||||x_i||cos(θ_j)}}\right)\tag{2} Li=log(jeWjxicos(θj)eWyixicos(θyi))(2)

3.1 L-SoftMax(Large-Margin SoftMax Loss)

对损失函数的第一个改进是2016年Large-Margin SoftMax Loss,这里以一个二分类问题为例:假定 x x x属于类1,如果我们希望正确分类,则需要满足:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值