一种基于面部特征点的眨眼动作识别的系统和方法与流程

文档序号:19942861发布日期:2020-02-14 23:24阅读:391来源:国知局
一种基于面部特征点的眨眼动作识别的系统和方法与流程

本申请一般涉及用于动作识别的系统和方法,尤其涉及用于从连续图像帧中自动识别眨眼动作存在的系统和方法。



背景技术:

基于人类动作识别(例如,眨眼动作识别)的生物体检测在许多场景中(例如,系统登录、身份认证、人机交互)变得越来越重要。以“系统登录”为例,当用户打算通过人脸识别登录系统时,为了验证“用户”是具有生命体的人而不是欺骗性对象(例如,图片),系统可能需要识别用户的动作(例如,眨眼动作)以进行这种验证。现有技术通过使用需要过多计算能力的复杂算法来实现该目标,从而导致计算系统的沉重负担。因此,期望提供用于快速且有效地自动识别用户动作存在的系统和方法,优选地对计算能力的需求较少。



技术实现要素:

本申请的一个方面涉及一种用于从连续图像自动识别面部动作存在的系统。所述系统可以包括至少一个存储介质,存储介质可以包括指令组,和与至少一个存储介质通信的至少一个处理器。当执行指令时,至少一个处理器可以用于使系统执行一个或以上以下操作。所述至少一个处理器可以获取包括面部对象的至少两个连续候选图像帧。至少两个候选图像帧中的每一个图像帧可以包括一个或以上与眼睛的上眼睑相关的第一特征点、一个或以上与眼睛的下眼睑相关的第二特征点、与眼睛的左端相关的第三特征点、以及与眼睛的右端相关的第四特征点。对于至少两个连续候选图像帧中的每一个图像帧,基于一个或以上第一特征点、一个或以上第二特征点、第三特征点、以及第四特征点,至少一个处理器可以确定多边形的面积。至少一个处理器可以确定至少两个连续候选图像帧中的每一个图像帧中的第三特征点与第四特征点之间的距离。基于至少两个连续候选图像帧中的每一个图像帧中的面积和距离,至少一个处理器可以确定动作参数。响应于动作参数满足一个或以上预设条件,至少一个处理器可以识别眨眼动作的存在。

本申请的另一方面涉及一种在计算设备上实现的方法,所述计算设备具有至少一个处理器、至少一个存储介质和连接到网络的通信平台。所述方法可以包括一个或以上以下操作。至少一个处理器可以获取包括面部对象的至少两个连续候选图像帧。至少两个候选图像帧中的每一个图像帧可以包括一个或以上与眼睛的上眼睑相关的第一特征点、一个或以上与眼睛的下眼睑相关的第二特征点、与眼睛的左端相关的第三特征点、以及与眼睛的右端相关的第四特征点。对于至少两个连续候选图像帧中的每一个图像帧,基于一个或以上第一特征点、一个或以上第二特征点、第三特征点、以及第四特征点,至少一个处理器可以确定多边形的面积。至少一个处理器可以确定至少两个连续候选图像帧中的每一个图像帧中的第三特征点与第四特征点之间的距离。基于至少两个连续候选图像帧中的每一个图像帧中的面积和距离,至少一个处理器可以确定动作参数。响应于动作参数满足一个或以上预设条件,至少一个处理器可以识别眨眼动作的存在。

本申请的另一方面涉及一种非暂时性计算机可读介质。所述非暂时性计算机可读介质可以包括可执行指令。当由至少一个处理器执行时,可执行指令可以使至少一个处理器执行方法,所述方法可以包括一个或以上以下操作。至少一个处理器可以获取包括面部对象的至少两个连续候选图像帧。至少两个候选图像帧中的每一个图像帧可以包括一个或以上与眼睛的上眼睑相关的第一特征点、一个或以上与眼睛的下眼睑相关的第二特征点、与眼睛的左端相关的第三特征点、以及与眼睛的右端相关的第四特征点。对于至少两个连续候选图像帧中的每一个图像帧,基于一个或以上第一特征点、一个或以上第二特征点、第三特征点、以及在第四特征点,至少一个处理器可以确定多边形的面积。至少一个处理器可以确定至少两个连续候选图像帧中的每一个图像帧中的第三特征点与第四特征点之间的距离。基于至少两个连续候选图像帧中的每一个图像帧中的面积和距离,至少一个处理器可以确定动作参数。响应于所述动作参数满足一个或以上预设条件,至少一个处理器可以识别眨眼动作的存在。

在一些实施例中,至少部分地基于一个或以上第一特征点、一个或以上第二特征点、第三特征点、或第四特征点,至少一个处理器可以确定参考点。基于一个或以上第一特征点、一个或以上第二特征点、第三特征点、第四特征点和参考点,至少一个处理器可以确定至少两个三角形面积。至少两个三角形面积中的每一个面积可以基于参考点与一个或以上第一特征点、一个或以上第二特征点、第三特征点、第四特征点中的两个相邻点来确定。基于至少两个三角形面积,至少一个处理器可以确定多边形的面积。

在一些实施例中,参考点可以包括一个或以上第一特征点、一个或以上第二特征点、第三特征点和第四特征点中的一个,或者多边形的垂心或多边形的中心点。

在一些实施例中,动作参数可以是多边形的面积与第三特征点和第四特征点之间的距离之间的比率。

在一些实施例中,至少一个处理器可以从至少两个连续候选图像帧中识别至少两个连续目标图像帧。至少两个连续目标图像帧可以包括开始图像帧和结束图像帧。至少一个处理器可以识别与对应于至少两个连续目标图像帧的至少两个动作参数相关的最大动作参数。至少一个处理器可以从对应于至少两个连续目标图像帧的至少两个动作参数识别最小动作参数。基于最大动作参数和最小动作参数,至少一个处理器可以确定不对称参数。从开始图像帧到对应于最小动作参数的目标图像帧,至少一个处理器可以确定目标图像帧的第一数量。从对应于最小动作参数的目标图像帧到结束图像帧,至少一个处理器可以确定图像帧的第二数量。响应于不对称参数大于不对称阈值、第一数量大于第一数量阈值、以及第二数量大于第二数量阈值,至少一个处理器可以识别眨眼的动作。

在一些实施例中,对于候选图像帧,沿着至少两个连续候选图像帧的序列,至少一个处理器可以在候选图像帧之前选择至少两个先前图像帧,并且在候选图像帧之后选择至少两个后续图像帧。基于对应于至少两个先前图像帧的至少两个第一动作参数,至少一个处理器可以确定第一平均动作参数。基于对应于至少两个后续图像帧的至少两个第二动作参数,至少一个处理器可以确定第二平均动作参数。响应于第二平均动作参数小于第一平均动作参数,以及至少两个第二动作参数中的每一个参数小于对应于候选图像帧的动作参数,至少一个处理器可以识别候选图像帧为开始图像帧。

在一些实施例中,对于开始图像帧之后的候选图像帧,沿着至少两个候选图像帧的序列,至少一个处理器可以在候选图像帧之前选择至少两个先前图像帧,并且在候选图像帧之后选择至少两个后续图像帧。基于对应于至少两个先前图像帧的至少两个第三动作参数,至少一个处理器可以确定第三平均动作参数。基于对应于至少两个后续图像帧的至少两个第四动作参数,至少一个处理器可以确定第四平均动作参数。响应于第四平均动作参数大于第三平均动作参数、至少两个第三动作参数中的每一个参数小于或等于对应于候选图像帧的动作参数、对应于与候选图像帧相邻的后续图像帧的动作参数大于或等于对应于候选图像帧的动作参数、以及与第一平均动作参数和第四平均动作参数相关的比率小于比率阈值,至少一个处理器可以将候选图像帧识别为结束图像帧。

在一些实施例中,不对称阈值可以在1.6-2范围内。

在一些实施例中,第一数量阈值可以在4-6范围内,或者第二数量阈值可以在4-6范围内。

