图像识别方法、装置、计算机设备和存储介质与流程

文档序号:18633391发布日期:2019-09-11 21:55阅读:213来源:国知局
图像识别方法、装置、计算机设备和存储介质与流程

本发明涉及计算机技术领域,特别是涉及图像识别方法、装置、计算机设备和存储介质。



背景技术:

随着计算机技术的发展,在很多情况下都需要进行图像识别,识别用户所执行的动作。例如在对用户进行身份验证时,可以要求用户执行眨眼或者张开嘴的动作,以进行活体验证。也可以通过眨眼动作来控制设备例如手机。目前,在对对象进行动作识别时,往往是根据待识别图像与动作图像模板的相似度来确定是否执行了对应的动作,然而,对象的大小以及形状各异,图像识别准确度低。



技术实现要素:

基于此,有必要针对上述动作识别准确度低的问题,提供一种图像识别方法、装置、计算机设备和存储介质。

一种图像识别方法,所述方法包括:从待识别的图像序列中获取当前图像帧;获取所述当前图像帧中目标对象的多个目标特征点分别对应的当前位置数据,根据所述当前位置数据得到第一相对位置数据;获取第二相对位置数据,所述第二相对位置数据根据第一图像帧中,所述目标对象的多个目标特征点分别对应的参考位置数据得到,所述第一图像帧为所述图像序列中,所述当前图像帧的前向图像帧;根据所述第一相对位置数据以及所述第二相对位置数据得到相对位置变化幅度;当所述相对位置变化幅度大于预设变化幅度时,获取所述当前图像帧中所述目标对象对应的光流信息;根据所述目标对象对应的光流信息确定所述目标对象对应的动作识别结果。

一种图像识别装置,所述装置包括:当前图像帧获取模块,用于从待识别的图像序列中获取当前图像帧;第一相对位置数据获取模块,用于获取所述当前图像帧中目标对象的多个目标特征点分别对应的当前位置数据,根据所述当前位置数据得到第一相对位置数据;第二相对位置数据获取模块,用于获取第二相对位置数据,所述第二相对位置数据根据第一图像帧中,所述目标对象的多个目标特征点分别对应的参考位置数据得到,所述第一图像帧为所述图像序列中,所述当前图像帧的前向图像帧;位置变化幅度得到模块,用于根据所述第一相对位置数据以及所述第二相对位置数据得到相对位置变化幅度;光流信息获取模块,用于当所述相对位置变化幅度大于预设变化幅度时,获取所述当前图像帧中所述目标对象对应的光流信息;动作识别结果确定模块,用于根据所述目标对象对应的光流信息确定所述目标对象对应的动作识别结果。

在一些实施例中,所述光流信息获取模块包括:目标图像区域确定单元,用于根据所述当前位置数据,确定所述目标对象对应的目标图像区域;光流信息确定单元,用于获取所述目标图像区域对应的光流信息,作为所述当前图像帧中所述目标对象对应的光流信息。

在一些实施例中,所述光流信息确定单元用于:对所述目标图像区域进行分块,得到多个目标图像块;获取所述目标图像块中的多个目标像素点分别对应的光流信息;根据所述目标像素点对应的光流信息统计得到各个所述目标图像块分别对应的光流统计信息,作为所述当前图像帧中所述目标对象对应的光流信息。

在一些实施例中,所述光流信息确定单元用于:从所述图像序列中获取与所述当前图像帧相隔第二预设帧数的前向图像帧,作为第二图像帧;获取所述目标像素点从所述第二图像帧移动到所述当前图像帧的光流信息,作为所述目标像素点对应的光流信息。

在一些实施例中,所述动作识别结果确定模块用于:将各个所述目标图像块对应的光流信息作为所述目标对象对应的特征,输入到预先训练得到的动作识别机器学习模型中,得到所述目标对象对应的动作识别结果。

在一些实施例中,所述动作识别机器学习模型输出的动作识别结果为动作执行成功或者动作执行失败,所述图像识别装置还包括:活体确定模块,用于当所述动作识别结果为动作执行成功时,确定所述目标对象为活体对应的对象。

在一些实施例中,所述第一相对位置数据获取模块用于:根据所述当前位置数据得到所述目标对象对应的当前张开指数,作为所述第一相对位置数据;所述第二相对位置数据获取模块用于:获取所述第一图像帧中所述目标对象对应的参考张开指数,作为所述第二相对位置数据,所述参考张开指数根据所述参考位置数据得到;所述位置变化幅度得到模块用于:计算所述当前张开指数与所述参考张开指数的差异,得到所述相对位置幅度。

在一些实施例中,所述目标特征点包括所述目标对象上部分对应的第一特征点以及下部分对应的第二特征点,所述第一相对位置数据获取模块用于:根据所述第一特征点的当前位置数据,计算所述第一特征点距离预设的水平线的距离,得到第一距离;根据所述第二特征点的当前位置数据,计算所述第二特征点距离预设的水平线的距离,得到第二距离;根据所述第一距离以及第二距离计算得到所述目标对象对应的当前张开指数。

在一些实施例中,所述目标对象包括眼睛,所述相对位置变化幅度包括所述当前张开指数与所述参考张开指数的差异,所述光流信息获取模块用于:当所述当前张开指数小于第一预设张开指数阈值,且所述当前张开指数与所述参考张开指数的差异大于第一预设差异阈值时,获取所述当前图像帧中所述目标对象对应的光流信息。

在一些实施例中,所述第一相对位置数据获取模块用于:从与所述当前图像帧相隔第一预设帧数内的前向图像帧中,获取张开指数最大的图像帧对应的张开指数,作为所述目标对象对应的参考张开指数。

在一些实施例中,所述目标对象包括嘴巴,所述相对位置变化幅度包括所述当前张开指数与所述参考张开指数的差异,所述光流信息获取模块用于:当所述当前张开指数大于第二预设张开指数阈值,且所述当前张开指数与所述参考张开指数的差异大于第二预设差异阈值时,获取所述当前图像帧中所述目标对象对应的光流信息。

一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行上述图像识别方法的步骤。

一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行上述图像识别方法的步骤。

上述图像识别方法、装置、计算机设备和存储介质,根据当前图像帧中特征点之间的第一相对位置数据,以及前向图像帧中特征点之间的第二相对位置数据计算得到相对位置变化幅度,相对位置变化幅度表示目标对象从前向图像帧到当前图像帧,特征点之间的相对位置的变化大小,而目标对象的光流信息可以表示当前图像帧中,目标对象对应的像素点的运动情况,因此根据特征点相对位置的变化大小以及像素运动信息能够准确识别目标对象所执行的动作,图像识别准确度高。而且在当相对位置变化幅度满足预设变化幅度时,再获取当前图像帧中目标对象对应的光流信息,也能够减少根据光流信息确定动作识别结果的图像帧的数量,减少了数据处理量,提高了图像识别效率。

