0 引言
在一些简单的应用场合,特别是针对手部的,并不需要太多的手部信息,往往关注手部的运动信息,通过识别手部的运动信息便可实现人机交互操作。正是基于此,本文着重关注手部运动特征,通过对运动特征的分析来实现人机交互。本文提出一种基于样本回归分析的手部动作识别算法。
1 运动方向判别系统
手部动作识别需要依次完成数据采集、预处理、动作解析、特征点提取、创建数据点集、拟合曲线和动作分析等步骤。
由于完成手部动作识别需要经过动作准备、动作执行与动作结束等三个阶段,动作准备和动作结束两个阶段用于确定动作的开始与结束,动作执行阶段是手部动作模型的重要数据来源。为降低手部模型的复杂程度,建模时可只考虑动作执行时的数据。
图 2 展示了利用动作执行阶段特征点运动变化情况以及创建数据点集的过程,此过程以 4 帧为例说明,实际应用应取较多帧。第 1-4 帧图片中的圆点表示不同时刻手部质心在图像中的位置。
如图 3 所示为运动方向判别算法组成示意图, 表述了算法的流程与组成,具体解释如下:
(1) 根据使用特征区域质心创建的数据集拟合一个圆;
(2) 根据圆的半径大小将散点趋势分为直线、弧线;
(3) 根据直线、弧线分别判定轨迹的动作特征。
2 动作识别算法
在此算法中,核心的算法是最小二乘法拟合圆曲线、线性回归判定上下左右和向量法判定左右旋转等三个算法,此处不再赘述,请翻阅相关资料。
3 实验结果
3.1 数据采集与手部提取
运动分析主要针对上、下、左、右、左旋和右旋等6种手部动作。在进行视频处理时,首先对视频图像进行降噪处理;接着采用Laplace算子进行锐化,提高了手部检测和分割的准确性;最后,采用基于肤色的最大连通域算法将运动的手部分割出来。实验结果如图4所示,准确提取了手部区域。
3.2 数据点拟合
在进行手部提取之后,需要根据某一特征将运动的手部转化为一个点,本文将提取手部的质心作为数据点。提取若干运动手部特征的质心后,便可得到一组数据点,此样本点的趋势就是手部运动的轨迹。如图5所示,展示了直线与旋转两种情况下拟合的圆,拟合圆的算法可参考我的博文。如表2所示,以采集的7组样本点为例,拟合圆并计算出其参数。
由表可以看出,对于一组数据点,均采用圆拟合的方式,根据拟合圆的半径便很容易判别直线动作或者旋转动作。当作直线动作时,拟合圆的半径R一般均大于2000;当作旋转动作时,半径R一般均小于400。对于R介于400~2000的情况,则认为手部动作不明显,不作判断,其目的在于避免误判情况。
3.3 软件
为了便于展示算法的功能,将该算法编成软件,有兴趣可访问我博客下载体验。
4 声明
本文只做学习研究!
如有疑问,可留言反馈或通过邮件交流(hardenqiu@foxmail.com)。