在一些实施例中,响应于眨眼动作存在的识别结果,至少一个处理器可以向与对应于面部对象的用户相关的终端设备提供认证。

在一些实施例中,所述系统可以进一步包括摄像机,该摄像机可以被配置用于提供视频数据,从视频数据可以获取至少两个连续候选图像帧。

在一些实施例中,至少一个处理器可以从由摄像机提供的视频数据中获取至少两个连续候选图像帧。

本申请的一部分附加特性可以在下面的描述中进行说明,通过对以下描述和相应附图的研究或者对实施例的生产或操作的了解,本申请的一部分附加特性对于本领域技术人员是明显的。本申请的特征可以通过对以下描述的具体实施例的各种方面的方法、手段和组合的实践或使用得以实现和达到。

附图说明

本申请将通过示例性实施例进行进一步描述。这些示例性实施例将通过附图进行详细描述。这些实施例是非限制性的示例性实施例,在这些实施例中,各图中相同的编号表示相似的结构,其中:

图1是根据本申请的一些实施例所示的示例性动作识别系统的示意图;

图2是根据本申请的一些实施例所示的计算设备的示例性硬件和/或软件组件的示意图;

图3是根据本申请的一些实施例所示的移动设备的示例性硬件组件和/或软件组件的示意图;

图4是根据本申请的一些实施例所示的示例性处理引擎的框图;

图5是根据本申请的一些实施例所示的用于识别眨眼动作的存在的示例性过程的流程图。

图6是根据本申请的一些实施例所示的示例性特征点的示意图;

图7-a是根据本申请的一些实施例所示的用于基于至少两个三角形面积确定多边形的面积的示例性过程的流程图;

图7-b是根据本申请的一些实施例所示的基于特征点确定的示例性三角形面积的示意图;

图8是根据本申请的一些实施例所示的用于识别眨眼动作的存在的示例性过程的流程图。

图9是根据本申请的一些实施例所示的用于确定开始图像帧的示例性过程的流程图。

图10是根据本申请的一些实施例所示的确定结束图像帧的示例性过程的流程图;和

图11是根据本申请的一些实施例所示的示出在眨眼动作期间动作参数的变化过程的示例性曲线的示意图。

具体实施方式

以下描述是为了使本领域的普通技术人员能够实施和利用本申请,并且该描述是在特定的应用场景以及其要求的环境下提供的。对于本领域的普通技术人员来讲,显然可以对所公开的实施例作出各种改变,并且在不偏离本申请的原则和范围的情况下,本申请中所定义的普遍原则可以适用于其他实施例和应用场景。因此,本申请并不限于所描述的实施例,而应该被给予与权利要求一致的最广泛的范围。

本申请中所使用的术语仅用于描述特定的示例性实施例,并不限制本申请的范围。如本申请使用的单数形式“一”、“一个”以及“该”可以同样包括复数形式,除非上下文明确提示例外情形。还应当理解,如在本申请说明书中,术语“包含”、“包括”仅提示存在所述特征、整体、步骤、操作、组件和/或部件,但并不排除存在或添加一个或以上其他特征、整体、步骤、操作、组件、部件和/或其组合的情况。

根据以下对附图的描述,本申请的这些和其他的特征、特点以及相关结构元件的功能和操作方法,以及部件组合和制造经济性,可以变得更加显而易见,这些附图都构成本申请说明书的一部分。然而,应当理解的是,附图仅仅是为了说明和描述的目的,并不旨在限制本申请的范围。应当理解的是,附图并不是按比例绘制的。

本申请中使用了流程图用来说明根据本申请的一些实施例的系统所执行的操作。应当理解的是,流程图中的操作可以不按顺序执行。相反,可以按照倒序或同时处理各种步骤。同时,也可以将一个或以上其他操作添加到这些流程图中。一个或以上操作也可以从流程图中删除。

此外,虽然本申请中的系统和方法主要是关于眨眼动作识别来描述的,但是还应该理解,这仅是一个示例性实施例。本申请的系统和方法可以应用于任何其他类型的动作识别。例如,本申请的系统和方法可以应用于其他动作识别,包括眼球运动、摇动动作、点头动作、抬头动作、张嘴动作等,或其任意组合。动作识别系统可以应用于许多应用场景,例如,系统登录、身份认证、人机交互(hcl)等。本申请的系统和方法的应用可以包括但不限于网页、浏览器的插件、客户终端、定制系统、内部分析系统、人工智能机器人等,或其任意组合。

本申请中的术语“主题”、“人”或“用户”可以互换使用,是指要识别其行为的活体。此外,本申请中的术语“图像帧”、“图像”、“候选图像帧”和“目标图像帧”用于指代由相机设备捕获的视频数据或图像中的帧。本申请中的术语“相机”、“相机设备”和“捕获设备”可以互换使用,以指代可以捕获视频数据或图像数据的设备。

本申请的一个方面涉及用于识别眨眼动作的存在的系统和方法。在眨眼动作期间,与面部对象眼睛的内部区域相关的面积动态地改变,因此,在眨眼动作期间,动作参数(例如,面积与眼睛的两个端点之间的距离的比率)改变。基于动作参数的变化,所述系统和方法可以识别眨眼动作的存在。

例如,系统和方法可以获取与面部对象相关的至少两个连续候选图像帧。至少两个连续候选图像帧中的每一个图像帧可以包括一个或以上与眼睛的上眼睑相关的第一特征点、一个或以上与眼睛的下眼睑相关的第二特征点、与眼睛的左端相关的第三特征点、以及与眼睛的右端相关的第四特征点。对于至少两个连续候选图像帧中的每一个图像帧,基于一个或以上第一特征点、一个或以上第二特征点、第三特征点、以及第四特征点,系统和方法可以确定多边形的面积,并且确定第三特征点与第四特征点之间的距离。此外,基于多边形的面积和距离,系统和方法可以确定动作参数(例如,多边形的面积与距离的比率)。因此,基于对应于至少两个连续候选图像帧的动作参数,系统和方法可以识别眨眼动作的存在。

图1是根据本申请的一些实施例所示的示例性动作识别系统的示意图。例如,动作识别系统100可以是基于面部对象(例如,人的面部160)的信息的用于活体识别的在线动作识别平台。

在一些实施例中,动作识别系统100可以用于各种应用场景,例如,人机交互(hcl)、系统登录、身份认证等,或其任意组合。在hci的应用场景中,响应于动作的识别,动作识别系统100可以执行指令以执行由用户定义的操作。例如,在提取用户的面部信息并且识别用户的动作(例如,眨眼动作)之后,动作识别系统100可以执行指令以执行定义的操作,诸如翻动电子书的页面、视频聊天期间添加动画效果、控制机器人执行操作(例如,拖地)、请求服务(例如,打车服务)等。在系统登录的应用场景(例如,银行系统、支付系统、在线考试系统、安全和保护系统等)中,在提取用户的面部信息并且识别动作(例如,眨眼动作)之后,对于用户,动作识别系统100可以确定登录许可并且允许与用户相关的用户帐户登录系统。在身份认证的应用场景中,在提取用户的面部信息并且识别用户的动作(例如,眨眼动作)之后,动作识别系统100可以确定用户的身份并且提供访问账户(例如,终端设备、支付账户或会员账户)的许可或者进入限制地点(例如,公司、图书馆、医院或公寓)的许可。

在一些实施例中,动作识别系统100可以是在线平台,包括服务器110、网络120、摄影设备130、用户终端140和存储器150。

服务器110可以是单一服务器或服务器组。服务器组可以是集中式的,也可以是分布式的(例如,服务器110可以是分布式的系统)。在一些实施例中,服务器110可以是本地的,也可以是远程的。例如,服务器110可以经由网络120访问存储在摄影设备130、用户终端140和/或存储器150中的信息和/或数据。又例如,服务器110可以直接连接到摄影设备130、用户终端140和/或存储器150,以访问存储信息和/或数据。在一些实施例中,服务器110可以在云平台上实施。仅作为示例,云平台可以包括私有云、公共云、混合云、社区云、分布云、内部云、多层云等,或其任意组合。在一些实施例中,服务器110可以在本申请的图2中描述的包括一个或者多个组件的计算设备200上执行。

