用于识别图像内目标的方法和用于执行该方法的移动装置与流程

文档序号:23068047发布日期:2020-11-25 17:55阅读:129来源:国知局
用于识别图像内目标的方法和用于执行该方法的移动装置与流程

本发明涉及一种使用图像中具有表征用户身份的生物识别特征的目标来识别用户的方法,以及适用于执行相应方法的移动装置。



背景技术:

图像识别总地来说用途广泛并且能够实现多种应用。例如,识别图像中特定的人物和面部或者对象被社交网络和其他媒体以近乎泛滥的方式使用。此外,在较新型的智能电话中,也会使用身份识别技术来通过例如指纹传感器识别用户的身份。

先前的技术,不管它们使用"穷举法(bruteforce)"还是经过专门训练用于辨识对象的较新网络,都需要大量的计算机资源,才能实现对图像内对象的识别。

不过,最近给出了一种"youonlylookonce"技术,这种技术能够实现明显更快又可靠的图像内目标辨识。redmon等人所著的论文《youonlylookonce:unified,real-timeobjectdetection》和redmon等人所著的论文《olo9000:better,faster,stronger》中解释了这一技术的基本原理。

"youonlylookonce"技术(本文中称为yolo技术)的基本概念是将获得的图像分为多个网格和使用一个经过训练的神经网络,为的是使用包括各自对所获得图像进行处理的多个归约层和卷积层的神经网络辨识出一个或多个网格单元内的目标。

虽然所使用的神经网络会获得适当的结果,而且虽然可以对运动图像(视频)针对多个目标进行实时检测,但是事实证明,对于其它的非常特殊目标如指尖的辨识,它们还不完全适用。这会导致辨识目标所需的时间较长。

另外,由于神经网络相对复杂,需要大量的计算机资源才能实现目标的实时辨识,这又使得yolo技术并不适合应用于像智能手机和平板电脑这样的现有移动设备。

发明目的

鉴于以上所述,本发明的目的是提供这样的方法和系统:能够在提供高检测准确度的同时实现用户快速识别,与此同时,能够简化用户与用于识别的移动装置的交互。此外,有益地是,减少辨识所需的计算机资源,使得可以在目前这一代移动装置中实现辨识。



技术实现要素:

这一目的通过按照在移动计算装置上实施的方法和移动计算装置来达成的。并给出了本发明的优选实施方式。

按照本发明的使用具有用户的生物识别特征的用户目标的图像来识别用户的方法,该生物识别特征例如是指纹或一组指尖指纹,该方法包括:

通过移动装置的光学传感器获取目标的图像;

将所述图像提供给神经网络;

由该神经网络处理所述图像,从而辨识出图像中的目标和目标在图像中的位置;

从所辨识出的目标中提取生物识别特征;

将所述生物识别特征存储在存储装置中和/或将至少所述生物识别特征作为输入提供给一识别机制,该识别机制包括处理所述输入以确定所述生物识别特征是否识别出所述用户。

这里,所述存储装置可以是与移动装置本身相关联的任何装置,或者可以是设置在移动装置外部的远程存储装置。例如,所述存储装置可以是与生物识别特征要被经由数据传输机制诸如移动互联网或其它传输机制转发去往的公司的服务器相关联的存储器。

向所述识别机制提供生物识别特征可以同样地包括在移动装置内对生物识别特征进行内部转发,例如转发到特定的应用,或者经由适当的传送机制将生物识别特征转发到诸如银行、社交网络等的登录服务器之类的远程识别机制。

获得图像的步骤优选地是通过自由拍摄的图像或允许自由拍摄手或手指的图像的应用来执行的。这意味着这种应用不提供任何指示用户如何摆放他或她的手和手指才能拍摄用于识别的图像的提示。

该方法在使得用户摆脱如何行为或如何与移动装置进行交互造成的任何约束的同时,能够轻松、可靠地辨识用户。

在一个实施例中,目标是至少一个指尖,并且生物识别特征是指尖的指纹,并且其中,由识别机制对输入进行处理包括从指纹中提取生物特征,例如特征点的位置和种类,并且将所提取的生物特征与存储装置中存储的生物特征进行比较,其中,如果所提取的生物特征与所存储的生物特征之间的差低于阈值,则识别机制确认用指纹识别出了用户,并且,如果生物特征与所存储的生物特征之间的差高于阈值,则识别机制确认用指纹没有识别出用户。

生物特征可以是能够实现用户的生物识别的任何特征,或者可以至少利用生物特点和潜在的其他特点辅助识别用户。

所述阈值可以是表示使用图像取得或获得的生物特征是否与所存储的生物特征相符以及相符多少的数值。例如,该阈值可以是实数x,其中0≤x≤1。这里,x较大意味着允许所获得的生物特征和所存储的生物特征彼此区别较大,但同时仍然能够实现用户的识别。x较小,则所获得的生物特征必须与所存储的生物特征相符程度较高,才能获得识别结果。

通过按需设置阈值的值,可以提高识别的安全性。

在这一实施例的更具体的实现方式中,图像包括一个以上的指尖,并且该方法此外还包括:辨识各个指尖在图像中的位置,并且由识别机制使用各个指尖的指纹来进行用户的识别。

通过使用例如所有手指进行识别,该识别用户的方法不太容易失败,因为伪造一个以上的指纹需要大量资源并且可能性较小。

在该实施例的一种实现中,识别机制通过确认图像中所有指尖的指纹的组合识别精度高于给定阈值,确定通过指尖的指纹来识别出用户,或者,识别机制通过针对每个指尖,确认指尖指纹的生物特征与所存储的指尖指纹的生物特征之间的差异是否低于一个阈值来确定通过指尖的指纹识别出用户,并且仅在所有所确定的差异都低于相应的阈值的情况下才确定通过指尖指纹来识别出用户。

组合识别精度须要被理解为孤立获取的各个生物特征的识别精度的组合。例如,这意味着,例如,各个指纹的生物特征都需要与其他指纹分开地进行评估。在上面的实施例中,如果差异低于给定阈值,则生物特征被视为与所存储的生物特征相符。所获得的生物特征与所存储的生物特征之间的符合度的相对值可以代表识别精度。例如,如果所获得的生物特征与所存储的指尖生物特征之间有99.9%相匹配,则识别精度的值可以为0.999。然后可以得到所有识别精度的总和,如果这个总和高于一个阈值,该阈值可以例如取决于单独一个所获得的生物特征是否被认为与所存储的生物特征相符的阈值,则认为该用户是由所获得的生物特征识别出来的。

在一个实施例中,图像是由作为移动装置的光学传感器的摄像头获得的。这使得本发明的方法可应用于诸如智能手机之类的当代移动装置,因为几乎每个目前可用的智能手机都拥有至少一个摄像头。

在一个实施例中,由神经网络对作为输入的图像进行处理包括:由神经网络的第一层对该输入进行处理,以创建第一中间输出,并由各个后续层来处理前一层的输出,其中该神经网络包括多个层,各层是深度可分离卷积,按照层内对输入进行处理的顺序,包括深度卷积层、第一批量归一化器、第一修正线性单元、逐点卷积层、第二批量归一化器和第二修正线性单元;