附图说明

图1为一些实施例中提供的图像识别方法的应用环境图;

图2为一些实施例中图像识别方法的流程图;

图3a为一些实施例中第一对象在当前图像帧的当前位置的示意图;

图3b为一些实施例中第一对象在前向图像帧的当前位置的示意图;

图4为一些实施例中人脸中各个关键点的标注示意图;

图5为一些实施例中目标对象特征点的示意图;

图6为一些实施例中获取当前图像帧中目标对象对应的光流信息的流程图;

图7为一些实施例中获取目标图像区域对应的光流信息,得到当前图像帧中目标对象对应的光流信息的流程图;

图8为一些实施例中实施图像识别方法的示意图;

图9为一些实施例中实施图像识别方法的示意图;

图10为一些实施例中图像识别装置的结构框图;

图11为一些实施例中计算机设备的内部结构框图;

图12为一些实施例中计算机设备的内部结构框图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

可以理解,本申请所使用的术语“第一”、“第二”等可在本文中用于描述各种元件,但除非特别说明,这些元件不受这些术语限制。这些术语仅用于将第一个元件与另一个元件区分。举例来说,在不脱离本申请的范围的情况下,可以将第一图像帧称为第二图像帧,且类似地,可将第二图像帧称为第一图像帧。

图1为一些实施例中提供的图像识别方法的应用环境图,如图1所示,在该应用环境中,包括终端110以及服务器120。当需要进行动作识别时,例如在进行活体验证时,终端110可以利用摄像头进行拍摄,获取待进行动作识别的图像序列,发送到服务器120中,服务器120执行本发明实施例提供的图像识别方法,得到目标对象例如眼睛的动作识别结果,例如动作识别结果可以为眨眼或者未眨眼。当动作识别结果为执行了对应的动作例如眨眼时,则服务器120可以确定该动作为具有生命的物体即活体自己所执行的眨眼动作,活体检测通过。

本发明实施例提供的图像识别方法还可以应用于动作控制中,例如进行眨眼动作识别,以确定动作执行者如人发出的指令,通过指令指示设备执行相应的操作。

本发明实施例提供的图像识别方法还可以是在终端110上执行的。

服务器120可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群,可以是提供云服务器、云数据库、云存储和cdn等基础云计算服务的云服务器。终端110可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能手表、银行取款机等,但并不局限于此。终端110以及服务器120可以通过网络等通讯连接方式进行连接,本发明在此不做限制。

如图2所示,在一些实施例中,提出了一种图像识别方法,本实施例的图像识别方法可以应用于上述图1中的终端110或服务器120。具体可以包括以下步骤:

步骤s202,从待识别的图像序列中获取当前图像帧。

具体地,图像序列是由多个图像帧按照顺序排列组成的。在接收到拍摄指令时,终端拍摄视频,得到视频流。一张图像为一帧。“多个”是指至少两个。图像序列中图像帧的个数根据具体情况可以有不同的个数,例如,拍摄得到的视频流可以是3秒的长度,也可以是5秒的长度。当前图像帧是图像序列中的图像帧,例如,可以按照时间顺序从图像序列中依次获取图像帧作为当前图像帧。

在一些实施例中,可以根据预设的规则从图像序列中过滤图像帧,从过滤后得到的图像序列中获取当前图像帧。例如,可以过滤掉图像序列中模糊的图像帧,可以过滤不存在人物的图像帧。也可以从图像序列中过滤存在抖动的图像帧,当对人脸中的眼睛或者嘴巴进行动作识别时,过滤人脸在移动的图像帧。

在一些实施例中,可以从当前图像帧中获取进行位置比较的第一对象的当前位置,从当前图像帧的前向图像帧中获取第一对象的位置,作为参考位置。根据第一对象的当前位置以及第一对象的参考位置计算得到第一对象在当前图像帧与前向图像帧中的位置重合度,根据位置重合度进行图像过滤。例如当位置重合度小于预设重合度时,则说明当前图像帧中第一对象移动幅度过大,过滤该当前图像帧,减少由于第一对象移动或者晃动太厉害,导致动作识别不准确的情况发生。其中,图像序列的图像帧是按照时间顺序依次排序的,当前图像帧的前向图像帧是指在图像序列中,在当前图像帧之前的图像帧。位置重合度用于表示位置重合的程度,位置重合度越高,则表示位置重合的程度越高。第一对象可以根据需要进行选择,目标对象在第一对象上,例如第一对象可以是人脸,目标对象可以是眼睛。预设重合度可以根据需要设置,例如可以是0.9。通过位置重合度,可以准确确定第一对象在一定时间内是否进行了大幅度的移动,从而可以过滤掉第一对象处于不稳定状态例如晃动或者大幅移动时拍摄的图像帧。例如,对于人脸,如果前后两个图像帧中人脸的位置的重合度小,则说明人脸在大幅移动,可能存在故意移动人脸,以模拟目标对象如眼睛的眨眼动作的攻击行为,故可以不根据当前图像帧进行动作识别。

在一些实施例中,位置重合度可以根据第一面积以及第二面积的比值得到。第一面积为第一对象在当前图像帧与前向图像帧中的重合面积,即位置的交集对应的面积。第二面积为第一对象在当前图像帧与前向图像帧的位置的并集所占的面积。位置重合度的计算方法可以用公式(1)表示,“i”表示位置重合度,area表示求面积,a指第一对象在当前图像帧的当前位置,b指第一对象在前向图像帧的参考位置。“∩”指求交集,“∪”指求并集。如图3a所示,存在斜线的框a表示第一对象在当前图像帧中的位置。如图3b所示,存在斜线的框b表示第一对象在前向图像帧中的位置。图3a以及3b中一个格子表示一个像素点,根据图3a以及3b可以得到,a与b重合的部分即交集共占6个像素点(第5行第4列至第6行第6列之间的像素点)。a和b的并集共占18个像素点,则位置重合度为6/18=0.33。

i=area(a∩b)/area(a∪b)(1)

在一些实施例中,获取第一对象的参考位置是从与当前图像帧的间隔小于预设间隔的前向图像帧中获取的,预设间隔可以根据需要设置,例如为2。又例如,第一对象的参考位置可以是从当前图像帧相邻的前向图像帧中获取的。

