指纹底库录入方法、装置、电子设备及存储介质
技术领域
本公开涉及底库录入的技术领域,具体是涉及一种指纹底库录入方法、装置、电子设备及存储介质。
背景技术
指纹底库中涵盖有各种录入状态的指纹特征是提高录入指纹底库中的指纹特征与待检测指纹特征比对成功率的重要因素。由于指纹底库中的可存储的指纹特征的个数存在上限,因此,减少指纹底库中可能存在的重复指纹特征是增加指纹底库中涵盖有各种录入状态的指纹特征的关键。
但是,在指纹录入底库过程中,为了令用户体验的用户界面(user interface UI)看起来比较流畅,只限定在指纹录入过程的前几张不允许查重,或指纹录入的后几张不允许查重。这种限定会对成功录入指纹底库中的指纹质量和有效指纹数量带来很大挑战,影响录入指纹底库中的指纹特征与待检测指纹特征的比对成功率。
发明内容
为了克服现有技术中存在的问题,本公开提供一种指纹底库录入方法、装置、电子设备及存储介质。
第一方面,本公开实施例提供一种指纹底库录入方法,其中,指纹底库包括录入底库,指纹底库录入方法包括:获取录入指纹图片;抽取录入指纹图片的待录入指纹特征;判断待录入指纹特征是否与录入底库中任一指纹特征相似;若待录入指纹特征与录入底库中任一指纹特征均不相似,则将待录入指纹特征储存于录入底库,并更新录入计数n,其中,录入计数n初始值为0;若待录入指纹特征与录入底库中的任一指纹特征相似,则根据查重区间更新录入计数n;判断当前录入计数n是否等于录入阈值;若当前录入计数n等于录入阈值,则结束录入底库的录入;若当前录入计数n小于录入阈值,则返回获取录入指纹图片的步骤。
在一种实施方式中,若待录入指纹特征与录入底库中的任一指纹特征相似,则根据查重区间更新录入计数n,包括:若待录入指纹特征与录入底库中的任一指纹特征相似,则判断当前录入计数n是否位于查重区间;若当前录入计数n位于查重区间,则返回获取录入指纹图片的步骤;若当前录入计数n不位于查重区间,则更新录入计数n=n+1。
在另一种实施方式中,在抽取录入指纹图片的待录入指纹特征之前,指纹底库录入方法还包括:判断录入指纹图片的图片质量,若图片质量达到第一合格条件,则基于录入指纹图片,执行抽取录入指纹图片的待录入指纹特征的步骤;若图片质量未达到第一合格条件,则返回获取录入指纹图片的步骤。
在又一种实施方式中,指纹底库还包括学习底库;在结束录入底库的录入之后,指纹底库录入方法还包括:获取比对指纹图片;根据比对指纹图片,获取当前学习指纹特征,并根据当前学习指纹特征更新学习底库。
在又一种实施方式中,获取当前学习指纹特征,并根据当前学习指纹特征更新学习底库,包括:根据当前学习指纹特征与指纹底库中已录入的每个指纹特征的差异度,获取当前学习指纹特征的最小差异度,其中,指纹特征包括录入指纹特征和学习指纹特征;判断最小差异度是否位于学习区间;若最小差异度位于学习区间,则根据当前学习指纹特征更新学习底库,并将当前学习指纹特征的最小差异度储存至学习底库。
在又一种实施方式中,根据当前学习指纹特征更新学习底库,包括:判断指纹底库中指纹特征的数量是否达到上限值;若指纹底库中指纹特征的数量未达到上限值,则将当前学习指纹特征录入学习底库;若指纹底库中指纹特征的数量达到上限值,则删除最似指纹特征,并将当前学习指纹特征录入学习底库,其中,最似指纹特征为当前学习底库中的最小差异度的最小值对应的学习指纹特征。
在又一种实施方式中,根据当前学习指纹特征更新学习底库,还包括:若当前学习指纹特征的最小差异度是根据学习底库中已录入的学习指纹特征比对而得到,则将对应的已录入的学习指纹特征的最小差异度更新为当前学习指纹特征的最小差异度。
在又一种实施方式中,当前学习底库中的最小差异度的最小值对应有至少两个学习指纹特征时,将录入时间最晚的学习指纹特征作为最似指纹特征。
在又一种实施方式中,在获取当前学习指纹特征的最小差异度之后,指纹底库录入方法还包括:判断当前学习指纹特征的最小差异度是否小于或等于比对阈值,若当前学习指纹特征的最小差异度小于或等于比对阈值,则执行判断最小差异度是否位于学习区间的步骤。
在又一种实施方式中,在判断最小差异度是否位于学习区间之前,指纹底库录入方法还包括:判断比对指纹图片的图片质量,若图片质量达到第二合格条件,则执行判断最小差异度是否位于学习区间的步骤。
在又一种实施方式中,在将当前学习指纹特征录入学习底库之后,指纹底库录入方法还包括:判断指纹底库中指纹特征的数量是否达到上限值;若指纹底库中指纹特征的数量达到上限值,则将学习区间的下限差异度更新为当前学习底库中最似指纹特征的最小差异度。
第二方面,本公开实施例提供一种指纹底库录入装置,其中,指纹底库包括录入底库,指纹底库录入装置包括:获取模块,用于获取录入指纹图片;抽取模块,用于抽取录入指纹图片的待录入指纹特征;处理模块,用于判断待录入指纹特征是否与录入底库中任一指纹特征相似;若待录入指纹特征与录入底库中任一指纹特征均不相似,则将待录入指纹特征储存于录入底库,并更新录入计数n,其中,录入计数n初始值为0;若待录入指纹特征与录入底库中的任一指纹特征相似,则根据查重区间更新录入计数n;执行模块,用于判断当前录入计数n是否等于录入阈值;若当前录入计数n等于录入阈值,则结束录入底库的录入;若当前录入计数n小于录入阈值,则返回获取录入指纹图片的步骤。
第三方面,本公开实施例提供一种电子设备,其中,电子设备包括:存储器,用于存储指令;以及处理器,用于调用存储器存储的指令执行本公开第一方面或第一方面任意一种实施方式中所述的指纹底库录入方法。
第四方面,本公开实施例提供一种计算机可读存储介质,其中,计算机可读存储介质存储有计算机可执行指令,计算机可执行指令在由处理器执行时,执行第一方面或第一方面任意一种实施方式中所述的指纹底库录入方法。
本公开提供一种指纹底库录入方法,在保证用户体验的用户界面流畅的前提下,有效减少了指纹底库中录入有重复指纹特征的可能,增加了指纹底库中录入涵盖有各种录入状态的指纹特征,用以提高录入指纹底库中的指纹特征与待检测指纹特征的比对成功率。
附图说明
通过参考附图阅读下文的详细描述,本公开实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本公开的实施方式,其中:
图1示出了本公开实施例提供的一种指纹底库录入方法的流程图;
图2示出了本公开实施例提供的一种指纹底库录入方法中根据查重区间更新录入计数步骤的流程图;
图3示出了本公开实施例提供的又一种指纹底库录入方法的流程图;
图4示出了本公开实施例提供的又一种指纹底库录入方法的流程图;
图5是示出了本公开实施例提供的一种指纹底库录入方法中根据当前学习指纹特征更新学习底库步骤的流程图;
图6是示出了本公开实施例提供的一种指纹底库录入方法中根据当前学习指纹特征更新学习底库步骤的流程图;
图7是示出了本公开实施例提供的又一种指纹底库录入方法中根据当前学习指纹特征更新学习底库流程图;
图8为在结束录入底库的录入之后,本公开的一种指纹底库录入方法的示意图;
图9为在结束录入底库的录入之后,本公开的另一种指纹底库录入方法的示意图;
图10为在结束录入底库的录入之后,本公开的又一种指纹底库录入方法的示意图;
图11为在结束录入底库的录入之后,本公开的又一种指纹底库录入方法的示意图;
图12为在结束录入底库的录入之后,本公开的又一种指纹底库录入方法的示意图;
图13为在结束录入底库的录入之后,本公开的又一种指纹底库录入方法的示意图;
图14为在结束录入底库的录入之后,本公开的又一种指纹底库录入方法的示意图;
图15为在结束录入底库的录入之后,本公开的又一种指纹底库录入方法的示意图。
图16示出了本公开实施例提供的一种指纹底库录入装置的示意图;
图17示出了本公开实施例提供的一种电子设备示意图。
具体实施方式
下面将参考若干示例性实施方式来描述本公开的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本公开,而并非以任何方式限制本公开的范围。
需要注意,虽然本文中使用“第一”、“第二”等表述来描述本公开的实施方式的不同模块、步骤和数据等,但是“第一”、“第二”等表述仅是为了在不同的模块、步骤和数据等之间进行区分,而并不表示特定的顺序或者重要程度。实际上,“第一”、“第二”等表述完全可以互换使用。
随着AI生物识别技术的发展与成熟,屏下指纹识别技术已成为移动解锁和安全管理的首要选择。
由于指纹的录入方向不同,同一个人的指纹特征也将有所不同。各种录入状态的指纹特征包括沿着不同的录入方向录入的指纹特征。
在指纹录入底库的过程中,在保证用户体验的用户界面流畅的前提下,指纹底库中涵盖有各种录入状态的指纹特征是提高录入指纹底库中的指纹特征与待检测指纹特征比对成功率的重要因素。
本公开提供的一种指纹底库录入方法,在保证用户体验的用户界面流畅的前提下,有效减少了指纹底库中录入有重复指纹特征的可能,增加了指纹底库中录入涵盖有各种录入状态的指纹特征,用以提高录入指纹底库中指纹特征与待检测指纹特征的比对成功率。
图1示出了本公开实施例提供的一种指纹底库录入方法的流程图。
如图1所示,本公开提供的指纹底库录入方法,其中,指纹底库包括录入底库。指纹底库录入方法包括步骤S101、步骤S102、步骤S103、步骤S104、步骤S105、步骤S106、步骤S107和步骤S108。下面将分别介绍各步骤。
在步骤S101中,获取录入指纹图片。
指纹底库包括录入底库和学习底库,指纹特征录入过程包括提前录入阶段和学习阶段。其中,提前录入阶段录入的指纹特征将存储至录入底库中,学习阶段录入的指纹特征将存储至学习底库中。
在步骤S101中获取的录入指纹图片为提前录入阶段录入到录入底库中的指纹特征所对应的指纹图片。
在步骤S102中,抽取录入指纹图片的待录入指纹特征。
在步骤S103中,判断待录入指纹特征是否与录入底库中任一指纹特征相似。
基于获取的录入指纹图片,抽取得到录入指纹图片的待录入指纹特征,并判断待录入指纹特征与录入底库中的任一指纹特征是否相似。
在一种实施方式中,可以通过判断待录入指纹特征的特征向量与录入底库中的任一指纹特征的特征向量进行比较,来确定待录入指纹特征与录入底库中的任一指纹特征是否相似。
基于两者的特征向量得到两者之间的相似度,若两者的相似度小于相似度阈值,则表示待录入指纹特征与录入底库中指纹特征不相似;若两者的相似度大于或等于相似度阈值,则表示待录入指纹特征与录入底库中指纹特征相似。
在步骤S104中,若待录入指纹特征与录入底库中指纹特征均不相似,则将录入指纹特征储存至录入底库,并更新录入计数n。其中,录入计数n初始值为0。
将与录入底库中指纹特征均不相似的待录入指纹特征储存于录入底库中,增加了录入底库中存储有各种录入状态的指纹特征,从而提高录入指纹底库中的指纹特征与待检测指纹特征的比对成功率。
在步骤S105中,若待录入指纹特征与录入底库中的任一指纹特征相似,则根据查重区间更新录入计数n。
为了提高用户的体验感,往往需要限制用户录入的前几张指纹特征不允许查重。
当用户欲录入的指纹特征与录入底库中的其他指纹特征相似时,为了保证用户流畅的体验感,可以不向用户发出重新更换手指方向,以采集其他录入状态的指纹特征的提醒。而是直接更新录入计数n,并且不将用户提供的欲录入的指纹特征存储在录入底库中。
为了能够增加录入底库中存储更多有效的指纹特征,可以在录入底库中设置查重区间。其中,查重区间为针对录入计数n的查重区间。
基于查重区间,对录入计数n在查重区间内的待录入指纹特征进行查重处理。
当待录入指纹特征与录入底库中的任一指纹特征相似时,并未将待录入指纹特征存储至录入底库中,用以减少录入底库中存在重复的指纹特征。并根据查重区间确定是否更新录入计数n。
录入计数n是指用户为录入指纹特征而提供的指纹图片的次数。录入次数可以影响用户的体验感,若用户实际提供了指纹图片,而该指纹图片不被记为录入次数,即表示用户本次指纹图片的获取不成功,需要用户再次提供指纹图片,将造成用户的体验感降低。
通过更新录入计数n,虽然未将用户提供的指纹图片的待录入指纹特征存储至录入底库中,仍然令用户体验到指纹特征录入成功的流畅感。
在步骤S106中,判断当前录入计数n是否等于录入阈值。
录入阈值为录入底库可录入指纹特征的数量上限。录入阈值的大小可以根据实际情况进行调整,本公开不对录入阈值的具体数值做限定。
在步骤S107中,若当前录入计数n等于录入阈值,则结束录入底库的录入。
在步骤S108中,若当前录入计数n小于录入阈值,则返回获取录入指纹图片步骤S101。
本公开提供的一种指纹底库录入方法,在保证用户体验的用户界面流畅的前提下,有效减少了指纹底库中录入有重复指纹特征的可能,增加了指纹底库中录入各种录入状态的指纹特征,用以提高录入指纹底库中指纹特征与待检测指纹特征的比对成功率。
图2示出了本公开实施例提供的一种指纹底库录入方法中根据查重区间更新录入计数步骤的流程图。
在本公开一示例性实施例中,如图2所示,在步骤S105中,若待录入指纹特征与录入底库中的任一指纹特征相似,则根据查重区间更新录入计数n,包括步骤S1051、步骤S1052和步骤S1053。下面将分别介绍步骤S1051、步骤S1052和步骤S1053。
在步骤S1051中,若待录入指纹特征与录入底库中的任一指纹特征相似,则判断当前录入计数n是否位于查重区间。
查重区间为针对录入计数n的查重区间。
在一可能的实施例中,为了提高用户的流畅体验感,可以限定在指纹录入过程的前几张不允许查重,或指纹录入过程的后几张不允许查重。
查重区间可以是区间[0,录入阈值]中间的一段区间。例如,录入阈值为15时,查重区间可以为[5,15]。当某一指纹特征的录入计数n为6时,表示该指纹特征位于查重区间。
在步骤S1052中,若当前录入计数n位于查重区间,则返回获取录入指纹图片的步骤。
若当前录入计数n位于查重区间,表示该指纹特征不可录入到录入底库中,并且不更新录入计数n。需要返回至获取录入指纹图片步骤S101重新获取新的录入指纹图片。
在实际应用中,若当前录入计数n位于查重区间,可以向用户发出重新更换手指方向,以采集其他录入状态的指纹特征的提醒。用以获取不同于录入底库中其他指纹特征的待录入指纹特征,进而增加了录入底库中的不同录入状态的指纹特征,为提高录入指纹底库中指纹特征与待检测指纹特征的比对成功率提供依据。
在步骤S1053中,若当前录入计数n不位于查重区间,则更新录入计数n=n+1。
若当前录入计数n不位于与查重区间,则在不将待录入指纹特征存储至录入底库的同时,更新录入计数n。其中,可以更新录入计数n=n+1。用以实现在不增加录入底库中的重复指纹特征的前提下,提高用户的体验感。
在实际应用中,若当前录入计数n不位于查重区间,在不将待录入指纹特征存储至录入底库的同时,不向用户发出重新更换手指方向,以采集其他录入状态的指纹特征的提醒。通过此种方式,一方面保证了录入底库中并未增加重复指纹特征,另一方面,也保证了用户录入指纹特征过程中的流畅体验感。
图3示出了本公开实施例提供的又一种指纹底库录入方法的流程图。
在本公开一示例性实施例中,如图3所示,在步骤S102的抽取录入指纹图片的待录入指纹特征之前,指纹底库录入方法还包括步骤S109、步骤S110和步骤S111。下面将分别介绍步骤S109、步骤S110和步骤S111。
在步骤S109中,判断录入指纹图片的图片质量。
在步骤S110中,若图片质量达到第一合格条件,则基于录入指纹图片,执行抽取录入指纹图片的待录入指纹特征步骤。
采集的录入指纹图片的质量,对抽取得到的待录入指纹特征存在影响。因此,在进行步骤S102之前,即在执行抽取录入指纹图片的待录入指纹特征步骤之前,需要判断获取的录入指纹图片的图片质量是否达到第一合格条件。
第一合格条件可以包括录入指纹图片的光照质量是否合格,录入指纹图片的采集过程是否通过活体检测等。第一合格条件可以根据实际情况进行调整,在本公开中,不对第一条件做具体限制。
在步骤S111中,若图片质量未达到第一合格条件,则返回获取录入指纹图片步骤。
在应用中,若图片质量未达到第一合格条件,则返回至步骤S101,即重新获取录入指纹图片。
图4示出了本公开实施例提供的又一种指纹底库录入方法的流程图。
在本公开一示例性实施例中,指纹底库还包括学习底库。
如图4所示,在结束录入底库的录入之后,指纹底库录入方法还包括步骤S112和步骤S113和步骤S114。下面将分别介绍步骤S112、步骤S113和步骤S114。
在步骤S112中,获取比对指纹图片。
比对指纹图片是指在后期用于解锁指纹而获取到的指纹图片。
由于在后期解锁过程中,可能会采集到质量较高的指纹图片,进而得到质量较高的指纹特征。此时,比对指纹图片亦为在学习阶段获取到的指纹图片。
若将采集到的质量较高的指纹特征存储至指纹底库中,将会增加指纹底库中储存有各种录入状态的指纹特征,进而提高录入指纹底库中指纹特征与待检测指纹特征的比对成功率。
在步骤S113中,根据比对指纹图片,获取当前学习指纹特征。
当前学习指纹特征是在学习阶段获取到的指纹特征,为用以通过学习,判断是否能够录入到学习底库中的指纹特征。
当前学习指纹特征是指根据当前获取的比对图片抽取得到的比对图片的指纹特征。
学习底库为用于存储学习指纹特征的指纹底库。其中,已存储至学习底库中的当前学习指纹特征为学习指纹特征。
在步骤S114中,根据当前学习指纹特征更新学习底库。
图5是示出了本公开实施例提供的一种指纹底库录入方法中根据当前学习指纹特征更新学习底库的流程图。
在本公开一示例性实施例中,如图5所示,在步骤S114中,根据当前学习指纹特征更新学习底库包括步骤S1141、步骤S1142和步骤S1143。下面将分别介绍各步骤。
在步骤S1141中,根据当前学习指纹特征与指纹底库中已录入的每个指纹特征的差异度,获取当前学习指纹特征的最小差异度。
分别计算当前学习指纹特征与指纹底库中已录入的每个指纹特征的差异度。其中,指纹底库包括录入底库和学习底库。差异度是指当前学习指纹特征与指纹底库中的每一个指纹特征的差异程度。
差异度可以通过计算当前学习指纹特征的特征向量与指纹底库中已录入的每一个指纹特征的特征向量之间的特征向量距离来表示。
当前学习指纹特征的最小差异度是指当前学习指纹特征与指纹底库中的每个指纹特征的差异度中的最小的差异度。
现以当前学习指纹特征A与指纹底库中所有的指纹特征(指纹特征B、指纹特征C和指纹特征D)为例,进行解释当前学习指纹特征的最小差异度。
通过指纹特征向量计算得到,当前学习指纹特征A与指纹特征B之间的差异度为300;当前学习指纹特征A与指纹特征C之间的差异度为350;当前学习指纹特征A与指纹特征D之间的差异度为400。由于当前学习指纹特征A与指纹特征B之间的差异度为300,是所有差异度中的最小值,表示当前学习指纹特征A与指纹特征B具有最相似的特征,其中,当前学习指纹特征A的最小差异度为300。
在步骤S1142中,判断最小差异度是否位于学习区间。
当前学习指纹特征能够学习进入指纹底库中,则要求当前学习指纹特征既为能够解锁的用户的指纹特征,又为与指纹底库中其他指纹特征具有一定差异度的特征。因此,通过判断当前学习指纹特征是否位于学习区间,来确定当前学习指纹特征能否学习进入指纹底库中,用以增加指纹底库中有效的指纹特征的数量。
在步骤S1143中,若最小差异度位于学习区间,则根据当前学习指纹特征更新学习底库,并将当前学习指纹特征的最小差异度储存至学习底库。
当前学习指纹特征录入指纹底库的学习底库中,可以增加指纹底库中有效的指纹特征的数量,进而可以提高录入指纹底库中指纹特征与待检测指纹特征的比对成功率。
当指纹底库中的指纹特征数量未达到上限值时,则可以直接将当前学习指纹特征录入至学习底库中。
当指纹底库中的指纹特征数量达到上限值时,则可以先将学习底库中的一个学习指纹特征剔除后,再将当前学习指纹特征录入至学习底库中。
当前学习指纹特征录入到学习底库后,将成为当前的学习底库中的学习指纹特征。
将当前学习指纹特征录入到学习底库,还需要将当前学习指纹特征的最小差异度储存至学习底库,并记录与对应的学习指纹特征的相应关系。
学习区间可以根据实际情况进行确定,在本公开中,不对学习区间做具体限定。
图6是示出了本公开实施例提供的一种指纹底库录入方法中根据当前学习指纹特征更新学习底库步骤的流程图。
在本公开一示例性实施例中,如图6所示,在步骤S1143中的根据当前学习指纹特征更新学习底库包括步骤S11431、步骤S11432和步骤S11433。下面将分别介绍步骤S11431、步骤S11432和步骤S11433。
在步骤S11431中,判断指纹底库中指纹特征的数量是否达到上限值。
由于指纹底库可存储的指纹特征的数量存在上限值,因此,在将当前学习指纹特征录入学习底库之前,还要判断指纹底库中存储的指纹特征的数量是否达到了上限值。
指纹底库中可存储的指纹特征的数量的上限值根据实际情况而确定,在本公开中,不对指纹底库中可存储的指纹特征的数量的上限值做具体限定。
在步骤S11432中,若指纹底库中指纹特征的数量未达到上限值,则将当前学习指纹特征录入学习底库。
在步骤S11433中,若指纹底库中指纹特征的数量达到上限值,则删除最似指纹特征,并将当前学习指纹特征录入学习底库。
最似指纹特征为当前学习底库中的最小差异度的最小值对应的学习指纹特征。
在应用过程中,学习底库中除了存储学习指纹特征之外,还存储学习指纹特征的最小差异度。根据各最小差异度得到学习底库中最似指纹特征、最似指纹特征的最小差异度,以及最似指纹特征对应的存储位置。
例如,学习底库中储存有学习指纹特征A、学习指纹特征B和学习指纹特征C。通过指纹特征向量计算得到,学习指纹特征A的最小差异度为350;学习指纹特征B的最小差异度为360;学习指纹特征C的最小差异度为400。由于学习指纹特征A的最小差异度小于当前学习底库中任一指纹特征(学习指纹特征B和学习指纹特征C)的最小差异度,因此,可以确定当前学习底库中最似指纹特征为学习指纹特征A。
在将新的学习指纹特征录入学习底库之前,若学习底库存储的学习指纹特征的数量未达到上限值,则直接将新的学习指纹特征录入学习底库,用以增加指纹底库中有效的指纹特征的数量。
在将新的学习指纹特征录入学习底库之前,若学习底库存储的学习指纹特征的数量达到上限值,则基于实时记录的最似指纹特征对应的存储位置,将当前学习底库中的最似指纹特征删除。并将新的学习指纹特征存储至已删除的最似指纹特征对应的存储位置。
由于新的学习指纹特征已存储至学习底库中,此时,学习底库中的各学习指纹特征的最小差异度将进行更新。
需要说明的是,上文所述的“新的学习指纹特征”为录入学习底库之前的当前学习指纹特征。
图7是示出了本公开实施例提供的一种指纹底库录入方法中根据当前学习指纹特征更新学习底库步骤的流程图。
在本公开一示例性实施例中,如图7所示,在步骤S114中,根据当前学习指纹特征更新学习底库还包括步骤S11434。下面将介绍步骤S11434。
在步骤S11434中,若当前学习指纹特征的最小差异度是根据学习底库中已录入的学习指纹特征比对而得到,则将对应的已录入的学习指纹特征的最小差异度更新为当前学习指纹特征的最小差异度。
在一种实施例中,当前学习指纹特征的最小差异度是与已录入至学习底库中的某一学习指纹特征比较而得到的。为了便于说明,现将已录入至学习底库中的某一学习指纹特征表示为学习指纹特征N。
若已录入至学习底库中的学习指纹特征N的最小差异度大于当前学习指纹特征的最小差异度,由于当前学习指纹特征录入至学习底库后,将影响到该已录入至学习底库中的学习指纹特征N的最小差异度。此时,已录入至学习底库中的学习指纹特征N的最小差异度将更新为与当前学习指纹特征相同的最小差异度。
在一种可能的实施例中,若已录入至学习底库中的学习指纹特征N的最小差异度小于新的学习指纹特征的最小差异度,由于当前学习指纹特征录入至学习底库后,将不会影响该已录入储至学习底库中的学习指纹特征N的最小差异度。此时,已录入至学习底库中的学习指纹特征N的最小差异度仍然为之前该学习指纹特征N的最小差异度。
待当前学习指纹特征录入至学习底库后,学习底库中的学习指纹特征的最小差异度将进行更新。并基于更新后的各学习指纹特征的最小差异度,重新确定当前学习底库中的最似指纹特征,最似指纹特征的最小差异度,以及最似指纹特征的存储位置。
在本公开一示例性实施例中,当前学习底库中的最小差异度的最小值对应有至少两个学习指纹特征时,将录入时间最晚的学习指纹特征作为最似指纹特征。
作为一种变形,当前学习底库中的最小差异度的最小值对应有至少两个学习指纹特征时,还可以将录入时间最早的学习指纹特征作为最似指纹特征。
记录最似指纹特征的存储位置。若指纹底库中指纹特征的数量达到上限值,当需要再次学习进当前学习指纹特征时,可以基于最似指纹特征的存储位置,找到最似指纹特征,删除最似指纹特征,并将当前学习指纹特征录入学习底库。
在本公开一示例性实施例中,根据比对指纹图片,获取当前学习指纹特征之前,指纹底库录入方法还包括判断比对指纹图片的图片质量。
若图片质量达到预设合格条件,则根据比对指纹图片,获取当前学习指纹特征,并根据当前学习指纹特征更新学习底库的步骤。
在一种可能的实施例中,若图片质量未达到预设合格条件,则终止将比对指纹图片学习进学习底库的过程。
采集的比对指纹图片的质量,对抽取得到的当前学习指纹特征存在影响。因此,在进行根据比对图片,获取当前学习指纹特征之前,需要判断获取的比对指纹图片的图片质量是否达到预设合格条件。
由于比对指纹图片是在后期解锁过程中,获取到的指纹图片。由于该指纹图片对应的学习指纹特征有存储至指纹底库中的可能,因此,需要比对指纹图片与比对指纹图片对应的学习指纹特征具有较高的质量。
预设合格条件的作用与第一合格条件的作用相同。预设合格条件可以包括指纹图片的光照质量是否合格,指纹图片的采集过程是否通过活体检测等。但预设合格条件的条件严苛程度可以大于或等于第一合格条件的严苛程度。
预设合格条件还可以根据实际情况进行调整,在本公开中,不对预设条件做具体限制。
在本公开一示例性实施例中,在步骤S1141中,获取当前学习指纹特征的最小差异度之后,指纹底库录入方法还包括:判断当前学习指纹特征的最小差异度是否小于或等于比对阈值,若当前学习指纹特征的最小差异度小于或等于比对阈值,则执行判断最小差异度是否位于学习区间的步骤。
当前学习指纹特征能够学习进入指纹底库中,前提条件即为当前学习指纹特征为能够解锁的用户指纹特征。可以通过比对当前学习指纹特征与该用户的指纹特征进行比较,若当前学习指纹特征与该用户的指纹特征相似,则可以表示当前学习指纹特征为能够解锁的用户指纹特征。
在应用中,可以通过判断当前学习指纹特征的最小差异度是否小于或等于比对阈值,来确定当前学习指纹特征与该用户的指纹特征是否相似。
比对阈值可以根据实际情况进行调整,在本公开中,不对比对阈值的具体值做限定。
在本公开一示例性实施例中步骤S1142中,判断最小差异度是否位于学习区间之前,指纹底库录入方法还包括:判断比对指纹图片的图片质量,若图片质量达到第二合格条件,则执行判断最小差异度是否位于学习区间的步骤。
若要将该比对指纹图片对应的学习指纹特征存储至指纹底库中,需要比对指纹图片与学习指纹特征具有更高的质量。
第二合格条件的作用与第一合格条件或预设合格条件的作用相同。第二合格条件可以包括指纹图片的光照质量是否合格,指纹图片的采集过程是否通过活体检测等。但第二合格条件的条件严苛程度需要大于第一合格条件和预设合格条件的严苛程度。
第二合格条件还可以根据实际情况进行调整,在本公开中,不对第二条件做具体限制。
现以下例对在结束录入底库的录入之后,本公开的指纹底库录入方法进行说明,下面将分别介绍各步骤。
步骤1:获取一张比对指纹图片。
步骤2:判断比对指纹图片的图片质量。
步骤2.1:若比对图片的图片质量未超过预设合格条件,则终止将比对指纹图片对应的指纹特征学习进学习底库。
步骤2.2:若比对指纹图片的图片质量超过预设合格条件,则可以基于比对指纹图片,获取比对指纹图片的指纹特征,即为当前学习指纹特征。
步骤3:获取当前学习指纹特征后,分别计算当前学习指纹特征与指纹底库中已录入的每个指纹特征的差异度。并基于差异度选择差异度中的最小值作为当前学习指纹特征的最小差异度。
为了便于说明,可以将最小差异度记为minScore,当前学习指纹特征的最小差异度记为curr_study_min_score。
步骤4:判断当前学习指纹特征的最小差异度是否小于或等于比对阈值。
步骤4.1:若最小差异度大于比对阈值,则表示此次的指纹特征比对失败。当前学习指纹特征不是能够解锁的用户指纹特征。
步骤:4.2:若最小差异度小于或等于比对阈值,则表示当前学习指纹特征为能够解锁的用户指纹特征。当前学习指纹特征具备可以学习进入学习底库的前提条件。
步骤5:判断当前学习指纹特征对应的比对指纹图片的图片质量是否超过第二合格条件。
步骤5.1:若比对指纹图片的图片质量未超过第二合格条件,则终止将当前学习指纹特征学习进学习底库。
步骤5.2:若比对指纹图片的图片质量超过第二合格条件,则表示比对指纹图片的质量达标,比对指纹图片的当前学习指纹特征具备了可以学习进入学习底库的前提条件。
步骤6:判断当前学习指纹特征的最小差异度curr_study_min_score是否位于学习区间。学习区间记为(study_down_threshold,study_up_threshold)。
步骤6.1:若当前学习指纹特征的最小差异度curr_study_min_score未位于学习区间(study_down_threshold,study_up_threshold),则表示当前学习指纹特征不符合学习进入学习底库的条件。
步骤6.2:若当前学习指纹特征的最小差异度curr_study_min_score位于学习区间(study_down_threshold,study_up_threshold),则表示当前学习指纹特征符合学习进入学习底库的条件。记录当前学习指纹特征的最小差异度curr_study_min_score,和通过与当前学习指纹特征比对而得到最小差异度curr_study_min_score的已存储在指纹底库中的指纹特征的位置curr_study_min_idx。
步骤7:根据当前学习指纹特征更新当前学习底库。
步骤7.1:若与当前学习指纹特征比对而得到最小差异度curr_study_min_score的指纹底库curr_study_min_idx是学习底库中的指纹特征,则更新指纹特征curr_study_min_idx对应的最小差异度minScore=curr_study_min_score。
步骤7.2:若当前指纹底库中的指纹特征的数量未达到上限值,则直接将当前学习指纹特征录入至学习底库中,并记录录入至学习底库中的学习指纹特征的录入计数study_used_count+=1。记录当前学习进学习底库的与study_used_count的位置对应的学习指纹特征的最小差异度minScore=curr_study_min_score。
步骤7.3:若当前指纹底库中的指纹特征的数量达到上限值,需要将上一次记录的最小差异度minScore为最小值对应的学习指纹特征替换为当前学习指纹特征。其中,被替换的学习指纹特征为最似指纹特征,最似指纹特征存储在学习底库中的位置为last_min_idx。更新替换掉的最似指纹特征所对应的最小差异度minScore=curr_study_min_score。
步骤8:将当前学习底库中已学习进的学习指纹按照最小差异度minScore排序出最小差异度minScore中的最小值,并将与最小差异度minScore中的最小值对应的指纹特征更新为最似指纹特征,并记录当前学习底库中的最似指纹特征的存储位置last_min_idx。
在一种实施例中,现令指纹底库中可存储30个指纹特征,其中,指纹底库中的0-19位为存储的录入指纹特征,0-19位的指纹底库为录入底库。指纹底库中的20-29位为存储学习进入指纹底库的学习指纹特征,20-29位的指纹底库为学习底库。
令比对阈值为500,学习区间(study_down_threshold,study_up_threshold)为(0,490)。
如图8所示,当用户成功录入20个录入指纹特征后,指纹底库为学习底库预留了存储学习指纹特征的10个存储位置。待录入底库中的录入指纹特征录入完成后,初始化学习底库中的参数,其中,last_min_idx=20;study_used_count=0。
如图9所示,输入通过比对阈值的比对指纹图片。基于比对指纹图片,获取当前学习指纹特征,并获取当前学习指纹特征的最小差异度minScore。计算得到的最小差异度minScore=380,最小差异度minScore=380位于学习区间(study_down_threshold,study_up_threshold)=(0,490),可以将当前学习指纹特征录入至学习底库中第20位。由于当前指纹底库中的指纹特征的数量未达到上限值,则last_min_idx=20。study_used_count=1。
如图10所示,输入通过比对阈值的比对指纹图片。基于比对指纹图片,获取当前学习指纹特征,并获取当前学习指纹特征的最小差异度minScore。其中,当前学习指纹特征的最小差异度minScore是通过与录入底库中的录入指纹特征比对后而得到。当前学习指纹特征的最小差异度minScore=450。最小差异度minScore=450位于学习区间(study_down_threshold,study_up_threshold)=(0,490),可以将当前学习指纹特征录入至学习底库中第21位。由于当前指纹底库中的指纹特征的数量未达到上限值,则last_min_idx=20。study_used_count=2。
如图11所示,输入通过比对阈值的比对指纹图片。基于比对指纹图片,获取当前学习指纹特征,并获取当前学习指纹特征的最小差异度minScore。其中,当前学习指纹特征的最小差异度minScore是通过与录入底库中的录入指纹特征比对后而得到。当前学习指纹特征的最小差异度minScore=460。最小差异度minScore=460位于学习区间(study_down_threshold,study_up_threshold)=(0,490),可以将当前学习指纹特征录入至学习底库中第22位。由于当前指纹底库中的指纹特征的数量未达到上限值,则last_min_idx=20。study_used_count=3。
如图12所示,输入通过比对阈值的比对指纹图片。基于比对指纹图片,获取当前学习指纹特征,并获取当前学习指纹特征的最小差异度minScore。其中,当前学习指纹特征的最小差异度minScore是通过与学习底库中第21位的学习指纹特征比对后而得到。当前学习指纹特征的最小差异度minScore=390。最小差异度minScore=390位于学习区间(study_down_threshold,study_up_threshold)=(0,490),因此,可以将当前学习指纹特征录入至学习底库中第23位。由于当前指纹底库中的指纹特征的数量未达到上限值,则last_min_idx=20。study_used_count=4。基于当前学习指纹特征的最小差异度minScore=390,更新minScore[21]和minScore[23]。
如图13所示,输入通过比对阈值的比对指纹图片。基于比对指纹图片,获取当前学习指纹特征,并获取当前学习指纹特征的最小差异度minScore。其中,当前学习指纹特征的最小差异度minScore是通过与录入底库中录入指纹特征比对后而得到。当前学习指纹特征的最小差异度minScore=375。最小差异度minScore=375位于学习区间(study_down_threshold,study_up_threshold)=(0,490),可以将当前学习指纹特征录入至学习底库第29位。由于当前指纹底库中的指纹特征的数量达到上限值,则last_min_idx=28。study_used_count=10。此时,学习底库的学习指纹特征已录满。
如图14所示,输入通过比对阈值的比对指纹图片。基于比对指纹图片,获取当前学习指纹特征,并获取当前学习指纹特征的最小差异度minScore。其中,当前学习指纹特征的最小差异度minScore是通过与学习底库中第22位的学习指纹特征比对后而得到。当前学习指纹特征的最小差异度minScore=340。最小差异度minScore=340位于学习区间(study_down_threshold,study_up_threshold)=(0,490),可以将当前学习指纹特征录入至学习底库中。由于当前指纹底库中的指纹特征的数量达到上限值,需要删除掉当前学习底库中的最似指纹特征,并将当前学习指纹特征录入至删除的最似指纹特征所在的学习底库中的存储位置。替换last_min_idx=28底库中的学习指纹特征,并更新minScore[28]和minScore[22]。
如图15所示,输入通过比对阈值的比对指纹图片。基于比对指纹图片,获取当前学习指纹特征,并获取当前学习指纹特征的最小差异度minScore。其中,当前学习指纹特征的最小差异度minScore是通过与录入底库中录入指纹特征比对后而得到。当前学习指纹特征的最小差异度minScore=425。最小差异度minScore=425位于学习区间(study_down_threshold,study_up_threshold)=(0,490),可以将当前学习指纹特征录入至学习底库中。由于当前指纹底库中的指纹特征的数量达到上限值,需要删除掉当前学习底库中的最似指纹特征,并将当前学习指纹特征录入至删除的最似指纹特征所在的学习底库中的存储位置。替换last_min_idx=28底库中的学习指纹特征,并更新minScore[28]。待当前学习指纹特征录入后,更新last_min_idx=22。
在本公开一示例性实施例中,在步骤S1143中,将当前学习指纹特征的最小差异度储存至学习底库之后,指纹底库录入方法还包括:判断指纹底库中指纹特征的数量是否达到上限值;若指纹底库中指纹特征的数量达到上限值,则将学习区间的下限差异度更新为当前学习底库中最似指纹特征的最小差异度。
最似指纹特征的最小差异度小于当前学习底库中任一指纹特征的最小差异度。
当指纹底库中指纹特征的数量达到上限值时,若再次存储新的学习指纹特征时,需要基于实时记录的最似指纹特征对应的存储位置,将当前学习底库中的最似指纹特征删除,并将新的学习指纹特征存储至已删除的最似指纹特征对应的存储位置。
当新的学习指纹特征的最小差异度小于当前学习底库中的最似指纹特征的最小差异度时,若删除掉当前学习底库中的最似指纹特征,并将新的学习指纹特征存储至已删除的最似指纹特征对应的存储位置时,将造成新学习进学习底库中的学习指纹特征的质量低于删除掉的最似指纹特征的质量。
为了解决这一问题,本公开提供的指纹底库录入方法,在指纹底库中指纹特征的数量达到上限值时,实时将学习区间的下限差异度更新为当前学习底库中最似指纹特征的最小差异度。从而保证新的学习指纹特征的质量始终高于删除掉的当前学习底库中的最似指纹特征的质量。
通过本实施例,增加了指纹底库中有效的指纹特征的数量,进而可以提高录入指纹底库中指纹特征与待检测指纹特征的比对成功率。
图16示出了本公开实施例提供的一种指纹底库录入装置的示意图。
基于相同的发明构思,如图16所示,本公开实施例还提供一种指纹底库录入置。
指纹底库包括录入底库,指纹底库录入装置包括:获取模块201、抽取模块202、处理模块203和执行模块204。下面将分别介绍获取模块201、抽取模块202、处理模块203和执行模块204。
获取模块201,用于获取录入指纹图片。
抽取模块202,用于抽取录入指纹图片的待录入指纹特征。
处理模块203,用于判断待录入指纹特征是否与录入底库中任一指纹特征相似;若待录入指纹特征与录入底库中指纹特征均不相似,则将待录入指纹特征储存于录入底库,并更新录入计数n,其中,录入计数n初始值为0;若待录入指纹特征与录入底库中的任一指纹特征相似,则根据查重区间更新录入计数n。
执行模块204,用于判断当前录入计数n是否等于录入阈值;若当前录入计数n等于录入阈值,则结束录入底库的录入;若当前录入计数n小于录入阈值,则返回获取录入指纹图片的步骤。
在本公开一示例性实施例中,处理模块203还用于:若待录入指纹特征与录入底库中的任一指纹特征相似,则判断当前录入计数n是否位于查重区间;若当前录入计数n位于查重区间,则返回获取录入指纹图片的步骤;若当前录入计数n不位于查重区间,则更新录入计数n=n+1。
在本公开一示例性实施例中,获取模块201还用于:判断录入指纹图片的图片质量,若图片质量达到第一合格条件,则基于录入指纹图片,执行抽取录入指纹图片的待录入指纹特征步骤;若图片质量未达到第一合格条件,则返回获取录入指纹图片的步骤。
在本公开一示例性实施例中,指纹底库还包括学习底库;在结束录入底库的录入之后,处理模块203还用于:获取比对指纹图片;根据比对指纹图片,获取当前学习指纹特征,并根据当前学习指纹特征更新学习底库。
在本公开一示例性实施例中,处理模块203还用于:根据当前学习指纹特征与指纹底库中已录入的每个指纹特征的差异度,获取当前学习指纹特征的最小差异度,其中,指纹特征包括录入指纹特征和学习指纹特征;判断最小差异度是否位于学习区间;若最小差异度位于学习区间,则根据当前学习指纹特征更新学习底库,并将当前学习指纹特征的最小差异度储存至学习底库。
在本公开一示例性实施例中,处理模块203还用于:判断指纹底库中指纹特征的数量是否达到上限值;若指纹底库中指纹特征的数量未达到上限值,则将当前学习指纹特征录入学习底库;若指纹底库中指纹特征的数量达到上限值,则删除最似指纹特征,并将当前学习指纹特征录入学习底库,其中,最似指纹特征为当前学习底库中的最小差异度的最小值对应的学习指纹特征。
在本公开一示例性实施例中,获取模块201还用于:判断学习指纹图片的图片质量,若图片质量达到预设合格条件,则基于学习指纹图片,执行抽取比对指纹图片的学习指纹特征的步骤。
在本公开一示例性实施例中,处理模块203还用于:若当前学习指纹特征的最小差异度是根据学习底库中已录入的学习指纹特征比对而得到,则将对应的已录入的学习指纹特征的最小差异度更新为当前学习指纹特征的最小差异度。
在本公开一示例性实施例中,当前学习底库中的最小差异度的最小值对应有至少两个学习指纹特征时,将录入时间最晚的学习指纹特征作为最似指纹特征。
在本公开一示例性实施例中,处理模块203还用于:判断当前学习指纹特征的最小差异度是否小于或等于比对阈值,若当前学习指纹特征的最小差异度小于或等于比对阈值,则执行判断所述最小差异度是否位于学习区间的步骤。
在本公开一示例性实施例中,处理模块203还用于:判断比对指纹图片的图片质量,若图片质量达到第二合格条件,则执行判断最小差异度是否位于学习区间的步骤。
在本公开一示例性实施例中,处理模块203还用于:判断指纹底库中指纹特征的数量是否达到上限值;若指纹底库中指纹特征的数量达到上限值,则将学习区间的下限差异度更新为当前学习底库中最似指纹特征的最小差异度,其中,最似指纹特征的最小差异度小于当前学习底库中任一指纹特征的最小差异度。
图17示出了本公开的一个实施方式提供的一种电子设备30。如图17所示,本公开的一个实施方式提供的一种电子设备30,其中,该电子设备30包括存储器310、处理器320、输入/输出(Input/Output,I/O)接口330。其中,存储器310,用于存储指令。处理器320,用于调用存储器310存储的指令执行本公开指纹底库录入的方法。其中,处理器320分别与存储器310、I/O接口330连接,例如可通过总线系统和/或其他形式的连接机构(未示出)进行连接。存储器310可用于存储程序和数据,包括本公开实施例中涉及的指纹底库录入的程序,处理器320通过运行存储在存储器310的程序从而执行电子设备30的各种功能应用以及数据处理。
本公开实施例中处理器320可以采用数字信号处理器(Digital SignalProcessing,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(Programmable Logic Array,PLA)中的至少一种硬件形式来实现,所述处理器320可以是中央处理单元(Central Processing Unit,CPU)或者具有数据处理能力和/或指令执行能力的其他形式的处理单元中的一种或几种的组合。
本公开实施例中的存储器310可以包括一个或多个计算机程序产品,所述计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。所述易失性存储器例如可以包括随机存取存储器(Random Access Memory,RAM)和/或高速缓冲存储器(cache)等。所述非易失性存储器例如可以包括只读存储器(Read-OnlyMemory,ROM)、快闪存储器(Flash Memory)、硬盘(Hard Disk Drive,HDD)或固态硬盘(Solid-State Drive,SSD)等。
本公开实施例中,I/O接口330可用于接收输入的指令(例如数字或字符信息,以及产生与电子设备30的用户设置以及功能控制有关的键信号输入等),也可向外部输出各种信息(例如,图像或声音等)。本公开实施例中I/O接口330可包括物理键盘、功能按键(比如音量控制按键、开关按键等)、鼠标、操作杆、轨迹球、麦克风、扬声器、和触控面板等中的一个或多个。
在一些实施方式中,本公开提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机可执行指令,计算机可执行指令在由处理器执行时,执行上文所述的任何方法。
尽管在附图中以特定的顺序描述操作,但是不应将其理解为要求按照所示的特定顺序或是串行顺序来执行这些操作,或是要求执行全部所示的操作以得到期望的结果。在特定环境中,多任务和并行处理可能是有利的。
本公开的方法和装置能够利用标准编程技术来完成,利用基于规则的逻辑或者其他逻辑来实现各种方法步骤。还应当注意的是,此处以及权利要求书中使用的词语“装置”和“模块”意在包括使用一行或者多行软件代码的实现和/或硬件实现和/或用于接收输入的设备。
此处描述的任何步骤、操作或程序可以使用单独的或与其他设备组合的一个或多个硬件或软件模块来执行或实现。在一个实施方式中,软件模块使用包括包含计算机程序代码的计算机可读介质的计算机程序产品实现,其能够由计算机处理器执行用于执行任何或全部的所描述的步骤、操作或程序。
出于示例和描述的目的,已经给出了本公开实施的前述说明。前述说明并非是穷举性的也并非要将本公开限制到所公开的确切形式,根据上述教导还可能存在各种变形和修改,或者是可能从本公开的实践中得到各种变形和修改。选择和描述这些实施例是为了说明本公开的原理及其实际应用,以使得本领域的技术人员能够以适合于构思的特定用途来以各种实施方式和各种修改而利用本公开。