动作识别方法、装置、系统、电子设备、存储介质与流程

文档序号:21320375发布日期:2020-06-30 20:51阅读:202来源:国知局
动作识别方法、装置、系统、电子设备、存储介质与流程

本发明涉及计算机应用技术领域,尤其涉及一种动作识别方法、装置、系统、电子设备、存储介质。



背景技术:

人类的动作捕捉及识别方法,在当今社会具有非常广泛的应用,例如:智能监控、人机交互的体感游戏、视频检索等等。

人类的动作检测识别,从基于传统的rgb视频序列过渡到当今流行的rgb-d视频序列,运动轨迹一直作为重要的特征发展着。传统的运动轨迹的捕捉往往基于特征点的检测算法,不同的特征点检测方法会得出完全不同的运动轨迹。同时,由于特征点在不同帧的检索非常不稳定,在整个视频序列中,特征点往往不连续,因此对于特征点轨迹法多采用基于直方图的统计方法,对整个视频序列进行计算并统计后,采用支持向量机等分类器进行分类。

这些视频序列的匹配计算方法计算量大,无法即时响应,也无法适用于民用级别的人机交互。因此,现有技术对于健身识别纠错的人机交互而言,难以实现系统实时反馈动作是否出错的需求。

同时,现有技术中也缺乏利用移动终端实现骨骼识别和动作识别会增加移动终端的计算负载,增加移动终端的响应时间,从而降低用户体验。



技术实现要素:

本发明为了克服上述现有技术存在的缺陷,提供一种动作识别方法、装置、系统、电子设备、存储介质,以利用服务器端实现骨骼识别和动作识别,降低识别运算时间,从而提高用户体验。

根据本发明的一个方面,提供一种动作识别方法,包括:

a.服务器端接收移动终端发送的待识别视频数据;

b.服务器端根据所述待识别视频数据生成一关联待识别视频数据的骨骼识别请求消息,并将该骨骼识别请求消息加入骨骼识别消息队列;

c.服务器端的骨骼识别模块自所述骨骼识别消息队列提取骨骼识别请求消息,并根据所述骨骼识别请求消息识别所述待识别视频数据中的骨骼数据;

d.服务器端根据所述骨骼数据生成一关联该骨骼数据的动作识别请求消息,并将该动作识别请求消息加入动作识别消息队列;

e.服务器端的动作识别模块自所述动作识别消息队列提取动作识别请求消息,并根据所述动作识别请求消息对所述待识别视频数据的骨骼数据进行动作识别;

f.服务器端将所述待识别视频数据的动作识别结果反馈至所述移动终端。

可选地,所述步骤b还包括:

服务器端将所述待识别视频数据上传至第一数据库;

对应地,所述步骤c还包括:

服务器端的骨骼识别模块根据自所述骨骼识别消息队列提取的所述骨骼识别请求消息自所述第一数据库下载所述待识别视频数据,以进行骨骼识别。

可选地,所述步骤d还包括:

服务器端将所述待识别视频数据的骨骼数据上传至第二数据库;

对应地,所述步骤e还包括:

服务器端的动作识别模块根据自所述动作识别消息队列提取的动作识别请求消息自所述第二数据库下载所述待识别视频数据的骨骼数据,以进行动作识别。

可选地,所述动作识别的步骤包括:

确定目标动作,所述目标动作至少包括一个目标动作阶段,每个目标动作阶段拆分为多个目标部位动作;

将所述骨骼数据作为一待测动作,按所述目标动作的目标动作阶段的时间,将所述待测动作划分为至少一个待测动作阶段,并将对应时间的目标动作阶段和待测动作阶段形成一匹配组;

在每一匹配组中,依据目标动作阶段的目标部位动作将待测动作阶段划分为相应的待测部位动作,将待测动作阶段的待测部位动作与相应的目标动作阶段的目标部位动作形成一部位匹配组;

对每一部位匹配组进行动作识别,以获得部位匹配组的动作识别结果;

整合多个匹配组的动作识别结果以获得待测动作的动作识别结果。

可选地,所述目标部位动作包括按身体部位划分5个身体部位动作及至少一个随机部位动作,身体部位包括:左臂、右臂、左腿、右腿以及躯干,所述随机部位由所述身体部位中的选定的至少两个骨骼点构成,所述随机部位动作至少对应一个或多个面向过程的识别项,每个识别项包括识别对象、识别参数、识别规则及标准骨骼点坐标库,对应所述面向过程的识别项中,所述识别对象包括所述随机部位的至少两个骨骼点形成的向量,所述标准骨骼点坐标库按时间顺序储存有目标动作中各个骨骼点的标准坐标。

可选地,所述对每一部位匹配组进行动作识别,以获得部位匹配组的动作识别结果包括:

至少获取目标部位动作中随机部位动作的识别项,依据所述二维骨骼动作模型获取所述待测部位动作中所选定的至少两个骨骼点形成的向量,将所述随机部位动作的向量与标准骨骼点坐标库中的对应标准坐标形成的标准向量进行匹配计算以与所述识别参数设定的向量阈值进行比较,以获得部位匹配组的动作识别结果。

根据本发明的又一方面,还提供一种动作识别装置,包括:

接收模块,用于接收移动终端发送的待识别视频数据;

第一生成模块,用于根据所述待识别视频数据生成一关联待识别视频数据的骨骼识别请求消息,并将该骨骼识别请求消息加入骨骼识别消息队列;