在一些实施例中,服务器110可以包括处理引擎112。处理引擎112可以处理与动作识别有关的信息和/或数据,以执行本申请中描述的一个或以上的功能。例如,基于包括面部对象的至少两个连续候选图像帧,处理引擎112可以识别眨眼动作的存在。在一些实施例中,所述处理引擎112可包括一个或以上处理引擎(例如,单芯片处理引擎或多芯片处理引擎)。仅作为示例,处理引擎112可以包括一个或以上硬件处理器,例如,中央处理器(cpu)、特定应用集成电路(asic)、特定应用指令组处理器(asip)、图像处理器(gpu)、物理运算处理单元(ppu)、数字信号处理器(dsp)、现场可程序门阵列(fpga)、可程序逻辑装置(pld)、控制器、微控制器单元、精简一组指令计算机(risc)、微处理器等,或其任意组合。

在一些实施例中,服务器110可以是不必要的,并且服务器110的全部或部分功能可以由动作识别系统100的其他组件(例如,摄影设备130、用户终端140)实现。例如,处理引擎112可以集成在摄影设备130或用户终端140中,并且处理引擎112的功能(例如,基于与面部对象相关的图像帧,识别面部对象动作的存在)可以由摄影设备130或用户终端140实现。

网络120可以促进信息和/或数据的交换。在一些实施例中,动作识别系统100的一个或以上组件(例如,服务器110、摄影设备130、用户终端140、存储器150)可以与动作识别系统100其他组件通过网络120交换信息和/或数据。例如,服务器110可以经由网络120从摄影设备130获取信息和/或数据(例如,图像帧)。在一些实施例中,网络120可以为任意形式的有线或无线网络,或其任意组合。仅作为示例,网络120可以包括电缆网络、有线网络、光纤网络、电信网络、内部网络、互联网、局域网络(lan)、广域网路(wan)、无线局域网络(wlan)、城域网(man)、公共开关电话网络(pstn)、蓝牙网络、紫蜂网络、近场通讯(nfc)网络等,或其任意组合。在一些实施例中,网络120可以包括一个或以上网络接入点。例如,网络120可以包括有线或无线网络接入点,如基站和/或互联网交换点120-1、120-2、……,通过动作识别系统100的一个及以上部件可以连接到网络120以交换数据和/或信息。

摄影设备130可以捕获包括面部对象的图像数据或视频数据。例如,摄影设备130可以捕获包括面部对象的至少两个图像帧的视频。在一些实施例中,摄影设备130可以包括黑白相机、彩色相机、红外相机、3d相机、x射线相机等。在一些实施例中,摄影设备130可以包括单目相机、双目相机、多相机等。在一些实施例中,摄影设备130可以是包括或连接到相机的智能设备。智能设备可以包括智能家居设备(例如,智能照明设备、智能电视)、智能机器人(例如,扫地机器人、拖地机器人、聊天机器人、工业机器人等)。在一些实施例中,摄影设备130可以是监视相机。监视相机可以包括无线彩色相机、低光相机、防破坏相机、子弹相机、针孔相机、隐藏间谍相机、固定盒相机等,或其任意组合。在一些实施例中,摄影设备130可以是ip相机,其可以经由网络120将捕获的图像数据或视频数据传输到动作识别系统100的任何组件(例如,服务器110、用户终端140、存储器150)。

在一些实施例中,摄影设备130可以基于捕获的图像帧独立地识别面部对象动作的存在。在一些实施例中,摄影设备130可以将捕获的图像帧发送到服务器110或用户终端140以进一步处理。在一些实施例中,摄影设备130可以将捕获的图像帧发送到存储器150以进行存储。在一些实施例中,摄影设备130可以集成在用户终端140中。例如,摄影设备130可以是用户终端140的一部分,诸如移动电话的相机、计算机的相机等。

在一些实施例中,用户终端140可以包括移动设备、平板计算机、膝上型计算机等,或其任意组合。在一些实施例中,移动装置可以包括可穿戴设备、智慧移动装置、虚拟实境装置、增强实境装置等,或其任意组合。在一些实施例中,可穿戴设备可以包括智能手环、智能鞋袜、智能眼镜、智能头盔、智能手表、智能服装、智能背包、智能配件等,或其任意组合。在一些实施例中,智能移动设备可以包括智能电话、个人数字助理(pda)、游戏设备、导航设备、销售点(pos)等,或其任意组合。在一些实施例中,虚拟现实设备和/或增强型虚拟现实设备可以包括虚拟现实头盔、虚拟现实眼镜、虚拟现实眼罩、增强现实头盔、增强现实眼镜、增强现实眼罩等,或其任意组合。例如,虚拟现实设备和/或增强现实设备可以包括googleglasstm、riftcontm、fragmentstm、gearvrtm等。

在一些实施例中,用户终端140可以经由网络120与动作识别系统100的其他组件(例如,服务器110、摄影设备130、用户终端140、存储器150)交换信息和/或数据。例如,用户终端140可以从摄影设备130或存储器150获取图像帧,以基于图像帧识别面部对象动作的存在。又例如,用户终端140可以从服务器110接收消息(例如,认证)。

存储器150可以存储数据和/或指令。在一些实施例中,存储器150可以存储从摄影设备130和/或用户终端140获取的数据。在一些实施例中,存储器150可以储存服务器110用来执行或使用来完成本申请中描述的示例性方法的数据和/或指令。在一些实施例中,数据库150可以包括大容量存储器、可移式存储器、挥发性读写内存、只读存储器(rom)等,或其任意组合。示例性的大容量存储器可以包括磁盘、光盘、固态磁盘等。示例性可移动存储器可以包括闪存驱动器、软盘、光盘、存储卡、压缩盘、磁带等。示例性易失性读写内存可以包括随机存取内存(ram)。示例性ram可包括动态随机存取存储器(dram)、双倍数据速率同步动态随机存取存储器(ddrsdram)、静态随机存取存储器(sram)、晶闸管随机存取存储器(t-ram)和零电容随机存取存储器(z-ram)等。示例性只读存储器可以包括掩模型只读存储器(mrom)、可编程只读存储器(prom)、可擦除可编程只读存储器(eprom)、电可擦除可编程只读存储器(eeprom)、光盘只读存储器(cd-rom)和数字多功能磁盘只读存储器等。在一些实施例中,所述存储器150可在云平台上实现。仅作为示例,云平台可以包括私有云、公共云、混合云、社区云、分布云、内部云、多层云等,或其任意组合。

在一些实施例中,存储器150可以连接到网络120以与动作识别系统100的一个或以上组件(例如,服务器110、摄影设备130、用户终端140等)通信。动作识别系统100的一个或以上组件可以经由网络120访问存储在存储器150中的数据或指令。在一些实施例中,存储器150可以直接连接到动作识别系统100的一个或以上组件(例如,服务器110、摄影设备130、用户终端140等),或与之通信。在一些实施例中,存储器150可以是服务器110的一部分。

在一些实施例中,动作识别系统100的一个或以上组件(例如,服务器110、摄影设备130、用户终端140)可以具有访问存储器150的许可。例如,用户终端140可以从存储器150访问信息/数据(例如,包括面部对象的图像帧)。

该描述旨在说明,而不是限制本申请的范围。许多替代、修改和变化对于本领域普通技术人员来说是显而易见的。本文描述的示例性实施例的特征、结构、方法和其他特征可以以各种方式组合以获取另外的和/或替代的示例性实施例。例如,存储器150可以是包括云计算平台的数据存储器、公共云、私有云、社区和混合云等。但是,那些变化与修改不会脱离本申请的范围。

