APP下载

基于Kinect传感器的姿态识别及应用研究

2014-11-05符秀辉杜一鸣

电子技术与软件工程 2014年18期

符秀辉 杜一鸣

摘 要

为了实现远程遥控机器人,提出了一种姿态识别的方法。利用Kinect传感器来获取景深数据,并通过计算标定来确定人体的20个关节点。通过对四个姿态在三维空间中的坐标变换,用欧氏距离来计算关节点之间的不同角度与距离。识别结果表明用此方法进行姿态识别操作简单方便,平均识别的正确率可达93%。

【关键词】遥控机器人 姿态识别 inect 欧氏距离

1 引言

随着信息化的不断发展,人机交互[1]已经成为21世纪人类研究的重点。而随着研究的不断深入,人们已经开始把视线从计算机转移到人的身上,即人通过手势,姿态等方式来实现交互。最早期的设备是人带上数据手套[2],计算机通过它获取手的位置及动作。之后就是在手上做标记,通过标记来识别[3]。现在人们已经把重点放在了自然的人身上,即不通过任何设备,不做任何标定直接识别人的姿态动作。姿态识别在快速发展的今天有着很重要的地位,本文提出一种利用Kinect来进行姿态识别的方法,该方法只需要操作者站在Kinect前面做出相应的动作即可进行识别,识别的准确率高。

2 骨骼信息的获取

2.1 姿态识别

姿态是指人整个身体的运动或者身体某一个部位的运动[4]。近几年,计算机输入设备发展的越来越迅速,其中以微软的一款Kinect体感外设尤为突出。随着开源代码的出现,人们可以在Kinect平台进行研究开发,现如今,在教育界、商务界、医疗界、计算机应用和机器人视觉控制等方面都有很大的成果[5]。文中就是利用Kinect来进行姿态识别的。Kinect一共有三个摄像头,左右两边的深度摄像头,左边是红外线发射器,右侧的是红外线接收器。中间的是彩色摄像头。当人们站在Kinect面前做出各种动作时,计算机会与之进行交互,这种方式不用佩戴任何设备,操作简单[6]。

2.2 骨骼信息的获取

首先利用Kinect获取彩色图像,该图像较为清晰,但是该图像只是二维的,而深度图像中包含三维信息。虽然深度图的分辨率比彩色图低,但Kinect会通过对它的计算推测出深度位并进行记录标定,来辨别人体的各个部位,再从图像背景中分离,识别人体的20个关节点,最后对骨骼点进行跟踪。当人站在Kinect面前时,通过处理景深数据来建立人体各个关节的坐标[9]。骨骼点位置用坐标(x,y,z)表示,其坐标系是这样设计的:Kinect的红外摄像头中心为坐标原点,Z轴表示红外摄像头光轴,Y轴正半轴垂直向上,X正半轴向左。

3 算法实现

对人体的姿态识别主要是对骨骼点之间的角度与距离进行判别。当达到一定的角度与距离时就认为达到该姿态标准,系统就会处理并识别。

计算机形成的骨骼图是按顺序连线各个关节点而形成的,这样关节线之间会有角度,关节点之间会有距离,通过计算该角度与距离来进行识别。主要是利用欧氏距离[10]与余弦定理来实现的。

欧氏距离是指在m维空间中两个点之间的真实距离。在三维空间中,两点之间的距离为

想要判定举起左手的姿态,主要用到的关节点有左肩、左肘和左腕。只要判定这三个关节点之间的角度与距离在一定的阈值范围内就算成功。图1为举起左手时的姿态关节图。

当举起左手时,左肩与左肘的连线与地面平行,肩肘的连线与肘腕的连线尽量满足垂直关系,再加上左腕关节,就形成了一个在三维坐标内的一个三角形。该三角形三边关系与在左肘处的角度为:

举起右手的姿态与举起左手类似,如图2

判断左手前伸和右手前伸的姿态,此时肩、肘、腕三点成一条直线且与地面平行,为180度。

举起左手与右手时,为了判断该姿态是否为有效姿态,需要判断以肘部为顶点所形成的角的角度。由于实际操作中不能达到完全垂直,所以只要误差在有效范围内是被允许的。设定有效范围为正负10度,那么10就是阈值。还要判断肩肘连线是否与地面平行,阈值仍为10。当满足以上两个条件时,该姿态可被识别[11]。

