首页> 中国专利> 嘈杂环境中的面部识别

嘈杂环境中的面部识别

摘要

当对所获取的图像的基于图像的认证失败并且计算设备的用户已经提供了授权该用户访问该计算设备的用户凭证时,该计算设备将所获取的图像存储为暂态图像模板。暂态图像模板可以用于进一步授权用户在预定时间段内访问计算设备。在预定时间段到期时,计算设备删除暂态图像模板。然后,计算设备恢复为使用基线图像模板来对用户执行基于图像的认证。暂态图像模板也可以与位置相关联,使得当计算设备在该位置处或附近时,计算设备将暂态图像模板用于基于图像的认证。

著录项

  • 公开/公告号CN113039543A

    专利类型发明专利

  • 公开/公告日2021-06-25

    原文格式PDF

  • 申请/专利权人 微软技术许可有限责任公司;

    申请/专利号CN201980075238.1

  • 发明设计人 A·A·哈桑;E·C·贾伊莫三世;

    申请日2019-11-07

  • 分类号G06F21/32(20060101);

  • 代理机构72002 永新专利商标代理有限公司;

  • 代理人贾丽萍

  • 地址 美国华盛顿州

  • 入库时间 2023-06-19 11:35:49

说明书

技术领域

本文公开的主题总体上涉及基于图像的认证机制,并且尤其涉及用于在诸如不利照明条件造成的那些情况下使用暂态图像模板来执行基于图像的认证。

背景技术

计算设备通常采用一种或多种机制来认证用户以使用该计算设备。此类机制的示例包括个人识别码(例如PIN)、字母数字密码、生物特征输入(例如语音、指纹等)和图像识别。图像识别通常优先于字母数字密码或PIN的使用,这是因为不需要用户记住字母数字密码或PIN,并且只需让计算设备捕获他或她的图像即可访问计算设备。图像识别还提供了免提和免语音方法,用户可以通过该方法向计算设备认证他或她自己。识别出的图像可以包括面部、虹膜、角膜或其他身体部位。

通常,计算设备使用基线图像模板来执行图像识别。该计算设备可以使用一种或多种图像处理技术来将基线图像模板与试图用该计算设备认证他或她自己的用户的捕获图像进行比较。在计算设备确定所捕获的图像类似于基线图像模板的情况下,计算设备然后可以授权用户访问计算设备。

然而,在某些情况下,即使实际上用户被授权访问计算设备,计算设备也可能以确定所捕获的图像与基线图像模板不相似。作为一个示例,变化的照明条件可能影响所捕获的图像,使得计算设备难以确定所捕获的图像是否类似于基线图像模板。更进一步,变化的照明条件可能会持续存在,使得图像识别机制成为准确性或实用性降低的认证用户的手段。

发明内容

为了解决在基于图像的认证领域内出现的这些问题和其他问题,本公开提供了一种计算设备的一个或多个实施例,该计算设备建立临时或暂态图像模板以用于在计算设备无法使用捕获的图像对用户进行认证的情况下认证用户。

在一个实施例中,公开的系统包括其上存储有计算机可执行指令的计算机可读存储设备,以及可通信地耦合到该计算机可读存储设备的一个或多个硬件处理器。当执行计算机可执行指令时,一个或多个硬件处理器将系统配置为利用计算设备获取第一图像,并将第一图像与第一图像模板进行比较以确定与第一图像相对应的人是否被授权使用计算设备。一个或多个硬件处理器还将系统配置为基于第一图像和第一图像模板的比较而显示对用户凭证的请求以认证用户,并接收用户凭证。一个或多个硬件处理器还将系统配置为基于确定用户凭证授权用户使用计算设备,将第一图像存储为第二图像模板,其中基于预定条件,使用第二图像模板而不是所述第一图像模板来授权用户,并利用所述计算设备获取第二图像。另外,一个或多个硬件处理器将系统配置为基于预定条件将第二图像与第二图像模板进行比较,以确定用户是否被授权使用计算设备,并基于第二图像和第二图像模板的比较来授予对计算设备的访问权限。

在该系统的另一实施例中,该系统还被配置为评估预定条件,响应于对预定条件的评估而删除第二图像模板,并在删除第二图像模板之后指定第一图像模板用于授权用户。

在系统的另一实施例中,通过建立指示第二图像模板将用于认证用户的持续时间的计时器并确定计时器是否到期,而执行对预定条件的评估,其中,第二图像模板的删除是响应于确定计时器已到期的。

在系统的又一个实施例中,系统还被配置为将位置与第二图像模板相关联,并且对预定条件的评估包括确定计算设备是否与关联于第二图像模板的位置相距预定距离,并且删除第二图像模板包括:响应于确定计算设备超过了到该位置的预定距离,来删除第二图像模板。

在系统的又一实施例中,响应于用户通过用户凭证认证,该位置与第二图像模板相关联。

在该系统的另一个实施例中,该系统还被配置为确定与第一图像相关联的环境光水平,并且将第一图像存储为第二图像模板包括将环境光水平与环境光水平进行比较阈值,并响应于确定环境光水平超过环境光水平阈值而将第一图像存储为第二图像模板。

在系统的另一实施例中,第一图像与第一图像模板的比较导致基于图像的认证失败,并且在基于图像的认证失败之后用户凭证授权用户。另外,该系统还被配置为响应于基于图像的认证失败而递增失败计数值,确定失败计数值是否超过失败计数阈值,并且用第二图像模板替换第一图像模板,使得第一图像模板不再用于基于图像的认证。

本公开进一步提供了一种用于访问计算机设备的方法,该方法包括:利用计算设备获取第一图像,将第一图像与第一图像模板进行比较,以确定与第一图像相对应的人是否被授权使用计算设备,并基于第一图像和第一图像模板的比较显示对用户凭据的请求以认证用户。该方法还包括:接收用户凭证,基于对用户凭证授权用户使用计算设备的确定,将第一图像存储为第二图像模板,其中,基于预定条件使用第二图像模板而不是第一图像模板来授权用户,并利用计算设备获取第二图像。该方法进一步包括将第二图像与第二图像模板进行比较以基于预定条件确定用户是否被授权使用计算设备,以及基于第二图像与第二图像模板的比较来授予对计算设备的访问权限。

在所述方法的另一实施例中,所述方法包括:评估所述预定条件,响应于对所述预定条件的评估而删除所述第二图像模板,以及在删除所述第二图像模板之后,指定所述第一图像模板用于授权用户。

在该方法的另一实施例中,评估预定条件包括:建立计时器,该计时器指示第二图像模板将用于认证用户的持续时间,以及确定计时器是否已到期,其中删除第二图像模板是响应于计时器已到期的确定。

在该方法的又一个实施例中,该方法包括将位置与第二图像模板相关联,并且评估预定条件包括确定计算设备是否与关联于第二图像模板的位置相距预定距离,以及删除第二图像模板包括:响应于确定计算设备超过了到该位置的预定距离,删除第二图像模板。

在该方法的又一实施例中,响应于用户通过用户凭证认证,将该位置与第二图像模板相关联。

在该方法的另一实施例中,该方法包括确定与第一图像相关联的环境光水平,其中将第一图像存储为第二图像模板还包括将环境光水平与环境光水平阈值进行比较,以及响应于确定环境光水平超过环境光水平阈值,将第一图像存储为第二图像模板。

在该方法的另一实施例中,第一图像与第一图像模板的比较导致基于图像的认证失败,并且在基于图像的认证失败之后用户凭证授权用户。另外,该方法包括:响应于基于图像的认证失败,递增失败计数值;确定失败计数值是否超过失败计数阈值,以及用第二图像模板替换第一图像模板,使得第一图像模板不再用于基于图像的认证。

本公开进一步提供了一种用于访问计算机设备的系统,其中该系统包括用于利用计算设备获取第一图像的单元,用于将所述第一图像与第一图像模板进行比较以确定与所述第一图像相对应的人是否被授权使用所述计算设备的单元,以及用于基于所述第一图像和所述第一图像模板的比较显示对用户凭证的请求以认证用户的单元。该系统进一步包括用于接收所述用户凭证的单元,用于基于所述用户凭证授权用户使用计算设备的确定来将所述第一图像存储为第二图像模板的单元,其中基于预定条件而使用所述第二图像模板而不是第一图像模板来授权用户,以及用于利用计算设备获取第二图像的单元。该系统还包括用于用于将所述第二图像与所述第二图像模板进行比较以基于预定条件确定用户是否被授权使用计算设备的单元,以及用于基于所述第二图像与所述第二图像模板的比较来授予对计算设备的访问权限的单元。

在该系统的另一实施例中,该系统还包括:用于评估预定条件的单元;用于响应于对预定条件的评估而删除第二图像模板的单元;以及用于在删除第二图像模板后指定第一图像模板用于授权用户的单元。

在系统的另一实施例中,用于评估预定条件的单元通过建立计时器来执行评估,该计时器指示第二图像模板将用于认证用户的持续时间,并且确定计时器是否已到期。另外,用于删除第二图像模板的单元响应于计时器已到期的确定来删除第二图像模板。

在系统的又一个实施例中,该系统进一步包括用于将位置与第二图像模板相关联的单元;以及用于评估预定条件的单元通过确定计算设备是否与关联于第二图像模板的位置相距预定距离来执行评估,并且用于删除第二图像模板的单元通过响应于确定计算设备超过到该位置的预定距离而删除第二图像模板来执行删除。

在系统的又一个实施例中,该系统还包括用于确定与第一图像相关联的环境光水平的单元;其中,用于将第一图像存储为第二图像模板的单元通过将环境光水平与环境光水平阈值进行比较并响应于确定环境光水平超过环境光水平阈值而将第一图像存储为第二图像模板来进行存储。

在系统的另一个实施例中,第一图像与第一图像模板的比较导致基于图像的认证失败,并且在基于图像的认证失败之后用户凭证授权用户。另外,该系统包括用于响应于基于图像的认证失败而递增失败计数值的单元,用于确定失败计数值是否超过失败计数阈值的单元,以及用于用第二图像模板替换第一图像模板以使第一图像模板不再用于基于图像的认证的单元。

附图说明

在附图的图中,通过举例而非限制的方式示出了一些实施例。

图1是示出根据示例实施例的与图像处理服务器通信的计算设备的框图,该计算设备用于使用图像识别技术来认证用户。

图2示出了图1的计算设备的应用和数据的示例实施例。

图3A-3B示出了根据示例实施例的,用于根据用于向图1的计算设备认证图1的用户的所获取图像来生成暂态图像模板的方法。

图4A-4B示出了根据示例实施例的,用于使用一个或多个暂态图像模板向图1的计算设备认证用户的方法。

图5A-5B示出了根据示例实施例的,用于从获取的图像生成暂态图像模板的方法,其中,暂态图像模板将与对应的认证位置相关联。

图6A-6B示出了根据示例实施例的,用于使用一个或多个暂态图像模板和经过已认证的GPS位置向图1的计算设备认证用户的方法。

图7A-7B示出了根据示例实施例的用于在已经生成预定数量的暂态图像模板时修改一个或多个基线图像模板的方法。

图8示出了根据示例实施例的对于图1的计算设备的暂态图像模板实现计时器的方法。

图9是示出根据一些示例实施例的机器的组件的框图,该机器的组件能够从机器可读介质(例如,机器可读存储介质或机器可读存储设备)读取指令并执行本文讨论的方法的任何一项或多项操作。