图2是根据本申请的一些实施例所示的计算设备200的示例性硬件和/或软件组件的示意图。在一些实施例中,服务器110、摄影设备130和/或用户终端140可以在计算设备200上实现。例如,处理引擎112可以在计算设备200上实施并且执行本申请所披露的处理引擎112的功能。

计算设备200可以用于实现如本文所述的动作识别系统100的任何组件。例如,处理引擎112可以在计算设备200上通过其硬件、软件程序、固件或其组合实现。为了方便起见,图中仅示出了一台计算机,但是本申请描述的与检索服务有关的计算机功能可以在多个类似平台上以分布式方式实现,以分担处理负载。

例如,计算设备200可以包括与网络相连接通信端口250,以实现数据通信。计算设备200还可以包括处理器220,以一个或以上处理器(例如,逻辑电路)的形式执行程序指令。例如,处理器220可以包括接口电路和其中的处理电路。接口电路可以被配置为从总线210接收电信号,其中电信号编码用于处理电路的结构化数据和/或指令。处理电路可以进行逻辑计算,然后将结论、结果和/或指令编码确定为电信号。然后,接口电路可以经由总线210从处理电路发出电信号。

计算设备200还可以包括不同形式的程序存储和数据存储,例如磁盘270、只读存储器(rom)230、或随机存取存储器(ram)240,用于存储由计算设备处理和/或传输的各种数据文件。示例性的计算机平台也可以包括存储在rom230、ram240和/或其他形式的非暂时性存储介质中的能够被处理器220执行的程序指令。本申请的方法和/或流程可以以程序指令的方式实现。计算设备200还包括输入/输出组件260,支持计算机和其他组件之间的输入/输出。计算设备200也可以通过网络通信接收编程和数据。

为了方便说明,图2中仅描述了一个处理器。也可以包括至少两个处理器,因此本申请中描述的由一个处理器执行的操作和/或方法步骤也可以由多个处理器共同地或单独执行。例如,如果在本申请中,计算设备200的处理器执行步骤a和步骤b,应当理解的是,步骤a和步骤b也可以由计算设备200的两个不同的cpu和/或处理器共同地或独立地执行(例如,第一处理器执行步骤a,第二处理器执行步骤b,或者第一和第二处理器共同地执行步骤a和步骤b)。

图3是根据本申请的一些实施例所示的移动设备300的示例性硬件组件和/或软件组件的示意图,在一些实例中,摄影设备130、用户终端140或摄影设备130或用户终端140的一部分可以在移动设备300上实现。如图3所示,移动设备300可以包括通信平台310、显示器320、图形处理单元(gpu)330、中央处理单元(cpu)340、输入/输出350、内存360、移动操作系统(os)370和存储器390。在一些实施例中,任何其他合适的组件,包括但不限于系统总线或控制器(未示出),也可以包括在移动设备300内。

在一些实施例中,操作系统370(例如,iostm、androidtm、windowsphone等)和一个或以上应用程序380可以从存储器390下载至内存360以由cpu340执行。应用程序380可以包括浏览器或任何其他合适的移动应用程序,用于从动作识别系统100接收和呈现与动作识别相关的信息或其他有关的信息。用户与信息流的交互可以通过输入/输出350实现,并且通过网络120提供给处理引擎112和/或动作识别系统100的其他组件。

为了实施本申请描述的各种模块、单元以及其功能,计算机硬件平台可以用作本文中描述之一个或以上组件的硬件平台。具有用户接口组件的计算机,可以用于实施个人计算机(pc)或任何其他类型的工作站或终端设备。如果适当编程,计算机也可以充当系统。

图4是根据本申请的一些实施例所示的示例性处理引擎的框图。处理引擎112可以包括获取模块410、面积确定模块420、距离确定模块430、动作参数确定模块440和识别模块450。

获取模块410可以被配置为获取包括面部对象的至少两个连续候选图像帧。面部对象可以指受试者(例如,人、动物)的面部。获取模块410可以从本申请中其他地方公开的摄影设备130、用户终端140或存储设备(例如,存储器150)获取至少两个连续候选图像帧。

如这里所使用的,“图像帧”可以指代视频中的帧,并且“连续”可以指图像帧根据视频中的序列(例如,时间序列)来排列。例如,摄影设备130可以按时间顺序捕获视频。视频包括分别对应于至少两个捕获时间点的至少两个图像帧。因此,基于捕获时间点,图像帧按时间顺序排列。

在一些实施例中,至少两个候选图像帧中的每一个图像帧可以包括与面部对象相关的至少两个特征点。在一些实施例中,如图6-a所示,至少两个特征点可以包括一个或以上与眼睛的上眼睑相关的第一特征点(例如,点a1、...、点ai、...、和点)、一个或以上与眼睛的下眼睑相关的第二特征点(例如,点b1、...、点bi、...、和点)、与眼睛的左端相关的第三特征点(例如,点c),以及与眼睛的右端相关的第四特征点(例如,点d)。

面积确定模块420可以被配置用于基于一个或以上第一特征点、一个或以上第二特征点、第三特征点、以及第四特征点,在每个至少两个连续候选图像帧中确定多边形的面积。多边形的面积表示面部对象的眼睛内部区域的面积。

距离确定模块430可以被配置用于确定在至少两个连续候选图像帧中的每一个图像帧中第三特征点和第四特征点之间的距离。这里的距离表示眼睛的长度。

动作参数确定模块440可以被配置用于基于在至少两个连续候选图像帧中的每一个图像帧的多边形的面积和距离,确定动作参数。在一些实施例中,动作参数可以是多边形的面积与距离的比率。

识别模块450可以被配置用于响应于动作参数满足一个或以上预设条件,识别眨眼动作的存在。已知在眨眼动作期间,面部对象的眼睛的上眼睑可以沿着向下方向从开始位置移动到中间位置,然后沿着向上方向从中间位置移动到结束位置。因此,在眨眼动作期间,眼睛内部区域的面积(可以由多边形的面积表示)动态地改变。因此,动作参数在眨眼动作期间动态地改变。

处理引擎112中的模块可以经由有线连接或无线连接彼此连接或通信。有线连接可以包括金属线缆、光缆、混合电缆等,或其任意组合。无线连接可以包括局域网络(lan)、广域网络(wan)、蓝牙、紫蜂网络、近场通讯(nfc)等,或其任意组合。两个或以上模块可以被组合为单个模块,并且模块中的任一个可以被分成两个或以上单元。例如,面积确定模块420和距离确定模块430可以组合为单个模块,其可以确定多边形的面积和眼睛的两个端点之间的距离。又例如,处理引擎112可以包括存储模块(未示出),其可以用于存储由上述模块生成的数据。

图5是根据本申请的一些实施例所示的用于识别眨眼动作的存在的示例性过程的流程图。在一些实施例中,可以通过存储在只读存储器230、或随机存取存储器240中的一组指令(例如,应用程序)来实现过程500。处理器220和/或图4中的模块可以执行指令,并且当执行指令时,处理器220和/或模块可以被配置用于执行过程500。以下所示过程的操作仅出于说明的目的。在一些实施例中,过程500在实现时可以添加一个或以上未描述的额外操作,和/或删减一个或以上此处所描述的操作。另外,如图5所示和下面描述的过程操作的顺序不是限制性的。

在510中,处理引擎112(例如,获取模块410)(例如,处理器220的接口电路)可以获取包括面部对象的至少两个连续候选图像帧。面部对象可以指受试者(例如,人、动物)的面部。处理引擎112可以从本申请中其他地方公开的摄影设备130、用户终端140、或存储设备(例如,存储器150),获取至少两个连续候选图像帧。

如这里所使用的,“图像帧”可以指代视频中的帧,并且“连续”可以是指图像帧根据视频中的序列(例如,时间序列)来排列。例如,摄影设备130可以按时间顺序捕获视频。视频包括分别对应于至少两个捕获时间点的至少两个图像帧。因此,基于捕获时间点,图像帧按时间顺序排列。

