用于识别图像的方法和装置与流程

文档序号:18742311发布日期:2019-09-21 01:55阅读:144来源:国知局
用于识别图像的方法和装置与流程

本公开的实施例涉及计算机技术领域,具体涉及用于识别图像的方法和装置。



背景技术:

图像识别,是指利用计算机对图像进行处理、分析和理解,以识别各种目标和对象的技术。

在人机交互场景下,越来越多的研究者致力于手部的交互技术的研究。相比于其他人体部位,手部自由灵活,在用户的日常生活中担负着大量的交互工作,通过手部完成的操作数不胜数。可见,现有技术中存在识别包含手部对象的图像或视频的语义信息的需求。



技术实现要素:

本公开提出了用于识别图像的方法和装置。

第一方面,本公开的实施例提供了一种用于识别图像的方法,该方法包括:获取目标视频;从目标视频中提取包含手掌对象的两帧视频帧;基于两帧视频帧,识别目标视频对应的手掌的动作是否为抛动作;响应于确定目标视频对应的手掌的动作是抛动作,生成用于指示目标视频对应的手掌的动作是抛动作的识别结果。

在一些实施例中,基于两帧视频帧,识别目标视频对应的手掌的动作是否为抛动作,包括:将两帧视频帧输入至预先训练的识别模型,以确定目标视频对应的手掌的动作是否为抛动作,其中,识别模型用于识别包含所输入的两帧视频帧的视频对应的手掌的动作是否为抛动作。

在一些实施例中,基于两帧视频帧,识别目标视频对应的手掌的动作是否为抛动作,包括:确定两帧视频帧分别对应的手掌的法向量在预先确定的投影平面的投影坐标;基于所确定的两个投影坐标,识别目标视频对应的手掌的动作是否为抛动作。

在一些实施例中,投影平面为视频帧的成像平面;以及基于所确定的两个投影坐标,识别目标视频对应的手掌的动作是否为抛动作,包括:响应于两帧视频帧的投影坐标在预设的第一方向的坐标值之差的绝对值大于或等于预设的第一阈值,并且,两帧视频帧对应的投影坐标在预设的第二方向的坐标值之差的绝对值小于或等于预设的第二阈值,将目标视频对应的手掌的动作识别为抛动作。

在一些实施例中,投影平面为视频帧的成像平面;以及基于所确定的两个投影坐标,识别目标视频对应的手掌的动作是否为抛动作,包括:响应于两帧视频帧的投影坐标在预设的第一方向的坐标值之差的绝对值小于预设的第一阈值,或者,两帧视频帧对应的投影坐标在预设的第二方向的坐标值之差的绝对值大于预设的第二阈值,将目标视频对应的手掌的动作识别为非抛动作。

在一些实施例中,从目标视频中提取包含手掌对象的两帧视频帧,包括:从目标视频中提取包含手掌对象的相邻的两帧视频帧。

在一些实施例中,该方法还包括:响应于生成识别结果,针对目标视频中包含手掌对象的视频帧,将包含饼状物对象的图像与该视频帧进行图像融合,得到与该视频帧相对应的融合后图像,以及采用与该视频帧相对应的融合后图像替代该视频帧进行呈现。

在一些实施例中,将包含饼状物对象的图像与该视频帧进行图像融合,包括:响应于确定该视频帧为目标视频中包含手掌对象的第一帧视频帧,将包含饼状物对象的图像融合于该视频帧中手掌对象的掌心侧且与掌心对象相接触的位置。

第二方面,本公开的实施例提供了一种用于识别图像的装置,该装置包括:获取单元,被配置成获取目标视频;提取单元,被配置成从目标视频中提取包含手掌对象的两帧视频帧;识别单元,被配置成基于两帧视频帧,识别目标视频对应的手掌的动作是否为抛动作;生成单元,被配置成响应于确定目标视频对应的手掌的动作是抛动作,生成用于指示目标视频对应的手掌的动作是抛动作的识别结果。

在一些实施例中,识别单元包括:输入模块,被配置成将两帧视频帧输入至预先训练的识别模型,以确定目标视频对应的手掌的动作是否为抛动作,其中,识别模型用于识别包含所输入的两帧视频帧的视频对应的手掌的动作是否为抛动作。

在一些实施例中,识别单元包括:确定模块,被配置成确定两帧视频帧分别对应的手掌的法向量在预先确定的投影平面的投影坐标;识别模块,被配置成基于所确定的两个投影坐标,识别目标视频对应的手掌的动作是否为抛动作。

在一些实施例中,投影平面为视频帧的成像平面;以及识别模块包括:第一识别子模块,被配置成响应于两帧视频帧的投影坐标在预设的第一方向的坐标值之差的绝对值大于或等于预设的第一阈值,并且,两帧视频帧对应的投影坐标在预设的第二方向的坐标值之差的绝对值小于或等于预设的第二阈值,将目标视频对应的手掌的动作识别为抛动作。

在一些实施例中,投影平面为视频帧的成像平面;以及识别模块包括:第二识别子模块,被配置成响应于两帧视频帧的投影坐标在预设的第一方向的坐标值之差的绝对值小于预设的第一阈值,或者,两帧视频帧对应的投影坐标在预设的第二方向的坐标值之差的绝对值大于预设的第二阈值,将目标视频对应的手掌的动作识别为非抛动作。