左手前伸与右手前伸时,标准动作应该是肩,肘,腕三点在一条直线上,且与地面平行,阈值为10,再判断肘腕连线是否与地面平行,阈值仍为10。当满足以上两个条件时,该姿态被识别。

4 应用实践

4.1 实验与测试

为了识别姿态动作,在室内搭建了基于Kinect的实验平台,在VS2010的环境下,结合微软的应用平台所实现的。

为了验证实验的准确性,选取了20人分别进行以上四个动作的测试,测试者距离Kinect的距离大概在1.5米左右,这是最佳距离。测试结果如表1所示。

从测试结果中可以看出,该方法对姿态有较高的识别率。

4.2 应用研究

该姿态识别可用于控制机器人运动,举起左手和右手的姿态分别控制机器人向左向右运动,左右手前伸分别用来控制前进与停止。该移动机器人可以用在灾难现场的救援,可以用于清洁工作的控制。计算机方面可以用姿态虚拟键盘鼠标控制浏览器等。在医疗方面医生可以体感控制手术。在教育界,可以手势控制PPT的播放。商务界可以用来虚拟穿衣镜[12]。

5 结束语

本文利用欧氏距离与余弦定理,通过计算不同关节点之间的夹角与距离,使Kinect识别四种不同的姿态。解决了传统状态下通过设备来识别的方法,提高了识别率,简化了识别方式。该结果应用前景广泛,有很大的研究价值。

参考文献

[1] Liying Cheng, Qi Sun, Han Su. Design and Implementation of Human-Robot Interactive Demonstration System Based on Kinect[C]// Chinese Control and Decision Conference, 2012; 971-975.

[2]MEENAKSHI P. Hand gesture recognition based on shape parameters [C]. Computing, Communication and Applications(ICCCA), 2012 International Conference on, 2012.

[3]胡友树.手势识别技术综述[J].科技论坛,2005,2:41-42.

[4]黄国范,亚.人体动作姿态识别综述[J].电脑知识与技术,2013,9(01):133-135.

[5]朱涛,金国栋,芦利斌.基于Kinect应用概述及发展前景[J].现代计算机,2013,02:08-11.

[6]沈世宏,李蔚清.基于Kinect的体感手势识别系统的研究[C]//第八届全国和谐人机环境联合学术会议.中国广东广州,2012.

[7]樊景超,周国民.基于Kinect骨骼追踪技术的手势识别研究[J].安徽农业科学,2014,42(11):3444-3446.

[8]刘相滨,邹业骥,王胜春.一种新的完全欧氏距离变换算法[J].计算机工程与应用,2005,13:44-45.

[9]谢亮,廖宏建,杨玉宝.基于Kinect的姿态识别与应用研究[J].计算机技术与发展,2005,23(5):258-260.

[10]张荻.Kinect应用领域的探讨[J].物流技术,2012,34(6):39-41.

作者单位

1. 沈阳化工大学 信息工程学院 辽宁省沈阳市 110142

2. 中国科学院 沈阳自动化研究所 辽宁省沈阳市 110016endprint

摘 要

为了实现远程遥控机器人,提出了一种姿态识别的方法。利用Kinect传感器来获取景深数据,并通过计算标定来确定人体的20个关节点。通过对四个姿态在三维空间中的坐标变换,用欧氏距离来计算关节点之间的不同角度与距离。识别结果表明用此方法进行姿态识别操作简单方便,平均识别的正确率可达93%。

【关键词】遥控机器人 姿态识别 inect 欧氏距离

1 引言

随着信息化的不断发展,人机交互[1]已经成为21世纪人类研究的重点。而随着研究的不断深入,人们已经开始把视线从计算机转移到人的身上,即人通过手势,姿态等方式来实现交互。最早期的设备是人带上数据手套[2],计算机通过它获取手的位置及动作。之后就是在手上做标记,通过标记来识别[3]。现在人们已经把重点放在了自然的人身上,即不通过任何设备,不做任何标定直接识别人的姿态动作。姿态识别在快速发展的今天有着很重要的地位,本文提出一种利用Kinect来进行姿态识别的方法,该方法只需要操作者站在Kinect前面做出相应的动作即可进行识别,识别的准确率高。

2 骨骼信息的获取

2.1 姿态识别

