(四)、从零开始搭建人脸识别服务之提升识别稳定性

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

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

2、人脸特征提取模块

3、人脸特征匹配模块

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

前几篇文章中分别介绍了人脸检测人脸特征提取大规模人脸向量匹配,这篇文章简要介绍一下提升识别结果的稳定性

大规模人脸识别的文章中我们说过,确定人脸识别结果的简单办法可以通过计算待识别特征x和一堆标准特征y之间的最小空间距离来决定人脸身份的归属。

那么问题来了?

情景再现一下:

一个不放心的爹想通过人脸识别来判断一下自己的儿子是不是亲生的,或者想知道自己儿子和隔壁王叔叔是啥关系。分别收集了他和隔壁老王各种角度,各种表情的照片各10张,共计20张图片,并且收集了一张儿子的照片,并用儿子的这张照片和他和隔壁老王的共20张照片做匹配,按照前面讲的匹配方法,万一儿子的照片和隔壁老王的一张及其猥琐的照片匹配度最高,一抹鲜红的嫩绿色。咋办?信?不信?隔壁老王信吗?

匹配结果空间距离(阈值0.9)
隔壁老王0.7

在人脸识别服务应用的过程中,用户方的输入可能是千奇百怪的,可能还真有隔壁老王的猥琐照,而且深度神经网络模型是个黑盒,参数量巨大,输入一张自己儿子的图像进去,保不准真就和隔壁老王的匹配度最高,难道就只有离婚一条路了吗?且慢。

在人脸识别应用部署之前,首先需要确定识别范围,比如说上面这次识别的范围就是孩子他爸和隔壁老王,因为人脸库里只有这两个人的图片,而且,在人脸特征提取这篇文章中咱们也讲过了,人脸特征提取是一种相似度学习方法,学习的是儿子和爸爸的特征向量更近,和隔壁老王的特征向量更远的规则,自己儿子恰巧某个角度和隔壁老王的某个猥琐角度很像也没多大关系,只要不是全方位,360度无死角的像问题就不大。

那么在人脸识别过程中,为了提升识别结果的稳定性和准确率,可以多采集一些标准人脸图像,比如分别采集自己和隔壁老王各50张图片,共100张。然后设定一个匹配的阈值,如果儿子的图片和这张100张图片的空间距离小于阈值,就认为匹配成功,然后取匹配结果的前top N个结果,然后根据top N个结果分组确定最终的识别结果。例如,上述识别过程取top 7可能得到如下结果:

匹配结果空间距离(阈值0.9)
隔壁老王0.7
他爸0.71
他爸0.75
他爸0.76
他爸0.76
他爸0.77
他爸0.8

如上表所示:

1、假如按照最近的匹配原则,也就是只取top 1,那么这儿子无疑就是隔壁老王的,婚姻破裂,算法背锅。

2、假如将top 7的结果进行分组统计,他爸得6票,隔壁老王得1票,还是可以信心满满的说儿子是亲生的,家庭美满,婚姻幸福。

总结:在人脸识别应用过程中,可以采用识别结果取top N的方法来分组确定识别结果,可以避免一些误识别的情况,提升识别结果的稳定性,刚好前一篇文章讲的使用nmslib完成大规模人脸识别方法支持识别结果取top N。但是还有个前提就是,需要提前多准备一些标准人脸图像在人脸库中,假如我们现在需要识别50000人,每人打算采集50张图像,尤其对于明星人物,从互联网上爬取的图像质量不高,比如爬取的刘德华图像中肯定会包含一些张学友、黎明、郭富城等三大天王的图像,怎样才能快速准确的采集到刘德华的50张人脸图像,怎样才能快速采集到50000人,每人50张,共25万张图像,请看下集,大规模人脸图像快速标注

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值