在一些实施例中,提取单元包括:提取模块,被配置成从目标视频中提取包含手掌对象的相邻的两帧视频帧。

在一些实施例中,该装置还包括:融合单元,被配置成响应于生成识别结果,针对目标视频中包含手掌对象的视频帧,将包含饼状物对象的图像与该视频帧进行图像融合,得到与该视频帧相对应的融合后图像,以及采用与该视频帧相对应的融合后图像替代该视频帧进行呈现。

在一些实施例中,融合单元包括:融合模块,被配置成响应于确定该视频帧为目标视频中包含手掌对象的第一帧视频帧,将包含饼状物对象的图像融合于该视频帧中手掌对象的掌心侧且与掌心对象相接触的位置。

第三方面,本公开的实施例提供了一种用于识别图像的电子设备,包括:一个或多个处理器;存储装置,其上存储有一个或多个程序,当上述一个或多个程序被上述一个或多个处理器执行,使得该一个或多个处理器实现如上述用于识别图像的方法中任一实施例的方法。

第四方面,本公开的实施例提供了一种用于识别图像的计算机可读介质,其上存储有计算机程序,该程序被处理器执行时实现如上述用于识别图像的方法中任一实施例的方法。

本公开的实施例提供的用于识别图像的方法和装置,通过获取目标视频,然后,从目标视频中提取包含手掌对象的两帧视频帧,之后,基于两帧视频帧,识别目标视频对应的手掌的动作是否为抛动作,最后,响应于确定目标视频对应的手掌的动作是抛动作,生成用于指示目标视频对应的手掌的动作是抛动作的识别结果,由此,可以使得电子设备确定出视频中是否包含执行抛动作的手掌对象,进而,识别出更丰富的手掌姿态信息,有助于实现基于抛动作的人机交互。

附图说明

通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本公开的其它特征、目的和优点将会变得更明显:

图1是本公开的一个实施例可以应用于其中的示例性系统架构图;

图2是根据本公开的用于识别图像的方法的一个实施例的流程图;

图3是根据本公开的用于识别图像的方法的一个应用场景的示意图;

图4是根据本公开的用于识别图像的方法的又一个实施例的流程图;

图5是根据本公开的用于识别图像的装置的一个实施例的结构示意图;

图6是适于用来实现本公开的实施例的电子设备的计算机系统的结构示意图。

具体实施方式

下面结合附图和实施例对本公开作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。

需要说明的是,在不冲突的情况下,本公开中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本公开。

图1示出了可以应用本公开的实施例的用于识别图像的方法或用于识别图像的装置的实施例的示例性系统架构100。

如图1所示,系统架构100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。

用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送数据(例如视频)等。终端设备101、102、103上可以安装有各种客户端应用,例如视频播放软件、新闻资讯类应用、图像处理类应用、网页浏览器应用、购物类应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等。

终端设备101、102、103可以是硬件,也可以是软件。当终端设备101、102、103为硬件时,可以是具有视频拍摄功能的各种电子设备,包括但不限于智能手机、平板电脑、电子书阅读器、MP3播放器(Moving Picture Experts Group Audio Layer III,动态影像专家压缩标准音频层面3)、MP4(Moving Picture Experts Group Audio Layer IV,动态影像专家压缩标准音频层面4)播放器、膝上型便携计算机和台式计算机等等。当终端设备101、102、103为软件时,可以安装在上述所列举的电子设备中。其可以实现成多个软件或软件模块(例如用来提供分布式服务的软件或软件模块),也可以实现成单个软件或软件模块。在此不做具体限定。

服务器105可以是提供各种服务的服务器,例如对终端设备101、102、103发送的视频(例如目标视频)进行处理的后台服务器。后台服务器可以对接收到的视频等数据进行识别等处理,并生成处理结果(例如识别结果)。可选的,上述后台服务器还可以将处理结果反馈给终端设备。作为示例,服务器105可以是云端服务器,也可以是物理服务器。

需要说明的是,服务器可以是硬件,也可以是软件。当服务器为硬件时,可以实现成多个服务器组成的分布式服务器集群,也可以实现成单个服务器。当服务器为软件时,可以实现成多个软件或软件模块(例如用来提供分布式服务的软件或软件模块),也可以实现成单个软件或软件模块。在此不做具体限定。

还需要说明的是,本公开的实施例所提供的用于识别图像的方法可以由服务器执行,也可以由终端设备执行,还可以由服务器和终端设备彼此配合执行。相应地,用于识别图像的装置包括的各个部分(例如各个单元、子单元、模块、子模块)可以全部设置于服务器中,也可以全部设置于终端设备中,还可以分别设置于服务器和终端设备中。

应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。当用于识别图像的方法运行于其上的电子设备在执行该方法的过程中,不需要与其他电子设备进行数据传输时,该系统架构可以仅包括用于识别图像的方法运行于其上的电子设备(例如服务器或终端设备)。

继续参考图2,示出了根据本公开的用于识别图像的方法的一个实施例的流程200。该用于识别图像的方法,包括以下步骤:

步骤201,获取目标视频。

在本实施例中,用于识别图像的方法的执行主体(例如图1所示的服务器或终端设备)可以通过有线连接方式或者无线连接方式从其他电子设备或者本地获取目标视频。

其中,上述目标视频可以是待对其进行手掌动作识别的视频。

作为示例,该目标视频可以是由上述执行主体或者与上述执行主体通信连接的电子设备,对用户的手掌进行拍摄而得到的视频。

可以理解,当目标视频是对用户的手掌进行拍摄而得到的视频时,该目标视频中的部分或者全部视频帧中可以包含手掌对象。其中,手掌对象可以是视频帧(即图像)中呈现的手掌的影像。

步骤202,从目标视频中提取包含手掌对象的两帧视频帧。

在本实施例中,上述执行主体可以从步骤201获取到的目标视频中,提取包含手掌对象的两帧视频帧。

需要说明的是,在该步骤202中,上述执行主体从上述目标视频中所提取的视频帧的数量可以是2,也可以是大于2的任意自然数。本公开的实施例对此不作限定。

可以理解,由于上述执行主体从上述目标视频中所提取的视频帧的数量为大于2的任意自然数时,其必然从目标视频中提取了包含手掌对象的两帧视频帧,因而,上述执行主体从上述目标视频中所提取的视频帧的数量为大于2的任意自然数的方案,也被包含于本公开的实施例所要求保护的技术方案范围之内。

作为示例,上述执行主体可以采用如下方式,来执行该步骤202:

首先,针对目标视频中的视频帧,对该视频帧进行识别,以确定该视频帧是否包含手掌对象,如果该视频帧包含手掌对象,则标记该视频帧。

然后,从所标记的各个视频帧中随机地选取两帧视频帧,或者,从所标记的各个视频帧中随机地选取1帧视频帧,再从该视频中选取与该视频帧间隔预定自然数(例如0,1,2,3等等)视频帧且位于该视频帧之后的视频帧,从而从目标视频中,提取出了包含手掌对象的两帧视频帧。

在本实施例的一些可选的实现方式中,上述执行主体还可以采用如下方式来执行该步骤202:从目标视频中提取包含手掌对象的相邻的两帧视频帧。这里,相邻的两帧视频帧,可以是其间不存在包含手掌对象的视频帧(但其间可以存在不包含手掌对象的视频帧)的两帧视频帧,也可以是其间不存在视频帧(不存在包含手掌对象的视频帧,也不存在不包含手掌对象的视频帧)的两帧视频帧。

作为示例,上述执行主体可以随机地从目标视频中提取包含手掌对象的相邻的两帧视频帧,也可以从目标视频中提取包含手掌对象的、最先出现的相邻的两帧视频帧,即目标视频中包含手掌对象的第一帧视频帧和第二帧视频帧。

可以理解,由于手部的运动较为灵活且运动速度较快,因而,当所提取的两帧视频帧相邻时,相对于所提取的两帧视频帧不一定相邻的情况,本可选的实现方式可以通过预估两帧视频帧中的手掌对象对应的手掌的相对移动距离,从而使得后续步骤能够更准确地识别出手掌的动作是否为抛动作。

步骤203,基于两帧视频帧,识别目标视频对应的手掌的动作是否为抛动作。

在本实施例中,上述执行主体可以基于步骤202中所提取的两帧视频帧,识别步骤201中所获取的目标视频对应的手掌的动作是否为抛动作。其中,目标视频对应的手掌可以是获得目标视频的过程中所拍摄的手掌。

在本实施例的一些可选的实现方式中,上述执行主体可以采用如下方式来执行该步骤203:

将两帧视频帧输入至预先训练的识别模型,以确定目标视频对应的手掌的动作是否为抛动作。其中,识别模型用于识别包含所输入的两帧视频帧的视频对应的手掌的动作是否为抛动作。

作为示例,上述识别模型可以是关联存储有两帧视频帧,以及用于指示包含两帧视频帧的视频对应的手掌的动作是否为抛动作的信息的二维表或数据库。

作为又一示例,上述识别模型也可以是采用机器学习算法,基于训练样本集训练得到的卷积神经网络模型。其中,上述训练样本集中的训练样本可以包括两帧视频帧,以及用于指示包含该两帧视频帧的视频对应的手掌的动作是否为抛动作的信息。

在本实施例的一些可选的实现方式中,上述执行主体也可以采用如下方式来执行该步骤203:

第一步,确定两帧视频帧分别对应的手掌的法向量在预先确定的投影平面的投影坐标。

其中,上述投影平面可以是三维空间内预先确定的任意平面,例如,投影平面可以为平行于视频帧的成像平面(即诸如摄像机等图像获取装置的像平面)的任意平面。投影坐标可以通过第一元素和第二元素表征。其中,第一元素可以是投影坐标在预设的第一方向的坐标值。第二元素可以是投影坐标在预设的第二方向的坐标值。作为示例,投影坐标可以表示为“(x,y)”。其中,x可以是第一元素,y可以是第二元素。手掌的法向量的方向可以是垂直于手掌所在的平面指向手掌的手心侧。手掌的法向量的大小可以是预先确定的数值。作为示例,第一方向可以是投影平面内平行于地面的方向,第二方向可以是投影平面内垂直于地面的方向。

可以理解,由于投影平面为二维平面,因而,投影坐标只需通过第一元素和第二元素两个元素即可表征。然而,在一些情况下,投影坐标还可以通过更多元素来表征。

第二步,基于所确定的两个投影坐标,识别目标视频对应的手掌的动作是否为抛动作。

具体地,上述执行主体可以采用如下方式,执行该第二步:

将所确定的两个投影坐标输入至预先训练的分类模型,生成用于指示该两个投影坐标对应的视频对应的手掌的动作是否为抛动作的判别信息。

其中,上述分类模型可以是采用如下步骤训练得到的:

首先,获取训练样本集。其中,训练样本集中的训练样本包括两个投影坐标,以及用于指示该两个投影坐标对应的视频对应的手掌的动作是否为抛动作的判别信息。其中,对于“两个投影坐标对应的视频”,其中的“两个投影坐标”与“视频”之间,存在如下关系:确定上述“视频”中包含手掌对象的两帧视频帧分别对应的手掌的法向量在预先确定的投影平面的两个投影坐标,即可得到上述“两个投影坐标”。

然后,采用机器学习算法,将上述训练样本集中的训练样本包括的两个投影坐标作为初始模型的输入数据,将与输入的两个投影坐标相对应的判别信息作为初始模型的期望输出数据,确定初始模型是否满足预先确定的训练结束条件,如果满足,则将满足训练结束条件的初始模型确定为分类模型。

其中,初始模型可以包括:卷积层、分类器、池化层等等。训练结束条件可以包括但不限于以下至少一项:训练时间超过预设时长,训练次数超过预设次数,基于实际输出数据和期望输出数据计算得到的预先确定的损失函数的函数值小于预设阈值。这里,上述实际输出数据为将输入数据输入至初始模型后,初始模型经过计算所输出的数据。

在本实施例的一些可选的实现方式中,上述投影平面为视频帧的成像平面。由此,上述执行主体也可以采用如下方式来执行上述第二步:

响应于两帧视频帧的投影坐标在预设的第一方向的坐标值之差的绝对值大于或等于预设的第一阈值,并且,两帧视频帧对应的投影坐标在预设的第二方向的坐标值之差的绝对值小于或等于预设的第二阈值,将目标视频对应的手掌的动作识别为抛动作。

在本实施例的一些可选的实现方式中,上述投影平面为视频帧的成像平面。由此,上述执行主体也可以采用如下方式来执行上述第二步:

响应于两帧视频帧的投影坐标在预设的第一方向的坐标值之差的绝对值小于预设的第一阈值,或者,两帧视频帧对应的投影坐标在预设的第二方向的坐标值之差的绝对值大于预设的第二阈值,将目标视频对应的手掌的动作识别为非抛动作。

在本实施例的一些可选的实现方式中,上述执行主体可以采用如下方式,来生成视频帧(例如所提取的两帧视频帧中的视频帧)对应的投影坐标:

将视频帧输入至预先训练的投影坐标确定模型,得到该视频帧对应的投影坐标。其中,上述投影坐标确定模型可以用于确定输入的视频帧对应的投影坐标。视频帧对应的投影坐标即视频帧中的手掌对象对应的手掌的法向量在预先确定的投影平面的投影坐标。

作为示例,上述投影坐标确定模型可以是采用机器学习算法,基于训练样本集训练得到的模型,也可以是采用几何算法,对视频帧中的手掌对象对应的手掌所在的平面进行法向量计算后,再对所得到的法向量进行投影而得到投影坐标的公式。

示例性的,上述训练样本集中的训练样本包含有视频帧和视频帧对应的投影坐标。在这里,训练样本集中的各个视频帧对应的投影坐标可以是人工标注得到的;也可以是采用如下方式得到的:

首先,获取手掌转动的视频。其中,视频中的每个视频帧中手掌法向量的投影坐标中沿第一方向的坐标值均相同,且每个视频帧中手掌法向量的投影坐标中沿第二方向的坐标值持续变化。投影坐标为手掌法向量在投影平面(例如成像平面)上的投影坐标。手掌转动的视频内容可以反映手掌法向量的变化趋势。这里,可以通过各种设备(例如上述执行主体或者与上述执行主体通信连接的其他电子设备)拍摄手掌转动的视频。其中,在手掌转动的过程中,可以保持旋转方向固定,手掌在沿转轴的方向并没有位移。其中,转轴的方向可以是胳膊所在的方向。例如,手掌与手指展开,保证手掌与手指在同一平面上,手指的方向为竖直方向。当手掌所在平面垂直于屏幕方向时,为手掌的初始位置,然后手掌掌心向屏幕方向旋转,转至手掌所在平面与屏幕平行,继续按照原旋转方向旋转,直至到手掌所在平面再次垂直于屏幕方向,在手掌转动过程中,手掌在竖直方向上没有位移。手掌转动的视频包含多个视频帧。其中,手掌转动视频的每个视频帧中手掌法向量的投影坐标中沿第一方向的坐标值均相同,且该视频的图像中手掌法向量的投影坐标中沿第二方向的坐标值持续变化,其中,持续变化可以理解是持续增大,或者持续的减小。手掌法向量的投影坐标是手掌法向量在投影平面的坐标,投影平面可以是成像平面。采用类似的方法获得另一视频中的每个视频帧中手掌法向量的投影坐标中沿第二方向的坐标值均相同,且每个视频帧中手掌法向量的投影坐标中沿第一方向的坐标值持续变化的投影坐标。这里,上述第一方向和第二方向可以是任意方向。可选的,第一方向所在的直线和第二方向所在的直线可以相垂直。

然后,可以将针对上述视频包含的每个视频帧,以及该视频帧对应的投影坐标组成一个训练样本,进而得到训练样本集。

可以理解,由于人工标注的方法很难对视频帧的投影坐标进行准确的标注,导致训练得到的模型准确度较低,并且人工标注的方法操作麻烦,模型的训练效率较低。因此,采用上述非人工标注的方式得到的训练样本集来训练投影坐标确定模型可以提高模型生成投影坐标的准确度,提高模型的训练效率。

步骤204,响应于确定目标视频对应的手掌的动作是抛动作,生成用于指示目标视频对应的手掌的动作是抛动作的识别结果。

在本实施例中,在确定目标视频对应的手掌的动作是抛动作的情况下,上述执行主体可以生成用于指示目标视频对应的手掌的动作是抛动作的识别结果。

在本实施例的一些可选的实现方式中,在执行步骤204之后,上述执行主体还可以执行如下步骤:

首先,响应于生成识别结果,针对目标视频中包含手掌对象的视频帧,将包含饼状物对象的图像与该视频帧进行图像融合,得到与该视频帧相对应的融合后图像,以及采用与该视频帧相对应的融合后图像替代该视频帧进行呈现。作为示例,上述饼状物对象可以是但不限于:印度飞饼、铁饼等等。

需要说明的是,在呈现融合后图像之前,上述执行主体可以对该融合后图像对应的视频帧进行呈现,也可以不对该融合后图像对应的视频帧进行呈现,在此不作限定。

在本实施例的一些可选的实现方式中,所述将包含饼状物对象的图像与该视频帧进行图像融合,包括:响应于确定该视频帧为所述目标视频中包含手掌对象的第一帧视频帧,将包含饼状物对象的图像融合于该视频帧中手掌对象的掌心侧且与掌心对象相接触的位置。

可以理解,本可选的实现方式可以在包含手掌对象的第一帧视频帧中手掌对象的掌心侧且与掌心对象相接触的位置融合饼状物对象,在该视频帧的后续视频帧中融合饼状物对象的位置与手掌对象所在的位置逐渐增加,以此使得图像融合后得到的视频呈现的效果接近于真实的抛出饼状物的动作。例如,在该视频帧的后续视频帧中融合饼状物对象的位置可以基于预先确定的抛物线图像而确定。由此,丰富了图像处理方式,得到了新的视频以便将其呈现给用户。

在本实施例的一些可选的实现方式中,上述执行主体在执行上述步骤204之后,还可以执行如下步骤:控制目标设备向抛动作对应的抛物线与地面的交点所在的位置移动。其中,上述目标设备可以是各种与上述执行主体通信连接的电子设备,例如移动机器人等。

可以理解,本可选的实现方式可以在识别出目标视频对应的手掌的动作是抛动作的情况下,控制目标设备进行移动,由此实现了基于抛动作识别的人机交互。

继续参见图3,图3是根据本实施例的用于识别图像的方法的应用场景的一个示意图。在图3的应用场景中,手机301首先获取目标视频3011。然后,手机301从目标视频3011中提取包含手掌对象的两帧视频帧(图示中为视频帧30111和视频帧30112)。之后,手机301基于上述两帧视频帧,识别目标视频3011对应的手掌的动作是否为抛动作。最后,响应于确定目标视频3011对应的手掌的动作是抛动作,生成用于指示目标视频3011对应的手掌的动作是抛动作的识别结果。作为示例,图示中手机301生成了目标视频3011对应的手掌的动作是抛动作的识别结果“是抛动作”。

现有技术中,通常不存在识别视频中是否包含执行抛动作的手掌对象的技术方案。然而,由于手部较其他人体部位更为自由灵活,在用户的日常生活中担负着大量的交互工作,通过手部完成的操作数不胜数。可见,现有技术中存在识别包含手部对象的图像或视频的语义信息的需求,例如,识别包含手部对象的图像或视频的手掌对象是否在执行抛动作的需求。

本公开的上述实施例提供的方法,通过获取目标视频,然后,从目标视频中提取包含手掌对象的两帧视频帧,之后,基于两帧视频帧,识别目标视频对应的手掌的动作是否为抛动作,最后,响应于确定目标视频对应的手掌的动作是抛动作,生成用于指示目标视频对应的手掌的动作是抛动作的识别结果,由此,可以使得电子设备确定出视频中是否包含执行抛动作的手掌对象,进而,识别出更丰富的手掌姿态信息,有助于实现基于抛动作的人机交互。

