发明内容
本发明提出一种利用视线跟踪技术和常规鼠标控制设备的三维漫游方法,将视线跟踪技术与常规鼠标控制设备相结合,在不增加硬件复杂度的情况下,提高漫游控制的自由度,使三维漫游更加高效、灵活和自然。
本发明的目的是通过下述技术方案实现的:
包括计算机及其显示器、视频采集设备和常规鼠标控制设备;
步骤一,用户选择一种二维漫游动作:二维平移漫游状态或二维旋转漫游状态,并向视频采集设备发出开启信号;
步骤二,当视频采集设接收到步骤一的开启信号时,开始实时、连续采集用户的脸部图像得到视频数据,并传送给计算机;
步骤三,计算机从步骤二传来的视频数据中提取用户视线的注视方向,并根据视频采集设备与计算机显示器的相对位置关系,推算用户注视点在计算机显示器上的坐标位置,如果该坐标位置落在计算机显示器范围内则进行步骤四,否则重新采集视频,重复步骤三;
步骤四,通过步骤三得到的用户注视点在显示器上的坐标位置,根据步骤一选择的二维平移漫游或二维旋转漫游进行漫游;
步骤五,当步骤四的二维漫游动作进行漫游时,根据鼠标光标的位置选择一种一维漫游动作:且同一时刻将一种二维漫游和一种一维漫游同时进行,结合成为三维漫游控制;
步骤六,当接收到三维漫游停止的信号时,结束漫游。
步骤四中所述二维平移漫游:以显示器中心为起点、注视点为终点确定了一个注视点矢量,相应的平移参数也构成一个矢量,其方向与注视点矢量的方向一致,其大小与注视点矢量的大小成比例;当用户注视显示器上某点,则用户注视点就会朝该点平移,而且当用户注视点随该点移近显示器中心,平移的速度也随之放慢,最终趋于静止。
步骤四中所述二维旋转漫游:以显示器中心为起点、注视点为终点确定了一个注视点矢量,该矢量在水平方向和垂直方向上的分量分别决定水平旋转和垂直旋转的程度,其旋转速度与对应分量的大小近似成比例;而且,当水平分量向左时,视角向左旋转;当水平分量向右时,视角向右旋转;当垂直分量向上时,视角向上旋转;当垂直分量向下时,视角向下旋转;当水平旋转与垂直旋转同时进行时,最终的旋转效果由两者共同决定;同样,当用户注视点移近显示器中心,旋转的速度也随之放慢,最终趋于静止。
步骤五中所述一维缩放漫游或一维旋转漫游:显示器被划分为互不重叠的四个区域,位于显示器的上部、下部、左部和右部,当鼠标光标位于计算机上部或下部,则进行一维缩放漫游;当鼠标光标位于左部或右部,则进行一维旋转漫游;鼠标光标到显示器中心的距离则决定了缩放或旋转的速度;
本发明的有益效果:
首先,本发明将视线跟踪与常规鼠标控制设备相结合,不但能够同时进行三个维度的漫游操作,增强了控制效果;而且减轻了常规鼠标控制设备的负担(或者说视线分担了手臂的工作量),使其操作任务从二维降至一维;这样,原本操作性能较弱的一些常规鼠标控制设备(如触摸板)也能很好的胜任。
其次,本发明将漫游动作划分为两大类,每类各有两种,共能得到四种组合复合漫游模式,能够满足常用的漫游需要。
第三,本发明利用视线跟踪技术来进行二维漫游,提供了直观的控制方式,符合人类的自然反应,便于学习与操作。
最后,本发明充分挖掘常用计算机外设的潜力,不增加额外的设备及成本投入。
具体实施方式
为了更好地理解本发明的技术方案,下面结合附图及具体实施例对本发明做进一步详细描述。
本发明公开了一种利用视线跟踪技术与常规鼠标控制设备相结合的三维漫游方法,该方法通过视线及鼠标光标的结合,能够实现灵活而且直观的三维漫游体验。
如图1,其硬件环境包括一台计算机110及其所包含的显示器115、一个视频采集设备120以及一个常规鼠标控制设备130(如鼠标、触摸板等)。显示器115既显示三维场景,也显示漫游过程中产生的各种显示反馈图形。视频采集设备120可能属于计算机110中附带的一部分,也可能为独立设备但被安装在与显示器115相对固定位置上,镜头朝向用户140;其作用是实时采集用户140的脸部图像,并传送到计算机110中由相应的软件模块中,用于计算用户140的视线方向和注视点等。常规鼠标控制设备130可能属于计算机110中附带的一部分(如:触摸板等),也可能为独立设备(如:各种鼠标、轨迹球等),其作用是在用户140肢体的控制下产生二维输入信号,经相应软件模块处理后转换为不同类型的一维漫游参数。
该方法包括视频采集、注视点估计、视线漫游参数计算、鼠标漫游参数计算、显示反馈等步骤。如图2,下面对各步骤进行具体说明:
步骤一,用户选择一种二维漫游动作:二维平移漫游状态或二维旋转漫游状态,并向视频采集设备发出开启信号;
为了开启漫游状态,需要由用户发出“开启”及“停止”命令,来标记二维漫游动作的有效时间段,并且区分二维平移和二维旋转;因此,用户可以分别用一个“开启”及“停止”命令来标记两种漫游操作,比如:按下左键表示开始二维平移,松开表示结束;按下右键表示开始二维旋转,松开表示结束。在符合本发明思路的前提下,还可以采用各种不同的方案来实现“开启”,比如:以其它方式按下鼠标键、以某种方式按下键盘按键、发出语音命令、移动鼠标做特定的动作、做肢体动作、视线凝视某处、控制视线沿特定的轨迹移动等等。
步骤二,当接收到步骤一的开启信号时,视频采集设备就开始实时、连续采集用户的脸部图像得到视频数据,并将其传送至计算机中运行的信息处理模块进行注视点估计。视频采集设备可以是原本就集成在计算机中的(比如便携式计算机上的摄像头),也可以是安装在一个与计算机显示器保持相对固定的位置,其拍摄方向为用户的脸部及附近的空间。通常只要使用可见光视频采集设备即可,但所述的处理方法同样适用于其它类型的视频采集设备。
步骤三,从步骤二传来的视频数据中提取用户视线的注视方向,并根据视频采集设备与计算机显示器的相对位置关系,推算用户注视点在显示器上的坐标位置,如果该坐标位置落在显示器范围内则进行步骤四,否则重新采集视频。该步骤为注视点估计,这个过程涉及图像处理和计算机视觉中的若干技术,通常需要进行图像预处理、人脸检测、人眼检测、眼部特征提取、视线方向估计和注视点计算等步骤,根据实际情况可能需要在使用前进行标定,确定并储存视频采集设备以及人眼的一些参数。目前已经有许多视线估计方法可以采用,其中有一些是基于可见光的,可以从中选取合适的来使用等。
步骤四,通过步骤三得到的用户注视点在显示器上的位置,根据步骤一选择的二维平移漫游或二维旋转漫游进行漫游;
二维平移漫游状态:以显示器中心为起点、注视点为终点确定了一个注视点矢量,相应的平移参数也构成一个矢量,其方向与注视点矢量的方向一致,其大小与注视点矢量的大小近似成比例;当用户注视显示器上某点,则视点就会朝该点平移,而且当用户注视点随该点移近显示器中心,平移的速度也随之放慢,最终趋于静止;如图3所示,当进入二维平移漫游状态后,以显示器115的中心点310为起点、用户的当前注视点320为终点形成了一个注视点矢量330。根据注视点矢量330,可以计算出一个平移参数矢量,其方向与注视点矢量330的方向一致,其大小与注视点矢量330的大小成一定的函数关系;通常可以使平移参数矢量的大小与注视点矢量330的大小近似成正比。这样,当用户注视显示器115上的某点时,三维场景的视点就会朝该点平移,或者说该点就会朝显示器中心310移动;并且用户注视点320离显示器中心310越远,视点平移的速度也就越快;随着用户注视点320移近显示器中心310,平移的速度也随之放慢,最终趋于静止。根据实施中的实际需要,也可以采用其它函数对应关系。
二维旋转漫游状态:以显示器中心为起点、注视点为终点确定了一个注视点矢量,该矢量在水平方向和垂直方向上的分量分别决定水平旋转和垂直旋转的程度,其旋转速度与对应分量的大小近似成比例;而且,当水平分量向左时,视角向左旋转;当水平分量向右时,视角向右旋转;当垂直分量向上时,视角向上旋转;当垂直分量向下时,视角向下旋转;水平旋转与垂直旋转可以同时进行,最终的旋转效果由两者共同决定;同样,当用户注视点移近显示器中心,旋转的速度也随之放慢,最终趋于静止。如图4,当进入二维旋转漫游状态后,也可以根据注视点矢量330计算出一个旋转参数矢量,其方向与注视点矢量330的方向一致,其大小与注视点矢量330的大小成一定的函数关系;通常也可以使旋转参数矢量的大小与注视点矢量330的大小近似成正比。注视点矢量330可以分解为水平分量341和垂直分量342;相应的旋转参数矢量也可以分解水平旋转分量和垂直旋转分量,二者分别决定了三维场景中视角的水平和垂直旋转参数。一方面,水平和垂直旋转分量的方向分别决定了视角沿水平和垂直方向的旋转方向;当水平分量向左时,视角向左旋转;当水平分量向右时,视角向右旋转;当垂直分量向上时,视角向上旋转;当垂直分量向下时,视角向下旋转。另一方面,水平和垂直旋转分量的大小分别决定了视角沿水平和垂直方向的旋转速度;即:若用户注视点320离显示器中心310越远,视角旋转的速度也就越快;随着用户注视点320移近显示器中心310,旋转的速度也随之放慢,最终趋于静止。水平旋转与垂直旋转可以同时进行,二者合成最终的旋转方向;为了符合用户的直观感觉,通常应使其与注视点矢量330的方向一致。
在二维平移状态下,用户注视点的位置决定了画面平移的方向和速度;在二维旋转状态下,用户注视点的位置决定了视角旋转的方向和速度。
步骤五,当步骤四二维漫游动作进行漫游时,根据鼠标光标的位置选择一种一维漫游动作:一维缩放漫游或一维旋转漫游;当鼠标光标位于上部或下部,则进行一维缩放漫游;当鼠标光标位于左部或右部,则进行一维旋转漫游;鼠标光标到显示器中心的距离则决定了缩放或旋转的速度;同一时刻可以将一种二维漫游和一种一维漫游同时进行,结合成为三维漫游控制。
一维缩放漫游和一维旋转漫游的有效时间段根据所述的二维平移漫游和二维旋转漫游自动确定;一维漫游动作不需要由用户发出“开启”及“停止”命令,而是伴随二维漫游的有效时间段自动开始及结束;当任意一种二维漫游动作可用时,一维漫游动作也就随之可用;当所有漫游动作均不可用时,一维漫游动作也就不可用。两种二维漫游动作可以与两种一维漫游动作灵活组合使用,无论是二维平移还是二维旋转,均可与一维缩放和一维旋转相结合,形成更高效的组合漫游动作。在一维漫游状态下,计算机显示器被划分为互不重叠的四个区域,大致位于显示器的上部、下部、左部和右部;鼠标光标的位置既决定了正在进行的是一维缩放还是一维旋转,又决定了一维缩放和一维旋转的方向(正方向或负方向)和速度。
如图4,计算机显示器115被划分为互不重叠的区域,分别位于显示器的上部、下部、左部和右部。图中采用两条对角线来划分区域,但也可以根据实际需要采用其它方式来划分,只要能够在满足用户的直观感受的前提下区分出一维缩放漫游和一维旋转漫游,并且每种漫游具备足够的显示器空间,使其能够很好的映射为漫游参数即可。在图中所示的方案中,区域421和区域422用于一维缩放漫游操作;当鼠标光标点410位于区域421时,三维场景的画面将持续放大,且放大的速度与鼠标光标点410到显示器中心310的垂直距离成一定的函数关系(通常可以成正比关系,也可以采用其它的函数对应关系);当鼠标光标点410位于区域422时,三维场景的画面将持续缩小,且缩小的速度与鼠标光标点410到显示器中心310的垂直距离成一定的函数关系。区域431和区域432用于一维旋转漫游操作(视角沿顺时针或逆时针旋转);当鼠标光标点410位于区域431时,三维场景的画面将持续逆时针旋转,且旋转的速度与鼠标光标点410到显示器中心310的水平距离成一定的函数关系(通常可以成正比关系,也可以采用其它的函数对应关系);当鼠标光标点410位于区域432时,三维场景的画面将持续顺时针旋转,且旋转的速度与鼠标光标点410到显示器中心310的水平距离成一定的函数关系。
步骤六,当接收到三维漫游停止的信号时,结束漫游。
所述显示反馈步骤不是本发明所必需的步骤,而是起到辅助、完善的作用,通过在计算机显示器上显示一些可视化的图形,来反映当前时刻所处于的漫游类型以及相关的信息。在二维漫游状态下,所显示的图形一方面能够区分当前漫游的类型:是二维平移还是二维旋转;另一方面能够反映出用户当前注视点与显示器中心点的相对位置关系,从而反映出二维漫游的方向和速度。所显示的图形既能够清晰的体现上述信息,又不会太多的遮挡三维场景,尽可能减小对用户观察和操作的影响。
图5显示了二维平移漫游和一维缩放漫游的一种可行的显示反馈方案;其中,箭头510的位置反映了用户注视点的位置,其方向指向显示器115的中心点,表明该点处的画面正在向显示器中心平移,箭头510的粗细反映了平移的速度;图形520由两个同心圆构成,其位置反映了鼠标光标的位置,两个同心圆半径的比率反映了缩放的速度(大于1时表示放大,小于1时表示缩小)。错误!未找到引用源。显示了二维旋转漫游和一维旋转漫游的一种典型显示反馈方案;其中,图形610形如一个有一定俯仰或左右摆动的四棱台,其位置反映了用户注视点的位置,其俯仰或左右摆动的幅度则反映了二维旋转漫游的速度;图形620为一个带有箭头的圆环,其位置反映了鼠标光标的位置,若箭头为顺时针则表示一维旋转为顺时针方向,若箭头为逆时针则表示一维旋转为逆时针方向,圆环的大小则反映了一维旋转的速度。图中显示器115的对角线仅用于辅助说明,实际并不可见。除了上述方案,根据实际情况,也可以采用其它形式来表示漫游的相关信息。
本发明把漫游动作分解为两类。第一类为二维漫游动作,包括二维平移和二维旋转,前者指的是视点沿上下左右四个方向的平移动作,后者指的是视角朝上下左右四个方向的旋转动作(即俯仰和左右偏转)。第二类为一维漫游动作,包括一维缩放和一维旋转,前者指的是视点沿前后两个方向的平移动作,后者指的是视角绕Z轴的旋转动作(即局限在显示器平面内的滚转)。本方法中,二维漫游动作由视线来控制,而一维漫游动作由常规鼠标控制设备来控制。
由于两类漫游分别包含两种动作,因此通过组合共能得到“二维平移+一维缩放”、“二维旋转+一维旋转”、“二维平移+一维旋转”和“二维旋转+一维缩放”等四种复合漫游模式,覆盖了常用的漫游操作需要。使用中,用户可以通过眼、手配合,形成多种复合漫游动作,进行灵活而直观的三维漫游控制。首先需要通过预定的“开启”命令,进入某种类型的漫游动作(可以选择两种二维漫游动作之一)。然后,在此状态下,同时进行视线控制的二维漫游以及肢体控制的一维漫游,即四种复合漫游模式中的某一种。通过不同的“开启”命令,就可在两种二维漫游动作之间切换;通过控制鼠标光标的位置,就可在两种一维漫游动作之间切换。通过视线与肢体的控制,可以在每种复合漫游模式下实现三个自由度的三维漫游。
综上所述,以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。