一种基于人体姿态的动作识别方法及装置与流程

文档序号:16471020发布日期:2019-01-02 23:06阅读:320来源:国知局
一种基于人体姿态的动作识别方法及装置与流程

本发明涉及人机交互技术领域,特别涉及一种基于人体姿态的动作识别方法及装置。



背景技术:

随着时代的发展,人们呼唤更自然的人机交互方式,将人与人的交互方式引入到人机交互中,被称为“自然”交互方式。这其中包括了一系列对人体、手臂以及手势进行识别的技术。在这些自然的交互方式里,有动作、手势、语音等方式。动作是人和其他物体的重要区别。人们通过姿势来表达一定的信息和情感,比如在体育比赛中,裁判员使用各种姿势来传递信息。因此,寻找一个好的方法来识别人体姿势是非常有必要的。

传统的人体动作识别技术往往使用普通摄像设备、雷达或者一些可穿戴传感器设备等媒介,这些方式分别在识别效率、成本、环境约束等一个或多个方面的缺陷使得这项技术的应用相对受限。2010年微软发布的低成本深度摄像机kinect为这项技术提供了新的选择,kinect能够获取较为精确的深度图像,直接将物体的三维特征表现出来,可以在一定程度上避免基于传统二维图像特征的动作识别中可能存在的问题。

申请人在实施本发明的方案时,发现现有技术中采用kinect获取深度图像后,再进行人体动作识别的方法,由于对识别动作的有较高要求,以及受到光照、识别者不同的影响,算法复杂度较高,识别的准确性也有待提高。



技术实现要素:

有鉴于此,本发明的目的在于提供一种基于人体姿态的动作识别方法及装置,其能够针对人体的动作做出实时识别,对动作识别具有更高的准确率,同时降低了算法的复杂度使其更加易用,解决了现有技术中识别准确率不高的技术问题。

本发明第一方面提供了一种基于人体姿态的动作识别方法,包括:

步骤s1:通过深度传感器的骨骼跟踪技术获取人体的骨骼数据,所述骨骼数据包括人体关节点的三维坐标,将所述三维坐标转换至人体所在的世界坐标系;

步骤s2:利用改进的限幅滤波算法对所述骨骼数据进行滤波,获得滤波后骨骼数据,其中,所述改进的限幅滤波算法具体包括:首先判断本次骨骼数据的抖动程度是否超过阈值,若本次骨骼数据的抖动程度未超过所述阈值,则采用滤波缓冲区的骨骼数据更新本次骨骼数据,否则继续判断上一次骨骼数据的抖动程度是否超过所述阈值,若上一次骨骼数据的抖动程度未超过所述阈值,则采用本次骨骼数据更新滤波缓冲区的骨骼数据;若上一次骨骼数据的抖动程度超过所述阈值,则判断所述本次骨骼数据是否在滤波范围内,若是则采用所述滤波缓冲区的骨骼数据更新所述本次骨骼数据,否则采用所述本次骨骼数据更新所述滤波缓冲区的骨骼数据;

步骤s3:根据转换后的三维坐标和预设角度计算方法对所述滤波后骨骼数据进行特征提取,获得由各个关节点的角度构成的角度特征;

步骤s4:基于逻辑回归算法和所述角度特征对预先获取的训练样本集进行训练,获得分类器;

步骤s5:通过所述分类器对人体的动作进行识别,获得静态姿势识别结果;

步骤s6:基于所述静态姿势识别结果,采用倒序识别法判定五帧内是否识别出两种预设的静态姿势,如果是,则识别出一个动态动作,将其作为动作识别结果。

进一步地,所述深度传感器还获取深度信息,步骤s1具体包括:

步骤s1.1:根据所述深度信息获得深度传感器距离人体的实际距离;

步骤s1.2:根据所述实际距离和坐标转换公式将深度图像的三维坐标转换为世界坐标系下的实际坐标,其中,所述坐标转换公式为:

其中,(x,y)为实际坐标,(xd,yd,zd)为深度信息中的深度图像的三维坐标,w*h为深度传感器的分辨率,d和f为常数,其中,d=-10,f=0.0021。

进一步地,步骤s2中,骨骼数据的抖动程度采用骨骼数据的抖动半径来表示。

进一步地,步骤s3具体包括:

步骤s3.1:采用距离计算公式计算关节点间的距离信息,其中,距离计算公式为:

