一种基于人体姿态的动作识别方法及装置制造方法及图纸

技术编号:19965184 阅读:45 留言:0更新日期:2019-01-03 13:19
本发明专利技术提供了一种基于人体姿态的动作识别方法及装置,其中的方法包括:通过改进的限幅滤波算法得到的滤波后的骨骼数据,通过改进的角度计算方法获得角度特征,对分好类的角度特征基于逻辑回归进行训练,得到训练后的分类器,再通过分类器得到对人体静态姿势的识别结果,最后根据静态姿势的识别结果采用倒序法识别出人体的动作。本发明专利技术实现了提升识别速度和提高识别准确性的技术效果。

An Action Recognition Method and Device Based on Human Posture

The present invention provides an action recognition method and device based on human body posture. The method includes: filtering skeletal data obtained by improved limiting filtering algorithm, obtaining angle features by improved angle calculation method, training good angle features based on logical regression, obtaining trained classifier, and then obtaining human body stillness by classifier. At last, according to the static posture recognition results, the human motion is recognized by reverse order method. The invention realizes the technical effect of improving recognition speed and accuracy.

【技术实现步骤摘要】
一种基于人体姿态的动作识别方法及装置
本专利技术涉及人机交互
,特别涉及一种基于人体姿态的动作识别方法及装置。
技术介绍
随着时代的发展,人们呼唤更自然的人机交互方式,将人与人的交互方式引入到人机交互中,被称为“自然”交互方式。这其中包括了一系列对人体、手臂以及手势进行识别的技术。在这些自然的交互方式里,有动作、手势、语音等方式。动作是人和其他物体的重要区别。人们通过姿势来表达一定的信息和情感,比如在体育比赛中,裁判员使用各种姿势来传递信息。因此,寻找一个好的方法来识别人体姿势是非常有必要的。传统的人体动作识别技术往往使用普通摄像设备、雷达或者一些可穿戴传感器设备等媒介,这些方式分别在识别效率、成本、环境约束等一个或多个方面的缺陷使得这项技术的应用相对受限。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.一种基于人体姿态的动作识别方法,其特征在于,包括:步骤S1:通过深度传感器的骨骼跟踪技术获取人体的骨骼数据,所述骨骼数据包括人体关节点的三维坐标,将所述三维坐标转换至人体所在的世界坐标系;步骤S2:利用改进的限幅滤波算法对所述骨骼数据进行滤波,获得滤波后骨骼数据,其中,所述改进的限幅滤波算法具体包括:首先判断本次骨骼数据的抖动程度是否超过阈值,若本次骨骼数据的抖动程度未超过所述阈值,则采用滤波缓冲区的骨骼数据更新本次骨骼数据,否则继续判断上一次骨骼数据的抖动程度是否超过所述阈值,若上一次骨骼数据的抖动程度未超过所述阈值,则采用本次骨骼数据更新滤波缓冲区的骨骼数据;若上一次骨骼数据的抖动程度超过所述阈值,则判断所述本次骨骼数据是否在滤波范围内,若是则采用所述滤波缓冲区的骨骼数据更新所述本次骨骼数据,否则采用所述本次骨骼数据更新所述滤波缓冲区的骨骼数据;步骤S3:根据转换后的三维坐标和预设角度计算方法对所述滤波后骨骼数据进行特征提取,获得由各个关节点的角度构成的角度特征;步骤S4:基于逻辑回归算法和所述角度特征对预先获取的训练样本集进行训练,获得分类器;步骤S5:通过所述分类器对人体的动作进行识别,获得静态姿势识别结果;步骤S6:基于所述静态姿势识别结果,采用倒序识别法判定五帧内是否识别出两种预设的静态姿势,如果是,则识别出一个动态动作,将其作为动作识别结果。...

【技术特征摘要】
1.一种基于人体姿态的动作识别方法,其特征在于,包括:步骤S1:通过深度传感器的骨骼跟踪技术获取人体的骨骼数据,所述骨骼数据包括人体关节点的三维坐标,将所述三维坐标转换至人体所在的世界坐标系;步骤S2:利用改进的限幅滤波算法对所述骨骼数据进行滤波,获得滤波后骨骼数据,其中,所述改进的限幅滤波算法具体包括:首先判断本次骨骼数据的抖动程度是否超过阈值,若本次骨骼数据的抖动程度未超过所述阈值,则采用滤波缓冲区的骨骼数据更新本次骨骼数据,否则继续判断上一次骨骼数据的抖动程度是否超过所述阈值,若上一次骨骼数据的抖动程度未超过所述阈值,则采用本次骨骼数据更新滤波缓冲区的骨骼数据;若上一次骨骼数据的抖动程度超过所述阈值,则判断所述本次骨骼数据是否在滤波范围内,若是则采用所述滤波缓冲区的骨骼数据更新所述本次骨骼数据,否则采用所述本次骨骼数据更新所述滤波缓冲区的骨骼数据;步骤S3:根据转换后的三维坐标和预设角度计算方法对所述滤波后骨骼数据进行特征提取,获得由各个关节点的角度构成的角度特征;步骤S4:基于逻辑回归算法和所述角度特征对预先获取的训练样本集进行训练,获得分类器;步骤S5:通过所述分类器对人体的动作进行识别,获得静态姿势识别结果;步骤S6:基于所述静态姿势识别结果,采用倒序识别法判定五帧内是否识别出两种预设的静态姿势,如果是,则识别出一个动态动作,将其作为动作识别结果。2.如权利要求1所述的方法,其特征在于,所述深度传感器还获取深度信息,步骤S1具体包括:步骤S1.1:根据所述深度信息获得Kinect2距离人体的实际距离;步骤S1.2:根据所述实际距离和坐标转换公式将所述三维坐标转换为世界坐标系下的实际坐标,其中,所述坐标转换公式为:其中,(x,y)为实际坐标,(xd,yd,zd)为深度信息中的深度图像的三维坐标,w*h为深度传感器的分辨率,D和F为常数,其中,D=-10,F=0.0021。3.如权利要求1所述的方法,其特征在于,步骤S2中,骨骼数据的抖动程度采用骨骼数据的抖动半径来表示。4.如权利要求1所述的方法,其特征在于,步骤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之间的夹角。5.如权利要求1所述的方法,其特征在于,步骤S4具体包括:步骤S4.1:基于所述角度特征利用逻辑回归算法对所述预先获取的训练样本集进行训练,获得分类模型,其中,所述预先获取的训练样本集为每一帧的姿势数据;步骤S4.2:通过测试集的数据验证...

【专利技术属性】
技术研发人员:陈加张玉麒宁国勤左明章
申请(专利权)人:华中师范大学
类型:发明
国别省市:湖北,42

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1