在一些实施例中,至少两个连续候选图像帧可以表示为如下所示的有序集:

f=[f1,f2,fi,…,fm],(1)

其中f是指有序集,fi是指第i个候选图像帧,以及m是指至少两个候选图像帧的数量。在有序集中,基于至少两个候选图像帧的捕获时间点,至少两个连续候选图像帧按时间顺序排序。例如,候选图像帧f1对应于第一捕获时间点,候选图像帧f2对应于第二捕获时间点,其中第二捕获时间点晚于第一捕获时间点,并且第一捕获时间点与第二捕获时间点之间的时间间隔可以是摄影设备130的默认参数,或者可以由动作识别系统100设置。例如,摄影设备130可以每秒捕获24个图像帧;在某些实施例中,相邻候选图像帧之间的间隔可以是1/24秒,这意味着所有捕获的图像帧都被用作候选图像帧;在某些实施例中,相邻候选图像帧之间的间隔可以是1/12秒,这意味着某些(一半)捕获的图像帧被用作候选图像帧但是其他的被跳过。

在一些实施例中,至少两个候选图像帧中的每一个图像帧可以包括与面部对象相关的至少两个特征点。如本文所用,“特征点”可指代位于面部的点。在一些实施例中,特征点是面部上的一个点,并且可以被可察觉地识别,例如,眼睛末端的一个点、眉毛上的一个点、鼻子上的一个点等。在一些实施例中,处理引擎112可以基于面部识别过程确定至少两个特征点。面部识别过程可以包括基于几何特征的过程、局部面部分析过程、主成分分析过程、基于深度学习的过程等,或其任意组合。

在一些实施例中,如图6-a所示,至少两个特征点可以包括与眼睛的上眼睑相关的一个或以上第一特征点(例如,点a1、...、点ai、...、和点)、与眼睛的下眼睑相关的一个或以上第二特征点(例如,点b1、...、点bi、...、和点)、与眼睛左端相关的第三特征点(例如,点c)、以及与眼睛右端相关的第四特征点(例如,点d)。

在520中,对于至少两个连续候选图像帧中的每一个图像帧,基于一个或以上第一特征点、一个或以上第二特征点、第三特征点、以及第四特征点,处理引擎112(例如,面积确定模块420)(例如,处理器220的处理电路)可以确定多边形的面积。多边形的面积表示面部对象的眼睛内部区域的面积。在一些实施例中,基于至少两个三角形面积(例如,图7-b中所示的三角形面积t1、t2、...、tq),处理引擎112可以确定多边形的面积。关于多边形面积的确定的更多描述可以在本申请的其他地方找到(例如,图7-a以及其描述)。

在530中,处理引擎112(例如,距离确定模块430)(例如,处理器220的处理电路)可以确定至少两个连续候选图像帧中的每一个图像帧中的第三特征点与第四特征点之间的距离。这里的距离表示眼睛的长度。对于特定的面部对象,距离可以是图像帧中的恒定值。

在一些实施例中,处理引擎112可以根据下面的公式(2)确定距离:

其中d是指第三特征点与第四特征点之间的距离,(x3,y3)是指第三特征点的坐标,以及(x4,y4)是指第四特征点的坐标。为了说明,本申请以直角坐标系为例,应该注意的是,特征点的坐标可以用任何坐标系(例如,极坐标系)表示,坐标系的原点可以是图像帧中的任何一点。

在540中,基于在至少两个连续候选图像帧中的每一个图像帧中的多边形的面积和距离,处理引擎112(例如,动作参数确定模块440)(例如,处理器220的处理电路)可以确定动作参数。在一些实施例中,动作参数可以是多边形的面积与距离的比率,如下面的公式(3)所示:

其中a是指动作参数,s是指多边形的面积,d是指第三特征点和第四特征点之间的距离。

在550中,响应于动作参数满足一个或以上预设条件,处理引擎112(例如,识别模块450)(例如,处理器220的处理电路)可以识别眨眼动作的存在。已知在眨眼动作期间,面部对象的眼睛的上眼睑可以沿着向下方向从开始位置移动到中间位置,然后沿着向上方向从中间位置移动到结束位置。因此,在眨眼动作期间,眼睛内部区域的面积(可以由多边形的面积表示)动态地改变。因此,动作参数在眨眼动作期间动态地改变。

假设起始位置和结束位置都对应于面部对象面向摄影设备130的右侧或基本上右侧并且眼睛完全打开的时间点,在理想条件下,对应于起始位置和对应于结束位置的动作参数是固定值并且彼此大致相等。在眨眼动作期间,中间位置可以是停止位置,其中眼睛的上眼睑停止向下移动(或开始向上移动),这对应于眼睛完全闭合的时间点,并且在该时间点动作参数是最小的(在理想条件下,对应于中间位置的动作参数为0)。因此,处理引擎112可以识别至少两个连续目标图像帧,其包括对应于或基本对应于开始位置的开始图像帧、对应于或基本对应于结束位置的结束图像帧、以及对应于或基本上对应于中间位置的中间图像帧,并且基于开始图像帧、结束图像帧和中间图像帧的动作参数来识别眨眼动作的存在。眨眼动作的识别的更多描述可以在本申请的其他地方找到(例如,图8-10以及其描述)。

应当注意,这里使用的“基本上对应于”是指在捕获图像帧时的捕获时间点与对应于该位置的时间点之间的时间间隔,小于本领域普通人可以识别的时间阈值。已知摄影设备130根据帧速率(可以是默认参数)捕获图像帧,即,两个相邻图像帧的捕获时间点不连续(即,两个捕获时间点之间存在时间间隔)。因此,以“开始位置”为例,在某些情况下,开始图像帧可能不严格对应于开始位置的时间点,但是开始图像帧的捕获时间点可能是非常接近起始位置的时间点。在理想条件下,我们可以认为两个时间点是相同的,因为候选图像帧之间的间隔通常很短。另外,对于本领域的普通人而言,眨眼动作是一种非常快速的动作,因此难以捕获严格对应于中间位置的图像帧。在本申请中,本领域的普通人应理解“中间图像帧”是指具有最接近中间位置的时间点的捕获时间点的图像帧。

在一些实施例中,响应于眨眼动作的存在的识别,处理引擎112还可以向对应于面部对象的用户相关的终端设备(例如,用户终端140)提供认证。在接收到认证之后,用户可以具有对终端设备的访问权限。

应该注意的是,上述仅出于说明性目的而提供,并不旨在限制本申请的范围。对于本领域的普通技术人员来说,可以根据本申请的描述,做出多种修改或变化。然而,变化和修改不会背离本申请的范围。例如,操作530可以是可选的。处理引擎112可以从本申请中其他地方公开的存储设备(例如,存储器150)或外部数据源获取参考距离(例如,与眼睛的两个端点之间的距离相关的统计值)。又例如,一个或以上其他可选操作(例如,存储操作)可以在过程500中的其他地方添加。在存储操作中,处理引擎112可以存储与在本申请的其他地方公开的存储设备(例如,存储器150)中的动作识别相关的信息(例如,至少两个连续候选图像帧、多边形的面积、距离、动作参数)。

图6是根据本申请的一些实施例所示的示例性特征点的示意图。如结合510所述,至少两个候选图像帧中的每一个图像帧可以包括一个或以上与眼睛的上眼睑相关的第一特征点、一个或以上与眼睛的下眼睑相关的第二特征点、与眼睛的左端相关的第三特征点、以及与眼睛的右端相关的第四特征点。

如图所示,一个或以上第一特征点可以包括上眼睑上的点a1、...、点ai、...、和点一个或以上第二特征点可以包括下眼睑上的点b1、...、点bi、…、和点第三特征点可以是眼睛左端的点c,以及第四特征点可以是眼睛右端的点d。n1的值和n2的值可以彼此相同或不同。