骨骼识别模块,用于自所述骨骼识别消息队列提取骨骼识别请求消息,并根据所述骨骼识别请求消息识别所述待识别视频数据中的骨骼数据;

第二生成模块,用于根据所述骨骼数据生成一关联该骨骼数据的动作识别请求消息,并将该动作识别请求消息加入动作识别消息队列;

动作识别模块,用于自所述动作识别消息队列提取动作识别请求消息,并根据所述动作识别请求消息对所述待识别视频数据的骨骼数据进行动作识别;

发送模块,用于将所述待识别视频数据的动作识别结果反馈至所述移动终端。

可选地,包括多个接收模块,所述动作识别装置还包括:

负载均衡模块,用于根据多个接收模块的负载,向多个接收模块分配移动终端发送的待识别视频数据。

可选地,所述动作识别装置包括多个所述骨骼识别模块和/或多个动作识别模块。

可选地,还包括:

第一数据库,用于保存所述待识别视频数据,并供所述骨骼识别模块根据自所述骨骼识别消息队列提取的所述骨骼识别请求消息自所述第一数据库下载所述待识别视频数据,以进行骨骼识别。

可选地,还包括:

第二数据库,用于保存所述待识别视频数据的骨骼数据,并供所述动作识别模块根据自所述动作识别消息队列提取的动作识别请求消息自所述第二数据库下载所述待识别视频数据的骨骼数据,以进行动作识别。

根据本发明的又一方面,还提供一种动作识别系统,包括:

移动终端,用于拍摄并发送待识别视频数据;

如上所述的动作识别装置,用于接收所述待识别视频数据并对待识别视频数据进行动作识别。

根据本发明的又一方面,还提供一种电子设备,所述电子设备包括:处理器;存储介质,其上存储有计算机程序,所述计算机程序被所述处理器运行时执行如上所述的步骤。

根据本发明的又一方面,还提供一种存储介质,所述存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如上所述的步骤。

相比现有技术,一方面,本发明通过服务器端实现移动终端的待识别视频数据的骨骼识别和动作识别,大幅降低移动终端的运算量,且由运算资源更优的服务器端进行大部分运算,从而提高识别效率,减少识别响应时间,提升用户体验;另一方面,本发明通过对采集的每个待测动作,且按身体构造,简化骨骼点,以三个骨骼点为单位将动作划分为待测部位动作,并以面向过程识别项对待测部位动作进行识别,且在面向过程的识别项中通过实时采集的骨骼点构成的向量和一标准骨骼点坐标库中的骨骼点坐标形成的向量进行简单的计算以与设定的向量阈值进行比较,骨骼点和向量的设定及匹配识别的过程计算量较小,能够实现实时的反馈,不会产生反馈延迟的现象。

附图说明

通过参照附图详细描述其示例实施方式,本发明的上述和其它特征及优点将变得更加明显。

图1示出了根据本发明实施例的动作识别方法的流程图;

图2示出了根据本发明实施例的动作识别系统的示意图;

图3示出了根据本发明实施例的骨骼模型的示意图;

图4至图8示出了根据本发明实施例的5个身体部位的示意图;

图9示出了根据本发明实施例的标准骨骼点坐标库骨骼点形成的标准向量与实时采集向量的对比;

图10和图11分别示出了根据本发明实施例的标准骨骼点坐标库骨骼点形成的标准向量间的夹角与实时采集向量间的夹角;

图12示意性示出本公开示例性实施例中一种计算机可读存储介质示意图。

图13示意性示出本公开示例性实施例中一种电子设备示意图。

具体实施方式

现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。

此外,附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所述的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。

首先参见图1,图1示出了根据本发明实施例的动作识别方法的流程图。图1共示出6个步骤:

步骤s110:服务器端接收移动终端发送的待识别视频数据;

步骤s120:服务器端根据所述待识别视频数据生成一关联待识别视频数据的骨骼识别请求消息,并将该骨骼识别请求消息加入骨骼识别消息队列;

步骤s130:服务器端的骨骼识别模块自所述骨骼识别消息队列提取骨骼识别请求消息,并根据所述骨骼识别请求消息识别所述待识别视频数据中的骨骼数据;

步骤s140:服务器端根据所述骨骼数据生成一关联该骨骼数据的动作识别请求消息,并将该动作识别请求消息加入动作识别消息队列;

步骤s150:服务器端的动作识别模块自所述动作识别消息队列提取动作识别请求消息,并根据所述动作识别请求消息对所述待识别视频数据的骨骼数据进行动作识别;

步骤s160:服务器端将所述待识别视频数据的动作识别结果反馈至所述移动终端。

由此,在本发明提供的动作识别方法中,本发明通过服务器端实现移动终端的待识别视频数据的骨骼识别和动作识别,大幅降低移动终端的运算量,且由运算资源更优的服务器端进行大部分运算,从而提高识别效率,减少识别响应时间,提升用户体验。

下面结合图1和图2具体描述本发明提供的通过移动终端和服务器端(动作识别装置)交互的动作识别方法。图2示出了根据本发明实施例的动作识别系统的示意图。

如图2所示,动作识别系统包括移动终端101及动作识别装置100(服务器端)。移动终端101用于拍摄并发送待识别视频数据。动作识别装置100用于接收所述待识别视频数据并对待识别视频数据进行动作识别。

