一种提高人脸识别准确性的方法、计算机装置及计算机可读存储介质
文献发布时间:2024-01-17 01:15:20
技术领域
本发明涉及人脸识别技术领域,具体是涉及一种提高人脸识别准确性的方法、计算机装置及计算机可读存储介质。
背景技术
人脸识别技术是基于当前输入的人脸图像提取人脸特征,与已知的人脸的脸部特征进行比对,从而确定输入的人脸图像中人的身份的技术,被广泛应用在考勤、交易以及安防等领域。
人脸识别技术主要有两个方面:(1)基于传统的方法,依赖于人工设计的特征,例如HOG与HOF等,以及机器学习技术,例如支持向量机和主成分分析等;(2)深度学习方法,基于卷积神经网络,通过大量人脸数据样本的学习,便可以达到一个较好的准确率。当前主流的人脸识别方法基于深度学习方法实现。
基于深度学习方法的人脸识别技术主要包括:(1)人脸定位:定位人脸在图像中的位置,一般用矩形框返回人脸的坐标;(2)人脸关键点定位:通过面部的嘴、眼睛、鼻毛、眉毛以及脸部轮廓关键特征来表征人脸;(3)人脸对齐:通过关键点进行放射变换,使得人脸尽可能达到正面,便于后期更好识别;(4)人脸特征提取:将对齐后的人脸转换成特征向量;(5)人脸对比:将该表述人脸的特征向量进行比较,得到一个相似度的分数,通过相似度分数确定两个人脸是否对应同一个主体。
现有的人脸识别技术一般是将待检测人脸图像与向量检索库中存储的人脸图像一一比对,设置有单一阈值,当比对的结果满足该阈值范围时,则认为识别成功,该方法对于任意场景下人脸识别性能较低,对获取到的人脸图像的方位、姿态及光线等的要求较高。
发明内容
本发明的第一目的是提供一种提高人脸识别准确性的方法,可以提高人脸识别的准确性,降低对人脸图像的方位、姿态及光线等质量要求。
本发明的第二目的是提供一种应用于上述一种提高人脸识别准确性的方法的计算机装置。
本发明的第三目的是提供一种存储有上述一种提高人脸识别准确性的方法的计算机可读存储介质。为了实现上述的第一目的,本发明提供的。
为了实现上述的第一目的,本发明提供的一种提高人脸识别准确性的方法,其中,包括:获取待检测人脸图像并提取第一人脸特征;将第一人脸特征分别与向量检索库中的第二人脸特征进行相似度比对,并根据相似度的高低确定向量索引库的多个元素,向量索引库的每一元素包括第三人脸特征的姓名与分值,分值与姓名对应;判断最小的分值是否小于第一预设阈值,如是,确定最小的分值对应的姓名为第一人脸特征对应的姓名;如最小的分值不小于第一预设阈值,进一步判断目标姓名在向量索引库中出现的次数是否大于或等于第二预设阈值,如是,确定目标姓名为第一人脸特征对应的姓名,如否,根据目标姓名出现的次数与目标姓名对应的目标分值确定第一人脸特征对应的姓名。
由上述方案可见,本发明通过第一人脸特征与向量检索库中的第二人脸特征一一比对后确定向量索引库,从而可以通过第一预设阈值来确定相似度最高的第三人脸特征对应的姓名为待检测人脸图像的姓名,还在无法通过第一阈值来判断时,通过目标姓名在向量索引库出现的次数,以及通过目标姓名出现的次数与目标分值来确定第一人脸特征对应的姓名,从而可以避免只设置单一阈值来识别第一人脸特征的弊端,通过不同约束条件的组合,综合考虑比对过程中相似度较低的第三人脸特征,从而提升最终人脸识别的准确率。
进一步的方案是,根据目标姓名与目标分值确定第一人脸特征对应的姓名时,包括以下步骤:判断以下第一判断条件是否成立:目标姓名在向量索引库中出现的次数在第一预设范围内且目标分值的平均值小于第三预设阈值,如是,确定目标姓名为第一人脸特征对应的姓名;如第一判断条件不成立,进一步判断以下第二判断条件是否成立:目标姓名在向量索引库中出现的次数在第二预设范围内,并且目标分值中按从小到大排序的前第一数值的项的平均值小于第三预设阈值,如第二判断条件成立,确定目标姓名为第一人脸特征对应的姓名;第二预设范围的上限值小于第一预设范围的下限值。
由此可见,可以根据目标行为出现的次数确定设置不同的约束范围与约束条件,从而可以形成多阈值识别的方式,综合考虑不同情况,提升识别的准确率。
进一步的方案是,如第二判断条件不成立时,执行以下步骤:判断以下第三判断条件是否成立:目标分值中按从小到大排序的前第一数值的项的平均值小于第四预设阈值,如是,判断以下第四判断条件是否成立:目标分值中按小到大排序的前第一数值的项为向量索引库中的分值中按从小到大排序的前第一数值的项,如第四判断条件成立,确定目标姓名为第一人脸特征对应的姓名,若第四判断条件不成立,则判断以下第五判断条件是否成立:目标分值中按小到大排序的前第二数值的项为向量索引库中的分值中按从小到大排序的前第二数值的项,且目标分值中按小到大排序的前第二数值的项中每一项均小于第三预设阈值,第五判断条件成立,确定目标姓名为第一人脸特征对应的姓名,如第五判断条件不成立,则判断以下第六判断条件是否成立:目标姓名出现的次数大于第三数值,第六判断条件成立,则确定目标姓名为第一人脸特征对应的姓名;第二数值小于第一数值;当第三判断条件不成立时,判断以下第七判断条件是否成立:目标分值按从小到大排序的前第一数值的项的平均值小于第五预设阈值,且目标姓名出现的次数大于第三数值,并且向量索引库中不同姓名的个数大于等于第四数值,如第七判断条件不成立,确定目标姓名为第一人脸特征对应的姓名。
由此可见,可以在目标姓名不满足第三预设阈值时,适当放松第三预设阈值,同时增加其他的约束条件,通过不同阈值与不同约束调价内的组合,从而可以放宽目标姓名出现次数的要求,在目标姓名出现次数较低时也可能将待识别人脸图像的姓名识别出来。
进一步的方案是,当目标姓名在向量索引库中出现的次数在第三预设范围内时,判断以下第八判断条件是否成立:目标姓名对应的目标分数的平均值小于第三预设阈值,如第八判断条件成立,确定目标姓名为第一人脸特征对应的姓名;第三预设范围的上限值小于第二预设范围的上限值。
进一步的方案是,判断目标姓名在向量索引库中出现的次数是否大于第二预设阈值前,判断向量索引库中不同姓名的个数是否大于第六数值。
由此可见,通过第二预设阈值的设置可以快速地确定该待检测人脸图像的识别能否满足继续后续判断步骤的条件,进而提高识别的速度。
进一步的方案是,将第一人脸特征分别与第二人脸特征进行相似度比对,并根据相似度的高低确定向量索引库时,计算第一人脸特征的特征向量与第二人脸特征的特征向量之间的欧氏距离,并根据欧氏距离的大小确定向量索引库的各个元素。
由此可见,利用欧氏距离能体现个体数值特征的绝对差异,适用于需要从维度的数值大小中体现差异的分析的特点,应用在本申请识别方法中相比其他距离精确度更高。
进一步的方案是,在获取待检测人脸图像并提取第一人脸特征前,构建向量检索库;构建向量检索库时,包括:采集人脸数据集,人脸数据集包括每个人的不同角度、不同姿态以及不同表情的人脸图像。
由此可见,可以丰富向量检索库,降低对待检测人脸图像的角度、姿态以及表情的要求。
为了实现上述的第二目的,本发明提供的一种计算机装置,包括处理器与存储器,其中:存储器存储有计算机程序,计算机程序被处理器执行时实现上述的提高人脸识别准确性的方法。
为了实现上述的第三目的,本发明提供的一种计算机程序运行时实现上述的提高人脸识别准确性的方法。
附图说明
图1是本发明的提高人脸识别准确性的方法实施例的流程图。
图2是本发明的提高人脸识别准确性的方法实施例中建立向量检索库的流程图。
图3是本发明的提高人脸识别准确性的方法实施例中将第一人脸特征与第二人脸特征进行相似度比对,输出识别结果的流程图。
以下结合附图及实施例对本发明作进一步说明。
具体实施方式
本发明根据第一人脸特征与第二人脸特征进行相似度比对,从而确定专利索引库的各个元素,进而根据专利索引库确定第一人脸特征对应的姓名。
提高人脸识别准确性的方法实施例:
本实施例以识别视频与图像中的公众人物的人脸图像进行说明,可以应用在线上营销活动的检测人脸图像是否违规使用,从而及时维权。
本方法通过计算机程序实现,参见图1,实现本实施例的提高人脸识别准确性方法,首先执行步骤S1,建立向量检索库,然后执行步骤S2,获取待检测人脸图像并提取第一人脸特征,最后执行步骤S3,将第一人脸特征与第二人脸特征进行相似度比对,输出识别结果。
在建立向量检索库时,参见图2,首先执行步骤S11,进行数据集的采集。具体的,需要准备人脸检测数据集以及公众人物人脸数据集。人脸检测数据集来源于公开的WiderFace数据集,该数据集共有32203幅图像,其中有393703个标注人脸,158989个标注人脸用于训练,39496个标注人脸用于验证,在尺度、姿态、光照、表情以及遮挡方面都有很大的变化范围,并以FDDB为测试集。公众人物人脸数据集通过网络爬虫技术在互联网上爬取,并尽可能选择多角度、姿态以及表情的图片。
然后执行步骤S12,进行人脸检测。本实施例的人脸检测模型以Retinaface作为主体框架,其主要包括以下5个模块:backbon-Mobilenet、FPN、SSH、Head、Multi-task Loss。
然后执行步骤S13,确定人脸关键点。本实施例主要以开源的PE LD网络作为人脸关键点提取模型。
然后执行步骤S14,进行人脸对齐。具体的是,基于步骤S13检测到的人脸关键点,取出左右眼睛、鼻尖以及左右嘴角五个关键点,并获取上述关键点与预定义标准人脸关键点之间的相似变化矩阵,再在人脸图像上进行仿射变换,得到对齐后的人脸。
最后执行步骤S15,进行人脸特征的提取。在本实施例中,主要使用MobileFaceNet网络结构,对人脸提取512维特征。MoblileFac eNet是类似于MobileNetV2的网络结构,使用全局深度卷积代替全局平均池化层,使用PReLU激活层代替Relu。
基于上述步骤,可以将从公众人物数据集中提取到的人脸特征,即特征向量,以及该特征向量对应的姓名保存在数组中,建立向量检索库。向量检索库中不同的索引值都对应着一对姓名与特征向量,对于不同的索引值对应的姓名可能相同,例如向量索引库中索引值1对应姓名A与特征向量X,索引值17对应姓名A与特征向量Y,即姓名A对应着同一个人不同的人脸图像,该图像中人脸的表情与姿态等可能不同。
在执行步骤S2,获取待检测人脸图像并提取第一人脸特征时,具体的,同样以上述步骤S12至步骤S15的实施方式来提取第一人脸特征的特征向量。
在执行步骤S3时,参见图3,首先执行步骤S31,将第一人脸特征分别与向量检索库中的第二人脸特征进行相似度比对,并根据相似度高低确定向量索引库的多个元素。具体的是,计算第一人脸特征的特征向量与第二人脸特征的特征向量之间的欧式距离,即分值,本实施例取分值从小到大排列的前10名记作D,上述10个分值分别对应的特征向量即第三特征向量,并将该前10名的特征向量对应的索引值记作I。由此,向量索引库中存储有前10名的分值以及分值对应的索引值,根据索引值可以通过向量检索库确定该分值对应的姓名,即向量索引库中的每个元素包括一个第三人脸特征值对应的姓名与分值,并统计向量索引库中不同姓名出现个数。
然后执行步骤S32,判断最小的分值是否小于第一预设阈值。本实施例中,第一预设阈值取0.5,第一预设阈值用于表示两个人脸特征的匹配度很高时所要求的欧式距离的阈值。当最小的分值,即D中排列第一的分值D[0][0],若D[0][0]小于0.5,则表示待检测人脸图像与该分值对应的姓名的匹配度很高,可直接认定该姓名为待检测人脸图像对应的姓名,此时继续执行步骤S44,返回最小的分值对应的姓名为第一人脸特征对应的姓名。
当最小的分值不小于第一预设阈值时,执行步骤S33,判断向量索引库中不同姓名的个数是否大于第五数值。本实施例中,第五数值取8,第五数值用于表示向量索引库中不同姓名允许出现的个数的最大阈值。本实施例中的向量索引库中有10个分值,待检测人脸图像最大可能出现10个姓名,当分值对应的不同姓名的个数的总和超过8个时,待检测人脸图像的识别结果不够集中,此时执行步骤S45,返回识失败。
当向量索引库中不同姓名的个数大于第五数值时,继续执行步骤S34,判断目标姓名在向量索引库中出现的次数是否大于或等于第二预设阈值。目标姓名即向量索引库中出现次数最多的姓名,若存在多个出现次数最多的姓名,例如10个姓名中,张三出现3次,李四出现3次,王五出现3次,赵六出现1次,则目标姓名为张三、李四以及王五中选择一个,具体的,比较姓名对应的三个分值的平均值,最高的平均值对应的姓名为目标姓名,若平均值均相等,则确定3个姓名对应的9个分值中,最小的分值对应的姓名为目标姓名,若最下的分值有多个且对应的目标姓名不同,则无法确定目标姓名,直接返回识别失败。本实施例中,第二预设阈值取9,第二预设阈值用于表示仅通过目标姓名出现的次数来确认是否识别成功时,目标姓名出现的最低次数。当目标姓名出现的次数大于或等于9时,即表示待检测人脸图像被至少9次识别为同一个姓名,则继续执行步骤S47,确定目标姓名为第一人脸特征对应的姓名,然后执行步骤S48,返回目标姓名。
当执行步骤S34的结果为否时,说明无法仅通过目标姓名出现的次数来确认是否识别成功,需要在目标姓名出现的次数的基础上结合目标姓名对应的目标分值来确定第一人脸特征对应的姓名,此时继续执行步骤S35,进行第一判断条件的判断,具体的,第一判断条件是:目标姓名在向量索引库出现的次数在第一预设范围内,且目标分值的平均值小于第三预设阈值。本实施例中,第一预设范围为集合{7,8},当目标姓名出现的次数在第一预设范围内时,说明此时待检测人脸图像有较大可能对应某一姓名,此时需要再判断目标分值的平均值是否小于第三预设阈值,目标分值即目标姓名对应的分值,第三预设阈值T=85,第三预设阈值的设置是经过25000张非公众人物的人脸图像,和10000余张公众人物的人脸图像实验得出的最佳阈值,若目标分值的平均值小于85,则继续执行步骤S47。
若执行步骤S35的结果为否,即第一判断条件不成立,则说明需要继续放宽对于目标姓名出现的次数或者对于目标分值的要求,此时则执行步骤S36,判断目标姓名在向量索引库中出现次数是否在第二预设范围内。第二预设范围为{4,5,6},若目标姓名在向量索引库中出现的次数在第二预设范围内,则说明待检测人脸图像有可能对应某一姓名,此时继续执行步骤S37,否则执行步骤S42。执行步骤S42时,判断目标姓名在向量索引库中出现的次数在第三预设范围内,且目标分数的平均值小于第三预设阈值是否成立。本实施例中,第三预设范围为{2,3},若目标姓名在向量索引库中出现的次数在第三预设范围内,则说明待匹配图像有较小可能对应某一姓名,此时若目标分数的平均值小于85,第八判断条件成立,则执行步骤S47,否则执行步骤S43。
执行步骤S37时,判断目标分值按从小到大排序的前第一数值的项的平均值是否小于第三预设阈值。本实施例中,计算目标分值按从小到大排序的前3项的平均值,判断该平均值是否小于85,如是,说明第二判断条件成立,执行步骤S47。
若执行步骤S37的结果为否,即第二判断条件不成立,则说明需要进一步放宽对于目标分数的要求,则继续执行步骤S38,进行第三判断条件的判断,具体的,第三判断条件是:判断目标分值中按从小到大排序的前第一数值的项的平均值小于第四预设阈值。本实施例中,第四预设阈值为96,若目标分值中按从小到大排序的前第3项的平均值不小于96,则执行步骤S45。执行步骤S45时,判断目标分值中按从小到大排序的前第一数量的项的平均值是否小于第五预设阈值,本实施例中,第五预设阈值取105,当目标分值中按从小到大排序的前3项的平均值不小于105,则执行步骤S43,返回识别失败;当目标分值中按从小到大排序的前3向的平均值小于105,则继续执行步骤S46。执行步骤S46时,判断目标姓名出现的次数大于第三数值,且向量索引库中不同姓名的个数大于或等于第四阈值是否成立,本实施例中,当目标姓名出现的次数大于4且向量索引库中不同姓名的个数大于等于3时,继续执行步骤S47,即第七判断条件成立,否则执行步骤S43。
若执行步骤S38的判断结果为是,即第三判断条件成立,则继续执行步骤S39,进行第四判断条件的判断,具体的,第四判断条件是:判断目标分值中按从小到大排序的前第一数量的项是向量索引库的分值中按从小到大排序的前第一数量的项,即判断目标姓名的目标分值中按从小到大的分值排序的前3项是否与向量索引库中的所有分值按从小到大排序的前3项一一对应,如是,则执行步骤S47,如否,则执行步骤S40。
若步骤S39的判断结果为否,即第四判断条件不成立,则执行步骤S40,进行第五判断条件的判断,具体的,第五判断条件包括:目标分值中按从小到大排序的前第二数值的项为向量索引库中的分值按从小到大排序的前第二数量的项,且每一项都小于第一预设阈值。本实施例中,第二数量取2,即判断目标分值中按从小到大排序的前2项是否是向量索引库的分值按从小到大排序的前2项,且前2项中每一项的分值均小于85,如是,执行步骤S47。
若步骤S40的判断结果为否,即第五判断条件不成立,则执行步骤S41,判断目标分值中按从小到大排序的前第二数量的项为向量索引库中的分值按从小到大排序的前第二数量的项,且目标姓名出现的次数大于第三数值是否成立。本实施例中,第三数值取5,即当目标分值中按从小到大排序的前2向为向量索引库中的分值按从小到大排序的前2项,并且目标姓名在索引库中出现的次数大于5时,即第六判断条件成立,执行步骤S47,否则执行步骤S43。
计算机装置实施例:
本实施例的计算机装置包括处理器与存储器,存储器存储有计算机程序,处理器执行计算机程序时实现上述提高人脸识别准确性的方法的各个步骤。
计算机装置可包括但不限于处理器与存储器。本领域技术人员可以理解,计算机装置可以包括更多或更少的部件,或者组合某些部件,或者不同的部件,例如计算机装置还可以包括输入输出设备、网络接入设备、总线等。
例如,处理器可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(FieldProgrammable Gate Arr ay,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微控制器或者该处理器也可以是任何常规的处理器等。处理器是计算机装置的控制中心,利用各种接口和线路连接整个计算机装置的各个部分。
存储器可用于存储计算机程序和/或模块,控制器通过运行或执行存储在存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现计算机装置的各种功能。例如,存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(例如声音接收功能、声音转换成文字功能等)等;存储数据区可存储根据手机的使用所创建的数据(例如音频数据、文本数据等)等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Fla shCard)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
计算机可读存储介质实施例:
上述实施例的计算机装置集成的模块如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。基于这样的理解,实现提高人脸识别准确性的方法实施例中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,计算机程序可存储于一计算机可读存储介质中,该计算机程序在被控制器执行时,可实现上述提高人脸识别准确性的方法实施例的步骤。其中,计算机程序包括计算机程序代码,计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。存储介质可以包括:能够携带计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Rea d-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
综上所述,本发明的提高人脸识别准确性的方法,通过第一人脸特征与向量检索库中的第二人脸特征一一比对后确定向量索引库,从而可以通过第一预设阈值来确定相似度最高的第三人脸特征对应的姓名为待检测人脸图像的姓名,还在无法通过第一阈值来判断时,通过目标姓名在向量索引库出现的次数,以及根据目标姓名出现的次数设定不同的约束条件,从而可以形成多阈值的判断方式,避免只设置单一阈值来识别待检测人脸图像的弊端,通过不同约束条件的组合,可以综合考虑比对中相似度较低的第三人脸特征,从而提升最终的人脸识别的准确率。
- 基于人脸识别的不动产登记信息获取方法、计算机装置及计算机可读存储介质
- 一种车牌识别方法、装置、计算机装置及计算机可读存储介质
- 人脸识别的方法、装置、终端及计算机可读存储介质
- 人脸识别方法、装置、计算机设备和可读存储介质
- 一种检测方法、装置、计算机可读存储介质和计算机设备
- 人脸识别率提高方法、门禁设备及计算机可读存储介质
- 提高监控准确性的方法、装置、设备和计算机可读介质