其中,关节点包括a、b、c三点,其中关节点a的实际坐标为(x1,y1),关节点b的实际坐标为(x2,y2),关节点c的实际坐标为(x3,y3);

步骤s3.2:根据所述距离信息获得各关节点之间的连线的角度,将其作为所述角度特征,具体为:

其中,a表示关节点b和关节点c之间连线的距离,b表示关节点a和关节点c之间连线的距离,c表示关节点a和关节点b之间连线的距离,θ为ac与bc之间的夹角。

进一步地,步骤s4具体包括:

步骤s4.1:基于所述角度特征利用逻辑回归算法对所述预先获取的训练样本集进行训练,获得分类模型,其中,所述预先获取的训练样本集为每一帧的姿势数据;

步骤s4.2:通过测试集的数据验证所述分类模型的效果,调整超参数,获得调整后的分类器。

进一步地,所述分类器包括n个向量,形如θ=[θ0,θ1,θ2…,θn-1]t,且所述分类器中包括n个预设姿势以及对应的姿势编号,步骤s5具体包括:

步骤s5.1:将待检测的人体动作作为样本xi,计算该样本的概率向量p1*j=g(x(i)θ),其中,i表示样本编号,j表示静态姿势的种类数量,g为逻辑回归算法的核函数;

步骤s5.2:概率向量最大的元素对应的下标为识别出的姿势编号,将所述识别出的姿势编号对应的姿势作为所述静态姿势识别结果。

基于同样的发明构思,本发明第二方面提供了一种基于人体姿态的动作识别装置,包括:

骨骼数据获取模块,用于通过深度传感器的骨骼跟踪技术获取人体的骨骼数据,所述骨骼数据包括人体关节点的三维坐标,将所述三维坐标转换至人体所在的世界坐标系;

骨骼数据滤波模块,用于利用改进的限幅滤波算法对所述骨骼数据进行滤波,获得滤波后骨骼数据,其中,所述改进的限幅滤波算法具体包括:首先判断本次骨骼数据的抖动程度是否超过阈值,若本次骨骼数据的抖动程度未超过所述阈值,则采用滤波缓冲区的骨骼数据更新本次骨骼数据,否则继续判断上一次骨骼数据的抖动程度是否超过所述阈值,若上一次骨骼数据的抖动程度未超过所述阈值,则采用本次骨骼数据更新滤波缓冲区的骨骼数据;若上一次骨骼数据的抖动程度超过所述阈值,则判断所述本次骨骼数据是否在滤波范围内,若是则采用所述滤波缓冲区的骨骼数据更新所述本次骨骼数据,否则采用所述本次骨骼数据更新所述滤波缓冲区的骨骼数据;

角度特征提取模块,用于根据转换后的三维坐标和预设角度计算方法对所述滤波后骨骼数据进行特征提取,获得由各个关节点的角度构成的角度特征;

训练模块,用于基于逻辑回归算法和所述角度特征对预先获取的训练样本集进行训练,获得分类器;

姿势识别模块,用于通过所述分类器对人体的动作进行识别,获得静态姿势识别结果;

动作识别模块,用于基于所述静态姿势识别结果,采用倒序识别法判定五帧内是否识别出两种预设的静态姿势,如果是,则识别出一个动态动作,将其作为动作识别结果。

进一步的,所述深度传感器还获取深度信息,骨骼数据获取模块具体用于:

根据所述深度信息获得深度传感器距离人体的实际距离;

根据所述实际距离和坐标转换公式将深度图像的三维坐标转换为世界坐标系下的实际坐标,其中,所述坐标转换公式为:

其中,(x,y)为实际坐标,(xd,yd,zd)为深度信息中的深度图像的三维坐标,w*h为深度传感器的分辨率,d和f为常数,其中,d=-10,f=0.0021。

基于同样的发明构思,本发明第三方面提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被执行时实现第一方面所述的方法。

基于同样的发明构思,本发明第四方面提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现第一方面所述的方法。

本申请实施例中的上述一个或多个技术方案,至少具有如下一种或多种技术效果:

在本发明提供的方法,通过改进的限幅滤波算法对获取的骨骼数据进行滤波处理,可以得到稳定的骨骼数据,为后续的识别提供基础,并根据转换后的三维坐标和预设角度计算方法对所述滤波后骨骼数据进行特征提取,获得由各个关节点的角度构成的角度特征,基于逻辑回归算法和所述角度特征对预先获取的训练样本集进行训练,获得分类器,可以使用角度特征通过逻辑回归实现动作识别,降低了识别方法的复杂度,可以提升识别的速度,训练得到的分类器可以对各个动作进行准确的定义和描述,通过分类器即可以对人体动作进行准确地识别,故而提高了识别准确性,解决了现有技术中识别准确率不高的技术问题。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例中一种基于人体姿态的动作识别方法的流程图;

图2为本发明实施例中举起双手动作示意图;

图3为图1中所示方法的获取的人体的25个关节点位置信息表示的人体骨架模型示意图;

图4为为本发明实施例中一种基于人体姿态的动作识别装置的结构图;

图5为本发明实施例中一种计算机可读存储介质的结构图;

图6为本发明实施例中一种计算机设备的结构图。

具体实施方式

本发明实施例提供了一种基于人体姿态的动作识别方法及装置,其能够针对人体的动作做出实时识别,对动作识别具有更高的准确率,同时降低了算法的复杂度使其更加易用。

为了达到上述技术效果,本发明的总体思路如下:

一种基于人体姿态的动作识别方法,通过改进的限幅滤波算法得到的滤波后的骨骼数据,通过改进的角度计算方法获得角度特征,对分好类的角度特征基于逻辑回归进行训练,得到训练后的分类器,再通过分类器得到对人体动作的静态姿势识别结果,最后根据静态姿势识别结果采用倒序法识别出人体动作。

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

实施例一

本实施例提供了一种基于人体姿态的动作识别方法,请参见图1,该方法包括:

首先执行步骤s1:通过深度传感器的骨骼跟踪技术获取人体的骨骼数据,骨骼数据包括人体关节点的三维坐标,将三维坐标转换至人体所在的世界坐标系。

具体来说,深度传感器可以是现有的传感器,例如微软的kinect传感器、苹果的primesense传感器等,获得地人体关节点的数量与深度传感器的技术相对应。本实施方式中,可以采用kinectv2,它是微软开发的一种人机交互设备,骨骼追踪技术是kinectv2的核心技术,它可以准确标定人体的25个关键节点,并能对这25个点的位置进行实时追踪,它的分辨率为1920*1080。也可以采用kinectv1,其获得人体的20个关节点。请参见图3,25个关节点位置信息表示的人体骨架模型示意图,其中25个关节点具体包括头部、颈部、左肩、右肩、左肘、右肘、左腕、右腕、左手、右手、左手指、右手指、左拇指、右拇指、颈下脊椎、脊椎中部、脊椎基部、左臀、右臀、左膝、右膝、左踝、右踝、左脚、和右脚。由于获取的25个人体关节点的三维坐标为kinectv2坐标系下的信息,因而需要将其转换至实际坐标系,即人体所在的世界坐标系。

在一种实施方式中,所述深度传感器还获取深度信息,步骤s1具体包括:

步骤s1.1:根据深度信息获得深度传感器距离人体的实际距离;

步骤s1.2:根据实际距离和坐标转换公式将深度图像的三维坐标转换为世界坐标系下的实际坐标,其中,坐标转换公式为:

其中,(x,y)为实际坐标,(xd,yd,zd)为深度信息中的深度图像的三维坐标,w*h为深度传感器的分辨率,d和f为常数,其中,d=-10,f=0.0021。

然后执行步骤s2:利用改进的限幅滤波算法对骨骼数据进行滤波,获得滤波后骨骼数据,其中,改进的限幅滤波算法具体包括:首先判断本次骨骼数据的抖动程度是否超过阈值,若本次骨骼数据的抖动程度未超过阈值,则采用滤波缓冲区的骨骼数据更新本次骨骼数据,否则继续判断上一次骨骼数据的抖动程度是否超过阈值,若上一次骨骼数据的抖动程度未超过阈值,则采用本次骨骼数据更新滤波缓冲区的骨骼数据;若上一次骨骼数据的抖动程度超过阈值,则判断本次骨骼数据是否在滤波范围内,若是则采用滤波缓冲区的骨骼数据更新本次骨骼数据,否则采用本次骨骼数据更新滤波缓冲区的骨骼数据。

具体来说,本发明中的改进的限幅滤波算法是在现有的限幅滤波算法中加入加入动态规划的思想,首先判断本次骨骼数据(当前帧的数据)的抖动程度是否超过阈值,再判断上一次骨骼数据的抖动程度是否超过阈值,然后再确定本次骨骼数据具体如何处理,通过该种方式可以使得骨骼数据更为稳定。

在具体的实施过程中,骨骼数据的抖动程度采用骨骼数据的抖动半径来表示。由于深度传感器获得的骨骼数据有时候会发生小幅度抖动,其抖动一般是在人体实际关节坐标的四周做小幅度波动,有时抖动导致无法检测到关节点。因此需要选择滤波算法对骨骼数据做相应处理,对小幅度波动的关节点保持上一状态不变。从而能保证数据的稳定性,本实施例中,将骨骼数据的抖动程度称为骨骼数据确认度,后文中,两者的含义相同。更为具体地,本实施方式中骨骼数据的抖动程度可以用骨骼数据的抖动半径来表示,阈值可以根据实际情况进行设置,例如可以为0.02m、0.03m、0.04m等。当抖动半径超过设置的阈值,通过改进的限幅滤波算法就会将错误纠正到这个范围内。

其中,若上一次骨骼数据的抖动程度超过阈值,可以通过下述方式来判断:pointfilter[id].position.x与point.position.x,pointfilter[id].position.y与point.position.y,pointfilter[id].position.z与point.position.z的差值是否小于阈值,其中,pointfilter[id].position.x、pointfilter[id].position.y和pointfilter[id].position.z为之前通过滤波处理后的关节点的坐标,point.position.x.point.position.y和point.position.z为当前关节点的坐标,即通过计算当前关节点的坐标与之前关节点坐标之间的距离方式来判断。

接下来执行步骤s3:根据转换后的三维坐标和预设角度计算方法对滤波后骨骼数据进行特征提取,获得由各个关节点的角度构成的角度特征。

在一种实施方式中,步骤s3具体包括:

步骤s3.1:采用距离计算公式计算关节点间的距离信息,其中,距离计算公式为:

其中,关节点包括a、b、c三点,其中关节点a的实际坐标为(x1,y1),关节点b的实际坐标为(x2,y2),关节点c的实际坐标为(x3,y3);

步骤s3.2:根据距离信息获得各关节点之间的连线的角度,将其作为角度特征,具体为:

其中,a表示关节点b和关节点c之间连线的距离,b表示关节点a和关节点c之间连线的距离,c表示关节点a和关节点b之间连线的距离,θ为ac与bc之间的夹角。

具体来说,通过上述方式,可以计算出各个关节点连线之间的角度,从而将获得的多个角度作为角度特征。

再执行步骤s4:基于逻辑回归算法和角度特征对预先获取的训练样本集进行训练,获得分类器。

在一种实施方式中,步骤s4具体包括:

步骤s4.1:基于所述角度特征利用逻辑回归算法对所述预先获取的训练样本集进行训练,获得分类模型,其中,所述预先获取的训练样本集为每一帧的姿势数据;

步骤s4.2:通过测试集的数据验证所述分类模型的效果,调整超参数,获得调整后的分类器。

具体来说,预先获取的训练样本集是预先就标记好的,由于逻辑回归是有监督学习,也就是说预先获取的训练样本集均为已知的静态姿势的数据,然后通过逻辑回归进行训练,得到一个模型,也就是分类器,接着通过测试集的数据验证上述模型的效果,调整超参数,得到最终的效果较好的分类器,也就是调整后的分类器。

利用逻辑回归算法对所做的每一帧的动作信息进行分类,举例来说,假设有n维特征向量x=[x0,x1,x2…,xn-1]t,参数向量θ=[θ0,θ1,θ2…,θn-1]t,,在一对多的逻辑回归分类中,每一类都要训练一个模型hθ(i)(x),在进行预测时选择hθ(i)(x)值最大的一类作为分类结果。在本实施方式中,对每一个静态姿势,训练出一个一对多的分类器θ=[θ0,θ1,θ2…,θn-1]t,对于进来一个新的样本xi,计算概率向量p1*j=g(x(i)θ),则其中最大的元素下标就是识别出的静态姿势的编号。hθ(i)(x)为逻辑回归算法的函数模型,具体形式如下:

hθ(x)=g(θtx)

g为内核函数:

再执行步骤s5:通过分类器对人体的动作进行识别,获得静态姿势识别结果。

在一种实施方式中,分类器包括n个向量,形如θ=[θ0,θ1,θ2…,θn-1]t,且分类器中包括n个预设静态姿势以及对应的姿势编号,步骤s5具体包括:

步骤s5.1:将待检测的人体动作作为样本xi,计算该样本的概率向量p1*j=g(x(i)θ),其中,i表示样本编号,j表示静态姿势的种类数量,g为逻辑回归算法的核函数;

步骤s5.2:概率向量最大的元素对应的下标为识别出的姿势编号,将识别出的姿势编号对应的姿势作为静态姿势识别结果。

步骤s6:基于静态姿势识别结果,采用倒序识别法判定五帧内是否识别出两种预设的静态姿势,如果是,则识别出一个动态动作,将其作为动作识别结果。

具体来说,在得到逻辑回归后的静态姿势识别结果后,本实施例采用倒序识别法来识别动作。首先对五帧以内的静态手势通过逻辑回归分类判断得到结果,并以五帧为一个周期,五帧前的数据会自动删除,将当前帧数据会与之前的5帧进行比较,当有两种指定的静态姿势在五帧中被识别,则识别为一个动作。

本发明提供的基于人体姿态的动作识别方法,不受光照、识别者的影响,在对不同光照、不同身高和胖瘦的用户的测试下都能取得良好的效果。采用的改进的限幅滤波算法保证了每一帧数据的稳定,采用角度特征通过逻辑回归实现动作识别,降低了算法的复杂度,提升了识别的速度和准确性,通过实验平均识别时间为35ms。通过对五帧内不同静态姿势的判断来识别动作也大大加强了可识别动作的多样性和复杂性。

为了更清楚地说明本发明的识别方法的实现过程,下面通过一个具体的示例予以介绍,请参见图2,为本本发明实施例中举起双手动作示意图,关于举起双手动作,由两个静态姿势组成,即先做出双手平举呈t字形,而后双手举过头顶,做出这两个姿势即判断动作为举起双手。

当判断目标人体是否发生举起双手动作时,本实施例的具体实施包括以下步骤:

步骤s101:通过深度传感器的骨骼跟踪技术获取人体的骨骼数据,骨骼数据包括人体关节点的三维坐标,将三维坐标转换至人体所在的世界坐标系,具体包括:

步骤s11:根据深度信息获得深度传感器距离人体的实际距离。

d=ktan(hdd+l)-o

其中,

dd是指获取到的深度信息,o=3.7cm,l=1.18rad,k=12.36cm,h=3.5*10-4rad。

步骤s12:根据实际距离和坐标转换公式将深度图像的三维坐标转换为世界坐标系下的实际坐标,其中,坐标转换公式为:

其中,(x,y)为实际坐标,(xd,yd,zd)为深度信息中的深度图像的三维坐标,w*h为深度传感器的分辨率,d和f为常数,其中,d=-10,f=0.0021。

步骤s201:利用改进的限幅滤波算法对骨骼数据进行滤波,获得滤波后骨骼数据,具体实施方案包括如下子步骤:

步骤s21:在限幅滤波算法中加入动态规划的思想,先判断骨骼数据确认度是否小于阈值joint_confidence,

即point.fconfidence<joint_confidence,若小于直接使用滤波缓冲区的骨骼数据更新本次骨骼数据。

步骤s22:若骨骼数据确认度大于阈值,则继续判断上一次滤波结果确认度是否小于阈值,若上一次小于阈值,则使用本次骨骼数据更新缓冲区骨骼数据。

步骤s23:若上一次滤波结果确认度依旧大于阈值,则判断骨骼数据是否在滤波范围内,即判断下式子是否成立,pointfilter[id].position.x与point.position.x,pointfilter[id].position.y与point.position.y,pointfilter[id].position.z与point.position.z的差值是否小于阈值,若是则使用滤波缓冲区数据更新本次骨骼数据,若不是则使用本次骨骼数据更新滤波缓冲区的骨骼数据。

步骤s301:对步骤s201中的骨骼数据进行特征提取,通过一种角度计算方法得到由各关节点角度构成的特征。具体实施方案包括如下步骤:

使用三点法获取角度特征,即先用下式获取关节点间的距离信息

再通过下式求出关节点之间的连线的角度