在一些实施例中,可以结合多个图像帧中第一对象对应的位置重合度过滤第一对象在不稳定状态如抖动或者移动时拍摄的图片。例如可以过滤人脸移动幅度过大的情况下拍摄得到的图像帧。在一些实施例中,可以设置包括多个连续的图像帧的窗口,例如6个图像帧。计算窗口内第一对象在各个图像帧中与其前向图像帧的位置重合度,当窗口中各个图像帧对应的位置重合度均大于预设重合度时,则可以认为该窗口对应的图像帧是在第一对象处于稳定状态时拍摄的。否则认为该窗口对应的图像帧在第一对象处于不稳定状态时拍摄的,需要过滤该窗口内的图像帧,即过滤第一对象处于不稳定状态下拍摄的图像帧,不用于进行动作识别,这样可以过滤掉在某一个时间段内拍摄的图像帧。举个例子,假设窗口内有4帧图像帧,则可以计算第1帧与第2帧中第一对象的位置重合度,第2帧与第3帧中第一对象的位置重合度,第3帧与第4帧中第一对象的位置重合度,如果这三个重合度均大于0.9,则可以认为窗口内的图像帧是第一对象处于稳定状态时拍摄的。如果这三个重合度有一个或多个不大于0.9,则可以认为窗口内的图像帧是第一对象处于不稳定状态时拍摄的,需要过滤该窗口内的图像帧。

在一些实施例中,也可以是当窗口中n个图像帧对应的位置重合度均大于预设重合度时,则认为该窗口内的图像帧中的第一对象处于稳定状态。n大于等于2。

步骤s204,获取当前图像帧中目标对象的多个目标特征点分别对应的当前位置数据,根据当前位置数据得到第一相对位置数据。

具体地,目标对象是指需要进行动作识别的目标主体。例如可以包括眼睛以及嘴巴的至少一个。特征点是目标对象上的位置点,也可以称为关键点。特征点的选择可以根据需要进行设置。例如对于眼睛,可以将眼睛的两个眼角上的位置点、眼睛上眼皮中间的位置点、眼睛下眼皮中间的位置点、瞳孔中心点作为特征点。对于嘴巴,可以将嘴巴的两个嘴角上的位置点、上嘴唇中间的位置点、下嘴唇中间的位置点作为特征点。

在一些实施例中,特征点可以是用特征点识别机器学习模型得到的。例如,可以将图像帧输入到特征点识别机器学习模型中,由特征点识别机器学习模型识别输出各个特征点的位置。以人脸图像为例,将包含人脸的图像帧输入到人脸关键点定位(faciallandmarklocalization)模型中,可以得到人脸中各个部位的关键点。如图4所示,为人脸中各个关键点的标注示意图。例如,关键点37~48为眼睛的关键点。关键点28到36为鼻子的关键点,关键点49到68为嘴巴的关键点。

当前位置数据表示当前图像帧中目标特征点的位置,相对位置数据表示特征点之间的相对位置,用于说明特征点之间的位置关系。第一相对位置数据表示当前图像帧中目标特征点之间的相对位置。例如,可以用特征点之间的距离来表示特征点的相对位置。以眼睛为例,当识别眨眼动作时,相对位置数据可以包括上眼皮的特征点与下眼皮的特征点之间的距离。以嘴巴为例,当识别张嘴动作时,相对位置数据可以包括上嘴唇的特征点与下嘴唇的特征点之间的距离。

在一些实施例中,可以是计算任意两个目标特征点之间的相对位置数据,也可以是计算多组目标特征点之间的相对位置数据。例如,假设有三个目标特征点,h1、h2以及h3。可以计算特征点h1到特征点h2的距离,以及h1到h3的距离。在一些实施例中,对于眼睛,可以用上眼皮的特征点距离预设的水平线的距离,以及下眼皮的特征点距离预设的水平线的距离得到特征点之间的相对位置数据,例如,可以是对这两个距离进行求和计算,根据求和计算结果得到相对位置数据。预设的水平线可以是经过眼睛的中心点的水平线。由于上眼皮的特征点与下眼皮的特征点在垂直方向上不一定是一一对应的,例如上眼皮的中间位置的特征点与下眼皮的中间位置的特征点可能并不是垂直的,因此,通过引入水平线,根据上眼皮的特征点距离预设的水平线的距离,以及上眼皮的特征点距离预设的水平线的距离得到相对位置数据,能够提高相对位置数据的准确度。

在一些实施例中,对于嘴巴,可以用上嘴唇的特征点距离预设的水平线的距离,以及下嘴唇的特征点距离预设的水平线的距离得到相对位置数据,例如,可以是对这两个距离进行求和计算,根据求和计算结果得到相对位置数据。预设的水平线可以是经过嘴巴的中心点的水平线。

在一些实施例中,目标对象为可以张开以及关闭的对象,可以包括上下两部分,通过这两部分的运动张开以及关闭。例如目标对象可以包括眼睛或者嘴巴中的至少一个,嘴巴包括上嘴唇以及下嘴唇,眼睛包括上眼皮以及下眼皮。可以根据目标特征点的当前位置得到目标对象对应的当前张开指数,作为第一相对位置数据。张开指数用于表示对象张开的程度,张开指数越大,则目标对象张开的越大。目标特征点包括目标对象上部分对应的第一特征点以及下部分对应的第二特征点,可以根据位于目标对象上部分的第一特征点的当前位置数据,计算第一特征点距离预设的水平线的距离,以及位于目标对象下部分的第二特征点的当前位置数据,计算第二特征点距离预设的水平线的距离,根据这两个距离计算得到张开指数。例如,可以是对这两个距离进行求和计算,将求和计算结果除以目标对象的宽度,得到张开指数。由于不同的人对应的目标对象如眼睛的大小不一样,而综合目标对象的宽度计算得到张开指数,即以目标对象的宽度为基准计算得到张开指数,可以使得张开指数的判断标准适用于不同的人对应的目标对象。

以目标对象为眼睛为例,可以计算眼睛上眼皮的特征点与眼睛下眼皮的特征点的距离之和,除以眼睛的宽度,得到张开指数。可以采用公式(2)计算得到目标对象的张开指数。其中“x”是指进行叉乘,“||e||2”表示求向量的二范数,即求向量的模,e表示任意的向量,例如向量a、向量a×b、向量a×c等,上标“2”表示求平方,lopen表示张开指数。向量a、b以及c所表示的意义如图5所示。其中a是指起点为特征点0,终点为特征点400的向量,b是指起点为特征点0,终点为特征点600的向量,c是指起点为特征点0,终点为特征点200的向量。当目标对象为眼睛时,特征点0以及400为一个眼睛左右两个眼角位置的特征点,特征点600为上眼皮的中间点,特征点200为下眼皮的中间点。当目标对象为嘴巴时,特征点0以及400为嘴角位置的特征点,特征点600为上嘴唇的中间点,特征点200为下嘴唇的中间点。

以眼睛为例,关于公式(2)的推导原理说明如下:预设的水平线是经过眼睛的中心点的水平线,上眼皮的特征点600距离预设的水平线的距离为d1,以及下眼皮的特征点200距离预设的水平线的距离为d2,d1的计算公式可以用公式(3)表示,d2的计算公式可以用公式(4)表示,其中θ1表示向量a与b的夹角,θ2表示向量a与c的夹角。张开指数为d1与d2之和除以a的长度,用公式(5)表示,故把公式(3)、(4)代入公式(5),可以推导得到公式(2)。

步骤s206,获取第二相对位置数据,第二相对位置数据根据第一图像帧中,目标对象的多个目标特征点分别对应的参考位置数据得到,第一图像帧为图像序列中,当前图像帧的前向图像帧。

具体地,第二图像帧为位置参考图像帧,位置参考图像帧是用于参考,以确定目标特征点的相对位置变化幅度的图像帧,以位置参考图像帧中目标特征点之间的相对位置作为参考,得到相对位置变化数据。第二图像帧是前向图像帧,即位于当前图像帧之前的图像帧。例如,假设当前图像帧是图像序列的第10帧,则可以获取第8帧作为位置参考图像帧。第二相对位置数据是在参考图像帧中,目标特征点之间的相对位置数据,第一相对位置数据与第二相对位置数据的计算方法一致。因此第二相对位置数据的计算方法可以参考第一相对位置数据的计算方法,在此不再赘述。

在一些实施例中,可以获取第一图像帧中,目标对象对应的张开指数,作为参考张开指数,参考张开指数根据目标特征点在第一图像帧的参考位置数据得到。第二相对位置数据可以是在计算第一相对位置数据之前已经计算得到,例如,当第一图像帧为当前图像帧时,可以计算得到相对位置数据。举个实际的例子,假设图像序列中包括100帧。则在将第96帧作为当前图像帧时,已经计算得到第96帧对应的相对位置数据。在将第100帧作为当前图像帧时,可以计算得到第100帧对应的相对位置数据,并将第96帧对应的相对位置数据作为第二相对位置数据。

在一些实施例中,第一图像帧是与当前图像帧相隔第一预设帧数内的前向图像帧。第一预设帧数可以根据需要设置,例如与要识别的动作的执行时长匹配,执行时间长,则第一预设帧数大。当目标对象为眼睛,要识别的动作为眨眼时,第一预设帧数可以为9帧,这样可以使得得到的相对位置变化幅度数据更满足动作识别的需要,动作识别效果好。相隔第一预设帧数内是指第一图像帧与当前图像帧之间间隔的图像帧数量在第一预设帧数之内。

步骤s208,根据第一相对位置数据以及第二相对位置数据得到相对位置变化幅度。

具体地,相对位置变化幅度用于表示从位置参考图像帧到当前图像帧,特征点之间的相对位置的变化。变化幅度大,则表示相对位置变化大。相对位置变化幅度是根据第一相对位置数据以及第二相对位置数据的差异得到的。例如可以是计算第二相对位置数据与第一相对位置数据之差,也可以是计算第二相对位置数据与第一相对位置数据的比值。在计算相对位置变化幅度时,如果是计算第二相对位置数据与第一相对位置数据之差,则可以用两者之间大的数值减去小的数值,得到相对位置变化幅度。如果是计算第二相对位置数据与第一相对位置数据比值,则可以用两者之间大的数值除以小的数值,得到相对位置变化幅度。

在一些实施例中,当相对位置用张开指数进行衡量时,根据第一相对位置数据以及第二相对位置数据得到相对位置变化幅度包括:计算当前张开指数与参考张开指数的差异,得到相对位置幅度。

步骤s210,当相对位置变化幅度大于预设变化幅度时,获取当前图像帧中目标对象对应的光流信息。

具体地,光流信息用于表示图像帧之间,像素的移动情况,光流信息可以用光流矢量表示。可以利用图像序列中的像素强度数据的时域变化和相关性来确定像素位置的运动,得到各个像素点的运动速度,作为光流信息。可以获取从光流参考图像帧到当前图像帧之间目标对象对应的光流信息,作为当前图像帧中目标对象对应的光流信息。光流信息的计算方法例如可以是基于梯度的方法、基于匹配的方法、基于能量的方法、基于相位的方法。例如可以是lucas-kanade计算方法,该计算方法假设在一个一定的空间邻域内运动矢量保持恒定,使用加权最小二乘法估计光流。光流的计算方法方法还可以使用稠密光流提取方法,也可以基于深度学习的flownet(光流神经网络)来进行光流的提取。flownet可以利用卷积神经网络预测光流信息,可以将光流预测问题建模为有监督的深度学习问题。

预设变化幅度可以根据需要设置,例如,当预设变化幅度用第二相对位置数据与第一相对位置数据之间的比值确定时,可以为1.35。当预设变化幅度用第二相对位置数据与第一相对位置数据之间的差值确定时,可以为0.6。当相对位置变化幅度大于预设变化幅度时,获取当前图像帧中目标对象对应的光流信息。否则,则不执行获取当前图像帧中目标对象对应的光流信息的步骤,判定动作识别结果为未执行相应的动作。

在一些实施例中,第一图像帧可以是与当前图像帧相隔第一预设帧数内的前向图像帧之中,张开指数最大或者最小的图像帧。当目标对象为眼睛时,从与当前图像帧相隔第一预设帧数内的前向图像帧中,获取张开指数最大的图像帧对应的张开指数,作为目标对象对应的参考张开指数。当目标对象为嘴巴时,从与当前图像帧相隔第一预设帧数内的前向图像帧中,获取张开指数最小的图像帧对应的张开指数,作为目标对象对应的参考张开指数。例如,当目标对象为眼睛,假设当前图像帧是图像序列的第10帧,图像序列的第5帧到第9帧中,张开指数最大的是第6帧,则获取第6帧的张开指数,作为目标对象对应的参考张开指数。因为对于眼睛,由于人在进行眨眼动作之前,正常情况都是睁开了眼睛的,因此可以把眨眼看成是包括一个从张开眼睛到闭上眼睛的过程。因此可以认为如果当前图像帧是闭上眼睛时拍摄的图像帧,且如果第一预设帧数内,存在张开眼睛时拍摄的图像,则说明存在从张开眼睛到闭上眼睛的过程,可以初步判定存在眨眼的动作,因此获取张开指数最大的图像帧作为位置参考图像帧。对于嘴巴,由于人在进行张嘴动作之前,正常情况都是闭着嘴巴的,因此可以把张嘴动作看成是包括一个从闭上嘴巴到张开嘴巴的过程。因此可以认为如果当前图像帧是张开嘴巴时拍摄的图像帧,且如果第一预设帧数内,存在闭上嘴巴时拍摄的图像,则说明存在从闭上嘴巴到张开嘴巴的过程,可以初步判定存在张嘴的动作,因此获取张开指数最小的图像帧作为位置参考图像帧。从张开到闭合,或者从闭合到张开,相对位置变化幅度大,当相对位置变化幅度大于预设变化幅度时,可以初步判断执行了相应的动作,故可以进一步获取光流信息进行进一步的动作识别。

在一些实施例中,在获取光流参考图像帧时,可以从图像序列中获取与当前图像帧相隔第二预设帧数的前向图像帧,作为光流参考图像帧,也可以称为第二图像帧。计算从第二图像帧到当前图像帧,目标对象的光流信息。第二预设帧数例如可以为5。

在一些实施例中,可以将目标对象对应的图像区域进行分块,分为多个图像块,计算各个图像块对应的光流信息,作为目标对象对应的光流信息。

在一些实施例中,还可以结合其他信息来判断是否执行获取当前图像帧中目标对象对应的光流信息的步骤。例如,根据当前张开指数的大小进行判断。

在一些实施例中,目标对象包括眼睛,当相对位置变化幅度大于预设变化幅度时,获取当前图像帧中目标对象对应的光流信息包括:当当前张开指数小于第一预设张开指数阈值,且当前张开指数与参考张开指数的差异大于第一预设差异阈值时,获取当前图像帧中目标对象对应的光流信息。

具体地,第一预设张开指数阈值可以根据经验设置,第一预设张开指数阈值为闭眼对应的最大张开指数阈值,例如可以为0.35。第一预设差异阈值可以根据需要设置,例如可以为1.6。判断条件可以如(6)所示。其中,lmopaexn表示与当前图像帧相隔第一预设帧数内的前向图像帧中,最大的张开指数,例如可是前9帧中最大的张开指数。t1表示第一预设张开指数阈值,即闭眼时最大的张开指数阈值,t2表示第一预设差异阈值。当第一个条件为真时,即当前张开指数小于第一预设张开指数阈值时,可以认为在当前图像帧中,眼睛处于闭眼状态。当第二条件为真时,即参考张开指数与当前张开指数的比值大于第二预设差异阈值时,可以认为前向图像帧中,存在处于睁开眼睛状态的图像帧。故当两个条件均满足时,可以认为完成了眨眼的动作。

在一些实施例中,目标对象包括嘴巴,当相对位置变化幅度大于预设变化幅度时,获取当前图像帧中目标对象对应的光流信息包括:当当前张开指数大于第二预设张开指数阈值,且当前张开指数与参考张开指数的差异大于第二预设差异阈值时,获取当前图像帧中目标对象对应的光流信息。

具体地,第二预设张开指数阈值可以根据经验设置,第二预设张开指数阈值为张开嘴巴对应的最小张开指数阈值,例如可以为0.8。第二预设差异阈值可以根据需要设置,例如可以为1.50。判断条件可以如(7)所示。其中,lmopinen表示与当前图像帧相隔第一预设帧数内的前向图像帧中,最小的张开指数,t3表示第二预设张开指数阈值,t4表示第二预设差异阈值。当第一个条件为真时,即当前张开指数大于第二预设张开指数阈值时,可以认为在当前图像帧中,嘴巴处于张开状态。当第二条件为真时,即当前张开指数与参考张开指数的比值大于第二预设差异阈值时,可以认为前向图像帧中,存在处于闭上嘴巴状态的图像帧。故当两个条件均满足时,可以认为完成了张嘴的动作。

步骤s212,根据目标对象对应的光流信息确定目标对象对应的动作识别结果。

具体地,动作识别结果可以为已执行对应的动作或者为未执行对应的动作。例如,假设目标对象为眼睛,则动作识别结果可以为已眨眼或者未眨眼。假设目标对象为嘴巴,则动作识别结果可以为已张嘴或者未张嘴。在根据光流信息确定目标对象对应的动作识别结果时,可以将光流信息作为特征,输入到动作识别机器学习模型中,由动作识别机器学习模型输出动作识别结果。动作识别机器学习模型是预先训练得到的机器学习模型,可以采用有监督的训练方法,例如采用训练样本对动作识别机器学习模型进行训练,根据训练样本中的实际动作识别结果与动作识别机器学习模型预测得到的动作识别结果的差异得到模型损失值,朝着模型损失值下降的方向调整模型参数,最终得到动作识别结果。也可以根据光流信息确定运动的方向,例如,对于眨眼动作,如果像素运动的方向为向下运动,则确定动作识别结果为眨眼。对于张嘴动作,如果像素运动的方向为向上运动,则确定动作识别结果为张嘴。

在一些实施例中,还可以获取图像帧的其他信息作为特征,输入到动作识别机器学习模型中,例如可以获取图像帧的纹理信息以及颜色信息作为特征。

在一些实施例中,动作识别机器学习模型可以是svm(supportvectormachine,支持向量机)模型,也可以采用深度学习模型输出动作识别结果,例如动作识别机器学习模型可以是基于googlenet、densenet(密集连接卷积网络)、mobilenet、mobilenetv2或者resnet(residualneuralnetwork,残差网络)中的至少一种的机器学习模型。mobilenet基于一种流线型结构使用深度可分离卷积来构造轻型权重的深度神经网络。

在一些实施例中,可以依次从图像序列中获取图像帧作为当前图像帧,以进行动作识别,直至确定动作识别结果为执行了相应的动作时,例如执行了眨眼动作时,可以停止执行从图像序列中获取图像帧作为当前图像帧的步骤,当然也可以继续执行从图像序列中获取图像帧作为当前图像帧的步骤。例如,在进行活体识别时,如果根据当前图像帧进行动作识别,动作识别结果为已眨眼,则可以确定为活体,不再执行从图像序列中获取图像帧作为当前图像帧的步骤。

本发明实施例提供的图像识别方法,根据当前图像帧中特征点之间的第一相对位置数据,以及前向图像帧中特征点之间的第二相对位置数据计算得到相对位置变化幅度,相对位置变化幅度表示目标对象从前向图像帧到当前图像帧,特征点之间的相对位置的变化大小,而目标对象的光流信息可以表示当前图像帧中,目标对象对应的像素点的运动情况,因此根据特征点相对位置的变化大小以及像素运动信息能够准确识别目标对象所执行的动作,图像识别准确度高。而且在当相对位置变化幅度满足预设变化幅度时,再获取当前图像帧中目标对象对应的光流信息,也能够减少根据光流信息确定动作识别结果的图像帧的数量,减少了数据处理量,提高了动作识别效率。

在一些实施例中,目标对象可以有多个,例如目标对象可以为左眼,也可以为右眼,也可以是左眼和右眼。当目标对象包括左眼和右眼时,可以是其中的一只眼睛进行了眨眼则活体检测通过,也可以是两只眼睛都进行了眨眼则活体检测通过。

在一些实施例中,如图6所示,步骤s210即获取当前图像帧中目标对象对应的光流信息的步骤具体可以包括以下步骤:

步骤s602,根据当前位置数据,确定目标对象对应的目标图像区域。

具体地,目标图像区域是图像帧中目标对象所在的图像区域。可以利用特征点检测模型检测到当前图像帧中目标对象对应的特征点的当前位置,根据特征点的位置确定目标图像区域,例如可以将包括目标对象对应的各个目标特征点的矩形框对应的区域,作为目标图像区域。

步骤s604,获取目标图像区域对应的光流信息,作为当前图像帧中目标对象对应的光流信息。