姿态是指人整个身体的运动或者身体某一个部位的运动[4]。近几年,计算机输入设备发展的越来越迅速,其中以微软的一款Kinect体感外设尤为突出。随着开源代码的出现,人们可以在Kinect平台进行研究开发,现如今,在教育界、商务界、医疗界、计算机应用和机器人视觉控制等方面都有很大的成果[5]。文中就是利用Kinect来进行姿态识别的。Kinect一共有三个摄像头,左右两边的深度摄像头,左边是红外线发射器,右侧的是红外线接收器。中间的是彩色摄像头。当人们站在Kinect面前做出各种动作时,计算机会与之进行交互,这种方式不用佩戴任何设备,操作简单[6]。

2.2 骨骼信息的获取

首先利用Kinect获取彩色图像,该图像较为清晰,但是该图像只是二维的,而深度图像中包含三维信息。虽然深度图的分辨率比彩色图低,但Kinect会通过对它的计算推测出深度位并进行记录标定,来辨别人体的各个部位,再从图像背景中分离,识别人体的20个关节点,最后对骨骼点进行跟踪。当人站在Kinect面前时,通过处理景深数据来建立人体各个关节的坐标[9]。骨骼点位置用坐标(x,y,z)表示,其坐标系是这样设计的:Kinect的红外摄像头中心为坐标原点,Z轴表示红外摄像头光轴,Y轴正半轴垂直向上,X正半轴向左。

3 算法实现

对人体的姿态识别主要是对骨骼点之间的角度与距离进行判别。当达到一定的角度与距离时就认为达到该姿态标准,系统就会处理并识别。

计算机形成的骨骼图是按顺序连线各个关节点而形成的,这样关节线之间会有角度,关节点之间会有距离,通过计算该角度与距离来进行识别。主要是利用欧氏距离[10]与余弦定理来实现的。

欧氏距离是指在m维空间中两个点之间的真实距离。在三维空间中,两点之间的距离为

想要判定举起左手的姿态,主要用到的关节点有左肩、左肘和左腕。只要判定这三个关节点之间的角度与距离在一定的阈值范围内就算成功。图1为举起左手时的姿态关节图。

当举起左手时,左肩与左肘的连线与地面平行,肩肘的连线与肘腕的连线尽量满足垂直关系,再加上左腕关节,就形成了一个在三维坐标内的一个三角形。该三角形三边关系与在左肘处的角度为:

举起右手的姿态与举起左手类似,如图2

判断左手前伸和右手前伸的姿态,此时肩、肘、腕三点成一条直线且与地面平行,为180度。

举起左手与右手时,为了判断该姿态是否为有效姿态,需要判断以肘部为顶点所形成的角的角度。由于实际操作中不能达到完全垂直,所以只要误差在有效范围内是被允许的。设定有效范围为正负10度,那么10就是阈值。还要判断肩肘连线是否与地面平行,阈值仍为10。当满足以上两个条件时,该姿态可被识别[11]。

左手前伸与右手前伸时,标准动作应该是肩,肘,腕三点在一条直线上,且与地面平行,阈值为10,再判断肘腕连线是否与地面平行,阈值仍为10。当满足以上两个条件时,该姿态被识别。

4 应用实践

4.1 实验与测试

为了识别姿态动作,在室内搭建了基于Kinect的实验平台,在VS2010的环境下,结合微软的应用平台所实现的。

为了验证实验的准确性,选取了20人分别进行以上四个动作的测试,测试者距离Kinect的距离大概在1.5米左右,这是最佳距离。测试结果如表1所示。

从测试结果中可以看出,该方法对姿态有较高的识别率。

4.2 应用研究

该姿态识别可用于控制机器人运动,举起左手和右手的姿态分别控制机器人向左向右运动,左右手前伸分别用来控制前进与停止。该移动机器人可以用在灾难现场的救援,可以用于清洁工作的控制。计算机方面可以用姿态虚拟键盘鼠标控制浏览器等。在医疗方面医生可以体感控制手术。在教育界,可以手势控制PPT的播放。商务界可以用来虚拟穿衣镜[12]。

5 结束语

本文利用欧氏距离与余弦定理,通过计算不同关节点之间的夹角与距离,使Kinect识别四种不同的姿态。解决了传统状态下通过设备来识别的方法,提高了识别率,简化了识别方式。该结果应用前景广泛,有很大的研究价值。

参考文献

