(二)、从零开始搭建人脸识别服务之人脸特征提取

人脸识别服务需要包括以下几个功能模块:

1、人脸检测和人脸校正模块

2、人脸特征提取模块

3、人脸特征匹配模块

4、人脸识别结果计算模块

上一篇文章中简要介绍了一下人脸检测方法,这篇文章简要介绍一下人脸特征提取部分。

人脸特征

人脸特征提取:人脸特征提取的目的就是将人脸图像进行向量化表示,因为程序代码是没办法直接处理图像数据的,必须要将其数字化,提到向量就自然而然的会想到向量空间,以及向量的空间距离。这也是人脸特征提取锁关心的东西,人脸特征提取方法就是要找到一个高维向量空间,在这个向量空间中,属于同一身份的不同人脸图像在高维向量空间中分布紧密(即向量的空间距离小),属于不同身份的人脸图像在高维向量空间中分布较远(即向量的空间距离大)。

输入:人脸检测并校正后的人脸图像

输出:人脸特征向量(如512维的特征向量)

 目前公开的主流人脸特征提取方法主要有FaceNetArcFace。下面简要介绍一下人脸特征提取方法:

遵循的原则:人脸特征提取方法坚信,在特征空间中属于同一身份的人脸图像相近,属于不同身份的人脸图像较远,这是我们坚定的信仰,也符合认知常识。近些年的所有人脸特征提取方法都是在这个原则框架下工作,企图通过设计各种网络模型,来寻找满足上述原则的方法。

努力的方向:通过上面的描述可以,想提高提取的人脸特征质量,有两个努力的方向。其一是努力降低属于同一身份人脸图像之间的空间距离,也就是让类内距更小;其二就是增大属于不同身份人脸图像之间的空间距离,也就是让类间距更大。

上述原则和方向在FaceNet算法中也体现的相当清楚:

anchor和positive属于同一身份的人脸,anchor和negative属于不同身份的人脸图像,经过LEARNING学习,使得anchor与positive的距离较近,anchor与negative的距离较远。映射到下面的公式上就是说anchor和positive之间的距离加上一个正数α 还要比anchor和negative之间的距离小,所以的出现就是为了增加训练学习难度的。

顺便说一句:人脸特征提取方法进行的是相似度学习,所谓的相似度学习就是说网络模型学习的并不是只识别训练集中涉及到的人物身份,而是学习到了属于同一身份的人脸图像应该具备更小的空间距离,属于不同身份的人脸图像应该具备更大的空间距离这一潜在规则。也就是说一旦模型学习到了这个规则,理论上就可以自然而然的扩展泛化到无限大的人脸图像上去。这一点与图像分类方法等只能预测训练集中的结果不同,可以做到一次训练,到处使用。

下面简要介绍一下ArcFace人脸特征提取方法:

有了上面的原则框架和努力方向,聪明的科研人员发明了各种各样的方法来提升人脸特征提取的质量,其中的一个主流研究方向就是通过精心设计网络模型的损失函数,强制网络模型学习的参数来满足上述原则框架和努力方向。在ArcFace方法中的模型如下所示:

与FaceNet中增加增加学习难度类似,ArcFace方法借助于余弦函数cos在[0,π]区间内单调递减的特性,通过额外加上一个非负的𝑚m参数,使得cos(𝜃1+𝑚)取得更小的值,也就是说额外的加上一个m还要使得不等式满足条件,那也就只能减少或者增加, 减少或者增加也就是咱们上文中提到的两个努力方向。增加不同身份人脸之间的分隔边界,增强对不同身份人脸的判别能力。增加模型的训练难度,使得学习到的人脸特征更具代表性。

人脸特征提取损失函数衍化

这些年的人脸特征提取模型主要在损失函数上做文章,通过增加更强的约束条件,来迫使网络模型学习到更加满足上述提到的原则和努力方向的特征。近些年的一些模型损失函数如下:

上图的L1就是softmax loss,这个很常见,其他几个都在在cos余弦函数上做文章,L3、L6、L7在不同的位置引入m,来获取到更小的

 

 

 

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值