进一步参考图4,其示出了用于识别图像的方法的又一个实施例的流程400。该用于识别图像的方法的流程400,包括以下步骤:

步骤401,获取目标视频。之后,执行步骤402。

在本实施例中,步骤401与图2对应实施例中的步骤201基本一致,这里不再赘述。

步骤402,从目标视频中提取包含手掌对象的两帧视频帧。之后,执行步骤403。

在本实施例中,步骤402与图2对应实施例中的步骤202基本一致,这里不再赘述。

步骤403,确定两帧视频帧分别对应的手掌的法向量在预先确定的投影平面的投影坐标。之后,执行步骤404。

在本实施例中,上述执行主体可以确定两帧视频帧分别对应的手掌的法向量在预先确定的投影平面的投影坐标。投影平面为视频帧的成像平面。

在这里,上述执行主体或者与上述执行主体通信连接的电子设备可以采用多种方式来执行上述步骤403.

作为示例,上述执行主体可以将步骤402提取的两帧视频帧依次输入至预先训练的手掌法向量确定模型,依次得到上述两帧视频帧中的每帧视频帧对应的手掌的法向量,然后,依次确定所得到的法向量在成像平面的投影坐标。

在这里,上述手掌法向量确定模型可以用于确定视频帧对应的手掌的法向量。作为示例,上述手掌法向量确定模型可以是关联存储有视频帧,以及视频帧对应的手掌的法向量的二维表或数据库,也可以是采用机器学习算法基于训练样本集合训练得到的卷积神经网络模型。其中,上述训练样本集合中的训练样本包括视频帧,以及视频帧对应的手掌的法向量。

作为又一示例,上述执行主体也可以将步骤402提取的两帧视频帧依次输入至预先训练的投影坐标确定模型,得到该视频帧对应的投影坐标。其中,上述投影坐标确定模型可以用于确定输入的视频帧对应的投影坐标。视频帧对应的投影坐标即视频帧中的手掌对象对应的手掌的法向量在成像平面的投影坐标。

作为示例,上述投影坐标确定模型可以是采用机器学习算法,基于训练样本集训练得到的模型,也可以是采用几何算法,对视频帧中的手掌对象对应的手掌所在的平面进行法向量计算后,再对所得到的法向量进行投影而得到投影坐标的公式。

示例性的,上述训练样本集中的训练样本包含有视频帧和视频帧对应的投影坐标。在这里,训练样本集中的各个视频帧对应的投影坐标可以是人工标注得到的;也可以是采用如下方式得到的:

首先,获取手掌转动的视频。其中,视频中的每个视频帧中手掌法向量的投影坐标中沿第一方向的坐标值均相同,且每个视频帧中手掌法向量的投影坐标中沿第二方向的坐标值持续变化。投影坐标为手掌法向量在投影平面(例如成像平面)上的投影坐标。手掌转动的视频内容可以反映手掌法向量的变化趋势。这里,可以通过各种设备(例如上述执行主体或者与上述执行主体通信连接的其他电子设备)拍摄手掌转动的视频。其中,在手掌转动的过程中,可以保持旋转方向固定,手掌在沿转轴的方向并没有位移。其中,转轴的方向可以是胳膊所在的方向。例如,手掌与手指展开,保证手掌与手指在同一平面上,手指的方向为竖直方向。当手掌所在平面垂直于屏幕方向时,为手掌的初始位置,然后手掌掌心向屏幕方向旋转,转至手掌所在平面与屏幕平行,继续按照原旋转方向旋转,直至到手掌所在平面再次垂直于屏幕方向,在手掌转动过程中,手掌在竖直方向上没有位移。手掌转动的视频包含多个视频帧。其中,手掌转动视频的每个视频帧中手掌法向量的投影坐标中沿第一方向的坐标值均相同,且该视频的图像中手掌法向量的投影坐标中沿第二方向的坐标值持续变化,其中,持续变化可以理解是持续增大,或者持续的减小。手掌法向量的投影坐标是手掌法向量在投影平面的坐标,投影平面可以是成像平面。采用类似的方法获得另一视频中的每个视频帧中手掌法向量的投影坐标中沿第二方向的坐标值均相同,且每个视频帧中手掌法向量的投影坐标中沿第一方向的坐标值持续变化的投影坐标。

然后,可以将针对上述视频包含的每个视频帧,以及该视频帧对应的投影坐标组成一个训练样本,进而得到训练样本集。

可以理解,由于人工标注的方法很难对视频帧的投影坐标进行准确的标注,导致训练得到的模型准确度较低,并且人工标注的方法操作麻烦,模型的训练效率较低。因此,采用上述非人工标注的方式得到的训练样本集来训练投影坐标确定模型可以提高模型生成投影坐标的准确度,提高模型的训练效率。

步骤404,判断上述两帧视频帧的投影坐标是否满足预先确定的抛动作识别条件。之后,若是,则执行步骤405;若否,则执行步骤406。