[1] Liying Cheng, Qi Sun, Han Su. Design and Implementation of Human-Robot Interactive Demonstration System Based on Kinect[C]// Chinese Control and Decision Conference, 2012; 971-975.

[2]MEENAKSHI P. Hand gesture recognition based on shape parameters [C]. Computing, Communication and Applications(ICCCA), 2012 International Conference on, 2012.

[3]胡友树.手势识别技术综述[J].科技论坛,2005,2:41-42.

[4]黄国范,亚.人体动作姿态识别综述[J].电脑知识与技术,2013,9(01):133-135.

[5]朱涛,金国栋,芦利斌.基于Kinect应用概述及发展前景[J].现代计算机,2013,02:08-11.

[6]沈世宏,李蔚清.基于Kinect的体感手势识别系统的研究[C]//第八届全国和谐人机环境联合学术会议.中国广东广州,2012.

[7]樊景超,周国民.基于Kinect骨骼追踪技术的手势识别研究[J].安徽农业科学,2014,42(11):3444-3446.

[8]刘相滨,邹业骥,王胜春.一种新的完全欧氏距离变换算法[J].计算机工程与应用,2005,13:44-45.

[9]谢亮,廖宏建,杨玉宝.基于Kinect的姿态识别与应用研究[J].计算机技术与发展,2005,23(5):258-260.

[10]张荻.Kinect应用领域的探讨[J].物流技术,2012,34(6):39-41.

作者单位

1. 沈阳化工大学 信息工程学院 辽宁省沈阳市 110142

2. 中国科学院 沈阳自动化研究所 辽宁省沈阳市 110016endprint

摘 要

为了实现远程遥控机器人,提出了一种姿态识别的方法。利用Kinect传感器来获取景深数据,并通过计算标定来确定人体的20个关节点。通过对四个姿态在三维空间中的坐标变换,用欧氏距离来计算关节点之间的不同角度与距离。识别结果表明用此方法进行姿态识别操作简单方便,平均识别的正确率可达93%。

【关键词】遥控机器人 姿态识别 inect 欧氏距离

1 引言

随着信息化的不断发展,人机交互[1]已经成为21世纪人类研究的重点。而随着研究的不断深入,人们已经开始把视线从计算机转移到人的身上,即人通过手势,姿态等方式来实现交互。最早期的设备是人带上数据手套[2],计算机通过它获取手的位置及动作。之后就是在手上做标记,通过标记来识别[3]。现在人们已经把重点放在了自然的人身上,即不通过任何设备,不做任何标定直接识别人的姿态动作。姿态识别在快速发展的今天有着很重要的地位,本文提出一种利用Kinect来进行姿态识别的方法,该方法只需要操作者站在Kinect前面做出相应的动作即可进行识别,识别的准确率高。

2 骨骼信息的获取

2.1 姿态识别

姿态是指人整个身体的运动或者身体某一个部位的运动[4]。近几年,计算机输入设备发展的越来越迅速,其中以微软的一款Kinect体感外设尤为突出。随着开源代码的出现,人们可以在Kinect平台进行研究开发,现如今,在教育界、商务界、医疗界、计算机应用和机器人视觉控制等方面都有很大的成果[5]。文中就是利用Kinect来进行姿态识别的。Kinect一共有三个摄像头,左右两边的深度摄像头,左边是红外线发射器,右侧的是红外线接收器。中间的是彩色摄像头。当人们站在Kinect面前做出各种动作时,计算机会与之进行交互,这种方式不用佩戴任何设备,操作简单[6]。

2.2 骨骼信息的获取

首先利用Kinect获取彩色图像,该图像较为清晰,但是该图像只是二维的,而深度图像中包含三维信息。虽然深度图的分辨率比彩色图低,但Kinect会通过对它的计算推测出深度位并进行记录标定,来辨别人体的各个部位,再从图像背景中分离,识别人体的20个关节点,最后对骨骼点进行跟踪。当人站在Kinect面前时,通过处理景深数据来建立人体各个关节的坐标[9]。骨骼点位置用坐标(x,y,z)表示,其坐标系是这样设计的:Kinect的红外摄像头中心为坐标原点,Z轴表示红外摄像头光轴,Y轴正半轴垂直向上,X正半轴向左。

3 算法实现

对人体的姿态识别主要是对骨骼点之间的角度与距离进行判别。当达到一定的角度与距离时就认为达到该姿态标准,系统就会处理并识别。

