1.一种基于Kinect的单视点手势姿势识别方法,其特征在于,具体按照以下步骤实施:步骤1,以手腕关节点为初始种子坐标,通过对手腕关节点的邻域像素进行递归遍历,提取手势区域;
步骤2,对步骤1提取的手势区域采用中值滤波及掩膜图像法进行去噪处理;
步骤3,对经步骤2去噪处理的手势区域,运用主成分分析算法计算三维手势点云数据的主趋势方向以及三维点云数据的手势点云中心点,并进行胳膊区域剔除;
步骤4,对经步骤3剔除胳膊区域的手势区域分别进行基于曲率和挠率的3D-SIFT特征点提取,实现对手势姿态凹凸特征的表征及对手势姿态扭曲程度的度量;
步骤5,利用步骤3计算的手势三维手势点云数据的主趋势方向、三维点云数据的手势点云中心点以及步骤4计算得到的3D-SIFT特征点来构造点特征描述子;
步骤6,基于步骤5的点特征描述子构造方法,计算源手势点云和目标手势点云的点特征描述子进行匹配识别及优化。
2.根据权利要求1所述的一种基于Kinect的单视点手势姿势识别方法,其特征在于,所述步骤1具体为:步骤1.1,从微软Kinect实时追踪得到的人体骨架信息中获取人体手腕关节点坐标P;
步骤1.2,以手腕关节点P为初始种子像素点,计算手腕关节点P为与八邻域各点Pi,i∈[0,7]的深度差值difi,i∈[0,7],当difi小于深度阈值Tdepth时,像素点Pi属于手势区域,将其加入手势区域G,并设置Pi为种子像素;
步骤1.3,以Pi为种子像素点,重复步骤1.2,通过对种子点邻域像素进行递归遍历得到手势区域G。
3.根据权利要求2所述的一种基于Kinect的单视点手势姿势识别方法,其特征在于,所述步骤2具体为:步骤2.1,采用中值滤波对步骤1得到的手势区域G进行去噪处理,得到去除噪声点并平滑掉手势区域细节特征的深度图Gtemp;
步骤2.2,使用二值化阈值对Gtemp进行二值化处理,得到掩摸图像Gmask;
步骤2.3,将掩摸图像Gmask与手势区域深度图Gtemp做“与”运算,得到既去除了手势边界附近孤立噪声点同时又保留了手势区域表面细节特征的手势区域深度图Gdenoised,此时Gdenoised即为最终去噪后的手势区域深度图。
4.根据权利要求3所述的一种基于Kinect的单视点手势姿势识别方法,其特征在于,所述步骤3具体为:步骤3.1,通过主成分分析算法计算手势三维手势点云数据的主趋势方向;
步骤3.2,过手腕关节点作与步骤3.1求出的主趋势方向垂直的平面M,借助平面M可以将手势区域分割为两部分;
步骤3.3,从Kinect追踪的骨架信息中直接获取大拇指关节点,大拇指关节点所在的那部分点云数据即为剔除了胳膊区域的手势点集区域。
5.根据权利要求4所述的一种基于Kinect的单视点手势姿势识别方法,其特征在于,所述步骤3.1具体为:将步骤2得到的去噪后的手势区域Gdenoised中的某像素点P,像素点P的点云数据由n个顶点组成,即P={p1,p2,…pn}(pi=(xi,yi,zi)T∈R3,i=1,2,…,n)通过式(1)计算该三维点云数据的协方差矩阵C;
其中,xi,yi,zi中是点pi的三个坐标值,pc为三维点云数据的手势点云中心点,通过对三维点云数据进行加权平均得到,通过式(2)计算:通过对协方差矩阵C进行求解可以得到三个特征值λ1、λ2、λ3和它们对应的特征向量v1、v2、v3,最大的特征值所对应的特征向量方向就是三维点云数据的主趋势方向,主趋势向量记为
6.根据权利要求4所述的一种基于Kinect的单视点手势姿势识别方法,其特征在于,所述步骤4具体为:步骤4.1,基于曲率进行3D-SIFT特征点提取,实现对手势姿态凹凸特征的表征;
首先,通过对手势三维点云当前点的k个近邻点进行最小二乘平面拟合,然后求取拟合平面的法向和曲率作为该点的法向和曲率的估计值;
然后,通过对手势三维点云数据进行逐次降采样来构建多个尺度的三维空间;
最后,在需要检测的尺度空间中对每个顶点搜索其k个近邻点,并将每个顶点的曲率值与该尺度空间下的近邻点的曲率值和相邻尺度空间下的近邻点的曲率值进行比较,从而确定所检测尺度空间的局部曲率极值点,该局部曲率极值点即为手势三维点云数据基于曲率的3D-SIFT特征点;
步骤4.2,利用挠率进行3D-SIFT特征点提取,实现对手势姿态扭曲程度的度量;
首先通过邻域点估计出所有点的副法线向量,基于当前点邻域内各点的副法线向量来进一步估计出当前点的挠率值;
然后,通过对手势三维点云数据进行逐次降采样来构建多个尺度的三维空间;
最后,在需要检测的尺度空间中对每个顶点搜索其k个近邻点,并将每个顶点的挠率值与该尺度空间下的近邻点的挠率值和相邻尺度空间下的近邻点的挠率值进行比较,从而确定所检测尺度空间的局部挠率极值点,该局部挠率极值点即为手势三维点云数据基于挠率的3D-SIFT特征点。
7.根据权利要求6所述的一种基于Kinect的单视点手势姿势识别方法,其特征在于,所述步骤5具体为:步骤5.1,计算由手势点云中心点指向每个3D-SIFT特征点的方向向量,记为同时,计算手掌中心点到所有3D-SIFT特征点平均距离disavg其中,pc是手势点云中心点, 为点pc的三个坐标值,pt(t=1,2,...,k)为手势点云的k个3D-SIFT特征点, 为点pt的三个坐标值;
步骤5.2,对主趋势向量 单位化得到单位化后的主趋势向量 并使用主趋势向量和方向向量 计算两向量之间的夹角余弦cosθ;
步骤5.3,基于平均距离disavg对方向向量 的模进行标准化后的结果、主趋势向量 和两向量夹角θ,计算两向量的点积dott,并以此作为点特征描述子。
8.根据权利要求7所述的一种基于Kinect的单视点手势姿势识别方法,其特征在于,所述步骤6具体为:步骤6.1,根据步骤5求取的手势三维点云曲面的点特征描述子dott,度量两特征点p与q之间的差异其中,dotp和dotp分别是特征点p与q所对应的点特征描述子,ε为根据手势点云数据的特点所设置的最小阈值,该阈值是通过计算源手势点云中心点与目标手势点云中心点的点特征描述子间的差异来实现自适应获取;
其中,n为源点云曲面的顶点数目,m为目标点云曲面的顶点数目;k为倍率,取值为0到1之间,本文取值0.6; 指的是源手势点云中心点的点特征描述子, 指的是目标手势点云中心点的点特征描述子, 为总体即源手势点云的特征描述子总和,为总体即目标手势点云的特征描述子总和;
步骤6.2,分别计算源手势点云和目标手势点云上每个3D-SIFT特征点的点特征描述子,记为 和步骤6.3,对于源手势点云上每个特征点的点特征描述子,在目标手势点云所有特征点的点特征描述子上进行查找,如果在目标手势点云特征点的点特征描述子中找到与其差异小于阈值ε的特征点,就将其作为源手势点云当前特征点的备选匹配点;
步骤6.4,对于源手势点云上的每个特征点,取其所有备选匹配点中点特征描述子与其差异最小的特征点作为当前源手势点云特征点在目标手势点云上的对应匹配点;
步骤6.5,从步骤6.4即可获得源手势点云和目标手势点云上特征点之间的对应关系,根据该对应关系计算匹配精度ψ,即识别的准确度;
其中,map代表源手势点云与目标手势点云之间特征点的对应关系;maptotal代表总的对应关系匹配数量,mapright代表正确匹配的对应关系数量;
步骤6.6,对步骤6.5的匹配精度ψ进行进一步优化,用快速点特征直方图FPFH来对基于曲率和挠率融合的3D-SIFT特征点的局部曲面信息进行描述得到FPFH特征描述子;
步骤6.7,步骤6.7,计算步骤6.6获取的FPFH特征描述子的k近邻,在其k个近邻中使用步骤5.3的点积方法来进行特征点对应关系的筛选,从而提高源手势点云曲面与目标手势点云曲面间3D-SIFT特征点的匹配精度。
9.根据权利要求8所述的一种基于Kinect的单视点手势姿势识别方法,其特征在于,所述步骤6.6中FPFH特征描述子的构造方法如下:步骤6.6.1,计算查询点与其k邻域范围内其它点的连接关系,并据此建立了一个简化的点特征直方图,称为简单点特征直方图SPFH;
步骤6.6.2,分别对查询点k邻域范围内的每个点计算其k邻域,按步骤6.6.1的做法建立每个点的SPFH;
步骤6.6.3,对于每个查询点重新计算其k近邻点;并且根据式(11)以两点之间的距离为权重,借助当前查询点的近邻点的SPFH值来计算当前查询点FPFH特征描述子,其中权重ωk是查询点p和其邻近点pk之间的距离,