与图形图象相互作用 的用户输入设备和方法
发明领域
本发明通常涉及用于实施一个物体在一个图形显示器上的运动的用户输入设备和方法,更具体地是涉及这样一种输入设备和方法,其中用户的视频图象被捕获和处理以提供一个用以实施一个物体在一个图形显示器上的平移和/或旋转运动的信号。尤其是,这个发明适用于诸如视频游戏的图形娱乐系统。
发明背景技术
使用视频图象的系统、方法、输入和输入设备被用来实施一个物体在一个图形显示器诸如视频监视器上的运动。经常地,这种视频输入设备响应于一个用户在一个视频捕获设备的视场内的运动或位置。近年来,视频图象处理已经被用来将已经被捕获作为一序列视频图象的用户运动转换成为用于游戏控制的信号。现有技术中的输入系统包含一个视频捕获设备,它扫描一个系统用户所处于的视场。所捕获的视频图象应用于一个提供数字输出到一个处理器的视频数字化仪,然后由该处理器分析和处理从数字化仪接收的数字信息,并且基于参与者在视场内的运动或位置,产生信号由该图形生成系统使用,以便在显示屏上运动物体。尽管设备或图形显示器的操作或输出能够由此受到参与者的位置或运动的影响,但是需要的计算机处理时间常常是非常长和复杂的,其趋于需要充足的计算机和/或时间资源。
此外,使用用户视频图象数据、来实施一个对象在一个图形显示器上的运动的已知设备和方法的通常特征在于:在摄像机视场内的参与者上的重要阻碍。这种系统可以包含要求参与者穿戴的附加设备,诸如整体的手臂覆盖物或手套、更容易检测的部分或颜色、和/或诸如发光二极管之类的可见光源。然而,这种系统不能够提供一个能够满足对消费品的市场需求、诸如视频游戏控制器可能需要的用户输入设备所需要的易用、迅速响应、和简单性。
此外,已知的系统包含视频图象的附加分析以便了解或识别正在发生的运动,诸如与预先存在的标记的比较,这增加了系统复杂性和响应时间,使它们不能被广泛使用。
此外,尽管已知系统可能需要输入视频图象处理器识别和确定相当多的片段、边界、和/或方框,以便产生用于图形显示器控制目的的输出信号,但是这些系统不允许基于有限片段/瞬间的最小初始判定的一系列控制信号计算,这些系统也不提供以一种简单、平稳的方式,生成适用于输入视频分辨率较低的时间和系统的输出信号。
因此,使用用户视频图象输入用于与在一个图形显示器上的对象相互作用的本系统,假若经由输出图形显示器保持控制的一个有效水平时,通常不会提供需要的简单性、反应性、和市场化质量的性能。
本发明的概述和目的
根据使用视频图象用于与一个图形显示器相互作用的用户输入技术的现有状况,考虑到上述缺点,本发明的一个目的是提供一种用户输入系统和方法,它不仅提供了设计和方法和简单性,还提供了坚实、有效的相互作用。
本发明实施例的进一步目的是提供一个允许从仅仅几个片段/瞬间的初始判定中计算一系列控制信号的用户输入系统。
本发明实施例还有一个进一步目的是提供一个需要和消费者娱乐系统相一致的计算机处理性能的用户输入系统。
本发明实施例另外还有一个目的是提供一个在摄像机视场内没有任何用户阻碍的用户输入系统。
这里公开了一种用于响应于用户输入,实施一个对象在一个图形显示器上的运动的设备和方法。一个输入设备包含:一个用于捕获视频图象的部件;一个输入图象处理器,用于处理所捕获的视频图象,并且响应于来自于该视频图象的运动生成一个输出信号;和一个输出图象处理器,被编程用以响应于从输入图像视频处理器接收的信号,实施一个对象在图形显示器上的运动。在输入图象处理器内使用了各种算法以确定实施物体在图形显示器上的运动的初始和导出数据。在一个最佳实施例中,捕获和处理视频图象以从背景中分离一个人体形状,从该人体形状中计算出手臂位置和运动数据,而且由输入图象处理器产生一个信号,其中该输入图象处理器对这个数据做出响应以控制一个对象、诸如一只鸟在一个图形显示器上的运动。在图形显示器上控制的运动能够采取一种运动对象的形式、或是这样一个对象可能经历的场景(例如,鸟的视场)的改变的形式。
通过附图和随后的详细说明,本发明的其它特征和优点将会是显而易见的。
附图简要说明
本发明在附图图形中通过举例、而不是限制,进行了说明,在附图中相似的附图标记表示相似的元件,其中:
图1是一个可用于实现本发明的实施例、用于与在一个图形显示器上的一个对象进行相互作用的示例用户输入系统的方框图;
图2说明了一个依据本发明的一个实施例、用于与在一个图形显示器上的一个物体进行相互作用的用户输入系统;
图3是依据本发明一个实施例、显示了被划分成左右手臂子图像以用于判定手臂角度的一幅人体图象的示例图;
图4是一个说明了依据本发明一个实施例、响应于一个用户手臂的运动,实施一个对象在一个图形显示器上的运动的步骤的流程图;
图5说明了依据本发明一个实施例、用于用户位置的第一种情况、在一个用户的手臂和在一个图形显示器上的一个对象之间的相互关系;
图6说明了依据本发明一个实施例、用于用户位置的第二种情况、在一个用户的手臂和在一个图形显示器上的一个对象之间的相互关系;
图7说明了依据本发明一个实施例、用于用户位置的第三种情况、在一个用户的手臂和在一个图形显示器上的一个对象之间的相互关系;
图8说明了依据本发明一个实施例、用于用户位置的第四种情况、在一个用户的手臂和在一个图形显示器上的一个对象之间的相互关系;
图9说明了依据本发明一个实施例、用于用户位置的第五种情况、在一个用户的手臂和在一个图形显示器上的一个对象之间的相互关系;
图10是实现了依据本发明实施例的用户输入设备和方法的一个示例处理系统的方框图。
最佳实施例说明
这里公开了一种响应于用户输入、实施一个对象在一个图形显示器上的运动的设备和方法。在下面的描述中,为了说明起见,阐述了大量细节以便提供对本发明的一个彻底了解。然而,显然对本领域的一个普通技术人员来说没有这些细节,也可以实现本发明。在其它情况下,众所周知的结构和设备以方框图形式显示以便于说明。最佳实施例的描述不打算限制这里附加的权利要求的范围。
硬件综述
本发明的方面可以由能够执行基本视频图象处理和能够图形化显示的设备实现。图1是一个可用于实现本发明实施例、用于与在一个图形显示器上的一个对象进行相互作用的示例用户输入系统的方框图。如图1所示,用户输入系统100包含一个视频捕获设备102、一个输入图象处理器104、一个输出图象处理器106、和一个视频显示设备108。
视频捕获设备102可以是能够捕获视频图象序列的任何一种设备,在当前最佳实施例中,它是一位数字视频摄像机(诸如一个“网络摄像机)、或是类似的图象捕获设备。输入图象处理器104将所捕获的人体手臂运动的视频图象转换成为被传送到一个输出图象处理器的信号。在一个实施例中,输入图象处理器104被编程用于:在所捕获的视频图象中将人体形状从背景中分离出来,从躯干中分离出人体手臂部分,确定人体手臂的位置和运动,并且响应于人体手臂的位置和/或运动生成一个输出信号。输出图象处理器106被编程用来响应于从输入图象处理器104接收的信号,实施一个对象在视频显示设备108上的平移和/或旋转运动。
本发明的这些和另外的方面可以由执行软件指令的一个或多个处理器实现。依据本发明的一个实施例,单个处理器执行输入图象处理和输出图象处理。然而,如图所示,并且为了便于说明,将处理操作显示为分成一个输入图象处理器104和一个输出图象处理器106。应当注意到,本发明决不能被解释为局限于任何特定处理器配置,诸如多于一个处理器。显示图1中所示的多个处理块和其它图仅仅是为了便于说明起见。
图2说明了一个依据本发明实施例、用于使用户与在一个图形显示器上的一个对象进行相互作用的输入系统。输入系统环境200包含用户202、视频捕获设备204、视频显示设备206、和包含处理器功能的控制台208,诸如一台视频游戏机。在输入系统环境200中的用户202应该位于视频捕获设备204的视场210内。这个处理系统208能够由一个娱乐系统、诸如SonyPlaystationTM II或SonyPlaystationTM I类型的处理和计算机娱乐系统实现,而且这种实现在以下的最佳实施例部分进行更详细地描述。然而,应当注意到:处理系统208能够由其它类型的计算机系统、诸如个人电脑、工作站、膝上型计算机、无线计算设备、或是能够接收和处理图形图象数据的其它任何类型计算设备来实现。
图象处理方法
图1和图2中的系统与一种通过使用由一个视频设备捕获的人体手臂的位置和运动数据,生成信号以实施一个对象在一个图形显示器上的平移和/或旋转运动的方法一起被实现。当用户202在摄像机204的视场范围210内运动或定位他自己时,就实施一个或多个对象在显示设备206上的相应运动或定位。例如,用户的运动可用于在显示设备上相对于一个显示的背景移动一个光标或动画人物。在一个最佳实施例中,这个视频处理方法的步骤是:(1)在视场内减去背景;(2)确定可视物体范围;(3)确定手臂/附属肢体的角度或位置;以及(4)确定飞行参数。
步骤1:减去背景
当用来控制图形显示运动的一个人或其它对象处于视场210中时,该人的图象由数字摄象机204捕获以生成像素数据用于由处理器单元208进行处理。在本发明的一个实施例中,减去背景产生用来标明是人(前景)或者不是人(背景)的该图象的每像素一个标记。这通过当场景中不包含该人时,存储一个来自于视频序列的帧来完成。使用一种相减过滤处理将所存储的帧从实时视频序列中减去以产生前景图象。关于这个减法可以怎样实现有几种变化。在一个实施例中,在亮度和色度的加权和上使用了一个简单的阈值处理方案以确定一个像素是否在前景或背景中。基本的处理如下:首先,获得静止背景Y0U0V0帧;其次,使用一个5×5高斯卷积平滑图像Y0U0V0;第三,获得当前YUV视频帧;第四,使用一个5×5高斯卷积平滑图像YUV;第五,对以Y表示的每一个像素,计算Ydif=abs(Y-Y0);第六,对以U表示的每一个像素,计算Udif=abs(U-U0);第七,对以V表示的每一个像素,计算Vdif=abs(V-V0);第八,对以YdifUdifVdif表示的每一个像素,计算Sum=Ydif+Udif*8+Vdif*8;第九,对以Sum表示的每一个像素,如果Sum>Threshold,则计算Foreground=1,否则Foreground=0;以及第十,使用标准削弱形态过滤器削弱Foreground(以除去任何单像素的错误测量,诸如由黑白点相间噪声所引起的错误测量)。通常,仅仅如上所述的第三到第十步骤对每个图像帧进行重复。在上述处理中,Y表示像素的亮度,且U和V表示像素的色度。函数“abs(变量)”是指“变量的一个绝对值”,其中“变量”是“Y-Y0”、“U-U0”、或“V-V0”。
步骤2:视场中的人体判定
下一步是确定一个人是否处于视频捕获设备的视场范围内。这确定用户的视频图象处理是否将要被用来驱动图形显示应用。这个步骤包含:统计在前景图象中的非零像素的总数;以及查明在一个最小阈值和一个最大阈值之间的总体落差。最小阈值用来确保在静止背景和当前图像帧之间存在某些差别。最大阈值用来确保这个差别不会太大;例如,这可以由完全阻挡摄像机图象的一个人所引起,或是由忘记初始化所存储的背景帧所引起。
步骤3:手臂角度确定
在本发明的一个实施例中,显示的图形对象在显示器上的运动或定位要受到在视场中人的手臂和/或腿的运动或定位的影响。这个处理通常通过计算分离出的前景图象的区域统计来实现。图3是依据本发明一个实施例、显示了被划分成为左右手臂子图像、用于判定手臂角度的一幅前景(人体)图象的示例图。前景图象302包含人体形状躯干部分300、左臂子图象306和右臂子图象304。首先,如图3所示,通过计算在前景图象中的非零像素的质心和第二个水平力矩确定躯干的水平范围“W”:
1.TorsoStaftX=CentroidX-Sqrt(SecondMomentX)
2.TorsoEndX=CentroidX+Sqrt(SecondMomentX)
其中TorsoStartX被显示为沿躯干部分300的左侧所绘制的线,且TorsoEndX被显示为沿躯干部分300的右侧所绘制的线。函数“Sqrt(SecondMomentX)”表示“SecondMomentX的平方根”。
接下来,处理在TorsoStartX左侧的子图象306以确定左侧手臂角度。计算在这幅子图象中非零像素的主要力矩角度。这个角度能够从0到180度变动,它表示左臂的允许运动范围。同样地处理在TorsoEndX右边的子图象304。主要力矩角度能够被认为是查找的最适合这些像素的一条线的斜率。查找主要力矩角度是在图象处理和动态建模中的一种标准技术。这样一种技术可以在例如由Timoshenko和Gere在1997年出版的教科书Mechanics of Materials中找到。
步骤4:飞行参数确定
用有关用户位置、和他或她的手臂的运动速率和类型的特征来实施在一个图形显示器上显示的图形元件的运动。例如,能够用用户的运动来控制在一个飞行游戏中使用的一个游戏人物的运动,其中该人物被看为在一个景观上飞行。
在与飞行游戏有关的参数方面,每个人的手臂相对于他或她的躯干的角度被处理以计算用于飞行模拟程序的气流速度加速度、倾斜角、和俯仰角。从两个手臂角度带符号的差值计算倾斜角。从两个手臂角度的平均值减去90度计算俯仰角(以便使直接伸出的手臂表示一个零俯仰角)。然后将俯仰角用0.1按比例缩小(-90到90的俯仰角太大了)。用手臂角度(换算成为适当的值)平均值的时间变化率计算气流速度加速度。在几个帧上计算时间变化率以生成一个较平滑的信号。
通常,将所有计算的参数在用它们生成图形显示图象之前进行平滑。这个平滑增加了一点时间滞后,但是产生了一个较少冲击的(时间延迟的)视频显示。当视频捕获设备或处理系统仅仅能够进行低分辨率处理时,该平滑是尤其可取的。
在一个实施例中,计算各种参数以生成用于一个飞行模拟器或类似飞行程序的图形处理变量的方法如下:
1.BankAngle=LeftAngle-RightAngle
2.PitchAngle=(((LeftAngle+RightAngle)/2.0)-90)*0.1
3.Accel=abs((LeftAngle+RightAngle)-(LeftAnglePrev+RightAnglePrev))*K
4.平滑处理计算如下:
BankAngleSmooth=k1*BankAngle+(1-k1)*BankAngleSmoothPrev
PitchAngleSmooth=k2*PitchAngle+(1-k2)*PitchAngleSmoothPrev
AccelSmooth=k3*Accel+(1-k3)*AccelSmoothPrev
平滑的数值被用来进行模拟。在上述等式中,“K”表示某些常数值。取决于例如用户将具有的准确加速度,改变常数K。常数k1、k2、和k3指定了显示物体的响应特性。这允许用户运动和显示物体运动之间的相互关系为各种体验进行定制。例如,在一个飞行模拟器执行中,这些常数能够被编程用来选择或规定与不同类型飞机或飞行物体有关的不同特性,从而允许不同的模拟体验。例如,这些常数的一个设置能够被用来模拟一个喷气式飞机的感觉,而这些常数的另一个设置能够被用来模拟一个悬挂式滑翔机的感觉。在上述处理中,“xxxPrev”表示“前一个xxx值”,其中“xxx”是“LeftAngle”、“RightAngle”、“BankAngleSmooth”、“PitchAngleSmooth”、或“AccelSmooth”。例如,在一个视频游戏中,“xxxPrev”是指来自于前一帧的值。此外,“xxxSmooth”表示“平滑后的xxx值”,其中“xxx”是“BankAngle”、“PitchAngle”、或“Accel”。
图4的流程图说明了用于本发明一个实施例、按照如上所述的方法、响应于一个用户的手臂运动实施一个对象在一个图形显示器上的运动的步骤。在图4中流程图400的最初两个步骤包含减去背景的步骤。在步骤404,一个捕获的、不包含人的视频图象被存储下来,然后在步骤406,从实时视频序列中减去存储的视频图象。接下来,在步骤408,确定一个人是否在数字摄象机的视场之内。步骤410包含手臂角度确定步骤的第一部分,它确定躯干的水平范围。在步骤412,确定每个手臂角度。这通过计算每个手臂子图象的理论力矩角度来执行。
就该最佳实施例来说,飞行参数确定步骤包含图4中的最后三个步骤。首先,在步骤414,使用与上述相同的等式处理手臂角度以计算飞行参数。其次,在步骤416,这些数值用包含为一个特定飞行体验(例如,喷气式飞机、滑翔机等)所选择的常数的函数进行平滑。最后,在步骤418,平滑了的参数被用于飞行模拟中以实施一个对象在一个图形显示器上的平移和/或旋转运动。
依据本发明的一个替换实施例,生成一个信号用于在任何已知的电信系统中使用,而不仅仅用于实施一个对象在一个图形显示器中的运动。这个实施例能够被描述成一种响应于人体手臂的位置和/或运动数据而生成信号的方法,包含:提供一个图象处理器和一个用于捕获视频图象的设备;用该设备捕获视频图象,并且使用图象处理器处理那些图象以从背景中分离出一个人体形状;使用该图象处理器从一幅捕获的视频图象中分离出该人体形状的手臂部分;使用图象处理器计算手臂的位置和运动数据;以及使用该图象处理器响应于手臂的位置和运动数据生成一个信号。
图形输入和处理功能
在当前最佳实施例中,一个用户的手臂动作被视频捕获设备所捕获,而且相应的动作被转换为在一个图形显示器上显示的一只鸟的运动。某些典型的手臂动作以及它们和鸟运动的相互关系在图5到图9中进行了说明。图5说明了依据本发明一个实施例、在一个用户的手臂拍动和在图形显示器上一只鸟的上升之间的相互关系。如图5所示,相关系统500显示了具有左臂504和右臂506、并如双向箭头508所示拍动他的手臂的用户502。在相应的图形显示器510上,相对于景观516,这个动作与如箭头514所示的鸟512的上升相关联。
图6说明了依据本发明一个实施例、在一个保持他或她的手臂直伸出的用户和在图形显示器上滑翔的一只鸟之间的相互关系。如图6所示,相关系统600显示了具有左臂604和右臂606、并如水平箭头608所示保持他的手臂直伸出的用户602。在相应的图形显示器610上,相对于景观616,这个动作与如水平飞行路径所示的鸟612的滑翔相关联。
图7说明了依据本发明一个实施例、在一个向左侧倾斜他或她的手臂的用户和在图形显示器上向左倾斜的一只鸟之间的相互关系。如图7所示,相关系统700显示了具有左臂704和右臂706、并分别如向下箭头708和向上箭头710所示定位他的手臂从而使他的左臂704低于右臂706的用户702。在相应的图形显示器714上,相对于景观716,这个动作与如具有一个正斜率的鸟身体轴线所示、向左倾斜的鸟712相关联。
图8说明了依据本发明一个实施例、在一个向右倾斜他或她的手臂的用户和在图形显示器上向右倾斜的一只鸟之间的相互关系。如图8所示,相关系统800显示了具有左臂804和右臂806、并分别如向上箭头808和向下箭头810所示定位他的手臂从而使他的左臂804高于右臂806的用户802。在相应的图形显示器812上,相对于景观818,这个动作与如具有一个负斜率的鸟身体轴线所示、向右倾斜的鸟814相关联。
图9说明了依据本发明一个实施例、在一个向后褶起他或她的手臂的用户和在图形显示器上下降的一只鸟之间的相互关系。如图9所示,相关系统900显示了具有左臂904和右臂906、如向下箭头908所示定位他的手臂以便使他的手臂向后褶起的用户902。在相应的图形显示器910上,相对于景观916,这个动作与如箭头914所示下降的鸟512相关联。
在该最佳实施例中,本发明的用户输入设备和方法通过由图10的方框图说明的一个计算机处理系统来实现。该处理系统可以表示一个基于计算机的娱乐系统实施例,它包含一个中央处理单元(“CPU”)1004,连接到一个主存储器1002和图形处理单元(“GPU”)1006。CPU1004也连接到一个输入输出处理器(“IOP”)总线1008。在一个实施例中,GPU 1006包含一个内部缓冲区用于基于像素的图形数据的快速处理。另外,GPU能够包含一个输出处理部分或功能,将处理的图象数据转换成为标准电视信号、例如NTSC或PAL,用于传送到一个连接在该娱乐系统1000或它的元件以外的电视监视器1007。做为选择,数据输出信号能够被提供给除一台电视监视器以外的一个显示设备、诸如一台计算机监视器、LCD(液晶显示器)设备、或其它类型的显示设备。
IOP总线1008将CPU 1004连接到各种输入/输出设备及其它总线或设备上。IOP总线1008与输入/输出处理器存储器1010、一个控制器1012、一个存储卡1014、一个通用串行总线(Universal Serial Bus,USB)端口1016、一个IEEE1394(也称为一个火线接口)端口、以及总线1030相连。总线1030将其它几个系统组件、包括操作系统(“OS”)ROM 1020、闪速存储器1022、一个声音处理单元(“SPU”)1024、一个光盘控制单元1026、和一个硬盘驱动器(“HDD”)1028连接到CPU1004。在这个实施例的一个方面中,视频捕获设备能够直接连接到IOP总线1008,用于直接传送数据到CPU 1004;这样,来自视频捕获设备的数据能够用来改变或更新用于在GPU 1006中生成图形图象的值。此外,本发明中的实施例能够使用各种图象处理配置和技术,诸如在2000年5月17日提出的、题为“OUTLINE GENERATING DATA,GENERATINGMETHOD AND APPARATUS”的美国专利申请09/573,105中描述的那些,该文档在此被包括在内作为全面参考。
体现了本发明方面的程序或计算机指令能够用几种不同的方法来提供。例如,用于与图形图象相互作用的用户输入方法能够以存储在HDD 1028、闪速存储器1022、OS ROM 1020中、或一个存储卡1012上的程序的形式提供。做为选择,该程序能够通过连接到CPU 1004的一个或多个输入端口下载到处理单元1000。定义了该输入方法的程序模块能够和由CPU 1004执行、并在显示设备1007上显示的游戏或应用程序一起提供,或是它们可以单独从应用程序、诸如用于从本地主存储器1002中执行的应用程序中提供。
本发明的实施例也考虑分布式图象处理配置。例如,本发明不局限于发生在一个乃至两个位置处、诸如在CPU或在CPU和其它一个元件中发生的捕获图象和显示图象处理。例如,输入图象处理能够正好轻易地发生在一个能够执行处理过程的相关CPU、处理器或设备中;实质上所有的图象处理能够在互连系统的所有各处分布。因此,本发明不局限于任何特定的图象处理硬件电路和/或软件;它也不局限于通用硬件电路和/或软件的任何特定组合,也不局限于用于由处理组件执行的指令的任何特定来源。
其它实施例
在一个实施例中,一个拍动噪音能够被加到演示上。当手臂角度平均值带符号的时间变化率超过一个特定阈值时,触发拍动噪音。只有当用户一起向下运动他或她的手臂时这才引起一个拍动噪音。拍动噪音的大小与那个动作同时按比例变化,所以一个更加夸大的拍动动作会生成一个较大的拍动声音。
一个更进一步的实施例在该演示上添加了一个内容,其中手臂角度被用来指示一只拍动其翅膀的鸟的一个预先生成的动画。手臂角度被用来指示这个动画。在这个实施例中,该演示能够来自于第一个人的透视图,所以鸟的动画将不会被看到,尽管由太阳投射它的影子在景观上是能够看到的。
在网络演示中,实际的鸟的动画对应于玩游戏的其它人的运动。能够存在鸟变体的几种动画,诸如龙、雕和鹰。如上所述的平滑参数将被设置为为每一个动画提供一个稍有不同的飞行体验(例如,龙较大而且低速,所以使用滑翔机参数,而鹰小和迅速,所以使用战斗式喷气式飞机参数)。
如本领域普通技术人员理解得那样,在此处描述的图形输入和处理方法的应用能够延伸至除飞行游戏或模拟器以外的其它类型的模拟或程序中。例如,用户运动能够用于控制在视频游戏或教育程序中的对象,包含驱动对象、运行对象、或涉及用户运动的各种体育游戏,诸如滑雪、骑自行车、搏斗、和类似的动作。
此外,尽管本发明的实施例就被用来实施一个显示对象的运动的用户手臂的运动进行了举例说明和描述,但是应当注意到,类似的处理技术能够被用来基于用户的腿部、或头部、或是由用户握住的对象提供图形控制。
本发明的实施例允许在显示对象上的各种后处理滤波和特殊效应、诸如阴影效应、失真、变形效应等的有利和便利的实现。这种后处理滤波和特殊效应是有利的补充,而且能够被用于利用基本系统的简单性和有效性。
在上文中,已经描述了一种实施一个对象在一个图形显示器上的运动的用户输入系统。尽管本发明已经结合特定示范性实施例进行了描述,但是显然可以对这些实施例进行各种修改和改变,而没有背离由权利要求所阐述的本发明更为广泛的精神和范围。例如,该发明的实施例能够延伸至除刚好具有一个输出与飞行或飞行游戏有关的系统以外的应用。总的来说,其中一个显示对象的运动或定位由一个用户的运动或定位控制的、任何基于图形的应用能够与在此描述的处理方法一起使用。因此,说明书和附图只作为一个示例说明,而不是起限制作用。
权利要求书(按照条约第19条的修改)
1.一种用于提供一个信号以实施一个对象在一个图形显示器上运动的输入设备,包含:
一个用于捕获在该设备视场中的人类用户的视频图象的设备;
一个输入图象处理器,将捕获的人类身体部分运动的视频图象转换成为被传送到一个输出图象处理器的信号,该输入图象处理器被编程用于:(a)在捕获的视频图象中将人类用户的形状从背景中分离出来;(b)确定人类身体部分的位置和运动;以及(c)响应于人类身体部分的位置和/或运动,生成一个输出信号;以及
一个输出图象处理器,被编程用来响应于从输入图象处理器接收的信号在一个图形显示器上运动一个对象。
2.如权利要求1所述的输入设备,其特征在于:输出图象处理器依据一个飞行对象将看到的场景改变图形显示。
3.如权利要求1所述的输入设备,其特征在于:输出图象处理器生成一个飞行对象的一个图形显示,其中该飞行对象的位置和运动响应于由输入图象处理器输出的信号。
4.如权利要求1所述的输入设备,其特征在于:人类身体部分包含该人类用户的一个或多个手臂。
5.如权利要求1所述的输入设备,其特征在于:对象在图形显示器上的运动包含平移运动和旋转运动中的至少一个。
6.一种使用人类身体部分的位置和运动数据生成信号以实施一个对象在一个图形显示器上的运动的方法,包含:
提供一个图象处理器和一个用于捕获视频图象的设备;
捕获视频图象和处理那些图象以从背景中分离出一个人体形状;
分离该人体形状的一个或多个身体部分;
计算一个或多个身体部分的位置和运动数据;以及
响应于身体部分的位置和运动数据,生成一个信号用于实施一个对象在一个图形显示器上的运动。
7.如权利要求6所述的方法,其特征在于:这一个或多个身体部分包含形成人体形状的一个用户的一个或两个手臂。
8.如权利要求7所述的方法,其特征在于:对象在图形显示器上的运动包含平移运动和旋转运动中的至少一个。
9.一种使用人类身体部分的位置及运动数据生成信号的方法,包含:
提供一个图象处理器,和一个用于捕获一个人体形状的人类身体部分的位置和运动的视频图象的设备;
用该设备捕获视频图象,并且使用图象处理器处理该视频图象以从背景中分离出该个人体形状;
使用图象处理器从一幅捕获的视频图象中分离出该人类形状的人类身体部分;
使用图象处理器计算身体部分的位置和运动数据;以及
响应于身体部分的位置和运动数据使用该图象处理器生成一个信号。
10.如权利要求9所述的方法,其特征在于:这一个或多个身体部分包含形成人体形状的一个用户的一个或两个手臂。
11.如权利要求9所述的方法,其特征在于:运动数据包含身体部分相对于背景的平移运动和旋转运动中的至少一个。
12.一种使用人类身体部分的位置和运动数据生成信号以实施一个对象在一个图形显示器上的运动的方法,包含:
提供一个图象处理器和一个用于捕获一个视频序列的设备;
从视频序列中捕获一个不包含一个人主体的帧;
通过在视频序列不包含该人主体的帧上执行一种算法,分离包含了一个前景主体图象视图的视图;
确定分离出来的视图是否包含该人主体的图象;
确定主体人的躯干的水平范围,以便在每个捕获的视频帧中分离出该人体形状的一个或多个身体部分;
通过计算在视频图象的身体部分中非零像素的理论力矩角度,来计算身体部分相对于主体人躯干的角度;以及
响应于手臂角度,生成一个身体部分的位置数据信号,用于实施一个对象在一个图形显示器上的运动。
13.如权利要求12所述的方法,其特征在于:确定视图中是否包含一个主体人的步骤包含以下步骤:
统计在前景图象中非零像素的总数;以及
确保非零像素的总数在由像素的最小和最大阈值数目定义的一个范围之内。
14.如权利要求12所述的方法,其特征在于:在分离步骤中的算法涉及从在视频序列中的单帧中减去没有包含主体人的帧。
15.如权利要求14所述的方法,其特征在于:在分离步骤中的算法包含下列处理步骤:
(a)获得静止背景Y0 U0 V0帧;
(b)使用一个5×5的高斯卷积平滑图像Y0 U0 V0;
(c)获得当前YUV视频帧;
(d)使用一个5×5的高斯卷积平滑图像YUV;
(e)对以Y表示的每一个像素,计算Ydif=abs(Y-Y0);
(f)对以U表示的每一个像素,计算Udif=abs(U-U0);
(g)对以V表示的每一个像素,计算Vdif=abs(V-V0);
(h)对YdifUdifVdif中的每一个像素,计算Sum=Ydif+Udif*8+Vdif*8;
(i)对Sum中的每一个像素,如果Sum>Threshold,则计算Foreground=1,否则Foreground=0;以及
(j)使用标准削弱形态过滤器削弱Foreground(以除去任何单像素的错误测量,诸如由黑白点相间噪声所引起的)削弱Foreground。
16.如权利要求14所述的方法,其特征在于:在生成步骤中生成的身体部分的位置和运动数据信号是从包含与对象气流速度加速度、倾斜角,和俯仰角有关的信号的组中选择出来的。
17.如权利要求14所述的方法,其特征在于:在生成步骤中生成的身体部分的位置和运动数据信号用包含平滑常数来进行确定。
18.如权利要求12所述的方法,其特征在于:这一个或多个身体部分包含形成人体形状的一个用户的一个或两个手臂。
19.如权利要求12所述的方法,其特征在于:对象在图形显示器上的运动包含平移运动和旋转运动中的至少一个。
20.一种通过使用人类身体部分的位置数据生成信号供一个飞行模拟器图形显示器使用以实施平移和旋转运动的方法,包含:
提供一个用于捕获视频图象的设备和一个图象处理器;
用该设备捕获视频图象,并且使用图象处理器处理那些图象以从背景中分离出一个人体形状;
使用图象处理器从一幅捕获的视频图象中分离出该人体形状的身体部分;
使用图象处理器计算身体部分的位置和运动数据;以及
响应于身体部分的位置和运动数据使用图象处理器生成一个信号用于生成一个飞行模拟器图形显示器的状态。
21.如权利要求20所述的方法,其特征在于:该身体部分包含形成人体形状的一个用户的一个或两个手臂。
22.如权利要求21所述的方法,其特征在于:飞行模拟器图形显示器包含一个飞行生物作为一个对象,其与用户的一个或两个手臂的运动相关来运动翅膀。
23.如权利要求22所述的方法,其特征在于:飞行模拟器图形显示器描述了来自该飞行生物的视点的一个透视图。
24.如权利要求23所述的方法,进一步包含步骤:对应于飞行生物的翅膀运动,生成拍动噪音。
25.如权利要求24所述的方法,进一步包含步骤:随捕获的手臂运动的速率增加,增大拍动噪音量。
26.如权利要求25所述的方法,其特征在于:当手臂角度平均值带符号的时间变化率超过一个预定阈值时,触发拍动噪音。
27.一种包括了由一台机器执行的程序指令的产品,其中该程序指令包含用于执行如下步骤的指令:
捕获视频图象和处理那些图象以从背景中分离出一个人体形状;
分离人体形状的主体部分;
计算身体的位置和运动数据;以及
响应于身体部分的位置和运动数据生成一个信号用于实施在一个图形显示器上的一个对象的运动。
28.如权利要求27所述的产品,其特征在于:该身体部分包含形成人体形状的一个用户的一个或两个手臂。
29.如权利要求28所述的产品,其特征在于:对象在图形显示器上的运动包含平移运动和旋转运动中的至少一个。
30.如权利要求29所述的产品,其特征在于:由程序指令生成的信号被用来生成一个飞行模拟器图形显示器的状态。
31.一种包括了由一台机器执行的程序指令的产品,其中该程序指令包含用于执行如下步骤的指令:
用该设备捕获视频图象,并且使用图象处理器处理那些图象以从背景中分离出一个人体形状;
使用图象处理器从一幅捕获的视频图象中分离出该人体形状的身体部分;
使用图象处理器计算身体部分的位置和运动数据;以及
响应于身体部分的位置和运动数据使用该图象处理器生成一个信号。
32.如权利要求31所述的产品,其特征在于:该身体部分包含形成人体形状的一个用户的一个或两个手臂。
33.如权利要求32所述的产品,其特征在于:对象在图形显示器上的运动包含平移运动和旋转运动中的至少一个。
34.一种包括了由一台机器执行的程序指令的产品,其中该程序指令包含用于执行如下步骤的指令:
从视频序列中捕获一个不包含一个人的帧;
通过在视频序列和不包含人的帧上执行一种算法,分离一个视图;
确定分离出来的视图是否包含一个主体人的图象;
确定该主体人的躯干的水平范围,以便在一个捕获的视频帧中分离出该人体形状的身体部分;
通过计算在视频图象的主体部分中非零像素的理论力矩角度,来计算主体部分角度;以及
响应于身体部分角度,生成一个身体部分的位置/运动数据信号用于实施在一个图形显示器上的一个对象的运动。
35.如权利要求34所述的产品,其特征在于:该身体部分包含形成人体形状的一个用户的一个或两个手臂。
36.如权利要求35所述的产品,其特征在于:对象在图形显示器上的运动包含平移运动和旋转运动中的至少一个。