图7-a是根据本申请的一些实施例所示的用于基于至少两个三角形面积确定多边形的面积的示例性过程的流程图。在一些实施例中,过程700可以通过存储在只读存储器230或随机存取存储器240中的一组指令(例如,应用程序)来实现。处理器220和/或图4中的模块可以执行指令,并且当执行指令时,处理器220和/或模块可以被配置以执行处理700。以下所示过程的操作仅出于说明的目的。在一些实施例中,过程700可以用未描述的一个或以上附加操作来完成,和/或删减一个或以上此处所描述的操作。另外,如图7所示和下面描述的过程操作的顺序不是限制性的。在一些实施例中,可以基于过程700来执行操作520。

在710中,至少部分的基于一个或以上第一特征点、一个或以上第二特征点、第三特征点、或第四特征点,处理引擎112(例如,面积确定模块420)(例如,处理器220的处理电路)可以确定参考点。在一些实施例中,参考点可以是多边形的任何边缘上的任何点。例如,参考点可以是一个或以上第一特征点、一个或以上第二特征点、第三特征点、或第四特征点中的一个。在一些实施例中,参考点可以是多边形内的任何点。例如,参考点可以是多边形的垂点、多边形的中心点等。

以多边形的垂心为例,处理引擎112可以根据下面的公式(4)确定参考点:

其中(xg,yg)是指参考点的坐标,是指第i个第一特征点的坐标,以及是指第i个第二特征点的坐标。

在720中,基于一个或以上第一特征点、一个或以上第二特征点、第三特征点、第四特征点和参考点,处理引擎112(例如,面积确定模块420)(例如,处理器220的处理电路)可以确定至少两个三角形面积,其中基于参考点与一个或以上第一特征点、一个或以上第二特征点、第三特征点和第四特征点中的两个相邻的点可以确定至少两个三角形面积中的每一个面积。

如图7-b所示,以第一三角形区域为例,处理引擎112可以基于点o(例如,参考点)、点a1(例如,第一个“第一特征点”)和点d(例如第四特征点)根据下面的公式(5)确定第一个三角形面积:

其中,t1是指第一个三角形面积,是指第一个“第一特征点”的坐标,(x4,y4)是指第四特征点的坐标,(xg,yg)是指参考点的坐标。

在730中,基于至少两个三角形面积,处理引擎112(例如,面积确定模块420)(例如,处理器220的处理电路)可以确定多边形的面积。例如,处理引擎112可以根据下面的公式(6)确定多边形的面积:

s=t1+t2+…ti+…+tq(6)

其中s是指多边形的面积,ti是指第i个三角形面积,q是指至少两个三角形区域的数量。

应当注意上述用于确定多边形面积的示例性实施例是出于说明目的而提供的,并非旨在限制本申请的范围。本领域的普通人应该理解,用于确定多边形面积的任何方法都可以应用于本申请中。例如,处理引擎112可以通过拟合一个或以上第一特征点、一个或以上第二特征点、第三特征点、和第四特征点来估计圆形或椭圆形,并且确定一个圆形或椭圆形的面积作为多边形的面积。又例如,处理引擎112可以将多边形划分为至少两个四边形,并且确定至少两个四边形的面积之和作为多边形的面积。

图7-b是根据本申请的一些实施例所示的基于特征点确定的示例性三角形面积的示意图。如图所示,点o是指参考点,基于点o和任意两个相邻的特征点(例如,点a1和点d、点d和点b1、点和点c等),处理引擎112可以确定至少两个三角形面积(例如,t1、t2、...和tq)。

应当理解的是,以上描述仅出于说明的目的,并不旨在限制本申请的范围。对于本领域的普通技术人员来说,可以根据本申请的描述,做出多种修改和变化。然而,变化和修改不会背离本申请的范围。

图8是根据本申请的一些实施例所示的用于识别眨眼动作的存在的示例性过程的流程图。在一些实施例中,过程800可以通过存储在只读存储器230或随机存取存储器240中的一组指令(例如,应用程序)来实现。处理器220和/或图4中的模块可以执行指令,并且当执行指令时,处理器220和/或模块可以被配置以执行处理800。以下所示过程的操作仅出于说明的目的。在一些实施例中,过程800在实施时可以添加一个或以上本申请未描述的额外操作和/或删减一个或以上此处所描述的操作。另外,如图8所示和下面描述的过程操作的顺序不是限制性的。在一些实施例中,可以基于过程800来执行操作550。

在810中,处理引擎112(例如,识别模块450)(例如,处理器220的处理电路)可以从至少两个连续候选图像帧中识别至少两个连续目标图像帧。如结合550所述,至少两个连续目标图像帧包括对应于或基本上对应于开始位置的开始图像帧(即,面部对象的眼睛的上眼睑开始沿着向下方向移动的位置)、对应于或基本上对应于结束位置(即,面部对象的眼睛的上眼睑停止沿向上方向移动的位置)的结束图像帧、以及对应于或者基本上对应于中间位置(即,面部对象的眼睛的上眼睑停止向下移动(或开始向上移动)的位置)的中间图像帧。

在820中,处理引擎112(例如,识别模块450)(例如,处理器220的处理电路)可以识别与对应于至少两个连续目标图像帧的至少两个动作参数相关的最大动作参数。如上所述,最大动作参数对应于开始图像帧或结束图像帧。

在一些实施例中,基于对应于开始图像帧的动作参数(也称为“开始动作参数”)和对应于结束图像帧的动作参数(也被称为“结束动作参数”),处理引擎112可以确定最大动作参数。例如,处理引擎112可以将开始动作参数和结束动作参数的平均动作参数确定为最大动作参数。

在一些实施例中,如图11所示,在对应于开始图像帧的捕获时间点之前的时间段内,面部对象可以在眼睛完全打开的情况下保持面向摄影设备130的右侧或基本上右侧,在此期间,动作参数保持几乎不变(例如,从点1101到点1102),并且在对应于结束图像帧的捕获时间点之后的时间段内,面部对象可以在眼睛完全打开的情况下保持面向或基本上面向到摄影设备130,其中动作参数也几乎保持不变(例如,从点1108到点1112),因此,处理引擎112可以分别确定对应于两个时间段的两个平均动作参数(即,分别在图9和图10中描述的第一平均动作参数和第四平均动作参数),并且进一步确定两个平均动作参数的平均值作为最大动作参数。

在830中,处理引擎112(例如,识别模块450)(例如,处理器220的处理电路)可以从对应于至少两个连续目标图像帧的至少两个动作参数中识别最小动作参数。如上所述,最小动作参数对应于中间图像帧。

在840中,基于最大动作参数和最小动作参数,处理引擎112(例如,识别模块450)(例如,处理器220的处理电路)可以确定不对称参数。不对称参数可以指对应于至少两个连续目标图像帧的动作参数的幅度。在一些实施例中,处理引擎112可以根据下面的公式(7)确定不对称参数:

其中asy是指不对称参数,amax是指动作参数最大值,以及amin是指动作参数最小值。

在850中,处理引擎112(例如,识别模块450)(例如,处理器220的处理电路)可以确定从开始图像帧到对应于最小动作参数的目标图像帧(即,中间图像帧)的目标图像帧的第一数量。

在860中,处理引擎112(例如,识别模块450)(例如,处理器220的处理电路)可以确定从对应于最小动作参数的目标图像帧(即,中间图像帧)到结束图像帧的目标图像帧的第二数量。

在870中,基于不对称参数、第一数量和第二数量,处理引擎112(例如,识别模块450)(例如,处理器220的处理电路)可以识别眨眼动作的存在。响应于不对称参数大于不对称阈值、第一数量大于第一数量阈值、以及第二数量大于第二数量阈值,处理引擎112可以识别眨眼动作的存在。

在一些实施例中,不对称阈值可以是动作识别系统100的默认设置,或者在不同情况下是可以调节的。例如,不对称阈值可以是1.2至3范围内的任何值。