具体实施方式

以下描述描述了说明本主题的示例实施例的系统、方法、技术、指令序列和计算机器程序产品。在下面的描述中,出于解释的目的,阐述了许多具体细节以便提供对本主题的各种实施例的理解。然而,对于本领域技术人员将显而易见的是,可以在没有这些具体细节中的一些或其他的情况下实践本主题的实施例。示例仅代表可能的变化。除非另有明确说明,否则结构(例如,结构组件,例如模块)是可选的,并且可以被组合或细分,并且操作(例如,在过程、算法或其他功能中)可以顺序变化或被组合或细分。

本公开提供用于对请求访问计算设备的用户执行基于图像的认证的系统和方法。在一个实施例中,计算设备捕获用户的图像以认证用户,并且将捕获的图像与基线图像模板进行比较以确定捕获的图像是否对应于基线图像模板。在计算设备确定捕获的图像对应于基线图像模板的情况下,计算设备可以认证用户。在计算设备确定捕获的图像不对应于基线图像模板的情况下,计算设备可以首先显示提示或查询,以请求用户使用第二认证机制(例如,用户输入的PIN或图案)来认证他自己或她自己。

在第二认证机制成功的情况下(例如,用户已经认证了他或她自己),计算设备然后可以确定所捕获的设备的环境中的环境光和/或所捕获的图像的照明条件是否为足以捕获足够的图像。就这一点而言,计算设备可以将测得的环境光(或检测到的环境光)与一个或多个环境光阈值进行比较,例如,较低的环境光阈值(指示变暗条件的可能性)或较高的环境光阈值(表示变亮条件的可能性)。

在计算设备确定照明条件导致认证过程中的失败的情况下,计算设备可以存储所捕获的图像,并将所捕获的图像用作暂态图像模板,以用于将来对所捕获的图像进行比较。就这一点而言,假定是在次优照明条件持续存在的环境中使用计算设备,并且暂态图像模板将有助于基于在相同环境中捕获的图像对用户进行认证。

因此,由于使用暂态图像模板增加了用户在随后捕获到的图像表现出与暂态图像模板所基于的初始捕获图像相似的质量(例如,较差的照明条件,模糊度,部分被遮盖等)的情况下将能够访问其计算设备的可能性,因此本公开对基于图像的认证领域提供了技术改进。然而,作为安全预防措施,在预定时间段过去之后,计算设备可以删除暂态图像模板,移除暂态图像模板或以其他方式使暂态图像模板不可用。可以从计算设备中删除暂态图像模板,因为随着暂态图像模板的数量增加,计算设备的整体安全性降低。因此,除了对基于图像的认证领域的技术益处之外,本发明还为计算机安全性和认证提供了技术益处,因为暂态图像模板的删除降低了未授权用户将使用呈现出与暂态图像模板相似的光照条件的捕获图像获得对计算设备的访问权限的可能性。

此外,并且如下面参考图6A-7B所讨论的,本公开进一步提供了上述实施例的变型,诸如通过将实施例扩展为涵盖地理位置和/或修改现有模板以适应假定继续的照明条件。因此,公开了对计算设备的功能的进一步的技术改进。

现在,本公开转向实现本文描述的技术方面的各种公开的实施例。图1是示出根据示例实施例的与认证服务器110通信的计算设备106的框图,该计算设备106用于使用图像识别技术来认证用户104。在一个实施例中,计算设备106被配置为通过捕获用户104的图像并将捕获的图像与图像模板进行比较来认证用户104。在另一个实施例中,计算设备106被配置为通过捕获用户104的图像,并将捕获的图像传送到认证服务器110,从而对用户104进行认证,认证服务器110随后执行将捕获的图像与图像模板的比较。然后,认证服务器110将比较结果传达给计算设备106。

认证服务器110经由网络108(例如,因特网或广域网(WAN))向计算设备106提供服务器侧功能。计算设备106可以包括客户端应用和/或模块,用于与认证服务器110交互并执行用户104的基于图像的认证。可由计算设备106实例化的应用的示例包括网络客户端,单用途应用(例如,“应用”),多用途应用(例如,编程客户端)或其组合。图像处理服务器106还可以与其他计算设备(未示出)通信地耦合,其他计算设备可以包括与计算设备106类似的应用和/或程序。

计算设备106可以包括但不限于移动电话、台式计算机、膝上型计算机、便携式数字助理(PDA)、智能电话、平板电脑、超级本、上网本、膝上型计算机、多处理器系统、基于微处理器的或可编程消费电子设备或用户104可以用来执行各种计算任务(例如,访问因特网,拨打电话,进行视频会议等)的任何其他通信设备。在一些实施例中,计算设备106可以包括显示模块(未示出)以显示信息(例如,以用户界面的形式)。在另外的实施例中,计算设备106可以包括触摸屏、加速计、陀螺仪、照相机、麦克风、全球定位系统(GPS)设备等中的一个或多个。如下面参考图2更详细地讨论的,计算设备106使用其各种传感器和硬件组件来验证用户104的身份并基于其中用户104已经捕获了他或她的图像的各种照明条件来存储用户104的暂态图像。

在一个实施例中,认证服务器110是基于网络的设备,其与计算设备106进行双向和/或单向通信。在某些情况下,多个用户可以具有可由计算设备106验证的对应用户帐户(例如,在计算设备106是企业网络的终端的情况下),并且多个用户可以分别在不同时间请求访问计算设备106,或者在计算设备106实现多任务操作系统的情况下同时请求访问计算设备106。一个或多个用户可以是与计算设备106交互的人、机器或其他装置。在各个实施例中,用户不是联网系统102的一部分,而是可以经由计算设备106或其他装置与联网系统102交互。

计算设备106可以通过一个或多个网络108与认证服务器110进行通信。尽管将一个或多个网络108示为单个实例,但是本领域的普通技术人员将理解,多个网络和/或多种类型的网络可以将计算设备106与认证服务器110通信耦合。例如,一个或多个网络108的一个或多个部分可以是自组织网络、内部网、外部网、虚拟专用网(VPN)、局域网(LAN)、无线局域网(WLAN)、广域网、无线广域网(WWAN)、城域网(MAN)、因特网的部分、公共交换电话网(PSTN)的部分、蜂窝电话网络、无线网络、Wi-Fi网络、WiMAX网络、另一种类型的网络或两个或更多个此类网络的组合。

计算设备106可以包括一个或多个应用(也称为“app”),例如但不限于Web浏览器、消息收发应用、电子邮件(email)应用、通信会话应用和类似应用。在一些实施例中,如果通信会话应用作为本地应用存储在计算设备106上,则该应用被配置为在本地提供用户界面以及用于与认证服务器110通信的至少一些功能(例如,认证用户,在一个或多个计算设备和/或服务之间建立通信通道,显示或输出音频和/或视频,使用一个或多个输入设备捕获音频和/或视频,等等)。相反,如果通信会话客户端未存储在计算设备106上,则计算设备106可以使用其Web浏览器访问认证服务器110提供的服务。

用户104可以经由计算设备106或其他方式与联网系统102交互。例如,用户104向计算设备106提供输入(例如,触摸屏输入或字母数字输入),并且该输入经由网络108被传送到联网系统102。在这种情况下,认证服务器110响应于接收到来自用户104的输入或来自计算设备106的指令,将信息通过网络108传送给计算设备106,以呈现给用户104。这样,计算设备106促进了用户104与认证服务器110之间的交互。

此外,尽管图1中所示的联网系统102采用了客户端-服务器架构,但是本主题当然不限于这种架构,并且可以例如很好地在分布式或对等架构系统中找到应用。

计算设备106被配置为使用一种或多种图像识别技术来认证用户104。在一个实施例中,计算设备106实例化使用用户104的图像以确定用户104是否被授权访问计算设备106的面部识别应用或其他模块。例如,通过使用计算设备106的照相机或其他图像捕获设备。面部识别应用可以利用一个或多个图像识别库来执行面部识别,例如开源计算视觉库(OpenCV),它是开源计算机视觉和机器学习软件库。OpenCV包含用于多种计算编程和脚本语言的接口,例如C++、Python、Java和MATLAB,并且可以在包括Microsoft Windows、Linux、Google Android和Mac OS在内的各种操作系统下进行实例化。另外和/或可替代地,可以使用Windows Hello实现面部识别应用,Windows Hello是用于计算操作系统的生物特征登录系统,可以从位于华盛顿州雷德蒙德的微软公司获得。

相应地,计算设备106可以包括来自OpenCV的一个或多个库,然后由计算设备106实例化的应用对其进行访问。另外和/或替代地,认证服务器110可以实例化OpenCV的一个或多个库,并且,计算设备106可以将一个或多个图像传送到认证服务器110以进行认证和/或进一步处理。更进一步,计算设备106和/或认证服务器110可以实例化使用WindowsHello开发的一个或多个应用。

在一个实施例中,用户104与计算设备106交互以建立用户104的基线图像模板。如本领域的普通技术人员将理解的,基线图像模板是计算设备用于与其他图像进行比较的图像模板,并确定一个或多个图像是否包含基线图像模板和/或与基线图像模板相似。在这种情况下,计算设备106可以使用基线图像模板来认证用户104,其中用户104使用计算设备106来获取用户104的一个或多个图像,并且将所获取的图像与基线图像模板进行比较。另外和/或可替代地,认证服务器110可以从计算设备106接收一个或多个所获取的图像,并且将关于用户104是否被认证的指令传达给计算设备106。因此,就这一点而言,描述为由计算设备106执行的一个或多个操作可以替代地由认证服务器110执行。

由计算设备106执行的比较包括但不限于直方图匹配、模板匹配和/或特征匹配。在计算设备106被配置为执行模板匹配的情况下,计算设备106可以被配置为采用各种模板匹配技术,包括但不限于平方差之和,平方差的归一化之和,互相关,归一化交叉相关,相关系数和其他此类模板匹配技术或其组合。

在计算设备106采用特征匹配的情况下,计算设备106可以从基线图像模板确定各种特征,并将这些确定的特征存储为基线图像特征。因此,当计算设备106获取用户104的图像以进行认证时(例如,通过使用相机捕获用户104的图像),计算设备106可以从捕获的图像中确定各种特征(例如,捕获的图像特征),然后将捕获的图像特征与基线图像特征进行比较。计算设备106可执行的特征匹配的类型包括但不限于尺度不变特征变换(SIFT),加速鲁棒特征(SURF),鲁棒独立基本特征(BRIEF),来自加速段测试的特征(FAST)和定向的FAST和旋转BRIEF(ORB)。

使用基于图像的认证的挑战之一是104的捕获图像可以根据使用计算设备106的环境而变化。例如,用户104可以处于黑暗或具有低照明条件的环境中,或者用户104可以处于过于明亮且具有明亮的照明条件的环境中。在这种情况下,低光和亮光相对于由计算设备106的照相机获取的光。因此,用户104可以感知他或她认为可接受的照明条件,但是计算设备106获得具有可测量的暗区域和/或曝光过度的区域的用户104的图像。作为另一示例,用户104可能无法正确地聚焦计算设备106的相机镜头,在这种情况下,所得图像可能是模糊的或散焦的。

在计算设备106获取具有问题质量(例如,曝光不足的区域、曝光过度的区域、模糊、部分模糊等)的用户104的图像的情况下,计算设备106和/或认证服务器110可能无法使获取的图像与基线图像模板匹配(例如,通过一种或多种模板匹配技术和/或一种或多种图像特征匹配技术)。因此,在计算设备106和/或认证服务器110不能使用基于图像的认证来认证用户104的情况下,计算设备106可以使用对用户104进行认证的辅助手段。在一个实施例中,辅助手段包括在计算设备106的显示器上显示提示,该提示请求用户104提供特定输入。特定输入可以包括但不限于PIN、图案、一个或多个图像的选择或输入的任何其他组合。特定输入还可以包括非触觉输入,例如语音识别输入。

然后,计算设备106可以确定辅助认证手段是否已经认证了用户106。在用户106已经使用辅助手段成功认证了他或她自己的情况下,计算设备106可以存储计算设备106所使用而未成功地认证用户的用户106的捕获图像的临时或暂态副本。计算设备106基于以下假设来存储临时副本或暂态副本:由于用户104已经使用辅助认证手段对他或她自己进行了认证,因此最初用于认证用户104的所捕获图像的图像质量(例如,照明条件)可能很差(例如,捕获图像的光低于或高于预定环境光阈值),这导致计算设备106无法通过基于图像的认证来认证用户104。附加地和/或可替代地,计算设备106指示认证服务器110将捕获的图像存储为临时图像或暂态图像。

然后,计算设备106使用捕获的图像的临时或暂态副本以稍后认证用户104。在一个实施例中,计算设备106和/或认证服务器110建立捕获的图像的临时或暂态副本,作为暂态图像模板,稍后通过该暂态图像模板对用户104进行认证。在该实施例中,计算设备106和/或认证服务器110使用暂态图像模板来与用户104的以后获取的图像进行比较,例如通过模板匹配、直方图匹配和/或特征匹配。在采用特征匹配的情况下,计算设备106可以从暂态图像模板确定一个或多个特征,并且将所确定的特征存储为暂态特征,以与用户104的以后获取的图像的所确定的特征进行比较。

暂态图像模板是临时的或暂态的,因为计算设备106和/或认证服务器110可以被编程或配置有预定的时间段,该预定的时间段指示计算设备106和/或认证服务器110应保持捕获的图像的暂时或暂态副本多长时间。就这一点而言,在计算设备106和/或认证服务器110接收到使用基于图像的认证来认证用户104的请求、并且暂态图像模板的预定时间段没有到期的情况下,计算设备106和/或者认证服务器110将所获取的用户104的图像与暂态图像模板进行比较(例如,通过模板匹配、特征匹配等)。在一些情况下,计算设备106可以将所获取的图像与基线图像模板(例如,在第一遍认证尝试中)和暂态图像模板(例如在第一遍认证尝试失败的情况下,第二遍认证尝试中)两者进行比较。

将计算设备106和/或认证服务器110配置为使用暂态图像模板有多个益处。第一个益处是暂态图像模板解决了用户104处于照明条件差的环境中的近期问题。尽管可以将计算设备106和/或认证服务器110编程或配置具有用户104的基线图像模板对,但是在不良照明环境中获取的用户104的图像可能导致计算设备106和/或认证服务器110的认证失败,这是因为基线图像模板可以具有与所获取的图像不同的光照暴露水平。因此,将在不良照明环境中获取的暂态图像模板用作更好的基础,从而将其与在不良照明环境中用户104的以后获取的图像进行比较。前述特征导致改进的可用性和人机交互,这是因为这些特征减少了用户使用辅助认证手段(例如,用户的PIN)对用户自己进行认证的次数。例如,在用户在具有特定照明条件的特定位置的同时定期访问其电话的情况下,计算设备106仅在第一次失败尝试时查询用户的PIN,然后从该失败中“学习”,以便不再次对于相同的照明条件使用PIN查询用户。

另一个好处是计算设备106和/或认证服务器110释放了暂态图像模板使用的存储空间。由于用户104很可能在不同环境中使用计算设备106,并且不同环境的照明条件很可能变化,因此计算设备106和/或认证服务器110可以存储多个暂态图像模板。因此,通过继续使用计算设备106,计算设备106和/或认证存储设备110的增加的存储空间量变为专用于存储暂态图像模板。因此,通过在预定时间段过去之后删除暂态图像模板,计算设备106和/或认证服务器110释放存储空间以用于其他目的或存储附加的暂态图像模板。

删除暂态图像模板的另一个好处是它提供的安全性。随着暂态图像模板的数量增加,获取的用户104的图像与一个或多个暂态图像模板匹配的可能性也增大。因此,通过使用基于图像的认证提供的固有安全性降低了。由此,通过在预定时间段到期之后删除暂态图像模板,计算设备106和/或认证服务器110返回到其利用基线图像模板的安全状态。

除了前述的时间限制的暂态图像模板之外,或代替上述使用,计算设备106和/或认证服务器110可以被配置为将特定的位置分配给特定的暂态图像模板。在一个实施例中,并且如下面参考图2所讨论的,计算设备106可以包括全球定位系统(GPS)收发器,计算设备106使用该GPS收发器来确定其位置。在计算设备106和/或认证服务器110从获取的用户104的图像创建暂态图像模板时,计算设备106和/或认证服务器110可以将一组GPS坐标与暂态图像模板相关联。在计算设备106和/或认证服务器110采用特征匹配的情况下,计算设备106和/或认证服务器110还可将GPS坐标与一个或多个暂态图像特征相关联。以这种方式,如果用户104移动到各个位置,则计算设备106基于计算设备106的位置知道在比较获取的用户104的图像时要使用哪个暂态图像模板和/或暂态图像特征。

在计算设备106和/或认证服务器110将GPS坐标与暂态图像模板和/或暂态图像特征相关联的一个实施例中,计算设备106和/或认证服务器110还可以建立预定范围,其中相对于其相关联的GPS坐标参考了暂态图像模板和/或暂态图像特征。预定范围可以从几英尺到几百码不等。以这种方式,在用户处于所存储的一组GPS坐标(例如,与一个或多个暂态图像模板或暂态图像特征相关联的一个或多个GPS坐标)的预定范围内的情况下,计算设备106和/或认证服务器110参考与所存储的一组GPS坐标相关联的暂态图像模板和/或暂态图像模板。因此,当创建暂态图像模板和/或暂态图像特征以使用暂态图像模板和/或暂态图像特征来执行基于图像的认证时,计算设备106不必与计算设备106所处的位置完全相同。

除了基于分配的预定时间段的到期来删除暂态图像模板和/或暂态图像特征之外,计算设备106和/或认证服务器110还可以基于位置来删除暂态图像模板和/或暂态图像特征。在一示例中,计算设备106和/或认证服务器110可以被配置为当计算设备106在与关联于暂态图像模板和/或暂态图像特征的一个或多个GPS坐标相关联的预定范围之外时,删除暂态图像模板和/或暂态图像特征。可以使用一个或多个距离度量来测量预定范围,所述距离度量包括但不限于英尺,码,米,公里,英里和其他此类距离度量。在一个实施例中,预定范围可由用户104配置,例如通过在创建暂态图像模板和/或暂态图像特征时提供输入来指示预定范围,该输入将触发暂态图像模板和/或暂态图像特征的删除。在另一个实施例中,计算设备106和/或认证服务器110被预先配置有导致删除暂态图像模板和/或暂态图像特征的预定范围。

在公开的计算设备106和/或认证服务器110的又一实施例中,计算设备106和/或认证服务器110被配置为使用一个或多个先前捕获的图像来增强和/或修改现有基线图像模板。另外和/或可替代地,计算设备106和/或认证服务器110建立新的基线图像模板,而不是修改现有的基线图像模板。总之,该过程涉及在基线图像模板发生预定数量的基于图像的认证失败之后,建立新的基线图像模板。该过程的假设是,用户104处于以下环境中:用户104的捕获图像与用户104的现有基线图像模板不兼容,并且用户104无法使用捕获的图像和现有的基线图像模板来认证他自己或她自己。

在一个实施例中,计算设备106和/或认证服务器110通过确定已经在特定位置和/或在预定时间段内使用当前基线图像模板的基于图像的认证发生的失败次数,来建立新的基线图像模板和/或基线图像特征。就这一点而言,计算设备106和/或认证服务器110可以维护当前基线图像模板的全局失败计数和/或当前基线图像模板用于基于图像的认证的特定位置的特定失败计数。在失败计数达到或超过可配置的失败计数阈值的情况下,该结果向计算设备106和/或认证服务器110发信号通知当前基线图像模板不适用于正在执行基于图像的认证的位置。在一个实施例中,计算设备106和/或认证服务器110然后可以选择所获取的图像和/或暂态图像模板作为新的基线图像模板。

因此,本公开内容描述了使用暂态图像模板和/或暂态图像特征来执行对用户104的基于图像的认证的各种实施例。本公开内容还描述了其中响应于在捕获到用户104的预定数量的图像之后确定基于图像的认证失败而替换和/或修改基线图像模板和/或基线图像特征被的实施例。此外,前述实施例中的任何一个都可以彼此组合使用;因此,可以根据前述实施例的各种组合来配置计算设备106。

图2示出了根据示例实施例的图1中示出的计算设备106的应用和数据,其中根据前述实施例中的一个或多个来配置计算设备106。如图2所示,并且在一个实施例中,计算设备106是移动设备106。计算设备106被配置有各种传感器和/或收发器206-212,并且包括各种应用240和数据242以促进对用户104的基于图像的认证。

计算设备106和/或认证服务器110的各种功能传感器、收发器和其他硬件和/或软件可以驻留在单个设备上,或者可以以各种布置分布在几台计算机上。计算设备106和/或认证服务器110的各个组件可以访问一个或多个数据库,并且计算设备106和/或认证服务器110的各个组件中的每个可以彼此通信。此外,尽管以单数形式讨论了图2的组件,但是应当理解,在其他实施例中,可以采用组件的多个实例。

在一个实施例中,计算设备106包括执行或实现一个或多个应用240的一个或多个处理器202。一个或多个处理器202可以是任何类型的可商购处理器,例如可从英特尔公司、Advanced Micro Devices、Texas Instruments获得的处理器,或其他此类处理器。更进一步,一个或多个处理器可以包括一个或多个专用处理器,例如现场可编程门阵列(FPGA)或专用集成电路(ASIC)。一个或多个处理器还可以包括可编程逻辑或电路,该可编程逻辑或电路由软件临时配置为执行某些操作。因此,一旦由这样的软件配置,则一个或多个处理器成为被专门定制以执行所配置的功能的特定机器(或机器的特定组件),而不再是通用处理器。

计算设备106可以进一步包括用于存储应用240和/或数据242的各种计算机可读存储设备204和/或计算机可读介质。计算机可读存储设备204包括一个或多个配置为临时或永久存储指令和数据的设备,可能包括但不限于随机存取存储器(RAM)、只读存储器(ROM)、缓冲存储器、闪存、光学介质、磁性介质、高速缓冲存储器、其他类型的存储(例如,可擦可编程只读存储器(EEPROM))和/或其任何合适的组合。术语“计算机可读存储设备”应被认为包括能够存储应用240和数据242的单个设备或多个设备(例如,集中式或分布式数据库,或相关联的高速缓存和服务器)。因此,计算机可读存储设备204可以被实现为单个存储装置或设备,或者可替代地和/或附加地被实现为包括多个存储装置或设备的“基于云”的存储系统或存储网络。

计算设备106还可包括各种传感器和/或收发器,以促进建立一个或多个临时模板图像和/或临时模板特征。在一实施例中,计算设备106包括一个或多个图像传感器206,用于获取用户104的一个或多个图像,计算设备106可以将一个或多个图像用作一个或多个基线图像模板,用于确定一个或多个基线图像特征,用作为一个或多个暂态图像模板,用于确定一个或多个暂态图像特征,和/或用于尝试认证。图像传感器206的示例包括但不限于半导体电荷耦合件(CCD)、互补金属氧化物半导体(CMOS)中的有源像素传感器和/或N型金属-氧化物半导体(NMOS)中的有源像素传感器。图像传感器206还可以包括红外传感器206,例如前视红外(FLIR)传感器。

另外和/或可替代地,计算设备106可以包括GPS收发器208。GPS收发器208被配置为获得与计算设备106的位置相对应的一个或多个GPS坐标。如下文所述,在使用一种或多种辅助认证手段对用户进行成功认证后,获得的GPS坐标可以与一个或多个暂态图像模板和/或暂态图像特征相关联。

此外,计算设备106可以包括一个或多个环境光传感器210。一个或多个环境光传感器210被配置为测量计算设备106所处的环境的环境光。例如,一个或多个环境光传感器210可以提供对由图像传感器206获取的图像的环境光的测量。如下面参考图3A-3B所示,由环境光传感器210测量的环境光可以用作关于计算设备106所处的环境是黑暗还是明亮的指示符(例如,测量值是在对应的环境光阈值之下还是之上),这表明在将获取的图像与基线图像模板进行比较时,认证失败很可能是由于不良的光照条件而非获取的图像中的其他缺陷所致。在一些示例中,环境光传感器可以是图像传感器206的功能。

最后,计算设备106可以包括一个或多个无线收发器212,用于与一个或多个其他设备和/或系统(例如认证服务器110)进行无线通信。在这种情况下,一个或多个无线收发器212包括促进无线通信的各种收发器,包括但不限于Wi-Fi收发器(例如,配置为使用IEEE902.11a/b/g/n进行通信的收发器)、

参考图2,计算设备106的应用240被配置为执行对用户104的基于图像的认证,并且根据基于图像的认证的结果来授予和/或拒绝对计算设备106的访问。另外,应用240被配置为响应于基于图像的认证过程来存储瞬时或暂态图像模板和/或暂态图像特征。此外,应用240可以被配置为响应于确定已经获得也与使用辅助认证手段对用户104进行认证成功相关联的阈值数量的捕获图像,来修改和/或生成替换基线图像模板和/或基线图像特征。在一实施例中,应用240是用计算机编程和/或脚本语言编写的。此类语言的示例包括但不限于C、C++、C#、Java、JavaScript、Perl、Python或现在已知或以后开发的任何其他计算机编程和/或脚本语言。

为了促进这些结果而执行这些和其他操作,应用240包括但不限于操作系统214、认证应用216和面部识别应用218。虽然图2将项目214-218称为“应用”,但是本领域普通技术人员将理解,这些项目214-218还可以被实现为独立应用的子模块,或者还可以被实现为另一个应用(例如,操作系统214)可以访问的一个或多个软件库。更进一步,尽管计算设备106可以包括替代和/或附加模块或应用(例如,网络应用、打印应用、软件实现的键盘等),但是这样的替代和/或附加模块和/或应用与本公开内容无关,并且出于简洁和可读性的目的,在此省略其讨论。

被使用和/或支持应用240的数据242包括但不限于一个或多个获取的图像222、当前GPS位置224、一个或多个图像模板226、一个或多个临时(或暂态)图像模板228和一个或多个已认证的GPS位置230。此外,数据242可以包括一个或多个确定的图像特征232、暂态图像模板228与已认证的GPS位置230之间的一个或多个关联234、各种定时数据236、以及用于认证用户104的用户凭证238。如同应用240,数据242可以包括与本公开内容无关的替代和/或附加数据,例如用户凭证、操作系统状态、Web浏览器数据等,并且为了简洁和可读性,在此省略其讨论。

操作系统214被配置为执行和/或访问一个或多个应用240,并控制各种传感器和/或收发器206-212的功能。操作系统214可以被配置为在各种状态下操作计算设备106,例如解锁状态和锁定状态,其中解锁状态允许用户104访问操作系统214的各种功能,并且锁定状态限制用户104访问操作系统214的各种功能和/或对计算设备106的操作模式施加限制。一个或多个处理器202可以执行的操作系统的示例包括但不限于

认证应用216被配置为使用一种或多种认证手段来认证用户104。这些认证手段的示例包括非生物计量方式,例如用户名/密码组合、PIN、秘密模式或其他基于输入的认证手段。认证应用216还可以执行基于生物特征的认证,包括但不限于指纹识别,基于图像的认证,语音分析识别以及其他用于生物特征认证的手段。

在一个实施例中,认证应用216被配置为响应于操作系统214向用户104授予对计算设备106的访问权限的请求,对用户104执行基于图像的认证。例如,计算设备106可以处于锁定状态并且用户104已请求将计算设备106置于解锁状态。因此,为了解锁计算设备106,操作系统214可以请求认证应用216对用户进行认证。

在一个实施例中,认证应用216经由基于图像的认证来认证用户104。就这一点而言,数据242可以包括一个或多个图像模板226,其对应于被授权访问计算设备106的用户的图像,诸如用户104的一个或多个图像。本领域技术人员将理解,在面部识别中使用的图像模板是面部识别程序或模块试图在另一图像或另一图像的一部分中找到的图像。图像模板226可以以一种或多种图像格式存储,包括但不限于便携式网络图形(PNG)、位图(BMP)、联合图像专家组(JPEG/JPG)或其他此类图像格式或其组合。

因此,认证应用216可以使用一个或多个图像模板226来调用和/或执行面部识别应用218以执行对用户104的面部识别操作。在一个实施例中,在注册操作期间建立一个或多个图像模板226,在该注册操作中,一个或多个获取的图像被分配为一个或多个基线图像模板,当用户104尝试访问计算设备时,稍后通过该基线图像模板对用户104进行认证106。在这方面,基线图像模板226保留在计算设备106和/或认证服务器110上。但是,如下所述,可能存在计算设备106和/或认证服务器110替换基线图像模板226的情况。

为了执行面部识别操作,面部识别应用218可以调用一个或多个图像传感器206以获取用户104的一个或多个图像,这些图像随后被存储为所获取的图像222。在该实施例中,面部识别应用218然后执行一个或多个图像模板匹配操作,以尝试将一个或多个图像模板226与所获取的图像222匹配。如上文所讨论的,模板匹配操作可以包括但不限于平方差之和、平方差的归一化和、互相关、归一化互相关、相关系数以及其他此类模板匹配技术或其组合。

另外和/或可替代地,面部识别应用218可以使用从图像模板226提取和/或确定的一个或多个图像特征232来执行基于特征的匹配。待匹配的图像特征232可以被存储为图像特征232。如上所述,面部识别应用218可以执行图像特征匹配操作,包括但不限于SIFT、SURF、BRIEF、FAST、ORB或其组合。

如本公开所考虑的,所公开的主题解决了由于一个或多个环境条件(例如,由于在其中获取获取图像222的环境的较差的照明条件)而导致初始的基于图像的认证操作失败的情况。尽管由认证应用216执行的基于图像的认证可以在特定环境中在第一次尝试时成功,但是本公开的主题针对在基于图像认证失败的情况下,特别是在照明或其他环境条件影响计算设备104所获取的用户104的最终图像的情况下解锁计算设备106的后续尝试。

在一实施例中,面部识别应用218响应于来自认证应用216的请求而获取用户104的一个或多个图像222,例如在用户104已请求操作系统214解锁计算设备106的情况下。例如,面部识别应用218可以指示一个或多个图像传感器206来获取用户104的一个或多个图像222。其中,面部识别应用218被配置为执行模板匹配操作,面部识别应用218可以使用获取的图像222和图像模板226执行一个或多个模板匹配操作。另外和/或可替代地,在面部识别应用218被配置为执行特征匹配操作的情况下,面部识别应用218可以从获取的图像222确定一个或多个特征,并将这些确定的特征与图像模板226的图像特征232进行比较。面部识别应用218然后可以通知认证应用216所获取的图像222(或所获取的图像特征)与一个或多个图像模板226(或图像特征232)之间是否存在匹配。如本领域的普通技术人员将理解的,匹配不一定表示在比较图像222-226和/或比较特征之间100%的对应关系,而是面部识别应用218已经确定:存在匹配的可能性(例如90%或95%的概率)。

在面部识别应用218无法确定是否存在匹配项(例如,面部识别应用218返回带有异常或错误消息的执行调用),或者面部识别应用218确定不存在匹配项的情况下,面部识别应用218相应地通知认证应用216(例如,通过返回具有特定消息、错误值和/或其他指示符的执行调用)。认证应用216然后可以经由计算设备106的显示器提示用户104使用辅助认证手段(例如,通过提供PIN、秘密模式等)来认证他自己或她自己。

在一个实施例中,认证应用216参考用户凭证238,以经由辅助认证手段来认证用户104。用户凭证238可以包括但不限于PIN、秘密模式、用户名和密码,或向计算设备106认证用户104的其他凭证集。

在用户104成功地向认证应用216认证他自己或她自己的情况下,这向认证应用216发信号通知用户104被授权访问计算设备106。此外,它指示所获取的图像222可能在视觉上有缺陷(例如,过度曝光,曝光不足,模糊等),但所获取的图像222可能已用于认证用户104。

因此,在一个实施例中,以各种阈值、误差容限和/或容忍度来建立面部识别应用218,以适应所获取的图像222应该已经对用户104进行了认证但所获取的图像222的质量阻止面部识别应用218确认认证的情况。在所获取的图像222与图像模板226的比较指示失败匹配但在误差范围内的情况下,所获取的图像222被临时存储。在经由获取的图像222对用户104进行不成功的认证之后,用户104随后经由辅助认证手段向认证应用216认证他或她自己的情况下,面部识别应用218存储一个或多个所获取的图像222作为瞬时图像或暂态图像模板228。所获取的图像222被存储为暂态图像模板228,因为所获取的图像222与基线图像模板226的比较已指示所获取的图像222几乎是足够的匹配(例如,因为比较产生的值等于或大于误差范围但小于匹配阈值),这表明会影响比较的一个潜在的因素可以是在其中获取所获取的图像222的环境。因此,通过建立所获取的图像222作为暂态图像模板228,在与暂态图像模板228相同的环境(例如,在相同的环境条件下)中获取后续图像的假定下,面部识别应用218可以在后续尝试中参考暂态图像模板228以对用户104进行认证。

认识到用户104可以将计算设备106从一个环境移动到另一环境,本公开的面部识别应用218被配置为将定时数据236与一个或多个暂态图像模板228相关联。在一个实施例中,定时数据236包括具有预定时间段的计时器,其中计时器与每个暂态图像模板228相关联。预定时间段可以以秒、分钟、小时、天或任何其他时间增量来测量。预定时间段的一个示例是五分钟。

在计时器的寿命期间,操作系统214和/或面部识别应用218使计时器递减。在计时器到期时,面部识别应用218删除相应的暂态图像模板228。通过删除与到期的计时器相关联的暂态图像模板228,面部识别应用218保留了计算设备106的安全性以及回收暂态图像模板可能一直在使用的任何存储空间。

