CN104951073B - 一种基于虚拟界面的手势交互方法 - Google Patents
一种基于虚拟界面的手势交互方法 Download PDFInfo
- Publication number
- CN104951073B CN104951073B CN201510347461.0A CN201510347461A CN104951073B CN 104951073 B CN104951073 B CN 104951073B CN 201510347461 A CN201510347461 A CN 201510347461A CN 104951073 B CN104951073 B CN 104951073B
- Authority
- CN
- China
- Prior art keywords
- max
- value
- virtual interface
- staff
- gesture
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- User Interface Of Digital Computer (AREA)
Abstract
本发明提供了一种基于虚拟界面的手势交互方法,属于人机交互领域。该方法包括:S1,手势分割:从复杂背景中把手势图像分离出来,只在前景中保留手势部分;S2,构建虚拟界面:操作者按照从左到右、从下到上的顺序,在空中画矩形轨迹,根据该矩形轨迹拟合得到虚拟界面;S3,对所述虚拟界面进行分区,并判断人手所处的分区;S4,虚拟界面的实时刷新移动:当人体移动时,已生成的虚拟界面随着人体的移动进行相应的同方向移动。
Description
技术领域
本发明属于人机交互领域,具体涉及一种基于虚拟界面的手势交互方法。
背景技术
手势交互作为一种自然的交互方式越来越受到人们的重视,是人机交互领域的一个研究热点。与传统的基于图形用户界面的交互方式相比,基于视觉的手势交互界面(Vision-Based Gesture Interface,VBGI)使用户摆脱了键盘、鼠标的束缚,因而成为一种自然、无约束的交互方式。基于视觉的手势交互界面被广泛应用在智能空间、增强现实、普适计算等多个领域,逐渐成为国内外的研究热点。但是由于VBGI具有非接触性和模糊性等特点,所以还存在一个问题即“Midas Touch Problem”。由于人手活动的有效范围往往是摄像头所能捕获到的整个范围,系统无法区分哪些是用户的真正意图,哪些是下意识的动作,即有效和无效手势。
在VBGI中“Midas Touch”是一个普遍存在的问题。在文献“基于视觉的手势界面关键技术研究[J]”(武汇岳,张凤军,刘玉进,戴国忠..计算机学报,2009,10:2030-2041)中,武岳汇等人总结到对于该问题的解决办法大致可以分为3类,分别是基于时间延迟的策略、基于空间接近的原则以及基于widget提供交互上下文的方法。基于时间延迟的策略是Jacob提出的,其主要思想是通过计算手势控制界面上的光标在界面对象上停留时间的长短来判断该对象是否被选中。显然,该方法存在一定的不足。因为用户在操作时必须时刻注意手势停留在对象上的时间,这无疑增加了用户的认知负担和操作负担。Kato等人提出了基于空间接近原则的策略。该方法的主要思想是通过判断用户手持的paddle与虚拟对象之间的距离来完成一系列的交互任务。此方法的缺陷是由于paddle与虚拟对象之间的距离不容易控制所以也会造成误选。Kjeldsen提出在手势动作和视觉界面widget之间建立一定的映射关系。由于每个界面widget具有一定的空间位置,所以可通过其提供的交互上下文来约束视觉交互行为。虽然此系统在一定程度上解决了误选的问题,但是该方法不够自然。因为当系统需产生很多widget时,这无疑会加大用户的认知负担,而且会使界面空间过大而影响交互。武岳汇等人提出了一个可扩展的视觉手势交互模型,该模型将手势交互分为选择性处理、分配性处理和集中处理三个阶段;然后在此模型的基础上提出了一个手势识别框架。
现有技术虽然在某种程度上能解决“Midas Touch Problem”,但存在两方面的不足:(1)很容易造成误选;(2)由于多条件的限制,增加了用户的操作负担和认知负担。
发明内容
本发明的目的在于解决上述现有技术中存在的难题,提供一种基于虚拟界面的手势交互方法,高效解决“Midas Touch Problem”,具有良好的用户体验。
本发明是通过以下技术方案实现的:
一种基于虚拟界面的手势交互方法,包括:
S1,手势分割:从复杂背景中把手势图像分离出来,只在前景中保留手势部分;
S2,构建虚拟界面:操作者按照从左到右、从下到上的顺序,在空中画矩形轨迹,根据该矩形轨迹拟合得到虚拟界面;
S3,对所述虚拟界面进行分区,并判断人手所处的分区;
S4,虚拟界面的实时刷新移动:当人体移动时,已生成的虚拟界面随着人体的移动进行相应的同方向移动。
所述S1中是采用kinect传感器获取深度数据,利用深度数据进行手势分割,具体如下:
利用OpenNI跟踪人手,获取人手的位置;
然后利用人手的深度数据在人手附近进行阈值化,提取出人手的部位;
运用肤色模型对已分割出的人手进行处理得到分割结果;
对分割结果进行去噪、腐蚀、膨胀处理,获得手势空间点。
所述S2中的虚拟界面的大小和位置由两部分确定:手势空间点在屏幕上的投影点所确定的平面矩形范围,用集合Range1表示,采用最小二乘法线性拟合的方法得到;人手在空间中的深度范围,用集合Range2表示,采用对深度数据求最值的方法得到。
所述S2是这样实现的:
(A1)保存初始状态人手的空间坐标点;
(A2)判断虚拟界面学习过程是否结束,若同时满足结束条件,则表明学习结束,然后转向步骤(A7);若不满足以下条件,则转入步骤(A3);所述结束条件为:
|Cur_pointy-Sta_pointy|<a (1)
|Cur_pointx-Sta_pointx|<a (2)
其中,Cur_pointy为当前帧人手空间坐标y值,Sta_pointy为初始状态人手空间坐标y值,Cur_pointx为当前帧人手空间坐标x值,Sta_pointx为初始状态人手空间坐标x值;a为常量;
(A3)将当前帧手势投影坐标值保存在集合C1中,n为集合C1中元素的个数。将人手空间深度值HandDepth保存到集合C2中;同时判断是否满足公式(3),若满足公式(3)所示的条件,则将该帧手势的投影坐标值保存在中间变量Temp中:
Cur_pointx-Sta_pointx<b (3)
b为常量;
(A4)确定左下角点的坐标,判断是否满足:
Cur_pointx-Sta_pointx>b (4)
若满足,则Temp即当前点为左下角点的坐标值,同时也为投影矩形下面的边y=Ymax的初始点坐标值;
(A5)拟合投影矩形左边的直线x=Xmin,对集合C1和n运用最小二乘法进行直线拟合,得到Xmin的值;
(A6)寻找右下角的点,开始对直线y=Ymax进行拟合;
(A7)确定虚拟界面学习过程中的深度范围:对集合C2求最大和最小值得到HDmin、HDmax;
(A8)按照同样的方法分别对直线y=Ymax、x=Xmax、y=Ymin进行拟合,得到Range1={Xmin, Xmax, Ymin, Ymax};
虚拟界面的范围Range为:
Range=Range1∪Range2={Xmin, Xmax, Ymin, Ymax, HDmin, HDmax} (5)
其中,Xmin、Xmax分别为投影矩形x方向的最小值和最大值,Ymin、和Ymax分别为投影矩形y方向的最小值和最大值,HDmin、HDmax分别为学习过程中手势深度的最小值和最大值;
人手在屏幕上的投影点x坐标为ProX,y坐标为ProY,人手在空间中的深度坐标为HandZ;当满足ProX∈[Xmin, Xmax],ProY∈[Ymin, Ymax],HandZ∈[HDmin, HDmax]时,手势命令才是有效的。
所述a取值为30;所述b其推荐取值为50。
所述S3是这样实现的:
将投影矩形按照从左到右的顺序平均分成三份,分别为第一分区、第二分区、第三分区,各分区功能依次为:控制3D场景中物体的放大、缩小和旋转;具体如下:
(B1)根据以下公式计算Value1、Value2的值。
xeach=(Xmax-Xmin)/3 (6)
Value1=Xmin+xeach (7)
Value2=Value1+xeach (8)
其中,xeach为被分割后的每一个小矩形的长度,Xmin为投影矩形左端点x方向的值,Xmax为平面矩形右端点x方向的值,Value1、Value2为分割点,其中Value1<Value2;
(B2)判断人手的位置:实时获取每帧手势的RroX、ProY、HandZ值。
所述(B2)是这样实现的:
(B2a)当满足ProX∈[Xmin, Valuex1],ProY∈[Ymin, Ymax],HandZ∈[HDmin, HDmax]时,表明人手处于第一分区,此时3D场景中三维物体的体积变大;
(B2b)当满足ProX∈[Value1, Value2],ProY∈[Ymin, Ymax],HandZ∈[HDmin, HDmax]时,表明人手处于第二分区,此时3D场景中三维物体体积缩小;
(B2c)当满足ProX∈[Value2, Xmax],ProY∈[Ymin, Ymax],HandZ∈[HDmin, HDmax]时,表明人手处于第三分区,此时3D场景中的三维物体按照固定的方向不停地旋转;
(B2d)若(B2a)、(B2b)、(B2c)均不满足,则表明人手处于虚拟界面外,此时手势命令无效。
所述S4是这样实现的:
(C1)保存完成虚拟界面时的人体的重心坐标P1;
(C2)获取当前帧人体的重心坐标P2,并计算人体在空间中移动的距离d;
(C3)判断虚拟界面是否需要移动:判断d>s2是否成立,s2为常量;若成立,则表明虚拟界面需要移动,转入(C4;)若不成立,则虚拟界面不需要移动,返回步骤(C2);
(C4)判断虚拟界面是左移还是右移:
当人体向左移动时,将虚拟界面左移,更新集合Range中元素的值:
Xmin=Xmin-d*scale (9)
Xmax=Xmax-d*scale (10)
当人体向右移动时,将虚拟界面右移,更新集合Range中元素的值:
Xmin=Xmin+d*scale(11)
Xmax=Xmax+d*scale (12)
scale为一小于1的数,同时更新P1的值,使P1=P2。。
所述s2取值为200。
所述Scale取值为0.7。
与现有技术相比,本发明的有益效果是:本发明可以高效解决“Midas TouchProblem”,具有良好的用户体验。
附图说明
图1本发明方法的步骤框图。
图2分区及与场景交互步骤框图。
图3虚拟界面的实时刷新移动步骤框图。
图4虚拟界面学习所用时间。
图5交互出错次数。
图6用户评价。
具体实施方式
下面结合附图对本发明作进一步详细描述:
本发明针对“Midas Touch Problem”提出了解决方法,即虚拟界面的概念。首先通过一学习过程确定虚拟界面的大小;然后将虚拟界面进行分区,每个区代表不同的功能,通过虚拟界面与3D虚拟场景进行交互;同时虚拟界面会与人体保持同步,即当人体向左或向右移动一段距离时,虚拟界面也会跟着进行相应的移动,,达到与人体亦步亦趋的效果,从而用户可以继续在原来的虚拟界面内进行操作。实验结果表明:本文算法可以高效解决“Midas Touch Problem”,具有良好的用户体验。
基于视觉的手势交互人手活动的有效范围往往是摄像头所能捕获到的所有区域,因此用户的一些下意识的动作会被解释成有效命令。针对此问题,本发明提出了基于虚拟界面的手势交互。虚拟界面的提出,使人手活动的有效区域从摄像头捕获的整个范围缩小到了某个区域内。处于虚拟界面内的手势命令是有效的,而在虚拟界面之外的手势命令则是无效的。所以虚拟界面有可能解决“Midas Touch Problem”。
本发明中的虚拟界面的生成过程如下:
虚拟界面的学习形式是固定的,学习时操作者只需在空中画一具有深度信息的矩形轨迹。该矩形即为虚拟界面,之后所有的操作在虚拟界面内有效,在虚拟界面外则视为无效。虚拟界面的大小和位置由两部分确定:一是学习过程中,手势空间点在屏幕上的投影点所确定的平面矩形范围,用集合Range1表示;二是学习过程中,人手在空间中的深度范围,用集合Range2表示。其中,前者用最小二乘法线性拟合的方法实现,后者运用对深度信息求最值的方法实现。进行虚拟界面的学习时,操作者需要按照从左到右、从下到上的顺序,在空中画矩形轨迹。在求Range1时,运用到的是人手空间点在屏幕上的投影坐标,此时需要先确定该矩形的四个拐角点,然后分别对矩形的四条边进行拟合,拟合出来的矩形即为虚拟界面在屏幕上的投影大小。由于规定该矩形与屏幕坐标轴垂直,所以拟合出来的直线都是特殊直线。具体算法步骤如图1所示。
构建虚拟界面具体如下:
1,基于kinect的手势分割
手势分割即从复杂背景中把手势图像分离出来,只在前景中保留手势部分。本发明采用微软的Kinect传感器获取深度数据,在此基础上进行手势分割,避免了光照、背景等因素的影响,提高了手势分割的鲁棒性。手势分割算法的思想:首先,利用OpenNI跟踪人手,获取人手的位置。然后利用人手的深度信息在人手附近进行阈值化,提取出人手的部位。由于提取出的人手可能含有一部分手臂,所以再运用肤色模型对已分割出的人手进行处理。最后对分割结果进行去噪、腐蚀、膨胀等处理(可参考:冯志全,杨波,郑艳伟,徐涛,李毅,朱德良.基于特征点分布分析的手势特征检测方法[J].计算机集成制造系统,2011,17(11):2333-2342.冯志全,杨波,李毅,郑艳伟,张少白.以时间优化为目标的粒子滤波手势跟踪方法研究[J].电子学报,2009,37(9):1989-1995.杨波,宋晓娜,冯志全,郝晓艳.复杂背景下基于空间分布特征的手势识别算法[J].计算机辅助设计与图形学学报,2010,22(10):1841-1848)。
2,构建虚拟界面
Kinect与普通摄像头的一个区别就是kinect可以获得人体的深度信息,所以通过kinect可以获得人手的空间坐标。通过坐标系转换函数可以将人手的空间坐标转换为投影坐标系下的屏幕坐标值,该屏幕坐标值即为kineet所捕获到的彩色图像中人手所处的位置。构建虚拟界面的过程即虚拟界面学习的过程。虚拟界面的学习形式是固定的,学习时操作者只需在空中画一具有深度信息的矩形轨迹。该矩形即为虚拟界面,之后所有的操作在虚拟界面内有效,在虚拟界面外则视为无效。虚拟界面的大小和位置由两部分确定:一是学习过程中,手势空间点在屏幕上的投影点所确定的平面矩形范围,用集合Range1表示(集合Range1中的元素值为拟合后矩形的四条边的值,C1中的值为学习过程完成之前保存的每一帧手势投影坐标值。将C1中的值进行拟合后得到集合Range1中元素的值);二是学习过程中,人手在空间中的深度范围,用集合Range2表示(集合Range2中元素的值为学习过程中手势深度的最大值和最小值,C2为学习过程结束之前保存每帧手势的深度值。对C2中的元素求最值,得到集合Range2中元素的值)。其中,前者用最小二乘法线性拟合的方法实现,后者运用对深度信息求最值的方法实现。
构建虚拟界面的具体方法如下:
进行虚拟界面的学习时,操作者需要按照从左到右、从下到上的顺序,在空中画矩形轨迹。在求Range1时,运用到的是人手空间点在屏幕上的投影坐标,此时需要先确定该矩形的四个拐角点,然后分别对矩形的四条边进行拟合,拟合出来的矩形即为虚拟界面在屏幕上的投影大小。由于规定该矩形与屏幕坐标轴垂直,所以拟合出来的直线都是特殊直线。拟合x=Xmin直线的具体算法如下:
(1)保存初始状态人手的空间坐标点
(2)判断虚拟界面学习过程是否结束。若同时满足以下条件:
|Cur_pointy-Sta_pointy|<a (1)
|Cur_pointx-Sta_pointx|<a (2)
其中,Cur_pointy为当前帧人手空间坐标y值,Sta_pointy为初始状态人手空间坐标y值,Cur_pointx为当前帧人手空间坐标x值,Sta_pointx为初始状态人手空间坐标x值。a为事先定义的一常量其推荐取值为30。
则表明学习结束,然后转向步骤(7)。若不满足则继续寻找直角点,对直线进行拟合,即进入步骤(3)。
(3)将当前帧手势投影坐标值保存在集合C1中(只有当学习过程未结束时才保存当前帧手势的投影点坐标),n为集合C1中元素的个数。将人手空间深度值HandDepth保存到集合C2中(只有当学习过程未结束时才保存当前帧手势的深度值)。同时判断是否满足公式(3),若满足条件
Cur_pointx-Sta_pointx<b (3)
b为事先定义的一常量其推荐取值为50,则将该帧手势的投影坐标值保存在中间变量Temp中;
(4)确定左下角点的坐标。判断是否满足
Cur_pointx-Sta_pointx>b (4)
若满足则Temp即当前点为左下角点的坐标值,同时也为直线y=Ymax(y=Ymax为投影矩形下面的边,对直线x=Xmin拟合完之后按照同样的方法,对直线y=Ymax进行拟合得到Ymax的值)的初始点坐标值。
(5)拟合直线x=Xmin(直线x=Xmin为投影矩形左边的直线,通过对集合C1和n运用最小二乘法进行直线拟合,得到Xmin的值)对集合C1和n运用最小二乘法进行直线拟合,得到Xmin的值。
(6)寻找右下角的点,开始对直线y=Ymax进行拟合。
(7)确定虚拟界面学习过程中的深度范围。对集合C2求最大和最小值得到HDmin、HDmax。
按照同样的方法分别对直线y=Ymax、x=Xmax、y=Ymin进行拟合,得到Range1={Xmin, Xmax, Ymin, Ymax}。所以最终学习得到的虚拟界面的范围Range为:
Range=Range1∪Range2={Xmin, Xmax, Ymin, Ymax, HDmin, HDmax} (5)
其中,Xmin、Xmax分别为投影矩形x方向的最小值和最大值,Ymin、和Ymax分别为投影矩形y方向的最小值和最大值,HDmin、HDmax分别为学习过程中手势深度的最小值和最大值。
以下记人手在屏幕上的投影点x坐标为ProX,y坐标为ProY,人手在空间中的深度坐标为HandZ。当满足ProX∈[Xmin, Xmax],ProY∈[Ymin, Ymax],HandZ∈[HDmin, HDmax]时,手势命令才是有效的。
基于虚拟界面的手势交互如下:
1虚拟界面分区
学习过程完成后,虚拟界面的位置和大小就确定了。接下来是通过虚拟界面与3D场景进行交互。在此基础上本发明又对虚拟界面进行了分区,主要是对虚拟界面在屏幕上的投影,即Range1部分进行分区。本发明将虚拟界面分为三个部分,将投影矩形按照从左到右的顺序平均分成三份,分别为第一分区、第二分区、第三分区,各分区功能依次为:控制3D场景中物体的放大、缩小和旋转。具体分区及与场景交互算法如图2所示:
(1)根据以下公式计算Value1、Value2的值。
xeach=(Xmax-Xmin)/3 (6)
Value1=Xmin+xeach (7)
Value2=Value1+xeach (8)
上面的公式是对平面矩形按照水平方向平均分成三个小矩形。xeach为被分割后的每一个小矩形的长度,Xmin为投影矩形左端点x方向的值,Xmax为平面矩形右端点x方向的值。Value1、Value2为分割点,其中Value1<Value2)
(2)判断人手的位置,即处于哪个分区内。实时获取每帧手势的ProX、ProY、HandZ值,具体处理为:
(a)当满足ProX∈[Xmin, Valuex1],ProY∈[Ymin, Ymax],HandZ∈[HDmin, HDmax]时,表明人手处于第一分区,此时3D场景中三维物体的体积会变大。
(b)当满足ProX∈[Value1, Value2],ProY∈[Ymin, Ymax],HandZ∈[HDmin, HDmax]时,表明人手处于第二分区,此时3D场景中三维物体体积会缩小。
(c)当满足ProX∈[Value2, Xmax],ProY∈[Ymin, Ymax],HandZ∈[HDmin, HDmax]时,表明人手处于第三分区,此时3D场景中的三维物体会按照一个固定的方向不停地旋转。
(d)若(a)、(b)、(c)均不满足,则表明人手处于虚拟界面外,此时手势命令无效。
2虚拟界面的实时刷新移动
当人体移动时,已生成的虚拟界面不会消失,而是会随着人体的移动进行相应的同方向移动,所以当操作者位置改变后,操作者可以在之前已学习好的虚拟界面内继续进行操作。由于Kinect可以获得人体在空间中的坐标位置,所以可通过判断人体是否移动即重心坐标是否改变来判断虚拟界面是否需要移动。具体步骤如图3所示:
(1)保存虚拟界面学习完成时,人体的重心坐标P1。
(2)获取当前帧人体的重心坐标P2,并计算人体在空间中移动的距离d。
(3)判断虚拟界面是否需要移动。判断d>s2是否成立,s2为为事先定义的一常量其推荐取值为200。若成立表明虚拟界面需要移动。在此
基础上判断虚拟界面是左移还是右移。
a)若满足条件P1.X>P2.X,表明人体发生了左移,此时需要将虚
拟界面也进行左移。更新集合Range中元素的值。
Xmin=Xmin-d*scale (9)
Xmax=Xmax-d*scale (10)
b)若满足条件P1.X<P2.X,表明人体发生了右移,此时需要将虚
拟界面也进行右移。更新集合Range中元素的值。
Xmin=Xmin+d*scale (11)
Xmax=Xmax+d*scale (12)
scale为一小于1的数其值为0.7。同时更新P1的值,使P1=P2。若不满足d>S2则返回步骤(2)。
下面通过实验来说明本发明的效果:
实验所用的普通个人计算机的基本配置为:windows7系统,CPU为Intel XeonW3520,主频2.67GHz,内存8GB。
本发明的实验操作场景和3D场景包括:整个窗口分成三个部分:其中左上方是kinect实时捕获到的用户操作场景,其中蓝色透明矩形部分代表学习过程中确定的虚拟界面在屏幕上的投影情况;左下方为基于kinect获得的深度信息对人手进行分割的结果。右边部分为虚拟场景,场景中的物体为一魔方。当虚拟界面确定后,用户可以通过虚拟界面与虚拟场景中的魔方进行交互。
操作者通过虚拟界面与3D场景中的魔方进行交互的过程如下:初始状态下3D场景中魔方的大小;当人手处于虚拟界面的第一功能区即放大区时,魔方的体积在初始状态的基础上变大;当人手处于虚拟界面的第二功能区即缩小区时,魔方的体积在之前放大的基础上变小;当人手处于虚拟界面的第三功能区即旋转区时,与之前的状态相比,魔方进行了旋转;当人手处于虚拟界面外时,3D场景中的魔方不会发生任何变化,与(d)的状态完全相同,即此时手势命令无效。
操作者在操作过程中,当身体进行移动时,虚拟界面跟着移动的情况。虚拟界面学习完成时,虚拟界面在屏幕上的投影位置为初始位置;当人体向左平移一段距离时,虚拟界面向左也移动了一定的距离;当虚拟界面向左移动时,人手在第一功能区使魔方体积变大;当人体向右平移一段距离时,虚拟界面的移动情况,结果为虚拟界面向右也移动了一段距离。
本发明对该算法进行了时间和精度统计。时间为虚拟界面学习过程中所消耗的时间。精度为通过虚拟界面与3D场景进行交互时,交互出错的次数(预先规定好任务即每次实验时需要与3D场景交互10次)。由一名研究生二年级学生在相同的条件进行50次独立实验,计算每次实验时学习虚拟界面所用的时间和交互出错的次数。实验结果分别如图4和图5所示
图4为虚拟界面学习过程中的时间统计图。由图可以看出,学习虚拟界面时的时间消耗在5000ms和5500ms之间。对50个数据求平均值得5294ms,即学习虚拟界面所用的平均时间为5294ms。图5为精度统计图。将50次实验过程中交互出错的次数加起来再除以50次实验过程中交互的总数,得到出错率为5%。
此外本发明还在用户交互体验方面对算法进行了评价。本发明的算法命名为VIM(Virtual Interface Method)。与之相比较的即基于视觉的无虚拟界面的实验则称之为NVIM(None Virtual Interface Method)。两者实验场景和交互任务完全相同。随机选取100名本科生作为实验者,从疲劳度、努力程度、愉悦度和可行性这四个方面对使用本文算法的系统和使用NVIM算法的系统进行比较。其中,疲劳度为操作过程中,操作者的辛苦程度;努力程度为完成交互任务,操作者需要付出的努力程度;愉悦度为使用系统时的愉悦程度;可行性为实现系统的可行度。具体的打分标准为:各项满分均为100分。其中疲劳度和努力程度分数越低表示系统表现越好,可行性和愉悦度分数越高表示系统表现越好。然后求的各个性能在不同算法中的平均值。实验结果如11所示:由图6可知使用本算法的系统在这四个方面上分别降低或提高了45%,43%,18%,8%。
与以往基于视觉的手势界面相比较,本文提出了虚拟界面的概念。虚拟界面的提出,能够解决有效和无效手势的问题。即处于虚拟界面的内的手势认为是有效手势,而处于虚拟界面之外的手势则被认为是无效手势,不会触发任何命令。研究表明,虚拟界面的存在,不仅能有效解决“Midas Touch Problem”,而且减少了用户的操作负担,具有良好的用户体验。
上述技术方案只是本发明的一种实施方式,对于本领域内的技术人员而言,在本发明公开了应用方法和原理的基础上,很容易做出各种类型的改进或变形,而不仅限于本发明上述具体实施方式所描述的方法,因此前面描述的方式只是优选的,而并不具有限制性的意义。
Claims (6)
1.一种基于虚拟界面的手势交互方法,其特征在于:所述方法包括:
S1,手势分割:从复杂背景中把手势图像分离出来,只在前景中保留手势部分;
S2,构建虚拟界面:操作者按照从左到右、从下到上的顺序,在空中画矩形轨迹,根据该矩形轨迹拟合得到虚拟界面;
S3,对所述虚拟界面进行分区,并判断人手所处的分区;
S4,虚拟界面的实时刷新移动:当人体移动时,已生成的虚拟界面随着人体的移动进行相应的同方向移动;
所述S1中是采用kinect传感器获取深度数据,利用深度数据进行手势分割,具体如下:
利用OpenNI跟踪人手,获取人手的位置;
然后利用人手的深度数据在人手附近进行阈值化,提取出人手的部位;
运用肤色模型对已分割出的人手进行处理得到分割结果;
对分割结果进行去噪、腐蚀、膨胀处理,获得手势空间点;
所述S2中的虚拟界面的大小和位置由两部分确定:手势空间点在屏幕上的投影点所确定的平面矩形范围,用集合Range1表示,采用最小二乘法线性拟合的方法得到;人手在空间中的深度范围,用集合Range2表示,采用对深度数据求最值的方法得到;
所述S2是这样实现的:
(A1)保存初始状态人手的空间坐标点;
(A2)判断虚拟界面学习过程是否结束,若同时满足结束条件,则表明学习结束,然后转向步骤(A7);若不满足以下条件,则转入步骤(A3);所述结束条件为:
|Cur_pointy-Sta_pointy|<a (1)
|Cur_pointx-Sta_pointx|<a (2)
其中,Cur_pointy为当前帧人手空间坐标y值,Sta_pointy为初始状态人手空间坐标y值,Cur_pointx为当前帧人手空间坐标x值,Sta_pointx为初始状态人手空间坐标x值;a为常量;
(A3)将当前帧手势投影坐标值保存在集合C1中,n为集合C1中元素的个数。将人手空间深度值HandDepth保存到集合C2中;同时判断是否满足公式(3),若满足公式(3)所示的条件,则将该帧手势的投影坐标值保存在中间变量Temp中:
Cur_pointx-Sta_pointx<b (3)
b为常量;
(A4)确定左下角点的坐标,判断是否满足:
Cur_pointx-Sta_pointx>b (4)
若满足,则Temp即当前点为左下角点的坐标值,同时也为投影矩形下面的边y=Ymax的初始点坐标值;
(A5)拟合投影矩形左边的直线x=Xmin,对集合C1和n运用最小二乘法进行直线拟合,得到Xmin的值;
(A6)寻找右下角的点,开始对直线y=Ymax进行拟合;
(A7)确定虚拟界面学习过程中的深度范围:对集合C2求最大和最小值得到HDmin、HDmax;
(A8)按照同样的方法分别对直线y=Ymax、x=Xmax、y=Ymin进行拟合,得到Range1={Xmin,Xmax,Ymin,Ymax};
虚拟界面的范围Range为:
Range=Range1URange2={Xmin,Xmax,Ymin,Ymax,HDmin,HDmax}(5)
其中,Xmin、Xmax分别为投影矩形x方向的最小值和最大值,Ymin、和Ymax分别为投影矩形y方向的最小值和最大值,HDmin、HDmax分别为学习过程中手势深度的最小值和最大值;
人手在屏幕上的投影点x坐标为ProX,y坐标为ProY,人手在空间中的深度坐标为HandZ;当满足ProX∈[Xmin,Xmax],ProY∈[Ymin,Ymax],HandZ∈[HDmin,HDmax]时,手势命令才是有效的。
2.根据权利要求1所述的基于虚拟界面的手势交互方法,其特征在于:所述a取值为30;所述b其推荐取值为50。
3.根据权利要求2所述的基于虚拟界面的手势交互方法,其特征在于:所述S3是这样实现的:
将投影矩形按照从左到右的顺序平均分成三份,分别为第一分区、第二分区、第三分区,各分区功能依次为:控制3D场景中物体的放大、缩小和旋转;具体如下:
(B1)根据以下公式计算Value1、Value2的值。
xeach=(Xmax-Xmin)/3 (6)
Value1=Xmin+xeach (7)
Value2=Value1+xeach (8)
其中,xeach为被分割后的每一个小矩形的长度,Xmin为投影矩形左端点x方向的值,Xmax为平面矩形右端点x方向的值,Value1、Value2为分割点,其中Value1<Value2;
(B2)判断人手的位置:实时获取每帧手势的ProX、ProY、HandZ值。
4.根据权利要求3所述的基于虚拟界面的手势交互方法,其特征在于:所述(B2)是这样实现的:
(B2a)当满足ProX∈[Xmin,Valuex1],ProY∈[Ymin,Ymax],HandZ∈[HDmin,HDmax]时,表明人手处于第一分区,此时3D场景中三维物体的体积变大;
(B2b)当满足ProX∈[Value1,Value2],ProY∈[Ymin,Ymax],HandZ∈[HDmin,HDmax]时,表明人手处于第二分区,此时3D场景中三维物体体积缩小;
(B2c)当满足ProX∈[Value2,Xmax],ProY∈[Ymin,Ymax],HandZ∈[HDmin,HDmax]时,表明人手处于第三分区,此时3D场景中的三维物体按照固定的方向不停地旋转;
(B2d)若(B2a)、(B2b)、(B2c)均不满足,则表明人手处于虚拟界面外,此时手势命令无效。
5.根据权利要求4所述的基于虚拟界面的手势交互方法,其特征在于:所述S4是这样实现的:
(C1)保存完成虚拟界面时的人体的重心坐标P1;
(C2)获取当前帧人体的重心坐标P2,并计算人体在空间中移动的距离d;
(C3)判断虚拟界面是否需要移动:判断d>s2是否成立,s2为常量;若成立,则表明虚拟界面需要移动,转入(C4;)若不成立,则虚拟界面不需要移动,返回步骤(C2);
(C4)判断虚拟界面是左移还是右移:
当人体向左移动时,将虚拟界面左移,更新集合Range中元素的值:
Xmin=Xmin-d*scale (9)
Xmax=Xmax-d*scale (10)
当人体向右移动时,将虚拟界面右移,更新集合Range中元素的值:
Xmin=Xmin+d*scale (11)
Xmax=Xmax+d*scale (12)
scale为一小于1的数,同时更新P1的值,使P1=P2。
6.根据权利要求5所述的基于虚拟界面的手势交互方法,其特征在于:所述s2取值为200;所述Scale取值为0.7。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510347461.0A CN104951073B (zh) | 2015-06-19 | 2015-06-19 | 一种基于虚拟界面的手势交互方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510347461.0A CN104951073B (zh) | 2015-06-19 | 2015-06-19 | 一种基于虚拟界面的手势交互方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104951073A CN104951073A (zh) | 2015-09-30 |
CN104951073B true CN104951073B (zh) | 2017-03-29 |
Family
ID=54165770
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510347461.0A Active CN104951073B (zh) | 2015-06-19 | 2015-06-19 | 一种基于虚拟界面的手势交互方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104951073B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107067431B (zh) * | 2017-01-16 | 2020-07-03 | 河海大学常州校区 | 一种基于Kinect的物体体积计算方法 |
CN107145220A (zh) * | 2017-03-24 | 2017-09-08 | 深圳奥比中光科技有限公司 | 人机交互自适应调整方法及系统 |
CN107678540A (zh) * | 2017-09-08 | 2018-02-09 | 广东广业开元科技有限公司 | 基于深度传感器的虚拟触屏人机交互方法、系统及装置 |
CN107728792B (zh) * | 2017-11-17 | 2020-08-11 | 浙江大学 | 一种基于手势识别的增强现实三维绘图系统及绘图方法 |
CN117111873B (zh) * | 2023-10-23 | 2024-01-09 | 南昌市一境信息技术有限公司 | 一种基于cave环境的沉浸交互系统 |
CN117271809B (zh) * | 2023-11-21 | 2024-02-09 | 浙江大学 | 基于任务场景和上下文感知的虚拟代理交流环境生成方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN203759647U (zh) * | 2013-12-06 | 2014-08-06 | 浙江师范大学 | 一种体感跟随装置 |
CN104335145A (zh) * | 2012-06-08 | 2015-02-04 | Kmt全球公司 | 基于空间位置识别的用户界面装置以及方法 |
CN104516649A (zh) * | 2013-09-28 | 2015-04-15 | 南京专创知识产权服务有限公司 | 基于体感技术的智能手机操作技术 |
CN104589356A (zh) * | 2014-11-27 | 2015-05-06 | 北京工业大学 | 基于Kinect人手运动捕捉的灵巧手遥操作控制方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6614422B1 (en) * | 1999-11-04 | 2003-09-02 | Canesta, Inc. | Method and apparatus for entering data using a virtual input device |
-
2015
- 2015-06-19 CN CN201510347461.0A patent/CN104951073B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104335145A (zh) * | 2012-06-08 | 2015-02-04 | Kmt全球公司 | 基于空间位置识别的用户界面装置以及方法 |
CN104516649A (zh) * | 2013-09-28 | 2015-04-15 | 南京专创知识产权服务有限公司 | 基于体感技术的智能手机操作技术 |
CN203759647U (zh) * | 2013-12-06 | 2014-08-06 | 浙江师范大学 | 一种体感跟随装置 |
CN104589356A (zh) * | 2014-11-27 | 2015-05-06 | 北京工业大学 | 基于Kinect人手运动捕捉的灵巧手遥操作控制方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104951073A (zh) | 2015-09-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104951073B (zh) | 一种基于虚拟界面的手势交互方法 | |
US11494003B1 (en) | Gesture keyboard method and apparatus | |
US10761612B2 (en) | Gesture recognition techniques | |
US11307666B2 (en) | Systems and methods of direct pointing detection for interaction with a digital device | |
US20220414993A1 (en) | Image processing apparatus, image processing method, and program | |
US9619105B1 (en) | Systems and methods for gesture based interaction with viewpoint dependent user interfaces | |
Hackenberg et al. | Lightweight palm and finger tracking for real-time 3D gesture control | |
US9619042B2 (en) | Systems and methods for remapping three-dimensional gestures onto a finite-size two-dimensional surface | |
US20170153713A1 (en) | Head mounted display device and control method | |
JP2018516422A (ja) | スマートホームのためのジェスチャ制御システム及び方法 | |
CN106201173A (zh) | 一种基于投影的用户交互图标的交互控制方法及系统 | |
Wang et al. | Immersive human–computer interactive virtual environment using large-scale display system | |
CN104516654B (zh) | 操作处理方法和装置 | |
CN105138131B (zh) | 一种通用的手势命令发射和操作方法 | |
Liang et al. | Turn any display into a touch screen using infrared optical technique | |
CN105929946B (zh) | 一种基于虚拟界面的自然交互方法 | |
Akman et al. | Multi-cue hand detection and tracking for a head-mounted augmented reality system | |
TW201301877A (zh) | 以影像感測器為基礎之具有多輸入模式之多維度遙控器 | |
CN117695648B (zh) | 虚拟角色的移动和视角控制方法、装置、电子设备和介质 | |
US20220415094A1 (en) | Method and system for estimating gesture of user from two-dimensional image, and non-transitory computer-readable recording medium | |
Schlattmann et al. | Efficient bimanual symmetric 3d manipulation for bare-handed interaction | |
Liu et al. | Virtual interface and its application in natural interaction | |
Das et al. | A Hybrid Motion Based-Object Tracking Algorithm for VTS | |
Schlegel et al. | Armchair Interface: Computer Vision for General HCI |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |