CN116978068A - 指纹识别的方法和装置 - Google Patents
指纹识别的方法和装置 Download PDFInfo
- Publication number
- CN116978068A CN116978068A CN202210412174.3A CN202210412174A CN116978068A CN 116978068 A CN116978068 A CN 116978068A CN 202210412174 A CN202210412174 A CN 202210412174A CN 116978068 A CN116978068 A CN 116978068A
- Authority
- CN
- China
- Prior art keywords
- fingerprint
- image
- model
- fingerprint image
- training
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 108
- 238000012549 training Methods 0.000 claims abstract description 94
- 230000008439 repair process Effects 0.000 claims abstract description 71
- 230000008569 process Effects 0.000 claims abstract description 46
- 238000001914 filtration Methods 0.000 claims abstract description 26
- 230000006870 function Effects 0.000 claims description 89
- 238000012545 processing Methods 0.000 claims description 39
- 238000004590 computer program Methods 0.000 claims description 15
- 238000010606 normalization Methods 0.000 claims description 15
- 230000000903 blocking effect Effects 0.000 claims description 6
- 230000015556 catabolic process Effects 0.000 claims description 6
- 238000006731 degradation reaction Methods 0.000 claims description 6
- 230000001976 improved effect Effects 0.000 abstract description 17
- 238000004422 calculation algorithm Methods 0.000 description 12
- 238000010586 diagram Methods 0.000 description 11
- 238000004891 communication Methods 0.000 description 8
- 230000000694 effects Effects 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 6
- 230000008859 change Effects 0.000 description 5
- 238000005070 sampling Methods 0.000 description 5
- 230000014509 gene expression Effects 0.000 description 4
- 238000013528 artificial neural network Methods 0.000 description 3
- 230000003190 augmentative effect Effects 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000013135 deep learning Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 238000007781 pre-processing Methods 0.000 description 3
- 229920001621 AMOLED Polymers 0.000 description 2
- 238000013256 Gubra-Amylin NASH model Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000003709 image segmentation Methods 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 239000002096 quantum dot Substances 0.000 description 2
- 238000009877 rendering Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 210000000988 bone and bone Anatomy 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 239000004020 conductor Substances 0.000 description 1
- 238000013136 deep learning model Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 235000019580 granularity Nutrition 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000001939 inductive effect Effects 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 229910044991 metal oxide Inorganic materials 0.000 description 1
- 150000004706 metal oxides Chemical class 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 238000003062 neural network model Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000012805 post-processing Methods 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 239000004984 smart glass Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 210000004243 sweat Anatomy 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10004—Still image; Photographic image
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20024—Filtering details
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20081—Training; Learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20084—Artificial neural networks [ANN]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/30—Subject of image; Context of image processing
- G06T2207/30168—Image quality inspection
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Collating Specific Patterns (AREA)
Abstract
一种指纹识别的方法和装置,该方法应用于指纹识别技术领域。该方法包括:接收用户的第一操作;响应于所述第一操作,获取第一指纹,并基于所述第一指纹进行指纹识别;在指纹识别失败时,利用第一修复模型对第一指纹进行修复,得到第二指纹;第一修复模型是基于指纹图像数据对进行模型训练得到的,且,在模型训练的过程中确定了第一损失函数,第一损失函数是基于方向场信息确定的,方向场信息是通过对在训练过程中得到的修复后指纹图像进行滤波得到的;基于所述第二指纹进行指纹识别,能够有效修复指纹图像,提高指纹识别的成功率,极大提升用户的指纹识别体验。
Description
技术领域
本申请涉及生物识别领域,并且具体地,涉及一种指纹识别的方法和装置。
背景技术
随着智能终端的普及,指纹识别技术在终端领域也得到飞速发展。在指纹应用场景中,时常会发生采集的指纹质量不佳的情形。采集的指纹质量不佳会影响指纹的识别成功率。现有技术通过对采集的指纹图像进行修复,以获得高质量的指纹。但是,目前的指纹修复方法存在局限性,无法有效提升指纹识别率,影响用户的体验。因此,如何对提升指纹识别率成为亟待解决的问题。
发明内容
有鉴于此,本申请提供了一种指纹识别的方法、装置、计算机可读存储介质和计算机程序产品,能够有效修复指纹图像,提高指纹识别的成功率,极大提升用户的指纹识别体验。
第一方面,提供了一种指纹识别的方法,包括:
接收用户的第一操作,所述第一操作用于触发指纹识别;
响应于所述第一操作,获取第一指纹,并基于所述第一指纹进行指纹识别;
在指纹识别失败时,利用第一修复模型对所述第一指纹进行修复,得到第二指纹;
其中,所述第一修复模型是基于指纹图像数据对进行模型训练得到的,且,在模型训练的过程中确定了第一损失函数,所述第一损失函数是基于方向场信息确定的,所述方向场信息是通过对在训练过程中得到的修复后指纹图像进行滤波得到的;
其中,所述指纹图像数据对中包括具有对应关系的第三指纹和第四指纹的数据,所述第四指纹的质量优于所述第三指纹的质量;
基于所述第二指纹进行指纹识别。
上述方法可以由终端设备或终端设备中的芯片执行。基于上述方案,在指纹识别不成功时,通过第一修复模型对第一指纹进行修复,得到第二指纹,即修复后的指纹,修复后的指纹图像质量更高,利用修复后的指纹进行识别,能够提升指纹识别的成功率,有助于提升用户指纹识别的体验。其中,所述第一修复模型是考虑了方向场信息得到的训练模型,通过考虑方向场信息能够提高训练模型的精度,还能加快收敛速度,使得通过第一修复模型修复后的指纹图像会更平滑,极大提高了指纹识别的成功率。
在一种可能的实现方式中,所述方向场信息是通过对修复后的指纹图像的数据进行滤波得到的,包括:
对修复后的指纹图像进行归一化处理,得到归一化处理后的指纹图像;
对所述归一化处理后的指纹图像进行图像分块,获得多个图像块;
针对所述多个图像块中的每个图像块确定图像块的方向和频率;
基于所述图像块的方向和频率进行空域滤波,获得所述方向场信息。
可以理解,空域滤波是指使用空域模板(比如空域滤波器)进行的图像处理。
在一种可能的实现方式中,所述归一化处理后的指纹图像满足下式:
其中,N1表示像素点的均值大于先验均值的归一化结果,M0表示预设的先验均值,V0表示先验标准差,g1(x,y)表示大于先验均值M0的像素点的坐标,表示修复后指纹图像的均值,S表示修复后指纹图像的标准差;
对于小于先验值M的像素点,归一化结果表示为:
其中,N2表示像素点的均值小于先验均值的归一化结果,M0表示预设的先验均值,V0表示先验标准差,g2(x,y)表示小于先验均值M0的像素点的坐标,表示修复后指纹图像的均值,S表示修复后指纹图像的标准差。
在一种可能的实现方式中,所述第一损失函数是基于第一输出结果确定的,其中,所述第一输出结果包括所述修复后指纹图像的方向场信息,所述修复后指纹图像指的是将所述第三指纹输入到所述第一修复模型的训练网络时获得的修复指纹图像。
可选地,第一损失函数满足下式:
其中,L方向场信息表示方向场信息的损失函数,是实际值,θi是预测值,n表示角度的个数。
在一种可能的实现方式中,所述第一修复模型的训练过程中还确定了第二损失函数,所述第二损失函数基于第二输出结果与所述第四指纹确定的,所述第二输出结果是指:在模型训练过程中将所述第三指纹输入到所述第一修复模型的训练网络时获得的修复后指纹图像的结果。
本申请实施例对如何得到方向场信息的滤波方式不作具体限定。
在一种可能的实现方式中,所述方向场信息是通过加博(gabor)滤波得到的。
因此,采用gabor滤波可以得到修复后的指纹图像的方向场信息。
在一种可能的实现方式中,所述方向场信息包括方向场的特征图。这里,在第一修复模型的训练网络中利用的是方向场的特征图,使得训练过程收敛更快。
在一种可能的实现方式中,所述指纹图像数据对是通过两路生成对抗网络退化模型获得的,其中,所述两路生成对抗网络退化模型是基于训练数据进行训练得到的。
相比于人为选取用于模型训练的指纹图像数据对,通过两路生成对抗网络模型的方式生成上述指纹图像数据对,有助于降低训练数据的采集成本。
可选地,如果用于训练模型的指纹图像数据对是通过数据生成模型生成的,那么也可以将生成损失函数作为总损失函数中的一个损失函数。
第二方面,提供了一种模型训练的方法,包括:
获取指纹图像数据对,所述指纹图像数据对包括第三指纹和第四指纹,第四指纹优于第三指纹;
在模型训练过程中将第三指纹输入到所述第一修复模型的训练网络,获得第一输出结果和第二输出结果。所述第一输出结果包括所述修复后指纹图像的方向场信息,所述修复后指纹图像指的是将所述第三指纹输入到所述第一修复模型的训练网络时获得的修复指纹图像。所述第二输出结果是指:在模型训练过程中将所述第三指纹输入到所述第一修复模型的训练网络时获得的修复后指纹图像的结果;
基于所述第一输出结果确定第一损失函数,以及,基于第二输出结果和第四指纹确定第二损失函数;
通过对所述第一损失函数和所述第二损失函数进行训练,得到所述第一修复模型。
上述方法可以由模型训练的装置执行。基于上述方案,通过指纹图像数据对进行模型训练,并基于所述第一输出结果和第二输出结果确定损失函数,最终得到精度较高的第一修复模型,通过考虑方向场信息使得训练指纹修复模型的精度更高,收敛速度更快。这样使得通过第一修复模型修复后的指纹图像会更平滑,极大提高了指纹识别的成功率。
关于第一修复模型的相关描述在第一方面中已经提及,这些描述同样适用于第二方面,为了简洁,此处不再赘述。
可以理解,上述第一修复模型可应用于第一方面的指纹识别方法中。
第三方面,提供了一种指纹识别的装置,包括用于执行第一方面中任一种方法的单元。该装置可以是终端(或者终端设备),也可以是终端(或者终端设备)内的芯片。该装置包括输入单元、显示单元和处理单元。
当该装置是终端时,该处理单元可以是处理器,该输入单元可以是通信接口,该显示单元可以是图形处理模块和屏幕;该终端还可以包括存储器,该存储器用于存储计算机程序代码,当该处理器执行该存储器所存储的计算机程序代码时,使得该终端执行第一方面中的任一种方法。
当该装置是终端内的芯片时,该处理单元可以是芯片内部的逻辑处理单元,该输入单元可以是输出接口、管脚或电路等,该显示单元可以是芯片内部的图形处理单元;该芯片还可以包括存储器,该存储器可以是该芯片内的存储器(例如,寄存器、缓存等),也可以是位于该芯片外部的存储器(例如,只读存储器、随机存取存储器等);该存储器用于存储计算机程序代码,当该处理器执行该存储器所存储的计算机程序代码时,使得该芯片执行第一方面的任一种方法。
第四方面,提供了一种模型训练的装置,用于执行上述第二方面或第二方面的任意可能的实现方式中的方法。具体地,该装置包括用于执行上述第二方面或第二方面的任意可能的实现方式中的方法的单元。
第五方面,提供了一种模型训练的装置。该装置包括处理器、存储器和通信接口。处理器与存储器和通信接口连接。存储器用于存储指令,处理器用于执行该指令,通信接口用于在处理器的控制下与其他网元进行通信。该处理器执行该存储器存储的指令时,该执行使得该处理器执行第二方面或第二方面的任意可能的实现方式中的方法。
第六方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序代码,当所述计算机程序代码被指纹识别的装置运行时,使得该装置执行第一方面中的任一种方法。
第七方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序代码,当所述计算机程序代码被模型训练的装置运行时,使得该装置执行第二方面中的任一种方法。
第八方面,提供了一种计算机程序产品,所述计算机程序产品包括:计算机程序代码,当所述计算机程序代码被指纹识别的装置运行时,使得该装置执行第一方面中的任一种方法。
第九方面,提供了一种计算机程序产品,所述计算机程序产品包括:计算机程序代码,当所述计算机程序代码被模型训练的装置运行时,使得该装置执行第二方面中的任一种方法。
附图说明
图1是本申请实施例的应用场景的一个示例图;
图2是一种适用于本申请的电子设备的硬件系统的示意图;
图3是一种适用于本申请的电子设备的软件系统的示意图;
图4是根据本申请实施例的指纹识别的方法的示意性流程图;
图5是方向角度的一个示例图;
图6是本申请实施例的第一修复模型的训练过程的示意性流程图;
图7是指纹修复图像的效果对比的一个示例图;
图8是应用本申请实施例的一个应用场景的示意图;
图9是本申请实施例的指纹识别装置的示意性框图。
具体实施方式
下面将结合附图,对本申请实施例中的技术方案进行描述。
本申请实施例提供的指纹识别方法可应用于具有指纹识别功能的电子设备中。例如,该电子设备可以为手机、平板电脑、笔记本电脑、可穿戴设备、多媒体播放设备、电子书阅读器、个人计算机、个人数字助理(personaldigitalassistant,PDA)、上网本、增强显示(augmentedreality,AR)设备、虚拟现实(virtualreality,VR)设备等电子设备。本申请对电子设备的具体形式不作限制。
作为示例而非限定,当电子设备为可穿戴设备时,该可穿戴设备可以是应用穿戴式技术对日常穿戴进行智能化设计、开发出可以穿戴的设备的总称,比如,眼镜、手套、手表、服饰以及鞋等。可穿戴设备即直接穿戴在人体上,或是整合到用户的衣服或配件的一种便携式设备,可以采集用户的生物特征数据。可穿戴设备不仅仅是一种硬件设备,更是通过软件支持以及数据交互、云端交互来实现强大的功能。一种实现方式,穿戴式智能设备包括功能全、尺寸大、可不依赖智能手机实现完整或部分功能的设备,比如,智能手表或智能眼镜等。另一种实现方式,穿戴式智能设备可以是只专注于某一类应用功能,且需要和其他设备(比如智能手机)配合使用的设备,比如,包含解锁的触控屏的智能手环、智能首饰等。
本申请实施例对指纹识别的应用场景不作具体限定,涉及到利用指纹进行识别的场景均可以适用。比如,用户利用指纹进行解锁、支付或身份认证等等。
可以理解,本申请实施例对涉及到指纹图像处理的场景均适用。例如,超声指纹识别、光学指纹识别、屏下指纹识别、屏幕后指纹识别(即指纹识别装置设置于电子设备的背面)。
通常而言,受限于以下一项或多项因素:干湿程度、压力、破损、汗液、指纹感应器的清洁程度等,用户在进行指纹识别时,会存在采集的指纹质量不佳的情况。当采集的指纹质量不佳时,会导致指纹识别不成功,影响用户的指纹识别体验。
图1是本申请实施例的应用场景的一个示意图。以电子设备是手机为例,该手机采用屏下指纹解锁,如图1中(1)所示,用户通过手指按压屏幕的指纹解锁区域10,尝试进行指纹解锁。在用户按压指纹解锁区域10后,手机会将采集的指纹与用户预先存储的指纹进行匹配。如果匹配成功,则手机屏幕解锁成功。
应理解,图1中(1)所示的指纹解锁区域10只是示例性描述,本申请实施例并不限于此。事实上,指纹解锁区域10可以位于屏幕的其他区域,比如,靠近电源键的屏幕区域。
还应理解,图1中(1)所示的指纹解锁是以屏下指纹解锁为例进行说明的,本申请实施例并不限于此。比如,本申请实施例也适用于手机背部指纹解锁。
如果用户在尝试多次后指纹仍未匹配成功,那么会向用户提示指纹匹配失败。一种可能的情形,比如,如图1中(2)所示,手机向用户显示提示框11“指纹匹配失败,请保持手指和感应器清洁”。
应理解,提示框11中的内容只是举例说明,本申请实施例并不限于此。比如,提示框11中的内容也可以是“指纹验证失败已达最大次数,请使用密码解锁”,或者,“指纹匹配失败”等。
如果用户在尝试多次后指纹仍未匹配成功,那么可以提示用户输入密码进行解锁。比如,如图1中(3)所示,手机显示用户输入密码的界面。当然,图1中(3)所示的界面只是一种可能的情形,本申请实施例并不限于此。
应理解,图1中的场景只是示意性说明本申请的一个应用场景,这并不对本申请实施例构成限定,本申请并不限于此。
为了提升用户指纹识别的体验,本申请实施例提出一种指纹识别的方法,通过第一修复模型对识别失败的指纹进行修复,利用修复后的指纹进行指纹识别,以提高指纹识别的成功率。在本申请实施例中,第一修复模型考虑了指纹图像的方向场信息,能够更好的评价修复后的指纹图像,精度会更高,提高指纹修复后的图像质量,极大提高了指纹识别的成功率。并且,在训练过程中考虑指纹图像的方向场信息,还可以使训练网络的收敛速度会更快。
以下首先结合图2和图3描述本申请实施例适用的硬件系统和软件架构。
图2示出了一种适用于本申请的电子设备的硬件系统。
电子设备100可以是手机、智慧屏、平板电脑、可穿戴电子设备、车载电子设备、增强现实(augmented reality,AR)设备、虚拟现实(virtual reality,VR)设备、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本、个人数字助理(personal digital assistant,PDA)、投影仪等等,本申请实施例对电子设备100的具体类型不作任何限制。
电子设备100可以包括处理器110,外部存储器接口120,内部存储器121,通用串行总线(universal serial bus,USB)接口130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,传感器模块180,按键190,马达191,指示器192,摄像头193,显示屏194,以及用户标识模块(subscriber identification module,SIM)卡接口195等。其中传感器模块180可以包括压力传感器180A,陀螺仪传感器180B,气压传感器180C,磁传感器180D,加速度传感器180E,距离传感器180F,接近光传感器180G,指纹传感器180H,温度传感器180J,触摸传感器180K,环境光传感器180L,骨传导传感器180M等。
需要说明的是,图2所示的结构并不构成对电子设备100的具体限定。在本申请另一些实施例中,电子设备100可以包括比图2所示的部件更多或更少的部件,或者,电子设备100可以包括图2所示的部件中某些部件的组合,或者,电子设备100可以包括图2所示的部件中某些部件的子部件。比如,图2所示的接近光传感器180G可以是可选的。图2示的部件可以以硬件、软件、或软件和硬件的组合实现。
处理器110可以包括一个或多个处理单元。例如,处理器110可以包括以下处理单元中的至少一个:应用处理器(application processor,AP)、调制解调处理器、图形处理器(graphics processing unit,GPU)、图像信号处理器(image signal processor,ISP)、控制器、视频编解码器、数字信号处理器(digital signal processor,DSP)、基带处理器、神经网络处理器(neural-network processing unit,NPU)。其中,不同的处理单元可以是独立的器件,也可以是集成的器件。
控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了系统的效率。
图2所示的各模块间的连接关系只是示意性说明,并不构成对电子设备100的各模块间的连接关系的限定。可选地,电子设备100的各模块也可以采用上述实施例中多种连接方式的组合。
电子设备100可以通过GPU、显示屏194以及应用处理器实现显示功能。GPU为图像处理的微处理器,连接显示屏194和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
显示屏194可以用于显示图像或视频。显示屏194包括显示面板。显示面板可以采用液晶显示屏(liquid crystal display,LCD)、有机发光二极管(organic light-emitting diode,OLED)、有源矩阵有机发光二极体(active-matrix organic light-emitting diode,AMOLED)、柔性发光二极管(flex light-emitting diode,FLED)、迷你发光二极管(mini light-emitting diode,Mini LED)、微型发光二极管(micro light-emitting diode,Micro LED)、微型OLED(Micro OLED)或量子点发光二极管(quantum dotlight emitting diodes,QLED)。在一些实施例中,电子设备100可以包括1个或N个显示屏194,N为大于1的正整数。
电子设备100可以通过ISP、摄像头193、视频编解码器、GPU、显示屏194以及应用处理器等实现拍摄功能。
ISP用于处理摄像头193反馈的数据。例如,拍照时,打开快门,光线通过镜头被传递到摄像头感光元件上,光信号转换为电信号,摄像头感光元件将所述电信号传递给ISP处理,转化为肉眼可见的图像。ISP可以对图像的噪点、亮度和色彩进行算法优化,ISP还可以优化拍摄场景的曝光和色温等参数。在一些实施例中,ISP可以设置在摄像头193中。
摄像头193用于捕获静态图像或视频。物体通过镜头生成光学图像投射到感光元件。感光元件可以是电荷耦合器件(charge coupled device,CCD)或互补金属氧化物半导体(complementary metal-oxide-semiconductor,CMOS)光电晶体管。感光元件把光信号转换成电信号,之后将电信号传递给ISP转换成数字图像信号。ISP将数字图像信号输出到DSP加工处理。DSP将数字图像信号转换成标准的红绿蓝(red green blue,RGB),YUV等格式的图像信号。在一些实施例中,电子设备100可以包括1个或N个摄像头193,N为大于1的正整数。
数字信号处理器用于处理数字信号,除了可以处理数字图像信号,还可以处理其他数字信号。例如,当电子设备100在频点选择时,数字信号处理器用于对频点能量进行傅里叶变换等。
电子设备100可以通过音频模块170、扬声器170A、受话器170B、麦克风170C、耳机接口170D以及应用处理器等实现音频功能,例如,音乐播放和录音。
压力传感器180A用于感受压力信号,可以将压力信号转换成电信号。在一些实施例中,压力传感器180A可以设置于显示屏194。压力传感器180A的种类很多,例如可以是电阻式压力传感器、电感式压力传感器或电容式压力传感器。电容式压力传感器可以是包括至少两个具有导电材料的平行板,当力作用于压力传感器180A,电极之间的电容改变,电子设备100根据电容的变化确定压力的强度。当触摸操作作用于显示屏194时,电子设备100根据压力传感器180A检测所述触摸操作。电子设备100也可以根据压力传感器180A的检测信号计算触摸的位置。在一些实施例中,作用于相同触摸位置,但不同触摸操作强度的触摸操作,可以对应不同的操作指令。例如:当触摸操作强度小于第一压力阈值的触摸操作作用于短消息应用图标时,执行查看短消息的指令;当触摸操作强度大于或等于第一压力阈值的触摸操作作用于短消息应用图标时,执行新建短消息的指令。
接近光传感器180G可以包括例如发光二极管(light-emitting diode,LED)和光检测器,例如,光电二极管。LED可以是红外LED。电子设备100通过LED向外发射红外光。电子设备100使用光电二极管检测来自附近物体的红外反射光。当检测到反射光时,电子设备100可以确定附近存在物体。当检测不到反射光时,电子设备100可以确定附近没有物体。电子设备100可以利用接近光传感器180G检测用户是否手持电子设备100贴近耳朵通话,以便自动熄灭屏幕达到省电的目的。接近光传感器180G也可用于皮套模式或口袋模式的自动解锁与自动锁屏。应理解,图2中所述的接近光传感器180G可以是可选部件。在一些场景下,可以利用超声传感器来替代接近光传感器180G检测接近光。
指纹传感器180H用于采集指纹。电子设备100可以利用采集的指纹特性实现解锁、访问应用锁、拍照和接听来电等功能。
触摸传感器180K,也称为触控器件。触摸传感器180K可以设置于显示屏194,由触摸传感器180K与显示屏194组成触摸屏,触摸屏也称为触控屏。触摸传感器180K用于检测作用于其上或其附近的触摸操作。触摸传感器180K可以将检测到的触摸操作传递给应用处理器,以确定触摸事件类型。可以通过显示屏194提供与触摸操作相关的视觉输出。在另一些实施例中,触摸传感器180K也可以设置于电子设备100的表面,并且与显示屏194设置于不同的位置。
按键190包括开机键和音量键。按键190可以是机械按键,也可以是触摸式按键。电子设备100可以接收按键输入信号,实现于案件输入信号相关的功能。
马达191可以产生振动。马达191可以用于来电提示,也可以用于触摸反馈。马达191可以对作用于不同应用程序的触摸操作产生不同的振动反馈效果。对于作用于显示屏194的不同区域的触摸操作,马达191也可产生不同的振动反馈效果。不同的应用场景(例如,时间提醒、接收信息、闹钟和游戏)可以对应不同的振动反馈效果。触摸振动反馈效果还可以支持自定义。
上文详细描述了电子设备100的硬件系统,下面介绍电子设备100的软件系统。软件系统可以采用分层架构、事件驱动架构、微核架构、微服务架构或云架构,本申请实施例以分层架构为例,示例性地描述电子设备100的软件系统。
如图3所示,采用分层架构的软件系统分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,软件系统可以分为五层,从上至下分别为应用程序层、应用程序框架层、安卓运行时(Android Runtime)和系统库、内核层以及可信执行环境(trusted execution environment,TEE)层。
应用程序层可以包括相机、图库、日历、通话、地图、导航、WLAN、蓝牙、音乐、视频、短信息等应用程序。
应用程序框架层为应用程序层的应用程序提供应用程序编程接口(applicationprogramming interface,API)和编程框架。应用程序框架层可以包括一些预定义的函数。
例如,应用程序框架层包括窗口管理器、内容提供器、视图系统、电话管理器、资源管理器和通知管理器。
窗口管理器用于管理窗口程序。窗口管理器可以获取显示屏大小,判断是否有状态栏、锁定屏幕和截取屏幕。
内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问。所述数据可以包括视频、图像、音频、拨打和接听的电话、浏览历史和书签、以及电话簿。
视图系统包括可视控件,例如显示文字的控件和显示图片的控件。视图系统可用于构建应用程序。显示界面可以由一个或多个视图组成,例如,包括短信通知图标的显示界面,可以包括显示文字的视图以及显示图片的视图。
电话管理器用于提供电子设备100的通信功能,例如通话状态(接通或挂断)的管理。
资源管理器为应用程序提供各种资源,比如本地化字符串、图标、图片、布局文件和视频文件。
通知管理器使应用程序可以在状态栏中显示通知信息,可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。比如通知管理器被用于下载完成告知和消息提醒。通知管理器还可以管理以图表或者滚动条文本形式出现在系统顶部状态栏的通知,例如后台运行的应用程序的通知。通知管理器还可以管理以对话窗口形式出现在屏幕上的通知,例如在状态栏提示文本信息、发出提示音、电子设备振动以及指示灯闪烁。
Android Runtime包括核心库和虚拟机。Android runtime负责安卓系统的调度和管理。
核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是安卓的核心库。
应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理、堆栈管理、线程管理、安全和异常的管理、以及垃圾回收等功能。
系统库可以包括多个功能模块,例如:表面管理器(surface manager),媒体库(Media Libraries),三维图形处理库(例如:针对嵌入式系统的开放图形库(opengraphics library for embedded systems,OpenGL ES)和2D图形引擎(例如:skia图形库(skia graphics library,SGL))。
表面管理器用于对显示子系统进行管理,并且为多个应用程序提供了2D图层和3D图层的融合。
媒体库支持多种音频格式的回放和录制、多种视频格式回放和录制以及静态图像文件。媒体库可以支持多种音视频编码格式,例如:MPEG4、H.264、动态图像专家组音频层面3(moving picture experts group audio layer III,MP3)、高级音频编码(advancedaudio coding,AAC)、自适应多码率(adaptive multi-rate,AMR)、联合图像专家组(jointphotographic experts group,JPG)和便携式网络图形(portable network graphics,PNG)。
三维图形处理库可以用于实现三维图形绘图、图像渲染、合成和图层处理。
二维图形引擎是2D绘图的绘图引擎。
内核层是硬件和软件之间的层。内核层可以包括显示驱动、摄像头驱动、音频驱动和传感器驱动等驱动模块。
TEE层可以给Android系统提供安全服务。TEE层用于执行各类生物识别算法。TEE层通常用于运行关键的操作:(1)、移动支付:指纹验证、PIN码输入等;(2)、机密数据:私钥、证书等的安全存储;(3)、内容包括:DRM(数字版权保护)等。
在一些可能的实施例中,TEE层包括指纹识别算法模块和指纹修复模块。可选地,指纹修复模块可以独立设置于TEE层(比如,如图3中所示),也可以位于指纹识别算法模块中,本申请实施例对此不作具体限定。在本申请实施例中,指纹修复模块用于对识别失败的指纹进行指纹修复。
在一些可能的示例中,指纹修复模块用于执行本申请实施例的指纹识别方法。可选地,指纹修复模块利用第一修复模型对识别失败的指纹进行修复。
应理解,以上基于图2对电子设备的结构图进行举例说明,通过图3对本申请实施例的软件架构进行示例说明,但是本申请实施例并不限于此。
以下结合图4至图7描述根据本申请实施例的指纹识别的方法。可以理解,以下所示的指纹识别的方法可以在具备上述硬件结构的电子设备(比如,图2所示的电子设备)中实现。
图4是根据本申请实施例的指纹识别的方法的示意性流程图。如图4所示,该方法包括以下步骤:
步骤310,接收用户的第一操作,所述第一操作用于触发指纹识别。
本申请实施例对第一操作的具体形式不作限定。
示例性地,第一操作可以是用户通过手指按压指纹解锁区域的操作,以便启动指纹识别,为后续指纹解锁提供准备。
示例性地,第一操作可以是用户将手指放置在指纹解锁区域的操作,以便触发指纹识别功能。步骤320,响应于第一操作,获取第一指纹,并基于所述第一指纹进行指纹识别。
具体地,获取第一指纹是指采集第一指纹的数据。本申请实施例对指纹数据的具体形式不作限定,比如,第一指纹的数据包括指纹图像。
作为一种可能的实现方式,获取第一指纹包括:通过指纹采集模块采集指纹。
以指纹解锁场景为例进行说明,电子设备内置的触控屏配置有屏下指纹识别模块,该屏下指纹识别模块的指纹识别区域可以设置于触控屏的指定区域,也可以覆盖整个触控屏,对此不作具体信定。如果屏下指纹识别模块设置于触控屏的指定区域,则用户按压该指定区域时,才会触发指纹解锁流程。如果屏下指纹识别模块覆盖整个触控屏,则在电子设备的锁屏状态下,用户按压触控屏的任一区域,均会触发指纹解锁流程。
此处基于第一指纹进行指纹识别可利用目前的指纹识别技术实现。比如,在电子设备中可以预先录入至少一个标准指纹的信息(比如,指纹特征数据,指纹图像等等)。电子设备利用该标准指纹与第一指纹进行指纹匹配,如果指纹匹配成功,则可以进行下一步的相关处理,具体处理步骤可以取决于应用场景,比如,支付,解锁等。如果指纹识别失败,那么需要利用本申请实施例的第一修复模型进行指纹修复。
步骤330,在指纹识别失败时,利用第一修复模型对所述第一指纹进行修复,得到第二指纹。其中,所述第一修复模型是基于指纹图像数据对进行模型训练得到的,且,在模型训练的过程中确定了第一损失函数,所述第一损失函数是基于方向场信息确定的,所述方向场信息是通过对在训练过程中得到的修复后指纹图像进行滤波得到的;所述指纹图像数据对中包括具有对应关系的第三指纹和第四指纹的数据,所述第四指纹的质量优于所述第三指纹的质量。
“修复”可以理解为将第一指纹的图像转换为第二指纹的图像的过程。
第一修复模型用于对识别失败的指纹(或者说低质量指纹)进行修复,以便得到高质量指纹(比如第二指纹)。也就是说,将第一指纹的图像输入到第一修复模型中,可以输出第二指纹的图像。经过第一修复模型修复后的指纹图像质量优于修复前的指纹。
应理解,本申请实施例对第一修复模型的名称不作具体限定。第一修复模型也可称作指纹修复模型、指纹训练模型、指纹特征修复模型等等。
还应理解,本申请实施例对第一修复模型的类型也不作具体限定。比如,第一修复模型可以是机器学习模型、深度学习模型、神经网络模型、预测模型等等。
在本申请实施例中,所述第一修复模型的训练过程中考虑了指纹图像的方向场信息。方向场信息是指纹质量好坏的关键信息。所述方向场信息是用于描述指纹的方向场的信息。通常来讲,指纹的方向场是指纹图像的一种固有属性。指纹的方向场反应了指纹图像场的中心、圆形纹线趋势场、斜角度直纹线趋势场、水平纹线趋势场及混合趋势场等。
本申请实施例对方向场信息的具体形式不作限定。方向场的信息可以是角度(比如局部脊线方向的角度),也可以是方向场的特征图,或者其他用于表征方向场的形式。
可选地,所述方向场信息包括方向角度。示例性地,以图5中的任一像素点(x,y)为例,(x,y)的方向角可以定义为以像素点所在脊线(或谷线)位置的切线方向与水平轴的夹角。
所述方向场信息是通过对修复后指纹图像进行滤波得到的。本申请实施例对滤波方式不作具体限定。比如,高斯核滤波、gabor滤波、尺度不变特征转换(scale-invariantfeature transform,SIFT)滤波等。
可选地,所述方向场信息是通过对所述修复后指纹图像进行gabor滤波得到的。
可选地,作为一种可能的实现方式,所述方向场信息是通过以下步骤获得的:
步骤1,对所述修复后指纹图像进行归一化处理,得到归一化处理后的指纹图像。
本申请实施例对归一化处理的具体过程不作具体限定。
示例性地,归一化处理可以包括以下过程:
首先取预设的先验均值(可记作M0)和先验标准差(可记作V0);
然后,计算所述修复后指纹图像的均值(可记作)和标准差(可记作S);
获取所述修复后指纹图像中大于先验均值M0的每个像素点的值以及小于先验值M0的像素点;
对于像素点的均值大于先验均值M0的像素点,归一化结果表示为:
其中,N1表示归一化结果,M0表示预设的先验均值,V0表示先验标准差,g1(x,y)表示大于先验均值M0的像素点的坐标,表示修复后指纹图像的均值,S表示修复后指纹图像的标准差。
对于像素点的均值小于先验均值M0的像素点,归一化结果表示为:
其中,N2表示像素点的均值小于先验均值的归一化结果,M0表示预设的先验均值,V0表示先验标准差,g2(x,y)表示小于先验均值M0的像素点的坐标,表示修复后指纹图像的均值,S表示修复后指纹图像的标准差。
可以理解,“等于先验均值M0”的情形,可以划分到“小于先验值M0”,或者,划分到“大于先验值M0”的情形中,对此不作具体限定。
步骤2,对所述归一化处理后的指纹图像进行图像分块,获得多个图像块。
可选地,图像分块的方式可以包括有重叠块的分块方式或无重叠的分块方式。本申请实施例对图像分块采用何种方式不作具体限定。
示例性地,以有重叠块的方式分块进行说明,假设指纹图像g(x,y)的尺寸大小为H*W,H表示指纹图像g(x,y)的高度,W表示指纹图像g(x,y)的宽度,(x,y)表示指纹图像g(x,y)的坐标。对指纹图像g(x,y)进行分块处理,分成大小为m*n的图像块,相邻的两个图像块之间相互重叠,重叠区域的宽度为num像素,得到指纹图像块gij(x,y),其中,i表示指纹图像块gij(x,y)位于指纹图像g(x,y)的第i行,j表示指纹图像块gij(x,y)位于指纹图像g(x,y)的第j行。例如,对于尺寸大小为499*499的指纹图像,按照有重叠块的方式进行划分,可以得到71*71个图像块,每个图像块的大小为8*8。
步骤3,针对每个图像块确定图像块的方向和频率。
可选地,可通过快速傅里叶变换的方式计算每个图像块的方向和频率。
示例性地,在matlab代码中可通过调用预先封装的快速傅里叶变换函数(比如,fftshift),来计算每个图像块的方向和频率。
步骤4,基于所述图像块的方向和频率进行空域滤波,获得所述修复后的指纹图像的方向场信息。
空域滤波在数字图像处理领域有如下定义:使用空域模板进行的图像处理。空域模板本身可以被称为空域滤波器。比如,使用空域滤波器对图像进行滤波。
示例性地,若采用加博(gabor)滤波,则空域滤波器就是gabor滤波函数。
作为一个可能的示例,在matlab代码中可以通过调用gabor滤波函数,通过输入每个图像块的方向和频率,即可得到方向场信息,比如θ。
作为一个可能的示例,也可以利用gabor滤波器的相关公式计算方向场信息。比如,二维gabor滤波函数的数学表达具体如下:
复数表达:
实数部分表示如下:
虚数部分表示如下:
其中,x′=x cosθ+y sinθ,y′=-x sinθ+y cosθ;
λ表示波长(取值可以像素为单位指定),θ表示方向角度,σ表示gabor函数的高斯因子的标准差,γ表示空间纵横比,ψ表示相位偏移。
应理解,关于二维gabor滤波函数的具体相关解释还可以参考现有的描述,本申请实施例对此。
还应理解,以上4个步骤只是示例性地描述,本申请实施例并不限于此。事实上,本领域技术人员也可利用其它传统算法计算方向场信息。
可选地,所述第一修复模型是通过对指纹图像数据对进行学习训练得到的。所述指纹图像数据对中包括具有对应关系或映射关系的第三指纹和第四指纹的数据,所述第四指纹的质量优于所述第三指纹的质量。换句话说,指纹图像数据对是指高质量指纹图像和低质量指纹的数据。其中,第三指纹和第四指纹是指纹图像数据对中的某一数据对(或者说配对指纹数据)。比如,第三指纹是低质量指纹,第四指纹是与第三指纹对应的高质量指纹。应理解,指纹图像数据对中包括多对指纹图像数据,上述只是以其中一对为例进行说明。
步骤340,基于第二指纹进行指纹识别。
第二指纹是修复后的指纹图像。一种可能的实现方式,利用第二指纹进行指纹识别,指纹识别成功。应理解,利用指纹进行指纹识别的过程可以参考现有技术,此处不再赘述。
在本申请实施例中,在指纹识别不成功时,通过第一修复模型对第一指纹进行修复,得到第二指纹,即修复后的指纹,修复后的指纹图像质量更高,利用修复后的指纹进行识别,能够提升指纹识别的成功率,有助于提升用户指纹识别的体验。相比于未考虑指纹图像的方向场信息的方案,本申请实施例的第一修复模型是考虑了指纹图像的方向场信息的训练模型,通过考虑指纹图像的方向场信息,能够更好的评价修复后的指纹图像,这样使得通过第一修复模型修复后的指纹图像会更平滑,提高指纹修复后的图像质量,极大提高了指纹识别的成功率。
上述第一修复模型是通过深度学习与传统的方向场算法进行结合训练得到的。以下将描述第一修复模型的训练过程。参考图6,图6是根据本申请实施例的第一修复模型的训练过程的示意性流程图。如图6所示,包括:
步骤401,获取指纹图像数据对,所述指纹图像数据对包括第三指纹和第四指纹,第四指纹优于第三指纹。
所述指纹图像数据对可以理解为用于进行模型训练的数据。换句话说,可以利用所述指纹图像数据对进行模型训练。关于所述指纹图像数据对的描述可以参考前文,此处不再赘述。
上述指纹图像数据对可以通过数据生成模型来生成。
作为一种可能的实现方式,根据生成对抗网络模型(generative adversarialnetwork,GAN)生成上述指纹图像数据对。相比于人为选取用于模型训练的指纹图像数据对,通过两路生成对抗网络模型的方式生成上述指纹图像数据对,有助于降低训练数据的采集成本。
可选地,上述两路生成对抗网络模型可以通过训练得到。简单来讲,GAN一般包含生成网络和鉴别网络。生成网络用于生成(假)数据。鉴别网络用于鉴别生成器生成的数据。生成网络每生成一批数据,都会送入鉴别网络训练,训练的鉴别网络会鉴别一下真假,同时会把结果反馈给生成器。反馈的结果会用来协助重新训练生成网络,以便让生成网络生成更逼真,然后再把数据给鉴别网络进行训练和鉴别。如此循环往复,直到生成的数据鉴别网络再也区分不出来真假,也就是没有有效的信息反馈给生成网络来训练了,则停止训练。
可选地,本申请利用两路生成对抗网络模型(TwoWayGAN)生成上述指纹图像数据对。通过TwoWayGAN,可以生成多个指纹图像数据对。
示例性地,可以通过人为选取的高质量(good)指纹数据和低质量(bad)指纹数据,来训练TwoWayGAN模型。高质量指纹数据和低质量指纹数据可以认为是两个集合(可分别表示为集合A和集合B)。TwoWayGAN由两个用于领域转换的生成器(可分别表示为GA和GB)以及两个判别器(可分别表示为DA和DB)组成。对于集合A,可先通过GB生成集合B的估计结果,然后再将集合B的估计结果输入到GA得到集合A的估计结果;对于集合B,可用GA生成集合A的估计结果,然后再将集合A的估计结果输入到GB,得到集合B的估计结果。两个生成器GA和GB可以用于生成配对数据。在本申请实施例中,基于TwoWayGAN可以得到配对的高质量指纹数据和低质量指纹数据。一个可能的实现方式,在将高质量指纹数据输入到TwoWayGAN模型后,可以生成对应的低质量指纹数据,从而得到指纹图像数据对。又一个可能的实现方式,在将低质量指纹数据输入到TwoWayGAN模型后,可以生成对应的高质量指纹数据,从而得到指纹图像数据对。
步骤402,在模型训练过程中将第三指纹输入到所述第一修复模型的训练网络,获得第一输出结果和第二输出结果。所述第一输出结果包括所述修复后指纹图像的方向场信息,所述修复后指纹图像指的是将所述第三指纹输入到所述第一修复模型的训练网络时获得的修复指纹图像。所述第二输出结果是指:在模型训练过程中将所述第三指纹输入到所述第一修复模型的训练网络时获得的修复后指纹图像的结果。
在本申请实施例中,第一修复模型的训练网络可以是神经网络。示例性地,神经网络可以包括:输入层、下采样层、上采样层和输出层。
输入层用于输入图像,并对输入图像进行卷积预处理。下采样层用于进行对指纹图像下采样操作,以便提取图像的特征。上采样层用于恢复图像的维度(或者说恢复图像的分辨率)。输出层用于进行后处理(比如,卷积处理),并输出训练结果(或者说输出修复后的指纹图像)。
以第三指纹(或者说第三指纹图像)输入到所述第一修复模型的训练网络,获得第一输出结果的过程为例进行说明:首先,利用输入层输入第三指纹的图像,并对第三指纹的图像进行卷积预处理,得到预处理的特征图;接着,利用下采样层对该预处理的特征图进行下采样处理,得到下采样处理后的特征图;然后,利用上采样层将对下采样处理后的特征图进行上采样处理(比如反卷积操作),得到上采样后的特征图(即修复后的指纹图像)以及上采样后的特征图的方向场的特征图(即修复后的指纹图像的方向场特征图),其中,上采样后的特征图与第三指纹的图像分辨率一致;最后,通过输出层输出修复后的指纹图像(对应第二输出结果)以及修复后指纹图像的方向场的特征图(对应第一输出结果)。
需要说明的是,在上述第一修复模型的训练网络中,方向场信息具体表现形式可以为方向场的特征图。方向场的特征图可以理解为基于指纹图像的方向场的特征构成的指纹方向图。指纹方向图可反映指纹纹线的走向。
应理解,此处只是以第三指纹的图像作为输入为例进行描述,但是本申请实施例并不限于此。事实上,在模型训练过程中,可以利用指纹图像数据对中的其他指纹进行训练。
本领域技术人员可以理解,卷积预处理是指使用一个卷积核对图像中的每个像素进行一系列操作。简单来说,下采样可以理解为缩放图像的过程。上采样可以理解为放大图像的过程。
本申请实施例在设计训练网络时将深度学习算法与传统算法相结合获得多任务网络,通过多任务网络进行第一修复模型的训练。具体即,通过传统算法确定指纹图像的方向场信息,并在深度学习的过程中将方向场信息作为其中一个学习分支。这里,将方向场信息作为多任务网络的支路不仅能够改善指纹的修复质量,还能够加速训练网络收敛,从而提高了模型的训练速度。
步骤403,基于所述第一输出结果确定第一损失函数,以及,基于第二输出结果和第四指纹确定第二损失函数。换句话说,所述第二损失函数是基于第二输出结果与第四指纹确定的。
其中,所述第一损失函数是与方向场信息有关的损失函数。
示例性地,以方向场信息包括方向角度为例,第一损失函数是方向角度的均方根误差(root mean square error,RMSE)。比如,第一损失函数满足下式:
其中,L方向场信息表示方向场信息的损失函数,是实际值,θi是预测值,n表示角度的个数。
示例性地,在基于样本梯度信息计算样本的方向时,方向角度可表示为
其中,VX和Vy是基于图像块的水平梯度和垂直梯度确定的,本申请实施例对此不作具体限定。
作为一个示例,将多个图像块的方向场角度θ作为训练样本,可以假设方向角度范围为[0~180°],那么可以按照不同的角度粒度进行样本取样。比如,15°或25°等。举例来说,假设以15°为间隔进行取样,那么根据θ所处的区间,将样本区间划分为[0~15°),[15°~30°),[30°~45°),…[165°~180°),并对每个区间分别标注相应的编号1、2、…、12,以便进行方向场的预测。
第二损失函数是修复后的指纹图像与第四指纹的均方根误差RMSE。
示例性地,第二损失函数满足下式:
其中,Fs(x,y)表示修复后的指纹图像(比如前文提到的第二输出结果),It(x,y)表示指纹图像对中质量较好的图像(比如前文提到的第四指纹),m表示像素点的个数,(x,y)表示像素点坐标。
可选地,作为一种可能的实现方式,通过第一损失函数以及第二损失函数,可以得到一个总损失函数,该总损失函数定义为:
L=w1*L方向场信息+w2*RMSE
其中,L表示总损失函数,L方向场信息表示方向场信息的损失函数,RMSE表示像素点的均方根误差,各损失函数前的系数(包括:w1和w2)代表各个损失函数的权重值。权重值可以基于先验值取值,本申请实施例不作具体限定。
通过判断总损失函数的输出值决定是否结束训练过程。可选地,在总损失函数的输出值稳定且比较小时,结束模型训练。
“稳定”是指输出值的不再变化,或者说,变化的上下幅度比较小。在一些可能的实施例中,总损失函数的输出值的变化值小于某个变化阈值时,可认为输出值稳定。
总损失函数的输出值的大小也可通过阈值来判断。在一些可能的实施例中,总损失函数的输出值小于某一阈值时,训练结束。
可选地,作为一个可能的实现方式,如果用于训练模型的指纹图像数据对是通过数据生成模型生成的,那么也可以将生成损失函数作为总损失函数中的一个损失函数。
一个示例,生成损失函数用于度量基于数据生成模型生成的指纹图像数据对的损失。
示例性地,在数据生成模型是GAN模型时,生成损失函数是指GAN损失函数。GAN损失函数用于度量GAN模型生成的配对图片的判别损失。最小化GAN损失函数可以使得生成的指纹图像更真实。
一种可能的实现方式,GAN损失函数满足下式:
LGAN=-∑log D(It,Fw(Is))
其中,LGAN表示GAN损失函数,D表示TwoWayGAN模型中的判别器,Fw(Is)代表第二输出结果,It表示第四指纹的图像。
可选地,可以基于第一损失函数、第二损失函数和GAN损失函数获得总损失函数。总损失函数的相关描述可以类似前面的描述。
步骤404,通过对所述第一损失函数和所述第二损失函数进行训练,得到所述第一修复模型。
也就是说,在模型训练过程中考虑了方向场信息,这样得到的第一修复模型的精度更高,从而使得后续通过第一修复模型修复后的指纹图像质量更佳。
基于上述过程,本领域技术人员可以获知本申请实施例的第一修复模型的训练过程。
通过上文可知,本申请实施例的指纹修复模型在训练过程中考虑了指纹图像的方向场信息。相比于传统修复指纹模型的算法,本申请实施例的训练指纹修复模型的精度更高,收敛速度更快。另外,通过仿真对比可知,本申请实施例的训练指纹修复模型的错误拒绝率(false rejection rate,FRR)会更低。FRR是表征生物特征识别系统性能最重要的指标之一。
应理解,上述第一修复模型的训练过程可以在服务器、服务器集群或云服务器等平台上进行,也可以在电子设备中执行,也可以是在其他平台上运行,比如各类仿真软件(如matlab)平台,本申请实施例对此不作限定。
作为一种可能的实现方式,如果第一修复模型的训练过程是平台上进行的,那么在训练结束后,可将训练好的第一修复模型预设在电子设备中。这样在进行指纹修复时,电子设备可以直接调用第一修复模型进行指纹修复。
图7示出了指纹修复图像的效果对比的一个示例图。图7中(1)所示的是在指纹修复之前的一个指纹图像的示例图。图7中(1)所示的指纹图像在采用本申请实施例的第一修复模型修复后,得到图7中(2)所示的指纹图像。图7中(3)所示的指纹图像在采用本申请实施例的第一修复模型修复后,得到图7中(4)所示的指纹图像。从图7中可以看到,相比于修复前的指纹图像,修复后的指纹图像会更加平滑和清晰,且噪声也得到去除。利用修复后的指纹图像进行指纹识别,会极大提高指纹识别的成功率。
图8是应用本申请实施例的一个应用场景的示意图。如图8中(1)所示,用户点击屏幕进行解锁,指纹解锁失败,界面显示如图8中(2)所示,向用户提示窗口11“指纹匹配失败,请保持手指和感应器清洁”。在采用本申请实施例的指纹识别方法后,手机采集的指纹可通过第一修复模型进行修复。如图8中(3)所示,在用户点击屏幕进行解锁时,手机可通过第一修复模型对识别失败的指纹进行修复。利用修复后的指纹进行解锁,可以解锁成功,界面显示如图8中(4)所示,界面中呈现指纹解锁成功后的界面。
应理解,图8中的应用场景仅仅是为了便于本领域技术人员理解,并非要将本申请实施例限于例示的具体场景。
上文结合图1至图8,详细描述了本申请实施例提供的指纹识别方法。下面将结合图9详细描述本申请的装置实施例。应理解,本申请实施例的指纹识别装置可以执行前述本申请实施例的各种指纹识别的方法,即以下各种产品的具体工作过程,可以参考前述方法实施例中的对应过程。
图9是本申请实施例的指纹识别装置900的示意性框图。
应理解,装置900可以执行图4至图8所示的指纹识别的方法。该指纹识别的装置900包括:输入单元910和处理单元920。在一种可能的示例中,装置900可以是终端设备。
在一个示例中,所述输入单元910用于接收用户的第一操作,所述第一操作用于触发指纹识别;
所述处理单元920用于响应于所述第一操作,调用指纹采集模块获取第一指纹,并基于所述第一指纹进行指纹识别;
所述处理单元920还用于在指纹识别失败时,利用第一修复模型对所述第一指纹进行修复,得到第二指纹;
其中,所述第一修复模型是基于指纹图像数据对进行模型训练得到的,且,在模型训练的过程中确定了第一损失函数,所述第一损失函数是基于方向场信息确定的,所述方向场信息是通过对在训练过程中得到的修复后指纹图像进行滤波得到的;
其中,所述指纹图像数据对中包括具有对应关系的第三指纹和第四指纹的数据,所述第四指纹的质量优于所述第三指纹的质量;
所述处理单元920还用于基于所述第二指纹进行指纹识别。
可选地,作为一种可能的实现方式,所述方向场信息是通过对修复后的指纹图像的数据进行滤波得到的,包括:
对修复后的指纹图像进行归一化处理,得到归一化处理后的指纹图像;
对所述归一化处理后的指纹图像进行图像分块,获得多个图像块;
针对所述多个图像块中的每个图像块确定图像块的方向和频率;
基于所述图像块的方向和频率进行空域滤波,获得所述方向场信息。
可选地,作为一种可能的实现方式,所述归一化处理后的指纹图像满足下式:
/>
其中,N1表示像素点的均值大于先验均值的归一化结果,M0表示预设的先验均值,V0表示先验标准差,g1(x,y)表示大于先验均值M0的像素点的坐标,表示修复后指纹图像的均值,S表示修复后指纹图像的标准差;
对于小于先验值M的像素点,归一化结果表示为:
其中,N2表示像素点的均值小于先验均值的归一化结果,M0表示预设的先验均值,V0表示先验标准差,g2(x,y)表示小于先验均值M0的像素点的坐标,表示修复后指纹图像的均值,S表示修复后指纹图像的标准差。
可选地,作为一种可能的实现方式,所述第一损失函数是基于第一输出结果确定的,其中,所述第一输出结果包括所述修复后指纹图像的方向场信息,所述修复后指纹图像指的是将所述第三指纹输入到所述第一修复模型的训练网络时获得的修复指纹图像。
可选地,作为一种可能的实现方式,所述第一修复模型的训练过程中还确定了第二损失函数,所述第二损失函数基于第二输出结果与所述第四指纹确定的,所述第二输出结果是指:在模型训练过程中将所述第三指纹输入到所述第一修复模型的训练网络时获得的修复后指纹图像的结果。
可选地,作为一种可能的实现方式,所述方向场信息是通过加博滤波得到的。
可选地,作为一种可能的实现方式,所述指纹图像数据对是通过两路生成对抗网络退化模型获得的,其中,所述两路生成对抗网络退化模型是基于训练数据进行训练得到的。
应理解,上述装置900以功能单元的形式体现。这里的术语“单元”可以通过软件和/或硬件的形式实现,本申请实施例对此不作具体限定。
例如,“单元”可以是实现上述功能的软件程序、硬件电路或者二者结合。所述硬件电路可能包括(applicationspecificintegratedcircuit,ASIC)应用特定集成电路、电子电路、执行一个或多个软件或固件程序的处理器(例如共享处理器、专有处理器或组处理器等)和存储器、集成逻辑电路,和/或其他可以提供上述功能的合适器件。在一个简单的实施例中,本领域的技术人员可以想到装置900可以采用图2所示的形式。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请还提供了一种计算机程序产品,该计算机程序产品被处理器执行时实现本申请中任一方法实施例所述的方法。
该计算机程序产品可以存储在存储器中,经过预处理、编译、汇编和链接等处理过程最终被转换为能够被处理器执行的可执行目标文件。
本申请还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被计算机执行时实现本申请中任一方法实施例所述的方法。该计算机程序可以是高级语言程序,也可以是可执行目标程序。
该计算机可读存储介质可以是易失性存储器或非易失性存储器,或者,可以同时包括易失性存储器和非易失性存储器。其中,非易失性存储器可以是只读存储器(read-only memory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(random access memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(dynamic RAM,DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data rateSDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(directrambus RAM,DR RAM)。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器ROM、随机存取存储器RAM、磁碟或者光盘等各种可以存储程序代码的介质。
应理解,在本申请的各种实施例中,各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请的实施例的实施过程构成任何限定。
另外,本文中术语“系统”和“网络”在本文中常被可互换使用。本文中的术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。例如,A/B可以表示A或B。
本申请实施例中出现的术语(或者说编号)“第一”、“第二”、…等,仅用于描述目的,即只是为了区分不同的对象,比如,不同的“指纹”等,并不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”、…等的特征可以明示或者隐含地包括一个或者更多个特征。在本申请实施例的描述中,“至少一个(项)”是指一个或多个。“多个”的含义是两个或两个以上。“以下至少一个(项)”或其类似表达,是指这些项中的任意组合,包括单个(项)或复数个(项)的任意组合。
例如,本申请实施例中出现的类似于“项目包括如下中至少一种:A,B,以及C”表述的含义,如无特别说明,通常是指该项目可以为如下中任一个:A;B;C;A和B;A和C;B和C;A,B和C;A和A;A,A和A;A,A和B;A,A和C,A,B和B;A,C和C;B和B,B,B和B,B,B和C,C和C;C,C和C,以及其他A,B和C的组合。以上是以A,B和C共3个元素进行举例来说明该项目的可选用条目,当表达为“项目包括如下中至少一种:A,B,……,以及X”时,即表达中具有更多元素时,那么该项目可以适用的条目也可以按照前述规则获得。
总之,以上所述仅为本申请技术方案的较佳实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (10)
1.一种指纹识别的方法,其特征在于,包括:
接收用户的第一操作,所述第一操作用于触发指纹识别;
响应于所述第一操作,获取第一指纹,并基于所述第一指纹进行指纹识别;
在指纹识别失败时,利用第一修复模型对所述第一指纹进行修复,得到第二指纹;
其中,所述第一修复模型是基于指纹图像数据对进行模型训练得到的,且,在模型训练的过程中确定了第一损失函数,所述第一损失函数是基于方向场信息确定的,所述方向场信息是通过对在训练过程中得到的修复后指纹图像进行滤波得到的;
其中,所述指纹图像数据对中包括具有对应关系的第三指纹和第四指纹的数据,所述第四指纹的质量优于所述第三指纹的质量;
基于所述第二指纹进行指纹识别。
2.根据权利要求1所述的方法,其特征在于,所述方向场信息是通过对修复后的指纹图像的数据进行滤波得到的,包括:
对修复后的指纹图像进行归一化处理,得到归一化处理后的指纹图像;
对所述归一化处理后的指纹图像进行图像分块,获得多个图像块;
针对所述多个图像块中的每个图像块确定图像块的方向和频率;
基于所述图像块的方向和频率进行空域滤波,获得所述方向场信息。
3.根据权利要求2所述的方法,其特征在于,所述归一化处理后的指纹图像满足下式:
其中,N1表示像素点的均值大于先验均值的归一化结果,M0表示预设的先验均值,V0表示先验标准差,g1(x,y)表示大于先验均值M0的像素点的坐标,表示修复后指纹图像的均值,S表示修复后指纹图像的标准差;
对于小于先验值M的像素点,归一化结果表示为:
其中,N2表示像素点的均值小于先验均值的归一化结果,M0表示预设的先验均值,V0表示先验标准差,g2(x,y)表示小于先验均值M0的像素点的坐标,表示修复后指纹图像的均值,S表示修复后指纹图像的标准差。
4.根据权利要求1至3中任一项所述的方法,其特征在于,所述第一损失函数是基于第一输出结果确定的,其中,所述第一输出结果包括所述修复后指纹图像的方向场信息,所述修复后指纹图像指的是将所述第三指纹输入到所述第一修复模型的训练网络时获得的修复指纹图像。
5.根据权利要求1至4中任一项所述的方法,其特征在于,所述第一修复模型的训练过程中还确定了第二损失函数,所述第二损失函数基于第二输出结果与所述第四指纹确定的,所述第二输出结果是指:在模型训练过程中将所述第三指纹输入到所述第一修复模型的训练网络时获得的修复后指纹图像的结果。
6.根据权利要求1至5中任一项所述的方法,其特征在于,所述方向场信息是通过加博滤波得到的。
7.根据权利要求1至6中任一项所述的方法,其特征在于,所述指纹图像数据对是通过两路生成对抗网络退化模型获得的,其中,所述两路生成对抗网络退化模型是基于训练数据进行训练得到的。
8.一种电子设备,其特征在于,包括处理器和存储器,所述处理器和所述存储器耦合,所述存储器用于存储计算机程序,当所述计算机程序被所述处理器执行时,使得所述电子设备执行权利要求1至7中任一项所述的方法。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,当所述计算机程序被处理器执行时,使得所述处理器执行权利要求1至7中任一项所述的方法。
10.一种芯片,其特征在于,包括处理器,当所述处理器执行指令时,所述处理器执行如权利要求1至7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210412174.3A CN116978068A (zh) | 2022-04-19 | 2022-04-19 | 指纹识别的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210412174.3A CN116978068A (zh) | 2022-04-19 | 2022-04-19 | 指纹识别的方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116978068A true CN116978068A (zh) | 2023-10-31 |
Family
ID=88481870
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210412174.3A Pending CN116978068A (zh) | 2022-04-19 | 2022-04-19 | 指纹识别的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116978068A (zh) |
-
2022
- 2022-04-19 CN CN202210412174.3A patent/CN116978068A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20200410215A1 (en) | Liveness test method and apparatus | |
CN103390153B (zh) | 用于生物特征验证的纹理特征的方法和系统 | |
US10095927B2 (en) | Quality metrics for biometric authentication | |
CN108804884B (zh) | 身份认证的方法、装置及计算机存储介质 | |
KR102294574B1 (ko) | 딥러닝 기반의 얼굴인식모델을 이용하여 실물이미지를 판단할 수 있는 안면인식시스템 | |
CN111597884A (zh) | 面部动作单元识别方法、装置、电子设备及存储介质 | |
CN116311388B (zh) | 指纹识别的方法和装置 | |
US20200302041A1 (en) | Authentication verification using soft biometric traits | |
EP4085369A1 (en) | Forgery detection of face image | |
CN116311389B (zh) | 指纹识别的方法和装置 | |
CN112651333A (zh) | 静默活体检测方法、装置、终端设备和存储介质 | |
CN115580690B (zh) | 图像处理的方法和电子设备 | |
CN111274602A (zh) | 一种图像特征信息替换方法、装置、设备及介质 | |
CN116978068A (zh) | 指纹识别的方法和装置 | |
CN114299569A (zh) | 一种基于眼球运动的安全人脸认证方法 | |
CN116978067A (zh) | 指纹识别的方法和装置 | |
CN116311395B (zh) | 指纹识别的方法和装置 | |
CN116311396B (zh) | 用于指纹识别的方法和装置 | |
CN108171026A (zh) | 鉴权方法和装置 | |
CN116110136A (zh) | 活体检测方法和系统 | |
Mohzary | ML-CHIEFS: Machine Learning-Based Corneal-Specular Highlight Imaging for Enhancing Facial Recognition Security | |
CN112906613A (zh) | 一种身份信息采集方法及装置 | |
CN114639128A (zh) | 指纹防伪方法、装置和设备 | |
CN117456571A (zh) | 一种指纹识别方法及电子设备 | |
CN116740777A (zh) | 人脸质量检测模型的训练方法及其相关设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |