生物特征认证技术的制作方法

文档序号:16856414发布日期:2019-02-12 23:21阅读:136来源:国知局
生物特征认证技术的制作方法

本公开整体涉及用户认证,更具体地涉及收集生物特征数据用于用户认证的计算设备。



背景技术:

传统认证措施通常依赖于用户提供一个或多个凭据来表明该用户是经授权用户。例如,试图对用户进行认证的移动设备可在允许用户访问该设备之前要求用户提供密码。为了降低对用户的负担,一些设备现在可要求用户提供生物特征凭据。例如,移动设备可包括被配置为收集指纹生物特征信息的指纹传感器,所述指纹生物特征信息可与所存储的已知用户的指纹信息进行比较。又如,移动设备可使用面部识别来对已知用户进行认证。生物特征认证可以是有利的,因为与例如输入密码或某种其他凭据相比,其允许用户更快地进行认证。然而,设备应被设计成避免重放和欺骗攻击,例如恶意实体试图哄骗生物特征传感器使其不正确地指示正确用户出现。



技术实现要素:

本文公开了涉及阻止或减少与例如用于面部识别的生物特征传感器有关的安全威胁的技术。在一些实施方案中,一种设备被配置为生成利用至少两个不同模式的图像捕获模式伪随机序列。例如,所述序列可包括二维(例如具有泛光照明)捕获模式和三维(例如具有深度照明)捕获模式。在一些实施方案中,一种安全电路被配置为在来自相机单元的图像数据中验证所述序列,并且可基于所述序列是否被使用来确定是否允许面部识别继续。

在一些实施方案中,一种设备被配置为为至少一个与面部识别会话相关联的图像使用秘密照明图案(可被称作探测图案)。这个探测图案可从多个照明图案(例如具有不同图案的静态配置的阵列和/或能动态调节的图案)中伪随机地确定。例如,图案可以只包括被用于深度捕获模式的点投射器阵列中红外点的子集。在一些实施方案中,一种安全电路被配置为验证照明图案出现在来自相机单元的图像数据中,并且可基于是否使用了所述图案来确定是否允许面部识别继续。

在一些实施方案中,设备被配置为只在验证了捕获模式的伪随机序列之后使用秘密照明图案,或者反之亦然,这可进一步降低攻击成功的可能性。

附图说明

图1是根据一些实施方案示出一种示例性计算设备的框图。

图2是根据一些实施方案示出一种示例性安全电路、相机单元和图像处理器的框图。

图3是根据一些实施方案示出一种示例性安全电路具体实施的框图。

图4是根据一些实施方案示出一种示例性相机单元的框图。

图5是根据一些实施方案示出多个点照明器阵列的框图。

图6a是根据一些实施方案示出一种用于确定和验证探测图案的示例性方法的流程图。

图6b是根据一些实施方案示出一种用于确定和存储校准数据的示例性方法的流程图。

图6c是根据一些实施方案示出一种用于访问和使用校准数据的示例性方法的流程图。

图7是根据一些实施方案示出一种用于确定和验证图像捕获模式伪随机序列的示例性方法的流程图。

图8是根据一些实施方案示出一种示例性面部识别会话的流程图。

图9是根据一些实施方案示出被配置为执行生物特征认证的示例性模块的框图。

图10是根据一些实施方案示出一种用于制造具有探测图案的设备的示例性方法的流程图。

图11是根据一些实施方案示出一种存储设计信息的示例性计算机可读介质的图示。

本公开包括对“一个实施方案”或“实施方案”的提及。出现短语“在一个实施方案中”或“在实施方案中”并不一定是指同一个实施方案。特定特征、结构或特性可以与本公开一致的任何适当的方式组合。

在本公开内,不同实体(其可被不同地称为“单元”、“电路”、其他部件等等)可被描述或声称成“被配置为”执行一个或多个任务或操作。这个表达方式—被配置为[执行一个或多个任务]的[实体]—在本文中用于指代结构(即物理的事物,诸如电子电路)。更具体地,这个表达方式用于指示该结构被布置成在操作期间执行所述一个或多个任务。结构可被描述成“被配置为”执行某个任务,即使该结构当前并非正被操作。“被配置为执行认证的安全电路”旨在涵盖例如具有在操作期间执行该功能的电路系统的集成电路,即使所涉及的集成电路当前并非正被使用(例如电源未连接到它)。因此,被描述或表述成“被配置为”执行某个任务的实体是指用于实施该任务的物理的事物,诸如设备、电路、存储有可执行程序指令的存储器等等。该短语在本文中不被用于指代无形的事物。因此,“被配置为”结构在本文中不被用于指代软件实体,诸如应用编程接口(api)。

术语“被配置为”并不旨在表示“能被配置为”。例如,未经编程的fpga不会被认为是“被配置为”执行某个特定功能,虽然其可能“能被配置为”执行该功能并且在编程之后可以“被配置为”执行该功能。

所附权利要求中的表述结构“被配置为”执行一个或多个任务明确地旨在对那个权利要求元素不援引35u.s.c.§112(f)。因此,所提交的本申请中没有任何权利要求是旨在要被解释为具有装置+功能要素。如果申请人在申请过程中想要援引节段112(f),则其将利用“用于”[执行功能]“的装置”结构来表述权利要求要素。

如本文所用,术语“第一”、“第二”等充当其之后的名词的标签,并且不暗指任何类型的排序(例如,空间的、时间的、逻辑的等),除非有明确指出。例如,移动设备可具有第一用户和第二用户。术语“第一”并不限于设备的初始用户。在移动设备只有一个用户存在时也可使用术语“第一”。

如本文所用,术语“基于”用于描述影响确定的一个或多个因素。该术语不排除可能有附加因素可影响确定。即,确定可仅基于所指定的因素或基于所指定的因素及其他未指定的因素。考虑短语“基于b确定a”。这个短语指定b是用于确定a的因素或者其影响a的确定。这个短语并不排除a的确定也可能基于某个其他因素诸如c。这个短语还旨在涵盖a仅基于b来确定的实施方案。如本文所用,短语“基于”因此与短语“至少部分地基于”是同义的。

具体实施方式

示例性设备的概述

本公开整体涉及用于防止生物特征数据(例如用于面部识别的图像)的欺骗或重放的技术。“重放”攻击涉及使用通常有效的先前所捕获的生物特征信息(例如先前通过了生物特征认证的经授权人员的面部的图像数据)来试图对个体进行认证。恶意实体可试图将先前所捕获的用户图像展示给例如设备的相机以便作为设备的登记用户而通过认证过程。“欺骗”攻击通常使用无效数据,例如声称来自设备相机的来自另一设备或模块的数据或者并非已知用户实际当前图像的面具、塑像、3d投影等的图像。例如,在图像实际上是由另一相机先前捕获的时候,恶意实体可发送假装来自设备相机单元的信号来哄骗设备使其认为其相机捕获了用户的图像。这是涉及欺骗相机的攻击的一个示例。作为另一欺骗示例,恶意实体可将登记用户的面具或塑像展示给设备的相机以试图作为登记用户而通过认证过程。在各种实施方案中,所公开的技术可降低或消除此类图谋的效果,使得旨在进行生物特征认证的经授权用户被成功认证,而其他人被拒绝。

现在转向图1,示出了一种计算设备100的框图。在例示的实施方案中,计算设备100包括片上系统(soc)102,其具有中央处理单元(cpu)110、包括应用程序125的存储器120、安全区域处理器(sep)130、相机单元140、和图像处理器160。在一些实施方案中,计算设备100可被具体实施为与图示不同。例如,在一些实施方案中,元件可以不被包括在soc中,或者不同的元件组合可被包括在soc中,可包括附件元件,等等。

cpu110可包括一个或多个处理器内核。一般来讲,处理器内核可包括被配置为执行在由处理器实施的指令集架构中定义的指令的电路系统。处理器可与其他部件一起被实施在集成电路上,作为片上系统(soc)或其他集成水平。处理器还可包括分立的微处理器、处理器内核和/或集成到多芯片模块具体实施中的微处理器、被实施为多个集成电路的处理器等等。

存储器120在例示的实施方案中被配置为存储应用程序125的程序指令。存储器120通常可包括用于存储数据的电路系统。例如,存储器120可以是静态随机存取存储器(sram)、动态ram(dram)诸如包括双倍数据速率(ddr、ddr2、ddr3、ddr4等)dram的同步dram(sdram)。可支持ddrdram的低功率/移动版本(例如,lpddr、mddr等)。设备100可包括存储器控制器(未示出),存储器控制器可包括存储器操作队列,用于对这些操作进行排序(并且可能重新排序)并将这些操作提供给存储器120。存储器控制器还可包括用于存储等待写到存储器的写数据和等待返回给存储器操作来源的读数据的数据缓冲器。在一些实施方案中,存储器控制器可包括用于存储最近访问的存储器数据的存储器高速缓存。在一些实施方案中,存储器120可包括能被一个或多个处理器执行以使设备100执行本文所述的各种功能性的程序指令,诸如应用程序125的指令。

应用程序125在一些实施方案中是能被cpu110执行以有利于执行对象识别例如用于用户认证的应用程序。应用程序125的执行可使cpu110(例如经由图像处理器160)与相机单元140通信以执行面部识别。在一些实施方案中,代替cpu110或者除了cpu110之外,在面部识别过程中涉及sep130。例如,sep130可执行内部程序代码或者包括专用电路系统用于有利于面部识别。可对其执行认证的应用程序的示例包括但不限于:支付应用程序、第三方应用程序、用于下载其他应用程序的应用程序、执行密码操作的应用程序、提供对设备中所存储的敏感数据的访问的应用程序等等。

sep130在例示的实施方案中是被配置为对活动用户(即当前正与设备100交互的用户)进行认证、执行动作诸如密码操作(密码操作的示例可包括对设备解锁、访问钥匙串数据、在浏览器中自动填充数据、访问支付数据(例如在单独安全元件中)、对支付过程授权、访问或下载应用程序、批准设备100或远程设备上的操作等等)的安全电路。如本文所用,术语“安全电路”是指保护经隔离的内部资源使其不被外部电路直接访问的电路。这个内部资源可以是存储敏感数据诸如个人信息(例如生物特征信息、信用卡信息等等)、加密密钥、随机数生成器种子、外围设备或其他电路系统的控制等等的存储器。这个内部资源也可以是执行与敏感数据相关联的服务/操作的电路系统。如下文将参考图3所述,这个电路系统可包括图像传感器流水线,图像传感器流水线被配置为通过将相机140捕获的生物特征数据与经授权用户的先前所收集的生物特征数据进行比较来为用户对该生物特征数据进行验证。在一些实施方案中,下文中将参考图2更详细地讨论,sep130被配置为执行一个或多个过程来验证(例如因为在连接到相机单元140的总线上被发送,被存储在用于来自相机单元140的图像数据的存储器位置中等等)被指示为是由相机单元140捕获的生物特征数据。

相机模块140在例示的实施方案中被配置为收集来自用户(例如用户面部)的生物特征数据以便对用户进行认证。如本文所用,“生物特征数据”是指基于用户的物理或行为特性在其他人中间唯一地标识用户(至少达到高精确度)的数据。相机140可使用任何合适的技术来收集生物特征数据。因此,在一些实施方案中,相机140可包括红外(ir)发射器和被配置为捕获一个或多个二维和三维(例如泛光和深度)图像帧的ir相机。在捕获泛光帧时,ir发射器可从单个源发射光,并且ir相机可收集来自对象(例如用户面部或声称为是用户面部的某个其他对象)的二维图像数据。在捕获深度图像帧时,ir发射器可将多个光源(例如利用激光照明)投射到用户面部上,并且ir相机可捕获那些光源的反射来确定指示从ir相机到用户面部相应部分的距离的多个深度点。在一些实施方案中,泛光和深度图像数据的组合可允许sep130在三维空间中比较面部。在一些实施方案中,相机单元140还被配置为在可见光谱中捕获图像数据。在各种实施方案中,相机单元140经由安全信道将生物特征数据传送给sep130。如本文所用,术语“安全信道”是指用于传送数据的专用路径(即仅被预定参与方共享的路径)或者传送利用仅预期参与方知道的密码密钥加密的数据或签名的数据。在一些实施方案中,相机单元140和/或图像处理器160可在将生物特征数据提供给sep130之前对生物特征数据执行各种处理操作,以便有利于sep130执行的比较。在一些实施方案中,应用程序125可执行注册过程(也可被称为登记过程),其中相机单元140捕获来自经授权用户的生物特征数据以便允许sep130后续对该用户进行认证。

图2是根据一些实施方案示出包括sep130、相机单元140和图像处理器160的设备100的一部分的框图。在一些实施方案中,图像处理器160可被略去,并且其功能性可例如由sep130来执行。

使用图像捕获模式伪随机序列的概述

在例示的实施方案中,图像处理器160伪随机地生成图像捕获模式序列用于由相机单元140进行面部识别会话,其中预期相机单元使用所生成的序列用于面部识别会话。在其它实施方案中,另一元件(诸如sep130或相机单元140)可被配置为生成该序列。在例示的实施方案中,图像处理器160将序列信息提供给sep130,使得sep130能确认输入数据是在预期序列中捕获的,并且还基于所确定的序列将序列控制信息210发送给相机单元140。

在一些实施方案中,相机单元140被配置为捕获多对图像用于面部识别会话。需注意,这些图像对在一些实施方案中可由同一相机单元中的不同传感器、同一相机单元中的同一传感器、或者由多个不同相机单元捕获。每一对可包括利用二维捕获模式(例如利用泛光照明)捕获的图像和利用三维捕获模式(例如利用可投射在不同区域上的多点照明)捕获的图像。在一些实施方案中,图像处理器160和/或sep130被配置为组合每对中的图像来生成被用于面部识别(例如用于准确地映射面部几何结构)的复合图像。在一些实施方案中,图像处理器160和/或sep130被配置为处理复合图像以确定图像的特性(例如面部特征向量),sep130被配置为(例如利用一个或多个神经网络)将其与所存储的设备100的一个或多个已知用户的模板特性进行比较。

在其它实施方案中,在伪随机序列中可利用各种不同图像捕获模式中的任何模式,包括使用不同相机传感器、不同照明模式(例如泛光、深度、不同光波长、不同强度等等)、不同分辨率、不同曝光时间等等。虽然在本文中讨论了图像捕获对,但捕获模式的伪随机序列根本不限于图像捕获对。例如,伪随机序列可包括第一类型的n个图像捕获之后接着第二类型的m个图像捕获、这些类型之间的各种交错等等。一般来讲,可以为特定的图像捕获分组或集合伪随机地确定所述序列。在特定的图像和深度捕获上下文中,每个集合可包括两个泛光和一个深度捕获、三个深度和一个泛光捕获等等。在一些实施方案中,图像捕获模式中的一者或多者可以并不实际被用于捕获用于面部识别的图像数据,而是可以只是出于安全性目的而被插入到序列中。例如,单独深度捕获可以伪随机方式被插入到图像捕获模式序列中,而不与泛光捕获组合,以便进一步为序列添加不可预测性。

伪随机序列可利用各种适当的具体实施中的任何具体实施来生成,包括一个或多个随机数生成器,其可被包括在图像处理器160或sep130中。术语“伪随机”是指满足一个或多个随机性统计测试但通常是利用确定性数学过程例如基于一个或多个种子值生成的数值,种子值可由sep130存储或生成并被sep130使用或发送给另一处理元件。在一些实施方案中,本文中被描述为伪随机的各种序列中的任何序列可实际是随机性的,但真正的随机性通常很难利用计算机硬件来生成。在一些实施方案中,图像捕获的数量和/或图像捕获对的数量可伪随机地确定。

在一些实施方案中,图像处理器160生成伪随机序列并将该序列通知给相机模块140。相机模块140于是生成图像数据220并将其存储在图像处理器160能访问的存储器位置中。图像处理器160于是处理图像并将处理后的图像数据(具有元数据指示所使用的序列)存储在sep130能访问的存储器位置中。可利用会话密钥对图像数据进行密码签名和/或加密。sep130可在访问图像数据之前验证图像数据真实性和完整性,然后可使其表现元数据所指示的序列。在一些实施方案中,可利用会话密钥对元数据进行密码签名和/或加密。类似地,在相机模块140支持加密的实施方案中,序列在被发送给相机模块140时可被加密。

秘密照明图案技术的概述

在一些实施方案中,图像处理器160为相机单元140为了面部识别会话捕获的一个或多个图像选择照明图案。在一些实施方案中,照明图案是从相机单元140支持的多个图案中伪随机地选择的。所述图案在本文中可被称为“探测”图案,其可不同于被用于用于面部识别匹配的深度捕获的其他图案。在其它实施方案中,另一元件(例如sep130)被配置为选择所述图案。在一些实施方案中,不同设备在制造期间被配置以不同照明图案,并且所述图案可例如通过只能被sep130访问的私密密钥而被保持私密。在一些实施方案中,为给定面部识别会话动态地生成照明图案。

在例示的实施方案中,图像处理器160将图案信息提供给sep130,使得sep130能确认图案并且还基于所确定的图案将图案控制信息210发送给相机单元140。在一些实施方案中,可为给定设备实施单个图案或少量的图案(例如通过永久性地配置一个或多个特殊发射器阵列),并且图案可被保持私密。在一些实施方案中,sep130被配置为只有在所选图案在相机单元140生成的图像数据中被检测到的情况下才允许面部识别认证。

在一些实施方案中,所述图案只使用可用于深度捕获的多个照明点的子集。照明点可以能各个控制,或者可分组控制。例如,对于示例性4x4阵列的照明点,这16个点中每一者可单独控制或者阵列可被分成分组(例如2x2象限),设备100被配置为以分组粒度启用或禁用这些分组。被激活的点的数量、位置、类型和/或强度可伪随机地选择。

照明点例如可以是激光器生成的,并且激光器元件仅一个子集可被激活。利用所选照明图案捕获的图像可被用于或者可不被用于实际的面部识别处理。例如,可选择在面部识别中不特别有用的照明图案,但其可能可用于提供随机性以证明图像数据是利用已知相机单元140捕获的。

在一些实施方案中,所公开的照明图案技术可与其他安全性缓解技术诸如验证伪随机生成的序列结合。例如,设备100可被配置为只在验证了图案捕获模式伪随机序列、验证了图案数据被签名、验证了每个图像的临时值等等之后才使用特定照明图案。在其他实施方案中,设备100可被配置为只在验证了特定照明图案之后才生成捕获模式伪随机序列。在一些实施方案中,照明图案可在捕获模式序列内在预期的图像捕获模式序列中伪随机位置中使用。一般来讲,本文所述的各种验证技术可结合各种排序来使用以改善认证安全性。

在一些实施方案中,多个照明图案可被选择(用于顺序和/或并行使用)并且可在深度捕获模式的伪随机序列中使用,并且还可伪随机地散置在其他图像捕获模式之间。另外,多个照明图案可一起使用,并行地或按特定顺序使用。在这些实施方案中,sep130可被配置为只响应于验证了照明图案和图案和/或捕获模式序列二者才允许面部识别认证。

用于认证安全性的示例性安全电路技术

在一些实施方案中,sep130被配置为为相机单元140为了面部识别所捕获的每个图像生成密码临时值。术语“临时值”旨在根据其公知含义进行理解,其包括为了被使用一次而生成的随机数或伪随机数。在一些实施方案中,相机单元140或图像处理器160被配置为将所接收的临时值与每个图像(或者与复合图像数据或指定图像特性的数据)进行嵌入。在一些实施方案中,相机单元140或图像处理器160被配置为利用在sep130与相机单元140或图像处理器之间建立的会话密钥对每个图像(或复合图像数据或指定图像特性的数据)的图像数据进行签名。在一些实施方案中,sep130被配置为在将传入数据用于面部识别会话之前确认该数据包括正确的临时值并且是被签名的并且是利用会话密钥进行的签名(如果未找到正确的临时值,则可指示失败)。在一些实施方案中,临时值和/或利用会话密钥的签名可阻止利用先前捕获的图像进行重放,先前捕获的图像不会具有正确的临时值和/或签名。

在一些实施方案中,sep130被配置为利用安全信道与图像处理器160和相机单元140中的一者或二者进行通信。这可涉及基于密码密钥的安全交换的经加密和/或经密码签名的通信。用于通过可能公共信道交换密钥的技术的一个示例是建立椭圆曲线diffiehellman(ecdh)会话。在一些实施方案中,ecdh密钥可被用于对处理元件之间的消息签名,以便降低所接收的图像数据正被(例如另一处理元件)欺骗的可能性。在各种实施方案中,可类似地使用其他公共/私密密钥来对数据签名。所公开的各种通信可被加密和/或签名。

利用这些技术,如果恶意设备发送声称来自相机单元140的图像数据,则如果图像数据未正确地签名,sep可以能够检测到图像数据实际上并非来自相机单元140。在一些实施方案中,为了改善安全性,sep130被配置为为每个面部识别会话使用不同的ecdh会话和密钥。例如,一旦用户经认证或者对于某个面部识别会话认证失败,则sep130可为下一面部识别会话执行新的ecdh密钥交换。

在一些实施方案中,sep130和/或图像处理器160被配置为经由不可供其他模块进行的通信使用的专用总线与相机单元140通信。在一些实施方案中,sep130被配置为响应于专用相机总线断开而要求利用特定类型的凭据进行重新认证。例如,在一些实施方案中,设备100被配置为响应于专用相机总线断开而呈现锁定屏幕并要求用户手动输入pin或密码。又如,在一些实施方案中,设备100被配置为响应于专用相机总线断开而要求多种类型的认证凭据(例如生物特征和手动输入二者)。设备的闭锁类型的附加示例在下文中详细讨论。

示例性安全电路具体实施

现在转向图3,根据一些实施方案示出了sep130的框图。在例示的实施方案中,sep130包括经由互连器390耦接在一起的过滤器310、安全邮箱320、处理器330、安全rom340、密码引擎350、密钥存储装置360、区域图像传感器流水线370和生物特征存储装置380。在一些实施方案中,sep130可包括比图3所示更多(或更少)的部件。如上所述,sep130是保护内部资源诸如部件用户认证密钥362和/或区域图像传感器流水线370的安全电路。如下文所述,sep130通过使用过滤器310和安全邮箱320来实现安全电路。

过滤器310在例示的实施方案中是被配置为严密控制对sep130的访问以增大sep130相对于计算设备100的其余部分的隔离性、并因此提高设备100的总体安全性的电路系统。更特别地,在一些实施方案中,过滤器310被配置为只有在来自cpu110(或耦接cpu110和sep130的结构上的其他外围设备)的读/写操作寻址到安全邮箱320的情况下才允许其进入sep130。因此,在这些实施方案中,其他操作不可从互连器180进展到sep130中。在一些实施方案中,使用过滤器310的这些技术被应用于对用于区域图像传感器流水线370的数据的访问。甚至更特别地,过滤器310可允许对分配给安全邮箱320的收件箱部分的地址的写操作以及对分配给安全邮箱320的发件箱部分的地址的读操作。过滤器310可阻止/过滤所有其他读/写操作。因此,安全邮箱320包括设备100中的其他元件能访问的预定存储器位置,并且sep130中电路系统的其余部分不能被设备100的其他元件访问。在一些实施方案中,过滤器310可用错误对其他读/写操作进行响应。在一个实施方案中,过滤器310可接纳与被过滤的写操作相关联的写数据,而不将所述写数据传递给本地互连器390。在一个实施方案中,过滤器310可将非安全数据供应作为用于被过滤的读操作的读数据。这个数据(例如“无用数据”)一般可以是不与sep130内的被寻址资源相关联的数据。过滤器310可将任何数据供应作为无用数据(例如全零、全1、来自随机数生成器的随机数据、被编程到过滤器310中以作为读数据进行响应的数据、读事务的地址等等)。

在一些实施方案中,过滤器310可以只过滤外部发布的读/写操作。因此,sep130的部件可具有对计算设备100的其他部件(包括cpu110、存储器120、图像处理器160和/或相机单元140)的完全访问权限。因此,过滤器310可以不过滤响应于sep130发布的读/写操作而提供的来自互连器180的响应。

安全邮箱320是在一些实施方案中包括收件箱和发件箱的电路系统。收件箱和发件箱二者例如可以是数据的先进先出缓冲器(fifo)。缓冲器可具有任意尺寸(例如任意数量的条目,其中每个条目能够存储来自读/写操作的数据)。特别地,收件箱可被配置为存储来自源于cpu110的写操作的写数据。发件箱可存储来自源于处理器330的写操作的写数据。(如本文所用,“邮箱机构”是指暂时存储1)安全电路的输入直到其能被该电路检索和/或2)安全电路的输出直到其能被外部电路检索的存储器电路。)

在一些实施方案中,在cpu110上执行的软件(例如应用程序125)可经由计算设备100的操作系统支持的应用编程接口(api)请求sep130的服务—即,请求方可进行请求sep130的服务的api调用。这些调用可使相应请求被写到邮箱机构320,其然后被从邮箱320检索并被处理器330分析以确定其是否应对请求提供服务。因此,这个api可被用于将生物特征数据递送给邮箱320,通过验证这个信息来请求用户的认证,并经由邮箱来递送认证结果302。通过以这种方式隔离sep130,区域图像传感器流水线370的完整性可得到增强。

sep处理器330在例示的实施方案中被配置为处理从计算设备100中各种资源(例如从cpu110)接收的命令并且可使用各种安全外围设备来实现这些命令。处理器330于是可执行存储在安全rom340和/或soc存储器120的可信区中的指令,诸如认证应用程序342,以执行用户的认证。在其它实施方案中,认证应用程序354可被存储在其它地方,例如作为被加载到soc存储器一部分的固件。在这些实施方案中,安全rom340可在执行此类固件之前对其进行验证。例如,sep处理器330可执行应用程序342以提供适当的命令给区域图像传感器流水线370以便验证生物特征数据。在一些实施方案中,应用程序342可包括从存储器120中可信区加载的经加密的程序指令。

安全rom340在例示的实施方案中是被配置为存储用于引导sep130的程序指令的存储器。在一些实施方案中,rom340可只对分配给本地互连器390上安全rom340的特定地址范围进行响应。所述地址范围可以是硬连线的,并且处理器330可被硬连线以在引导时从该地址范围进行取操作以便从安全rom340引导。过滤器310可过滤分配给安全rom340的地址范围(如上所述)内的地址,从而阻止从sep130外部的部件对安全rom340的访问。在一些实施方案中,安全rom340可包括sep处理器330在使用期间执行的其他软件。这个软件可包括用于处理收件箱消息和生成发件箱消息等的程序指令。

密码引擎350在例示的实施方案中是被配置为为sep130执行密码操作的电路系统,包括密钥生成以及利用密钥存储装置360中的密钥的加密和解密。密码引擎350可实现任何合适的加密算法,诸如des、aes、rsa等。在一些实施方案中,引擎350还可实现椭圆曲线密码方案(ecc)。在各种实施方案中,引擎350负责解密上述从相机单元140接收的通信以及加密发送给其他处理元件的通信。

密钥存储装置360在例示的实施方案中是被配置为存储密码密钥的本地存储器(即内部存储器)。在一些实施方案中,这些密钥可包括用于建立sep130和其他处理元件之间安全信道的密钥。如图所示,在一些实施方案中,这些密钥包括认证密钥362。密钥可允许各种密码操作,并且也可被用于系统的其它元件来指示用户是否经认证(例如以诸如向用于支付操作的安全元件指示用户被认证用于特定操作)。

区域图像传感器流水线370在一些实施方案中是被配置为将从正被认证的用户捕获的生物特征数据与经授权用户的生物特征数据372进行比较的电路系统。在本文中被描述为由图像处理器160执行的各种功能性在其他实施方案中可由图像传感器流水线370执行,反之亦然。在一些实施方案中,流水线370可利用流水线370中包括的神经网络集合来执行比较,每个网络被配置为将在单个帧或复合帧中捕获的生物特征数据与经授权用户的在多个帧中捕获的生物特征数据372进行比较。如图所示,流水线370可被配置为从存储器120读取生物特征数据372,生物特征数据372在一些实施方案中可通过加密进行保护或者被存储在只能被sep130访问的存储器120的相关联部分中。(在另一实施方案中,sep130可内部地存储数据372。)在各种实施方案中,图像传感器流水线370被配置为执行或有利于所公开的防欺骗技术。

需注意,虽然生物特征存储装置380在例示的实施方案中被包括在sep130中,但在其他实施方案中,sep130被配置为(例如利用密钥存储装置360中的加密密钥)加密经授权用户生物特征数据382并将经加密的数据存储在sep130之外。在一些实施方案中,用于此类加密的加密密钥从不离开sep130并且对于设备100是独特的,这可提高此类被加密数据在被存储在sep130之外时的安全性。生物特征数据142可包括用于存储的模板数据和/或用于认证的实况数据。

示例性相机模块

图4是根据一些实施方案示出一种示例性相机单元140的框图。在例示的实施方案中,模块140包括传感器420、泛光照明器430和点照明器阵列440。在一些实施方案中,所例示的元件都被配置为利用红外信号来操作。在其它实施方案中,相机单元140可被配置为利用其他波长进行操作,例如可包括rbg和红外二者的发射器和/或传感器等等。

传感器420在例示的实施方案中被配置为基于传入辐射来捕获图像数据。在一些实施方案中,传感器420包括例如电荷耦合装置(ccd)或互补金属氧化物半导体(cmos)元件的阵列。在一些实施方案中,来自传感器420的成像数据能用于例如基于已知配置和点照明器阵列440生成的图案来确定深度信息。在一些实施方案中,设备100被配置为将利用泛光照明器430捕获的图像与利用点阵列照明器440捕获的图像组合生成例如用户面部的复合深度图像。

泛光照明器430在例示的实施方案中被配置为在期望的光谱中生成宽光束照明。因此,利用泛光照明器430捕获的图像可被用于二维分析。

点照明器440在例示的实施方案中被配置为生成已知图案的照明点。例如,点照明器可利用一个或多个垂直腔表面发射激光器(vcsel)电路来实现。在一些实施方案中,为每个照明点使用不同的光源元件(例如激光器)。在其它实施方案中,例如利用衍射透镜效应,给定光源可被用于生成多个照明点。因此,在各种实施方案中,点照明器440被配置为生成多个离散的照明点用于图像捕获。这些照明点可被用于生成三维图像数据(在一些实施方案中,结合来自泛光捕获模式的二维图像数据)。

用于深度捕获和探测图案的示例性发射器阵列

图5是根据一些实施方案示出可被包括在元件440中的点照明器的多个示例性阵列的图示。在例示的实施方案中,设备包括多个点照明器阵列510a-510n和一个或多个衍射光学器件520。在一些实施方案中,这些阵列可被用于深度捕获模式和/或生成探测图案。

点照明器阵列510在例示的实施方案中每一个都包括多个发射器(例如vcsel发射器),其被图示为圆圈并且被配置为生成照明点。不同阵列可各自包括相同数量的发射器或者不同数量的发射器。在一些实施方案中,第一组一个或多个阵列被用于通常的深度捕获,第二组一个或多个特殊阵列被用于一个或多个探测图案,其可被用于认证相机单元140。在一些实施方案中,所述特殊阵列(除了用于检测探测图案之外)不被用于通常的深度捕获模式。在其它实施方案中,一个或多个阵列可被用于这二者。

衍射光学器件520在例示的实施方案中被配置为生成给定发射器的多个照明点。例如,来自单个发射器的红外射线可被用于生成成千上百个经投射的照明点。深度捕获模式的总照明图案可包括例如成千上百个点。这可允许相对少量的发射器来生成宽视场的点。衍射光学器件520可生成已知图案,并且在被投射到其他对象上时,(例如相对于捕获平坦对象)所捕获图像中的图案改变可被用于确定深度。

如图所示,在一个或多个阵列中,发射器可被永久性地禁用和/或动态地被禁用。例如,发射器可在设备制造期间被永久性地禁用。在例示的实施例中,阵列510a和510b使不同位置处的发射器被禁用(例如利用虚线圆圈来指示),这可得到不同探测图案,具体取决于使用这些阵列中的哪些阵列。在动态实施方案中,类似的禁用不同发射器位置的技术可被用于利用给定阵列在不同时间生成不同的探测图案。在一些实施方案中,被用于选择特定秘密图案的元数据不指示图案的特性(例如其可以简单地是图案阵列中图案的索引),用于验证图案的图案特性由sep130控制(例如存储在sep130中或者被sep130加密并存储在其他地方)。在一些实施方案中,在激发探测图案之前必须通过一个或多个证实(例如验证伪随机序列),这可降低重放探测图案的能力。另外,可使用多个探测图案以增大重放难度,例如因为被重放图案可能不可能具有与当前使用的探测图案相同的探测图案。

在一些实施方案中,设备被配置为使用不同的特殊照明器阵列或图案用于不同面部识别会话,例如以顺序或伪随机的方式。这可防止恶意实体捕获照明图案并重新使用该照明图案和/或可在对于用户锁闭设备之前允许多次探测图案尝试。在一些实施方案中,在设备100上运行的软件被配置为选择哪些特殊阵列被用于哪些面部识别会话(虽然软件可能不知道不同子阵列实现的实际图案)。在一些实施方案中,软件由sep130执行。在一些实施方案中,在其他地方执行的软件可使用api来向sep130请求此类功能性。

在一些实施方案中,制造方可实施具有数量充足的发射器的阵列510以实现相对大量的不同图案(例如成千上百个图案或者更多)。因此,在具有永久阵列配置的实施方案中,用于一个设备的探测图案也被用于另一设备的概率可以相当低。在其它实施方案中,制造方可为每个设备使用独特的探测图案,使得一个设备所使用的探测图案将不被任何其他设备使用。另外,在相同探测图案中至少一些被用于不同设备的实施方案中,可在不同设备上使用探测图案的不同排序。

在制造期间,相机单元140可与设备中使用相机单元的所配置探测图案的另一电路系统配对(例如sep130)。例如,制造方可利用相机单元140捕获一个或多个探测图案并安全地存储(例如在sep130内或被sep130利用特定于sep130的私密密钥加密并存储在另一位置中)所捕获的数据(其可至少部分被处理,例如以检测所使用的图案)。当设备100被用于面部识别时,sep130可验证相机单元140所捕获的图像数据的一个或多个帧表现出所预期的探测图案。

在一些实施方案中,探测图案可被检查位于阈值匹配程度内,而不要求准确的匹配。可为静态和/或动态实施方案实施这个。这可允许在存在噪声或设备故障的情况下验证不同图案(例如,如果预期对于图案要被接通的特定发射器由于设备故障而实际被禁用,仍然可检测到所述图案)。因此,探测图案的验证可利用各种算法中的一者或多者被执行到位于阈值确定性内。

如上所述,在一些实施方案中,设备100被配置为动态地启用或禁用阵列510中的不同发射器用于特定激发。例如,sep130或图像处理器160可伪随机地生成所请求的图案,并且sep130可验证相机单元140使用了所请求的图案。在一些实施方案中,指定相机单元140支持的每个图案(或潜在地可被用作探测图案的每个图案)的模板信息可被存储以确定与所预期图案的匹配。在其它实施方案中,设备100可被配置为在没有存储用于图案的模板图像数据的情况下例如基于对所使用的照明器阵列和衍射光学器件的了解而验证预期图案。

在一些实施方案中,sep130被配置为加密被用于指定什么图案被确定用于在面部识别会话中使用的数据。例如,sep130和相机模块140可建立ecdh会话以加密指定要为探测图案激发哪些特殊阵列的信息或者动态地指定阵列中哪些发射器应被用于激发探测图案的信息。

在一些实施方案中,在面部识别会话期间使用多个探测图案。这些图案可顺序地和/或并行地激发。sep130可验证指定的定时和图案内容被使用。例如,如果多个探测图案同时激发,则sep130可验证所预期的图案组合。在一些实施方案中,一个或多个探测图案何时被激发的定时在面部识别会话内随机化。这可包括伪随机地确定在面部识别中其他事件之前或之后是否激活探测图案和/或伪随机地确定会话内特定的预定间隔内用于激发探测图案的点(例如,nms可被分配用于激发图案并且实际激发时间可在该时间间隔内伪随机地出现)。

在一些实施方案中,sep130被配置为通过确定探测图案与通常的深度捕获图案(即用于面部匹配的深度确定的深度捕获图案,其可不同于用于验证相机单元140的探测图案)之间的差别来证实探测图案。这在探测图案照明点是通常照明点的子集的实施方案中可能特别有用。sep130可指示相机单元140捕获两个图像数据帧,一个使用探测图案,另一个使用通常图案,并且处理这些图像以生成这两个图案之间的差分。这可帮助考虑变化的条件诸如温度、环境光照等,例如通过确保条件对于进行区分的探测图案和通常图案基本上是相同的。在一些实施方案中,这个技术可降低错误检测和错误否决探测图案的概率。

在一些实施方案中,同一集合的一个或多个探测图案可被用于在设备上注册的多个用户。在其它实施方案中,可为不同用户使用不同集合的探测图案。可为设备的多个用户中的每个用户存储用于面部识别的模板图像数据。

示例性探测图案方法

图6a是根据一些实施方案示出一种用于使用探测图案的安全面部识别会话的示例性方法的流程图。除了其他之外,图6a所示的方法可结合本文公开的计算机电路系统、系统、设备、元件或部件中的任一者来使用。在各种实施方案中,所示的方法要素中的一些可同时执行,按与所示顺序不同的顺序执行,或者可被省略。还可根据需要执行附加的方法要素。

在610,在例示的实施方案中,设备100确定使用多个照明点的相机模式的照明图案(其示例在本文中被称为探测图案)。照明图案对于给定设备100可以是固定的,例如使得该设备为图6a的技术始终使用相同的照明图案。在其它实施方案中,sep130或图像处理器160被配置为例如以伪随机方式从多个照明图案中选择照明图案。图案例如可永久性地在制造期间配置或者动态地控制。在多用户实施方案中,可为特定用户选择图案。在一些实施方案中,sep130确定是否以探测图案使用泛光照明430和/或相对于具有多个照明点的图案何时激发泛光照明器。

在620,在例示的实施方案中,sep130接收被指示为由相机单元140捕获的图像信息(例如在其激发所确定的照明图案并捕获一个或多个图像之后)。图像信息可基于图像信息中的元数据、接收信息的总线、接收图像数据的定时等等被“指示”为由相机单元140捕获。然而需注意,信息可能实际不是由装置的相机单元捕获,而可能是另一单元假扮相机单元140捕获的。照明图案可有利于检测此类攻击,在一些实施方案中,是通过基于不存在所预期探测图案而启用对进行假扮的相机单元的检测来进行的。

在630,在例示的实施方案中,sep130基于图像信息是否是利用所确定的照明图案捕获的来确定是否在面部识别会话中认证用户。sep130可响应于确定图像信息不是利用所确定的照明图案捕获的而指示面部识别失败。在各种实施方案中,图案的确认可指示图像数据不是先前捕获并重放的和/或不是由某个其它硬件假扮成相机单元140捕获的。

需注意,虽然在本文中为了解释的目的讨论了面部识别,但所公开的技术可在各种其它上下文中使用以验证图案不是被重放的和/或图像是由已知相机单元捕获的。

校准和登记数据的示例性存储

在一些实施方案中,可被用于所公开技术的各种设备数据被存储。这个数据可在制造期间(例如基于具体设备的硬件特性)或者在用于面部识别认证的用户登记期间被存储。在一些实施方案中,设备数据例如经由互联网被备份到一个或多个服务器。在一些实施方案中,设备数据的至少一部分被sep130签名和/或加密。设备数据例如可允许将设备恢复到出厂设置或者特定恢复点。sep130进行的签名可允许sep130验证恢复数据实际用于正确设备,而加密可阻止其他各方确定敏感数据。

在一些实施方案中,校准数据在相机单元140制造期间被存储。例如,温度可能影响红外捕获模式,因此在多个不同温度捕获的图像可被捕获并存储。在一些实施方案中,图像在存储之前可被加密、处理、压缩等等。在一些实施方案中,sep130被配置为对该数据进行签名和/或加密,使得其不能被篡改而不被检测到和/或不能被恶意实体解译。校准数据的另一示例是相机对准数据。在一些实施方案中,稀疏校准数据可被存储并且校准数据的完整集合可由设备100通过捕获附加传感器数据并结合稀疏校准数据对其进行处理来生成。

在一些实施方案中,校准数据可包括已知参考图像的高分辨率捕获(例如深度和泛光捕获)。

探测图案数据(例如利用探测图案捕获的帧或处理此类帧的输出)可例如在被sep130加密之后与校准数据一起存储。在各种实施方案中,sep130在加密之前可包括具有探测图案数据(或这里讨论的任何其它经加密数据)的随机数据,以提高安全性。

类似地,在用户被登记用于面部识别时,可捕获并存储用户的模板数据。例如,sep130可捕获用户的多个图像,处理这些图像以生成所捕获面部的数学表示(例如利用特征向量),以及继续捕获图像直到向量满足一个或多个标准。sep130可加密模板数据或内部地存储模板数据。在一些实施方案中,在登记期间可捕获多个不同面部姿态。sep130在允许生物特征登记之前可要求另一认证类型(例如密码或pin)。用于登记的所捕获图像例如可包括各种数量的深度和泛光图像对。在一些实施方案中,sep130被配置为存储在登记过程期间捕获的数据,诸如在登记期间捕获的实际图像和/或在登记期间捕获的面部的数学表示。保存登记图像本身就可允许例如在神经网络未来被更新的情况下重新生成数学表示,而不需要重新捕获登记图像。sep130在一些实施方案中可对登记数据进行签名和/或加密,并且在将其用于面部识别之前验证登记数据。

在一些实施方案中,在登记期间捕获的生物特征数据不被存储在除了设备100之外的任何地方(例如不利用云技术进行备份)。在一些实施方案中,诊断模式可允许共享生物特征信息,例如以帮助支持或与面部识别相关的故障诊断。

在各种实施方案中,sep130被配置为例如通过确认数据被sep130签名和/或基于sep130能够利用其私密密钥解密数据生成预期格式的数据来检查校准和/或登记数据的真实性。

图6b是根据一些实施方案示出一种用于生成和存储校准数据的示例性方法的流程图。除了其他之外,图6b所示的方法可结合本文公开的计算机电路系统、系统、设备、元件或部件中的任一者来使用。在各种实施方案中,所示的方法要素中的一些可同时执行,按与所示顺序不同的顺序执行,或者可被省略。还可根据需要执行附加的方法要素。

在645,在例示的实施方案中,为相机单元确定校准数据。这可包括利用一个或多个相机模式(例如深度捕获模式)在不同条件(例如不同温度、取向等)捕获图像。这可包括捕获已知参考图像的一个或多个图像。确定校准数据可包括处理所捕获的图像数据,例如以确定数据的特性、压缩数据等等。

在650,在例示的实施方案中,处理元件(例如sep130)对校准数据进行加密和/或密码签名。sep130可利用对于给定设备的sep130独特的内部私密密钥来执行这个加密和/或签名。

在655,在例示的实施方案中,校准数据被存储。在一些实施方案中,校准数据被存储在sep130中。在其它实施方案中,校准数据被存储在sep130之外,并且可例如被加载到在引导时能被sep130访问的存储器中。在一些实施方案中,校准被远程地存储,例如被存储到云备份系统。

图6c是根据一些实施方案示出一种用于使用校准数据的示例性方法的流程图。除了其他之外,图6c所示的方法可结合本文公开的计算机电路系统、系统、设备、元件或部件中的任一者来使用。在各种实施方案中,所示的方法要素中的一些可同时执行,按与所示顺序不同的顺序执行,或者可被省略。还可根据需要执行附加的方法要素。

在665,在例示的实施方案中,所存储的校准数据被访问。这例如可在设备引导时或者响应于面部识别会话的发起而被执行。

在670,在例示的实施方案中,处理元件(例如sep130)验证所访问的校准数据。这例如可包括解密校准数据和/或验证校准数据的密码签名。如果校准数据未通过验证,则可指示错误状态,并且生物特征认证不可被允许。在一些实施方案中,校准数据被解压缩。验证可避免校准数据的篡改或替换。如果校准数据受到破坏,则可从备份存储(例如云备份)检索并恢复。

在675,在例示的实施方案中,处理元件(例如sep130)将经验证的校准数据用于面部识别会话中的处理。例如,校准数据可被用于深度捕获以确定用于面部匹配的面部特征向量。校准数据也可用于处理来自一个或多个探测图案捕获的图像数据,以验证一个或多个探测图案。

示例性闭锁技术

在一些实施方案中,设备100被配置为响应于各种事件触发而强加闭锁。闭锁可在预定时间间隔(或无期限地)阻止对设备的所有访问或者可要求额外的认证来绕过闭锁(例如除了生物特征认证之外还使用密码或pin或者只有制造方知道的私密密钥)。例如,“生物特征闭锁”在允许对设备100的访问之前可要求一个或多个非生物特征认证类型。在各种实施方案中,在给定设备中可以不同间隔、解锁条件等等实现多个不同类型的闭锁。以下讨论在一些实施方案中提供了导致闭锁的事件的非限制性示例。

在一些实施方案中,设备100的重新引导或者来自用户的远程指示可导致闭锁。在一些实施方案中,确定自用户上一次成功认证以来已经经过了一定时间间隔可导致闭锁。例如,如果用户已经有几天未被认证,则除了生物特征认证之外可要求输入pin或密码。在一些实施方案中,在设备100被锁定时移除sim卡可导致闭锁。在一些实施方案中,以一种或多种方式解除紧急屏幕可导致闭锁。在一些实施方案中,规避闭锁可要求来自另一可信设备的准许,或者可要求用户调用服务来获取访问权限。

与生物特征认证有关的闭锁触发可包括:特定数量的匹配生物特征尝试不成功(尝试例如可以只在面部或指纹被检测到但不与已知用户匹配的情况下才被计数)、特定数量的匹配图像捕获模式序列失败、特定数量的探测图案检查不成功、(例如sep130)在会话密钥过期之后接收到图像捕获帧、接收到临时值丢失或不正确的图像捕获帧、接收到签名丢失或不正确的图像捕获帧、检测到与所接收帧计数器有关的差异、用户不满足注意力意识阈值(例如因为用户的眼睛未睁开或者用户并非正看着或注意设备)等等。

需注意,在一些实施方案中,这些事件中的多个可被一起计数。例如,面部识别匹配不成功和匹配图像捕获模式序列失败这二者可一起被计数,并且将计数与单个阈值进行比较。另外,不同触发可导致不同闭锁间隔,并且附加触发可增大当前闭锁间隔。

使用图像捕获模式序列的示例性方法

图7是根据一些实施方案示出一种用于在安全面部识别会话中使用伪随机序列的示例性方法的流程图。除了其他之外,图7所示的方法可结合本文公开的计算机电路系统、系统、设备、元件或部件中的任一者来使用。在各种实施方案中,所示的方法要素中的一些可同时执行,按与所示顺序不同的顺序执行,或者可被省略。还可根据需要执行附加的方法要素。

在710,在例示的实施方案中,设备100确定用于多个图像捕获分组的图像捕获模式伪随机序列。在例示的实施方案中,每个分组包括第一照明模式和第二照明模式(例如在一些实施方案中,泛光和点照明模式)。在一些实施方案中,这些照明模式对应于二维捕获模式和三维捕获模式。在例示的实施方案中,每个分组的照明模式的排序是伪随机地确定的。在其它实施方案中,图7的方法可通过为单个图像捕获分组确定图像捕获模式伪随机序列来执行。在一些实施方案中,序列中捕获的数量是伪随机地确定的。图像捕获分组的一个示例是一对泛光和深度捕获,它们组合生成用于面部识别匹配的复合帧。在这个上下文中,第一对可伪随机地被选为是深度捕获后面接着泛光捕获,第二对可伪随机地被选为是泛光捕获后面接着深度捕获,等等。在其它实施方案中,可实施其它类型的捕获模式序列(例如比对更大的捕获集合之间的随机性、附加捕获模式等等)。

在720,在例示的实施方案中,sep130接收被指示为正被相机单元捕获的信息(例如相机单元140可接收指示所确定序列的信息,利用该序列捕获图像数据,并将图像数据发送给sep130)。需注意,信息可能实际不是由装置的相机单元捕获的,而可能是由另一单元假扮相机单元140获取的。在一些实施方案中,伪随机序列可有利于检测此类欺骗。

在730,在例示的实施方案中,sep130响应于分析图像信息并确定图像信息是否是利用图像捕获模式伪随机序列捕获的来确定是否要授权。在一些实施方案中,sep130对于特定面部识别会话可以只在验证了序列之后才发起激发探测图案。如果所述序列未被识别,则面部识别失败可发生,或者sep130可指定应捕获另一序列。就此,sep130还可存储和/或传输指示不正确序列被检测到的信息,并且设备100可实施一个或多个附加认证要求(例如除了面部识别之外还要求手动输入一个或多个认证凭据、在至少暂时锁定设备100之前检查最大数量的尝试等等)。如果序列得到验证,则认证可继续(例如面部匹配、探测图案等等)。在各种实施方案中,序列的验证可大幅降低序列是从用户先前图像重放的或者是由硬件假扮相机单元140生成的可能性。

具有多个证实检查的示例性面部识别会话

图8是根据一些实施方案示出一种用于在安全面部识别会话中使用多种类型的证实的示例性方法的流程图。除了其他之外,图8所示的方法可结合本文公开的计算机电路系统、系统、设备、元件或部件中的任一者来使用。在各种实施方案中,所示的方法要素中的一些可同时执行,按与所示顺序不同的顺序执行,或者可被省略。还可根据需要执行附加的方法要素。

在810,在例示的实施方案中,设备100发起面部识别会话。会话可响应于用户输入(例如使用物理按钮或经由触摸屏选择选项)而被发起。在一些实施方案中,面部识别会话可响应于用户与设备100交互的指示诸如设备100的移动(例如指示用户已拿起设备100)或者基于检测到用户的面部或注视而被发起。在各种实施方案中,会话可自动被发起,例如当用户抬起设备100或轻击屏幕时。在一些实施方案中,设备100可在设备100的屏幕上显示通知之前自动发起该会话。在一些实施方案中,设备100可通过指示应执行生物特征认证(例如用户应看着设备)或用户应输入密码来提示用户是面部识别会话(例如当第三方应用程序请求时)。方法要素810可包括在硬件上供电、访问相机校准数据、通信以建立部件之间的一个或多个会话密钥等等。如图所示,810处的失败可使流程前进到870并且可要求附加认证(例如非生物特征认证)。

在820,在例示的实施方案中,设备100确定是否检测到面部。这个初始面部检测可在来自相机单元140的数据上执行,但用于确定是否有面部存在的图像可以被用于也可以不被用于面部识别比较。如果没有检测到面部,则流程保持在要素820直到检测到面部。如果检测到面部,则流程前进到830。如图所示,在超时间隔并且检测面部失败之后,设备100可休眠,如方法要素825所示(这例如可防止过量的电池使用)。

在一些实施方案中,设备100可在检测到的面部周围生成边界框,并且可将边界框用于后续操作(例如面部匹配、探测图案证实等等)。例如,图像处理器160可只为边界框内的对象生成特征向量。边界框可利用面部标志点(例如鼻、口、眼等)来确定,并且可被用于生成被用于面部识别匹配的规范面部尺寸。

在一些实施方案中,设备100还可例如通过跟踪用户眼睛移动来检查用户在820是否正给予关注。如果用户并非正在看设备,则面部检测要素820可失败。这可避免用户的面部例如在用户正在睡觉或者并未给予关注时被用于生物特征认证。

在830,在例示的实施方案中,设备100执行面部匹配和序列证实操作。在一些实施方案中,应用程序软件经由api与sep130通信来引发要素830。sep130可将来自图像处理器160处理的图像帧的特征向量与一个或多个用户的模板特征向量进行比较。sep130可实施一个或多个神经网络来执行这个比较。另外,sep130可例如利用上文参考图7所述的技术来确定图像捕获模式序列是否被正确使用。在一些实施方案中,为每个面部识别会话随机化捕获模式序列。如果面部匹配或序列证实失败,则流程可返回到820。如果面部匹配或序列证实失败并且重试尝试计数已达到阈值,则流程可前进到870。需注意,这点的失败可阻止探测图案被激发(这可在840处出现,如下文所述),这可提高探测图案的安全性。在一些实施方案中,830处的失败可在前进到面部检测820之前强加延迟和/或可要求检测用户意图继续面部识别会话(例如基于注视、手势、物理输入诸如按钮、手动输入诸如使用触摸屏等等)。

在840,在例示的实施方案中,sep130证实探测图案。例如,sep130可利用上文参考图6a所述的技术。如上文所述,图案可永久性地在特殊发射器阵列中实施或者动态地生成,并且在任一种情况下可伪随机地选择。可对多个探测图案进行证实。在一些实施方案中,探测图案可在序列中在各种不同位置被激发,并且位置可被随机化。在一些实施方案中,如果探测图案失败,则可允许一次或多次重试,在这种情况下,流程可返回到要素820。sep130或某个其它要素可选择探测图案。

在850,在例示的实施方案中,sep130为利用探测图案捕获的图像数据执行面部匹配。在一些实施方案中,这确保是使用探测图案来捕获在830匹配的相同面部。850的匹配可包括将用于探测图案帧的特征向量与面部识别会话期间先前捕获的帧(例如830处所证实的捕获序列)进行比较。在其它实施方案中,除了与来自序列的捕获进行匹配之外或者代替与来自序列的捕获进行匹配,也可与用户模板数据执行匹配。如果这个匹配失败,则流程可前进到870。

在860,在例示的实施方案中,sep130确定认证决定。如果决定是肯定的,则可允许用户解锁设备100或执行密码操作诸如提供认证决定给其他元件、启用或禁用外围设备、访问钥匙串数据、以sep130能访问的密钥执行操作、访问用于浏览器或其他表格的自动填充数据、访问sep密钥保护的数据、允许支付功能、下载或访问应用程序等等。

在870,要求附加认证。在一些实施方案中,方法要素870可对应于多个不同闭锁模式,其可强加超时间隔、非生物特征认证要求等等。

在一些实施方案中,图8的技术可在相对小的时间间隔内(例如小于一秒)执行,以快速且直观地允许生物特征认证。在一些实施方案中,在面部识别会话期间捕获的图像数据在确定会话认证结果之后被丢弃。

在图8中可能出现的不同失败的示例包括但不限于:没有面部和序列未被检测到,这可使面部识别会话重新开始(这可允许高达阈值数量的重试);在830中检测到面部但没有检测到序列(这可以不允许重试或者可允许重试一次);帧计数器失败、相机或投射失败(例如由于缺少电力)、临时值失败、帧签名失败等。这些失败中的一些在一些实施方案中可以导致也可以不导致设备闭锁。

在一些实施方案中,在允许生物特征认证之前,设备100被配置为要求用户以用于解锁设备的密码来设置设备100。生物特征认证(例如面部识别)于是可被用于在不使用密码的情况下解锁设备100。这可允许设备100要求比传统密码更长和/或更复杂的密码,例如因为用户可能频率更低地使用密码。更强的密码可提高设备100的总体安全性。在一些实施方案中,设备100将始终接受已知用户的密码来代替面部识别。在一些实施方案中,在以下示例性情形中要求密码:设备刚被开启或重启、设备在阈值时间间隔内还未被解锁、密码在阈值时间间隔内还未被用于解锁设备、设备已接收到远程锁定命令、面部失败已经不成功超过尝试阈值数量、或者关机或紧急模式已被发起然后被取消。

在一些实施方案中,当生物特征认证被禁用时,用于受高度保护的数据(例如sep130所控制的数据)的密钥被丢弃。此类数据的示例可包括钥匙串信息,诸如基于一个或多个经授权用户过去在网站上的活动的表格填充信息。在这些实施方案中,在利用密码解锁设备100之前,被保护数据于是是不能访问的。在一些实施方案中,当生物特征认证被启用时,此类密钥在设备锁定时不被丢弃,但以sep130提供的密钥进行封装。如果面部识别会话成功,则sep130可提供用于对数据保护密钥解封装的密钥,并解锁设备100。数据保护与生物特征认证系统之间的配合可提高安全性。在各种实施方案中,与面部识别有关的一个或多个密钥在要求密码输入时被丢弃,例如如上文所述。

模块的示例性组织

图9是示出cpu110、sep130、图像处理器160和相机模块140之间模块的一种示例性非限制性组织的框图。所例示的组织是为了解释的目的而被图示的,而并非意图要限制本公开的范围。如本文所用,术语“模块”是指用于执行功能的可执行程序指令和/或被配置为执行功能的电路系统。因此,参考图9所述的各种功能性例如可通过执行程序指令或者由专用电路系统来执行。

在各种实施方案中,应用程序910或主屏幕915可发起面部识别会话。例如,用户可执行指示期望进行面部识别的动作(例如,以特定方式移动设备诸如将其翻转或拿起、按压设备上的物理按钮、选择设备上的图形选项、在看着设备时做出特定面部表情、说出特定字词或短语等等)。应用程序910可以是第三方应用程序、操作系统、移动支付应用程序等等。

例如对于支付应用程序,可基于生物特征认证结合进行支付的意图指示来对支付进行授权。例如,为了修改支付方法,可要求重新认证。在一些实施方案中,成功的面部识别在进行支付的意图指示之后必须在一个时间间隔内被确认。

在一些实施方案中,第三方应用程序不能访问与生物特征认证有关的敏感数据,而只是请求生物特征认证并被通知认证是否成功。安全数据诸如钥匙串项目可被sep130保护,这可要求在释放该数据之前面部识别会话成功或者输入密码。应用程序可以能够使用面部识别作为多因素认证中的后续因素。另外,第三方应用程序可以能够生成和使用被sep130保护的密钥(例如ecc密钥)。

生物特征api920在例示的实施方案中被应用程序910和主屏幕应用程序915用于访问设备功能性。在一些实施方案中,api920可包括用户级和内核级api。如例示的实施例中所示,api920可被用于经由相机接口925和sep驱动器930(它们每一者又可实施用于与其相应部件通信的api)发送命令。因此,应用程序910可请求面部识别和/或指定会话参数(例如实施什么安全性技术)而不暴露sep130控制的敏感数据(诸如探测图案的标识、用户面部特性的模板数据或者例如图像捕获模式序列)。

在一些实施方案中,api920可允许应用程序指定可用证实技术中只有一部分应被实施。例如,api920可允许指定对于具体面部识别会话应实施图8的方法的哪些要素。

相机接口925在例示的实施方案中被配置为允许经由api920与图像处理器160通信。类似地,驱动器930在例示的实施方案中被配置为允许经由api920与sep130通信。在一些实施方案中,照明器接口模块(未明确示出)被配置为允许cpu110与一个或多个照明模块之间经由api920的通信。

图像处理器160在例示的实施方案中包括生成序列模块945,其可被配置为伪随机地生成图像捕获模式序列并将其传送给相机单元140和sep130(例如经由图像元数据970)。在例示的实施方案中,图像处理器160还包括面部检测模块950,其可被配置为在140捕获的帧中检测面部以启动面部识别会话(例如,图像处理器160在以模块945生成序列之前可等待模块950检测面部)。在例示的实施方案中,图像处理器160还包括处理图像模块955,其可被配置为处理来自相机单元140的图像数据以生成图像元数据970。

图像元数据970可被存储在图像处理器160和sep130二者能访问的存储器中,并且可包括特征向量数据、序列数据、签名数据等等。在一些实施方案中,处理图像模块955被配置为为图像数据的每个帧或复合帧生成帧号并将帧号存储在图像元数据970中。

相机单元140在例示的实施方案中包括签名图像数据模块960,其被配置为利用相机单元140的私密密钥对数据签名。这可允许验证图像数据实际上是由相机单元140而不是另一相机单元生成的。

sep130在例示的实施方案中还包括控制模块932,其可被配置为执行所述的各种操作。例如,控制模块932可运行一个或多个神经网络来生成用于登记的特征向量和/或将图像元数据970与模板数据975匹配。为了初始化,控制模块932可建立与一个或多个其他部件的安全会话。控制模块932还可解密校准数据980和/或检查校准数据980被正确签名。sep130于是可将校准数据980的至少一部分发送给图像处理器160以有利于模块955的处理。对于面部匹配,控制模块932可被配置为检查认证是否被允许,等待用户关注,以及指示图像处理器160继续捕获序列。sep130于是可验证序列并基于图像元数据970执行匹配。sep130还可验证图像元数据970的签名,验证帧看起来如所预期的那样,以及验证每个帧的临时值。

校准数据980在例示的实施方案中被存储在sep130之外并被加密,但在其他实施方案中,其可被存储在sep130内(例如在元件380中)。一般来讲,在本文被描述为由sep130执行的各种功能性中的任何功能性可在不使用安全电路的情况下被执行。然而,利用安全电路执行各种功能性就可大大地提高面部识别会话的安全性。

在例示的实施方案中,sep130包括被配置为执行面部识别匹配的面部匹配模块940和用于在图像元数据970中检测一个或多个探测图案的秘密图案检测模块935。控制模块932可指示何时激发探测图案以及激发哪个图案。

图9的组织和元件是为了解释的目的而被图示的,而并非意图要限制本公开的范围。在各种实施方案中,可省略或添加元件,并且被描述为由一个元件执行的功能性可由一个或多个其他元件来执行。

示例性设备配置方法

图10是根据一些实施方案示出一种用于在安全面部识别会话中使用多种类型的证实的示例性方法的流程图。图10的方法例如可在设备100制造期间被执行。除了其他之外,图10所示的方法可结合本文公开的计算机电路系统、系统、设备、元件或部件中的任一者来使用。在各种实施方案中,所示的方法要素中的一些可同时执行,按与所示顺序不同的顺序执行,或者可被省略。还可根据需要执行附加的方法要素。

在1010,在例示的实施方案中,至少一个照明器阵列被配置为生成照明点的图案。这例如可包括永久性地禁用阵列中的一个或多个发射器。在一些实施方案中,这可以使得被禁用的发射器不能视觉地检测的方式来执行。在一些实施方案中,可例如以不同图案配置多个阵列。

在1020,在例示的实施方案中,利用所配置的照明点图案捕获一个或多个图像。例如,相机模块140可在照明图案被发射时捕获一个或多个帧。

在1030,在例示的实施方案中,所捕获的这一个或多个图像被处理以生成照明图案信息。这可包括生成所述图案与另一图案(例如来自相同尺寸的阵列的完整图案)之间的差分信息。在各种实施方案中,可使用各种处理技术来生成图案的特性(其然后可被用作模板来未来验证探测图案)。

在1040,在例示的实施方案中,照明图案信息被存储在包括在安全电路中或由安全电路控制的电路系统中。例如,sep130可内部地存储信息,或者利用私密密钥加密信息并将信息存储在设备100的另一位置中。这可允许sep130未来验证探测图案,而其它实体不能确定探测图案。在一些实施方案中,所存储的信息包括利用探测图案捕获的实际图像数据。在其它实施方案中,利用探测图案捕获的图像数据根本不被存储,而是只存储图像数据的属性诸如指示哪些照明点被接通和关断的代码(例如在要素1030中生成)。