在本实施例中,上述执行主体可以判断上述两帧视频帧的投影坐标是否满足预先确定的抛动作识别条件。其中,抛动作识别条件为“两帧视频帧的投影坐标在预设的第一方向的坐标值之差的绝对值大于或等于预设的第一阈值,并且,两帧视频帧对应的投影坐标在预设的第二方向的坐标值之差的绝对值小于或等于预设的第二阈值”。其中,第一阈值和第二阈值可以是技术人员预先设置的数值,上述第一阈值和第二阈值可以相等也可以不等。

在这里,在满足上述抛动作识别条件的情况下,上述执行主体可以继续执行步骤405;若不满足上述抛动作识别条件,上述执行主体可以执行步骤406。

步骤405,将目标视频对应的手掌的动作识别为抛动作。之后,执行步骤407。

在本实施例中,在满足“两帧视频帧的投影坐标在预设的第一方向的坐标值之差的绝对值大于或等于预设的第一阈值,并且,两帧视频帧对应的投影坐标在预设的第二方向的坐标值之差的绝对值小于或等于预设的第二阈值”的情况下,上述执行主体可以将目标视频对应的手掌的动作识别为抛动作。

步骤406,将目标视频对应的手掌的动作识别为非抛动作。

在本实施例中,在满足“两帧视频帧的投影坐标在预设的第一方向的坐标值之差的绝对值小于预设的第一阈值,或者,两帧视频帧对应的投影坐标在预设的第二方向的坐标值之差的绝对值大于预设的第二阈值”的情况下,上述执行主体可以将目标视频对应的手掌的动作识别为非抛动作。

在本实施例中,投影坐标可以通过第一元素和第二元素来表征。其中,第一元素可以是投影坐标在上述预设的第一方向的坐标值,第二元素可以是投影坐标在上述预设的第二方向的坐标值。由此,当满足如下公式(即抛动作识别条件)时,可以将目标视频对应的手掌的动作识别为抛动作:

|dx|≥T1,并且,|dy|≤T2,

其中,dx表征上述两帧视频帧的投影坐标的第一元素之差,当上述两帧视频帧的投影坐标分别为“(xt,yt)”和“(xt-1,yt-1)”时,dx的值为xt与xt-1之差。其中,xt为其中一帧视频帧的投影坐标的第一元素。xt-1为另一帧视频帧的投影坐标的第一元素。dy表征上述两帧视频帧的投影坐标的第二元素之差,当上述两帧视频帧的投影坐标分别为“(xt,yt)”和“(xt-1,yt-1)”时,dy的值为yt与yt-1之差。其中,yt为其中一帧视频帧的投影坐标的第二元素,yt-1为另一帧视频帧的投影坐标的第二元素。

此外,当不满足上述公式时,可以将目标视频对应的手掌的动作识别为非抛动作。

步骤407,生成用于指示目标视频对应的手掌的动作是抛动作的识别结果。

在本实施例中,上述执行主体可以生成用于指示目标视频对应的手掌的动作是抛动作的识别结果。

需要说明的是,除上面所记载的内容外,本实施例还可以包括与图2对应的实施例相同或类似的特征、效果,在此不再赘述。

从图4中可以看出,与图2对应的实施例相比,本实施例中的用于识别图像的方法的流程400突出了基于两帧视频帧的投影坐标,识别目标视频对应的手掌的动作是否为抛动作的步骤。由此,本实施例描述的方案可以更准确、快速地识别出视频对应的手掌的动作是否为抛动作。

进一步参考图5,作为对上述图2所示方法的实现,本公开提供了一种用于识别图像的装置的一个实施例,该装置实施例与图2所示的方法实施例相对应,除下面所记载的特征外,该装置实施例还可以包括与图2所示的方法实施例相同或相应的特征,以及产生与图2所示的方法实施例相同或相应的效果。该装置具体可以应用于各种电子设备中。

如图5所示,本实施例的用于识别图像的装置500包括:获取单元501、提取单元502、识别单元503和生成单元504。其中,获取单元501被配置成获取目标视频;提取单元502被配置成从目标视频中提取包含手掌对象的两帧视频帧;识别单元503被配置成基于两帧视频帧,识别目标视频对应的手掌的动作是否为抛动作;生成单元504被配置成响应于确定目标视频对应的手掌的动作是抛动作,生成用于指示目标视频对应的手掌的动作是抛动作的识别结果。

在本实施例中,用于识别图像的装置500的获取单元501可以通过有线连接方式或者无线连接方式从其他电子设备或者本地获取目标视频。其中,上述目标视频可以是待对其进行手掌动作识别的视频。

在本实施例中,上述提取单元502可以从获取单元501获取到的目标视频中提取包含手掌对象的两帧视频帧。

在本实施例中,上述识别单元503可以基于上述提取单元502提取出的两帧视频帧,识别获取单元501获取到的目标视频对应的手掌的动作是否为抛动作。其中,目标视频对应的手掌可以是获得目标视频的过程中所拍摄的手掌。

在本实施例中,响应于确定获取单元501获取到的目标视频对应的手掌的动作是抛动作,上述生成单元504可以生成用于指示该目标视频对应的手掌的动作是抛动作的识别结果。