其中,通过使用多层来处理输入,神经网络获得目标的识别结果和目标在图像中的位置作为输出。

所预计的深度卷积层使用与原始图像相对应的特征图(矩阵)与具有例如3×3大小的矩阵的形式的内核的乘积或内积,来计算另一矩阵。对于识别效率而言,使用这些层效率更高。这具体是因为最大池化层会导致信息丢失,进而需要更多次迭代。鉴于此,上述实施例中提出的深度卷积层在它们的参数敏感性方面比常用的卷积层更有效。

深度卷积层和逐点卷积层也可以被称为深度卷积子层和逐点卷积子层。实际上,它们是神经网络中"层内的层",因此构成了子层。

通过应用如上述实施例中给出的深度卷积层与逐点卷积层、批量归一化器和修正线性单元共同完成的这种具体实现方式,神经网络对图像中像指尖这样的携带生物特征的目标进行实时辨识所需的计算机资源,相较于目前公知的神经技术,得到了明显减少,原因在于,公知的yolo技术依赖于最大池化层作为所使用的神经网络内的层组中的一层。

在一个实施例中,创建输出包括在处理期间将图像分离成包括q×r个网格单元的网格,其中在各个网格单元内创建至少一个边界框,该边界框具有网格单元内的预定位置和预定的几何特征,其中创建输出此外还包括修改边界框的位置和几何特征以获得结果边界框,其中,结果边界框是具有与目标所在地最接近匹配的结果位置和结果几何特征的边界框。

将所获得的图像分离成具有预定边界框的网格单元,能够在最终结果中正确显示通过使用边界框辨识出的目标并且正确提供关于所述目标的反馈,以标记出目标的所在地以及目标本身。

在该实施例的更具体的实现方式中,边界框的位置是在二维上相对于网格单元的中心计算出来的,并且边界框的几何特征包括边界框的高度和宽度,其中,进一步地,目标处于边界框内的概率与各个边界框相关联。

将边界框与相应的概率相关联能够提供代表边界框的矩阵或向量,并且当必须将其与以矩阵或向量形式表示的其他目标组合时,可以由图形处理单元以准确的效率进行处理。因此,所需的计算机资源甚至会进一步减少。

更具体地说,所述输出可以是维度q×r×b×a的张量t,其中a是各个网格单元中不同边界框的数量,b是与各个边界框关联的向量,该向量具有5维并且被表示为如下公式:

结果得到的张量可以由图形处理单元以高效的方式进行处理。另外,以这种张量的形式给出识别结果为容易地推断出识别特定目标的可能性最大的结果提供了可能。

此外,输出所述输出可以包括显示图像和各个网格单元中结果得到的边界框,所述结果得到的边界框是该网格单元中所有边界框中具有最高概率的边界框。

通过仅提供具有最高概率的网格单元,通过包括分别辨识出的目标的边界框向用户提供了位置以及目标的识别,这提供了易于辨认的反馈。此外,结果得到的边界框仅表示在先前实施例中作为输出提供的结果张量内的一个向量,因此通过仅取得结果得到的边界框的各个坐标,就可以被用户或其他程序容易地提取出来并用于进一步的处理。

虽然辨识指尖在图像内的位置的这种方式可能是优选的,因为事实证明它比其他方法消耗更少的资源,但是也可以考虑其他方法。例如,最初可以针对可能存在指尖的区域提出提议。然后可以进一步处理这些提议,以查明针对该区域的提议中是否确实存在类似指尖的目标。

在另一个实施例中,由神经网络处理图像包括由图像创建至少一个表示图像中各个像素的颜色值的矩阵i,并将该矩阵作为输入提供给神经网络,其中该图像包括n×m个像素,并且矩阵i是包括n×m个值的矩阵,其中,矩阵i的项由iij给出,其中i和j是整数并且i=1...n和j=1...m。

这种将图像分离成各个颜色值的矩阵为分别处理颜色值提供了可能,从而有利地提高了识别效率,同时减少了所需的计算机资源。

更具体地说,每个深度卷积层将预定义的内核k应用于矩阵i,内核k是大小为s×t的矩阵,其中s,t<n;s,t<m包括项sab,其中将内核应用于矩阵包括计算矩阵k与矩阵z的大小为(n×m)s,t的各个约简矩阵r的内积,其中矩阵r大小与内核k相同,并且矩阵z的大小为((n+2pw)×(m×2ph)),矩阵zcd(c,d∈n+)的项是由以下公式给出

并提供矩阵p作为输出,其中矩阵p的大小为其中ww和wh定义跨距宽度,矩阵p的各个项pij为第ij个约简矩阵r与内核k的内积的值,其中矩阵p作为输出由深度卷积层提供给第一批量归一化器。

内核允许适当权衡从特征图中的相邻像素获得的信息,而不会丢失任何信息,从而提高了神经网络中连续层能够支持目标识别的效率。为此,所述内核包括对应于在接收图像之前(即在训练神经网络期间)获得的特定加权值或参数的项。

本发明的一项发现是,如果在移动装置实际配备了能够执行按照上述实施例的各种方法的应用程序或其他程序之前执行这一训练,则可以有利地减少移动装置上所需的计算机资源。

尽管本发明的发现是使用深度卷积层和逐点卷积层来实施可分离卷积是最有利的,因为这种组合在识别和所需的计算机资源方面显示出改进的性能,但是仍然可以设想将深度卷积层替换为特别适合于识别手指或指尖的卷积层。因此,即使本发明的说明书重点集中在深度卷积层的使用上,也可以使用卷积层来实现本发明。

在另一个实施例中,批量归一化器通过计算来从矩阵p计算平均值v,并且创建具有项p'ij=pij-v的批量归一化约简矩阵p'。

通过应用这一归一化,可以在整个图像处理过程中通过各个层滤除诸如过度曝光之类的无意造成的效果,从而为提高识别图像中目标的效率提供了可能。

此外,内核的大小s和t对于所有卷积层可以是相等的,或者对于至少一个卷积层是不同的。

通过为各个卷积层(即各个深度卷积层)选择相同的内核,可以减小安装在相应移动装置上的最终得到的程序的大小。另一方面,如果使用对于卷积层中的至少一个而言不同的内核,则如果对内核进行适当的改写,则可以避免识别失败方面的已知问题。例如,在识别过程开始时使用较大的内核(相当于s和t较大)可以为取得并聚焦图像的更重要部分提供可能,从而提高识别效率。

在一个具体实施例中,s,t=3并且对于所有深度卷积层都是相同的,并且其中至少一项sa′b′≠sa≠a′,b≠b′。

本发明的一项发现是,对应的内核代表了在内核的大小、识别效率和实现相应方法所需的计算机资源之间的最佳平衡,从而提高了识别精度和所需计算机资源方面的总体效率。