除了将定时数据236与一个或多个暂态图像模板228相关联之外,或代替将定时数据236与一个或多个暂态图像模板228相关联,计算设备106还可被配置为将一个或多个已认证的GPS位置230与一个或多个暂态图像模板228相关联。这些关联可被存储为模板/GPS关联234。在一些情况下,计算设备106的物理位置可以影响一个或多个所获取的图像222的图像质量。通常,已认证的GPS位置是用户104已向计算设备106认证他或她自己的位置(例如,经由认证应用216)。更进一步,认证应用216可以响应于基于图像的认证机制的失败而将GPS位置224记录为其中用户104被要求使用辅助认证手段的已认证的GPS位置230。

如上所述,面部识别应用218可以将一个或多个获取的图像222存储为一个或多个暂态图像模板228。此外,在认证应用216被配置为与GPS收发器208通信和/或访问数据242中存储的GPS位置224的情况下,认证应用216和/或面部识别应用218可以在一个或多个暂态图像模板228与GPS位置224之间建立关联234(该关联随后存储为已认证的GPS位置230)。以这种方式,在用户104停留在特定位置或重新访问特定位置的情况下,面部识别应用218和/或认证应用216查询已认证的GPS位置230以确定针对特定位置(例如,如GPS位置224所指示的)是否存在现有的已认证的GPS位置230。在特定位置有已认证的位置230的情况下,面部识别应用218然后查询模板/GPS关联234以获得与已认证的位置230相关联的对应的暂态图像模板228。面部识别应用218然后参考所获得的暂态图像模板以利用所获取的图像222中的一个或多个对用户104执行基于图像的认证。

另外,暂态图像模板228中的一个或多个也可以与已认证的GPS位置230和定时数据236(例如,到期计时器)相关联。就这一点而言,在计算设备106位于已认证的GPS位置230处或距已认证的GPS位置230预定距离之内的情况下,面部识别应用218和/或认证应用216确定是否存在对应的暂态图像模板228,并且,如果因此,定时数据236是否指示暂态图像模板228已经到期。在暂态图像模板228尚未到期的情况下,面部识别应用218和/或认证应用216随后在执行基于图像的认证时参考暂态图像模板。

以这种方式,计算设备106被配置为基于计算设备106的位置来确定要使用哪个暂态图像模板228。由于计算设备106可以包括一个或多个暂态图像模板228,与经授权的GPS位置230的关联(例如,经由模板/GPS关联234)允许计算设备106更容易地确定在执行用户104的基于图像的认证中使用哪个(多个)暂态图像模板228。因此,使用授权的GPS位置230和模板/GPS关联234代表对用于认证用户的现有技术的改进。

本领域普通技术人员将理解,GPS位置224不仅仅限于使用GPS确定的位置。就这一点而言,GPS位置224可以是计算设备106使用地理定位技术的一种或多种组合来确定的任何位置,包括但不限于蜂窝三角测量(例如,经由无线收发器212),基于Wi-Fi的定位系统(WiPS/WFPS),互联网协议(IP)地址地理定位以及其他此类地理定位技术。因此,已认证的GPS位置230不限于使用GPS确定的那些位置,而是还包括使用一种或多种前述地理定位技术确定的任何位置。

在一些实例中,修改和/或增加一个或多个基线图像模板226可能是明智的和/或有益的。因此,在一个实施例中,认证应用216被配置为在预定次数的基于图像的认证重复失败之后、在基于图像的认证在给定时间段内失败了预定次数之后、在基于图像的认证在相同位置处或相同位置附近在预定次数后失败之后、和/或在计算设备106已针对特定位置获取了预定数量的暂态图像模板228之后,开发和/或修改基线图像模板226。在这些实例中,认证应用216可以确定基于图像的认证的失败率达到和/或超过可接受的失败率。例如,计算设备106可以被编程和/或配置有与不同类型的潜在失败(例如,基于尝试次数的失败;基于预定时间段内的尝试次数的失败,以及基于特定位置处的多次尝试的失败)相对应的一个或多个失败率。这些失败可能发生在计算设备106周围的环境使得一个或多个图像传感器206难以捕获用户104的足够和/或可接受的图像以用于认证的情况下。

为了解决该缺陷,认证应用216和/或面部识别应用218可以记录和/或监视在一个位置或预定时间段内已经发生的基于图像的认证失败的次数。在一个实施例中,在已经删除或移除了暂态图像模板之后,记录和/或监视失败。这种方法的假设是计算设备106所处的环境正在使计算设备106重复转移到一个或多个暂态图像模板228,在这种情况下,计算设备106参考暂态图像模板作为基线图像模板是合理的。因此,在一个实施例中,出于修改或替换基线图像模板226的目的,在已经使用了暂态图像模板并且暂态图像模板到期之后记录了基于图像的认证失败。

在一个实施例中,认证应用216和/或面部识别应用218在基于图像的认证失败次数已达到预定阈值之后用一个或多个暂态图像模板228替换一个或多个基线图像模板226。在一个实施例中,失败阈值是基于时间的,例如20分钟内(例如,预定的持续时间)内的三次基于图像的认证失败。在另一个实施例中,失败阈值是基于位置的,例如在相同位置(或GPS收发器208所提供的近似位置)的五个基于图像的认证失败。在又一个实施例中,失败阈值可以基于时间和位置两者,例如在20分钟的时间段内在同一位置的五次基于图像的认证失败。

以这种方式,计算设备106被配置为在已经达到或超过失败阈值之后用其暂态对应物修改和/或替换一个或多个基线图像模板226。该方法在技术上是有益的,因为它改进了计算设备106在有问题和/或导致使用先前存储的基线图像模板226进行基于图像的认证失败的环境中执行面部识别的方式。该方法在技术上是进一步有益的,因为它减少了暂态图像模板占用的存储空间量,并且减少了将获取的图像与基线图像模板226相比较所需的计算资源量(例如,面部识别应用218将已获取图像222与基线图像模板226进行比较,而不必将所获得的图像222与各种暂态图像模板228进行比较)。

图3A-3B示出了根据示例实施例的,用于从获取的图像222生成暂态图像模板228的方法302。方法302可以由图2所示的一个或多个组件来执行,参照图2进行讨论。

首先,参考图2和图3A,计算设备106经由操作系统214接收访问请求(操作304)。访问请求可以包括执行用户104的基于图像的认证的请求。然后,操作系统214和/或认证应用216初始化一个或多个图像传感器206以获取用户104的一个或多个图像(操作306)。然后,图像传感器206获取用户104的一个或多个图像,并将这些图像存储为所获取的图像222(操作308)。在一些实施例中,认证应用216和/或面部识别应用218然后从所获取的图像222中确定一个或多个图像特征(操作310)。尽管示出为可选的操作,但是可以作为图3A中所示的一个或多个操作的替代和/或附加来执行操作310。

面部识别应用218然后将所获取的图像222与一个或多个基线图像模板226进行比较(操作312)。如上所述,图像模板匹配操作可以包括但不限于平方差之和、平方差的归一化和、互相关、归一化互相关、相关系数以及其他此类模板匹配技术或其组合。另外和/或可替代地,面部识别应用218使用基线图像特征232和从获取的图像222确定的一个或多个特征来执行一个或多个特征匹配操作(操作312)。

然后,面部识别应用218将一个或多个获取的图像222是否与基线图像模板226相匹配的指令或通知或传达给认证应用216(操作314)。在确定为肯定的情况下(例如,操作314的“是”分支),方法302前进至操作316,在操作316中,认证应用216确认用户104被授权访问计算设备106。可替代地,在确定是否定的情况下(例如,操作314的“否”分支),则方法302进行到图3B的操作318。

参照图3B,在操作318,计算设备106经由操作系统214向用户104显示提示,请求用户104使用第二认证手段对他或她自己进行认证。例如,操作系统214可以显示提示,请求用户104提供一个或多个用户凭证,例如PIN、秘密模式、用户名和密码、指纹或其他这样的用户凭证。

然后,将所提供的用户凭证与先前存储的用户凭证238进行比较(操作320)。在认证应用216确定用户104未被认证的情况下(例如,操作320的“否”分支),方法302前进至操作322。在操作322,认证应用216指示操作系统214拒绝用户104访问计算设备106。然后,方法302结束,并且可以提示用户104向计算设备106重新认证他或她自己。

可替代地,在用户104被认证的情况下(例如,操作320的“是”分支),计算设备106然后在准备将一个或多个所获取的图像222存储为一个或多个暂态图像模板228时执行若干操作。首先,认证应用216和/或面部识别应用218可以确定所获取的图像222中的一个或多个是否具有成为暂态图像模板的必要质量。否则,如果获取的图像222不具有必要质量,则用户很可能在其中低质量的获取的图像222是暂态图像模板228的以后的尝试中无法认证他或她自己。

如上所述,认证应用216和/或面部识别应用218确定所获取的图像222中的一个或多个的各种质量度量(操作324)。质量度量的示例包括检测到的光水平(例如,曝光不足或过度曝光),模糊度,是否可以检测到一个或多个面部(例如,物体检测概率)以及其他此类质量度量或其组合。

然后,认证应用216和/或面部识别应用218确定一个或多个所获取的图像的确定和/或获得的质量度量值是否在可接受的质量度量值的预定范围内(例如,等于或大于较低的阈值并且等于或低于较高的阈值)(操作326)。使用一定范围的质量度量值是因为,如果一个或多个质量度量值太高(例如曝光值过高),则结果图像可能会曝光过度,并且用户104的图像可能会变得模糊;类似地,如果一个或多个质量度量值太低(例如,对象检测概率,检测到的环境光水平等),则所得图像可能曝光不足和/或变暗,并且用户104的图像可能是无法由阴影或其他深色标记确定的。因此,在操作326的确定否定地做出情况下(例如,操作326的“否”分支),方法302前进至操作328。在操作328,删除或丢弃具有不可接受的环境光值的所获取图像。

可替代地,在肯定地做出该确定的情况下(例如,操作326的“是”分支),方法302进行至操作330,在此,认证应用216和/或面部识别应用218根据所获取图像生成暂态图像模板228。附加地和/或可替代地,认证应用216和/或面部识别应用218还可从所获取的图像中确定一个或多个特征,这些特征将在用户104的基于图像的认证的未来尝试中使用。认证应用216和/或面部识别应用218然后将定时数据236与一个或多个暂态图像模板228和/或确定的特征相关联,其中定时数据236包括指示暂态图像模板228将保留在计算设备106上的持续时间的计时器。如上所述,在计时器到期时,与计时器相关联的暂态图像模板(或确定的特征)从计算设备106中删除(或以其他方式移除)。

图4A-4B示出了根据示例实施例的,用于使用一个或多个暂态图像模板向图1的计算设备认证用户的方法402。方法402可以由图2中所示的一个或多个组件来实现,参照图2进行讨论。方法402示出了计算设备106逐步进行的操作。

首先,参考图2和图4A,计算设备106经由操作系统214接收访问请求(操作404)。访问请求可以包括执行用户104的基于图像的认证的请求。然后,操作系统214和/或认证应用216初始化一个或多个图像传感器206以获取用户104的一个或多个图像(操作406)。然后,图像传感器206获取用户104的一个或多个图像,并将这样的图像存储为所获取的图像222(操作408)。在一些实施例中,认证应用216和/或面部识别应用218然后从所获取的图像222中确定一个或多个图像特征(操作未示出)。