在本实施例的一些可选的实现方式中,上述识别单元503包括:输入模块(图中为示出)被配置成将两帧视频帧输入至预先训练的识别模型,以确定目标视频对应的手掌的动作是否为抛动作,其中,识别模型用于识别包含所输入的两帧视频帧的视频对应的手掌的动作是否为抛动作。

在本实施例的一些可选的实现方式中,识别单元503包括:确定模块(图中为示出)被配置成确定两帧视频帧分别对应的手掌的法向量在预先确定的投影平面的投影坐标;以及识别模块(图中为示出)被配置成基于所确定的两个投影坐标,识别目标视频对应的手掌的动作是否为抛动作。

在本实施例的一些可选的实现方式中,投影平面为视频帧的成像平面;以及识别模块包括:第一识别子模块(图中为示出)被配置成响应于两帧视频帧的投影坐标在预设的第一方向的坐标值之差的绝对值大于或等于预设的第一阈值,并且,两帧视频帧对应的投影坐标在预设的第二方向的坐标值之差的绝对值小于或等于预设的第二阈值,将目标视频对应的手掌的动作识别为抛动作。

在本实施例的一些可选的实现方式中,投影平面为视频帧的成像平面;以及识别模块包括:第二识别子模块(图中为示出)被配置成响应于两帧视频帧的投影坐标在预设的第一方向的坐标值之差的绝对值小于预设的第一阈值,或者,两帧视频帧对应的投影坐标在预设的第二方向的坐标值之差的绝对值大于预设的第二阈值,将目标视频对应的手掌的动作识别为非抛动作。

在本实施例的一些可选的实现方式中,提取单元502包括:提取模块(图中为示出)被配置成从目标视频中提取包含手掌对象的相邻的两帧视频帧。

在本实施例的一些可选的实现方式中,该装置500还包括:融合单元(图中为示出)被配置成响应于生成识别结果,针对目标视频中包含手掌对象的视频帧,将包含饼状物对象的图像与该视频帧进行图像融合,得到与该视频帧相对应的融合后图像,以及采用与该视频帧相对应的融合后图像替代该视频帧进行呈现。

在本实施例的一些可选的实现方式中,融合单元包括:融合模块(图中未示出)被配置成响应于确定该视频帧为目标视频中包含手掌对象的第一帧视频帧,将包含饼状物对象的图像融合于该视频帧中手掌对象的掌心侧且与掌心对象相接触的位置。

本公开的上述实施例提供的用于识别图像的装置,通过获取单元501获取目标视频,然后,提取单元502从目标视频中提取包含手掌对象的两帧视频帧,之后,识别单元503基于两帧视频帧,识别目标视频对应的手掌的动作是否为抛动作,最后,生成单元504响应于确定目标视频对应的手掌的动作是抛动作,生成用于指示目标视频对应的手掌的动作是抛动作的识别结果,由此,可以使得电子设备确定出视频中是否包含执行抛动作的手掌对象,进而,识别出更丰富的手掌姿态信息,有助于实现基于抛动作的人机交互。

下面参考图6,其示出了适于用来实现本公开的实施例的电子设备(例如图1中的服务器或终端设备)600的结构示意图。本公开的实施例中的终端设备可以包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、PDA(个人数字助理)、PAD(平板电脑)、PMP(便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。图6示出的终端设备/服务器仅仅是一个示例,不应对本公开的实施例的功能和使用范围带来任何限制。

如图6所示,电子设备600可以包括处理装置(例如中央处理器、图形处理器等)601,其可以根据存储在只读存储器(ROM)602中的程序或者从存储装置608加载到随机访问存储器(RAM)603中的程序而执行各种适当的动作和处理。在RAM 603中,还存储有电子设备600操作所需的各种程序和数据。处理装置601、ROM 602以及RAM603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。

通常,以下装置可以连接至I/O接口605:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置606;包括例如液晶显示器(LCD)、扬声器、振动器等的输出装置607;包括例如磁带、硬盘等的存储装置608;以及通信装置609。通信装置609可以允许电子设备600与其他设备进行无线或有线通信以交换数据。虽然图6示出了具有各种装置的电子设备600,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。图6中示出的每个方框可以代表一个装置,也可以根据需要代表多个装置。

特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置609从网络上被下载和安装,或者从存储装置608被安装,或者从ROM 602被安装。在该计算机程序被处理装置601执行时,执行本公开的实施例的方法中限定的上述功能。

需要说明的是,本公开的实施例所述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开的实施例中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开的实施例中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。

上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备:获取目标视频;从目标视频中提取包含手掌对象的两帧视频帧;基于两帧视频帧,识别目标视频对应的手掌的动作是否为抛动作;响应于确定目标视频对应的手掌的动作是抛动作,生成用于指示目标视频对应的手掌的动作是抛动作的识别结果。

可以以一种或多种程序设计语言或其组合来编写用于执行本公开的实施例的操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。

附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

描述于本公开的实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元也可以设置在处理器中,例如,可以描述为:一种处理器包括获取单元、提取单元、识别单元和生成单元。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定,例如,获取单元还可以被描述为“获取目标视频的单元”。

以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。

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