计算机形成的骨骼图是按顺序连线各个关节点而形成的,这样关节线之间会有角度,关节点之间会有距离,通过计算该角度与距离来进行识别。主要是利用欧氏距离[10]与余弦定理来实现的。

欧氏距离是指在m维空间中两个点之间的真实距离。在三维空间中,两点之间的距离为

想要判定举起左手的姿态,主要用到的关节点有左肩、左肘和左腕。只要判定这三个关节点之间的角度与距离在一定的阈值范围内就算成功。图1为举起左手时的姿态关节图。

当举起左手时,左肩与左肘的连线与地面平行,肩肘的连线与肘腕的连线尽量满足垂直关系,再加上左腕关节,就形成了一个在三维坐标内的一个三角形。该三角形三边关系与在左肘处的角度为:

举起右手的姿态与举起左手类似,如图2

判断左手前伸和右手前伸的姿态,此时肩、肘、腕三点成一条直线且与地面平行,为180度。

举起左手与右手时,为了判断该姿态是否为有效姿态,需要判断以肘部为顶点所形成的角的角度。由于实际操作中不能达到完全垂直,所以只要误差在有效范围内是被允许的。设定有效范围为正负10度,那么10就是阈值。还要判断肩肘连线是否与地面平行,阈值仍为10。当满足以上两个条件时,该姿态可被识别[11]。

左手前伸与右手前伸时,标准动作应该是肩,肘,腕三点在一条直线上,且与地面平行,阈值为10,再判断肘腕连线是否与地面平行,阈值仍为10。当满足以上两个条件时,该姿态被识别。

4 应用实践

4.1 实验与测试

为了识别姿态动作,在室内搭建了基于Kinect的实验平台,在VS2010的环境下,结合微软的应用平台所实现的。

为了验证实验的准确性,选取了20人分别进行以上四个动作的测试,测试者距离Kinect的距离大概在1.5米左右,这是最佳距离。测试结果如表1所示。

从测试结果中可以看出,该方法对姿态有较高的识别率。

4.2 应用研究

该姿态识别可用于控制机器人运动,举起左手和右手的姿态分别控制机器人向左向右运动,左右手前伸分别用来控制前进与停止。该移动机器人可以用在灾难现场的救援,可以用于清洁工作的控制。计算机方面可以用姿态虚拟键盘鼠标控制浏览器等。在医疗方面医生可以体感控制手术。在教育界,可以手势控制PPT的播放。商务界可以用来虚拟穿衣镜[12]。

5 结束语

本文利用欧氏距离与余弦定理,通过计算不同关节点之间的夹角与距离,使Kinect识别四种不同的姿态。解决了传统状态下通过设备来识别的方法,提高了识别率,简化了识别方式。该结果应用前景广泛,有很大的研究价值。

参考文献

[1] Liying Cheng, Qi Sun, Han Su. Design and Implementation of Human-Robot Interactive Demonstration System Based on Kinect[C]// Chinese Control and Decision Conference, 2012; 971-975.

[2]MEENAKSHI P. Hand gesture recognition based on shape parameters [C]. Computing, Communication and Applications(ICCCA), 2012 International Conference on, 2012.

[3]胡友树.手势识别技术综述[J].科技论坛,2005,2:41-42.

[4]黄国范,亚.人体动作姿态识别综述[J].电脑知识与技术,2013,9(01):133-135.

[5]朱涛,金国栋,芦利斌.基于Kinect应用概述及发展前景[J].现代计算机,2013,02:08-11.

[6]沈世宏,李蔚清.基于Kinect的体感手势识别系统的研究[C]//第八届全国和谐人机环境联合学术会议.中国广东广州,2012.

[7]樊景超,周国民.基于Kinect骨骼追踪技术的手势识别研究[J].安徽农业科学,2014,42(11):3444-3446.

[8]刘相滨,邹业骥,王胜春.一种新的完全欧氏距离变换算法[J].计算机工程与应用,2005,13:44-45.

[9]谢亮,廖宏建,杨玉宝.基于Kinect的姿态识别与应用研究[J].计算机技术与发展,2005,23(5):258-260.

[10]张荻.Kinect应用领域的探讨[J].物流技术,2012,34(6):39-41.

作者单位

1. 沈阳化工大学 信息工程学院 辽宁省沈阳市 110142

2. 中国科学院 沈阳自动化研究所 辽宁省沈阳市 110016endprint