然后,面部识别应用218确定所获取的图像222的各种质量度量值(操作410)。如先前所解释的,方法402涉及暂态图像模板228已经存在的情况。因此,面部识别应用218确定所获取的图像222的质量度量值,以确保对于这样确定的质量度量值存在对应的暂态图像模板228。在一实施例中,选择一个或多个暂态图像模板228以与其中一个或多个所获取图像222的质量度量值等于对应暂态图像模板222的质量度量值或在对应暂态图像模板222的质量度量值的预定范围内的一个或多个所获取图像222进行匹配。另外和/或可替代地,面部识别应用218可以拒绝那些所获取的图像222:其中所获取的图像222的质量度量值在与暂态图像模板228相关联的质量度量值的预定范围之外。

在面部识别应用218确定不存在具有类似于所获取的图像222的质量度量值的质量度量值的暂态图像模板228的情况下(例如,操作412的“否”分支),方法402进行到操作414,在操作414中,计算设备106使用辅助认证手段来认证用户104(例如,图3B的操作318)。附加地和/或可替代地,方法402可以进行到操作308,使得计算设备106可以执行那些建立暂态图像模板228的操作。

替代地,在面部识别应用218确定存在对应的一个或多个暂态图像模板228的情况下(例如,操作412的“是”分支),方法402进行到操作414,在操作414中,面部识别应用218执行前面描述的模板匹配和/或特征匹配操作。

参照图4B,面部识别应用218确定是否存在匹配的暂态图像模板228和/或所获取图像222的暂态特征和/或所确定的所获取的图像(222)的图像特征。在面部识别应用218确定至少一个暂态图像模板228和所获取的图像222中的至少一个存在匹配(或暂态特征与所确定的特征之间的匹配)(例如,操作416的“是”分支),方法402进行到操作424,其中面部识别应用218指示或通知认证应用216用户104已被认证。因此,在操作424,授予用户104对计算设备106的访问权限。

替代地,在面部识别应用218确定至少一个所获取的图像与一个或多个暂态图像模板228中的至少一个不充分匹配的情况下(例如,操作416的“否”分支),面部识别应用218将失败通知给认证应用216。因此,认证应用216然后可以指示操作系统214显示提示,该提示请求用户104提供一个或多个用户凭证。当被提供用户凭证时,认证应用216然后确定用户104是否被认证(例如,通过将所提供的凭证与用户凭证238进行比较)(操作420)。在认证应用216确定用户104未被认证的情况下(例如,操作420的“否”分支),方法402前进至操作422,在操作422中,认证应用216和/或操作系统214拒绝用户104访问计算设备106。在一个实施例中,计算设备106然后重新开始认证,并请求用户104向计算设备106认证他或她自己。

替代地,在认证应用216确定用户104被认证的情况下(例如,操作420的“是”分支),方法402进行到操作424,其中认证应用216指示和/或通知操作系统214中,用户104被授权使用计算设备106。

图5A-5B示出了根据示例实施例的用于从获取的图像222生成暂态图像模板228的方法502,其中暂态图像模板228将与对应的认证位置相关联。方法502可以由图2所示的一个或多个组件来执行,参照图2进行讨论。

首先,参考图2和图5A,计算设备106经由操作系统214接收访问请求(操作504)。访问请求可以包括执行用户104的基于图像的认证的请求。然后,操作系统214和/或认证应用216初始化一个或多个图像传感器206以获取用户104的一个或多个图像(操作506)。然后,图像传感器206获取用户104的一个或多个图像,并将这样的图像存储为所获取的图像222(操作508)。在一些实施例中,认证应用216和/或面部识别应用218然后从所获取的图像222中确定一个或多个图像特征(操作510)。尽管示出为可选操作,但是可以作为图5A中所示的一个或多个操作的替代和/或附加来执行操作510。

然后,面部识别应用218将所获取的图像222与一个或多个基线图像模板226进行比较(操作512)。如上所述,图像模板匹配操作可以包括但不限于平方差之和、平方差的归一化和、互相关、归一化互相关、相关系数以及其他此类模板匹配技术或其组合。另外和/或可替代地,面部识别应用218使用基线图像特征232和从获取的图像222确定的一个或多个特征来执行一个或多个特征匹配操作(操作512)。

然后,面部识别应用218将一个或多个获取的图像222是否与基线图像模板226相匹配的指令通知或传送至认证应用216(操作514)。在肯定地做出该确定的情况下(例如,操作514的“是”分支),方法502前进至操作516,在操作516中,认证应用216确认用户104被授权访问计算设备106。可替代地,在该确定否定地做出的情况下(例如,操作514的“否”分支),则方法302进行到图5B的操作518。

参照图2 5B,在操作518处,计算设备106经由操作系统214向用户104显示提示,请求用户104使用第二认证手段对他或她自己进行认证。例如,操作系统214可以显示提示,请求用户104提供一个或多个用户凭证,例如PIN、秘密模式、用户名和密码、指纹或其他这样的用户凭证。

然后,将所提供的用户凭证与先前存储的用户凭证238进行比较(操作520)。在认证应用216确定用户104未被认证的情况下(例如,操作520的“否”分支),方法502前进至操作522。在操作522,认证应用216指示操作系统214拒绝用户104访问计算设备106。然后,方法502结束,并且可以提示用户104向计算设备106重新认证他或她自己。

可替代地,在用户104被认证的情况下(例如,操作520的“是”分支),计算设备106然后执行若干操作以准备存储一个或多个所获取的图像222作为一个或多个暂态图像模板228。首先,认证应用216和/或面部识别应用218可以确定计算设备106的位置(操作524)。在一个实施例中,认证应用216和/或面部识别应用218查询GPS收发器208以获得计算设备106的GPS位置224。然而,并且如前所述,可以根据其他技术确定计算设备106的位置,例如蜂窝三角测量、IP地址地理位置、WiPS/WFPS以及其他这样的技术或其组合。

当用户104已经认证了他或她自己时,这向认证应用216和/或面部识别应用218指示计算设备106的GPS位置224(或使用其他地理位置技术确定的位置)是可信位置。因此,认证应用216和/或面部识别应用218可以将GPS位置224存储为已认证的GPS位置230。

另外,并且如参考图3A-3B所讨论的,面部识别应用218可以确定所获取的图像是否足以执行匹配和/或比较操作,包括但不限于确定所获取的图像中的环境光水平,确定所获取的图像的模糊度,确定所获取的图像中的颜色水平(例如,通过直方图分析)以及其他这样的确定。因此,以这种方式,面部识别应用218确定所获取的图像222是否具有用于执行基于图像的认证的必要质量。

基于所获取的图像222中的一个或多个是否足以执行基于图像的认证,认证应用216和/或面部识别应用218然后可以从一个或多个获取的图像222中生成暂态图像模板228和/或暂态图像特征(操作526)。此后,认证应用216和/或面部识别应用218然后例如通过将关联存储在二维表或其他关系数据库(未示出)中来建立已认证的GPS位置230和暂态图像模板228之间的关联。另外,并且以与方法302类似的方式,认证应用216和/或面部识别应用218然后将定时数据236与一个或多个暂态图像模板228和/或确定的特征相关联,其中,定时数据236包括计时器,该计时器指示暂态图像模板228将保留在计算设备106上的持续时间。如上所述,在计时器到期时,与计时器相关联的暂态图像模板(或确定的特征)从计算设备106中删除(或以其他方式移除)。

因此,除了将定时数据236包括在一个或多个暂态图像模板228中之外,认证应用216和/或面部识别应用218还将已认证的GPS位置230与一个或多个暂态图像模板228相关联。因此,每个暂态图像模板228可以与已认证的GPS位置230和定时数据236相关联。这些关联进一步改善了计算设备106的功能,因为它们允许计算设备106基于时间(例如,与暂态图像模板228相关联的计时器是否已到期)和位置(例如,计算设备106是否位于用户104先前已被认证的位置)来认证用户104。

图6A至图6B示出了根据示例实施例的,用于使用一个或多个暂态图像模板228和已认证的GPS位置230向计算设备106认证用户104的方法602。方法602可以可以通过图2中所示的一个或多个组件来实现,参照图2进行讨论。

首先,参考图2和图6A,计算设备106经由操作系统214接收访问请求(操作604)。访问请求可以包括执行用户104的基于图像的认证的请求。然后,操作系统214和/或认证应用216初始化一个或多个图像传感器206以获取用户104的一个或多个图像(操作606)。然后,图像传感器206获取用户104的一个或多个图像,并将这样的图像存储为所获取的图像222(操作608)。在一些实施例中,认证应用216和/或面部识别应用218然后从所获取的图像222中确定一个或多个图像特征(未显示操作)。

然后,认证应用216和/或面部识别应用218确定计算设备106的位置(操作610)。在一个实施例中,GPS收发器208提供计算设备106的GPS位置224。如前所述,方法602涉及一种或多种暂态图像模板228已经存在并且与一个或多个已认证的GPS位置230相关联的情况;因此,认证应用216和/或面部识别应用218获得计算设备106的位置,以确定是否存在与等于或近似等于计算设备106的GPS位置224的GPS位置相关联的对应的暂态图像模板。

因此,使用GPS位置224、认证应用216和/或面部识别应用218确定是否存在接近GPS位置224或在GPS位置224附近的已认证的GPS位置230。在一个实施例中,计算设备106被编程为具有距离阈值,其指示这样的阈值距离,在该阈值距离中,GPS位置224应该位于已认证的GPS位置230处或之中,以被视为在已认证的GPS位置230处或附近。在认证应用216和/或面部识别应用218无法识别相应的已认证的GPS位置(例如,操作612的“否”分支),则方法602进入操作614。在操作614,计算设备106使用辅助认证手段对用户104进行认证(例如,图5B的操作518)。另外,和/或可替代地,方法402可以进行到操作508,使得计算设备106可以执行那些建立暂态图像模板228以及暂态图像模板与已认证的GPS位置230之间的关联的操作。

替代地,在认证应用216和/或面部识别应用218确定存在与GPS位置224相对应的一个或多个已认证的GPS位置230的情况下(例如,操作612的“是”分支),方法602进行到操作614。在操作614,面部识别应用218使用操作612的确定的已认证的GPS位置230来引用模板/GPS关联234,以标识相应的暂态图像模板228。然后,面部识别应用218使用对应的一个或多个暂态图像模板228,将对应的一个或多个暂态图像模板与一个或多个所获取的图像222进行比较。

参照图6B,面部识别应用218确定是否存在所获取的图像222的匹配的暂态图像模板228和/或暂态特征和/或所获取的图像222的所确定的图像特征(操作616)。在面部识别应用218确定存在至少一个暂态图像模板228和所获取的图像222中的至少一个的匹配(或暂态特征与所确定的特征之间的匹配)的情况下(例如,操作616的“是”分支),方法602进行到操作624,在操作624中,面部识别应用218指示或通知认证应用216用户104已被认证。因此,在操作624,授予用户104对计算设备106的访问权限。