其中,从25个关节中提取出10个可能与姿势相关的角度特征,所有角度都在0-180°之间,包括左肩左腕和y轴的夹角,右肩右腕和y轴的夹角,左肩左肘和左肘左腕向量的夹角,右肩右肘和右肘右腕的夹角,左膝,左臀和左膝左踝的夹角,右膝,右臀和右膝,右踝的夹角,左肩,右肩和x轴的夹角,左臀,右臀和x轴的夹角,脊椎中部,颈下脊椎和y轴的夹角,头部,脊椎基部和y轴的夹角。

接下来执行步骤s401:利用步骤s301中获得的角度特征基于逻辑回归对训练样本集进行训练,得到分类器,从而对静态姿势进行分类和识别,步骤s401的具体实施方案包括如下步骤:

在对多个关节角度特征提取完成后,利用逻辑回归算法对所做的每一帧的动作信息进行分类,本实施方式中,招募了6位(三男三女)被试进行实验,将kinect放置于被试者1.8m前方,对于实验者2-5,每位实验者按顺序做完设置的20种动作,每种姿势采样50次,共计4000个样本,而对于实验者1,每种姿势采样250次共计5000个样本,其中实验者1的50%数据用于训练,剩余50%用于测试,实验者2-5的所有数据用于测试。即通过逻辑回归算法建立实时的静态姿势识别系统(即分类器)。假设有n维特征向量x=[x0,x1,x2…,xn-1]t,参数向量θ=[θ0,θ1,θ2…,θn-1]t,,函数模型如下:

hθ(x)=g(θtx)

其中,定义内核函数g为

在一对多的逻辑回归分类中,每一类都要训练一个模型hθ(i)(x),在进行预测时选择hθ(i)(x)值最大的一类作为分类结果。即当对每一个姿势,训练一个一对多的分类器θ=[θ0,θ1,θ2…,θn-1]t,如果进来一个新的样本xi,计算概率向量p1*j=g(x(i)θ)则其中最大的元素下标就是识别的姿势编号。

当做出举起双手的动作时,存在两个姿势,即双手平举呈t字型和双手上举,当双手水平乘t字形时,hθ(i)(x)值在元素下标为双手水平姿势的编号下值最大,即判定为双手平举,同样可以识别出双手上举,即识别出两个静态姿势。

步骤s501:通过分类器对人体的动作进行识别,获得静态姿势识别结果。

步骤s601使用倒序识别法判定五帧内是否识别出两种定义的静态姿势,从而识别一个动态动作,具体实施方案包括如下步骤:

先对静态姿势进行判断,将静态姿势的对应关系定义如下并保存在变量static中。在做出举起双手的动作时,先识别出双手平举的姿势,保存其姿势编号于变量static中,其中,static变量作为每帧数据静态姿势识别的结果,可以通过c++标准库中的顺序容器vector,将其压如容器,并且以五帧为一个周期,五帧前的数据会从vector中删除,当前帧数据会和之前的帧进行比较,如在五帧内的后几帧发现了双手上举动作,则通过判断条件确认这五帧中有两个姿势双手平举和双手上举,从而识别动作举起双手。

基于同一发明构思,本申请还提供了与实施例一中的一种基于人体姿态的动作识别方法对应的装置,详见实施例二。

实施例二

本实施例提供一种基于人体姿态的动作识别装置,请参见图4,该装置包括:

骨骼数据获取模块401,用于通过深度传感器的骨骼跟踪技术获取人体的骨骼数据,骨骼数据包括人体关节点的三维坐标,将三维坐标转换至人体所在的世界坐标系;

骨骼数据滤波模块402,用于利用改进的限幅滤波算法对骨骼数据进行滤波,获得滤波后骨骼数据,其中,改进的限幅滤波算法具体包括:首先判断本次骨骼数据的抖动程度是否超过阈值,若本次骨骼数据的抖动程度未超过阈值,则采用滤波缓冲区的骨骼数据更新本次骨骼数据,否则继续判断上一次骨骼数据的抖动程度是否超过阈值,若上一次骨骼数据的抖动程度未超过阈值,则采用本次骨骼数据更新滤波缓冲区的骨骼数据;若上一次骨骼数据的抖动程度超过阈值,则判断本次骨骼数据是否在滤波范围内,若是则采用滤波缓冲区的骨骼数据更新本次骨骼数据,否则采用本次骨骼数据更新滤波缓冲区的骨骼数据;

