本发明属于图像处理领域,涉及一种手势分割方法。
背景技术:
手势识别作为人机交互的重要纽带,主要分成两个方面,一是手势分割;二是手势识别。如何高效且精确的提取出手势区域一直是难点,带有手臂或其他区域会对手势识别产生影响,不仅影响识别的精度,还影响识别的速度。基于此,我们提出了一种基于kalman滤波的手势提取方法。
技术实现要素:
本发明的目的是提供一种可以有效的提取手势区域,提高识别精度的手势分割方法。技术方案如下:
一种基于kalman滤波的手势分割方法,包括下列步骤:
步骤1用kinect采集深度图像和骨骼信息,利用深度阈值分割出大致的手势区域,得到带有手臂和手掌区域的图像;
步骤2kalman滤波的预测阶段,将骨骼点中手掌点和手腕点分别表示为一个六维的状态向量,利用前一帧预测当前帧的状态,得到预测状态向量;
步骤3在kalman滤波的更新阶段,通过当前的测量状态和kalman增益更新预测状态,得到更新后的手掌点和手腕点的坐标信息。
步骤4连接更新后的手掌点和手腕点,得到直线l,在l上的每一个像素点作l的垂线,每条垂线与手势边缘相交,查找所有垂线段中最短的那条,从该垂线段进行分割,去除手掌以下区域;
步骤5去椒盐噪声,用最大矩形框寻找手势区域,并将手势区域裁剪成矩形框大小的图像;
步骤6归一化图像的大小,得到手势区域图像。
附图说明
图1(a)基于深度信息分割出的手势;(b)去除手臂后的手势区域
具体实施方式
采用微软的kinect传感器,获取深度图像和骨骼点的信息。通过获取到的骨骼点信息可以确定手掌点在深度图像中的坐标,而且还能得到手掌点到kinect的距离,我们可以设定一个深度阈值将手掌从背景中分割开来,公式如下:
dpalm-δd1<z(x,y)<dpalm+δd2(1)
其中dpalm是手腕点的深度信息,z(x,y)是深度图像中的像素点的深度信息,δd1和δd2代表设定的深度阈值。
实验中必须确保手掌和手腕点的准确性,而微软提供骨骼追踪的程序中会有误差,所以在使用骨骼点坐标前需要对追踪系统进行优化。我们提出了一种基于kalman滤波的骨骼点的优化方法,具体的实现分为两个部分,也就是kalman的两个过程----预测和更新。每一个点用一个四维的向量表示,k-1时刻手掌点表示为
其中,
其中kk是klaman增益,也叫最优kalman增益,方程表示间公式(5);h是转移矩阵,将四维的状态向量转化为二维测量向量;zk是观测量,它的误差也服从零均值高斯分布。
在每次更新过程协方差矩阵也跟着更新一次,见公式(6)。
在kalman滤波器更新完手掌点和手腕点的坐标之后,接下来需要去除手臂部分,并提取手势部分,最后将图像归一化。具体步骤如下
(1)先是用kinect采集手势的图像,并用手掌点的深度信息对手势区域分割,得到的手势图像如图1所示,
(2)在手势分割的过程中,用kalman滤波将手掌点和手腕点的坐标进行预测和更新,保证手腕点和手掌点坐标的准确性,便于用于下一步的去手臂过程。
(3)去手臂:
a.将上步更正的手掌和手腕点连接起来直线l;
b.直线l上的每一个像素点作l的垂线每条垂线与手势区域想成一条垂线段;
c.查找所有垂线段中最短的那条即为腕线;
d.从该万献初进行分割,去除手臂部分,即可得到手势区域。
(4)提取手势区域
a.去燥(椒盐噪声),去出手势外区域的干扰;
b.寻找手势的轮廓,确定其中最大轮廓即为手势区域;
c.将手势转化为轮廓大小的图像。
(5)归一化,将图像变成28*28大小的,以便后面的识别过程。
本发明的有益效果如下:
(1)手势分割过程中,因手的形状大小,或手的移动引起的骨骼点追踪不准确的情况,用kalman滤波能有效的去除这种干扰。
(2)手势分割后可能会存在残留手臂的情况,我们提出的方法能有效的去除手臂,在识别的时候就能提高手势识别的精度。