发明名称 基于Leap Motion和Kinect的手势识别方法
摘要 本发明公开了一种基于Leap Motion和Kinect的手势识别方法,通过Leap Motion传感器获取指尖3D位置,手掌心位置以及手的方向信息,由这些信息计算出手指角度、手指尖到手掌心的距离以及手指尖的高度三种特征信息;同时利用Kinect传感器获取场景的深度信息和彩色信息,通过手部区域提取,随后获取圆形度、填充率、周长比这三种手势特征信息;融合Leap Motion和Kinect两个传感器获取的手势特征信息,对需要识别的每种手势采集若干样本构成训练样本集,利用这些样本集对SVM分类器进行训练;最后将需要识别的手势输入到训练好的SVM分类器中进而对手势进行识别。
申请公布号 CN106598227A 申请公布日期 2017.04.26
申请号 CN201611033457.8 申请日期 2016.11.15
申请人 电子科技大学 发明人 刘珊;郑文锋;曾庆川;杨波;李晓璐;曹婷婷
分类号 G06F3/01(2006.01)I;G06K9/00(2006.01)I;G06K9/62(2006.01)I 主分类号 G06F3/01(2006.01)I
代理机构 成都行之专利代理事务所(普通合伙) 51220 代理人 温利平
主权项 一种基于Leap Motion和Kinect的手势识别方法,其特征在于,包括以下步骤:(1)、使用Leap Motion传感器获取手的相关点坐标和手的姿态特征信息;(1.1)、Leap Motion传感器建立一个空间坐标系,坐标系原点是传感器中心,+X轴平行传感器指向右方,+Y轴指向上方,+Z轴指向背离屏幕的方向;通过Leap Motion传感器获取指尖位置,手掌心位置以及手的方向信息;(1.2)、计算手指角度A<sub>i</sub>根据步骤(1.1)获取的信息,计算相对于手方向的投影指尖的方向对应的手指角度A<sub>i</sub>:A<sub>i</sub>=∠(F<sub>i</sub><sup>π</sup>‑C,h)=∠((x<sub>i</sub>‑a,z<sub>i</sub>‑b,‑c),(x<sub>i</sub>‑a,z<sub>i</sub>‑b,y<sub>i</sub>‑c))其中,i=1,…10代表左右手的10个手指,1,…,5代表左手从大拇指到小拇指的5个手指,6,…,10代表右手从大拇指到小拇指的5个手指;F<sub>i</sub>是手指尖的位置,坐标为(x<sub>i</sub>,z<sub>i</sub>,y<sub>i</sub>),F<sub>i</sub><sup>π</sup>是F<sub>i</sub>在平面XOZ上的投影,投影点坐标为(x<sub>i</sub>,z<sub>i</sub>,0);C是手掌心位置,坐标为(a,b,c);h是从手心指向手指尖方向的向量(x<sub>i</sub>‑a,z<sub>i</sub>‑b,y<sub>i</sub>‑c);(1.3)、计算手指尖距离手掌心的三维距离D<sub>i</sub>D<sub>i</sub>=||F<sub>i</sub>‑C||/S=||(x<sub>i</sub>‑a,z<sub>i</sub>‑b,y<sub>i</sub>‑c)||/||(x<sub>middle</sub>‑a,z<sub>middle</sub>‑b,y<sub>middle</sub>‑c)||,i=1,…10其中,S=||F<sub>middle</sub>‑C||=||(x<sub>middle</sub>‑a,z<sub>middle</sub>‑b,y<sub>middle</sub>‑c)||是手心到中指尖的距离,F<sub>middle</sub>为中指尖的位置,坐标为(x<sub>middle</sub>,z<sub>middle</sub>,y<sub>middle</sub>),|| ||表示;(1.4)、计算手指尖的高度E<sub>i</sub>计算手指尖到它在XOZ面的投影点点之间的高度E<sub>i</sub>:E<sub>i</sub>=sgn((F<sub>i</sub>‑F<sub>i</sub><sup>π</sup>)×n)||F<sub>i</sub>‑F<sub>i</sub><sup>π</sup>||/M=sgn((0,0,y<sub>i</sub>)×n)y<sub>i</sub>/y<sub>middle</sub>,i=1,…,10其中,n是垂直手心并指向向下的向量,<img file="FDA0001153081690000011.GIF" wi="573" he="88" />是中指指尖到指尖投影的距离;(2)、获取手势信息(2.1)、使用Kinect传感器获取场景的深度信息和彩色信息;(2.2)、结合深度信息和彩色信息获取手部图像,提取手部区域,再结合该手部区计算出手部轮廓周长l、手部轮廓面积B、手型外接最小矩形面积B<sub>rect</sub>和手型外接最小圆的周长l<sub>circle</sub>;(2.3)、结合步骤(2.2)获取相应的手势信息圆形度:<img file="FDA0001153081690000021.GIF" wi="246" he="127" />填充率:<img file="FDA0001153081690000022.GIF" wi="206" he="127" />周长比:<img file="FDA0001153081690000023.GIF" wi="205" he="127" />(3)、利用Leap Motion传感器和Kinect传感器同时对待识别的手势进行采集,每种手势采集若干,得到手势样本集;按照步骤(1)所述方法计算手势样本集中所有手势样本的A<sub>ki</sub>、D<sub>ki</sub>和E<sub>ki</sub>,其中,k表示手势种类;按照步骤(2)所述方法计算手势样本集中所有手势样本的c<sub>k</sub>、f<sub>k</sub>和p<sub>k</sub>;再将A<sub>i</sub>、D<sub>ki</sub>和E<sub>ki</sub>,c<sub>k</sub>、f<sub>k</sub>和p<sub>k</sub>融合成一个属性矩阵;(4)、构建SVM分类器,再将属性矩阵的每一行作为训练样本,依次输入到SVM分类器进行训练,得到可用于识别k种手势的SVM分类器;(5)、将待识别的手势图像按照步骤(3)所述方法组成属性矩阵,再将每一行依次输入到训练好的SVM分类器中,完成对手势的分类识别。
地址 611731 四川省成都市高新区(西区)西源大道2006号