角度特征提取模块403,用于根据转换后的三维坐标和预设角度计算方法对滤波后骨骼数据进行特征提取,获得由各个关节点的角度构成的角度特征;

训练模块404,用于基于逻辑回归算法和角度特征对预先获取的训练样本集进行训练,获得分类器;

姿势识别模块405,用于通过分类器对人体的动作进行识别,获得静态姿势识别结果;

动作识别模块406,用于基于静态姿势识别结果,采用倒序识别法判定五帧内是否识别出两种预设的静态姿势,如果是,则识别出一个动态动作,将其作为动作识别结果。

在一种实施方式中,所述深度传感器还获取深度信息,骨骼数据获取模块401具体用于:

根据深度信息获得深度传感器距离人体的实际距离;

根据实际距离和坐标转换公式将深度图像的三维坐标转换为世界坐标系下的实际坐标,其中,坐标转换公式为:

其中,(x,y)为实际坐标,(xd,yd,zd)为深度信息中的深度图像的三维坐标,w*h为深度传感器的分辨率,d和f为常数,其中,d=-10,f=0.0021。

在一种实施方式中,骨骼数据的抖动程度采用骨骼数据的抖动半径来表示。

在一种实施方式中,角度特征提取模块403具体用于:

采用距离计算公式计算关节点间的距离信息,其中,距离计算公式为:

其中,关节点包括a、b、c三点,其中关节点a的实际坐标为(x1,y1),关节点b的实际坐标为(x2,y2),关节点c的实际坐标为(x3,y3);

根据距离信息获得各关节点之间的连线的角度,将其作为角度特征,具体为:

其中,a表示关节点b和关节点c之间连线的距离,b表示关节点a和关节点c之间连线的距离,c表示关节点a和关节点b之间连线的距离,θ为ac与bc之间的夹角。

在一种实施方式中,训练模块404具体用于:

基于角度特征利用逻辑回归算法对预先获取的训练样本集进行训练,获得分类模型,其中,预先获取的训练样本集为每一帧的姿势数据;

通过测试集的数据验证分类模型的效果,调整超参数,获得调整后的分类器。

在一种实施方式中,分类器包括n个向量,形如θ=[θ0,θ1,θ2…,θn-1]t,且分类器中包括n个预设姿势以及对应的姿势编号,姿势识别模块405具体用于:

将待检测的人体动作作为样本xi,计算该样本的概率向量p1*j=g(x(i)θ),其中,i表示样本编号,j表示静态姿势的种类数量,g为逻辑回归算法的核函数;

概率向量最大的元素对应的下标为识别出的姿势编号,将识别出的姿势编号对应的姿势作为静态姿势识别结果。

由于本发明实施例二所介绍的装置,为实施本发明实施例一中基于人体姿态的动作识别方法所采用的装置,故而基于本发明实施例一所介绍的方法,本领域所属人员能够了解该装置的具体结构及变形,故而在此不再赘述。凡是本发明实施例一的方法所采用的装置都属于本发明所欲保护的范围。

实施例三

基于同一发明构思,本申请还提供了一种计算机可读存储介质500,请参见图5,其上存储有计算机程序511,该程序被执行时实现实施例一中的方法。

由于本发明实施例三所介绍的计算机可读存储介质,为实施本发明实施例一中基于人体姿态的动作识别方法所采用的计算机可读存储介质,故而基于本发明实施例一所介绍的方法,本领域所属人员能够了解该计算机可读存储介质的具体结构及变形,故而在此不再赘述。凡是本发明实施例一的方法所采用的计算机可读存储介质都属于本发明所欲保护的范围。

实施例四

基于同一发明构思,本申请还提供了一种计算机设备,请参见图6,包括存储器601、处理器602及存储在存储器上并可在处理器上运行的计算机程序603,处理器执行程序时实现实施例一的方法。

由于本发明实施例四所介绍的计算机设备,为实施本发明实施例一中基于人体姿态的动作识别方法所采用的设备,故而基于本发明实施例一所介绍的方法,本领域所属人员能够了解该计算机设备的具体结构及变形,故而在此不再赘述。凡是本发明实施例一的方法所采用的计算机设备都属于本发明所欲保护的范围。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。

显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本发明实施例的精神和范围。这样,倘若本发明实施例的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

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