具体而言,移动终端101例如可以是安装有移动app或者app内嵌小程序的手机。具有视频拍照和上传功能。负责拍摄用户的运动视频,以作为待识别视频数据,并上传到动作识别装置100。由动作识别装置100的各模块配合完成整套动作识别并推送结果到移动终端101。

动作识别装置100包括接收模块103、第一生成模块111、骨骼识别模块106、第二生成模块112、动作识别模块109及发送模块110。

接收模块103用于接收移动终端发送的待识别视频数据。

第一生成模块111用于根据所述待识别视频数据生成一关联待识别视频数据的骨骼识别请求消息,并将该骨骼识别请求消息加入骨骼识别消息队列105。

具体而言,在一些具体实施例中,接收模块103和第一生成模块111共同组成一web服务器。本发明可以部署多个web服务器以实现横向扩容,进而提高并发能力。

在上述部署多个web服务器的实施例中,本发明提供的动作识别装置100还可以包括负载均衡模块102。负载均衡模块102负责将移动终端101(为了清楚起见仅示出一个移动终端101,移动终端101的数量并非以此为限)发送来的待识别视频数据按照负载均衡策分发给多个web服务器,从而提高处理并发请求的能力。

在上述实施例的又一个变化例中,本发明提供的动作识别装置100还可以包括第一数据库104。上述web服务器接收到移动终端101的待识别视频数据后,将待识别视频数据与所生成的骨骼识别请求消息关联地储存在该第一数据库104中。该第一数据库可以是云端数据库。

骨骼识别模块106用于自所述骨骼识别消息队列提取骨骼识别请求消息,并根据所述骨骼识别请求消息识别所述待识别视频数据中的骨骼数据。

具体而言,前述的骨骼识别消息队列可以是云消息队列。在一些实施例中,可以对该骨骼识别消息队列进行预先设定,以防止消息丢失。例如,该骨骼识别消息队列中,若其中一请求a从队列取出后,将请求a设定为“不可见”状态,该“不可见”状态会持续预定时间。仅当骨骼识别模块106处理完该请求a后,才删除该消息a。换言之,若超过预定时间,请求a仍未被删除,则认为该消息a未被正确处理,并将该消息a的状态设定为可见状态,从而防止一个请求未被正确的处理导致消息丢失的现象发生。

具体而言,当一个消息被正确的处理完,处理该消息的骨骼识别模块106可以主动删除该消息,以防该消息被重复的取出并处理。

骨骼识别模块106用于从骼识别消息队列中获取骨骼识别请求消息,并识待识别视频数据中的人体骨架坐标序列帧数据。

进一步地,骨骼识别模块106是一个或多个“永不停歇”的工作机,负责监听“骨架识别消息队列,当队列中有新的消息时,该骨骼识别模块106会取出消息并根据消息内容从第一数据库中下载相应的视频数据。该骨骼识别模块106可以分析和提取视频中的人体骨骼坐标序列帧数据。

需要注意的是,本发明提供的动作识别装置100中,可以部署骨骼识别模块106可以部署多个实例。因为该骨骼识别模块106的输入和输出均是队列组件,所以实例与实例之间相互独立,理论上是可以部署无穷多个。以此来实现横向扩容,提高并发请求的处理能力。

第二生成模块112用于根据所述骨骼数据生成一关联该骨骼数据的动作识别请求消息,并将该动作识别请求消息加入动作识别消息队列。

具体而言,动作识别消息队列的设定可以与骨骼识别消息队列设定一致或相近。

在一个具体实施例中,本发明提供的动作识别装置100还可以包括第二数据库108,用于保存骨骼识别模块106识别的骨骼数据(与动作识别请求消息关联)。该第二数据库可以也可以是云端数据库。

动作识别模块109用于自所述动作识别消息队列提取动作识别请求消息,并根据所述动作识别请求消息对所述待识别视频数据的骨骼数据进行动作识别。

具体而言,动作识别模块109也是一个或多个“永不停歇”的工作机,负责监听动作识别消息队列。当队列中有新的消息到来时,负责取出消息,并依据消息内容,从第二数据库中获取需要处理的骨骼坐标序列帧文件(骨骼数据)。解析该文件,并识别骨骼坐标,并进行动作识别。给出动作的标准性评判和相应的指导。同骨骼识别模块106相同,动作识别模块109也是可以无限制横向扩容,进而提高并发处理能力。

发送模块110用于将所述待识别视频数据的动作识别结果反馈至所述移动终端。

以上仅仅是示意性地描述本发明的动作识别装置100及动作识别系统的多个实施例,模块的划分和合并、增加或省略都在本发明的保护范围之内。

在本发明的动作识别装置100及动作识别系统中,web服务器、骨骼识别模块106、动作识别模块109集中了系统的主要运算工作,其中,web服务器因为对外只能有一个端点,采用负载均衡的方式实现了横向扩容。骨骼识别模块106、动作识别模块109由于跟其他模块相互独立,依赖于消息队列获取请求,所以自带可以横向扩容的特性。因此,本发明的动作识别装置100及动作识别系统具有良好的横向扩容能力,进而有较强的并发处理能力。

下面通过一些具体的实施例,描述本发明的动作识别。

首先,确定目标动作,所述目标动作至少包括一个目标动作阶段,每个目标动作阶段拆分为多个目标部位动作,所述目标部位动作包括按身体部位划分5个身体部位动作及至少一个随机部位动作。