可替代地,在面部识别应用218确定至少一个所获取的图像与一个或多个暂态图像模板228中的至少一个不充分匹配的情况下(例如,操作616的“否”分支),面部识别应用218将失败通知给认证应用216。因此,认证应用216然后可以指示操作系统214显示提示,该提示请求用户104提供一个或多个用户凭证。当被提供有用户凭证时,认证应用216然后确定用户104是否被认证(例如,通过将所提供的凭证与用户凭证238进行比较)(操作620)。在认证应用216确定用户104未被认证的情况下(例如,操作620的“否”分支),方法602前进至操作622,在操作622中,认证应用216和/或操作系统214拒绝用户104访问计算设备106。在一个实施例中,计算设备106然后重新开始认证,并请求用户104向计算设备106认证他或她自己。

可替代地,在认证应用216确定用户104被认证的情况下(例如,操作620的“是”分支),方法602前进至操作624,在操作624中,认证应用216指示和/或通知操作系统214,用户104被授权使用计算设备106。

图7A至图7B示出了根据示例实施例的,用于当已经生成预定数量的暂态图像模板228时修改一个或多个基线图像模板226的方法702。方法702可以由图2的一个或多个组件来实现,参照图2进行讨论。

方法702的焦点在于确定在预定时间段内和/或在特定位置是否存在先前的基于图像的认证失败。每次基于图像的认证失败发生时,失败计数都会增加,并且当失败计数达到或超过失败计数阈值时,认证应用216和/或面部识别应用218然后会修改基线图像模板和/或用暂态图像模板替换基线图像模板。

为了加快方法702的描述,在初始的基于图像的面部识别失败的点处示出了方法702(操作704)。为了清楚起见,在操作704之前的操作可以对应于图3A-3B的操作304-320和/或图5A-5B的操作504-520(例如,用户104已经尝试使用本文公开的面部识别方法来认证他或她自己)。

参考图7A和图7B,在操作706,面部识别应用218通过将用户提供的凭证(例如,基于图像的面部识别失败的时间或大约在此时间提供)与先前存储的用户凭证238进行比较,来确定用户104是否被授权访问计算设备106。在比较失败并且用户提供的凭证与先前存储的用户凭证238不匹配的情况下(例如,操作706的“否”分支),面部识别应用218将失败通知和/或指示给认证应用216。因此,认证应用216然后可以指示操作214拒绝用户104访问计算设备106(操作708)。

替代地,在用户104被认证的情况下(例如,操作706的“是”分支),方法702进行到操作710,在操作710中,认证应用216和/或面部识别应用218从导致基于图像的认证失败的获取图像中生成暂态图像模板。

认证应用216和/或面部识别应用218然后将失败计数递增。失败计数可以与特定位置(例如,一个或多个已认证的GPS位置230)相关联,或者可以与预定时间段相关联。在各种情况下,可以在满足预定条件时将失败计数初始化为零值,例如计算设备106在离开特定位置预定时间后到达特定位置,在第二预定时间段已经过去后,而没有发生基于图像的认证失败(例如,表明环境有利于基于图像的认证),和/或如下所述,当将暂态图像模板转换为基线图像模板时。取决于计算设备106实现失败计数的方式,每个已认证的GPS位置230可以与失败计数相关联,其中失败计数值是零或非零值。

参考图7B,认证应用216和/或面部识别应用218然后确定失败计数是否达到或超过预定失败计数阈值(操作718)。在一个实施例中,一个或多个已认证的GPS位置230中的每个与对应的失败计数阈值相关联,使得将已验证GPS位置的失败计数值与其对应的失败计数阈值进行比较。失败计数阈值可以是不可配置的并且对于计算设备106是预先配置的。可替代地,失败计数阈值可以由用户104配置,使得用户104可以提供为失败计数阈值建立值的输入,例如当获取的图像222被转换为暂态图像模板228时。

在失败计数值不满足或超过失败计数阈值的情况下(例如,操作718的“否”分支),方法702关于确定是否应当替换或永久补充基线图像模板而终止。可替代地,在失败计数值确实达到或超过失败计数阈值的情况下(例如,操作718的“是”分支),方法702进行到操作720,其中将基线图像模板替换为在基于图像的认证过程中所使用的暂态图像模板(操作720)。在一些情况下,用暂态图像模板替换基线图像模板包括用暂态图像模板替换全局或通用基线图像模板。在其他情况下,替换基线图像模板包括用暂态图像模板替换与特定位置相关联的基线图像模板。在另外的实例中,计算设备106可以维护来自先前基于图像的认证失败的预定数量的暂态图像模板,并且,当失败计数值达到或超过失败计数阈值时,替换基线图像模板可以包括从暂态图像模板的集合中计算平均图像模板,以及用平均图像模板代替基线图像模板。

已经用暂态图像模板(或平均暂态图像模板)替换了基线图像模板,认证应用216和/或面部识别应用218然后重置失败计数(例如,全局失败计数或与特定位置相关联的失败计数)。然后,方法702关于确定是否应当替换或修改基线图像模板而终止。

图8示出了根据示例实施例的用于更新一个或多个暂态图像模板的定时数据的方法802。方法802可以由图2中所示的一个或多个组件来实现,并且参照图2进行讨论。

最初,认证应用216检索与暂态图像模板228或一个或多个暂态图像特征相关联的定时数据236(操作804)。在一个实施例中,定时数据236包括计时器,其指示暂态图像模板228或暂态图像特征在认证应用216和/或面部识别应用216从计算设备106中删除暂态图像模板228或暂态图像特征之前的剩余时间量。替代地,计时器可以指示暂态图像模板228或暂态图像特征已经驻留在计算设备106上的时间量。

然后,认证应用216和/或面部识别应用218确定与暂态图像模板或一个或多个暂态图像特征相关联的定时数据236是否已经到期(操作806)。在一个实施例中,确定计时器是否已经到期包括确定计时器是否已经达到零值。可替代地,确定计时器是否已经到期包括将计时器与预定计时器阈值进行比较;在计时器达到或超过预定计时器阈值的情况下,认证应用216和/或面部识别应用218确定计时器已到期。

在认证应用216和/或面部识别应用218确定定时数据236未指示其已到期的情况下(例如,操作806的“否”分支),方法802进行至操作808。在操作808,认证应用216和/或面部识别应用218调整定时数据236;如图参照图8,调整定时数据236可以包括将定时数据236减小预定量(例如,一秒)。在另一实施例中,调整定时数据236可以包括将定时数据236增大预定量。然后,利用新的递减的(或递增的)定时值来更新与暂态图像模板和/或一个或多个暂态图像特征相关联的定时数据236(操作810)。然后,方法802返回到操作804,在操作804,该方法再次开始。

返回到操作806,其中,认证应用216和/或面部识别应用218确定定时数据236指示与暂态图像模板和/或暂态图像特征相关联的计时器已到期(例如,操作806的“是”分支),方法802进行到操作912。在操作812,认证应用216和/或面部识别应用218从计算设备106中删除或以其他方式移除暂态图像模板或一个或多个暂态图像特征。然后,方法802可以针对该特定定时数据而结束。

尽管方法302-802被独立地示出,但是本领域的普通技术人员将理解,可以以各种组合来重新排序和/或重新布置方法302-802的操作,其中省略了重复或冗余的操作。因此,本文公开的方法不仅仅限于如图3至图8所示的它们的具体实施方式,而是可以以任何逻辑或操作方式来布置或组合。

以这种方式,本公开提供了与用户104的基于图像的认证有关的各种实施例,并且特别地,提供了在基于图像的认证失败但是用户104已使用第二认证手段对他自己或她自己进行认证之后建立暂态图像模板。通过使用暂态图像模板和/或暂态图像特征,计算设备106可以在基于图像的认证一致地或通常由于基线图像模板和/或基线图像特征而失败的环境中执行基于图像的认证。在这一点上,本公开以传统上执行基于图像的认证的方式提供了技术上的改进。因此,与常规实现的计算设备相比,计算设备106的功能和操作得到了改善。

本文将某些实施例描述为包括逻辑或多个组件、模块或机制。模块可以构成软件模块(例如,体现在机器可读介质或机器可读存储设备上的代码)或硬件模块。“硬件模块”是能够执行某些操作的有形单元,并且可以以某种物理方式被配置或布置。在各种示例实施例中,一个或多个计算机系统(例如,独立计算机系统、客户端计算机系统或服务器计算机系统)或计算机系统的一个或多个硬件模块(例如,处理器或一组处理器)可以由软件(例如,应用程序或应用程序部分)将其配置为操作为执行本文所述的某些操作的硬件模块。

在一些实施例中,可以机械地,电子地或其任何合适的组合来实现硬件模块。例如,硬件模块可以包括专用电路或逻辑,该专用电路或逻辑被永久地配置为执行某些操作。例如,硬件模块可以是专用处理器,例如FPGA或ASIC。硬件模块还可以包括可编程逻辑或电路,该可编程逻辑或电路由软件临时配置为执行某些操作。例如,硬件模块可以包括由通用处理器或其他可编程处理器执行的软件。一旦通过此类软件进行配置,硬件模块将成为专门为执行配置的功能而量身定制的特定机器(或机器的特定组件),而不再是通用处理器。将意识到,可以从成本和时间方面考虑来做出在专用且永久配置的电路中或在临时配置的电路(例如,由软件配置)中机械地实现硬件模块的决定。

因此,短语“硬件模块”应被理解为包括有形实体,是指被物理地构造,永久地配置(例如,硬接线)或临时地配置(例如,编程)以某种方式操作或执行本文所述的某些操作的实体。如本文所使用的,“硬件实现的模块”是指硬件模块。考虑到其中硬件模块被临时配置(例如,编程)的实施例,每个硬件模块不需要在任何一个时间实例处被配置或实例化。例如,在硬件模块包括由软件配置为成为专用处理器的通用处理器的情况下,该通用处理器可以在不同时间分别被配置为不同的专用处理器(例如,包括不同的硬件模块)。因此,软件相应地配置一个或多个特定处理器,例如,以在一个时间实例上构成特定的硬件模块,并在不同的时间实例上构成不同的硬件模块。

硬件模块可以向其他硬件模块提供信息并从其他硬件模块接收信息。因此,所描述的硬件模块可以被认为是通信耦合的。在同时存在多个硬件模块的情况下,可以通过在两个或更多个硬件模块之间或之中的信号传输(例如,通过适当的电路和总线)来实现通信。在其中在不同时间配置或实例化多个硬件模块的实施例中,可以例如通过在多个硬件模块可以访问的存储器结构中存储和检索信息来实现这种硬件模块之间的通信。例如,一个硬件模块可以执行操作并将该操作的输出存储在其通信耦合到的存储器设备中。然后,另一硬件模块可以在以后的时间访问存储器设备以检索和处理所存储的输出。硬件模块还可以发起与输入或输出设备的通信,并且可以在资源(例如,信息的集合)上进行操作。

本文描述的示例方法的各种操作可以至少部分地由一个或多个临时配置(例如,由软件配置)或永久配置为执行相关操作的处理器来执行。无论是临时配置还是永久配置,这样的处理器都可以构成处理器实现的模块,这些模块执行以执行本文所述的一个或多个操作或功能。如本文所使用的,“处理器实现的模块”是指使用一个或多个处理器实现的硬件模块。

类似地,本文描述的方法可以至少部分地由处理器实现,其中一个或多个特定处理器是硬件的示例。例如,一种方法的至少一些操作可以由一个或多个处理器或处理器实现的模块执行。此外,一个或多个处理器还可在“云计算”环境中或作为“软件即服务”(SaaS)来支持相关操作的执行。例如,至少一些操作可以由一组计算机(作为包括处理器的机器的示例)执行,这些操作可以通过网络(例如,因特网)和一个或多个适当的接口(例如,API)来访问。

