具体实施方式
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
需要指出的是,本申请中所有获取信号、信息或数据的动作都是在遵照所在地国家相应的数据保护法规政策的前提下,并获得由相应装置所有者给予授权的情况下进行的。
近年来,生物识别技术已广泛地应用到各种终端设备或电子装置上。生物特征识别技术包括但不限于指纹识别、掌纹识别、静脉识别、虹膜识别、人脸识别、活体识别、防伪识别等技术。其中,指纹识别通常包括光学指纹识别、电容式指纹识别和超声波指纹识别。随着全面屏技术的兴起,可以将指纹识别模组设置在显示屏下方的局部区域或者全部区域,从而形成屏下(Under-display)光学指纹识别;或者,也可以将光学指纹识别模组的部分或者全部集成至电子设备的显示屏内部,从而形成屏内(In-display)光学指纹识别。上述显示屏可以是有机发光二极管(Organic Light Emitting Diode,OLED)显示屏或液晶显示屏(LiquidCrystal Display,LCD)等。指纹识别方法通常包括指纹图像的获取、预处理、特征提取、特征匹配等步骤。上述步骤中的部分或者全部可以通过传统计算机视觉(Computer Vision,CV)算法实现,也可以通过基于人工智能(Artificial Intelligence,AI)的深度学***板电脑、游戏设备等便携式或移动终端,以及智能门锁、汽车、银行自动柜员机等其他电子设备,以用于指纹解锁、指纹支付、***、身份认证等。
在指纹识别场景中,通常需要用户预先进行指纹图像的录入,以生成指纹模板。在需要识别用户身份时,基于该指纹模板,对待识别指纹图像进行指纹识别。现有技术中,通常需要用户采用按压指纹采集区域的方式进行指纹图像的录入,进而得到指纹模板。然而,用户每执行一次按压操作仅能够录入一张指纹图像,故指纹录入效率较低。此外,由于手指按压区域具有随机性,故录入的指纹的有效面积较小,因此基于该指纹模板进行指纹识别的准确性较低。本方案提供了一种指纹滑动录入方法,可提高指纹录入效率。基于该方法所生成的指纹模板进行指纹识别,提高指纹识别的准确性。
请参考图1,其示出了根据本申请的指纹滑动录入方法的一个实施例的流程100。本申请的指纹滑动录入方法可应用于各种具有显示屏的电子设备。例如,可包括但不限于智能手机、平板电脑、电子书阅读器、MP3(动态影像专家压缩标准音频层面3,MovingPicture Experts Group Audio Layer III)播放器、MP4(动态影像专家压缩标准音频层面4,Moving Picture Experts Group Audio Layer IV)播放器、膝上型便携计算机、车载电脑、掌上电脑、台式计算机、机顶盒、智能电视机、可穿戴设备等。该指纹滑动录入方法的执行主体可以是上述电子设备中的处理器,例如图5中的处理装置501。该指纹滑动录入方法,包括以下步骤:
步骤101,获取用户在指纹采集区域滑动录入的第一指纹图像序列。
在本实施例中,上述电子设备可设置有指纹采集区域。指纹采集区域可设置有传感器。上述传感器可包括以下至少一项:光学传感器、电容传感器。传感器可以设置在电子设备的屏幕下方、或设置在电子设备的侧面、正面或背面。当用户在指纹采集区域滑动时,传感器能够以设定的帧率对指纹采集区域进行图像采集,以得到连续的多帧指纹图像。
在本实施例中,用户在指纹采集区域滑动录入的第一指纹图像序列,可以包括当用户在指纹采集区域滑动时(以手指接触到指纹采集区域开始至手指离开指纹采集区域为止),由上述传感器采集且被上述执行主体存入存储器(例如,缓存)的多帧指纹图像。第一指纹图像序列中的指纹图像可以按照采集时间由先到后的顺序排列。实践中,在用户进行指纹录入的过程中,可在指纹采集区域滑动多次。用户每在指纹采集区域滑动一次,上述执行主体可获取到一个指纹图像序列。上述第一指纹图像序列可以是用户进行指纹录入的过程中所录入的首个指纹图像序列。
在一些场景中,传感器每采集到一帧指纹图像,上述执行主体可将该帧指纹图像进行存储。在这种情况下,上述第一指纹图像序列中的指纹图像可以是上述传感器采集的连续的多帧指纹图像。
在另一些场景中,由于传感器采集的连续的多帧指纹图像中,可能存在重叠率较高甚至相同的指纹图像,因此,上述执行主体可对传感器采集的多帧指纹图像过滤后再进行存储,以降低无效的数据量。在这种情况下,上述第一指纹图像序列中的指纹图像,可以是上述传感器采集的连续的多帧指纹图像中的一部分。
步骤102,基于第一指纹图像序列中的指纹图像,生成包含至少一张指纹模板的指纹模板集。
在本实施例中,上述执行主体可以通过对第一指纹图像序列中的指纹图像进行拼接的方式,生成至少一张指纹模板,从而汇总得到指纹模板集。在进行拼接时,可以按照指纹图像在第一指纹图像序列中的次序,依次进行拼接。在指纹模板集中包括至少两张指纹模板时,各指纹模板之间可不存在重叠区域。
在本实施例的一些可选的实现方式中,可按照如下步骤进行拼接:
第一步,将第一指纹图像序列中的首帧指纹图像作为指纹模板,存入指纹模板集。在此步骤中,可首先创建空的指纹模板集,而后,将第一指纹图像序列中的首帧指纹图像作为指纹模板存入该指纹模板集。
第二步,依次将第一指纹图像序列中除首帧指纹图像外的其余每帧指纹图像作为第一待处理指纹图像,执行如下步骤:确定指纹模板集中是否存在与第一待处理指纹图像存在重叠区域的第一待拼接指纹模板;若存在,则将第一待处理指纹图像与第一待拼接指纹模板进行拼接,以更新第一待拼接指纹模板;若不存在,则将第一待处理指纹图像作为指纹模板,存入指纹模板集。
作为示例,第一指纹图像序列中包括指纹图像A、B、C、D和E。
首先,将首帧指纹图像A作为指纹模板,得到指纹模板集为{A}。
接着,将B作为第一待处理指纹图像,确定指纹模板集{A}中的指纹模板A是否与B存在重叠区域。若存在重叠区域,可将A与B进行拼接,将指纹模板集中的A更新为拼接后所得到的图像(可记为A+B)。此时的指纹模板集为{A+B}。若不存在重叠区域,可将B作为指纹模板存储至指纹模板集,此时的指纹模板集为{A,B}。
接着,将C作为第一待处理指纹图像,确定指纹模板集(例如,上述{A+B})中的指纹模板(即A+B)是否与C存在重叠区域。若存在重叠区域,可将C与A+B进行拼接,将指纹模板集中的A+B更新为拼接后所得到的图像(可记为A+B+C)。此时的指纹模板集为{A+B+C}。若不存在重叠区域,可将C作为指纹模板存储至指纹模板集,此时的指纹模板集为{A+B,C}。
接着,可依次将D、E作为第一待处理指纹图像,继续执行上述过程,此处不再一一赘述。在将第一指纹图像序列中的各个指纹图像处理完成后,即可得到包含至少一张指纹模板的指纹模板集。
由于用户在指纹采集区域执行一次滑动操作后,即可录入多帧指纹图像,因此指纹录入的效率更高。此外,由于滑动录入的指纹图像相较于多次按压录入的指纹图像的连续性更强,因此,指纹模板集中的指纹模板通常可具有更大的有效面积,可指纹进行更好的覆盖,从而得到更优质的指纹模板,基于该指纹模板进行指纹识别,能够提高指纹识别的准确性。
在本实施例的一些可选的实现方式中,在确定指纹模板集中是否存在与第一待处理指纹图像存在重叠区域的第一待拼接指纹模板时,可以首先将指纹模板集中各指纹模板的关键点与第一待处理指纹图像的关键点进行匹配,以确定匹配的关键点的数量。上述关键点可以是角点等。而后,可基于该数量,确定指纹模板集中是否存在与第一待处理指纹图像存在重叠区域的第一待拼接指纹模板。例如,可将匹配的关键点的数量大于一定阈值的待拼接指纹模板作为第一待拼接指纹模板。
其中,在确定第一待处理指纹图像与某一待拼接指纹模板中相匹配的关键点的数量时,可以首先枚举多个旋转矩阵。而后,分别使用各旋转矩阵,对第一待处理指纹图像与该待拼接指纹模板进行对齐操作(align)。即,分别利用每个旋转矩阵矩阵,对第一待处理指纹图像或者待拼接指纹模板作图像仿射变换(warp变换)。之后,将仿射变换后的每组第一待处理指纹图像和待拼接指纹模板中距离小于设定阈值的关键点作为匹配的关键点,筛选使得匹配的关键点的数量最多的目标旋转矩阵M。使用此目标旋转矩阵M所确定出的匹配的关键点的数量,即为最终获取的数量。
在本实施例的一些可选的实现方式中,在基于上述数量,确定指纹模板集中是否存在与第一待处理指纹图像存在重叠区域的第一待拼接指纹模板时,上述执行主体还可以同时结合特征匹配分数。具体地,可以首先确定上述指纹模板集中各指纹模板与上述第一待处理指纹图像的特征匹配分数。例如,可以将上述对齐操作后的图输入至预先训练的识别模型,得到特征匹配分数。而后,可以基于上述数量和上述特征匹配分数,确定上述指纹模板集中是否存在与上述待处理指纹图像存在重叠区域的待拼接指纹模板。例如,可将数量大于某一设定阈值且匹配分数大于另一设定阈值的待拼接指纹模板作为第一待拼接指纹模板。
进一步地,在上述第二步中,在将第一待处理指纹图像与第一待拼接指纹模板进行拼接时,可首先将相匹配的关键点进行对齐,使得两张图像中的重叠区域能够拼接。其中,对于重叠区域中的每个像素点,可将该像素点在的第一待处理指纹图像与第一待拼接指纹模板中的像素值取平均,得到该像素点的像素值。
通过关键点匹配的方式,可快速、准确地确定出两图像是否存在重叠区域。
步骤103,迭代执行如下更新步骤,直至满足停止录入条件:获取用户在指纹采集区域滑动录入的第二指纹图像序列中的指纹图像;基于第二指纹图像序列,更新指纹模板集。
在本实施例中,在用户进行首次滑动录入后,还可以继续进行一次或多次滑动录入,以录入更多区域的指纹信息。每次滑动录入时,手指的滑动方向可以不同,以便于录入更全面的指纹信息。实践中,手指的滑动方向可包括但不限于:从左到右、从右到左、从上到下、从下到上。在用户进行首次滑动录入后,用户每继续进行一次滑动录入,上述执行主体可以获取一个第二指纹图像序列,并可以基于该第二指纹图像序列,对当前的指纹模板集进行一次更新。
在本实施例中,在基于第二指纹图像序列对当前的指纹模板集进行更新时,可以通过对第二指纹图像序列中的指纹图像与当前的指纹模板集中的指纹模板进行拼接处理,来更新指纹模板集中的指纹模板。作为示例,在用户首次进行指纹滑动录入后,可得到第一指纹图像序列P1。基于该第一指纹图像序列P1中的指纹图像,可拼接得到包含至少一张指纹模板的指纹模板集S1。在用户第二次进行指纹滑动录入后,可得到第二指纹图像序列P2。将该第二指纹图像序列P2中的指纹图像与指纹模板集S1中的指纹模板进行拼接后,可得到更新后的指纹模板集S2。在用户第三次进行指纹滑动录入后,可得到另一个第二指纹图像序列P3。将该第二指纹图像序列P3中的指纹图像与指纹模板集S2中的指纹模板进行拼接后,可得到更新后的指纹模板集S3。依次类推,直至满足停止录入条件。在满足停止录入条件时,上述执行主体可以停止迭代,并将最后一次更新后的指纹模板集中的各指纹模板进行存储。进一步地,在进行指纹识别时,可以将待识别图像与所存储的各指纹模板进行匹配,以确定指纹识别是否通过。
由此,可以在用户沿多个方向滑动时,录入多个指纹图像序列,基于逐个录入的指纹图像序列,能够对指纹模板进行不断扩充和完善,使得最终得到的指纹模板能够覆盖更丰富的指纹区域,以提高指纹识别的准确性。
在本实施例的一些可选的实现方式中,在每次迭代过程中,上述执行主体可依次将该次迭代过程所获取的第二指纹图像序列中的每帧指纹图像作为第二待处理指纹图像,确定指纹模板集中是否存在与第二待处理指纹图像存在重叠区域的第二待拼接指纹模板。若存在,则将第二待处理指纹图像与第二待拼接指纹模板进行拼接,以更新第二待拼接指纹模板;若不存在,则将第二待处理指纹图像作为指纹模板,存入指纹模板集。需要说明的是,第二待拼接指纹模板的确定方式与上述第一待拼接指纹模板的确定方式相似,此处不再赘述。
作为示例,用户在指纹采集区域进行首次滑动后,可得到第一指纹图像序列,依次包括指纹图像A、B、C、D和E。基于步骤102所描述的方式对第一指纹图像序列中的图像进行拼接处理后,可得到指纹模板集{A+B+C+D+E},其中,A+B+C+D+E为对指纹图像A、B、C、D、E拼接后所得到的一张指纹模板。
用户在指纹采集区域进行第二次滑动后,可得到第二指纹图像序列,例如,依次包括指纹图像F、G、H。首先,可将F作为第二待处理指纹图像,确定指纹模板集{A+B+C+D+E}中的指纹模板A+B+C+D+E是否与F存在重叠区域。若存在重叠区域,可将A+B+C+D+E与F进行拼接,将指纹模板集中的A+B+C+D+E更新为拼接后所得到的图像(可记为A+B+C+D+E+F)。此时的指纹模板集为{A+B+C+D+E+F}。若不存在重叠区域,可将F作为指纹模板存储至指纹模板集,此时的指纹模板集为{A+B+C+D+E,F}。而后,可依次将G和H作为第二待处理指纹图像,继续执行此过程,此处不再一一赘述。需要说明的是,此处的图像拼接操作可参见上述步骤102中的相关描述,此处不再赘述。
在本实施例的一些可选的实现方式中,在迭代执行步骤103时,可首先基于指纹模板集中的指纹模板的生成过程,确定用户手指的目标滑动方向,并显示用于提示目标滑动方向的提示信息。而后,获取用户基于上述提示信息在指纹采集区域滑动录入的第二指纹图像序列。之后,基于第二指纹图像序列,更新指纹模板集。
其中,在基于指纹模板集中的指纹模板的生成过程确定用户手指的目标滑动方向时,可首先基于指纹模板集中的指纹模板的生成过程,确定用户手指的已滑动方向。而后,基于已滑动方向,确定用户手指的目标滑动方向。
作为示例,在确定手指的已滑动方向时,上述执行主体可以首先获取上述指纹模板集中的指纹模板的生成过程中的增长区域。而后,基于上述增长区域,确定指纹模板的增长方向。最后,基于上述增长方向,确定上述用户手指的已滑动方向。
作为又一示例,上述执行主体可在用户首次滑动录入前,以提示信息或展示图案的方式,提示用户将手指中心接触指纹采集区域中心后进行滑动。上述提示信息可以是文字提示和/或图案展示。由此,第一指纹图像序列中的首帧指纹图像的中心点即可对应用户手指的中心点。上述执行主体首先可以将首帧指纹图像的中心点作为指纹模板的原点,建立直角坐标系。而后,在将第一指纹图像序列中的其余各帧指纹图像依次进行拼接处理后,可得到指纹模板中各帧指纹图像的中心点到上述原点的矢量距离。之后,可以基于拼接过程中矢量距离的变化情况,或者,基于第一指纹图像序列中最后一帧指纹图像中心点到上述原点的矢量距离,确定用户手指的已滑动方向。从而,基于已滑动方向,可确定出未滑动方向,并可以从未滑动方向中随机选取或者按照预设的优先级选取目标滑动方向。
作为再一示例,在确定用户手指的已滑动方向后,上述执行主体还可以结合指纹模板的面积和已滑动方向,确定用户手指的已录入指纹区域。例如,若已滑动方向为从右向左,指纹模板在此次滑动过程中的增大的面积位于预设面积范围内,则可以认为用户手指的已录入指纹区域为用户手指的左侧全部区域。反之,则认为用户手指的已录入指纹区域为用户手指的左侧部分区域。该预设面积范围可通过对大量用户手指的左侧区域面积进行统计后确定。在确定已录入指纹区域后,上述执行主体可以将除已录入指纹区域外的其余区域作为未录入指纹区域,随机选取或者按照预设的优先级选取任一未录入指纹区域,基于未录入指纹区域与上述原点的位置关系,确定用户手指的目标滑动方向。由此,在沿某一方向滑动录入后,若指纹模板的增大面积不满足要求,则可以继续提示用户按照该方向进行滑动,以提高指纹模板的覆盖范围。
在本实施例的一些可选的实现方式中,停止录入条件可包括但不限于以下至少一项:录入(即存入存储器)的指纹图像的数量大于或等于第一阈值、录入之前采集(此处指传感器采集)的指纹图像的数量大于或等于第二阈值、上述指纹模板集中指纹模板的总面积大于或等于第三阈值、连续录入的指纹图像之间的重叠率大于或等于第四阈值、录入的指纹图像异常(例如,存在异物遮挡);其中,录入的指纹图像的数量小于或等于采集的指纹图像的数量。
本申请的上述实施例提供的方法,通过首先基于用户在指纹采集区域滑动录入的第一指纹图像序列,生成包含至少一张指纹模板的指纹模板集,之后迭代执行基于用户在指纹采集区域滑动录入的第二指纹图像序列更新指纹模板集的步骤,直至满足停止录入条件。一方面,由于用户采用滑动录入的方式进行指纹录入,每次可录入的多帧指纹图像,因此可减少用户执行指纹录入操作的次数,提高了指纹录入效率。另一方面,滑动录入方式相较于按压录入方式,可使所录入的指纹图像之间具有更好的连续性,增大了所录入的指纹的有效区域的面积,基于所生成的指纹模板进行指纹识别,可提高指纹识别的准确性。
进一步参考图2,其示出了指纹滑动录入方法的又一个实施例的流程200。该指纹滑动录入方法的流程200,包括以下步骤:
步骤201,获取用户在指纹采集区域滑动录入的第一指纹图像序列。
步骤202,基于第一指纹图像序列中的指纹图像,生成包含至少一张指纹模板的指纹模板集。
步骤203,迭代执行如下更新步骤,直至满足停止录入条件:获取用户在指纹采集区域滑动录入的第二指纹图像序列;基于第二指纹图像序列中的指纹图像,更新指纹模板集。
本实施例中的步骤201至步骤203可参见上述实施例中的步骤101至步骤103,此处不再赘述。
步骤204,获取用户在指纹采集区域按压录入的第一待识别指纹图像。
在本实施例中,在用户进行电子设备解锁时或者进行支付等操作时,可以采用在指纹采集区域进行按压的方式,录入第一待识别指纹图像。
步骤205,确定第一待识别指纹图像与最后一次更新后的指纹模板集中的各指纹模板的匹配度和/或重叠区域面积。
在本实施例中,上述电子设备中可以存储预先训练的匹配度检测模型。该匹配度检测模型可以基于机器学习方法(例如,有监督学习方法)预先训练得到。匹配度检测模型可用于提取图像中的指纹特征,并进行指纹特征的匹配。指纹滑动录入方法的执行主体可以将第一待识别指纹图像分别与最后一次更新后的指纹模板集中的每个指纹模板组合为一个图像对,将该图像对输入至匹配度检测模型,得到第一待识别指纹图像与该指纹模板的匹配度。此外,上述执行主体可以确定第一待识别指纹图像与各指纹模板的重叠区域面积。其中,重叠区域可参见上述实施例中所描述的方式确定,此处不再赘述。
步骤206,基于所确定的匹配度和/或重叠区域面积,从最后一次更新后的指纹模板集中,选取第一目标指纹模板,将第一待识别指纹图像与第一目标指纹模板进行拼接,以更新第一目标指纹模板。
在本实施例中,若最后一次更新后的指纹模板中,存在某一指纹模板与第一待识别指纹图像的匹配度大于某一设定阈值和/或重叠面积大于另一设定阈值,则可以将该指纹模板作为第一目标指纹模板,将第一待识别指纹图像与第一目标指纹模板进行拼接,以更新第一目标指纹模板。其中,图像拼接的操作可以参见上述实施例中的描述,此处不再赘述。
在一些可选的实现方式中,在确定出第一目标指纹模板后,还可以进一步确定第一待识别指纹图像与该第一目标指纹模板图像的非重叠区域面积。若非重叠区域面积大于另一设定阈值,可将第一待识别指纹图像与第一目标指纹模板进行拼接,从而使得第一目标指纹模板进行有效扩充。
从图2中可以看出,与图1对应的实施例相比,本实施例中的指纹滑动录入方法的流程200涉及了对在指纹识别过程中,基于用户按压录入的第一待识别指纹图像对已存储的指纹模板进行更新的步骤。由此,本实施例描述的方案可以进一步增大指纹模板的面积,使得指纹识别的准确率得到进一步提升。
进一步参考图3,其示出了指纹滑动录入方法的又一个实施例的流程300。该指纹滑动录入方法的流程300,包括以下步骤:
步骤301,获取用户在指纹采集区域滑动录入的第一指纹图像序列。
步骤302,基于第一指纹图像序列中的指纹图像,生成包含至少一张指纹模板的指纹模板集。
步骤303,迭代执行如下更新步骤,直至满足停止录入条件:获取用户在指纹采集区域滑动录入的第二指纹图像序列中的指纹图像;基于第二指纹图像序列,更新指纹模板集。
本实施例中的步骤301至步骤303可参见上述实施例中的步骤101至步骤103,此处不再赘述。
步骤304,获取用户在指纹采集区域滑动录入的待识别指纹图像序列。
在本实施例中,在用户进行电子设备解锁时或者进行支付操作时,可以采用在指纹采集区域进行滑动的方式,录入待识别指纹图像序列。待识别指纹图像序列与上述实施例中的第一指纹图像序列的录入方式基本相同,此处不再赘述。
步骤305,对待识别指纹图像序列中的指纹图像进行拼接,生成第二待识别指纹图像。
在本实施例中,指纹滑动录入方法的执行主体可以对待识别指纹图像序列中的指纹图像进行拼接,生成第二待识别指纹图像。此处的图像拼接操作可参见上述实施例中对第一指纹图像序列中的指纹图像进行拼接的操作,此处不作赘述。
步骤306,确定第二待识别指纹图像与最后一次更新后的指纹模板集中的各指纹模板的匹配度和/或重叠区域面积。
在本实施例中,上述电子设备中可以存储预先训练的匹配度检测模型。该匹配度检测模型可以基于机器学习方法(例如,有监督学习方法)预先训练得到。上述执行主体可以将第二待识别指纹图像分别与最后一次更新后的指纹模板集中的每个指纹模板组合为一个图像对,将该图像对输入至匹配度检测模型,得到第二待识别指纹图像与该指纹模板的匹配度。此外,上述电子设备可以确定第二待识别指纹图像与最后一次更新后的指纹模板集中的各指纹模板的重叠区域面积。其中,重叠区域可参见上述实施例中所描述的方式确定,此处不再赘述。
步骤307,基于所确定的匹配度和/或重叠区域面积,从最后一次更新后的指纹模板中,选取第二目标指纹模板,将第二待识别指纹图像与第二目标指纹模板进行拼接,以更新第二目标指纹模板。
在本实施例中,若最后一次更新后的指纹模板集中,存在某一指纹模板与第二待识别指纹图像的匹配度大于某一设定阈值和/或重叠面积大于另一设定阈值,则可以将该指纹模板作为第二目标指纹模板,将第二待识别指纹图像与第二目标指纹模板进行拼接,以更新第二目标指纹模板。其中,图像拼接的操作可以参见上述实施例中的描述,此处不再赘述。
在一些可选的实现方式中,在确定出第二目标指纹模板后,还可以进一步确定第二待识别指纹图像与该第二目标指纹模板图像的非重叠区域面积。若非重叠区域面积大于另一设定阈值,可将第二待识别指纹图像与第二目标指纹模板进行拼接,从而使得第二目标指纹模板进行有效扩充。
从图3中可以看出,与图1对应的实施例相比,本实施例中的指纹滑动录入方法的流程300涉及了对在指纹识别过程中,基于用户滑动录入的待识别指纹图像序列对已存储的指纹模板进行更新的步骤。由此,本实施例描述的方案可以进一步增大指纹模板的面积,使得指纹识别的准确率得到提升。此外,对滑动录入的待识别指纹图像序列中的指纹图像进行拼接后,可得到面积更大的第二待识别指纹图像,使用该第二待识别指纹图像进行指纹识别,可进一步提高指纹识别结果的准确率。
进一步参考图4,作为对上述各图所示方法的实现,本申请提供了一种指纹滑动录入装置的一个实施例,该装置实施例与图1所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。
如图4所示,本实施例的指纹滑动录入装置400包括:获取单元401,用于获取用户在指纹采集区域滑动录入的第一指纹图像序列;生成单元402,用于基于上述第一指纹图像序列中的指纹图像,生成包含至少一张指纹模板的指纹模板集;迭代更新单元403,用于迭代执行如下更新步骤,直至满足停止录入条件:获取用户在上述指纹采集区域滑动录入的第二指纹图像序列;基于上述第二指纹图像序列中的指纹图像,更新上述指纹模板集。
在本实施例的一些可选的实现方式中,在获取用户在指纹采集区域滑动录入的第二指纹图像序列之前,上述更新步骤还包括:基于上述指纹模板集中的指纹模板的生成过程,确定上述用户手指的目标滑动方向,并显示用于提示上述目标滑动方向的提示信息;上述获取用户在指纹采集区域滑动录入的第二指纹图像序列,包括:获取用户基于上述提示信息在指纹采集区域滑动录入的第二指纹图像序列。
在本实施例的一些可选的实现方式中,上述基于上述指纹模板,确定上述用户手指的目标滑动方向,包括:基于上述指纹模板集中的指纹模板的生成过程,确定上述用户手指的已滑动方向;基于上述已滑动方向,确定上述用户手指的目标滑动方向。
在本实施例的一些可选的实现方式中,上述基于上述指纹模板集中的指纹模板的生成过程,确定上述用户手指的已滑动方向,包括:获取上述指纹模板集中的指纹模板的生成过程中的增长区域;基于上述增长区域,确定指纹模板的增长方向;基于上述增长方向,确定上述用户手指的已滑动方向。
在本实施例的一些可选的实现方式中,上述装置还包括:第一更新单元,用于获取用户在指纹采集区域按压录入的第一待识别指纹图像;确定上述第一待识别指纹图像与最后一次更新后的指纹图像集中的各指纹模板的匹配度和/或重叠区域面积;基于所确定的匹配度和/或重叠区域面积,从最后一次更新后的指纹图像集中,选取第一目标指纹模板,将上述第一待识别指纹图像与上述第一目标指纹模板进行拼接,以更新上述第一目标指纹模板。
在本实施例的一些可选的实现方式中,上述装置还包括:第二更新单元,用于获取用户在指纹采集区域滑动录入的待识别指纹图像序列;对上述待识别指纹图像序列中的指纹图像进行拼接,生成第二待识别指纹图像;确定上述第二待识别指纹图像与最后一次更新后的指纹图像集中的各指纹模板的匹配度和/或重叠区域面积;基于所确定的匹配度和/或重叠区域面积,从最后一次更新后的指纹图像集中,选取第二目标指纹模板,将上述第二待识别指纹图像与上述第二目标指纹模板进行拼接,以更新上述第二目标指纹模板。
在本实施例的一些可选的实现方式中,上述生成单元402,进一步用于将上述第一指纹图像序列中的首帧指纹图像作为指纹模板,存入指纹模板集;依次将上述第一指纹图像序列中除首帧指纹图像外的其余每帧指纹图像作为第一待处理指纹图像,执行如下步骤:确定上述指纹模板集中是否存在与上述第一待处理指纹图像存在重叠区域的第一待拼接指纹模板;若存在,则将上述第一待处理指纹图像与上述第一待拼接指纹模板进行拼接,以更新上述第一待拼接指纹模板;若不存在,则将第一待处理指纹图像作为指纹模板,存入上述指纹模板集。
在本实施例的一些可选的实现方式中,上述基于上述第二指纹图像序列,更新上述指纹模板集,包括:依次将上述第二指纹图像序列中的每帧指纹图像作为第二待处理指纹图像,执行如下步骤:确定上述指纹模板集中是否存在与上述第二待处理指纹图像存在重叠区域的第二待拼接指纹模板;若存在,则将上述第二待处理指纹图像与上述第二待拼接指纹模板进行拼接,以更新上述第二待拼接指纹模板;若不存在,则将第二待处理指纹图像作为指纹模板,存入上述指纹模板集。
在本实施例的一些可选的实现方式中,确定上述指纹模板集中是否存在与待处理指纹图像存在重叠区域的待拼接指纹模板,包括:将上述指纹模板集中各指纹模板的关键点与待处理指纹图像的关键点进行匹配,以确定匹配的关键点的数量;基于上述数量,确定上述指纹模板集中是否存在与上述待处理指纹图像存在重叠区域的待拼接指纹模板;其中,上述待处理指纹图像包括上述第一待处理指纹图像或上述第二待处理指纹图像,上述待拼接指纹模板包括上述第一待拼接指纹模板或上述第二待拼接指纹模板。
在本实施例的一些可选的实现方式中,上述基于上述数量,确定上述指纹模板集中是否存在与上述待处理指纹图像存在重叠区域的待拼接指纹模板,包括:确定上述指纹模板集中各指纹模板与上述待处理指纹图像的特征匹配分数;基于上述数量和上述特征匹配分数,确定上述指纹模板集中是否存在与上述待处理指纹图像存在重叠区域的待拼接指纹模板。
在本实施例的一些可选的实现方式中,上述停止录入条件包括以下至少一项:录入的指纹图像的数量大于或等于第一阈值、录入之前采集的指纹图像的数量大于或等于第二阈值、上述指纹模板集中指纹模板的总面积大于或等于第三阈值、连续录入的指纹图像之间的重叠率大于或等于第四阈值、录入的指纹图像异常;其中,录入的指纹图像的数量小于或等于采集的指纹图像的数量。本申请的上述实施例提供的装置,通过首先基于用户在指纹采集区域滑动录入的第一指纹图像序列,生成包含至少一张指纹模板的指纹模板集,之后迭代执行基于用户在指纹采集区域滑动录入的第二指纹图像序列更新指纹模板集的步骤,直至满足停止录入条件。一方面,由于用户采用滑动录入的方式进行指纹录入,每次可录入的多帧指纹图像,因此可减少用户执行指纹录入操作的次数,提高了指纹录入效率。另一方面,滑动录入方式相较于按压录入方式,可使所录入的指纹图像之间具有更好的连续性,增大了所录入的指纹的有效区域的面积,基于所生成的指纹模板进行指纹识别,可提高指纹识别的准确性。
本申请实施例还提供了一种电子设备,包括一个或多个处理器,存储装置,其上存储有一个或多个程序,当一个或多个程序被一个或多个处理器执行时,使得一个或多个处理器实现上述指纹滑动录入方法。
下面参考图5,其示出了用于实现本申请的一些实施例的电子设备的结构示意图。图5示出的电子设备仅仅是一个示例,不应对本申请的实施例的功能和使用范围带来任何限制。
如图5所示,电子设备500可以包括处理装置(例如中央处理器、图形处理器等)501,其可以根据存储在只读存储器(ROM)502中的程序或者从存储装置508加载到随机访问存储器(RAM)503中的程序而执行各种适当的动作和处理。在RAM 503中,还存储有电子设备500操作所需的各种程序和数据。处理装置501、ROM 502以及RAM503通过总线504彼此相连。输入/输出(I/O)接口505也连接至总线504。
通常,以下装置可以连接至I/O接口505:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置506;包括例如液晶显示器(LCD)、扬声器、振动器等的输出装置507;包括例如磁盘、硬盘等的存储装置508;以及通信装置509。通信装置509可以允许电子设备500与其他设备进行无线或有线通信以交换数据。虽然图5示出了具有各种装置的电子设备500,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。图5中示出的每个方框可以代表一个装置,也可以根据需要代表多个装置。
本申请实施例还提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述指纹滑动录入方法。
特别地,根据本申请的一些实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本申请的一些实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的一些实施例中,该计算机程序可以通过通信装置509从网络上被下载和安装,或者从存储装置508被安装,或者从ROM 502被安装。在该计算机程序被处理装置501执行时,执行本申请的一些实施例的方法中限定的上述功能。
本申请实施例还提供了一种计算机可读介质,其上存储有计算机程序,该程序被处理器执行时实现上述指纹滑动录入方法。
需要说明的是,本申请的一些实施例所述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请的一些实施例中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。而在本申请的一些实施例中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。
在一些实施方式中,客户端、服务器可以利用诸如HTTP(HyperTextTransferProtocol,超文本传输协议)之类的任何当前已知或未来研发的网络协议进行通信,并且可以与任意形式或介质的数字数据通信(例如,通信网络)互连。通信网络的示例包括局域网(“LAN”),广域网(“WAN”),网际网(例如,互联网)以及端对端网络(例如,ad hoc端对端网络),以及任何当前已知或未来研发的网络。
上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备:获取用户在指纹采集区域滑动录入的第一指纹图像序列;基于第一指纹图像序列中的指纹图像,生成包含至少一张指纹模板的指纹模板集;迭代执行如下更新步骤,直至满足停止录入条件:获取用户在指纹采集区域滑动录入的第二指纹图像序列;基于第二指纹图像序列中的指纹图像,更新指纹模板集。
可以以一种或多种程序设计语言或其组合来编写用于执行本申请的一些实施例的操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如Java、Smalltalk、C++;还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接),上述网络包括局域网(LAN)或广域网(WAN)。
附图中的流程图和框图,图示了按照本申请各种实施例的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本申请的一些实施例中的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元也可以设置在处理器中,例如,可以描述为:一种处理器包括第一确定单元、第二确定单元、选取单元和第三确定单元。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定。
本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、片上***(SOC)、复杂可编程逻辑设备(CPLD)等等。
以上描述仅为本申请的一些较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请的实施例中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请的实施例中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。