在一些具体实施例中,可以通过显示健身视频来确定目标动作。具体而言,所述健身视频包括多个目标动作,每个所述目标动作与所述健身视频的播放时间关联。在另一些实施例中,用户可以直接选定目标动作。

具体而言,在本案中,对每个人体设定有15个骨骼点(可参见图3),该15个骨骼点为:头部中心211、颈部中心(例如脖子的脊柱中心)212、躯干中心213(例如躯干的脊柱中心)、左肩关节点221、左手肘关节点222、左手腕关节点223、右肩关节点231、右手肘关节点232、右手腕关节点233、左髋关节点241、左膝盖关节点242、左脚踝关节点243、右髋关节点251、右膝盖关节点252、右脚踝关节点253。

本案中对这15个骨骼点以3个骨骼点为单位,划分成五个身体部分:躯干(见图4)、左臂(见图5)、右臂(见图6)、左腿(见图7)及右腿(见图8)。其中,各身体部位内的骨骼点之间还形成向量,向量之间还形成夹角。

具体而言,躯干(见图4)包括头部中心211、脖子的脊柱中心212、躯干的脊柱中心213、头部中心211至脖子的脊柱中心212形成的第一向量214、脖子的脊柱中心212至躯干的脊柱中心213形成的第二向量215、头部中心211至躯干的脊柱中心213形成的第三向量216以及该第一向量214和该第二向量215形成的夹角217。

左臂(见图5)包括左手腕关节点223、左手肘关节点222、左肩关节点221、左肩关节点221至左手肘关节点222形成的第一向量224、左手肘关节点222至左手腕关节点223形成的第二向量225、左肩关节点221至左手腕关节点223形成的第三向量226以及该第一向量224和该第二向量225之间的夹角227。

右臂(见图6)包括右手腕关节点233、右手肘关节点232、右肩关节点231、右肩关节点231至右手肘关节点232形成的第一向量234、右手肘关节点232至右手腕关节点233形成的第二向量235、右肩关节点231至右手腕关节点233形成的第三向量236以及该第一向量234和该第二向量235之间的夹角237。

左腿包括(见图7)包括左脚踝关节点243、左膝盖关节点242、左髋关节点241、左髋关节点241至左膝盖关节点242形成的第一向量244、左膝盖关节点242至左脚踝关节点243形成的第二向量245、左髋关节点241至左脚踝关节点243形成的第三向量246以及该第一向量244和该第二向量245之间的夹角247。

右腿包括(见图8)包括右脚踝关节点253、右膝盖关节点252、右髋关节点251、右髋关节点251至右膝盖关节点252形成的第一向量254、右膝盖关节点252至右脚踝关节点253形成的第二向量255、右髋关节点251至右脚踝关节点253形成的第三向量256以及该第一向量254和该第二向量255之间的夹角。

设定较少的具有代表性的关节点作为骨骼点,以在动作识别和纠错时减少计算量。

将该目标动作按拆解成五个身体部位:左臂、右臂、左腿、右腿以及躯干。每个身体部位均包括如图4至图8所示的三个骨骼点、三个骨骼点形成的三个向量及所述三个向量中两个向量之间的夹角。

为了增加动作识别的灵活性,目标动作还可以包括至少一个随机部位动作,随机部位由所述身体部位中的选定的至少两个骨骼点构成,如图3中选定骨骼点212和骨骼点223,并通过骨骼点212和骨骼点223来形成随机部位。随机部位并非以此为限,任至少两个骨骼点都可以形成随机部位,由此,在五个身体部位的基础上,可以实现更多维度的动作识别。

所述随机部位动作至少对应一个或多个面向过程的识别项,每个识别项包括识别对象、识别参数、识别规则及标准骨骼点坐标库。对应所述面向过程的识别项中,所述识别对象包括所述随机部位的至少两个骨骼点形成的向量。所述识别参数包括设定的向量阈值。所述识别规则包括,运动过程中所述随机部位的至少两个骨骼点形成的向量(识别对象)与标准骨骼点坐标库中的对应标准坐标形成的标准向量之间的相似度需大于等于设定的向量阈值(识别参数),若所述随机部位的至少两个骨骼点形成的向量(识别对象)与标准骨骼点坐标库中的对应标准坐标形成的标准向量之间的相似度小于设定的向量阈值(识别参数),则进行报错(所报的错误可预先作为识别参数储存)。

在一个具体实施例中,通过如下步骤来对所述随机部位动作的向量与标准骨骼点坐标库中的对应标准坐标形成的标准向量进行匹配计算以与所述识别参数设定的向量阈值进行比较:

计算标准骨骼点坐标库中的对应标准坐标形成的标准向量(xai,yai)与随机部位动作的向量(xbi,ybi)之间夹角θ的余弦值:

向量与向量之间的夹角θ的余弦值用于与所述识别参数设定的向量阈值进行比较。例如,当骨骼点212和骨骼点223形成随机部位时,向量与向量分别为实时采集的骨骼点212和骨骼点223形成的向量,及标准骨骼点坐标库中骨骼点212和骨骼点223形成的向量。

进一步地,在本发明中,实时采集的二维视频数据生成二维骨骼动作模型,而标准骨骼点坐标库中的坐标可以是三维坐标,对此,在进行上述匹配计算之前还包括判断标准骨骼点坐标库中的对应标准坐标是否为二维坐标的步骤。若是,则将所述随机部位动作的向量与标准骨骼点坐标库中的对应标准坐标形成的标准向量进行匹配计算。若否,则将标准骨骼点坐标库中的对应标准坐标转换为二维坐标,以与所述随机部位动作的向量进行匹配计算。

在一个具体实施例中,对于所述随机部位动作对应的面向过程的识别项,所述识别参数还可以包括一起始幅度阈值及达成幅度阈值,所述起始幅度阈值用于判断待测部位动作是否开始;所述达成幅度阈值用于判断待测部位动作结束是否完成达成幅度。具体而言,所述的起始幅度和所述的达成幅度是基于动作时间轴上所处的位置而言的。具体实现时,可以用帧数来判断起始幅度和达成幅度。例如:假设一个动作在标准骨骼点坐标库中有20帧的数据,假定设置的起始幅度阈值为0.2,达成幅度阈值为0.8.那么当用户的实际动作的随机部位动作跟标准骨骼点坐标库第0~4(即20*0.2)帧之间任意一帧数据匹配度最高(在前述向量阈值范围内)的时候,认定动作开始。当用户动作已经开始,并且运动过程中随机部位动作没有跟标准骨骼点坐标库匹配失败,一旦用户的动作的随机部位动作跟标准骨骼点坐标库中第16(即20*0.8)~20帧之间任意一帧数据匹配度最高(在前述向量阈值范围内),则认定动作达成。以上仅仅是示意性地描述本发明的实现,本发明并非以此为限。

在一个具体实施例中,所述随机部位动作还对应一个或多个面向距离的识别项。对于所述面向距离的识别项,所述识别对象包括所述随机部位的至少两个骨骼点之间的距离。所述识别参数设定距离阈值。所述识别规则包括待测部位动作的所述识别对象在运动过程中始终大于等于位于所述识别参数设定的距离阈值范围。由此来进行距离识别和否定距离识别,在距离识别中,当待测部位动作的所述识别对象在运动过程中始终大于等于所述识别参数设定的距离阈值,则动作达成;且当待测部位动作的所述识别对象在运动过程中小于所述识别参数设定的距离阈值,则进行报错。在否定距离识别中,当待测部位动作的所述识别对象在运动过程中任意时刻大于等于所述识别参数设定的距离阈值,则进行报错。

以上仅仅是示意性地描述了本发明中随机部位动作识别的实施方式,本发明并非以此为限。下面将描述本发明中身体部位动作的识别纠错的实施例方式。

至少一个身体部位动作对应一个或多个面向过程或者面向位移的识别项。每个识别项包括识别对象、识别参数及识别规则,所述识别对象包括部位动作所述三个骨骼点中的至少一个骨骼点;三个向量中的至少一个向量;以及所述三个向量中两个向量之间的一个夹角中的一项或多项。

面向过程的识别项需通过一标准骨骼点坐标库与实时采集的向量进行匹配进而判断是否符合识别项。标准骨骼点坐标库以一采样频率按时间顺序储存有所述部位动作的至少一个骨骼点的坐标。例如,对于俯卧撑的左腿动作,以5次/秒的采样频率按时间顺序至少储存左臂的骨骼点221、222及223的坐标,由此可以获知骨骼点221、222及223形成的第一向量224、第二向量225(和夹角227)。

具体而言,面向过程的所述识别项包括轨迹识别、否定轨迹识别及保持识别;面向位移的所述识别项包括位移识别以及否定位移识别。

轨迹识别用于识别该部位动作是否按照预定轨迹运动,若未按照预定轨迹运动,则提示出错。其识别对象包括所述三个向量中的至少一个向量和/或所述三个向量中两个向量之间的一个夹角。对应于识别对象,识别参数设定一个或多个阈值。阈值包括所述三个向量的向量阈值及所述夹角的夹角阈值,所述识别参数依据所述识别对象确定采用向量阈值和/或夹角阈值。

具体而言,上述向量阈值及夹角阈值用于判断实时采集的向量(及夹角)是否与该标准骨骼点坐标库中的标准骨骼点形成的标准向量(及标准向量之间夹角)相匹配。例如,可参考图9,对于向量阈值,当实时采集一身体部位动作的骨骼点222至骨骼点293的向量(xbi,ybi),按时间在标准骨骼点坐标库中查找到对应时间的对应骨骼点222至骨骼点223,形成向量(xai,yai),计算标准骨骼点坐标库中的向量(xai,yai)与实时采集的身体部位动作的向量(xbi,ybi)之间夹角θ的余弦值:

向量与向量之间的夹角θ的余弦值(余弦值为-1到1)用于与所述识别参数设定的向量阈值进行比较。向量阈值可以设置为0.8,对应的向量与向量之间的夹角θ的余弦值大于等于0.8时,即可认为该两个向量匹配。可依据该向量阈值与所计算的余弦值进行比较以确定向量(xbi,ybi)是否在该向量阈值范围内。

例如,在设置夹角阈值的实施例中,所述标准骨骼点坐标库按时间顺序至少储存有标准骨骼点,并可由标准骨骼点形成的标准向量及标准向量之间夹角。所述身体部位动作的第一向量及第二向量,可以依据两个向量计算向量之间的夹角或者直接将该夹角储存在标准骨骼点坐标库中。参考图10及图11,夹角阈值用于与实时采集的部位动作的(骨骼点292至骨骼点291)的第一向量294和(骨骼点292至骨骼点293)的第二向量295之间的夹角297α与标准骨骼点坐标库中对应时间的(骨骼点222至骨骼点221)的第一向量224和(骨骼点222至骨骼点223)的第二向量225之间的夹角227β的比值α/β比较以确定实时采集的部位动作的夹角是否位于所述夹角阈值的范围内。向量阈值可以设置为0.8,对应的向量阈值为0.8至1。向量阈值的范围也可以直接设置为0.8至1。可依据该夹角阈值与所计算的夹角比值进行比较以确定第一向量和第二向量之间的夹角是否在该向量阈值范围内。

进一步地,轨迹识别的识别参数还包括一起始幅度阈值及达成幅度阈值,起始幅度阈值用于判断部位动作是否开始,达成幅度阈值用于判断部位动作结束是否完成达成幅度。具体而言,所述的起始幅度和所述的达成幅度是基于动作时间轴上所处的位置而言的。具体实现时,可以用帧数来判断起始幅度和达成幅度。例如:假设一个动作在标准骨骼点坐标库中有20帧的数据,假定设置的起始幅度阈值为0.2,达成幅度阈值为0.8.那么当用户的实际动作跟标准骨骼点坐标库第0~4(即20*0.2)帧之间任意一帧数据匹配度最高(在前述向量阈值范围内)的时候,认定动作开始。当用户动作已经开始,并且运动过程中没有跟标准骨骼点坐标库匹配失败,一旦用户的动作跟标准骨骼点坐标库中第16(即20*0.8)~20帧之间任意一帧数据匹配度最高(在前述向量阈值范围内),则认定动作达成。以上仅仅是示意性地描述本发明的实现,本发明并非以此为限。

对应于上述设定的识别对象和识别参数,轨迹识别的识别规则包括达成规则及可选不同的错误规则。轨迹识别的达成规则为该部位动作的识别对象起始于起始幅度阈值所表示的位置且识别对象均在所设定的向量阈值和/或夹角阈值内;该部位动作的识别对象从起始幅度阈值所表示的位置到达成幅度阈值所表示的位置的过程中,识别对象均在所设定的向量阈值和/或夹角阈值内;并且该部位动作的识别对象到达达成幅度阈值所表示的位置且识别对象均在所设定的向量阈值和/或夹角阈值内。轨迹识别的不同的错误规则包括:超出对应向量阈值错误(例如,向量一所表示的大臂或大腿超出阈值);超出对应夹角阈值错误(例如,夹角所表示的手肘处的夹角或膝盖处的夹角超出阈值);及幅度不够错误。幅度不够错误的识别规则为该部位动作的识别对象起始于起始幅度阈值所表示的位置且识别对象均在所设定的向量阈值和/或夹角阈值内;该部位动作的识别对象从起始幅度阈值所表示的位置到达成幅度阈值所表示的位置的过程中,识别对象均在所设定的向量阈值和/或夹角阈值内;并且该部位动作的识别对象未到达达成幅度阈值所表示的位置且识别对象均在所设定的向量阈值和/或夹角阈值内。

否定轨迹识别用于识别该部位动作是否按照预定轨迹运动,若按照预定轨迹运动,则提示出错。对于否定轨迹识别,其与轨迹识别类似,识别对象包括所述三个向量中的至少一个向量和/或所述三个向量中两个向量之间的一个夹角(优选地,为第一向量和第二向量之间的夹角)。否定轨迹识别的识别参数设定一个或多个阈值,所述阈值包括所述三个向量的向量阈值及所述夹角的夹角阈值,所述识别参数依据所述识别对象确定采用向量阈值和/或夹角阈值。否定轨迹识别与轨迹识别不同的是,否定轨迹识别达成规则为:该部位动作的识别对象起始于起始幅度阈值所表示的位置且识别对象均在所设定的向量阈值和/或夹角阈值内;该部位动作的识别对象从起始幅度阈值所表示的位置到达成幅度阈值所表示的位置的过程中,识别对象均在所设定的向量阈值和/或夹角阈值内;该部位动作的识别对象到达达成幅度阈值所表示的位置且识别对象均在所设定的向量阈值和/或夹角阈值内;并且当前有除了否定识别和保持识别以外的识别正处于动作进行中的状态(换言之,轨迹或位移幅度正在增长)。当达成上述规则,则提示轨迹出错。换言之,若识别对象在该身体部位的运动过程中始终不在所述识别参数设定的阈值范围内,并且所述识别对象所表示的部位动作在运动过程中产生轨迹和/或位移,则将不提示出错。

保持识别用于识别部位动作在运动过程中是否保持在某一状态下(例如,保持直立或保持一弯曲角度),若未保持在该状态下则提示出错。保持识别的识别对象包括所述三个向量中的至少一个向量和/或所述三个向量中两个向量之间的一个夹角。识别参数设定一个或多个阈值,所述阈值包括所述三个向量的向量阈值及所述夹角的夹角阈值,识别参数依据所述识别对象确定采用向量阈值和/或夹角阈值。保持识别的达成规则为:该部位动作的识别对象始终在所设定的向量阈值和/或夹角阈值内。若未达成保持识别的达成规则,则提示对应保持识别的错误。

对于位移识别和否定位移识别,尽管此处描述为面向位移而非面向对象的识别项,但位移识别和否定位移识别实际还需识别部位动作是否处于持续的运动状态,若部位动作并未处于持续的运动状态则中断识别,直接提示错误;或者从当前位置开始重新进行识别。

