APP下载

基于KNN的人脸识别算法融合方法

2023-01-19胡杨王家兴宛根训田青王宁孙炜晨公安部第一研究所

警察技术 2022年6期
关键词:引擎人脸方差

胡杨 王家兴 宛根训 田青 王宁 孙炜晨 公安部第一研究所

引言

随着人工智能技术不断发展,生物识别技术俨然已成为个人身份识别或认证技术的重要方式。人脸识别作为生物特征识别的重要分支之一,它的无侵害性和对用户最自然、最直观的识别方式更容易被大众接受。近年来,人脸识别技术在刑事侦破、出入口控制、信息安全等公安行业领域呈现出广阔的应用前景。目前公安机关绝大多数的应用场景都是在非控制条件或非配合条件下进行,应用场景更加复杂,对算法鲁棒性的要求更高。

1比N人脸识别技术一般采用深度学习和卷积神经网络技术,不同的神经网络架构层出不穷,在不同场景不同业务下各有利弊。在实际应用中,算法厂商出于自身知识产权保护只提供比对分数结果,所以多算法融合方式主要是基于分数的融合。目前常用的分数级融合[1]有基于密度的融合、基于归一化的融合、基于分类器的融合、线性加权融合[2]、投票决策融合等等。

基于密度的融合首先将分数转换为后验概率,然后根据贝叶斯做出决策。Snelick等[3]使用一种参数化方法获取分数的条件概率密度。基于归一化的融合将分数首先进行归一化,然后使用统一的融合规则获取一个新的分数。Wang等[4]提出了一种根据FAR和TAR来计算不同分类器权重的融合方法;He[5]根据均值和方差提出了RHE归一化的方法。基于分类器的融合往往将多个分数作为一个多维向量从而进行分类。Wang等[6]将人脸和虹膜通过支持向量机进行融合;Kumar等[7]采用粒子群优化算法来选取最优融合策略。

基于归一化的融合方法无需训练, 实现简单, 较少考虑到匹配分数分布的特殊性;基于密度的融合需要对密度进行准确的估计,实现复杂,时空开销大,需要大量训练样本;线性加权融合、投票决策融合过于简单,很难取得很好的识别效果。

考虑以上方法的优缺点,本文采用了基于分类器的融合方法,提出了一种基于KNN的人脸识别算法融合方法,能够适应不同公安实战应用场景需求,提升人脸识别的准确率且节约计算资源。

一、基于KNN的算法融合

基于KNN的人脸识别算法融合方法是将多算法引擎返回的不同结果使用KNN算法进行融合判定并返回最终人脸识别结果。

(一)总体框架

基于KNN的人脸识别算法融合方法的总体框架如图1所示,主要包括多算法引擎轮询模块、算法引擎池模块、多算法决策模块、算法选择器模块和KNN算法融合模块。

(二)多算法决策

多算法决策模块根据算法引擎返回的分数和Top N之间的分布情况决定是否进行多算法比对,从而达到识别准确性和并发能力的平衡。对于单一算法引擎返回分数较高且Top N之间分数分布分散的情况,多算法决策模块不再进行其他算法比对;对于单一算法引擎返回分数较低或Top N之间分数分布集中而造成的“没有把握”的情况,通过算法选择器选择其他算法进一步比对,然后将两家算法引擎返回的结果送入KNN算法融合模块进行融合判定,提升识别准确率。

在实际场景中,多算法应用的主要难点是不同算法引擎分数代表的意义不同,高分数值的标准也不同,例如以达到99%以上的识别准确率为要求,算法引擎1的分数需要达到97分以上,算法引擎2的分数需要达到98分以上,算法引擎3的分数需要达到96分以上。

在1比N应用中,返回结果排序靠前和排序靠后的分差越大越好,在本文中使用方差函数来衡量Top N之间分数分布情况,公式如(1)和(2)所示。

一般情况下,返回正确结果的分数和返回错误结果的分数之间分差较大。这里我们根据经验值,N取2,即比较返回前两个结果的方差。多算法决策模块在进行判定时,如果方差小于阈值V,即代表TopN结果分值接近,需要进行多算法比对融合。不同算法引擎之间的方差阈值V不同,这里设置算法引擎1的方差阈值为V1,算法引擎2的方差阈值为V2,算法引擎3的方差阈值V3为1.5。

(三)基于KNN算法融合判定

不同算法引擎如果返回结果不同,则需要使用KNN算法进行融合判定。KNN算法又被称为k近邻算法,是机器学习算法中应用最广泛的分类算法之一[8]。KNN算法对于任意n维输入向量,分别对应特征空间中的一个点,通过计算每个已知类别标签的样本数据到未知类别标签的样本数据的距离,选择最近的k个已知标签,采用多数表决的方式来预测未知样本数据类别,如图2所示。

假设给定一个训练数据集T={(x1,y1) ,(x2,y2) ,…,(xN,yN)}作为输入,其中xi是 每个已知类别样本的输入特征向量,yi∈Y={c1,c2, …,cn}属于类别标签,i=1,2,…,N。根据设定好的距离度量规则,在给定的数据集T中通过计算寻找与未知类别标签样本x最近的k个样本,记为NK(x)。接着根据少数服从多数的原则,采用投票表决方式选出未知标签样本x所属类别,公式如(3)所示。

