发明内容
本公开提供一种人脸识别的方法和装置、存储介质,以解决相关技术中人脸识别准确率较低的技术问题。
为实现上述目的,本公开实施例的第一方面,提供一种的方法,所述方法包括:
获取待检测人脸图像;
计算人脸库中人脸图像对应的特征向量与所述待检测人脸图像的人脸特征向量之间的距离值;其中,所述人脸库中存有每个人的多张人脸图像和每张人脸图像对应的特征向量;
根据所述距离值,从人脸库中选取M张人脸图像与所述待检测人脸图像进行相似度计算,M大于或等于2;
根据所述相似度计算结果,输出识别结果。
可选地,还包括:
采集每个人的多张不同人脸图像以存入人脸库中;
通过预设的神经网络算法构建的模型获取每张人脸图像的特征向量;
将所述人脸图像和对应的所述特征向量存入人脸库中。
可选地,所述计算人脸库中人脸图像对应的特征向量与所述待检测人脸图像的人脸特征向量之间的距离值,包括:
将所述人脸库中的人脸图像与所述待检测人脸图像进行第一次相似度计算;
选取所述人脸库中相似度超过预设阈值的人脸图像;
计算选取的人脸图像对应的特征向量与所述待检测人脸图像的人脸特征向量之间的距离值。
可选地,所述从人脸库中选取M张人脸图像与所述待检测人脸图像进行相似度计算,包括:
将所述人脸库中的人脸图像按照所述距离值从小到大进行排序;
选取前M张所述人脸图像;
根据前M张所述人脸图像的排序、同一人的人脸张数,进行第二次相似度计算。
可选地,所述根据所述相似度计算结果,输出识别结果,包括:
当前M张所述人脸图像来源于多个人时,将所述待检测人脸图像与所述人脸库中所述多个人的人脸图像进行比对以进行相似度加权累计计算;
根据相似度加权累计计算结果,输出所述待检测人脸图像的识别结果。
本公开实施例的第二方面,提供一种人脸识别的装置,所述装置包括:
第一获取模块,用于获取待检测人脸图像;
距离计算模块,用于计算人脸库中人脸图像对应的特征向量与所述待检测人脸图像的人脸特征向量之间的距离值;其中,所述人脸库中存有每个人的多张人脸图像和每张人脸图像对应的特征向量;
选取计算模块,用于根据所述距离值,从人脸库中选取M张人脸图像与所述待检测人脸图像进行相似度计算,M大于或等于2;
输出模块,用于根据所述相似度计算结果,输出识别结果。
可选地,还包括:
采集模块,用于采集每个人的多张不同人脸图像以存入人脸库中;
第二获取模块,用于通过预设的神经网络算法构建的模型获采集的每张人脸图像的特征向量;
存储模块,用于将所述人脸图像和对应的所述特征向量存入人脸库中。
可选地,所述距离计算模块包括:
第一计算子模块,用于将所述人脸库中的人脸图像与所述待检测人脸图像进行第一次相似度计算;
第一选取子模块,用于选取所述人脸库中相似度超过预设阈值的人脸图像;
第二计算子模块,用于计算选取的人脸图像对应的特征向量与所述待检测人脸图像的人脸特征向量之间的距离值。
可选地,所述选取计算模块包括:
排序子模块,用于将所述人脸库中的人脸图像按照所述距离值从小到大进行排序;
选取子模块,用于选取前M张所述人脸图像;
第三计算子模块,用于根据前M张所述人脸图像的排序、同一人的人脸张数,进行第二次相似度计算。
可选地,所述输出模块包括:
第四计算子模块,用于当前M张所述人脸图像来源于多个人时,将所述待检测人脸图像与所述人脸库中所述多个人的人脸图像进行比对以进行相似度加权累计计算;
输出子模块,用于根据相似度加权累计计算结果,输出所述待检测人脸图像的识别结果。
本公开实施例的第三方面,提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述第一方面中任一项所述方法的步骤。
本公开实施例的第四方面,提供一种人脸识别的装置,包括:
存储器,其上存储有计算机程序;以及
处理器,用于执行所述存储器中的所述计算机程序,以实现上述第一方面中任一项所述方法的步骤。
采用上述技术方案,至少能够达到如下技术效果:
本公开通过构建一人多张人脸照片的人脸库,计算人脸库中人脸图像对应的特征向量与待检测人脸图像的人脸特征向量之间的距离值,根据所述距离值,从人脸库中选取M张人脸图像进行相似度计算,不仅减少了计算量,还能显著提升人脸识别的准确率,解决了相关技术中人脸识别准确率较低的技术问题。
本公开的其他特征和优点将在随后的具体实施方式部分予以详细说明。
具体实施方式
以下结合附图对本公开的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本公开,并不用于限制本公开。
在人脸识别的实际应用中,影响识别率因素包括如下:1、人脸库照片质量;2、人脸库中照片数量(库中照片越多,识别率下降);3、采集人脸图像时的光线;4、人脸上的遮挡物(戴口罩、墨镜);5、画面采集角度。
因此,在实际的应用场景中,如银行和电信营业厅等,基于远距离的摄像头人脸识别的识别率,无法达到理想水平(95%以上)。在人脸识别相关技术中,至少存在如下问题:1、人脸的照片底库(预设的人脸照片和特征向量库)的人脸质量很大程度的影响识别率,如出现底片库人脸不清晰,侧脸严重,画面黑暗,脸部被水印遮挡等问题;2、在预设人脸特征库包含的人脸特征数量较大时,如超过10万,可能会出现识别正确率下降的情况。因此,在人脸库数量一定前提下,有必要提供一种可以提高人脸底片库照片质量,同时基于人脸特性向量比对方法提升人脸识别率的方法。
图1是根据一示例性实施例示出的一种人脸识别方的法流程图,以解决相关技术中人脸识别准确率较低的技术问题。如图1所示,该人脸识别的方法包括:
S11,获取待检测人脸图像。
S12,计算人脸库中人脸图像对应的特征向量与所述待检测人脸图像的人脸特征向量之间的距离值;其中,所述人脸库中存有每个人的多张人脸图像和每张人脸图像对应的特征向量。
所述特征向量是用于表达图像中人脸在像素级上的特征,并非直接表达眼镜鼻子五官级别上的特征描述。该特性向量为若干个浮点类型的一维数组,如1024个浮点数。在相关技术中,计算两个特征向量之间的距离,即可以计算两个特征向量之间的余弦相似值,计算公式可以为:
其中,similarity表示余弦相似值,A和B分别表示两个特征向量,Ai、Bi分别表示两个向量中对应的第i个元素。
S13,根据所述距离值,从人脸库中选取M张人脸图像与所述待检测人脸图像进行相似度计算,M大于或等于2。
S14,根据所述相似度计算结果,输出识别结果。
本实施例示出的该人脸识别的方法可以应用于终端中,该终端可以包括一个人脸采集装置,比如摄像头,所述终端可以是通过移动通信网络访问网络服务的用户设备,例如智能手机、平板电脑、笔记本电脑等用户设备。
在执行本公开人脸识别的方法之前,需要构建人脸库,构建人脸库可以包括如下步骤:采集每个人的多张不同人脸图像以存入人脸库中;通过预设的神经网络算法构建的模型获取每张人脸图像的特征向量;将所述人脸图像和对应的所述特征向量存入人脸库中。
举例来讲,一个人采集多张人脸图像,不限于5-10张左右,其中每张图像不完全相同,可包括带眼镜和不带眼镜的人脸图像,同一个人上下、左右的角度(在保证露双耳前提下)的人脸图像,不同的表情(喜怒哀乐)的人脸图像;主要是尽可能覆盖人脸的样本空间作为人脸底库,以保证识别时实际采集到一个人脸出现上述状态时,人脸库中存在最为相似的人脸底片。
可选地,在为了构建人脸库采集人脸图像时,确保图像中存在满足条件的人脸,如人脸所占像素值大于200*200,包括但不限于200*200,人脸的角度在可识别范围内(露出了双耳),图像画面清晰可见人脸。如果某人的某张人脸图像中,检测到无法满足条件的人脸图像,即该人脸图像的画面不够清晰时,则对该人脸图像进行数据标注,该人脸图像将不参与人脸识别环节的对比清单中。
对于上述图像的中出现的满足条件的人脸图像,则通过预设的已训练好的深度学习神经网络算法所构成的模型对图像中的人脸图像进行特征提取,输出每张人脸图像的特征向量,并将所述人脸图像和对应的特征向量、用户信息关联存储于人脸库中。
在构建好人脸库后,可以执行步骤S11,获取待检测人脸图像。所述待检测人脸图像可以通过摄像头采集获得,获取人脸图像后执行步骤S12,计算人脸库中人脸图像对应的特征向量与所述待检测人脸图像的人脸特征向量之间的距离值。如图2所示,所述计算人脸库中人脸图像对应的特征向量与所述待检测人脸图像的人脸特征向量之间的距离值,可以包括以下步骤:
S121,将所述人脸库中的人脸图像与所述待检测人脸图像进行第一次相似度计算。
S122,选取所述人脸库中相似度超过预设阈值的人脸图像。
S123,计算选取的人脸图像对应的特征向量与所述待检测人脸图像的人脸特征向量之间的距离值。
举例来讲,摄像头采集到人脸图像后,经过人脸检测和抠图,将检测抠图后人脸图像与人脸库中的人脸图像进行比对,找出相似度超过阈值的所有图像,计算相似度超过阈值的人脸图像对应的特征向量与所述待检测人脸图像的人脸特征向量之间的距离值,减少了计算量。
获取所述距离值后,执行步骤S13,如图3所示,所述根据所述距离值,从人脸库中选取M张人脸图像与所述待检测人脸图像进行相似度计算,可以包括以下步骤:
S131,将所述人脸库中的人脸图像按照所述距离值从小到大进行排序。
S132,选取前M张所述人脸图像,M大于或等于2。
S133,根据前M张所述人脸图像的排序、同一人的人脸张数,进行第二次相似度计算。
举例来讲,在人脸库中找出相似度超过阈值的所有人脸图像后并计算对应的距离值后,将所述人脸库中的人脸图像按照所述距离值从小到大进行排序,并输出前10张所述人脸图像。在输出的前10张所述人脸图像中,进行同一人归并(已知人脸库同一个的多张底片),重新计算每个人与当前人脸图像综合相似度。其计算方法如下:
对已经计算出来的前10张所述人脸图像对应的余弦相似度,进行差值计算,公式如下:
Xi=|Si-M|
其中X1,X2,X3……Xi为每张所述人脸图像对应的余弦相似度与平均值的差值,i在这里的最大取值为10,M为前10张所述人脸图像的余弦相似度平均数。
对同一个人多张人脸照片差值进行相乘计算(即合并)得出一个数值,再对合并后的数值与其他人脸照片进行比较,最小值对应当前识别的人脸。
接着,根据第二次相似度计算结果,输出识别结果。比如,将相似度最高的人脸图像对应的用户信息作为识别结果。如图4所示,所述根据所述相似度计算结果,输出识别结果,可以包括以下步骤:
S141,当前M张所述人脸图像来源于多个人时,将所述待检测人脸图像与所述人脸库中所述多个人的人脸图像进行比对以进行相似度加权累计计算。
S142,根据相似度加权累计计算结果,输出所述待检测人脸图像的识别结果。
举例来讲,当前5张所述人脸图像中出现了相似人脸且不是同一人时,比如,前5张所述人脸图像来源于两个人,将该两个人在人脸库中的所有人脸图像与所述待检测人脸图像进行比对,进行相似度加权累计计算,最终将相似度最高的人脸图像的用户作为识别结果。
本公开通过构建一人多张人脸照片的人脸库,计算人脸库中人脸图像对应的特征向量与待检测人脸图像的人脸特征向量之间的距离值,根据所述距离值,从人脸库中选取M张人脸图像进行相似度计算,不仅减少了计算量,还能显著提升人脸识别的准确率,解决了相关技术中人脸识别准确率较低的技术问题。
值得说明的是,对于图1所示的方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本公开并不受所描述的动作顺序的限制。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本公开所必须的。
图5是本公开一示例性实施例示出的一种人脸识别的装置框图。如图5所示,所述人脸识别的装置200包括:
第一获取模块210,用于获取待检测人脸图像;
距离计算模块220,用于计算人脸库中人脸图像对应的特征向量与所述待检测人脸图像的人脸特征向量之间的距离值;其中,所述人脸库中存有每个人的多张人脸图像和每张人脸图像对应的特征向量;
选取计算模块230,用于根据所述距离值,从人脸库中选取M张人脸图像与所述待检测人脸图像进行相似度计算,M大于或等于2;
输出模块240,用于根据所述相似度计算结果,输出识别结果。
可选地,如图6所示,所述人脸识别的装置200还包括:
采集模块250,用于采集每个人的多张不同人脸图像以存入人脸库中;
第二获取模块260,用于通过预设的神经网络算法构建的模型获采集的每张人脸图像的特征向量;
存储模块270,用于将所述人脸图像和对应的所述特征向量存入人脸库中。
可选地,如图7所示,所述距离计算模块220包括:
第一计算子模块221,用于将所述人脸库中的人脸图像与所述待检测人脸图像进行第一次相似度计算;
第一选取子模块222,用于选取所述人脸库中相似度超过预设阈值的人脸图像;
第二计算子模块223,用于计算选取的人脸图像对应的特征向量与所述待检测人脸图像的人脸特征向量之间的距离值。
可选地,如图8所示,所述选取计算模块230包括:
排序子模块231,用于将所述人脸库中的人脸图像按照所述距离值从小到大进行排序;
选取子模块232,用于选取前M张所述人脸图像;
第三计算子模块233,用于根据前M张所述人脸图像的排序、同一人的人脸张数,进行第二次相似度计算。
可选地,如图9所示,所述输出模块240包括:
第四计算子模块241,用于当前M张所述人脸图像来源于多个人时,将所述待检测人脸图像与所述人脸库中所述多个人的人脸图像进行比对以进行相似度加权累计计算;
输出子模块242,用于根据相似度加权累计计算结果,输出所述待检测人脸图像的识别结果。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
本公开还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述任一项可选实施例所述人脸识别的方法步骤。
本公开还提供一种人脸识别的装置,包括:
存储器,其上存储有计算机程序;以及
处理器,用于执行所述存储器中的所述计算机程序,以实现上述任一项可选实施例所述人脸识别的方法步骤。
图10是根据一示例性实施例示出的一种人脸识别的装置的框图。如图10所示,该装置400可以包括:处理器401,存储器402,多媒体组件403,输入/输出(I/O)接口404,以及通信组件405。
其中,处理器401用于控制该装置400的整体操作,以完成上述的人脸识别的方法中的全部或部分步骤。存储器402用于存储各种类型的数据以支持在该装置400的操作,这些数据例如可以包括用于在该装置400上操作的任何应用程序或方法的指令,以及应用程序相关的数据。该存储器402可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,例如静态随机存取存储器(Static Random Access Memory,简称SRAM),电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,简称EEPROM),可擦除可编程只读存储器(Erasable Programmable Read-Only Memory,简称EPROM),可编程只读存储器(Programmable Read-Only Memory,简称PROM),只读存储器(Read-Only Memory,简称ROM),磁存储器,快闪存储器,磁盘或光盘。多媒体组件403可以包括屏幕和音频组件。其中屏幕例如可以是触摸屏,音频组件用于输出和/或输入音频信号。例如,音频组件可以包括一个麦克风,麦克风用于接收外部音频信号。所接收的音频信号可以被进一步存储在存储器402或通过通信组件405发送。音频组件还包括至少一个扬声器,用于输出音频信号。I/O接口404为处理器401和其他接口模块之间提供接口,上述其他接口模块可以是键盘,鼠标,按钮等。这些按钮可以是虚拟按钮或者实体按钮。通信组件405用于该装置400与其他设备之间进行有线或无线通信。无线通信,例如Wi-Fi,蓝牙,近场通信(Near Field Communication,简称NFC),2G、3G或4G,或它们中的一种或几种的组合,因此相应的该通信组件405可以包括:Wi-Fi模块,蓝牙模块,NFC模块。
在一示例性实施例中,装置400可以被一个或多个应用专用集成电路(Application Specific Integrated Circuit,简称ASIC)、数字信号处理器(DigitalSignal Processor,简称DSP)、数字信号处理设备(Digital Signal Processing Device,简称DSPD)、可编程逻辑器件(Programmable Logic Device,简称PLD)、现场可编程门阵列(Field Programmable Gate Array,简称FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述的人脸识别的方法。
在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,例如包括程序指令的存储器402,上述程序指令可由装置400的处理器401执行以完成上述的人脸识别的方法。
以上结合附图详细描述了本公开的优选实施方式,但是,本公开并不限于上述实施方式中的具体细节,在本公开的技术构思范围内,可以对本公开的技术方案进行多种简单变型,这些简单变型均属于本公开的保护范围。
另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合。为了避免不必要的重复,本公开对各种可能的组合方式不再另行说明。
此外,本公开的各种不同的实施方式之间也可以进行任意组合,只要其不违背本公开的思想,其同样应当视为本公开所公开的内容。