基于双目视觉的手势关节点跟踪方法*
2020-08-11史金龙
高 璐 史金龙 孔 秀
(江苏科技大学计算机学院 镇江 212003)
1 引言
随着人工智能、图像识别技术和通讯技术的迅速发展,人机交互技术[1]成为了科学家研究的热点。基于视觉的手势识别,作为一种非接触的人机交互模式,因其符合人们的动作习惯,具有直观、操作性强等优点[2],受到广大用户的关注与认可,并逐渐普及到人们的生活中。
基于视觉的手势跟踪主要分为手势关节点的检测与识别、特征点匹配、手势的跟踪、手势运动预测。从两个相机拍着的视频中获得手势关节点的三维坐标和运动参数,进行轨迹预测。与静态物体的三维重建相比,动态手势的轨迹跟踪更为复杂。除了将静态物体建成三维立体模型[3]外,还需要考虑时间序列上目标的跟踪。因此,从二维视频中恢复三维轨迹,仍具有挑战性[4]。
2 相关工作
近年来,越来越多的学者投入到人机交互、手势跟踪的研究中。文献[5]中采用三维空间加速度来记录手的轨迹,然后采用时间动态规划算法进行手势分类、并转化成机器手的控制指令。该方法较为复杂,成本较高。文献[6]中,融合Camshift和粒子滤波进行手势跟踪。文中将整个手作为一个目标物体,寻找轮廓并找到手势运动的大概位置,且基于单目视觉跟踪,具有单一性。文献[7]采用Kinect传感器得到手势运动的三维数据,并转化成一维手势轨迹进行动态规划。虽然提高了鲁棒性,但是借助传感器等机械设备,在人机交互的应用中具有局限性。
本文通过基于仿射变换的马氏距离算法和动态线性模型跟踪方法,重建手势关节点的轨迹,进行手势跟踪和轨迹预测。从而实现了基于双目视觉的手势跟踪,提高了特征点匹配的精确度和手势跟踪的准确性,并降低了时间复杂度。
3 基于双目视觉的跟踪模型
3.1 跟踪模型概述
本文使用两台参数相同、已经标定的相机模拟人体双眼,拍摄目标的运动视频,并获取每一帧图像,进行特征点检测、轨迹重建与分析。首先,采用张正友标定法[8~9]对两台相机进行立体标定,得到相机在世界坐标系的相对位置,图像坐标系与世界坐标系之间的转换。运用标定得到的相机内外参数、畸变系数,对原始图像进行立体校正[10],使同一时刻左右视图对应的图像块保持在同一水平上,从而降低匹配复杂度。在空间匹配过程中,首先通过基于边缘特征的优化排序Hough梯度法进行关节点目标提取,找到特征点的中心坐标。其次,采用基于仿射变换的马氏距离算法进行左右对应点的匹配。再根据立体视觉原理[11]和三角形相似法则得到特征点的三维坐标。时间序列跟踪过程中,采用基于金字塔光流[12]的线性运动模型方法进行跟踪,并通过特征点的运动参数,进行手势姿态分析和运动轨迹预测。跟踪模型的结构框图如图1所示。
图1 手势跟踪模型的结构框图
本文根据手部的骨骼构成,构建19个标记点,分别表示手背、腕掌关节和指关节。进行有效性手势判定后,只要跟踪关节点,就可以对其运动轨迹进行识别。关节点模型如图2所示。
3.2 立体校正
立体校正是为了使左右视图平行对准,从而降低匹配复杂度。在相机标定步骤中,已经获得旋转矩阵R、平移向量T和畸变系数。通过建立左右相机的合成矩阵和行对准转换矩阵,实现立体校正。步骤如下:
Step1:通过畸变系数消除图像的畸变。
Step2:相机旋转矩阵R划分为左右相机的合成矩阵rl、rr,目的是实现图像平面平行。
Step3:得到行对准矩阵,建立换行矩阵Rrect,使极点转换到无穷远处。其中,Rrect的创建如下:
图2 手势关节模型
3.3 目标检测
目标检测有许多经典算法,如模板匹配、Hough变换、SURF、SIFT[13~14]等。本文检测的目标是带有标记圆点的手势关节点。如果使用SURF、SIFT等算法,每个圆点上会检测出多个特征点,无法进行精准匹配。相较而言采用优化的Hough变换,可以找到更精确的目标位置。
首先将图像转化成灰度图,采用非局部欧式中值去噪算法[15]消除整幅图像中存在的高斯噪声,再调用形态滤波函数进行图像边缘增强[16],最后进行特征点提取。对于形状较清晰、形变不大的稀疏粒子,采用优化的Hough梯度法提取特征点。
经典的Hough变换是在参数空间上画出一个完整的圆进行投票,虽然对噪声不敏感,但精度不足、对参数要求比较严格,总体稳定性不佳。所以,提出基于优化排序的Hough梯度法,在传统的梯度法中,加入分数过滤,将找出的圆与实际轮廓对比重合率,按照分数高低排序,过滤掉低分的圆。具体如下。
1)先计算多个轮廓梯度向量;
2)根据搜索半径R,沿着梯度方向和反方向距离轮廓点R长度各投一点,将候选中心存放在累加器中降序排列,记数越大越可能为圆心。
3)根据所有边界图中的非零点到中心的距离进行升序排列,估计最佳半径。
4)保留得分高的圆,与canny算子检测到的实际轮廓进行比对,按照重合像素的总数进行排序,得到分数最高的圆。
3.4 目标匹配
通过目标检测,可以得到手势关节点的特征中心,然后采用基于仿射变换的马氏距离算法进行对应点匹配。
图像中的任意一点的特征属性可以由该特征点以及周围的特征点之间的局部关系进行描述。由于每个点离散分布,马氏距离的大小不仅与各个点集的自身分布有关,还与各个点集的相对分布有关。因此,找到合适的点集是目标匹配的关键。不仅可以降低匹配复杂度,还可以提高匹配正确率。
在双目视觉模型中,通过立体校正后,两台相机的成像平面是共面的,且左右视图的x方向和y方向相互平行。根据仿射变换原理[17],将左图的向量空间映射到右向量空间上。并构成投影点点集L'={(x1,y1)l,(x2,y2)l,…,(xm,ym)l} ,与右图的特征点点集R={(x1,y1)r,(x2,y2)r,…,(xm,ym)r} 构成两个待匹配集合。接着,遍历L'和R,取相同的样本空间,根据式(3)得到每个点对应的马氏距离遍历左图中每个点,计算差值,根据马氏距离谱特征[17]的不变性可推导出:Δd的最小值所对应的 (xi,yi)l和 (xi,yi)r为匹配点。
3.5 手势跟踪
本文采用基于金字塔光流的动态线性模型法进行手势关节点跟踪。令线性运动二阶线性状态空间函数为,其中为第n帧图像的特征点坐标,则动态线性模型为
由于手势在运动过程中发生不同的变化,只采用动态模型进行预测,前后两帧之间易出现跟踪错误现象,随着时间步长的推移,错误率会逐渐增加,因此结合光流法进行优化。采用金字塔分层Lucas-Kanade光流跟踪法,以待跟踪点P为中心的一个小的空间域Ω上,P点周围各点运动矢量保持恒定;给每个点分配不同的权重,离中心点越近的点所占的权重越大;最后使用加权最小二乘法估计光流。本文结合金字塔LK光流和线性模型法,以提高跟踪准确度。具体步骤如下:
Step1:第n帧图像上初始化特征点窗口大小和位置。
Step2:采用动态线性模型迭代获得新的搜索窗口。
Step3:采用金字塔分层LK光流法预测第n+1帧特征点的位置。
Step4:筛选出跟踪成功的点,即光流跟踪的预测位置出现在搜索窗口中。
此方法先用过动态线性模型得到搜索范围,再根据光流估计值平移邻域窗口,计算图像光流值。在搜索范围内筛选最佳对应点,精确度较高。
4 实验结果分析
本文使用两台FDR-AX30相机来模拟人的双目视觉,水平并排放置。首先对相机进行立体标定,得到两个相机在世界坐标的相对位置。然后根据标定参数建立双目相机的合成矩阵和行对准转换矩阵,实现立体校正。立体校正对比如图3所示。
图3 立体校正对比示意图
4.1 目标检测与匹配
本文使用传统的Hough和优化的Hough梯度法进行对比,可以优化的Hough梯度检测的结果较为精准。比较结果如图4所示。
图4 特征点提取方法对比图
在点的匹配上,采用SURF算法与本文方法进行比较。匹配数据如表1所示,匹配效果如图5所示。
表1 特征点匹配方法比较
图5 匹配方法对比
图5(a)为本文所使用方法,对应点连接线互相平行,匹配效果达到要求。图5(b)存在许多错误匹配点。引入极线约束条件后,去除了781个匹配错误的点,但匹配率仍然较低。可见,本文方法精确度较高。
4.2 手势跟踪
在时间序列跟踪上,采用经典LK光流、动态线性动态模型跟踪法和本文的优化方法进行对比。比较下一帧特征点的预测值与真实值在x方向和y方向的坐标差Δx,Δy和误差距离Δs。其中,Δx=x1-x0,Δy=y1-y0,。如图6所示。
图6 三种方法的误差对比
图6(a)和(b)分别展示了第69帧手势运动数据集的19个关节点在x方向和y方向的坐标差。x轴为关节点的序号,y轴表示误差值。图6(c)表示时间序列上所有点的平均误差距离(Δs1+Δs2+...+Δsn)/n。其中,x轴表示时间序列t,y轴表示平均误差距离。采用动态线性动态模型跟踪法和LK光流法得到的预测值,与真实值之间误差较大。本文方法的误差范围较小,在时间序列上可以跟踪成功。
4.3 三维重建与轨迹拟合
根据三角测量和双目立体视觉的原理,将空间上对应匹配,时间序列上连续的手势关节点的二维坐标转化成三维坐标。并通过最小二乘曲线拟合[18]方法重建手势关节点的运动轨迹。
如图7(a)在Matlab中展示了第60帧手势的三维关节点,并将关节点骨架连接。(b)展示了第37帧、第60帧、第93帧和第161帧的手势形态和整个时间序列上关节点的运动轨迹。
4.4 轨迹预测
通过三维重建,准确得到手势关节点的空间坐标。通过时间序列跟踪,可以计算出关节点的运动信息,以推断其运动趋势。运动速度、加速度公式如下所示:
图7 手势重建与轨迹跟踪示意图
在三维坐标集中,计算第m帧中特征点Pm在x,y,z方向上的速度Vxi,Vyi,Vzi和加速度axi,ayi,azi。令:
将运动参数代入式(8),得到手势运动的预测位置,并在Matlab中展示,其中点画线为真实轨迹,加粗段为预测轨迹。如图8所示。
图8 轨迹跟踪
5 结语
本文主要研究手势关节点运动的跟踪。在传统的三维重建模型的基础上,提出了优化的特征点匹配和跟踪方法。实验结果显示,采用基于仿射变换的马氏距离算法,相较传统的SURF算法提高了匹配准确率;此外,基于金字塔光流的动态线性模型法,减少了跟踪误差,实现了轨迹跟踪和预测。在人机交互、三维手势跟踪方面具有一定的研究价值。下一步将根据手势关节点的运动参数、运动方向进行手势行为分析,为后期用动态数据驱动静态机器手臂打下基础。