正在加载图片...
·350· 智能系统学报 第14卷 的分割是手势智能识别之前的关键处理步骤,它 表1凸点位置分类及其与凸包轮廓的之间距离 可以有效地提高手势识别的计算效率以及手势识 Table 1 Convex point location classification and the dis- 别的准确率。因此,本文提出一种基于凸性检测☑ tance between location and its convex hull contour 和PCA降维算法1⑧相结合的手臂分割方法。 凸点编号 类型 位置(坐标) 距离 3.1凸性检测 1 远点 (208,191) 113152 凸性检测是理解物体轮廓的一种有效方法, 2 近点 (435,188) 608 就是求一组点集的凸包集合。它是计算机几何学 近点 (236,331) 162 的一个基本问题,其本质就是利用Graham Scan 远点 (322,158) 2468 算法来维护一个凸壳(凸包轮廓),通过不断地对 5 远点 (546,338) 8870 凸壳中加入新点或者删除影响凸性的点,来不断 地改变凸壳的形状,最终形成一个稳定的凸包, 6 近,点 (349,151) 201 其算法流程总结如下: 7 远点 (339,257) 31138 1)对点集的排序,其目的是为了梳理杂乱的 远点 (457,395) 8054 点集以提高算法的效率。这里采用极坐标系,找 9 近点 (209,190) 186 到y坐标最小的点(若y坐标相同则取x小的 10 远点 (396,183) 3597 点)记为Po,将Po与{P1,P2,,Pn}中每个点相连, 11 远点 (316,315) 21087 再以Po为极点,进而计算每条连线的极角并按从 小到大排列(若极角相等则计算距离由小到大排列)。 3)根据已有的凸包轮廓和凸点坐标,可以进 步求得凸点坐标和凸包轮廓之间的距离,将点 2)把Po、P1依次入栈,遍历剩下的点集 集分为距离凸包轮廓近的“近点”和距离凸包轮廓 Pen={P2,P3,p4,,pn}把属于凸包的点集人栈,其 远的“远点”,一般人的手腕都是凹陷处即远点, 他无关点集出栈。其中,可以根据叉积来判断入 所以寻找手臂分割线可以先从“远点”入手,若“远 栈和出栈,若依次遍历Pem中的每一个点,若当前 点”集合中没有再寻找“近点”集合。 点为凸包凸点时,则向左旋转,而没有向左旋转 3.2基于PCA降维的手臂分割线提取方法 的点则是非凸点。pP与P2的叉积在物理上可以理 PCA即主成分分析,用于图像和数据的降 解为两向量所组成的平行四边形的面积,而数学 维,其本质就是将高维数据降维到低维空间。这 上可以通过正负来判断方向。若P与2的叉积为 里探索将PCA降维方法应用于手臂分割线的提 负,相对于p%P,点P2在逆时针方向即左边人栈, 取,主要目的是要研究一种方法来便捷地得到手 若p1与p2的叉积为正,则相对于poP1,点P2在顺时 势的主要方向。基于手臂分割线与手势方向基本 针方向即右边进行栈顶元素出栈操作。依据这个 呈现垂直状态的客观事实,求得了手势的方向也 原则继续判断栈顶前两个元素与前点的位置关 就得到了手臂的分割线。基于PCA降维的手臂 系,最后栈中的点集就是本文需要找的凸点,连 分割线提取算法的具体步骤如下: 接后就是凸包。凸性检测实验判定手势凸点的输 1)求得原始静态手势图片的均值图片,并以 出结果如图10所示,其中轮廓为检测出的凸包轮 原始图片减去均值图片得到均差图片。 廓,圆圈为检测出的凸点,而表1记录了凸点位置 2)求得步骤1)中均差图片的协方差矩阵,再 与凸包轮廓之间的距离。 由协方差矩阵得到静态手势图片的特征值和特征 向量,将特征值和特征向量一一对应并按从大到 小进行排列。 3)取前k个特征向量,对均差图片进行降 维。基于只想从该方法中得到手势的方向,只要取 值meaneigval=-l(meaneigval为选取前meaneigv- al个特征值与其所对应的特征向量,因为一副静 态手势图片中,手势斜率为其主要特征且特征值 最大,因此meaneigval取值为I)即可得到原始静 图10凸性检测处理结果 态手势的斜率k。 Fig.10 A convexity detection result 4)为了有效降低计算量,此算法先遍历“远的分割是手势智能识别之前的关键处理步骤,它 可以有效地提高手势识别的计算效率以及手势识 别的准确率。因此,本文提出一种基于凸性检测[17] 和 PCA 降维算法[18]相结合的手臂分割方法。 3.1 凸性检测 凸性检测是理解物体轮廓的一种有效方法, 就是求一组点集的凸包集合。它是计算机几何学 的一个基本问题,其本质就是利用 Graham Scan 算法来维护一个凸壳 (凸包轮廓),通过不断地对 凸壳中加入新点或者删除影响凸性的点,来不断 地改变凸壳的形状,最终形成一个稳定的凸包, 其算法流程总结如下: 1) 对点集的排序,其目的是为了梳理杂乱的 点集以提高算法的效率。这里采用极坐标系,找 到 y 坐标最小的点 (若 y 坐标相同则取 x 小的 点) 记为 p0,将 p0 与{p1,p2,...,pn}中每个点相连, 再以 p0 为极点,进而计算每条连线的极角并按从 小到大排列 (若极角相等则计算距离由小到大排列)。 p1 p2 p1 p2 p0 p1 p1 p2 p0 p1 2 ) 把 p 0 、 p 1 依次入栈,遍历剩下的点 集 PLeft={p2,p3,p4,...,pn}把属于凸包的点集入栈,其 他无关点集出栈。其中,可以根据叉积来判断入 栈和出栈,若依次遍历 PLeft 中的每一个点,若当前 点为凸包凸点时,则向左旋转,而没有向左旋转 的点则是非凸点。 与 的叉积在物理上可以理 解为两向量所组成的平行四边形的面积,而数学 上可以通过正负来判断方向。若 与 的叉积为 负,相对于 ,点 p2 在逆时针方向即左边入栈, 若 与 的叉积为正,则相对于 ,点 p2 在顺时 针方向即右边进行栈顶元素出栈操作。依据这个 原则继续判断栈顶前两个元素与前点的位置关 系,最后栈中的点集就是本文需要找的凸点,连 接后就是凸包。凸性检测实验判定手势凸点的输 出结果如图 10 所示,其中轮廓为检测出的凸包轮 廓,圆圈为检测出的凸点,而表 1 记录了凸点位置 与凸包轮廓之间的距离。 3) 根据已有的凸包轮廓和凸点坐标,可以进 一步求得凸点坐标和凸包轮廓之间的距离,将点 集分为距离凸包轮廓近的“近点”和距离凸包轮廓 远的“远点”,一般人的手腕都是凹陷处即远点, 所以寻找手臂分割线可以先从“远点”入手,若“远 点”集合中没有再寻找“近点”集合。 3.2 基于 PCA 降维的手臂分割线提取方法 PCA 即主成分分析,用于图像和数据的降 维,其本质就是将高维数据降维到低维空间。这 里探索将 PCA 降维方法应用于手臂分割线的提 取,主要目的是要研究一种方法来便捷地得到手 势的主要方向。基于手臂分割线与手势方向基本 呈现垂直状态的客观事实,求得了手势的方向也 就得到了手臂的分割线。基于 PCA 降维的手臂 分割线提取算法的具体步骤如下: 1) 求得原始静态手势图片的均值图片,并以 原始图片减去均值图片得到均差图片。 2) 求得步骤 1) 中均差图片的协方差矩阵,再 由协方差矩阵得到静态手势图片的特征值和特征 向量,将特征值和特征向量一一对应并按从大到 小进行排列。 3) 取前 k 个特征向量,对均差图片进行降 维。基于只想从该方法中得到手势的方向,只要取 值 meaneigval=1(meaneigval 为选取前 meaneigv￾al 个特征值与其所对应的特征向量,因为一副静 态手势图片中,手势斜率为其主要特征且特征值 最大,因此 meaneigval 取值为 1) 即可得到原始静 态手势的斜率 k。 4) 为了有效降低计算量,此算法先遍历“远 表 1 凸点位置分类及其与凸包轮廓的之间距离 Table 1 Convex point location classification and the dis￾tance between location and its convex hull contour 凸点编号 类型 位置 (坐标) 距离 1 远点 (208, 191) 113 152 2 近点 (435, 188) 608 3 近点 (236, 331) 162 4 远点 (322, 158) 2 468 5 远点 (546, 338) 8 870 6 近点 (349, 151) 201 7 远点 (339, 257) 31 138 8 远点 (457, 395) 8 054 9 近点 (209, 190) 186 10 远点 (396, 183) 3 597 11 远点 (316, 315) 21 087 图 10 凸性检测处理结果 Fig. 10 A convexity detection result ·350· 智 能 系 统 学 报 第 14 卷
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有