在一些实施例中,第一数量阈值和第二数量阈值可以是动作识别系统100的默认设置。例如,第一数量阈值或第二数量阈值可以是2到10范围内的任何值(例如,4)。在一些实施例中,第一数量阈值和第二数量阈值可以根据摄影设备130的帧速率或相邻图像帧之间的间隔来调整。帧速率可以指每单位时间由摄影设备130捕获的多个图像帧(例如,每秒一个)。在一些实施例中,摄影设备130的较大帧速率可以对应于较大的第一数量阈值或较大的第二数量阈值。在一些实施例中,第一数量阈值和第二数量阈值可以相同或不同。

应当理解的是,以上描述仅出于说明的目的,并不旨在限制本申请的范围。对于本领域的普通技术人员来说,可以根据本申请的描述,做出多种修改和变化。然而,变化和修改不会背离本申请的范围。

图9是根据本申请的一些实施例所示的用于确定开始图像帧的示例性过程的流程图。在一些实施例中,过程900可以通过存储在只读存储器230或随机存取存储器240中的一组指令(例如,应用程序)来实现。处理器220和/或图4中的模块可以执行指令,并且当执行指令时,处理器220和/或模块可以被配置以执行处理900。以下所示过程的操作仅出于说明的目的。在一些实施例中,过程900在实现时可以添加一个或以上未描述的额外操作和/或删减一个或以上此处所描述的操作。另外,如图9所示和下面描述的过程操作的顺序不是限制性的。在一些实施例中,可以基于过程900来执行操作810。

在910中,对于候选图像帧,沿着至少两个连续候选图像帧的序列,处理引擎112(例如,识别模块450)(例如,处理器220的处理电路)可以选择候选图像帧之前的至少两个先前图像帧和候选图像帧之后的至少两个后续图像帧。如结合510所述,至少两个连续候选图像帧基于捕获时间点按时间顺序排序。因此,这里的“序列”是指时间顺序。此外,这里的“先前图像帧”是指沿着序列紧接在候选图像帧之前的连续图像帧,并且“后续图像帧”是指紧接在候选图像帧之后的连续图像帧。

以第i个候选图像帧fi为例,在第i个候选图像帧之前的至少两个先前图像帧可以表示为下面的有序集:

p1=[fi-x,…,fi-2,fi-1](i>1,x<i)(8)

其中p1是指包括至少两个先前图像帧的有序集,以及x是指至少两个先前图像帧的数量。

另外以第i个候选图像帧fi为例,第i个候选图像帧后的至少两个后续图像帧可以表示为下面的有序集:

n1=[fi+1,fi+2,…,fi+y](i>1,y<m-1)(9)

其中n1是指包括至少两个后续图像帧的有序集,y是指至少两个后续图像帧的数量,以及m是指至少两个候选图像帧的数量。

在920中,基于与至少两个先前图像帧对应的至少两个第一动作参数,处理引擎112(例如,识别模块450)(例如,处理器220的处理电路)可以确定第一平均动作参数。例如,处理引擎112可以根据下面的公式(10)确定第一平均动作参数:

其中,是指第一平均动作参数,以及ai-x是指对应于第(i-x)候选图像帧的第一动作参数。

在930中,基于与至少两个后续图像帧对应的至少两个第二动作参数,处理引擎112(例如,识别模块450)(例如,处理器220的处理电路)可以确定第二平均动作参数。例如,处理引擎112可以根据下面的公式(11)确定第二平均动作:

其中,是指第二平均动作参数,以及ai+y是指对应于第(i+y)候选图像帧的第二动作参数。

在940中,响应于第二平均动作参数小于第一平均动作参数,以及至少两个第二动作参数中的每一个参数小于对应于候选图像帧的动作参数,处理引擎112(例如,识别模块450)(例如,处理器220的处理电路)可以将候选图像帧识别为开始图像帧。

如结合550所述,开始图像帧(例如,图11中所示的点1102)对应于或基本上对应于面部对象面向摄影设备130的右侧或基本上右侧的开始位置,其中眼睛完全睁开。在对应于开始图像帧的捕获时间点之前的时间段内,面部对象可以在眼睛完全打开的情况下保持面向摄影设备130的右侧或基本上右侧,在此期间,动作参数保持几乎不变(例如,从图11中所示的点1101到点1102)。随后,面部对象的眼睛的上眼睑从开始位置沿着向下方向移动,在此期间动作参数逐渐减小(例如,从图11中所示的点1102到点1104)。因此,对于开始图像帧,至少两个后续图像帧的第二平均动作参数小于至少两个先前图像帧的第一平均动作参数,并且对应于后续图像帧的至少两个第二动作参数中每个动作参数小于开始图像帧的动作参数。

应当理解的是,以上描述仅出于说明的目的,并不旨在限制本申请的范围。对于本领域的普通技术人员来说,可以根据本申请的描述,做出多种修改和变化。然而,变化和修改不会背离本申请的范围。

图10是根据本申请的一些实施例所示的用于确定结束图像帧的示例性过程的流程图。在一些实施例中,过程1000可以通过存储在只读存储器230或随机存取存储器240中的一组指令(例如,应用程序)来实现。处理器220和/或图4中的模块可以执行指令,并且当执行指令时,处理器220和/或模块可以被配置以执行处理1000。以下所示过程的操作仅出于说明的目的。在一些实施例中,过程1000在实现时可以添加一个或以上未描述的额外操作和/或删减一个或以上此处所描述的操作。另外,如图10所示和下面描述的过程操作的顺序不是限制性的。在一些实施例中,可以基于过程1000来执行操作810。

在1010中,对于开始图像帧之后的候选图像帧,沿着至少两个连续候选图像帧的序列,处理引擎112(例如,识别模块450)(例如,处理器220的处理电路)可以选择候选图像帧之前的至少两个先前图像帧和候选图像帧之后的至少两个后续图像帧。如结合910所描述的,“先前图像帧”是指紧接在候选图像帧之前的连续图像帧,并且“后续图像帧”是指紧接在候选图像帧之后的连续图像帧。

以开始图像帧之后的第j个候选图像帧fj为例(假设开始图像帧是fi),在第j个候选图像帧之前的至少两个先前图像帧可以表示为下面的有序集:

p2=[fj-e,…,fj-2,fj-1]((j-e)>i)(12)

其中p2是指包括至少两个先前图像帧的有序集,以及e是指至少两个先前图像帧的数量。

另外以第j个候选图像帧fj为例,第j个候选图像帧后的至少两个后续图像帧可以表示为下面的有序集:

n2=[fj+1,fj+2,…,fj+f]((j+f)≤m)(13)

其中n2是指包括至少两个后续图像帧的有序集,以及f是指至少两个后续图像帧的数量。

在1020中,基于对应于至少两个先前图像帧的至少两个第三动作参数,处理引擎112(例如,识别模块450)(例如,处理器220的处理电路)可以确定第三平均动作参数。例如,处理引擎112可以根据下面的公式(14)确定第三平均动作参数:

其中,是指第三平均动作参数,以及aj-e是指对应于第(j-e)个候选图像帧的第三动作参数。

在1030中,基于与至少两个后续图像帧对应的至少两个第四动作参数,处理引擎112(例如,识别模块450)(例如,处理器220的处理电路)可以确定第四平均动作参数。例如,处理引擎112可以根据下面的公式(15)确定第四平均动作参数:

其中,是指第四平均动作参数,以及aj+f是指对应于第(j+f)个候选图像帧的第四动作参数。

在1040中,响应于第四平均动作参数大于第三平均动作参数、至少两个第三动作参数中的每一个动作参数小于或等于对应于候选图像帧的动作参数、对应于与候选图像帧相邻的后续图像帧的动作参数大于或等于对应于候选图像帧的动作参数、以及与第一平均动作参数和第四平均动作参数相关的比率小于比率阈值,处理引擎112(例如,识别模块450)(例如,处理器220的处理电路)可以将候选图像帧识别为结束图像帧。