在进一步的实施例中,批量归一化器将归一化的约简矩阵p'提供给修正线性单元,并且修正线性单元对各个项p'ij应用修正函数,其中修正函数计算具有项的新矩阵并且,如果修正线性单位是第一修正线性单位,则矩阵作为输出被提供给逐点卷积层,或者如果修正线性单位是第二修正线性单位,则将矩阵作为输出提供给神经网络的下一层。

这个修正函数为在神经网络的每一层之后滤除图像中可能会对识别精度产生负面影响的部分提供了可能。由此,可以减少错误识别的数量并且可以相应地减少为了达到适当的识别精度所必需的迭代的数量,从而节省计算机资源。

还可以规定,通过将矩阵p,p'或中的每个项乘以加权值α,逐点卷积层将加权值α应用于从前一层接收的矩阵i,p,p'或

即使对特征图中的各个点都应用了相同的加权值α,这一实施例也可以有效地衰减图像中的部分(对应于矩阵中不会显著影响识别的项)。通过减少矩阵中这些部分的绝对贡献,并与修正线性单元一起在下一个循环中将这些部分清除掉,可以实现这一衰减。

在一优选实施例中,前面解释的方法的各个步骤都在移动装置上执行。

这可以至少包括前面介绍的方法的涉及图像处理和用户识别的步骤。图像或生物特征或生物识别特征的存储仍然可以由在移动装置内部或外部的任何存储装置来执行。此外,仍然可以预想到,在不同于移动装置的装置(例如公司的服务器)上执行识别用户的识别步骤。

通过仅仅在移动装置上执行各个步骤,不再需要使得用于例如向其上运行实际识别处理的服务器传输数据的信道保持开放。由此,目标识别也能在不能访问移动网络或局域网的区域中使用。

按照本发明的移动装置包括光学传感器、处理器和存储可执行指令的存储单元,所述可执行指令在由移动装置的处理器执行时,使得处理器执行上述实施例中的任何一个的方法。

附图说明

图1表示按照本发明的用于识别用户的方法的总体框图;

图2表示使用从图像中提取的生物特征进行识别的更具体流程图;

图3示出了表示按照一个实施例的识别图像内的目标的通用处理流程的示意图;

图4示意性地示出了按照一个实施例的神经网络内的一层的结构以及该层内的数据处理;

图5是使用边界框处理手的图像的示意图;

图6表示训练神经网络的过程;

图7示出了按照一个实施例的用于获得图像并且识别该图像内的目标的移动装置。

具体实施方式

图1示出了按照本发明的用于使用用户的目标的图像来识别用户的方法的总体框图。该方法从步骤11开始,在步骤11中,获得这一目标的图像。用户的这个目标将具有生物识别特征,利用该生物识别特征能够识别用户。具体地,该目标可以是用户的指尖或手或多个指尖,并且从该图像获得的生物识别特征可以是至少一个指尖指纹或者甚至是例如两个,三个或四个指尖得一组指纹。

图像可以是使用诸如摄像头之类的光学传感器获得的。最优选地,该光学传感器是诸如市场上常见的智能手机之类的移动装置的光学传感器。该摄像头可以是能够获得一百万像素或更多的高清晰度图像的摄像头。

然后将所获得的图像提供给神经网络以在步骤12中进行处理,下面将会对该步骤进行详细说明。将图像提供给神经网络可以包括在移动装置内部将图像转发或传输到实现神经网络的相应应用或将图像提供到远程位置。这个远程位置可以是服务器或其他计算实体。不过,优选地,将图像提供给驻留在移动装置中的神经网络。

然后,在步骤13中,由神经网络处理图像,这将在下面参照图3至图6更详细地解释。在任何情况下,神经网络对图像的处理将导致识别出图像中具有生物识别特征的目标和目标本身的位置。这意味着,例如在目标是指尖的情况下,神经网络将会识别出图像中的指尖(即,确定指尖存在于图像中)并且识别出其在图像中的位置。识别出指尖在图像内的位置可以例如包括:识别属于指尖的所有像素,或者至少识别图像内与整个图像不同的子部分,例如,对应于图像总面积的十分之一的部分。

在下一步骤14中,从识别出的目标中提取生物识别特征。这一提取可以包括例如仅提取所识别的指尖的实际上构成指纹的那些部分。

然后可以进一步处理该生物识别特征。这在步骤15和16中展示。

在步骤15中,仅存储生物识别特征。存储生物识别特征可以包括将生物识别特征优选地存储在非易失性存储装置上。这一存储装置可以是移动装置本身中像固态存储器这样的设备装置,也可以是远程存储地点中的存储装置。远程存储地点可以是公司的服务器或任何其他远程存储地点。在这种情况下,通过诸如lan连接或wlan连接之类的数据传输机制或经由移动互联网以数据包的形式(例如图像或pdf或数值等)转发生物识别特征。

除了以任何方式存储生物识别特征之外,或者代替按照步骤15那样存储生物识别特征,还可以按照步骤16将生物识别特征转发给识别机制作为输入。这一识别机制可以是驻留在拍摄了具有生物识别特征的用户目标的图像的移动装置中的应用程序,也可以是远程识别机制,例如服务器或其他实体中的日志,该日志使用该生物识别特征识别用户身份并且执行其他步骤,例如登录社交网络,银行帐户等。

图2表示在生物识别特征是指纹的情况下如何使用生物识别特征来识别用户的更详细的解释,其中目标将是至少一个指尖。

图2中的方法开始于步骤21,在步骤21中,从指尖提取生物特征,因此,这些步骤至少是在图1中解释的步骤14中从所识别出的目标中提取出生物识别特征的步骤之后执行的。

从指尖提取生物特征可以例如包括提取指纹的位置和特征点的种类。它还可以包括仅提取非常特定种类的特征点(例如指纹中两条或更多条线的交叉)。

为了使用这一信息识别用户,当然有必要以对应生物特征的形式提供参考。出于这个原因,可能是这样的情况,前面参照图1解释的识别机制与存储装置相关联或包括一个存储装置,该存储装置中存储有针对特定用户的生物特征。例如,对于每个用户,可以存在一个文件,在该文件中以例如图像、数值或其他数据结构的形式存储着一个或多个生物特征。

在下一步骤22中,将从指纹获得的生物特征与对应存储的生物特征进行比较。这可以包括,在所存储的生物特征由多个特征点的位置表示的情况下,比较所提取的生物特征中的相应位置。当然,用于将所获得的生物特征与所存储的生物特征进行比较的其他手段是已知的并且可以被使用,例如图像识别技术,频率变换等。按照本发明,以使得所获得的生物特征与所存储的生物特征之间的符合程度可以被计算出来的方式来进行所获得的生物特征与所存储的生物特征的比较。换句话说,这一比较将导致所存储的生物特征与所获得的生物特征之间的差被计算出来。这个差可以是单个实数或张量或向量或任何其他数学结构。它也可以是通过逐像素地从所存储的生物特征图像中减去所获得的生物特征图像而获得的差异图像。

可以提供一个阈值,该阈值可用于确定所获得的生物特征是否与所存储的生物特征相符合,从而实现用户识别。

相应地,在步骤23中,确定所获得的生物特征与所存储的生物特征之间的差是低于还是高于这一阈值。如果低于该阈值,则在步骤25中确定通过生物特征识别出了用户。如果差高于阈值,则在步骤24中确定未通过识别特征识别出用户。

然后,这将导致识别机制确认通过所获取的指纹识别出了用户还是通过所获取的指纹没有识别出用户。

图1和图2描述了在仅仅一个指尖用于识别用户并且该指尖存在于图像中的情况下,使用从原始拍摄的图像中获得的生物识别特征来识别用户的方式。

不过,还可以想到,识别机制不仅可以评估单个指尖,而且可以评估多于一个的指尖,例如两个指尖或者甚至图像中可得到的所有指尖,以便识别用户。识别机制将从单个指尖或多个指尖的指纹获得的生物特征与所存储的生物特征相匹配的方式与参照图2所描述的方式相一致。

然而,如果评估一个以上的指纹,则可能是仅在生物特征的组合识别精度高于给定阈值的情况下才识别出用户,或者仅在对于所获得的各个指尖,如图2的步骤22和23中所解释的所获得的生物特征与存储的生物特征的比较会导致步骤25的结果的情况下才识别出用户。

最后一种情况很简单,因为针对图像中的每个指纹执行参照图2解释的方法,并且对于各个所获得的指纹,仅当所获得的生物特征与所存储的每个特征的生物特征之间的差低于给定阈值时,用户才能被识别出来。在任何其他情况下,可能无法识别用户。

不过,在用户被识别出的情况下,如果图像中所有指尖的指纹的组合识别精度高于给定阈值,则对于每个指尖,所获得的生物特征与所存储的生物特征的比较并非必须像图2的步骤23那样得到低于阈值的差。

例如,考虑到生物特征的识别精度是从0(未识别)到1(所获得的生物特征和存储的生物特征之间的完全匹配)范围内的数字,则如果组合识别精度是由仅针对每个生物特征单独获得的孤立识别精度的总和来确定的,组合识别精度可以具有小于4的值(对应于四个指纹的完美识别精度)。

例如,用于组合识别精度的相应阈值可以是3.5。在这种情况下,例如在每个指纹的识别精度约为0.9的情况下,就足以识别出用户,因为这些识别精度的总和(即,组合识别精度)为3.6,因此高于相应的阈值。作为另一例子,考虑到三个指纹要以0.95的识别精度来识别,因此如果仅以0.75的精度识别第四根手指就足够了。

注意,识别准确度可以看作是所获得的生物特征与存储的生物特征之间的相似或相符的相对程度。因此,在所获得的生物特征与所存储的生物特征90%相符的情况下,识别精度(即,利用该生物特征识别用户可以有多精确)将为0.9。

显然,也可以为识别精度使用其他值,或者甚至为阈值使用其他值。此外,还有其他可以确定组合识别精度的手段。例如,可以通过确定识别精度的平均值或通过确定识别精度的乘积来计算组合识别精度。

在下面的附图中,将更详细地描述按照步骤12至步骤14那样最终提取出生物识别特征的原始获得的图像的处理,并将会进一步给出如何将神经网络训练得能够以高精度识别指尖的说明。

图3描绘了按照一个实施例的图1的步骤12至14的实现方式的流程图。现在解释的方法旨在实现在所获得的图像内识别出带有用户的生物特征的目标。在本发明的意义上,该图像优选地在第一个步骤101(对应于图1中的步骤11)中由移动计算装置的光学传感器获得。该移动计算装置可以是智能手机或平板计算机或其他相应装置。光学传感器因此通常将是摄像头,但是也可以是红外摄像头或其他光学传感器。该摄像头可以是分辨率为1兆像素(mp)的摄像头,也可以是hd摄像头,甚至可以具有较低的分辨率。优选地,所获得的图像的分辨率为至少224×224,每个像素具有三个颜色值。

所获得的图像可以包括一个目标,按照本发明不仅要针对该目标本身(例如指尖)进行识别,而且还要针对它在图像中的位置来进行识别。该目标旨在携带或具有用户的生物识别特征,从而能够正确识别该用户。这意味着该目标必须是指尖或一组具有指纹的指尖之类的目标。已知可以将指纹用于唯一地识别用户,即,除了一些非常特殊的情况之外,指尖对于每个人都是唯一的,因此可以基于所获得的指纹来区分两个人。

尽管对于图1和随后的附图来说都引用了“图像”,但是本发明能够实现实时目标识别,因此,所需的处理时间在几毫秒的范围内,从而也能够实现正确识别连续图像中的目标,例如光学传感器获得的视频或实时流中的目标。因此,术语“图像”应理解为不仅指单个图像,而且指的是在很短的时间内连续获得的图像,例如视频流。

实际上,如对于智能手机所常见的那样,当激活摄像头时,智能手机的用户甚至不拍摄照片就能够获得摄像头的实际视图。因此,这一“初步视图”也由摄像头通常以较低的分辨率拍摄的多个图像构成。即使对于这些图像,也可以使用所介绍的本发明的方法。

在该方法的第二个步骤102中,按照图1的步骤12,将所获得的图像(或一个接一个地连续获得的图像)提供给神经网络,其中神经网络优选地但非必需地驻留在移动装置上。

可以在移动装置上运行的应用程序(app)中或任何其他程序中实现神经网络。在本发明的优选实施例中,由神经网络进行的进一步处理和在本发明的方法中进行的任何其他步骤都是在不必引用移动装置外部的任何计算实体的情况下执行的,因此也为在移动装置的“离线”模式下执行该方法提供了可能。

步骤102可以通过将图像直接转发到神经网络而无需对图像进行任何进一步处理或无需对图像进行任何进一步预处理来实现。不过,这个步骤也可以包括图像的预处理,其中例如改变,具体来说是降低,原始获得的图像的分辨率。本发明的一项发现是,特别是在识别图像内的指尖的情况下,具有相对较低的分辨率224x224x3就足够了("3"对应于图像的三个颜色值,即蓝色,红色和绿色)。在所获得的图像具有比识别指尖所需的224×224图像分辨率大得多的分辨率的情况下,步骤102或在步骤102和103之间提供的步骤可以包括降低图像的分辨率。这一预处理还可以包括其他步骤,例如改变亮度条件、改变图像内的伽马值或提供任何其他被认为合适的预处理。

在步骤102中将图像作为输入提供给神经网络之后,在步骤103中由神经网络以这样的方式对该输入进行处理:创建为识别图像内的目标和/或目标的位置提供可能的输出。在目标是指尖的情况下,这意味着所识别出的图像中存在的至少一个指尖(例如以标签的形式)及其位置(例如构成指尖的像素的坐标)也以某种方式在输出中提供。如稍后将说明的,这可以通过在与指尖相对应的位置处提供包围并包括所识别出的指尖的边界框来实现,该边界框被叠加在指尖上。然后可以将此边界框相对于图像的坐标用作指尖的位置。

