基于Kinect视觉功能的机器人控制方法
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第 42 卷 第 4 期 2016 年 4 月
北京工业大学学报 JOURNAL OF BEIJING UNIVERSITY OF TECHNOLOGY
Vol. 42 No. 4 Apr. 2016
基于 Kinect 视觉功能的机器人控制方法
阮晓钢, 田重阳, 李望博
( 北京工业大学电子信息与控制工程学院人工智能与机器人研究所, 北京 100124)
因此,肩部的位置可以被用作基准点的计算. 定义
基准点 B(xb,yb,zb)为肩部连线的中心,其中
B( xb,yb,zb)
=
1 2
( x7
+ x8,
y7 + y8 ,z7 + z8 )
(2)
在计算出基准点之后,定义
V′
=
|V |L
-Biblioteka Baidu
B| R|
(3)
式中:B 为计算得到的基准点在原有坐标系中对应
的向量;V 为归一化前骨骼节点对应的向量;V′为归
而得到预处理后的手势特征向量.
2. 2 手势模型的建立
将预处理完成的特征向量作为一个参考模板存
放在 模 板 库 中, 设 这 个 手 势 模 板 为 L = { L ( 1 ),
L(2),…,L(m),…,L(M)},其中 m 为训练手势帧
的时序标号,M 为该手势模板所包含的手势顺的总
数;L(m)为第 m 帧的模板手势特征向量. 按照上述
局部最优路径是指在路径限制条件下,在计算 当前累计距离时能使当前累积距离最小的路径. 确 定了局部最优路径后,就可以从匹配终点沿局部最 优路径反向找到初始匹配点, 从而获得全局最优 路径.
图 1 Kinect 示意图 Fig. 1 Diagram of Kinect
2 DTW 算法识别
2. 1 手势预处理 利用 Kinect 获取骨骼模型中 20 个节点的三维
坐标信息,选择这 20 个骨骼节点中的 4 对节点作为 动态手势的特征处理对象,分别为左右手节点、左右 手腕 节 点、 左 右 手 肘 节 点 和 左 右 肩 节 点, 如 图 2 所示.
k =1
如何寻找所有路径中最优的路径,即 f( x,y) 最小的
路径,是 DTW 算法需要解决的问题. 将 X 序列和 Y 序列之间的距离定义为 D(X,Y),那么最优路径 G*
所对应的距离即为 X 和 Y 的 DTW 距离.
DTW( X,Y) = min{ fG( X,Y) }
(8)
两时间序列之间的 DTW 距离的具体计算方法
RUAN Xiaogang, TIAN Chongyang, LI Wangbo
( College of Electronic Information and Control Engineering, Beijing University of Technology, Beijing 100124, China)
可以看出,累计规整矩阵 D 为一个 N × M 的矩
阵,D( N,M) = DTW( X,Y) . 在累计规整矩阵中,每
个矩阵单元都记录了 X 和 Y / 的一个子序列的 DTW
距离. 累计规整矩阵满足条件
n
D( n,1) = ∑ ( xi,y1 ) n沂[1:N] i =1
(12)
m
D(1,m) = ∑ (x1 ,yj)m沂[1:M] j =1
488
北京工业大学学报
2016 年
微软公司推出的 Kinect 系列中的第 1 款体感设备, 它摆脱了以往使用的体感手柄,通过人的身体就可 达到体感识别与控制效果,如图 1 所示. Kinect 包 含了一个 RGB 摄影头和一对深度摄像头、一组麦克 风阵列及一个转动马达,它可以进行即时动态捕捉、 影像传输、语音传输和多人互动等功能.
摘 要: 介绍了一种基于 Kinect 装置的机器人控制方法,该方法涉及机器人控制领域,并且具体应用于两轮自平衡 机器人运动控制和人机交互系统. 该方法针对两轮自平衡机器人的运动控制系统利用 Kinect 与 DTW 手势识别算 法对其进行控制. 实验结果表明:该方法能够实现人与两轮自平衡机器人的自然交互控制,并且具有良好的实时性 和鲁棒性.
条使得 X 和 Y 之间距离最小的规整路径.
定义规整路径为序列
G = ( G1 ,G2 ,…,GK)
(6)
式中: G = ( nk,mk );GK 沂[1:N] × [1:M],k沂[1:
K] .
该序列 G 应满足 3 个条件:
1) 边界条件
G1 = (1,1) ,GK = ( N,M) 2) 单调性条件
Abstract: A control method based on Kinect for robots is proposed in this paper. For the motion control system of two-wheel robot, the method, which is combined with Kinect and DTW gesture recognition, is referred to the field of robotic control, and it can be applied in human-computer interaction system. A series of experiments indicate that this method can realize the dynamic gesture recognition and it has a good performance of real-time and robustness. Key words: robot control; Kinect; gesture recognition; human-computer interaction
(13)
ìïïD( n - 1) ( m - 1) üïï D( n,m) = min íD( n - 1) ( m) ý + f( xn,ym)
îïD( n) ( m - 1) þï
(14)
式(14) 体现了局部最优路径的选择,如图 3 所示.
图 3 局部最优路径选择 Fig. 3 Diagram of the adjacent nodes
n1 ≤n2 ≤…≤nk,m1 ≤m2 ≤…≤mk 3) 步长条件
Gk - 1 - Gk 沂{ (0,1) ,(1,0) ,(1,1) }
其中 k Î[1:K - 1] .
边界条件是确定 X 序列和 Y 序列的第 1 个元
素相对应,最后 1 个元素相对应,即将 X 序列和 Y
序列进行全序列比较;单调性条件是确保该规整路
1 Kinect 简介
Kinect 是微软公司推出的一款体感设备,它通 过特定的传感器实现了用户与计算机及娱乐设备进 行自然交互的目的. 本文采用的 Kinect for XBOX 是
收稿日期: 2015-04-20 基金项目: 国家自然科技基金重点资助项目(61034008) ; 北京市自然科学基金项目(4122006) 作者简介: 阮晓钢(1958—) , 男, 教授, 主要从事模式识别与智能系统方面的研究, E-mail:adrxg@ bjut. edu. cn
当前计算机的 2 个发展方向是计算机系统的拟 人化(虚拟现实) 和微型化( 智能手机). 利用人的 感觉和动作( 如语言、手写、姿势、视线、表情等) ,以 并行、非精确的方式与计算机环境进行交互,可以大 大提高人机交互的效率和自然性[1-2] . 近年来机器 人不仅具有娱乐功能,还能够代替人高效地完成许 多工作. 随着机器人技术的发展,机器人或相应的 智能产品越来越多地走进家庭、工厂和企业,为人类 提供各种娱乐、生产等服务,使得人与机器人的交互 活动变得越来越普遍[3] ,因此,能够更加自然有效 地对机器人进行运动控制显得越来越重要. 微软公 司推出的 Kinect 体感设备在人体跟踪以及姿态估 计方面有着出色的表现[4-5] . 作为新一代自然人机
来描述 2 个时间序列的相似性 f( x,y),即 2 个特征
向量的距离. f( x,y) 的值为大于 0 的实数,当 2 个
时间序列的相似度越高时,这 2 个特征向量的距离
越小, f(x,y)的值越小;反之,当 2 个时间序列的相
似度越低时,这 2 个特征向量的距离越大, f( x,y)
第4 期
一化后该骨骼节点对应的向量;L 为左肩对应的向
量;R 为右肩对应的向量. 由于左肩和右肩的相对
固定性,采用左肩和右肩的距离作为标准长度.
通过上述方式就可以将原有的坐标系转换成以
双肩中心点为原点的双手坐标系[9] ,其中基准点 B
作为双手坐标系原点. 这样就基本消除了人体尺寸
以及距离 Kinect 远近对特征向量所产生的影响,从
方法,依次训练要识别的模板手势,将模板手势录入
到模板库中,从而建立起动态手势模板库.
2. 3 识别过程
对于本文中的动态手势识别系统而言,每次采
样获取的是手势预处理中归一化后的特征向量. 在
DTW 算法中,定义特征向量空间为 T,其中
f:T × T→R≥0
(4)
己知长度为 N 的时间序列 X = ( x1,x2,…,xN ) 和长度为 M 的时间序列 Y = ( y1,y2,…,yM ) 其中 N 和 M 不一定相等. 定义一个时间规整函数 f( x,y)
图 2 骨骼节点 Fig. 2 Skeleton model obtained by Kinect
此时能代表一个动态手势的特征向量可表示为
Vn = ( x1 ,y1 ,z1 ,…,x8 ,y8 ,z8 )
(1)
式中 n 为一个手势所包含的特征向量个数. 在实际
的动态手势识别过程中,肩部的移动相对比较微小,
径的走向是顺向进行;步长条件是规定了 X 序列和
Y 序列中的每一个元素都应该被比较,并且在走向
中不会产生重复.
满足以上 3 个条件的路径可以称之为一条合法
的规整路径. X 序列和 Y 序列之间的一条合法路径
G 的总规整函数 fG(X,Y)可以定义为
K
∑ fG( X,Y) =
( xnk ,ymk )
(7)
阮晓钢, 等: 基于 Kinect 视觉功能的机器人控制方法
489
的值越大. 计算 X 和 Y 中每一个特征向量组( xn,
ym ) 的距离,得到一个时间规整矩阵
F( n,m) = f( xn,ym) , F沂R(NM)
(5)
在得到了时间规整矩阵 F 之后,求 2 个时间序
列相似度的问题就可以转换为在 F 矩阵中寻找一
如下.
定义 X 和 Y 的一部分序列
X(1:n) = {x(1),x(2),…,x(n)} (9)
Y(1:m) = { y(1) ,y(2) ,…,y( m) } (10)
式中:n沂[1:N] ;m沂[1:M] .
计算 X 和 Y 的累计规整矩阵
D( n,m) = DTW( X(1:n) ,Y(1:m) ) (11)
交互技术的典范,Kinect 实现了用户通过语音和手 势等行为与计算机进行更自然的交互,同时采用微 软的 Kinect 传感器,可以获取深度数据,对深度数 据进行动态手势分割,再利用 DTW 算法进行动态 手势识别,克服了光照和复杂背景的干扰,降低了算 法的复杂度,有效地提高了动态手势识别的稳定性 和实时性[6-7] . 因此,利用 Kinect 能够更加自然有效 地对机器人进行运动控制.
关键词: 机器人控制; Kinect; 手势识别; 人机交互
中图分类号: TP 173
文献标志码: A
doi: 10. 11936 / bjutxb2015040050
文章编号: 0254 - 0037(2016)04 - 0487 - 05
Control Method for Robots Based on the Visual Function of Kinect
为了发掘 Kinect 的更大潜力,微软公司推出了 Kinect for Windows SDK 开发工具包. 配合此工具包 可以利用 Kinect 的体感技术,获取人体深度信息, 通过 识 别 人 体 动 作 和 手 势, 来 理 解 操 作 者 的 意 图[8] ,从而利用计算机对机器人进行有效的操作. Kinect 共有 3 个摄像头,中间一个是 RGB 摄像头, 用来捕获彩色图像,每秒最多获取 30 帧图像,两边 是 2 个深度传感器,左边是红外线发射器,右边是红 外线接收器,用来检测玩家的相对位置.
北京工业大学学报 JOURNAL OF BEIJING UNIVERSITY OF TECHNOLOGY
Vol. 42 No. 4 Apr. 2016
基于 Kinect 视觉功能的机器人控制方法
阮晓钢, 田重阳, 李望博
( 北京工业大学电子信息与控制工程学院人工智能与机器人研究所, 北京 100124)
因此,肩部的位置可以被用作基准点的计算. 定义
基准点 B(xb,yb,zb)为肩部连线的中心,其中
B( xb,yb,zb)
=
1 2
( x7
+ x8,
y7 + y8 ,z7 + z8 )
(2)
在计算出基准点之后,定义
V′
=
|V |L
-Biblioteka Baidu
B| R|
(3)
式中:B 为计算得到的基准点在原有坐标系中对应
的向量;V 为归一化前骨骼节点对应的向量;V′为归
而得到预处理后的手势特征向量.
2. 2 手势模型的建立
将预处理完成的特征向量作为一个参考模板存
放在 模 板 库 中, 设 这 个 手 势 模 板 为 L = { L ( 1 ),
L(2),…,L(m),…,L(M)},其中 m 为训练手势帧
的时序标号,M 为该手势模板所包含的手势顺的总
数;L(m)为第 m 帧的模板手势特征向量. 按照上述
局部最优路径是指在路径限制条件下,在计算 当前累计距离时能使当前累积距离最小的路径. 确 定了局部最优路径后,就可以从匹配终点沿局部最 优路径反向找到初始匹配点, 从而获得全局最优 路径.
图 1 Kinect 示意图 Fig. 1 Diagram of Kinect
2 DTW 算法识别
2. 1 手势预处理 利用 Kinect 获取骨骼模型中 20 个节点的三维
坐标信息,选择这 20 个骨骼节点中的 4 对节点作为 动态手势的特征处理对象,分别为左右手节点、左右 手腕 节 点、 左 右 手 肘 节 点 和 左 右 肩 节 点, 如 图 2 所示.
k =1
如何寻找所有路径中最优的路径,即 f( x,y) 最小的
路径,是 DTW 算法需要解决的问题. 将 X 序列和 Y 序列之间的距离定义为 D(X,Y),那么最优路径 G*
所对应的距离即为 X 和 Y 的 DTW 距离.
DTW( X,Y) = min{ fG( X,Y) }
(8)
两时间序列之间的 DTW 距离的具体计算方法
RUAN Xiaogang, TIAN Chongyang, LI Wangbo
( College of Electronic Information and Control Engineering, Beijing University of Technology, Beijing 100124, China)
可以看出,累计规整矩阵 D 为一个 N × M 的矩
阵,D( N,M) = DTW( X,Y) . 在累计规整矩阵中,每
个矩阵单元都记录了 X 和 Y / 的一个子序列的 DTW
距离. 累计规整矩阵满足条件
n
D( n,1) = ∑ ( xi,y1 ) n沂[1:N] i =1
(12)
m
D(1,m) = ∑ (x1 ,yj)m沂[1:M] j =1
488
北京工业大学学报
2016 年
微软公司推出的 Kinect 系列中的第 1 款体感设备, 它摆脱了以往使用的体感手柄,通过人的身体就可 达到体感识别与控制效果,如图 1 所示. Kinect 包 含了一个 RGB 摄影头和一对深度摄像头、一组麦克 风阵列及一个转动马达,它可以进行即时动态捕捉、 影像传输、语音传输和多人互动等功能.
摘 要: 介绍了一种基于 Kinect 装置的机器人控制方法,该方法涉及机器人控制领域,并且具体应用于两轮自平衡 机器人运动控制和人机交互系统. 该方法针对两轮自平衡机器人的运动控制系统利用 Kinect 与 DTW 手势识别算 法对其进行控制. 实验结果表明:该方法能够实现人与两轮自平衡机器人的自然交互控制,并且具有良好的实时性 和鲁棒性.
条使得 X 和 Y 之间距离最小的规整路径.
定义规整路径为序列
G = ( G1 ,G2 ,…,GK)
(6)
式中: G = ( nk,mk );GK 沂[1:N] × [1:M],k沂[1:
K] .
该序列 G 应满足 3 个条件:
1) 边界条件
G1 = (1,1) ,GK = ( N,M) 2) 单调性条件
Abstract: A control method based on Kinect for robots is proposed in this paper. For the motion control system of two-wheel robot, the method, which is combined with Kinect and DTW gesture recognition, is referred to the field of robotic control, and it can be applied in human-computer interaction system. A series of experiments indicate that this method can realize the dynamic gesture recognition and it has a good performance of real-time and robustness. Key words: robot control; Kinect; gesture recognition; human-computer interaction
(13)
ìïïD( n - 1) ( m - 1) üïï D( n,m) = min íD( n - 1) ( m) ý + f( xn,ym)
îïD( n) ( m - 1) þï
(14)
式(14) 体现了局部最优路径的选择,如图 3 所示.
图 3 局部最优路径选择 Fig. 3 Diagram of the adjacent nodes
n1 ≤n2 ≤…≤nk,m1 ≤m2 ≤…≤mk 3) 步长条件
Gk - 1 - Gk 沂{ (0,1) ,(1,0) ,(1,1) }
其中 k Î[1:K - 1] .
边界条件是确定 X 序列和 Y 序列的第 1 个元
素相对应,最后 1 个元素相对应,即将 X 序列和 Y
序列进行全序列比较;单调性条件是确保该规整路
1 Kinect 简介
Kinect 是微软公司推出的一款体感设备,它通 过特定的传感器实现了用户与计算机及娱乐设备进 行自然交互的目的. 本文采用的 Kinect for XBOX 是
收稿日期: 2015-04-20 基金项目: 国家自然科技基金重点资助项目(61034008) ; 北京市自然科学基金项目(4122006) 作者简介: 阮晓钢(1958—) , 男, 教授, 主要从事模式识别与智能系统方面的研究, E-mail:adrxg@ bjut. edu. cn
当前计算机的 2 个发展方向是计算机系统的拟 人化(虚拟现实) 和微型化( 智能手机). 利用人的 感觉和动作( 如语言、手写、姿势、视线、表情等) ,以 并行、非精确的方式与计算机环境进行交互,可以大 大提高人机交互的效率和自然性[1-2] . 近年来机器 人不仅具有娱乐功能,还能够代替人高效地完成许 多工作. 随着机器人技术的发展,机器人或相应的 智能产品越来越多地走进家庭、工厂和企业,为人类 提供各种娱乐、生产等服务,使得人与机器人的交互 活动变得越来越普遍[3] ,因此,能够更加自然有效 地对机器人进行运动控制显得越来越重要. 微软公 司推出的 Kinect 体感设备在人体跟踪以及姿态估 计方面有着出色的表现[4-5] . 作为新一代自然人机
来描述 2 个时间序列的相似性 f( x,y),即 2 个特征
向量的距离. f( x,y) 的值为大于 0 的实数,当 2 个
时间序列的相似度越高时,这 2 个特征向量的距离
越小, f(x,y)的值越小;反之,当 2 个时间序列的相
似度越低时,这 2 个特征向量的距离越大, f( x,y)
第4 期
一化后该骨骼节点对应的向量;L 为左肩对应的向
量;R 为右肩对应的向量. 由于左肩和右肩的相对
固定性,采用左肩和右肩的距离作为标准长度.
通过上述方式就可以将原有的坐标系转换成以
双肩中心点为原点的双手坐标系[9] ,其中基准点 B
作为双手坐标系原点. 这样就基本消除了人体尺寸
以及距离 Kinect 远近对特征向量所产生的影响,从
方法,依次训练要识别的模板手势,将模板手势录入
到模板库中,从而建立起动态手势模板库.
2. 3 识别过程
对于本文中的动态手势识别系统而言,每次采
样获取的是手势预处理中归一化后的特征向量. 在
DTW 算法中,定义特征向量空间为 T,其中
f:T × T→R≥0
(4)
己知长度为 N 的时间序列 X = ( x1,x2,…,xN ) 和长度为 M 的时间序列 Y = ( y1,y2,…,yM ) 其中 N 和 M 不一定相等. 定义一个时间规整函数 f( x,y)
图 2 骨骼节点 Fig. 2 Skeleton model obtained by Kinect
此时能代表一个动态手势的特征向量可表示为
Vn = ( x1 ,y1 ,z1 ,…,x8 ,y8 ,z8 )
(1)
式中 n 为一个手势所包含的特征向量个数. 在实际
的动态手势识别过程中,肩部的移动相对比较微小,
径的走向是顺向进行;步长条件是规定了 X 序列和
Y 序列中的每一个元素都应该被比较,并且在走向
中不会产生重复.
满足以上 3 个条件的路径可以称之为一条合法
的规整路径. X 序列和 Y 序列之间的一条合法路径
G 的总规整函数 fG(X,Y)可以定义为
K
∑ fG( X,Y) =
( xnk ,ymk )
(7)
阮晓钢, 等: 基于 Kinect 视觉功能的机器人控制方法
489
的值越大. 计算 X 和 Y 中每一个特征向量组( xn,
ym ) 的距离,得到一个时间规整矩阵
F( n,m) = f( xn,ym) , F沂R(NM)
(5)
在得到了时间规整矩阵 F 之后,求 2 个时间序
列相似度的问题就可以转换为在 F 矩阵中寻找一
如下.
定义 X 和 Y 的一部分序列
X(1:n) = {x(1),x(2),…,x(n)} (9)
Y(1:m) = { y(1) ,y(2) ,…,y( m) } (10)
式中:n沂[1:N] ;m沂[1:M] .
计算 X 和 Y 的累计规整矩阵
D( n,m) = DTW( X(1:n) ,Y(1:m) ) (11)
交互技术的典范,Kinect 实现了用户通过语音和手 势等行为与计算机进行更自然的交互,同时采用微 软的 Kinect 传感器,可以获取深度数据,对深度数 据进行动态手势分割,再利用 DTW 算法进行动态 手势识别,克服了光照和复杂背景的干扰,降低了算 法的复杂度,有效地提高了动态手势识别的稳定性 和实时性[6-7] . 因此,利用 Kinect 能够更加自然有效 地对机器人进行运动控制.
关键词: 机器人控制; Kinect; 手势识别; 人机交互
中图分类号: TP 173
文献标志码: A
doi: 10. 11936 / bjutxb2015040050
文章编号: 0254 - 0037(2016)04 - 0487 - 05
Control Method for Robots Based on the Visual Function of Kinect
为了发掘 Kinect 的更大潜力,微软公司推出了 Kinect for Windows SDK 开发工具包. 配合此工具包 可以利用 Kinect 的体感技术,获取人体深度信息, 通过 识 别 人 体 动 作 和 手 势, 来 理 解 操 作 者 的 意 图[8] ,从而利用计算机对机器人进行有效的操作. Kinect 共有 3 个摄像头,中间一个是 RGB 摄像头, 用来捕获彩色图像,每秒最多获取 30 帧图像,两边 是 2 个深度传感器,左边是红外线发射器,右边是红 外线接收器,用来检测玩家的相对位置.