具体地,将目标图像区域对应的光流信息,作为当前图像帧中目标对象对应的光流信息。例如可以获取当前图像帧与光流参考图像帧之间,目标图像区域的像素点的光流信息。光流信息可以用运动特征向量表示,可以通常包括沿水平方向和竖直方向的运动分量。

在一些实施例中,可以对目标图像区域中各个像素点的光流信息进行统计,得到光流统计信息,例如光流信息的方差或者平均值中的一个或多个。

在一些实施例中,如图7所示,步骤s604即获取目标图像区域对应的光流信息,得到当前图像帧中目标对象对应的光流信息包括以下步骤:

步骤s702,对目标图像区域进行分块,得到多个目标图像块。

具体地,目标图像块的个数可以根据需要设置,例如可以是10块。在进行分块时,可以是平均分块,也可以不是平均分块。例如,当目标对象为眼睛时,可以将眼睛所在的区域平均分为9个图像块。

步骤s704,获取目标图像块中的多个目标像素点分别对应的光流信息。

具体地,一个目标图像块可以计算多个目标像素点分别对应的光流信息。可以是随机从目标图像块中选取多个目标像素点,也可以按照预设的规则选择目标像素点,例如每隔5个像素点选取1个像素点作为目标像素点,计算各个目标像素点对应的光流信息。

在一些实施例中,获取目标图像块中的多个目标像素点分别对应的光流信息包括:从图像序列中获取与当前图像帧相隔第二预设帧数的前向图像帧,作为第二图像帧;获取目标像素点从第二图像帧移动到当前图像帧的光流信息,作为目标像素点对应的光流信息。

具体地,第二预设帧数可以根据需要设置,例如可以为5。举个实际例子,当当前图像帧为第20帧时,则可以获取第15帧作为第二图像帧。在计算目标像素点的光流信息时,计算目标像素点从第二图像帧移动到当前图像帧的速度。作为各个目标像素点对应的光流信息。可以理解,当对图像序列的图像进行了过滤时,则从图像序列中获取与当前图像帧相隔第二预设帧数的第二图像帧是针对已经过滤了图像帧的图像序列而言的,例如,当图像序列过滤了第15帧,则相隔5帧的图像帧实际为第14帧。

步骤s706,根据目标像素点对应的光流信息统计得到各个目标图像块分别对应的光流统计信息,作为当前图像帧中目标对象对应的光流信息。

具体地,在进行统计时,可以是统计得到平均值、方差或者中位数中的至少一个,因此一个目标图像块可以对应一个或多个光流信息。例如,计算每个图像块中像素点对应的光流信息的均值,作为图像块对应的光流均值。举个实际的例子,假设目标图像块有3个,则可以统计得到第1个目标图像块对应的光流均值以及光流方差、第2个目标图像块对应的光流均值以及光流方差以及第3个目标图像块对应的光流均值以及光流方差。

在一些实施例中,发明人发现,当将光流信息作为特征,输入到动作识别机器学习模型中进行动作识别结果预测时,目标图像块对应的光流信息包括光流方差以及光流均值,动作识别效果好。

在一些实施例中,根据目标对象对应的光流信息确定目标对象的对应的动作识别结果包括:将各个目标图像块对应的光流信息作为目标对象对应的特征,输入到预先训练得到的动作识别机器学习模型中,得到目标对象对应的动作识别结果。

具体地,将目标图像块对应的光流信息作为输入到模型的特征,动作识别机器学习模型利用已训练得到的模型参数对输入的特征进行处理,输出动作识别结果。例如,可以将目标图像块的方差以及平均值组成一组特征数据,输入到动作识别机器学习模型中。在训练动作识别机器学习模型时,可以对用于进行模型训练的训练图像中,目标对象对应的图像区域进行分块处理,得到多个训练图像块,以训练图像块为单位,获取每个训练图像块对应的光流信息,例如光流方差以及光流均值,将一个训练图像对应的光流信息作为训练样本的特征,组合成一个向量,将训练图像对应的动作识别结果作为训练样本的标签,得到训练样本,以进行模型训练,这样,通过识别得到目标对象的图像区域,针对图像区域获取特征,可以减少模型训练时样本的维度。

本发明实施例中,由于目标对象在执行动作时,不同区域对应的像素移动速度可能是不同的,例如在对真人眨眼和模拟眨眼的情况进行进一步分析发现,真人眨眼动作发生时,眼睛不同区域的光流变化是不同的,中间眼睑位置变化的比两侧快,因此,通过对目标对象的目标图像区域进行分块,很好的保留了真人眨眼与模拟眨眼时不同区域光流的差异性,例如眼睛中心区域与两侧光流的差异性,从而提高模型对于真人眨眼以及模拟眨眼的判别能力。

在一些实施例中,动作识别机器学习模型输出的动作识别结果动作执行成功即已执行相应的动作或者动作执行失败,图像识别方法还包括:当动作识别结果为动作执行成功时,确定目标对象为活体对应的对象。

具体地,活体检测能通过眨眼或者张嘴等动作,验证动作是否为真实活体自己执行的,因此可以应用于身份验证场景中,如果动作执行成功,即已执行相应的动作,则确定目标对象为活体对应的对象,例如真实的人的眼睛,如果动作执行失败,则确定目标对象不是活体对应的对象,例如可能是采用虚假的视频进行活体识别。

在一些实施例中,以目标对象包括眼睛为例,结合图8以及图9,对本发明实施例提供的人脸识别方法进行说明,可以包括以下步骤:

1、获取图像序列。

具体地,可以获取一段视频。例如图像序列中可以包括20张图像帧。

2、从图像序列获取当前图像帧,对当前图像帧中的人脸的特征点进行检测。

可以按照顺序将图像序列中的图像帧作为当前图像帧,由于第一张图像帧没有前向图像帧,因此第1张图像帧可以不作为当前图像帧。例如,首先,可以将第2张图像帧作为当前图像帧,当第2张图像帧识别完毕,将第3张图像帧作为当前图像帧。当第3张图像帧识别完毕,将第4张图像帧作为当前图像帧,直至第20张图像帧作为当前图像帧。当然也可以是按照其他规则获取当前图像帧,例如,可以是将排序为偶数的图像帧依次作为当前图像帧。

3、判断当前图像帧中人脸是否存在抖动的情况。

如图8所示,如果是存在抖动,则丢弃该当前图像帧,返回从图像序列获取当前图像帧,对当前图像帧中的人脸的特征点进行检测的步骤,即步骤2,以获取下一个图像帧作为当前图像帧。如果是,则进入步骤4。

4、根据目标特征点的当前位置得到目标对象对应的当前张开指数,获取第一图像帧中目标对象对应的参考张开指数。