通过使用神经网络,可以以多种方式促进在步骤103中对输入(即,本质上是接收到的图像)的处理。在任何情况下,本意都是神经网络是经过训练的、专门训练用来识别带有生物识别特征的预期目标的神经网络。更优选地,该神经网络是训练用于在输入图像内识别指尖,而不管指尖相对于光学传感器的位置和排布,只要该光学传感器可以拍摄至少一个指尖的图像即可。如稍后将解释的那样,该处理可以涉及通过神经网络的多个层对输入进行处理。

按照本发明,这至少包括:输入由神经网络的第一层处理以创建第一中间输出,然后该第一中间输出由在神经网络的处理方向上处于第一层之后的层进行处理以创建第二中间输出。然后将该第二中间输出转发到神经网络中的下一层,在该层中对其进行处理以创建第三中间输出,依此类推,直到神经网络中的所有层都已处理了它们相应接收的中间输出。神经网络中的最后一层将提供"最终"输出,如后面所解释说明的那样,该输出稍后可以是步骤104中的输出。

此外,按照本发明,神经网络的每一层都是由两个卷积层构成的,如此一来,神经网络的每一层都代表深度可分离卷积滤波器,也称为深度可分离卷积。按照输入通过深度可分离卷积的处理顺序,该深度可分离卷积(即神经网络的层)包括深度卷积层、第一批量归一化器和第一修正线性单元。在第一修正线性单元之后的处理顺序中,提供了逐点卷积层、第二批量归一化器和第二修正线性单元,其中第二修正线性单元或接收来自修正线性单元的输出的处理模块将会把该中间输出转发到神经网络的下一层。

在通过神经网络的所有层对图像进行处理之后,将创建一个输出,该输出将最终识别目标的位置和目标本身。

这按照步骤104完成的,在步骤104中,输出神经网络的输出。按照本发明的优选实施例,该输出可以是“修改的图像”,其中该图像可以用包围所识别出的指尖的边界框来增强,以便向用户提供关于所识别的目标及其位置的反馈。

不过,输出不需要被显示在移动装置的显示器或与移动装置相关联的任何其他显示器上。实际上,输出也可以矩阵或张量的形式提供,如下所述,矩阵或张量可以正确识别图像中指尖的位置(特别是图像中构成指尖的像素的坐标),并且该矩阵或张量可以被转发到进一步处理模块使用该信息,具体是标识指尖的坐标,来对所识别出的指尖进行进一步处理。如按照图1的步骤14那样,该输出随后可以用于从识别出的目标中提取生物识别特征。

该进一步的处理可以优选地包括评估所识别的指尖以便识别用户的指纹。例如,考虑从指尖获取的高分辨率图像,本发明的方法可以包括:在第一步中,使用包括如上所述的步骤101-104的方法识别图像中指尖的位置,然后将最终输出转发到另一个图像处理组件,该组件使用识别了指尖及其位置的输出来评估高分辨率图像,以识别指纹。这可以用来识别用户,从而例如增加了参考图2解释说明的进一步处理的安全性。例如,如果用户使用本发明的方法以便通过他的移动装置来识别他自己来进行银行转账,则由于用户的指纹会唯一识别这个人,本发明的方法可以通过实现各个用户的正确且唯一的识别来提高银行转账的安全性。

本发明不限于使用用于识别指尖的相应方法来执行银行转账,而是还可以用于识别用户,以便实现例如移动装置功能的访问或需要用户的识别和认证的任何其他活动。

图4示出了按照本发明的一个实施例的神经网络的一层200中对接收到的输入进行的内部处理。该层200可以是这样的层:按照原始输入通过神经网络的处理顺序,在前面解释说明的步骤102之后接收原始输入的第一层,或者是布置在两个另外的层240和250之间的任何中间层,或者层200甚至可以是神经网络的最终会按照参照图1解释说明的步骤104提供输出的最后一层。

在任何情况下,层200将接收至少在某种程度上对应于原始获得的图像的输入230。这一输入优选地是以至少一个尺寸为n×m的矩阵的形式提的,其中n和m是大于0的整数。例如,该矩阵可以表示图像中至少一个颜色值的像素(例如红色)。因此,该矩阵中的项可以具有与该特定像素的相应颜色(在示例情况下为红色)的值相对应的值。从以下内容可以清楚地看出,该输入可能与获得的图像不同,但是可以是矩阵p,它是通过神经网络中的层进行的某些处理甚至是通过某些预处理(例如,如上所述的分辨率降低)从表示原始图像的矩阵中获得的。

不过,为了便于讨论,将假定输入230对应于代表原始获得的图像的n×m矩阵,并且这一n×m矩阵中的每一项对应于相应图像中像素的颜色(例如红色)的值。将这种思想应用于源自原始n×m矩阵并通过在神经网络的各个层中处理该矩阵而获得的任何其他变换矩阵,都是很简单的。

现在按照图4中例示的处理过程,输入230由深度卷积层211接收以进行处理。随后,将给出关于深度卷积层如何处理输入矩阵230的比较简单的例子。这将涉及使用内核k来计算与矩阵的内积。该内核以所谓的"跨距"在矩阵上运行。虽然下面的例子使用的水平和垂直跨距宽度的值为1,但是也可以使用大于1的任何其他值,只要跨距宽度是大于0的整数。内核k的大小为s×t,其中s和t是整数,并且小于n和m。

此外,假设仅使用大小为n×m的原始输入矩阵i(即输入矩阵230)计算与内核的内积。不过,也可以考虑将扩展矩阵z用于计算与内核的内积。该扩展矩阵z是通过在原始矩阵i的第一行上方和最后一行下方以及第一列左边和最后一列右边"粘贴"行和列而获得的。

这称为"填充"。填充通常包括在行方向上增加数量为pw的行,并且在列方向上增加数量为ph的列。数量pw可以等于s-1,数量ph可以等于t-1,如此一来,z和内核之间计算的任何内积都包含原始矩阵i的至少一项。因此,所得到的矩阵z将会具有((n+2pw)×(m×2ph))的大小。鉴于此,矩阵z将具有以下项:

在这种情况下,可见通过计算所有内积并且按照行和列适当安排它们而获得的新矩阵一般具有的大小,其中ww和wh分别定义了行方向上和列方向上的跨距宽度。显然,对于大小为s×t的给定内核k,仅允许这些填充和这些跨距宽度,才会得到新矩阵的大小为整数。此外,跨距宽度ww和wh优选地分别小于s和t,因为否则内核将以在计算新的矩阵时漏掉原始矩阵的一些行或列的方式在矩阵i上移动。

为了便于讨论,下面将假定未对原始矩阵i提供填充,并且水平和垂直跨距的跨距宽度均为1。此外,假设内核是大小为s×s的矩阵,即,假设s=t的特殊情况。将以下给出的解释应用于任意的填充和跨距宽度以及任何内核大小,是按照下文的思路容易实现的。

