(三)、从零开始搭建人脸识别服务之大规模人脸识别

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

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

2、人脸特征提取模块

3、人脸特征匹配模块

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

前两篇文章中分别介绍了人脸检测人脸特征提取,这篇文章简要介绍一下人脸特征匹配,也就是人脸特征识别部分。

人脸识别

1:1识别,人脸验证(门禁、机场、车站刷脸进站)

1:N识别,人脸识别,在标准人脸库中进行人脸匹配检索

N:N识别,人脸检索,N个1:N识别

人脸识别:人脸识别就是识别人脸,就是要识别图像或者视频中出现的人物身份,人脸识别要涉及人脸检测、人脸特征提取、人脸特征匹配几个过程,人脸检测人脸特征提取可以参考前面两篇文章。

输入:包含人物人脸的图像

输出:人物身份信息

在前一篇人脸特征提取的文章中已经讲过了,经过人脸特征提取模型提取出的人脸特征在高维向量空间中,属于同一身份的人脸图像之间具有比较近的空间距离,属于不同身份的人脸图像之间具有较远的空间距离,所以可以根据空间距离这一属性来完成人脸特征匹配(人脸识别过程)。

其中,𝑥𝑖𝑥𝑗分别表示两个512维的人脸特征向量,𝑑𝑖𝑠𝑡表示这两个特征向量之间的欧氏空间距离。

大规模人脸库检索

从前面的叙述中可知,人脸识别就是有一个待识别的人脸特征x和一堆标准人脸库特征y,现在就是要计算x和这一堆y中的哪一个空间距离最近,空间距离最近的y所属的人物身份就是x被识别的人物身份。那么问题来了,如果现在的人脸库中只有几百上千个人脸特征,将x和y完全计算一遍的计算量很小,速度也很快,随着识别范围的扩大,标准人脸特征数量y急速增加。以明星识别为例,加入现在要识别50000个明星,我们在采集图像是每个明星采集10张不同角度和场景下的标准人脸图像,那么现在的人脸库中就有50万个人脸特征,假设人脸向量的维度是512,那么人脸特征库的矩阵大小就是[500000, 512],现在x每识别一次就需要和这50万个512为的特征都计算一次距离,这速度可想而知肯定快不起来。有没有解决办法呢?有!!!

在我之前的文章中介绍过nmslib完成大规模高维向量查找,这个方法刚好可以用于解决我们当前遇到的问题,具体使用方法可以参考【nmslib完成大规模高维向量查找】这篇文章。

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值