在公式(3)中,I(g)是指示函数,当为真的时候,输出为1,否则输出为0。

两个样本点之间距离度量用来衡量空间上的差异性,距离越短,表示相似程度越高;反之,相似程度越低。在KNN算法中,常用的距离度量方式有欧氏距离、曼哈顿距离、余弦距离等。曼哈顿距离和欧式距离原理上都是明可夫斯基距离在一定特殊条件下的应用,它们在数学公式的表现形式上类似。明可夫斯基公式如(4)所示。

在公式(4)中,p是一个超参数,当p=1的时候,就是曼哈顿距离;当p=2时,就得到了欧式距离。

在本方法中,输入的样本维度为8维,分别是算法引擎1返回的Top 1分数、算法引擎2返回的Top 1分数、图像质量分数、图像光照分数、图像清晰度分数、人脸picth角度、人脸yaw角度、人脸roll角度。具体的算法实现过程如下:

(1) 第一步计算已知类别标签的样本数据点到未知类别标签的样本数据点距离,并记录下来;

(2) 第二步把上一步计算好的所有距离按照从小到大的顺序依次排序;

(3) 第三步选择前个距离最近的已知类别标签的样本数据点,统计它们所属类别出现的频率;

(4) 第四步将出现频率最高的类别当作未知样本数据的预测类别标签。

在KNN算法中,k值参数的选择对于模型的训练起到决定性影响。若k值选择过小,相当于用较小领域中的训练实例进行预测,很可能忽略一些有用的信息,致使模型的复杂度增加从而出现过拟合的现象;若k值选取过大,虽然模型的复杂度会降低,但会增加学习的近似误差,从而使得模型整体变得简单,在实际应用中表现效果变差。

(四)整体流程

基于KNN的人脸识别算法融合方法流程如图3所示,首先输入人脸图像根据多算法引擎轮询①选择算法引擎,如选择算法引擎1模型,则进入多算法决策②。算法引擎1返回该人员Top1-Top2分数及人脸属性等信息,如果Top 1分数大于阈值T1且Top 1和Top 2分数的方差大于阈值V1,表明单一算法引擎可达到较高准确率,不再进行多算法比对融合;如果Top 1分数小于等于阈值T1或Top 1和Top 2分数的方差小于等于阈值V1,则进入算法选择器③调用另外一个算法引擎进行多算法比对,最后进行KNN算法融合输出。根据多算法融合输出策略,若两个算法引擎返回结果相同,则直接返回最终结果;若返回结果不同,则使用KNN算法融合两个算法并返回结果。

二、实验结果

(一)实验环境

本文实验环境配置如表1所示。

?

(二)数据集

实验数据集包括10000张人脸图像,共1000个人。相比于公开数据集CASIA-Webface、CelebA、LFW,本文实验数据都是中国人脸且大多来自生活中不同场景,如火车站、证件照、手机自拍照、监控视频照片等等,在光照、角度、遮挡上有明显区别,如图4所示。在人脸数据集中选择70%图像作为训练集,其余30%作为测试集。

(三)实验结果及分析

在实际调参过程中,本文采用了网格搜索和交叉验证相结合的方式来寻找KNN算法的最优k值。交叉验证法是将样本数据D等分为k个互斥的子集,满足D=D1∪ D2∪ …∪Dk,然后在k个子集中,选择k-1个子集当作训练集,剩下一个子集则是测试集,因此每次都可得到k组训练集和测试集,最后实验评估结果取k组平均值。交叉验证法在很大程度上保证了模型的稳定性和可靠性,提高了模型的泛化能力。

表2所示为KNN的k和p不同参数值在训练集和测试集的表现情况。模型经过训练调参后,得到最优参数k=3和p=9,在训练集上识别的准确率达到97.48%,在测试集的识别准确率达到93.45%。

?

表3所示为基于KNN的人脸识别算法融合方法、单一算法引擎以及多家算法投票决策融合的性能对比情况。投票决策融合模型根据多家算法引擎的输出结果,采用少数服从多数的投票原则得到最终的结果。从表中可以看出,基于KNN的人脸识别算法融合方法在测试集的准确率最高为93.45%,在平均响应时间上面也只有814ms,略高于单一算法引擎,远低于投票决策模型。

?

三、结语

经过多年的发展,人脸识别技术在公安行业领域已具备实战应用能力。单一的算法引擎由于受到人脸图像质量及算法本身性能限制,在实际应用场景中识别的准确性和鲁棒性受到一定影响。本文提出了一种基于KNN的人脸识别算法融合方法,可以适应不同复杂场景,在不大幅度牺牲计算资源的同时,提升了识别的准确率,从而有效支撑了跨区域、跨场景的实战应用需求,对于全面提升公安机关打防管控水平具有重要的意义。

猜你喜欢

引擎人脸方差
有特点的人脸
一起学画人脸
概率与统计(2)——离散型随机变量的期望与方差
新海珠,新引擎,新活力!
方差越小越好?
计算方差用哪个公式
三国漫——人脸解锁
三生 三大引擎齐发力
蓝谷: “涉蓝”新引擎
方差生活秀