例如,当第10张图像帧作为当前图像帧时,则获取第10张图像帧的张开指数作为当前张开指数。第一图像帧为当前图像帧的前9张图像帧内,张开指数最大的图像帧,如果得到第8张图像帧的张开指数最大,则将第8张图像帧中目标对象的张开指数作为参考张开指数。

5、计算当前张开指数与参考张开指数的差异,得到相对位置变化幅度。

例如,可以计算参考张开指数与当前张开指数的比值,作为相对位置变化幅度。

6、判断当前张开指数与参考张开指数的差异是否大于预设差异值。

如图8所示,可以根据眨眼判定条件进行是否眨眼的判断。如果当前张开指数与参考张开指数的差异大于第一预设差异阈值,且当前张开指数小于第一预设张开指数阈值时,则说明当前图像帧中的眼睛处于闭眼状态,且第一图像帧眼睛处于睁眼状态,初步判断存在眨眼动作,进入步骤7。否则返回步骤2。例如,假设参考张开指数与当前张开指数的比值为1.65,第一预设差异阈值为1.55,则当前张开指数与参考张开指数的差异大于第一预设差异阈值,初步判断存在眨眼动作,进入步骤7。

对于初步判断没有眨眼的图像帧,可以进行丢弃,也可以保留预设数量的图像帧,用于作为光流参考图像帧。例如,可以存储当前图像帧之前的5帧图像帧。

7、根据当前位置数据,确定目标对象对应的目标图像区域。

例如,可以将包括各个目标特征点的最小矩形框所对应的区域,作为目标图像区域。

8、对目标图像区域进行分块,得到多个目标图像块,获取目标图像块中的多个目标像素点分别对应的光流信息,根据目标像素点对应的光流信息统计得到各个目标图像块分别对应的光流统计信息,作为当前图像帧中目标对象对应的光流信息。

例如,可以将眼睛所在的区域进行平均分块,得到9块图像块。可以获取各个图像块中像素点对应的光流信息,统计得到每个图像块对应的光流方差以及光流均值,作为光流统计信息。

9、将各个目标图像块对应的光流信息作为目标对象对应的特征,输入到预先训练得到的动作识别机器学习模型中,得到目标对象对应的动作识别结果。

综合图8以及图9所示,在进行图像识别时,可以从图像序列获取当前图像帧,经过特征点检测以及抖动判断后,利用特征点的相对位置变化数据进行眨眼动作的初步判断,如图9所述,特征点检测输出的结果为人脸的特征点位置,包括眼睛的特征点位置。眨眼的初步判断结果可以有多种情况,例如可以为情况1或者情况2。情况2中,第一图像帧中的眼睛处于睁眼状态,当前图像帧的眼睛处于闭眼的状态,则初步判断进行了眨眼动作,因此继续进行光流计算,利用光流信息进一步确认是否进行了眨眼动作。否则,返回获取图像序列中的当前图像帧的步骤,例如情况1中,第一图像帧的眼睛处于睁眼状态,当前图像帧的眼睛也处于睁眼状态,则初步判断没有进行眨眼动作,无需利用光流信息再进行动作识别,因此返回获取图像序列中的当前图像帧的步骤,获取另外一个图像帧作为当前图像帧。在计算得到光流信息后,对目标图像区域进行分块,提取得到各个目标图像块对应的光流统计信息,作为特征,输入到动作识别模型例如svm模型中,svm模型输出的运动识别结果为眨眼或者未眨眼。

本发明实施例提供的图像识别方法可以在进行身份认证时实施,比如,通过人脸身份认证系统,用户可以在应用平台上进行远程开户、远程认证、账户解封申诉等操作。终端可以采集包含目标用户的人脸的视频数据,并将该视频数据传输至服务器,以使服务器可以对图像序列中的人脸进行活体判断。在利用人脸进行身份验证时,可以进行眨眼动作识别,如果没有检测到眨眼动作,则身份认证失败,以避免在有人在他人睡觉时盗用他人账号进行人脸认证,导致账号被盗的情况发生。也可以结合其他方法进行活体检测,例如可以先执行眨眼动作检测,然后再做翻拍检测等其他活体步骤,如果眨眼检测以及翻拍检测通过,则活动检测通过。

本发明实施例的图像识别方法可以应用于进行眨眼动作识别或者张嘴动作识别。以眨眼动作识别为例,可以通过特征点的位置变化与眼部光流的结合进行眨眼动作的判断,以进行活体检测或者利用眨眼动作操作计算机。例如可以利用人脸检测算法检测出视频中的人脸的特征点,然后通过特征点定位到人眼位置,并判断人眼的相对位置变化幅度是否是大于预设变化幅度,如果是,则初步判断存在眨眼动作。对于初步判断存在眨眼动作的当前图像帧,计算出眼部区域的光流信息,将提取到的光流信息利用机器学习模型例如svm(supportvectormachine,支持向量机)分类器进行进一步的眨眼判断。分类器最终的分类结果有两类:眨眼和未眨眼。而未眨眼的分类结果可能是由于以下原因造成的:真人未眨眼、非真人模拟眨眼和非真人未眨眼。对于未眨眼的情况,例如未按照指令要求作出眨眼动作的视频或者被判定为模拟眨眼的视频,则判定为视频攻击。模拟眨眼的情况包括使用各种遮挡物模拟眨眼动作以及移动照片模拟眨眼动作等。

通过对特征点进行检测,并基于特征点相对位置的变化初步得到是否有眨眼动作的存在,不易受头部位置变化以及不同的面部表情的影响,因此能够初步检测到眨眼动作的执行。而且还可以在进行特征点定位的基础上,根据特征点的位置确定眼部对应的目标区域,将眼部位置的图像而不是使用整张脸部图像来计算光流,也进一步地降低了计算量。由于眨眼时,运动方向主要是垂直的,通过特征点的相对位置变化进行眨眼动作的初步判断,当判断出存在眨眼动作时,再利用光流信息进行动作识别,因此解决了利用光流方法进行眨眼检测,将垂直移动头部判断为执行了眨眼动作,造成误检测的问题。

此外,在对真人眨眼和模拟眨眼的情况进行进一步分析发现,真人眨眼动作发生时,眼睛不同区域的光流变化是不同的,中间眼睑位置变化的比两侧快。而对于模拟眨眼动作时,无论从眼部上下进行遮挡还是从左右进行遮挡,都很难模拟这种情况。因此基于光流进行动作识别的方法,也能够检测出用户用手使用遮挡物例如遮挡眼部位置、通过纸片晃动来模拟眨眼的场景,故本发明实施例提供的图像识别方法,实现了效率和准确率结合并且有很好的泛化能力。

如图10所示,在一些实施例中,提供了一种图像识别装置,该图像识别装置可以集成于上述的终端110或者服务器120中,具体可以包括当前图像帧获取模块1002、第一相对位置数据获取模块1004、第二相对位置数据获取模块1006、位置变化幅度得到模块1008、光流信息获取模块1010以及动作识别结果确定模块1012。

当前图像帧获取模块1002,用于从待识别的图像序列中获取当前图像帧。

第一相对位置数据获取模块1004,用于获取当前图像帧中目标对象的多个目标特征点分别对应的当前位置数据,根据当前位置数据得到第一相对位置数据。

第二相对位置数据获取模块1006,用于获取第二相对位置数据,第二相对位置数据根据第一图像帧中,目标对象的多个目标特征点分别对应的参考位置数据得到,第一图像帧为图像序列中,当前图像帧的前向图像帧。

位置变化幅度得到模块1008,用于根据第一相对位置数据以及第二相对位置数据得到相对位置变化幅度。

光流信息获取模块1010,用于当相对位置变化幅度大于预设变化幅度时,获取当前图像帧中目标对象对应的光流信息。

动作识别结果确定模块1012,用于根据目标对象对应的光流信息确定目标对象对应的动作识别结果。

在一些实施例中,光流信息获取模块1010包括:

目标图像区域确定单元,用于根据当前位置数据,确定目标对象对应的目标图像区域。

光流信息确定单元,用于获取目标图像区域对应的光流信息,作为当前图像帧中目标对象对应的光流信息。

在一些实施例中,光流信息确定单元用于:对目标图像区域进行分块,得到多个目标图像块;获取目标图像块中的多个目标像素点分别对应的光流信息;根据目标像素点对应的光流信息统计得到各个目标图像块分别对应的光流统计信息,作为当前图像帧中目标对象对应的光流信息。

在一些实施例中,光流信息确定单元用于:从图像序列中获取与当前图像帧相隔第二预设帧数的前向图像帧,作为第二图像帧;获取目标像素点从第二图像帧移动到当前图像帧的光流信息,作为目标像素点对应的光流信息。

在一些实施例中,动作识别结果确定模块1012用于:将各个目标图像块对应的光流信息作为目标对象对应的特征,输入到预先训练得到的动作识别机器学习模型中,得到目标对象对应的动作识别结果。

在一些实施例中,动作识别机器学习模型输出的动作识别结果为动作执行成功或者动作执行失败,图像识别装置还包括:活体确定模块,用于当动作识别结果为动作执行成功时,确定目标对象为活体对应的对象。

在一些实施例中,第一相对位置数据获取模块1004用于:根据当前位置数据得到目标对象对应的当前张开指数,作为第一相对位置数据;第二相对位置数据获取模块用于:获取第一图像帧中目标对象对应的参考张开指数,作为第二相对位置数据,参考张开指数根据参考位置数据得到;位置变化幅度得到模块用于:计算当前张开指数与参考张开指数的差异,得到相对位置幅度。

在一些实施例中,目标特征点包括目标对象上部分对应的第一特征点以及下部分对应的第二特征点,第一相对位置数据获取模块用于:根据第一特征点的当前位置数据,计算第一特征点距离预设的水平线的距离,得到第一距离;根据第二特征点的当前位置数据,计算第二特征点距离预设的水平线的距离,得到第二距离;根据第一距离以及第二距离计算得到目标对象对应的当前张开指数。

在一些实施例中,目标对象包括眼睛,光流信息获取模块1010用于:当当前张开指数小于第一预设张开指数阈值,且当前张开指数与参考张开指数的差异大于第一预设差异阈值时,获取当前图像帧中目标对象对应的光流信息。

在一些实施例中,第一相对位置数据获取模块1006用于:从与当前图像帧相隔第一预设帧数内的前向图像帧中,获取张开指数最大的图像帧对应的张开指数,作为目标对象对应的参考张开指数。

在一些实施例中,目标对象包括嘴巴,光流信息获取模块1010用于:当当前张开指数大于第二预设张开指数阈值,且当前张开指数与参考张开指数的差异大于第二预设差异阈值时,获取当前图像帧中目标对象对应的光流信息。

图11示出了一些实施例中计算机设备的内部结构图。该计算机设备具体可以是图1中的服务器120。如图11所示,该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,存储器包括非易失性存储介质和内存储器。该计算机设备的非易失性存储介质存储有操作系统,还可存储有计算机程序,该计算机程序被处理器执行时,可使得处理器实现图像识别方法。该内存储器中也可储存有计算机程序,该计算机程序被处理器执行时,可使得处理器执行图像识别方法。

图12示出了一些实施例中计算机设备的内部结构图。该计算机设备具体可以是图1中的终端110。如图12所示,该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、输入装置和显示屏。其中,存储器包括非易失性存储介质和内存储器。该计算机设备的非易失性存储介质存储有操作系统,还可存储有计算机程序,该计算机程序被处理器执行时,可使得处理器实现图像识别方法。该内存储器中也可储存有计算机程序,该计算机程序被处理器执行时,可使得处理器执行图像识别方法。计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。

本领域技术人员可以理解,图11以及12中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

在一些实施例中,本申请提供的图像识别装置可以实现为一种计算机程序的形式,计算机程序可在如图11或12所示的计算机设备上运行。计算机设备的存储器中可存储组成该图像识别装置的各个程序模块,比如,图10所示的当前图像帧获取模块1002、第一相对位置数据获取模块1004、第二相对位置数据获取模块1006、位置变化幅度得到模块1008、光流信息获取模块1010以及动作识别结果确定模块1012。各个程序模块构成的计算机程序使得处理器执行本说明书中描述的本申请各个实施例的图像识别方法中的步骤。

例如,图11或12所示的计算机设备可以通过如图10所示的图像识别装置中的当前图像帧获取模块1002从识别的图像序列中获取当前图像帧。通过第一相对位置数据获取模块1004获取当前图像帧中目标对象的多个目标特征点分别对应的当前位置数据,根据当前位置数据得到第一相对位置数据。通过第二相对位置数据获取模块1006获取第二相对位置数据,第二相对位置数据根据第一图像帧中,目标对象的多个目标特征点分别对应的参考位置数据得到,第一图像帧为图像序列中,当前图像帧的前向图像帧。通过位置变化幅度得到模块1008根据第一相对位置数据以及第二相对位置数据得到相对位置变化幅度。通过光流信息获取模块1010当相对位置变化幅度大于预设变化幅度时,获取当前图像帧中目标对象对应的光流信息。通过动作识别结果确定模块1012根据目标对象对应的光流信息确定目标对象对应的动作识别结果。

在一些实施例中,提供了一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,计算机程序被处理器执行时,使得处理器执行上述图像识别方法的步骤。此处图像识别方法的步骤可以是上述各个实施例的图像识别方法中的步骤。

在一些实施例中,提供了一种计算机可读存储介质,存储有计算机程序,计算机程序被处理器执行时,使得处理器执行上述图像识别方法的步骤。此处图像识别方法的步骤可以是上述各个实施例的图像识别方法中的步骤。

应该理解的是,虽然本发明各实施例的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,各实施例中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。

以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

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