某些操作的执行可以分布在处理器之间,不仅驻留在单个计算机内,而且可以跨多个计算机部署。在一些示例实施例中,处理器或处理器实现的模块可以位于单个地理位置中(例如,在家庭环境、办公室环境或服务器场内)。在其他示例实施例中,处理器或处理器实现的模块可以分布在多个地理位置上。

机器和软件架构

在一些实施例中,在机器和相关联的软件架构的背景下实现结合图1至图8描述的模块、方法、应用等。以下各节描述了适合与所公开的实施例一起使用的代表性架构。

软件架构与硬件架构结合使用,可以创建为特定目的量身定制的设备和机器。例如,特定的硬件架构与特定的软件架构相结合将创建移动设备,例如移动电话、平板设备等。略有不同的硬件和软件架构可能会产生用于“物联网”的智能设备,而另一种组合产生的是用于云计算架构中的服务器计算机。由于本领域技术人员可以容易地理解如何在与本文所包含的公开内容不同的上下文中实现本发明的主题,因此这里没有给出这种软件和硬件架构的所有组合。

图9是示出根据一些示例实施例的能够从机器可读介质(例如,机器可读存储介质或机器可读存储设备)读取指令并执行本文讨论的任何一个或多个方法的机器900的组件的框图。具体地,图9以计算机系统的示例形式示出了机器900的示意图,在其中可以执行指令916(例如,软件,程序,应用程序,小应用程序,应用或其他可执行代码)用于使机器900执行本文讨论的任何一种或多种方法。例如,指令916可以使机器900执行图3A-8所示的方法。另外地或可替代地,指令916可以实现图1至图2的组件中的一个或多个。指令916将通用的,未编程的机器900转换为被编程为以所描述的方式执行所描述和示出的功能的特定机器900。在替代实施例中,机器900作为独立设备操作,或者可以耦合(例如,联网)到其他机器。在网络部署中,机器900可以在服务器-客户端网络环境中以服务器机器或客户端机器的身份运行,或者在对等(或分布式)网络环境中作为对等机器运行。机器900可以包括但不限于服务器计算机、客户端计算机、个人计算机(PC)、平板计算机、膝上型计算机、上网本、PDA或能够顺序地或以其他方式执行指定机器900要采取的动作的指令916的任何机器。此外,虽然仅示出了单个机器900,但是术语“机器”也应被认为包括单独地或共同地执行指令916以执行本文讨论的任何一种或多种方法的机器900的集合。

机器900可以包括处理器910、存储器/存储设备930和I/O组件950,它们可以被配置为例如经由总线902彼此通信。在示例实施例中,处理器910(例如,中央处理器(CPU)、精简指令集计算(RISC)处理器、复杂指令集计算(CISC)处理器、图形处理单元(GPU)、数字信号处理器(DSP)、ASIC、无线电频率集成电路(RFIC)、另一个处理器或其任何合适的组合)可以包括例如可以执行指令916的处理器912和处理器914。术语“处理器”旨在包括可以包括两个或更多个可以同时执行指令916的独立处理器(有时称为“内核”)的多核处理器。虽然图9示出了多个处理器910,机器900可以包括具有单个核的单个处理器、具有多个核的单个处理器(例如,多核进程)、具有单个核的多个处理器、具有多个核的多个处理器或它们的任何组合。

存储器/存储设备930可以包括诸如主存储器或其他存储器存储设备之类的存储器932,以及存储单元936,两者均可以经由总线902被处理器910访问。存储单元936和存储器932存储了体现本文描述的方法或功能中的任何一个或多个的指令916。在由机器900执行期间,指令916还可以全部或部分地驻留在存储器932内,驻留在存储单元936内,驻留在处理器910中的至少一个处理器内(例如,处理器的高速缓冲存储器内),或其任何合适的组合。因此,存储器932、存储单元936和处理器910的存储器是机器可读介质的示例。

如本文所用,“机器可读介质”包括能够临时或永久地存储指令916和数据的机器可读存储设备,并且可以包括但不限于随机存取存储器(RAM)、只读存储器(ROM)、缓冲存储器、闪存、光学介质、磁性介质、高速缓冲存储器、其他类型的存储(例如,可擦除可编程只读存储器(EEPROM))和/或其任何合适的组合。应认为术语“机器可读介质”包括能够存储指令916的单个介质或多个介质(例如,集中式或分布式数据库或相关联的高速缓存和服务器)。术语“机器可读介质”也应可以理解为包括能够存储由机器(例如,机器900)执行的指令(例如,指令916)的任何介质或多种介质的组合,使得当指令由机器900的一个或多个处理器(例如,处理器910)执行时,使机器900执行本文描述的方法中的任何一种或多种。因此,“机器可读介质”是指单个存储装置或设备,以及包括多个存储装置或设备的“基于云的”存储系统或存储网络。术语“机器可读介质”本身不包括信号。

输入/输出(I/O)组件950可以包括各种各样的组件,以接收输入,提供输出,产生输出,发送信息,交换信息,捕获测量值等等。包括在特定机器中的特定I/O组件950将取决于机器的类型。例如,诸如移动电话的便携式机器将可能包括触摸输入设备或其他这样的输入机构,而无头服务器机器将可能不包括这样的触摸输入设备。将理解的是,I/O组件950可以包括在图8中未示出的许多其他组件。仅为了简化下面的讨论,仅根据功能对I/O组件950进行了分组,并且该分组绝不是限制性的。在各种示例实施例中,I/O组件950可以包括输出组件952和输入组件954。输出组件952可以包括视觉组件(例如,诸如等离子体显示面板(PDP)、发光二极管(LED)显示器、液晶显示器(LCD)、投影仪或阴极射线管(CRT)的显示器),声学组件(例如扬声器)、触感组件(例如振动电机、阻力机构)、其他信号发生器等等。输入组件954可以包括字母数字输入组件(例如,键盘、配置为接收字母数字输入的触摸屏、光电键盘或其他字母数字输入组件)、基于指点的输入组件(例如,鼠标、触摸板、跟踪球、操纵杆、运动传感器或其他指向工具)、触觉输入组件(例如,物理按钮、提供触摸或触摸手势的位置和/或力的触摸屏或其他触觉输入组件)、音频输入组件(例如,麦克风)等等。

在另外的示例实施例中,I/O组件950可以包括各种各样的其他组件中的生物计量组件956、运动组件958、环境组件960或位置组件962。例如,生物计量组件956可以包括用于检测表情(例如手表情、面部表情、声音表情、身体手势或眼睛跟踪),测量生物信号(例如血压、心率、体温、汗液或脑波),识别人员(例如,语音识别、视网膜识别、面部识别、指纹识别或基于脑电图的识别)等的组件。运动组件958可以包括加速度传感器组件(例如,加速度计)、重力传感器组件、旋转传感器组件(例如陀螺仪)等等。环境组件960可包括例如照明传感器组件(例如,光度计)、温度传感器组件(例如,检测环境温度的一个或多个温度计)、湿度传感器组件、压力传感器组件(例如气压计)、声学传感器组件(例如,一个或多个检测背景噪声的麦克风)、接近传感器组件(例如,检测附近物体的红外传感器)、气体传感器(例如,用于为安全性检测有害气体浓度或测量大气污染物的气体检测传感器)或其他可以提供与周围物理环境相对应的指示、测量或信号的组件。位置组件962可以包括定位传感器组件(例如,GPS接收器组件)、高度传感器组件(例如,检测可以从中导出高度的气压的高度计或气压计)、方位传感器组件(例如磁力计)等。

可以使用多种技术来实现通信。I/O组件950可以包括通信组件964,通信组件964可操作以分别经由耦合982和耦合972将机器900耦合到网络980或设备970。例如,通信组件964可以包括网络接口组件或与网络980接口的其他合适的设备。在进一步的示例中,通信组件964可以包括有线通信组件、无线通信组件、蜂窝通信组件、近场通信(NFC)组件、

此外,通信组件964可以检测标识符或包括可操作以检测标识符的组件。例如,通信组件964可以包括射频识别(RFID)标签读取器组件、NFC智能标签检测组件、光学读取器组件(例如,用于检测诸如通用产品代码(UPC)条形码的一维条形码,多维条形码(例如快速响应(QR)码、Aztec代码、Data Matrix、Dataglyph、MaxiCode、PDF416、Ultra Code、UCCRSS-2D条形码)和其他光学代码的光学传感器),或声学检测组件(例如,识别标记的音频信号的麦克风)。此外,可以通过通信组件964得出各种信息,例如,通过因特网协议(IP)地理位置进行定位,通过

在各种示例实施例中,网络980的一个或多个部分可以是自组织网络、内联网、外联网、VPN、LAN、WLAN、WAN、WWAN、MAN、因特网、因特网的部分、PSTN的部分、普通的老式电话服务(POTS)网络、蜂窝电话网络、无线网络、

可以使用传输介质经由网络接口设备(例如,通信组件964中包括的网络接口组件)并且可以利用多种众所周知的传输中的任何一种协议(例如,超文本传输协议(HTTP))在网络980上发送或接收指令916。类似地,可以使用传输介质经由耦合972(例如,对等耦合)将指令916发送或接收到设备970。术语“传输介质”应被认为包括能够存储,编码或携带指令916以供机器900执行的任何无形介质,并且包括数字或模拟通信信号或其他无形介质以促进此类软件的通信。

在整个说明书中,多个实例可以实现被描述为单个实例的组件、操作或结构。尽管将一种或多种方法的单独操作示出并描述为单独的操作,但是可以同时执行一个或多个单独操作,并且不需要按照所示顺序执行操作。在示例配置中表示为单独的组件的结构和功能可以实现为组合的结构或组件。类似地,呈现为单个组件的结构和功能可以实现为单独的组件。这些和其他变型、修改、添加和改进落入本文主题的范围内。

尽管已经参考特定示例实施例描述了本发明主题的概述,但是在不脱离本公开的实施例的更广泛范围的情况下,可以对这些实施例进行各种修改和改变。仅出于方便起见,本文中可以单独地或共同地用术语“发明”来指代发明主题的此类实施例,并且如果实际上公开了一个以上的发明,则不希望将本申请的范围自动限制为任何单个公开或发明概念。

这里足够详细地描述了在此示出的实施例,以使本领域技术人员能够实践所公开的教导。可以使用其他实施例并从中得出其他实施例,从而可以在不脱离本公开的范围的情况下进行结构和逻辑上的替换和改变。因此,不应在限制意义上理解详细描述,并且各种实施例的范围仅由所附权利要求书以及这些权利要求书所赋予的等效物的全部范围来限定。

如本文中所使用的,术语“或”可以以包括性或排他性的意义来解释。此外,可以为本文中描述为单个实例的资源、操作或结构提供多个实例。另外,各种资源、操作、模块、引擎和数据存储库之间的边界在某种程度上是任意的,并且在特定说明性配置的上下文中示出了特定操作。可以设想功能的其他分配,并且其可以落在本公开的各种实施例的范围内。通常,在示例配置中表示为单独资源的结构和功能可以实现为组合结构或资源。类似地,可以将呈现为单个资源的结构和功能实现为单独的资源。这些和其他变型、修改、添加和改进落入如所附权利要求所表示的本公开的实施例的范围内。因此,说明书和附图应被认为是说明性的而不是限制性的。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号