在深度卷积层211中,接收到的输入矩阵230被用于形成与内核k的内积,内核k的大小为sxs,其中s<n,m。内积是为了原始的n×m矩阵的各个约简矩阵计算的,其中约简矩阵的大小为sxs,并且包含原始n×m矩阵中的相干项。例如,考虑s=3,则n×m原始矩阵的第一约简矩阵r包括项i=1、2、3;j=1、2、3,这样简化矩阵(n×m)s包含九项并且计算出来的与内核k的内积为单独一个数字。在原始n×m矩阵的行方向上的下一个约简矩阵是i增加1的矩阵,因此在该方向上的下一个矩阵由原始n×m矩阵中的i=2,3,4;j=1,2,3的项构成。然后可以使用该矩阵来计算与内核的下一个内积。注意,s=3的s×s矩阵的给定例子仅仅是一个例子,也可以使用其他内核。

为了计算在行/列方向上大小为(n×m)s的下一个约简矩阵r,原始n×m矩阵中的项的下标j增加1。这样做,直到行方向上的最后一个约简矩阵,其中在s=3的情况下,在i=n-s+1,n-s+2,n-s+3的线方向上最后缩小的矩阵。对于列,以相应的方式完成这一处理,其中j=m-s+1,m-s+2,m-s+3。通过计算这些内积,计算出一个新的矩阵,矩阵p,其大小为(n-s+1)×(m-s+1)。它的项pij对应于用原始n×m矩阵和内核k的相应约简矩阵计算出的各个内积。应注意,实际上,该大小的矩阵将被转发到层200的逐点卷积层。

内核k构成了通过学习过程获得的项,在该学习过程中训练了神经网络以正确识别预期的目标。神经网络的层200中使用的内核k的大小和项不必与在相应神经网络的其他层中使用的内核相同。另外,内核中的项不需要彼此相同,而是至少是大于或等于0的数字。这些项可以被视为代表通过神经网络的学习而获得的"加权值"。

深度卷积层对矩阵230进行处理的结果是矩阵231,如上所述,如果内核在原始n×m矩阵上按照跨距移动,该跨距在行方向上的距离δi=1,在列方向上的距离为δj=1,则矩阵231的大小为(n-s+1)×(m-s+1)。不过,在这些跨距具有更大的距离的情况下,比如δi=2或δi=3(并且可能相应地对应于列),结果231的尺寸将如上所述相应地更改。

在进一步的处理中,该结果231被转发到第一批量归一化器212,按照图4中的箭头所示的处理顺序,第一批量归一化器212在深度卷积层211之后。该批量归一化器试图对接收到的结果矩阵231进行归一化。这是通过计算(n-s+1)×(m-s+1)矩阵中每个项的总和,然后将其除以(n-s+1)×(m-s+1)矩阵中项的数量来实现的。(n-s+1)×(m-s+l)矩阵(下文中表示为p,具有相应项pij)的平均值v由下式给出其中n和m表示n×m矩阵中的行数和列数或矩阵p中的行数和列数。项pij是矩阵p的项,其中给定项pij是矩阵第i行第j列上的元素。

然后,批量处理归一化器通过从原始矩阵中的每项pij中减去平均值v来计算约简矩阵p',使得p'ij=pij-v。由此,约简矩阵p'中的值被归一化,从而可以滤除一个或另一个方向上的异常(极大值或极低值)。

由第一批量归一化器212产生的结果232是大小仍然为(在图4中给出的示例中)(n-s+1)×(m-s+1)的矩阵,因为到目前为止,还没有进一步的尺寸减小。

然后结果232被提供给位于第一批量归一化器212后面的第一修正线性单元213。

修正线性单元进一步通过计算新的矩阵项来修改矩阵232中的各项,其中

这导致在通过了批量归一化器之后应该会小于0的值被设置为0,因此对深度卷积层中的进一步处理没有进一步影响,这将在下面进行解释。这意味着,例如,不会进一步考虑低于批量归一化器中计算出的平均值的颜色值,只有至少与平均值v相同的值才会影响下一步计算的结果。

因此,由第一修正线性单元213输出的结果233仍然是形状/大小为(n-s+1)×(m-s+1)的矩阵,并且该矩阵被转发到逐点卷积层221。

这一逐点卷积层221产生结果234。这个结果234是由逐点卷积层221通过取得(n-s+1)×(m-s+1)矩阵233中的各项并且将该项乘以加权值α而产生的。α优选地在任何情况下都是大于0的数字,并且该数字对于(n-s+1)×(m-s+1)矩阵中的各项都是相同的。因此,从逐点卷积层221获得的结果234是具有相同大小(n-s+1)×(m-s+1),但每项都乘上了加权值α的矩阵。

然后将结果234提供给第二批量归一化器222,在此以针对第一批量归一化器212所解释的方式对结果234进行归一化,并计算与结果235相同大小的归一化矩阵p',并且该矩阵/结果235被转发到第二修正线性单元223,此时应用修正功能以获得结果/矩阵236,然后将其转发到神经网络中的下一层,或者如果神经网络中没有其他层,则提供结果236作为输出。

本发明的一项发现是,为了识别指尖,十三个与图4中解释的层200相同的层是最合适的,因为它们得到了相对较高的指尖及其位置的识别精度,而仅需要少量的计算机资源来实现相应方法,这使其更适用于移动装置。

图5示出了进一步的实施例,该实施例扩展了图4中描述的概念,以便允许使用多个边界框来识别指尖(特别是构成指尖的原始图像中的像素),并将原始图像分离为网格。要注意的是,以下描述的步骤可以在神经网络的每一层中处理完原始图像之后执行,或者仅在神经网络的最后一层中已处理完图像之后执行,因此紧接在按照图3的步骤104将输出进行输出之前。

图5中描述的实施例假设神经网络已经完成学习,它完全能够基于从神经网络的层接收的输出来依照本发明以高精度识别指尖或其他目标。

按照图5的实施例,假设从神经网络的层接收的输出仍可以以某种方式以包括指尖的手350的图像300的形式来表示。因此,将会仅提及“图像”,尽管很明显,除了图像之外,还可以使用如图2所示的输出矩阵之一。

在第一个步骤中,将接收到的图像300分割为多个网格单元310、311和313。每个方向上的网格单元的数量不受限制,但是在优选实施例中,图像300被分割为水平方向上的13个网格单元和垂直方向上的13个网格单元,这样就代替了一般的q×r网格,创建了13×13网格。

在下一步骤中,识别每个网格单元的中心点330,并将其用于为独立于任何其他网格单元的每个网格单元建立坐标系的原点。围绕该中心330,布置至少一个通常具有矩形形状的边界框331和332,如在网格单元313中可以看到的,边界框331和332具有初始高度h0和宽度或扩度b0。对于每个网格单元中的多个边界框,这些值可以彼此不同。例如,可以为每个网格单元的最小边界框取初始值h0和b0,并且可以将这些值增加1.5或2倍或任何其他倍数,以计算相应网格中其他边界框的尺寸。