位移识别用于判断识别对象是否达到预定的位移方向和位移距离,若未达到则提示出错。位移识别的识别对象包括三个骨骼点中的一个。优选地,指定该部位动作的一个骨骼点。识别参数设定位移距离、位移方向(位移方向可映射至二维坐标中的x轴正方向、x轴负方向、y轴正方向、y轴负方向,无需计算具体的位移方向)及起始幅度阈值。位移的起始幅度阈值为0至1中的值。例如,起始幅度阈值可以设置为0.2,并表示当指定骨骼点的位移超过设定位移距离的20%时,该部位动作开始或位移识别开始。位移识别的识别规则包括达成规则及可选不同的错误规则。位移识别的达成规则为指定骨骼点的移动方向与识别参数中设置的位移方向一致,且一次持续运动的位移距离大于等于识别参数中设置的位移距离。不同的错误规则包括指定骨骼点的位移未超过起始幅度阈值时,提示起始动作幅度不够;指定骨骼点位移幅度超过起始幅度阈值、指定骨骼点的移动方向与识别参数中设置的位移方向一致并且一次持续运动的位移距离小于识别参数中设置的位移距离,则提示达成幅度不够。

否定位移识别用于判断识别对象是否达到预定的位移方向和位移距离,若达到则提示出错。与位移识别类似,识别对象包括三个骨骼点中的一个。优选地,指定该部位动作的一个骨骼点。识别参数设定位移距离、位移方向(位移方向可映射至二维坐标中的x轴正方向、x轴负方向、y轴正方向、y轴负方向)及起始幅度阈值。否定位移识别的达成规则为指定骨骼点的移动方向与识别参数中设置的位移方向一致、一次持续运动的位移距离大于等于识别参数中设置的位移距离并且当前有除了否定识别和保持识别以外的识别正处于动作进行中的状态(换言之,轨迹或位移幅度正在增长)。当达成上述规则,则提示轨迹出错。换言之,若识别对象在该身体部位的运动过程中不按所述识别参数设定的位移方向移动或者移动距离大于所述识别参数设定的位移距离,则不提示出错。

在上述各个实施例中,还可以增加难度系数,例如,对于各个动作达成条件与难度系数的乘积可作为不同难度下的动作达成条件。

对一个动作的至少一个部位动作设置上述识别项,将至少一个部位动作及所述至少一个部位动作的识别项作为该动作的动作文件,将该动作文件与该动作编号关联地储存在所述标准动作数据库中。

在一个具体实施例中,对于深蹲动作,其对躯干、左腿和右腿设置了识别项。躯干的识别项包括保持识别和位移识别。躯干的保持识别中,识别对象仅为头部中心到颈部的脊椎中心的第一向量,相应地设置该第一向量的参数,并保存由躯干的骨骼点在深蹲过程中的标准骨骼点坐标库以供后续匹配。当实时采集的躯干的第一向量超过第一向量的阈值,则表示身体未保持直立,提示出错。此处,由于躯干的特性,当头部中心到颈部的脊椎中心的第一向量保持直立时,一般可直接认定颈部的脊椎中心到躯干的脊柱中心的第二向量也保持直立,仅设定一个向量的阈值,以减少后续计算量,提高后续实时纠错的效率。

躯干的位移识别中,识别对象为躯干的脊柱中心的骨骼点,对应的识别参数为该骨骼点的预定位移距离及预定的位移方向(方向为y轴负方向)。当躯干的脊柱中心沿y轴负方向移动超过预定距离时,则表示部位动作的该识别达成。若躯干的脊柱中心沿y轴负方向移动未超过预定位移距离时,则表示部位动作的幅度不够。

左腿设置有否定位移识别,用于提醒深蹲中膝盖不能超过脚尖。左腿的否定位移识别中,识别对象为左膝盖的关节点,识别参数为预定位移距离、预定的位移方向(方向为x轴正方向)及起始幅度阈值。当左膝盖沿x轴正方向移动超过预定位移距离时,则提示表示部位动作错误。当左膝盖沿x轴正方向移动未超过预定位移距离时,则表示部位动作的该识别达成。右腿的识别项与左腿相同,在此不予赘述。

在一些具体实施例中,对于各个动作,可划分为多个阶段。例如,对于深蹲,可以对下蹲和起身划分为两个阶段。在由于些实施例中,对于深蹲、俯卧撑等具有来回的动作,可仅对来和回中间的一个过程来进行设定和识别。例如,仅对深蹲下蹲时的动作进行识别项的设定和识别纠错;仅对俯卧撑俯卧时的动作进行识别项的设定和识别纠错,由此可进一步减少动作识别的计算量以增加纠错的实时性。

确定目标动作后,将所识别的骨骼数据作为一待测动作,按所述目标动作的目标动作阶段的时间,将所述待测动作划分为至少一个待测动作阶段,并将对应时间的目标动作阶段和待测动作阶段形成一匹配组。

具体而言,例如目标动作为深蹲,划分为两个目标动作阶段:蹲下和起身,蹲下时间为2秒,起身时间为2秒。按时间,对应的将待测动作划分为两个待测动作阶段:蹲下和起身。将对应蹲下的目标动作阶段和待测动作阶段形成一匹配组,将对应起身的目标动作阶段和待测动作阶段形成一匹配组。