如这里所使用的,与第一平均动作参数和第四平均动作参数相关的比率可以表示为下面的公式(16):

其中r是指与第一平均动作参数和第四平均动作参数相关的比率,是指第一平均动作参数,以及是指第四平均动作参数。

在一些实施例中,比率阈值可以是动作识别系统100的默认设置,或者在不同情况下是可以调节的。例如,比率阈值可以是1.05至1.2范围内的任何值。

如结合550所述,结束图像帧(例如,图11中所示的点1108)对应于或基本上对应于面部对象的眼睛的上眼睑向后移动的结束位置,并且,面部对象可以在眼睛完全打开的情况下保持面向摄影设备130的右侧或基本上右侧。在对应于结束图像帧的捕获时间点之前的时间段内,眼睛的上眼睑沿向上方向移动,在此期间动作参数逐渐增加(例如,从图11中所示的点1106到点1108);在与结束图像帧对应的捕获时间点之后的时间段内,面部对象可以在眼睛完全打开的情况下保持面向摄影设备130的右侧或基本上右侧,在动作参数内保持几乎不变(例如,从图11所示的点1108到点1112)。因此,对于结束图像帧,至少两个后续图像帧的第四平均动作参数大于至少两个先前图像帧的第三平均动作参数,至少两个第三动作参数中的每一个动作参数小于或等于对应于结束图像帧的动作参数,对应于邻近于结束图像帧的后续图像帧(例如,图11中所示的点1109)的动作参数大于或等于对应于结束图像帧的动作参数。

图11是根据本申请的一些实施例所示的指示动作参数的变化过程的示例性曲线的示意图。如图11所示,横轴表示“图像帧”,纵轴表示“动作参数”。

如本申请中其他地方所述,处理引擎112可以识别与面部对象相关的至少两个连续目标图像帧,并且基于至少两个连续目标图像帧,识别眨眼动作的存在。在一些实施例,至少两个连续目标图像帧包括开始图像帧fi、结束图像帧fj、以及具有最小动作参数的中间图像帧fmid。如图11所示,点1102对应于开始图像帧,点1108对应于结束图像帧,点1105对应于中间图像帧。

在眨眼动作期间,如本申请中其他地方所述,面部对象的眼睛的上眼睑沿向下方向从起始位置移动到中间位置,并且沿着向上方向从中间位置移动到结束位置。开始图像帧可以对应于或基本上对应于与面部对象面向摄影设备130的右侧或基本上右侧,并且与眼睛完全打开的时间点相对应的开始位置。如这里所使用的,“基本上对应于”是指面部对象所面向的方向与垂直指向相机装置130的方向之间的角度小于本领域普通人可以识别的阈值。在一些实施例中,开始图像帧的动作参数是固定值,其可以是动作识别系统100的默认设置,或者在不同情况下是可以调节的。

当眼睛的上眼睑沿着向下方向从起始位置移动时,在图像帧中,与眼睛的内部区域相关的多边形的面积逐渐减小,因此与多边形的面积和眼睛的两个端点之间的距离的比率相关的动作参数逐渐减小,例如,如从点1102到点1105的曲线部分所示。

此外,眼睛的上眼睑移动到中间位置(例如,点1105),其中眼睛的上眼睑停止向下移动(或开始向上移动),这对应于眼睛完全闭合的时间点,并且动作参数在时间点是最小的。

随着眼睛的上眼睑沿向上方向从中间位置移动,与眼睛的内部区域相关的多边形面积在图像帧中逐渐增加。因此,与多边形的面积与眼睛的两个端点之间的距离的比率相关的动作参数逐渐增加,例如,如从点1105到点1108的曲线的部分所示。

最后,眼睛的上眼睑移动到与开始位置相同或基本相同的结束位置。如本文所用,“基本上相同”是指面部对象在端部位置处面向的方向与面部对象在开始位置面对的方向之间的角度小于本领域普通人可以识别的角度阈值。

上文已对基本概念做了描述,显然,对于阅读此申请后的本领域的普通技术人员来说,上述发明披露仅作为示例,并不构成对本申请的限制。虽然此处并未明确说明,但本领域的普通技术人员可能会对本申请进行各种修改、改进和修正。该类修改、改进和修正在本申请中被建议,所以该类修改、改进、修正仍属于本申请示范实施例的精神和范围。

同时,本申请使用了特定词语来描述本申请的实施例。例如“一个实施例”、“一实施例”和/或“一些实施例”意指与本申请至少一个实施例相关的某一特征、结构或特性。因此,应当强调并注意的是,本说明书中在不同位置两次或以上提以及的“一实施例”、“一个实施例”或“一替代性实施例”并不一定是指同一实施例。此外,本申请的一个或以上实施例中的某些特征、结构或特点可以进行适当的组合。

此外,本领域的普通技术人员可以理解,本申请的各方面可以通过若干具有可专利性的种类或情况进行说明和描述,包括任何新的和有用的过程、机器、产品或物质的组合,或对其任何新的和有用的改良。相应地,本申请的各个方面可以完全由硬件执行、可以完全由软件(包括韧体、常驻软件、微代码等)执行、也可以由硬件和软件组合执行。以上硬件或软件均可被称为“单元”、“模块”或“系统”。此外,本申请的各方面可以采取体现在一个或以上计算机可读介质中的计算机程序产品的形式,其中计算机可读程序代码包括在其中。

计算机可读信号介质可能包括一个内含有计算机程序代码的传播数据信号,例如在基带上或作为载波的一部分。此类传播信号可以有多种形式,包括电磁形式、光形式等或任何合适的组合形式。计算机可读信号介质可以是除计算机可读存储介质之外的任何计算机可读介质,该介质可以通过连接至一个指令执行系统、装置或设备以实现通信、传播或传输供使用的程序。位于计算机可读信号介质上的程序代码可以通过任何合适的介质进行传播,包括无线电、电缆、光纤电缆、rf等、或任何上述介质的组合。

本申请各方面操作所需的计算机程序码可以用一种或多种程序语言的任意组合编写,包括面向对象程序设计,如java、scala、smalltalk、eiffel、jade、emerald、c++、c#、vb.net,python或类似的常规程序编程语言,如"c"编程语言、visualbasic、fortran2003、perl、cobol2002、php、abap,动态编程语言如python、ruby和groovy或其它编程语言。该程序代码可以完全在用户计算机上运行、或作为独立的软件包在用户计算机上运行、或部分在用户计算机上运行部分在远程计算机运行、或完全在远程计算机或服务器上运行。在后种情况下,远程计算机可以通过任何网络形式与用户计算机连接,比如局域网(lan)或广域网(wan)、或连接至外部计算机(例如通过因特网)、或在云计算环境中、或作为服务使用如软件即服务(saas)。

此外,除非权利要求中明确说明,本申请所述处理元素和序列的顺序、数字字母的使用、或其他名称的使用,并非用于限定本申请流程和方法的顺序。尽管上述披露中通过各种示例讨论了一些目前认为有用的发明实施例,但应当理解的是,该类细节仅起到说明的目的,附加的权利要求并不仅限于披露的实施例,相反,权利要求旨在覆盖所有符合本申请实施例实质和范围的修正和等价组合。例如,虽然以上所描述的系统组件可以通过硬件设备实现,但是也可以只通过软件的解决方案得以实现,如在现有的服务器或移动设备上安装所描述的系统。

同理,应当注意的是,为了简化本申请披露的表述,从而帮助对一个或以上发明实施例的理解,前文对本申请实施例的描述中,有时会将多种特征归并至一个实施例、附图或对其的描述中。然而,本申请的该方法不应被解释为反映所声称的待扫描对象物质需要比每个权利要求中明确记载的更多特征的意图。实际上,实施例的特征要少于上述披露的单个实施例的全部特征。

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