注意,边界框的位置,例如在各个网格单元的坐标系中的边界框331,将由边界框331的中心点相对于各网格单元中的中心点330(即各网格单元中各自坐标系的原点)的位置来表示。因此,网格单元311中的对应边界框的位置可以由两个坐标x和y表示。边界框的宽度和高度被认为代表边界框的几何特征,该几何特征可以用两个大于0的值表示。

由于这些边界框将在以后用于识别指尖的位置,因此将第五个值与这些边界框中的每一个相关联也是适当的,该第五个值是该边界框包括将要被识别的各指尖的概率。

因此,每个边界框都可以由形式的5维向量表示。

这意味着网格单元及其相应的边界框可以以维度为q×r×b×a的张量t的形式表示,其中a是每个网格单元的边界框的数量。在用于识别指尖的最优选情况下,q=r=13,b=5(向量b的维数),并且a可以设置为3到10之间的整数,最优选为5。

如上所述,假设神经网络已经完全学习如何识别特定目标,优选指尖。这涉及到神经网络能够识别出最有可能代表指尖的特定像素模式。这可能是指颜色值的特定模式或其他特征(例如斑点的亮度)。然而,显然,图像300可以任意地显示指尖,该指尖的大小和排布可能与用于训练神经网络的指尖不对应。

不过,借助边界框和网格,神经网络可以识别出最有可能包含指尖的特定边界框。为了识别这一特定边界框,神经网络(或处理图像300的相关组件)将每个网格单元的每个边界框内的像素值与神经网络之前学习的指尖所对应的像素模式进行比较。在这个第一阶段,不太可能找到完美的匹配结果,但是会有比其他边界框已经更有可能包含指尖的至少一部分的边界框。

在图5所示的情况下,例如,以网格单元313中的点m为中心的边界框341包括手350的指尖的一部分。与此相反,网格单元310和311均不包括包含指尖一部分的边界框。当该方法继续评估边界框341以及可能的边界框340内的像素值时,该处理可以确定边界框341比边界框340包括与指尖相对应的更多图案。

鉴于此,该方法可以得出以下结论:边界框331和332(可能还有其他网格单元中的其他边界框)不包含指尖,并且它们的相应b向量中它们的概率值可以被设置为0。

由于以点m为中心的两个边界框340和341均包括指尖的至少一部分,因此可以认为它们可能实际上包括指尖,并且在第一步中概率值将大于0。

尽管较小的网格单元340几乎完全填充了可以对应于指尖的图案,但是较大边界框341的只有左边界可以被该处理认为是包括对应于指尖的图案。

借助于此,该方法可以继续计算损失函数,该损失函数确定在每个边界框341和340内识别出的图案与通过学习获得的、实际上对应于指尖的图案之间的差。

在下一步中,该方法将尝试通过修改相应边界框的大小和位置来最小化这个差。为此,可以设想将较大的边界框341用作起点,并修改其位置和形状,或者将较小的边界框340用作起点,并对其位置和大小进行修改,以最小化与学习所得图案的差异。

这个最小化处理可以首先包括修改边界框的位置(在下文中,假设边界框341被用于进一步的计算),边界框位置的修改是这样完成的:围绕着各网格单元的中心点m,如图3所示,首先沿着x轴然后沿着y轴(或者反过来)将边界框少量在正交方向上移动。该移动是沿着正负x轴和y轴方向进行的,并且在各个位置,将会进行用来确定通过学习获得的图案与图像中识别的实际图案之间的差函数的比较。这为计算一个二维函数提供了可能,该二维函数表示随坐标变化的差d(x,y)。

基于此,可以计算出梯度该梯度能够确定沿着坐标系中的哪个方向移动边界框才能增大并且优选地最大化与学习获得的图案之间的匹配度(相当于最小化函数d(x,y)的值)。这就是的情况。

这可能导致边界框被沿方向r移动到新的中心点m',此处函数d(x,y)具有最小值。在下一步骤中,可以增大和减小处于位置m'处的相应边界框的大小,以便确定在一个或两个方向(即,高度和/或宽度)上增大或减小尺寸是否会改变与原始图案比较出来的另一个差函数的值,该另一个差函数可以被表示为e(h,b),它随高度h和宽度b变化。要使这个函数最小化,从而对于具有位置m'并且具有高度hf和宽度bf的特定边界框,与学习获得的图案之间的差被最小化。

然后,该边界框将被用作最终边界框,其具有识别出图像300的包含相应指尖的那些部分的最大概率p。于是,此边界框的输出向量将具有以下形式

作为这一处理的结果,具有维度q×r×b×a的张量t被输出,其中,对于各个网格单元中的各个边界框,给出了相对于网格单元中心的x和y位置以及相应边界框的宽度和高度,及其识别或包括指尖的概率。

为了防止相邻网格单元的边界框的移动被移动到相同的方向上以致它们彼此重叠,并且为了防止不同网格单元的边界框移动到其他网格单元中,可以对所述方法做出这样的规定:边界框中心的移动只能在其原始网格单元内进行。

因此,结果将是包括多个向量b的张量,其中这些向量中的一个或多个具有识别指尖的较高概率,而其他向量具有较低概率。通过将所有它们的相应值都设置为0,可以完全忽略那些概率较低的向量,从而减少处理张量时所需的处理工作量。

然后将使用具有最高概率的向量b以实现图像的进一步处理,具体来说对图像中识别指尖的那些部分进一步处理,例如以便通过处理指尖以识别指纹来识别移动装置的用户。

虽然上述方法能够正确识别将被用于进一步处理所识别的生物识别征(例如指纹)的边界框,但是将给出关于必须丢弃的边界框的进一步说明。

如上所述,边界框的向量b包括概率p,该概率p表示相应边界框包括或代表指尖的可能性。这可以用于以降序对所有边界框(或它们的向量,分别地)进行排序,以具有最高概率值p的那些向量b作为起始。

这样做,可以从具有最高值p的边界框开始以降序遍历列表。这一遍历可以包括从列表中选择值为p的特定边界框,并为此特定边界框计算与所有其余边界框的相交量。这意味着将选定的特定边界框的区域与其余边界框的区域进行比较,并且它们共有的任何区域(即边界框相交的地方)都对计算出的相交有所贡献。

该相交量可以被计算为相对于所选边界框面积的比率。从而,为每个计算出来的相交都获得了一个数值范围从0(无相交)到1(所考虑的剩余边界框完全相交或覆盖所选边界框的区域)的无量纲值。

在下一步中,可以使用预设阈值来忽略或丢弃边界框或将它们清除掉。在上面的例子中,阈值可以是计算出来的相交0.75。对于每对计算出来的选定边界框和剩余边界框,在相交超过这一阈值的情况下,可以将具有较低p值的边界框忽略或从前面提到的列表中清除掉。

这样最终导致仅有一个边界框剩下,这个边界框将代表手指的指尖。当然,取决于图像中可见的手指数量,这样可能导致最多剩余四个边界框。