示例性计算机可读介质

本公开已经在上文中详细描述了各种示例性电路。意图在于本公开不仅涵盖包括此类电路系统的实施方案,而且还涵盖包括指定此类电路系统的设计信息的计算机可读存储介质。因此,本公开旨在支持不仅涵盖包括所公开电路系统的装置、而且还涵盖以被配置为生成包括所公开电路系统的硬件(例如集成电路)的制造系统识别的格式指定电路系统的存储介质的权利要求。对此类存储介质的权利要求旨在涵盖例如生成电路设计但本身不制造该设计的实体。

图11是根据一些实施方案示出一种存储电路设计信息的示例性非暂态计算机可读存储介质的框图。在例示的实施方案中,半导体制造系统1120被配置为处理存储在非暂态计算机可读介质1110上的设计信息1115并基于设计信息1115制造集成电路1130。

非暂态计算机可读介质1110可包括各种适当类型的存储器设备或存储设备中的任何设备。介质1110可以是安装介质,例如cd-rom、软盘或磁带设备;计算机系统存储器或随机存取存储器诸如dram、ddrram、sram、edoram、rambusram等;非易失性存储器,诸如闪存存储器、磁介质存储器例如硬盘驱动器或光学存储装置;寄存器,或其他类似类型的存储器元件等。介质1110也可包括其他类型的非暂态存储器或它们的组合。介质1110可包括可驻留在不同位置例如通过网络连接的不同计算机系统中的两个或更多个存储器介质。

设计信息1115可利用各种适当的计算机语言中的任何语言来指定,包括硬件描述语言诸如但不限于:vhdl、verilog、systemc、systemverilog、rhdl、m、myhdl等。设计信息1115可以能被半导体制造系统1120用来制造集成电路1130的至少一部分。设计信息1115的格式可被至少一个半导体制造系统1120识别。在一些实施方案中,设计信息1115还可包括指定集成电路1130的综合和/或布局的一个或多个单元库。在一些实施方案中,设计信息整体或部分地以指定单元库元素及其连接性的网表的形式来指定。

半导体制造系统1120可包括被配置为制造集成电路的各种适当元件中的任何元件。这可包括例如用于(例如在可包括掩膜的晶片上)沉积半导体材料、移除材料、改变所沉积材料的形状、(例如通过掺杂材料或利用紫外处理修改介电常数)对材料改性等等的元件。半导体制造系统1120还可被配置为对于正确操作执行所制造电路的各种测试。

在各种实施方案中,集成电路1130被配置为根据设计信息1115指定的电路设计来操作,这可包括执行本文所述的功能性中的任何功能性。例如,集成电路1130可包括图1-图5或图9中所示的各种元件中的任何元件。另外,集成电路1130可被配置为执行本文结合其他部件所述的各种功能。另外,本文所述的功能性可由多个连接的集成电路来执行。

如本文所用,形式为“指定被配置为…的电路的设计的设计信息”的短语并不暗示为了满足该要素就必须制造所涉及的电路。相反,该短语表明设计信息描述了一种电路,该电路在被制造时将被配置为执行所指示的动作或者将包括所指定的部件。

附加示例性实施方案

在一些实施方案中,一种非暂态计算机可读介质上存储有指令,所述指令能被计算设备执行以执行包括如下的操作:为多对图像捕获确定图像捕获模式的伪随机序列,其中每对包括利用第一照明模式和第二照明模式的捕获,其中每对的第一和第二照明模式的排序是伪随机确定的;接收被指示为被相机单元捕获的图像信息;和响应于分析图像信息并确定图像信息是否是利用图像捕获模式的伪随机序列捕获的来确定是否要授权面部识别。

在一些实施方案中,一种非暂态计算机可读介质存储有能被计算设备执行以执行包括如下的操作的指令:确定使用多个照明点的相机模式的照明图案;接收相机单元所捕获的图像信息;和基于确定图像信息是否不是利用所确定的照明图案捕获的而确定是否指示面部识别失败。

在一些实施方案中,一种装置包括:相机单元;一个或多个处理元件,所述处理元件被配置为对于面部识别会话:确定多个图像捕获的图像捕获模式伪随机序列;接收一组图像捕获的第一图像信息,其中第一图像信息被指示为是由相机单元基于所述序列捕获的;确定使用多个照明点的相机模式的照明图案;请求相机单元利用所确定的照明图案捕获一个或多个图像,其中装置被配置为只在验证了图像捕获模式序列之后才发射所确定的照明图案用于面部识别会话;接收被指示为由所述相机单元利用所述照明图案捕获的第二图像信息;和基于确定第二图像信息是否是利用所确定的所述照明图案捕获的而确定是否指示面部识别失败。

在一些实施方案中,一种装置包括:一个或多个处理元件,处理元件被配置为对于面部识别会话:检测面部在相机单元所捕获的图像中是否可见;响应于检测到面部,确定多个图像捕获的图像捕获模式伪随机序列;接收被指示为由所述相机单元捕获的第一图像信息;响应于确定第一图像信息是利用所述图像捕获模式伪随机序列捕获的,处理第一图像信息用于与一个或多个用户的模板面部信息进行比较;响应于检测到对于所述一个或多个用户中的用户匹配,确定使用多个照明点的三维捕获模式的照明图案;接收被指示为由所述相机单元基于所确定的所述照明图案捕获的第二图像信息;响应于确定第二图像信息表现所确定的所述照明图案,确定第二图像信息中显示的面部是否匹配所述用户的面部;以及响应于确定第二信息中显示的面部匹配所述用户的面部而对所述用户进行认证。

在一些实施方案中,图像捕获模式的伪随机序列包括多对图像捕获,其中每对包括二维捕获模式和三维捕获模式,其中每对的二维和三维捕获模式的排序是伪随机确定的,并且其中图像捕获模式被相机单元支持。

在一些实施方案中,一种制造移动设备的方法,包括:配置至少一个照明器阵列以生成照明点图案;由移动设备的相机单元利用所配置的照明点图案捕获一个或多个图像;处理所捕获的这一个或多个图像以生成照明图案信息;使用移动设备的安全电路将照明图案信息存储在被配置为使用该照明器阵列用于深度捕获成像的移动设备中。

在一些实施方案中,该方法还包括利用安全电路加密照明图案、以及将经加密的照明图案存储在移动设备外部。在一些实施方案中,该方法还包括使经加密的照明图案被传输给移动设备以用于移动设备的恢复过程。在一些实施方案中,照明图案信息包括利用该图案所捕获的图像数据帧。在一些实施方案中,照明图案信息包括该图案在一组已知图案中的索引。在一些实施方案中,照明图案信息指定图案的一个或多个特性。

在一些实施方案中,一种非暂态计算机可读介质存储有能被计算设备执行以执行包括如下的操作的指令:配置至少一个照明器阵列以生成照明点图案;利用所配置的照明点图案捕获一个或多个图像;处理所捕获的这一个或多个图像以生成照明图案信息;使用安全电路将照明图案信息存储在被配置为使用该照明器阵列用于深度捕获成像的移动设备中。

***

尽管特定实施方案已经在上文被描述并且已经在下面的附图中进行了图示,但这些实施方案并非要限制本公开的范围,即使相对于特定特征只描述了单个实施方案的情况下也是如此。本公开中提供的特征的示例意在进行例示,而非限制,除非做出不同表述。例如,对术语“电话”的提及可涵盖任何合适的移动设备。因此,以上和以下的描述意在涵盖受益于本公开的本领域技术人员会明了的此类替代形式、修改形式和等价形式。

本公开的范围包括本文(明确或暗示)公开的任意特征或特征组合,或其任意推广,无论其是否减轻了本文解决的任何或所有问题。因此,在本申请(或要求享有其优先权的申请)进行期间可以针对特征的任何此类组合做出新的权利要求。具体地,参考所附权利要求,可以将从属权利要求的特征与独立权利要求的特征组合,并可以通过任何适当方式而不是仅仅通过所附权利要求中列举的具体组合来组合来自相应独立权利要求的特征。

本公开还预期负责此类个人信息数据的收集、分析、公开、传输、存储或其他用途的实体将遵守已确立的隐私政策和/或隐私实践。具体地,此类实体应当实行并坚持使用被公认为满足或超出对维护个人信息数据的隐私性和安全性的行业或政府要求的隐私政策和实践。例如,就利用面部识别解锁和/或授权设备而言,来自用户的个人信息应被收集用于实体的合法且合理的用途,并且不在这些合法使用之外共享或出售。另外,此类收集应仅在用户知情同意之后进行。此外,此类实体应采取任何所需的步骤,以保障和保护对此类个人信息数据的访问,并且确保有权访问个人信息数据的其他人遵守他们的隐私政策和程序。另外,这种实体可使其本身经受第三方评估以证明其遵守广泛接受的隐私政策和实践。

不管前述情况如何,本公开还设想用户选择性地阻止使用或访问个人信息数据的实施方案。即本公开预期可提供硬件元件和/或软件元件,以防止或阻止对此类个人信息数据的访问。例如,本发明的技术可被配置为在注册服务期间允许用户选择“加入”或“退出”参与对个人信息数据的收集。

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