在每一匹配组中,依据目标动作阶段的目标部位动作将待测动作阶段划分为相应的待测部位动作,将待测动作阶段的待测部位动作与相应的目标动作阶段的目标部位动作形成一部位匹配组。

例如,将待测动作阶段划分为左臂、右臂、左腿、右腿以及躯干五个待测部位动作。若目标动作阶段的左臂、右臂、躯干及一随机部位设置有识别项,则将左臂的待测部位动作与目标部位动作作为一部位匹配组;将右臂的待测部位动作与目标部位动作作为一部位匹配组;将躯干的待测部位动作与目标部位动作作为一部位匹配组;将随机部位的待测部位动作与目标部位动作作为一部位匹配组。

对每一部位匹配组,至少获取目标部位动作中随机部位动作的识别项,依据所述二维骨骼动作模型获取所述待测部位动作中所选定的至少两个骨骼点形成的向量,将所述随机部位动作的向量与标准骨骼点坐标库中的对应标准坐标形成的标准向量进行匹配计算以与所述识别参数设定的向量阈值进行比较,以获得动作识别反馈。即按照上述步骤s110中所述的不同的识别项的内容进行识别和纠错。

在一个实施例中,每个所述健身视频具有一视频文件,所述视频文件包括该健身视频中的目标动作的编号及该目标动作的播放时间,所述步骤s110还包括:当播放到所述目标动作时,于一标准动作数据库查找该目标动作的编号的目标动作文件,所述目标动作文件与所述目标动作的编号关联地储存在所述标准动作数据库中,每个所述目标动作文件包括该目标动作的目标动作阶段、目标部位动作及对应该目标部位动作的识别项。

整合至少一个匹配组的动作识别反馈以获得待测动作的动作识别反馈。

在一些具体实施例中,所述目标动作至少包括多个具有先后顺序的目标动作阶段,则当在先的目标动作阶段与对应的待测动作阶段的动作识别反馈为动作未达成时,在后的目标动作阶段与对应的待测动作阶段的动作达成的动作识别反馈无效。

一方面,本发明通过服务器端实现移动终端的待识别视频数据的骨骼识别和动作识别,大幅降低移动终端的运算量,且由运算资源更优的服务器端进行大部分运算,从而提高识别效率,减少识别响应时间,提升用户体验;另一方面,本发明通过对采集的每个待测动作,且按身体构造,简化骨骼点,以三个骨骼点为单位将动作划分为待测部位动作,并以面向过程识别项对待测部位动作进行识别,且在面向过程的识别项中通过实时采集的骨骼点构成的向量和一标准骨骼点坐标库中的骨骼点坐标形成的向量进行简单的计算以与设定的向量阈值进行比较,骨骼点和向量的设定及匹配识别的过程计算量较小,能够实现实时的反馈,不会产生反馈延迟的现象。

在本公开的示例性实施例中,还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被例如处理器执行时可以实现上述任意一个实施例中所述动作识别方法的步骤。在一些可能的实施方式中,本发明的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行本说明书上述动作识别方法部分中描述的根据本发明各种示例性实施方式的步骤。

参考图12所示,描述了根据本发明的实施方式的用于实现上述方法的程序产品300,其可以采用便携式紧凑盘只读存储器(cd-rom)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。

所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。

所述计算机可读存储介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读存储介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、rf等等,或者上述的任意合适的组合。

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

可以以一种或多种程序设计集成开发环境(ide,integrateddevelopmentenvironment),游戏开发引擎的任意组合来建立用于执行本发明操作的工程程序,例如unity3d,unreal,visualstudio等。

在本公开的示例性实施例中,还提供一种电子设备,该电子设备可以包括处理器,以及用于存储所述处理器的可执行指令的存储器。其中,所述处理器配置为经由执行所述可执行指令来执行上述任意一个实施例中所述动作识别方法的步骤。

所属技术领域的技术人员能够理解,本发明的各个方面可以实现为系统、方法或程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。

下面参照图13来描述根据本发明的这种实施方式的电子设备600。图13显示的电子设备600仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。

如图13所示,电子设备600以通用计算设备的形式表现。电子设备600的组件可以包括但不限于:至少一个处理单元610、至少一个存储单元620、连接不同系统组件(包括存储单元620和处理单元610)的总线630、显示单元640等。

其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元610执行,使得所述处理单元610执行本说明书上述动作识别方法部分中描述的根据本发明各种示例性实施方式的步骤。例如,所述处理单元610可以执行如图1中所述的步骤。

所述存储单元620可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(ram)6201和/或高速缓存存储单元6202,还可以进一步包括只读存储单元(rom)6203。

所述存储单元620还可以包括具有一组(至少一个)程序模块6205的程序/实用工具6204,这样的程序模块6205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。

总线630可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。

电子设备600也可以与一个或多个外部设备700(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得租户能与该电子设备600交互的设备通信,和/或与使得该电子设备600能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(i/o)接口650进行。并且,电子设备600还可以通过网络适配器660与一个或者多个网络(例如局域网(lan),广域网(wan)和/或公共网络,例如因特网)通信。网络适配器660可以通过总线630与电子设备600的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备600使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、raid系统、磁带驱动器以及数据备份存储系统等。

通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是cd-rom,u盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、或者网络设备等)执行根据本公开实施方式的上述动作识别方法。

本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由所附的权利要求指出。

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