在图6中,现在将解释说明如何正确地训练神经网络,以使得神经网络学习到内核k的加权值和参照图4解释的加权值α以及真正识别出指尖的图案。

图6的方法开始于提供训练数据401和预设边界框408。训练数据可以由多个图像构成,例如与其它目标一同绘制在一个图像中的指尖或多个手指。可以通过使用源自同一图像的经旋转的、被突出显示的、变暗的、放大的或其他方式修改的副本(作为训练数据引入)来倍增这些图像。按照项目408提供的边界框是与训练数据中的它们各自的图像相对应的边界框,其中这些边界框是与要识别的目标正确关联的边界框,即如参照图5解释的具有正确的尺寸和正确的位置以及相应的概率值。这些边界框是针对训练数据中的各个和每个图像提供的。

在下一步中,在训练环境中向神经网络提供一个特定的输入图像402,在该训练环境中,除了神经网络之外,还提供了优化器407和损失函数计算器406。

在第一轮中,使用深度卷积层和第一批量归一化器以及第一修正线性单元403对输入图像进行处理,总称为dcbr,然后将该输入图像传送给逐点卷积层、第二批量归一化器和第二修正线性单元,总称为pcbr,依照图4中给出的说明对它们进行处理。这意味着,图6中所示的步骤或部分403和404最好如参照图4介绍的那样,在各部分403和404中使用逐点卷积层(pc)的相应加权值和深度卷积层(dc)的内核k运行13次。项目403和404的第一和第二批量归一化器以及修正线性单元以上面参照图5解释的方式工作。

结果,与图5一致,输出将是大小为q×r×b×a的第一张量t,其具有第一项tqrba。然后这一结果被提供给损失函数,将其与预设边界框进行比较,以识别结果405和从408获得的正确边界框之间的差异。然后将由损失函数406获得的该差异提供给优化器407,优化器407继而修改各个逐点卷积层和各个深度卷积层的加权值,即α,和内核k中的项。这意味着,针对网络中的所有层一次或者单独地针对各层,对逐点卷积层的加权值α和深度卷积层的内核k中的项进行维护。

利用这些新值,针对非常相似图像重复执行该循环,并且将结果得到的具有项t'qrba的张量t提供给损失函数,并将其与正确的边界框进行比较,然后将结果提供给优化器407对加权值进行再次修改。

只要结果得到的张量t(n)与具体地与项目408的预定义边界框进行比较的识别出来的边界框之间的差异超过给定阈值(该阈值实质上对应于预期的标识精度),这一过程就要继续执行。

之后,从训练数据401中获取下一个输入图像402,并且将相应的边界框提供给损失函数。然后,针对这一新图像再次重复执行刚解释过的过程,并获得针对逐点卷积层和深度卷积层的最佳加权值。重复这一过程,直到加权值的特定组合针对所有输入图像得出适当识别精度为止。然后将所获得的加权值的组合作为最终加权值410输出。

然后将这些最终加权值引入到移动装置上执行本发明方法的应用中。

因此,在本发明的概念中,提供给移动装置的神经网络已经完全适合于识别携带有生物识别特征的特定目标,优选地是指尖,并且因此可以在不需要进一步学习的情况下使用该神经网络,减少了移动装置上所需的计算机资源。

总的来说,通过使用逐点卷积层、深度卷积层和批量归一化器以及修正线性单元(如前面参照图3和图4解释的),并且通过将原始图像分割为网格单元并依照图3的说明识别相应的边界框,可以提供小于1兆字节的应用程序,因此即使没有任何通过互联网等访问其他数据源的机会,也可以独立地在移动装置上使用该应用程序。这使其适用于不可能访问无线网络等的环境中。另外,运行这一应用程序所需的处理器能力被减至最小,同时仍能产生指尖的适当识别结果,该结果可用于以后通过与指尖关联的指纹进行的用户识别,如前面所解释的。

前面的解释说明的焦点放在了显示带有指纹的手指侧面的手或手指的图像上。然而,用户也可能无意或有意地从另一侧(即手背)将一个或多个手指呈现给光学传感器。由于指纹不可见,因此无法从这样的手指图像中提取指纹。

为了将携带指纹的指尖的图像与不显示指纹而是显示指甲或指节的指尖的图像区分开,可以使用以下处理过程,该处理过程可以扩展前面介绍的方法以提高识别精度。

在上面的例子中,边界框的特征在于矢量并且仅使用显示带有指纹的指尖侧面的手指图像进行训练。

当允许图像从指尖的两侧(即带有指纹的一侧和带有指甲或指关节的一侧)拍摄时,有利的是,考虑图像中识别出的两类目标,即构成显示指纹的指尖的那些目标和构成显示指甲或指关节的指尖的那些目标。

在这种情况下,可以将前面提到的向量扩展一个维度c,从而得到其中c代表所谓的类。第一类可以表示正识别(可以识别带有指纹的指尖),第二类可以表示负识别(指尖带有指甲或指关节)。所述类可以由数值表示,例如1表示正识别,0表示负识别。显然,与向量b中的其余值不同,所述类是离散值,并且只能采用与类的数量相对应的有限个不同值。

然后可以以如下方式执行前面所述的训练:向神经网络提供正和负识别(而不是仅仅提供表示具有携带指纹的指尖的图像和边界框408的训练数据),以便能够区分图像属于第一类还是第二类。在这种情况下,可以想象手指的多个图像除了指纹以外其它都显示了。所有这些“目标”都可以被分类为第二类(即,负识别),使得神经网络被训练得能够将携带指纹的指尖的图像与“任何其他”指尖的图像区分开。当然,为进行训练而提供的边界框也将包含正确的类c,以便允许对网络进行适当的训练。

为了识别出图像中带有指纹的所有指尖,上述处理将忽略代表指尖位置且被认为属于第二类(即负标识)的所有边界框,从而防止对不显示生物识别特征的指尖图像或图像部分做出进一步处理。

为了给出可以执行本发明方法的环境,图7描绘了按照本发明的一个实施例的智能手机形式的移动装置。

移动装置500被具体实现为目前已知的智能电话。它包括光学传感器520,该光学传感器520优选地处于与移动装置500上设置显示器530的侧面相反的侧面上的摄像头的背侧。摄像头可以是分辨率为1mp、2mp甚至更高的摄像头,例如hd摄像头。该摄像头可以配备闪光灯,但不是必须的。它还可以适用于以降低的分辨率拍摄实时图像,并且一旦激活了摄像头,显示器530就可以显示出摄像头实际“看到”的画面。该画面例如可以是手510。

在本发明的一个实施例中,一旦对所拍摄的图像执行了本发明的方法,就会在显示器530上显示的手的图像上增加识别手的指尖的边界框511-514。如前面进一步解释的,所识别出的边界框不需要被显示,但是也可以在移动装置内部进行进一步处理,以便例如处理图像中与指尖相对应的部分,从而通过识别与指尖相关联的指纹来识别用户。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1