CN101636745A - 使用增强型交互系统操纵虚拟对象 - Google Patents

使用增强型交互系统操纵虚拟对象 Download PDF

Info

Publication number
CN101636745A
CN101636745A CN200780051911A CN200780051911A CN101636745A CN 101636745 A CN101636745 A CN 101636745A CN 200780051911 A CN200780051911 A CN 200780051911A CN 200780051911 A CN200780051911 A CN 200780051911A CN 101636745 A CN101636745 A CN 101636745A
Authority
CN
China
Prior art keywords
image
pixel
motion history
indication
user
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.)
Pending
Application number
CN200780051911A
Other languages
English (en)
Inventor
埃文·希尔德雷思
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Inc
Original Assignee
GESTURETEK Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by GESTURETEK Inc filed Critical GESTURETEK Inc
Publication of CN101636745A publication Critical patent/CN101636745A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/017Gesture based interaction, e.g. based on a set of recognized hand gestures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/254Analysis of motion involving subtraction of images
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/20Movements or behaviour, e.g. gesture recognition
    • G06V40/28Recognition of hand or arm movements, e.g. recognition of deaf sign language
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10016Video; Image sequence

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Multimedia (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • General Health & Medical Sciences (AREA)
  • Psychiatry (AREA)
  • Social Psychology (AREA)
  • Health & Medical Sciences (AREA)
  • Image Analysis (AREA)
  • User Interface Of Digital Computer (AREA)
  • Processing Or Creating Images (AREA)
  • Position Input By Displaying (AREA)

Abstract

通过相机检测用户的运动,并在显示器上产生用户的动态虚拟表示,其中,检测到的用户运动导致所述动态虚拟表示与所述显示器上的虚拟对象交互。计算所检测到的用户运动的幅值和方向,以确定由所述动态虚拟表示施加到所述虚拟对象的力的幅值和方向。进一步的结构包括水或烟流体仿真,以便增强用户体验。

Description

使用增强型交互系统操纵虚拟对象
相关申请的交叉引用
本申请要求2006年12月29日递交的第60/882,849号美国临时申请的优先权,通过引用包含该申请。
技术领域
本申请一般地涉及运动检测,并且至少一个特定结构涉及在用户表示和显示器上的对象之间提供交互。
背景技术
相机已被用来捕获对象的图像。已经开发了这样的技术:分析存在于一个或更多个图像内的对象的一个或更多个图像,以便检测该对象的位置。例如,已经使用光流(optical flow),通过分析在时间上连续拍摄的对象的多个图像来检测所述对象的运动。
发明内容
根据一个一般性实施方案,接收至少对象的第一图像,并在所述第一图像中检测对象。基于在第一图像中检测对象,产生对象数据地图。该对象数据地图针对第一图像中的每一个像素,指示在每一个像素处是否检测到对象。产生运动历史。该运动历史针对所述对象数据地图中所包括的每一个像素,指示自从在每一个像素处检测到对象时起的时间的指示。基于所述运动历史控制应用。
实施方案可以包括下列特征中的一个或更多个。例如,运动历史可以针对所述对象数据地图中所包括的每一个像素,指示与自从在每一个像素处检测到对象时起的时间相对应的不透明度(opacity)值。该运动历史还可以针对对象数据地图中所包括的每一个像素,指示自从在每一个像素处检测到对象时起的帧数。该运动历史还可以针对所述对象数据地图中所包括的每一个像素,指示自从在每一个像素处检测到对象时起的时间的度量。
在某些实施方案中,所述运动历史可以通过访问先前的运动历史并基于对象数据地图更新先前的运动历史来产生。可以基于在所述第一图像之前接收到的对象的图像产生先前的运动历史。可以通过针对第一图像中已经检测到对象的每一个像素,将对自从检测到所述对象时起的时间的指示设置为指示在该像素处最新近检测到对象的时间的指示,并且针对第一图像中未检测到对象的每一个像素,使对自从检测到对象时起的时间的指示老化,基于所述对象数据地图更新所述先前的运动历史。
可以通过更新对自从检测到对象时起的时间的指示,以指示自从检测到对象时起的时间已经增加,使对自从检测到对象时起的时间的指示老化。也可以通过针对第一图像中未检测到对象的每一个像素,确定先前的运动历史中对自从检测到对象时起的时间的指示是否大于阈值时间量,使对自从检测到对象时起的时间的指示老化。在确定了在先前的运动历史中对自从检测到对象时起的时间的指示不大于阈值时间量的条件下,可以更新对自从检测到对象时起的时间的指示,以便指示自从检测到对象时起的时间已经增加。在确定了在先前的运动历史中对自从检测到所述对象时起的时间的指示大于所述阈值时间量的条件下,可以维持对自从检测到所述对象时起的时间的指示。
在某些实施方案中,可以过滤运动历史,并且基于过滤后的运动历史控制应用。可以通过针对每一个像素基于每一个像素的值和与所述每一个像素相邻的像素的值计算每一个像素的值来过滤运动历史。
在某些例子中,可以接收至少用户的第一图像。可以通过在与所述应用相关联的显示图像中显示对象的表示来控制所述应用。可以控制在与所述应用相关联的显示图像中对象的表示的移动。在与所述应用相关联的显示图像中,可以将对象的表示显示为粒子系统的一个或更多个粒子。可以通过基于所述运动历史产生表示对象的运动的轮廓(outline contour),并基于所产生的轮廓,确定所述显示图像中的对象的表示是否触摸了由所述应用在所述显示图像中绘制的虚拟对象,来在与所述应用相关联的显示图像中显示所述对象的表示。
在某些实施方案中,可以在与所述应用相关联的显示图像中显示对象的表示,以使得与所述运动历史中对时间的指示指示最新近检测到对象的像素相对应的像素被以比与运动历史中对时间的指示指示在较久远的过去检测到对象的像素相对应的像素更强的不透明度显示。例如,可以显示所述对象的表示,以使得与所述运动历史中的像素相对应的像素被以基于与该像素相关联的时间的指示的不透明度显示。还可以显示所述对象的表示,以使得第一像素的不透明度显得强于第二像素的不透明度,其中,所述第一像素所关联的时间的指示指示,与所述第二像素相比,在所述第一像素在更新近的时刻检测到对象。
在进一步的例子中,可以通过基于运动历史产生alpha通道,并基于alpha通道在显示图像中显示对象的表示,来在与应用相关联的显示图像中显示对象的表示。可以显示效果图像。所述效果图像可以是基于动画或粒子系统的动画效果图像,并且该动画效果图像可以表示水波纹、血浆、火或烟其中之一。也可以显示对象的抠像图像;
此外,可以基于运动历史确定显示图像中的对象的表示是否触摸了显示图像中由应用绘制的虚拟对象,并且可以基于确定结果控制应用。虚拟对象可以是下列中的至少一个:按钮、球,或者粒子系统中的粒子。可以基于运动历史计算虚拟对象的速度,并且可以基于运动历史控制应用,并且可以基于所确定的虚拟对象的速度控制应用。可以通过基于与运动历史相关联的光流数据计算虚拟对象的运动速度和方向来计算速度,并且可以基于所确定的虚拟对象的运动的速度和方向控制应用。虚拟对象可以是粒子系统的粒子。
而且,可以接收包括第一图像的对象的多个图像,并且基于所述多个图像确定对象的运动。可以通过将第一图像与背景图像比较,在第一图像中检测对象。
根据另一个一般性实施方案,接收至少用户的第一图像和用户的第二图像的图像。所述用户的第二图像在所述用户的第一图像之后捕获,并且所述第二图像被与所述第一图像比较。基于所述第二图像与第一图像的比较检测图像中的运动,并且基于在所述图像中检测到的运动确定所述第二图像中的用户的位置。响应于确定所述第二图像中的用户的位置,产生用户数据地图。用户数据地图对应于第二图像中所包括的像素,并且指示第二图像中的用户的位置。访问所述用户的先前运动历史。所述先前的运动历史针对用户数据地图中所包括的每一个像素,指示对自从在与该像素相对应的位置处检测到用户时起的时间的指示,并且基于在第二图像之前接收到的用户的图像产生所述先前的运动历史。通过针对所述先前的运动历史中所包括的每一个像素增加对自从在与该像素相对应的位置处检测到所述用户时起的时间的指示,使所述先前的运动历史老化。通过针对用户数据地图中所包括的检测到用户的位置的每一个像素,将老化的运动历史中的相应像素设置为指示当前在该像素检测到用户的位置的时间指示,来基于用户数据地图更新所述老化的运动历史。基于更新的运动历史在与应用相关联的显示图像中显示用户的表示,以使与显示图像中的用户表示相关联的像素的不透明度基于对自从在与更新的运动历史中所包括的像素相对应的位置处检测到用户时起的时间的指示。
根据另一个一般性实施方案,一种系统包括:相机,被配置成捕获至少对象的第一图像,以及处理器,被配置成从所述相机接收所述对象的第一图像。所述处理器还被配置成在所述第一图像中检测所述对象,并响应于在所述第一图像中检测对象,产生对象数据地图。所述对象数据地图可以针对第一图像中的每一个像素,指示在每一个像素处是否检测到所述对象。所述处理器还被配置成产生运动历史,并基于所述运动历史控制应用。该运动历史针对所述对象数据地图中所包括的每一个像素,指示自从在每一个像素处检测到对象时起的时间的指示。所述系统还包括显示器,被配置成绘制与所述应用相关联的显示图像。
根据另一个一般性实施方案,一种计算机可读存储介质,其上具体实施计算机程序。所述计算机程序包括指令用于接收至少对象的第一图像,并在所述第一图像中检测所述对象。所述计算机程序还包括指令用于响应于在所述第一图像中检测对象,产生对象数据地图。所述对象数据地图针对所述第一图像中的每一个像素,指示在每一个像素处是否检测到所述对象。所述计算机程序还包括指令用于产生运动历史并基于所述运动历史控制应用。所述运动历史针对对象数据地图中所包括的每一个像素,指示自从在每一个像素处检测到所述对象时起的时间的指示。
根据另一个一般性实施方案,一种系统包括用于接收至少对象的第一图像的装置和用于在所述第一图像中检测对象的装置。所述系统还包括用于响应于在所述第一图像中检测对象,产生对象数据地图的装置。所述对象数据地图针对所述第一图像中的每一个像素,指示在每一个像素处是否检测到所述对象。所述系统还包括用于产生运动历史的装置和用于基于所述运动历史控制应用的装置。所述运动历史针对对象数据地图中所包括的每一个像素,指示自从在每一个像素处检测到所述对象时起的时间的指示。
已提供了这个简要概述以实现快速理解本文档所描述的各种概念和实施方案。通过结合附图参考下列的详细描述,能够获得更为全面的理解。应当理解,可以采用其他的实施方案并且可以做出变化。
附图说明
图1是框图,示出了被配置成基于运动历史控制应用的系统的例子。
图2是流程图,示出了基于运动历史控制应用的过程的例子。
图3到图5是流程图,示出了用于在图像中检测对象的过程的例子。
图6是流程图,示出了用于产生动态背景模型的过程的例子。
图7是流程图,示出了用于在图像中检测对象的过程的例子。
图8到图11是流程图,示出了用于产生运动历史的过程的例子。
图12到图22示出了在应用中操纵虚拟对象的例子。
图23示出了映射过程的例子。
图24到图28示出了被配置成基于运动历史控制应用的交互系统的例子。
图29是流程图,示出了用于基于运动历史控制应用的过程的例子。
图30根据另一个一般性实施方案示出了示范性系统的外观。
图31是框图,示出了图30中所示的设备的内部架构。
相同的参考数字通篇表示对应的部分。
具体实施方式
图1示出了被配置成基于运动历史控制应用的系统100的例子。系统100包括:相机110、显示设备120、照明器130和计算设备140。
相机110是捕获图像的设备。例如,相机110可以是数码相机、数字摄影机,或者任何其他类型的捕获图像的设备。相机110可以包括一个或更多个相机。相机110可以捕获与应用交互的对象的图像。例如,相机110可以捕获在相机110的视场内通过肢体与应用交互的用户或人的图像。
显示设备120绘制(render)视觉显示图像。例如,显示设备120可以是监视器、电视机、液晶显示器(LCD)、等离子体显示设备、具有投影屏幕的投影仪、自动立体显示器、阴极射线管(CRT)显示器、数字光处理(DLP)显示器,或者任何其他类型的被配置成绘制视觉显示图像的显示设备。显示设备120可以包括一个或更多个显示设备。显示设备120可以显示与应用相关联的图像。例如,显示设备120可以绘制应用产生的显示图像。应用产生的显示图像可以包括基于由相机110捕获的图像通过肢体与应用交互的用户或人的表示。
照明器130是提供光源的设备。例如,照明器130可以是闪光灯设备、白炽灯泡、荧光灯泡、发光二极管(LED)、卤素光源、氖光源、氙光源、红外光源,或者任何其他类型的被配置成向相机110成像的对象照明的设备。照明器130可以包括一个或更多个照明器。照明器130可以产生光,用以辅助捕获由相机110正在捕获的对象的高质量图像。在某些实施方案中,系统100可以不包括照明器130,或者照明器130可以仅在特定情况下使用。例如,照明器130可以仅在夜间或者黑暗的房间中使用。
计算设备140通过有线或者无线途径电连接到相机110、显示设备120和照明器130,并且可以控制系统100的操作。在某些例子中,计算设备140可以包括被配置成执行应用的处理器或其他控制电路。在这些例子中,计算设备140可以接收由相机110捕获的图像,并处理所接收的图像以检测图像内对象(例如,用户)的位置。所检测的图像内对象的位置可以被追踪,并用来控制应用的执行。例如,由计算设备140执行的应用可以基于所追踪的图像内对象的位置产生包括对象的表示的显示图像,或者可以基于所追踪的图像内对象的位置产生用户输入命令或者其他类型的用户交互。
计算设备140也可以控制相机110、显示设备120和照明器130的操作和设置。计算设备140可以是通用计算机(例如桌上型个人计算机、工作站或者膝上型计算机)、服务器、游戏设备或者控制台,或者任何其他类型的包括被配置成执行指令的处理器或其他控制电路的电子设备。
图2是流程图,示出了基于运动历史控制应用的过程200的例子。为了方便,引用针对图1描述的具体部件执行过程200。但是,类似的方法可以被用于其他的实施方案,在这些实施方案中,使用不同的部件来限定系统的结构,或者,在这些实施方案中,功能以不同的方式分布在部件之间。
计算设备140接收至少对象的第一图像(210)。例如,计算设备140接收由相机110捕获的一个或更多个图像。在这个例子中,由相机110捕获的一个或更多个图像可以是与应用交互的对象(例如用户或用户操纵的对象)的图像。应用可以是正由计算设备140执行的应用,并且应用可以产生供在显示设备120上显示的显示图像。对象(例如用户或用户操纵的对象)可以基于在显示设备120上显示的图像与应用交互。
计算设备140在第一图像中检测对象(220)。例如,计算设备140可以处理或者分析第一图像以检测第一图像中包括的对象的位置。在这个例子中,计算设备140可以使用任何类型的技术来在单个图像内或者在对象的多个图像的集合内检测对象。计算设备140可以在在时间上连续捕获的一系列图像中检测并追踪对象的运动。
计算设备140可以使用各种技术来在第一图像中检测对象(220)。例如,针对图3到图7描述的过程代表了计算设备140可以用来在第一图像中检测对象(220)的过程。
图3示出了用于在图像中检测对象的过程300的例子。用于在图像中检测对象的过程300可被用于在执行过程200时在第一图像中检测对象(220)。
过程300包括访问第一图像集合(301)和访问第二图像集合(302)。例如,计算设备140访问包括由相机110捕获的一个或更多个图像的第一图像集合,并且访问包括由相机110捕获的一个或更多个图像的第二图像集合。第一图像集合和第二图像集合可以表示连续的已处理的相机图像,或者可以表示还未被处理的连续的相机图像集合。
在某些实施方案中,第一图像集合和第二图像集合中包括的图像可以被多缓冲(multi-buffered)。在多缓冲的图像中,图像可以包括多个图像缓冲器。图像缓冲器被以循环方式填充。例如,在具有两个图像缓冲器的多缓冲的图像中,一个图像被写入第一图像缓冲器,则下一个图像被写入第二图像缓冲器。
接下来的图像(例如第三图像)被写入第一图像缓冲器,替换第一图像缓冲器的内容。下一个图像(例如第四图像)被写入第二图像缓冲器,替换第二图像缓冲器的内容。对附加的图像重复这个过程,以使第一和第二图像缓冲器包含最新近的图像和次新近的图像。这个过程可以改善系统效率,因为图像数据没有被不必要地复制。在相机110包括产生多个图像的多个相机的实施方案中,第一图像集合可以包括来自多个相机的图像,并且第二图像集合可以包括来自多个相机的图像。
计算设备140比较第一图像集合和第二图像集合(303)。例如,计算设备140可以比较第一图像集合和第二图像集合以产生用来检测在图像集合中捕获的对象的运动的值。在这个例子中,计算设备可以计算第一图像集合中所包括的一个或更多个图像与第二图像集合中所包括的一个或更多个图像之间的差(例如绝对差)。所计算的差可被计算设备140用来检测贯穿第一图像集合和第二图像集合中所包括的图像的对象的运动。
图像集合可以包含多个通道(channel),如同在彩色图像的情况中那样。像素值可以包括多个通道的数据值。可以针对每一个通道进行差计算(例如绝对差),并将结果合并。图像集合可以包含来自多个相机的数据。像素值可以包括来自多个相机的数据值。可以针对每一个相机的像素数据进行差计算(例如绝对差),并将结果合并。图像集合可以包含来自多个相机曝光水平的数据。像素值可以包括来自多个曝光水平的数据值。可以针对每一个曝光水平的像素数据进行差计算(例如绝对差),并将结果合并。
合并结果的过程包括计算各个部分的和。替代的合并结果的过程包括选择各个部分中的最大值。另一个合并结果的过程包括选择从图像集合的预定部分(例如通道、图像或曝光)产生的结果。
计算设备140使用过滤操作(304)处理差结果。过滤操作可以是平均内核(aVeraging kemel)。在过滤操作的一个实施方案中,对于每一个像素,可以计算以该像素为中心的邻近范围内的所有像素的和。平均内核可以被用于模糊图像。在这个实施方案中,该操作可以具有下列效果。像素的差可以被其邻近像素加强或者削弱。可以抑制具有大的差值的孤立像素。而且,可以增强具有相对较小差值的像素群,并且可以平滑群的形状。
计算设备140使用阈值操作处理过滤后的差结果(305)。阈值操作可以将过滤后的差结果的每一个像素与阈值进行比较。如果像素的值大于或等于阈值,则该像素被分类为具有运动,否则该像素被分类为不具有运动。
在执行阈值操作(305)时,计算设备140可以基于与用来捕获第一图像集合和第二图像集合中所包括的图像的相机110相关联的相机控制数据调整阈值。相机控制数据可能导致相机以如下方式捕获图像:(例如当相机曝光时间或增益水平被调整时)在被捕获的场景中不存在差异的情况下,连续的相机图像可能包含差异。阈值操作可以即时调整阈值,将其增加为在被捕获的场景中不存在差异的情况下在连续的图像中所预期的最大差。这具有减少在调整相机时的错误运动检测的效果。
计算设备140将在执行阈值操作时获得的像素分类作为运动数据来提供(306)。该运动数据可以被用于控制应用。例如,在运动数据表示对象(例如用户)运动的实施方案中,可以将对象(例如用户)的表示作为应用的一部分显示在显示设备120上。
除了针对图3描述的过程以外,计算设备140还可以使用其他技术在第一图像中检测对象(220)。例如,针对图4到图7描述的过程代表了计算设备140可以用来在第一图像中检测对象(220)的其他过程。
在检测图像内的对象的其他的实施方案中,计算光流。一般来说,光流算法识别图像内的运动(例如图像位置改变的对象),并构造矢量,该矢量代表在图像中识别出的运动的速度(例如方向/取向和幅值(magnitude))。因此,光流算法不仅确定在图像内存在运动,而且确定图像内运动的方向和幅值。除了方向和幅值以外,光流实施方案还可以报告对每一个位置的置信度(confidence)的度量。
图4示出了用于检测图像中的对象的过程400的另一个例子。用于检测图像中的对象的过程400可被用于在执行过程200时在第一图像中检测对象(220)。
过程400包括访问第一图像集合(401)和访问第二图像集合(402)。访问第一图像集合(401)和访问第二图像集合(402)可以被以类似于上面针对图3描述的访问第一图像集合(301)和访问第二图像集合(302)的方式执行。第一图像集合和第二图像集合可以表示连续的已处理的相机图像,或者可以表示还未被处理的连续的相机图像集合。在某些实施方案中,第一图像集合和第二图像集合中所包括的图像可以如上面针对图3描述的那样被多缓冲。
在光流过程的一个实施方案中,计算设备140把图像划分为基准块(403)。例如,计算设备140把图像划分为一个或更多个像素的块。在某些实施方案中,计算设备140把每一个被访问的图像划分为块。基准块可以是大小相等的,或者也可以具有不同的大小。例如,基准块可以基于基准块中所包括的内容的独特性(uniqueness)而具有不同的大小。
对于每一个基准块,计算设备140识别在其他图像中具有相似外观的块,例如,最相似的块(404)。块的相似性可以被计算为块内像素的像素值差的和,其中,像素值差是基准块中的像素与相似块中的对应像素的像素值之间的差。所述差可以被计算为从相似像素值减去基准像素值的绝对值。可以选择具有最小的像素值差的和的块作为最相似的块。
在某些实施方案中,计算设备140将图像中的基准块与另一个图像中的块进行比较。计算设备140可以首先比较其他图像中与基准块在所述图像中的位置相距预定义距离内的位置处的块。如果未找到唯一匹配,则计算设备140可以动态地改变块的大小。
计算设备基于每一个相似块相对于其对应基准块的相对位置,确定描述运动的方向和幅值的向量(405)。运动向量可以被计算为基准块与最相似匹配块之间位置的差,以使该向量指示在获取基准图像与获取另一图像之间的时间内图像中的对象移动的方向和距离。计算设备还可以确定置信度度量。置信度度量可以被计算为像素差的和,以使该置信度指示块内图像的外观的相似性。
光流计算的其他实施方案可被用来检测相机110所捕获的图像内对象的运动。图像集合可以包含多个通道,如同在彩色图像的情况中那样。像素值可以包括多个通道的数据值。可以针对每一个通道进行差计算(例如绝对差),并将结果合并。图像集合可以包含来自多个相机的数据。像素值可以包括来自多个相机的数据值。可以针对每一个相机的像素数据进行差计算(例如绝对差),并将结果合并。图像集合可以包含来自多个相机曝光水平的数据。像素值可以包括来自多个曝光水平的数据值。可以针对每一个曝光水平的像素数据进行差计算(例如绝对差),并且将结果合并。合并结果的过程包括计算各个部分的和。替代的合并结果的过程包括选择各个部分中的最大值。另一个合并结果的过程包括选择从图像集合的预定部分(例如通道、图像或曝光)产生的结果。
计算设备140可以基于阈值确定运动的存在(406)。例如,第一阈值可以被应用于运动的幅值,以便如果位移的幅值大于或等于第一阈值,则将块分类为运动。第二阈值可以被应用于块匹配的相似性,以便如果位移的幅值大于或等于第一阈值,并且块匹配的质量比第二阈值更相似,则将块分类为运动。
计算设备140提供像素运动的分类、方向和幅值作为运动数据(407)。运动数据可以包括用户的运动,并且可以被用来控制应用。
除了上面针对图3和图4描述的过程以外,计算设备140还可以使用其他技术来在第一图像中检测对象(220)。例如,针对图5描述的过程代表了计算设备140可以用来在第一图像中检测对象(220)的另一过程。
图5示出了用于检测图像中的对象的另一个过程500的例子。用于检测图像中的对象的过程500可被用于在执行过程200时在第一图像中检测对象(220)。过程500使用相机110所捕获的图像的背景模型来检测相机110所捕获的图像内的对象(例如用户)。
过程500包括访问图像集合(501)。访问图像集合(501)可以被以类似于上面针对图3和图4描述的访问第一图像集合(301)和访问第一图像集合(401)的方式执行。
计算设备140产生背景模型(502)。在某些实施方案中,计算设备140可以基于在相机110的视场内只存在静态或永久性背景元素的时间内由相机110拍摄的图像产生背景模型。在这些实施方案中,背景模型可以被配置成使得可以基于图像与背景模型之间的比较来检测图像中的对象。在某些例子中,背景模型可以是静态的,并且可以基于在为了基于运动历史控制应用而拍摄的图像之前拍摄的图像而产生。在其他的例子中,背景模型可以是动态的,并且可以基于在为了基于运动历史控制应用而拍摄的图像之前和/或与之同时拍摄的图像而产生。例如,以下针对图6描述用于产生动态背景模型的过程。
计算设备140将所访问的图像集合与背景模型进行比较以识别图像中的差(503)。差指示对象或用户的存在。所述差操作可以针对每一个像素计算像素值的绝对差。
在某些实施方案中,图像集合可以包含多个通道,如同在彩色图像的情况中那样。像素值可以包括多个通道的数据值。可以针对每一个通道进行差计算(例如绝对差),并将结果合并。图像集合可以包含来自多个相机的数据。像素值可以包括来自多个相机的数据值。可以针对每一个相机的像素数据进行差计算(例如绝对差),并将结果合并。图像集合可以包含来自多个相机曝光水平的数据。像素值可以包括来自多个曝光水平的数据值。可以是针对每一个曝光水平的像素数据进行差计算(例如绝对差),并且将结果合并。
合并结果的过程包括计算各个部分的和。替代的合并结果的过程包括选择各个部分中的最大值。另一个合并结果的过程包括选择从图像集合的预定部分(例如通道、图像或曝光)产生的结果。
计算设备140可以使用过滤操作(504)处理差结果。过滤操作(504)可以被以类似于上面针对图3所描述的过滤操作(304)的方式执行。
计算设备140使用阈值操作处理过滤后的差结果(505)。阈值操作(505)可以被以类似于上面针对图3所描述的阈值操作(305)的方式执行。
计算设备140提供在执行阈值操作时获得的像素分类作为对象数据(例如用户数据)(506)。该对象数据可以在控制应用时使用。例如,在对象数据表示对象(例如用户)的实施方案中,可以将对象(例如用户)的表示作为应用的一部分显示在显示设备120上。
图6示出了用于产生动态背景模型的过程600的例子。用于产生动态背景模型的过程600可以用于在执行过程500时产生背景模型(502)。由过程600产生的背景模型可以是动态的,以使其根据场景中的变化自动更新。
计算设备140访问图像集合(602)。被访问的图像集合可以是上面针对图5所描述的步骤501中访问的图像集合。
计算设备140使用采样过程采样被访问的图像集合(603)。除了背景以外,采样还可以包括用户。在某些实施方案中,针对被访问的图像集合中所包含的图像的每一个像素,采样单个像素值。在其他的实施方案中,针对被访问的图像集合中所包含的图像的每一个像素,采样一系列值(a range ofvalues)。所述一系列值可以表示在较短时间段内针对该像素观测到值的范围(range)。
通过在背景模型中包括这个范围的影响,可以对信号噪声建模。通过将多个帧的数据用于采样可以观测到这个范围,但是,如果在帧被采样时用户处于运动中,则将多个帧的数据用于采样会增加可能被用户遮挡的那部分背景。要使用的最佳帧数取决于预期的用户运动。尽管可以使用最佳帧数,但是取决于特定配置,也可以使用不同于最佳帧数的帧数。例如,可以使用小于最佳帧数的帧数,以便降低与检测用户相关联的处理功率。在一个实施方案中,对十帧进行采样,因为十帧足以观测所述范围的大部分,而又不会使用户的运动遮挡背景过多的部分。
图像集合可以包含多个通道,如在彩色图像的情况中那样。采样像素值可以包括多个通道的数据值。图像集合可以包含来自多个相机的数据。采样像素值可以包括来自多个相机的数据值。图像集合可以包含来自多个相机曝光水平的数据。像素值可以包括来自多个曝光水平的数据值。
计算设备140将从采样过程(603)获得的采样添加到缓冲器604,缓冲器604具有存储多个(例如n个)采样的存储位置,其中,当添加新的采样时,替代在历史上最老的采样。因此,所述历史包含针对每一个像素的n个采样值。采样值可以包括代表图像的多个彩色通道或者来自多个相机的数据的多个数据值。如果采样过程(603)产生了一个范围,则采样值还可以包括所述范围的表示。如等式(1)所表示的那样,缓冲器中所表示的时间跨度d取决于获取新的采样并将其添加到所述历史的速率r:
d = n r - - - ( 1 )
在这个动态背景模型的实施方案中,计算设备140执行选择过程(605),以便针对每一个像素选择一个值,该值被确定为代表该像素所表示的位置处的背景。选择代表背景的值的一个过程是选择每一个像素的n个采样的中值(median value)。对于任何像素,缓冲器中n个采样值的数量可以表示用户。可以选择持续时间(duration)d,以使在任意时间跨度d内,用户不可能在累积的持续时间d/2或更长时间中遮挡背景的任何一个像素。因此,对于任何像素,大部分采样值将代表背景,并且因此,采样值的中值将是代表背景的值。
缓冲器604中的多个采样可以被初始化为第一组被产生的采样。或者,缓冲器604中的多个采样可以被初始化为预定义的数据。预定义的数据可以表示在已知场景中不存在用户时获取的采样。
计算设备140提供动态产生的背景模型(606)。例如,可以在过程500中使用动态产生的背景模型来检测图像集合内的对象。
除了上面针对图3到图6描述的过程以外,计算设备140也可以使用其他技术来检测第一图像中的对象(220)。例如,针对图7描述的过程代表了计算设备140可以用来检测第一图像中的对象(220)的另一个过程。
图7示出了用于检测图像中的对象的过程700的另一个例子。在执行过程200时,用于检测图像中的对象的过程700可被用于在第一图像中检测对象(220)。
计算设备140访问图像集合(701)。访问图像集合(701)可以被以类似于上面针对图5描述的访问图像集合(501)的方式执行。
计算设备140使用阈值操作处理被访问的图像集合中包括的图像(702)。例如,阈值操作可以将图像的每一个像素与阈值比较。如果像素的值大于或等于阈值,则该像素被分类为具有运动,否则该像素被分类为不具有运动。
计算设备140基于阈值操作产生对象数据(例如用户数据)(703)。计算设备提供像素的分类作为对象数据。
在某些实施方案中,计算设备140可以给相机110提供相机控制数据,以便控制相机捕获图像所使用的参数。计算设备140可以控制相机110的参数,以提高检测由相机捕获的图像中的对象或者用户的能力。例如,相机控制数据影响包括曝光时间、增益和光圈的相机参数。在某些实施方案中,计算设备140计算相机图像集合或其一部分内的平均像素值。如果平均像素密度低于阈值,则计算设备140产生导致相机提高其灵敏度(例如图像亮度)的相机控制数据。如果平均像素密度高于阈值,则计算设备140产生导致相机降低其灵敏度(例如图像亮度)的相机控制数据。
可以以微细(fine)步长调整相机,以便使灵敏度(例如图像亮度)的变化足够小,不至于破坏在图像集合内检测对象的正确操作。在采用过程300来检测图像内的对象的实施方案中,步长大小应该足够微细,以使亮度上的有效变化小于阈值过程(305)的阈值。类似地,在采用其他过程(例如过程400、500或700)来检测图像内的对象的实施方案中,步长大小可以足够微细,以使亮度上的有效变化小于阈值过程的阈值(例如在参考数字406、505或702中使用的阈值)。在替代的实施方案中,包括曝光时间、增益和光圈的相机参数可以由内建于相机110中的自动曝光过程确定。在这种情况下,相机控制数据可以由相机110产生。
相机控制数据可以被用于检测图像内的对象的过程。例如,在采用过程300的实施方案中,阈值过程(305)的阈值可以被暂时提高,以使阈值大于相机控制数据导致的像素值的差。类似地,在采用其他过程(例如过程400、500或700)的实施方案中,阈值过程的阈值(例如在参考数字406、505或702中使用的阈值)可以被暂时提高,以使阈值大于相机控制数据导致的像素值的差。
增益水平可能影响相机图像集合的信噪比。在采用过程300的实施方案中,阈值过程(305)的阈值可以被自动调整,以使阈值大于在相机的增益水平预期的噪声水平。类似地,在采用其他过程(例如过程400、500或700)的实施方案中,阈值过程的阈值(例如在参考数字406、505或702中使用的阈值)可以被自动调整,以使阈值大于在相机的增益水平预期的噪声水平。
相机控制数据也可以用来检测环境光水平。在某些实施方案中,计算设备140或者相机110将(例如由相机控制数据指示的)相机曝光时间与阈值时间进行比较,并将(例如由相机控制数据指示的)相机增益水平与阈值增益水平进行比较。如果曝光时间比阈值时间短,或者增益低于阈值增益水平,则可以触发日光处理模式。如果相机控制数据指示相机正使用比阈值时间长的曝光时间,或者比阈值水平高的增益,则可以触发使用夜间处理模式。相机控制数据还可以包括控制照明器130的操作的照明器130控制数据。
在由阳光照明的场景中,对比度可能非常高。在这些条件下,某些摄影机可能不能在阴影区检测到足够的对比度来检测图像中的对象(例如用户)。在某些实施方案中,相机110可以包括高动态范围相机。高动态范围相机具有高动态范围,因此可以提供必要的对比度,以便同时在阴影和日照区域中检测图像中的对象。高动态范围相机可能具有比其他相机更高的成本,并且对于明亮的阳光操作可能具有不足的动态范围。相机110可以使用其他技术来扩展任何类型相机的动态范围。
在某些实施方案中,为了扩展相机的动态范围,可以控制相机快速地连续在两个或更多个曝光时间之间交替。在这些实施方案中,第一相机图像被以第一曝光持续时间捕获,并且第二相机图像被以第二曝光持续时间捕获。第一曝光持续时间较短,以使场景的日照部分在第一相机图像中显得具有高对比度。场景的阴影部分在第一相机图像中可以显得非常暗。第二曝光持续时间比第一曝光持续时间长,以使场景的阴影部分在第二相机图像中显得具有高对比度。场景的日照部分在第二相机图像中可能表现为纯白色。
在这些实施方案中,相机图像集合和处理过的相机图像集合包括以第一曝光持续时间捕获的第一相机图像、和以第二曝光持续时间捕获的第二相机图像。检测图像中的对象的过程(220)既可以利用图像集合的第一图像也可以利用图像集合的第二图像。其他过程,例如应用控制过程和抠像(keying)过程,可以只使用第一图像。
在其他实施方案中,为了扩展相机的动态范围,相机110可以包括两个或更多个相机。在这些实施方案中,第一相机图像由第一相机捕获,并且第二相机图像由第二相机捕获。第一相机使用短曝光持续时间或者其他的手段,例如滤光透镜,以使场景的日照部分在第一相机图像中显得具有高对比度。场景的阴影部分在第一相机图像中可以显得非常暗。第二相机使用比第一曝光持续时间长的曝光持续时间,或者其他手段,例如更高的增益水平,以使场景的阴影部分在第二相机图像中显得具有高对比度。场景的日照部分在第二相机图像中可以以纯白色出现。在这些实施方案中,相机图像集合和处理过的相机图像集合可以包括由第一相机捕获的第一相机图像和由第二相机捕获的第二相机图像。检测图像中的对象的过程(220)既可以利用图像集合的第一图像也可以利用图像集合的第二图像。其他的过程,例如应用控制过程和抠像过程,可以只使用第一图像。
在进一步的实施方案中,为了扩展相机的动态范围,相机110可以包括能够向传感器元件集合应用独特的增益水平的相机。这可以包括很多彩色相机,其中,独特的增益水平可以被应用到传感器元件的红色集合、绿色集合和蓝色集合。第一传感器元件集合的增益水平可以被设置到低水平,并且相机的曝光可以被设置成使得场景的日照部分在该集合的数据中显得具有高对比度。例如,在彩色相机中,第一集合可以是蓝色传感器元件集合,因为蓝色元件可以比其他元件灵敏度低。第二传感器元件集合的增益水平被设置到较高水平,以使场景的阴影部分在第二相机图像中显得具有高对比度。例如在彩色相机中,第二集合可以是绿色传感器元件集合,因为绿色元件可以非常灵敏。另外的传感器元件集合的增益水平可以被设置成获得中间灵敏度。在彩色相机中,可以安装彩色滤光透镜,其中,滤光透镜抑制(但不完全阻挡)绿色光,从而进一步扩展第一和第二传感器元件集合之间灵敏度的差。在这些实施方案中,相机图像集合和处理过的相机图像集合可以包括多个通道的数据。检测图像内的对象的过程(220)可以利用多个通道的图像数据。在这些实施方案中,图像的外观可以显得被着色(tinted)。可以使用第二相机来获取另一在视觉上令人满意的图像。其他的过程,例如应用控制过程和抠像过程,可以使用在视觉上令人满意的图像。
在微弱照明的场景中,例如在室内或夜间操作期间遇到的那样,亮度可能非常低。在这些条件下,可以利用照明器130。照明器130可以提供可见光,以使相机110所捕获的图像在视觉上令人满意,并且可以向用户显示。或者,照明器130可以提供相机能够检测的红外光。红外光的波长可以是850纳米,因为很多相机能够感测这个波长而用户不能。在利用红外照明的实施方案中,可以使用灰阶相机(grayscale camera)。可以使用第二相机来获取第二图像,例如彩色相机,并且其他的过程,例如应用控制过程和抠像过程,可以使用第二图像。
在某些实施方案中,照明器130可以被与相机110同步,以使照明器130在交替的帧期间闪光。相机110捕获被照明器130照明的第一图像、以及未被照明器130照明的第二图像。捕获过程可以从第一图像的像素值中减去第二图像的对应像素值。在处理过的相机图像集合中可以包括作为结果的图像。这个过程分离了被照明器130照明的图像部分,同时有效地去除了被环境光照明的图像部分。
照明器130可以位于显示设备120附近。所发射的光的强度随着从照明器130到被成像的对象的距离的增加而减小。在某些实施方案中,所发射的投射在背景中的人物或对象上的光的量显著少于所发射的投射在用户上的光的量。例如在这些实施方案中,如图7中所示的用于检测图像中的对象(例如用户)的过程700可以足够检测所述用户。在阈值过程(702)中使用的阈值可以被设置为大于背景人物和对象的预期像素值的值。因为照明器130对用户的照明比对背景中的人物或者对象的照明强,所以作为更多照明的结果,阈值可以被设置成使得任何大于阈值的像素被假设为用户。
照明器130可以位于上方,以使所发射的光照明用户而不照明背景中的人物或者对象。例如在这个实施方案中,如图7中所示的用于检测图像中的对象(例如用户)的过程700可以足够检测所述用户。在阈值过程(702)中使用的阈值可以被设置为大于未被照明的背景人物和对象的预期像素值的值。
再次参考图2,计算设备140基于在第一图像中检测对象产生对象数据地图(object data map)(230)。例如,计算设备140可以把图像划分为多个部分(例如像素),并且对于图像中的每一个部分,提供有关在图像的那个部分中是否检测到对象(例如用户)的指示。在这个例子中,对象数据地图可以包括与图像中所包括的每一个像素相关联的信息。例如,对象数据地图可以包括指示在图像中的每一个像素处是否检测到对象(例如用户)的信息。计算设备140可以基于上面针对图3到图5以及图7描述的过程300、400、500和/或700提供的运动数据和/或对象数据(例如用户数据)产生对象数据地图。
计算设备140产生运动历史,运动历史指示自从在对象数据地图中所包括的图像的每一个部分检测到对象时起的时间(240)。例如,计算设备140可以分析对象数据地图中所包括的多个部分,并且对于对象数据地图中的每一个部分,更新自从在图像的该部分中检测到对象(例如用户)时起的时间的指示。在这个例子中,计算设备140可以基于在对象数据地图的对应部分中是否检测到对象,来更新运动历史中所包括的信息。例如,可以更新运动历史,以便对于对象数据地图中所有检测到对象的部分,指示在最新近的检测过程中检测到对象。对于对象数据地图中所有未检测到对象的部分,计算设备可以增加或维持自从在对应部分检测到对象时起的时间量。
在某些实施方案中,自从检测到对象时起的时间可以具有最大值,以使超过最大值的任何时间都不会导致对该部分运动历史的更新。运动历史可以包括与图像中所包括的每一个像素相关联的信息。例如,运动历史可以包括指示自从在图像中的每一个像素处检测到对象(例如用户)时起的时间的信息。运动历史可以被作为像素地图来维护,所述像素地图包括对自从在对象数据地图中所包括的每一个像素处检测到对象(例如用户)时起的时间的指示。对自从检测到对象(例如用户)时起的时间的指示可以包括自从最后检测到对象时起的帧计数、指示最后检测到用户的时间的时间值,或者指示自从最后检测到用户时起的时间的时间值。
图8示出了用于产生运动历史的过程800的例子。在执行过程200时,用于产生运动历史的过程800可以用于产生运动历史(240)。在某些实施方案中,对于每一个像素,所产生的运动历史包括自从在该位置检测到对象(例如用户)时起的帧数的表示。
计算设备140使先前计算的运动历史老化(age)(802),以产生被老化的(aged)运动历史(803)。例如,计算设备140增大先前计算的运动历史中所包括的与每一个像素相关联的帧计数,以产生被老化的运动历史,在被老化的运动历史中,每一个像素的帧计数指示该位置被对象或者用户占据的最后时间在过去又远离了一帧。
计算设备140把对象数据地图(例如用户数据)中所包括的数据添加到被老化的运动历史(804)。例如,对于已被分类为对象(例如用户)的一部分的对象数据地图的像素(例如用户数据),在运动历史中的对应像素被设置成具有指示所述像素当前被对象(例如用户)占据的帧计数。在这个例子中,计算设备140可以把被确定为当前被对象(例如用户)占据的像素设置为零值,并且对于被确定为当前未被对象(例如用户)占据的像素维持老化的帧计数。产生的结果作为当前运动历史,覆盖先前计算的运动历史。
图9示出了用于产生运动历史的过程900的例子。在执行过程200时,用于产生运动历史的过程900可以用于产生运动历史(240)。在某些实施方案中,对于每一个像素,所产生的运动历史包括自从在该位置检测到对象(例如用户)时起的帧数的表示。
计算设备140访问先前计算的中间运动历史(905),并使先前计算的中间运动历史老化(902)以产生老化的运动历史(903)。例如,计算设备140增大先前计算的中间运动历史中所包括的与每一个像素相关联的帧计数,以产生老化的运动历史,其中,每一个像素的帧计数指示该位置被对象或者用户占据的最后时间在过去又远离了一帧。
计算设备140把对象数据地图(例如用户数据)中所包括的数据添加到被老化的运动历史(904)。例如,对于已被分类为对象(例如用户)的一部分的对象数据地图(例如用户数据)的像素,在运动历史中的对应像素被设置成具有指示该像素当前被对象(例如用户)占据的帧计数。在这个例子中,计算设备140可以把被确定为当前被对象(例如用户)占据的像素设置为零值,并且对于被确定为未被对象(例如用户)占据的像素维持被老化的帧计数。产生的结果作为当前中间运动历史,覆盖先前计算的中间运动历史。
计算设备140过滤当前中间运动历史以产生运动历史(906)。过滤过程(906)可以包括平均内核。在这个例子中,对于每一个像素,对以该像素为中心的邻近范围内的所有像素进行求和计算。平均内核通常用于使图像模糊。在这个例子中,总体形状可以更光滑,边缘可以显得更柔和,并且阶跃可以更不明显。
图10示出了用于产生运动历史的过程1000的例子。用于产生运动历史的过程1000可以在执行过程200时用于产生运动历史(240)。在某些实施方案中,对于每一个像素,所产生的运动历史包括在该位置中检测到用户的时间的表示。
计算设备140把对象数据地图(例如用户数据)中所包括的数据添加到先前的运动历史(1012)。例如,对于已被分类为对象(例如用户)的一部分的对象数据地图(例如用户数据)的像素,在运动历史中的对应像素被设置成具有当前时间的表示。对于与未被分类为对象(例如用户)的一部分的对象数据地图(例如用户数据)中的像素相对应的先前运动历史的像素,时间数据被维持,以反映在该位置检测到对象(例如用户)的最后时间。产生的结果作为当前运动历史。
图11示出了用于产生运动历史的过程1100的例子。在执行过程200时,用于产生运动历史的过程1100可以用于产生运动历史(240)。在某些实施方案中,对于每一个像素,所产生的运动历史包括在该位置中检测到用户的时间的表示。
计算设备140访问先前计算的中间运动历史(1105),并把对象数据地图(例如用户数据)中所包括的数据添加到先前计算的中间运动历史(1112)。例如,对于已被分类为对象(例如用户)的一部分的对象数据地图的像素(例如用户数据),在先前计算的中间运动历史中的对应像素被设置成具有当前时间的表示。对于与对象数据地图(例如用户数据)的未被分类为对象(例如用户)的一部分的像素相对应的先前计算的中间运动历史的像素,时间数据被维持,以反映在该位置检测到对象(例如用户)的最后时间。产生的结果作为当前中间运动历史。
计算设备140过滤当前中间运动历史以产生运动历史(1106)。过滤过程(1106)可以包括平均内核。在这个例子中,对于每一个像素,对以该像素为中心的邻近范围内的所有像素进行求和计算。平均内核通常用于使图像模糊。在这个例子中,总体形状可以更光滑,边缘可以显得更柔和,并且阶跃可以更不明显。
再次参考图2,计算设备140基于运动历史控制应用(250)。例如,计算设备140可以控制应用以便在与所述应用相关联的显示图像中绘制对象(例如用户)的表示。在这个例子中,对象的表示可以是和应用交互的用户的表示。用户可以基于应用在显示设备120上绘制的显示图像通过肢体进行交互。
在某些实施方案中,绘制对象(例如用户)的表示可以包括绘制被处理过或未被处理的相机图像作为应用的显示图像中的对象(例如用户)的表示。绘制对象(例如用户)的表示也可以包括绘制被抠像的图像作为应用的显示图像中的对象(例如用户)的表示。绘制对象(例如用户)的表示还可以包括绘制效果图像作为应用的显示图像中的对象(例如用户)的表示。
对象(例如用户)的表示可以基于运动历史,以使所述表示包括对应于对象(例如用户)的过去的运动的特性。例如,在对象是用户的实施方案中,显示图像中的用户的表示可能包括用户运动的拖尾效果。在这个例子中,当用户移动(例如手臂或腿)时,用户的表示可以包括示出用户的运动(例如用户的手臂或腿的运动)的拖尾效果。例如,用户的表示可以包括完全不透明的用户的当前位置的显示,以及不透明度降低的用户的过去位置的显示,以使用户的运动被显示为具有随着时间逐渐淡出的拖尾效果。所述表示可以是用户的实际图像,或者可以基于对应于用户的动画图像(例如游戏应用中对应于玩游戏的用户的人物)。拖尾效果可以成为在视觉上令人满意的对用户表示的显示。
在其他实施方案中,粒子(particle)系统可以显示具有用户的过去运动的特性的用户表示。在这些实施方案中,和用户相关联的运动历史可以被输入粒子系统,并且粒子系统可以基于运动历史绘制显示。例如,在流体仿真(fluid simulation)应用中,流体仿真应用可以把用户的表示显示为水波纹。在这个例子中,对应于用户的更近来的运动的水波纹可以大于对应于用户的过去运动的水波纹。
在某些实施方案中,计算设备140可以把运动历史信息作为alpha(阿尔法)通道中的alpha值提供给应用。alpha通道中的信息可以被应用直接用来基于用户的运动历史绘制包括用户的表示的显示图像。
在某些实施方案中,基于运动历史控制应用可以包括基于运动历史确定用户输入命令。例如,计算设备140可以基于运动历史确定用户触摸应用的显示图像中的虚拟对象。在这个例子中,计算设备140可以基于运动历史确定用户触摸了虚拟球、虚拟人物,或者输入控制。例如,如果由运动历史捕获的用户的被跟踪的运动与应用所绘制的虚拟对象相交,则计算设备140可以确定所述虚拟对象被触摸。
在某些例子中,可以控制灵敏度以使触摸虚拟对象更为困难或者较不困难。例如,只有用户的当前位置和虚拟对象相交,计算设备140才会确定用户触摸了所述对象。在另一个例子中,如果运动历史指示用户的位置在特定数目的帧内或特定时间段内和虚拟对象相交,计算设备140就可以确定用户触摸了所述对象。
图12到图22示出了在应用中操纵虚拟对象的例子。在应用中操纵虚拟对象可以是针对图2描述的基于运动历史控制应用(250)的例子。
例如,图12示出了用户1201的例子。箭头1202指示用户1201正在移动其手臂和上体的方向。相机110可以捕获以这种方式运动的用户1201的图像,并且计算设备可以基于所捕获的图像产生运动历史。
图13示出了对应于用户1201移动的例子的对象数据地图上的表示。例如,黑色部分1303表示图像中最新近检测到用户的位置。对象数据地图可以包括针对图像中的每一个像素的数据值,以使表示黑色部分1303的像素具有例如1的数据值,并且使表示白色部分的像素具有例如0的数据值。
图14示出了运动历史的例子的可视化表示。黑色部分1403对应于针对图13描述的黑色部分1303。黑色部分1403表示图像中最新近检测到用户的位置。图14的灰色部分1404表示在先前的对象数据地图(例如用户数据)(未示出)中检测到用户的位置,其中,较暗的灰色是更新近的,而较浅的灰色是较久远的。在某些实施方案中,针对图像中的每一个像素,运动历史包括指示自从在该像素处检测到对象(例如用户)时起的时间的值(例如帧计数或时间)。在这些实施方案中,该值对应于范围从白或空(none)(例如对于在该处从未检测到对象的像素,或在大于阈值帧数或时间量的时间内在该处未检测到对象的像素)到黑(例如,对于最新近在该处检测到对象的像素)的特定灰阶颜色。此外,在这些实施方案中,基于运动历史绘制对象的表示可以包括,通过针对运动历史中所包括的每一个像素绘制对应的灰阶颜色来绘制用户的显示图像。
在某些实施方案中,运动历史中的每一个值可以对应于不同的透明度(而非灰阶颜色),以便在基于运动历史显示对象的表示时可以使用彩色图像。例如,对于最近在该处检测到对象的像素,在应用的显示图像中对应的像素被显示为完全不透明。对于在该处从未检测到对象的像素,或在大于阈值帧数或时间量的时间内在该处未检测到对象的像素,在应用的显示图像中对应的像素被显示为完全透明。
图15示出了过滤后的运动历史的例子的可视化显示。例如,在图14中显示的数据可以被过滤(例如,通过使用类似于上面针对参考数字906或1106讨论的技术)以产生图15中所示的可视化显示。如图15中所示,和图14相比,总体形状更平滑,边缘显得更柔和,并且阶跃不那么明显。
图16示出了基于运动历史在应用的显示图像中显示的用户表示的例子。如图16中所示,过去的用户运动被示为等级变化的灰阶颜色或者等级变化的不透明度,以使过去的用户运动表现为拖尾效果。
图17示出了通过基于运动历史控制应用产生的显示图像的例子。在这个例子中,用户的表示是抠像图像1705,抠像图像1705被与应用图像1706和1707(例如虚拟对象图像)组合。在这个例子中,抠像图像1705被在应用图像1706之上绘制,并且应用图像1706在alpha通道中确定为透明的抠像图像1705的部分中可见,而抠像图像1705的不透明部分遮挡了应用图像1706。此外,应用图像1707可以被在抠像图像1705之上绘制,以使应用图像1707可以遮挡抠像图像1705。
图18示出了使用轮廓过程(outlining process)处理的图像的例子,在基于运动历史控制应用时可以使用轮廓过程。轮廓过程可以产生表示运动历史的轮廓(contour)的轮廓数据。例如,运动历史可以被作为位图--包含每一个像素的元素的多维数组——产生。轮廓数据可以包括环绕运动历史中的具有比预定义的阈值更近来的运动的像素的坐标集合。轮廓数据可以包含比位图表示更少的数据元素,这对于某些应用是有益的,并且可以提高计算效率。
在某些实施方案中,轮廓过程还包括减少轮廓数据中的数据点的数量的过程。减少数据点的数量的过程包括去除落入相对较直的线内的点。在轮廓过程的另一个例子中,过程可以去除其大小较小的孤立对象的轮廓。图18中示出了示范性轮廓数据,其绘出了对应于图15中所示的运动历史的轮廓。如图所示,用户手臂的厚度包括对应于运动历史中所包括的并且出现在距当前时间少于阈值的所有用户运动的轮廓。减少的数据点被示为沿着轮廓的点。从轮廓过程获得的数据可以被用于控制应用。例如,计算设备140可以把用户的轮廓与虚拟对象的位置进行比较以确定两者是否相交,由此来确定用户是否触摸了虚拟对象。轮廓数据可以被提供给粒子仿真应用,基于轮廓数据对该粒子仿真应用进行控制(例如,以便可以从轮廓上的点发出粒子,或者可以使粒子被轮廓上的点击退。)
图19示出了和应用的显示图像中所包括的虚拟对象交互的用户的例子。在某些实施方案中,用户可以通过以导致显示图像中的用户表示“触摸”显示图像中的虚拟对象的方式移动来交互。确定用户触摸虚拟对象可以包括识别出用户的任意部分与虚拟对象重叠(coincident)。应用可以识别出表示虚拟对象的区域1908。区域1908可以表示虚拟对象的边界形状,或者该区域可以大于虚拟对象以便使用户更容易触摸虚拟对象。运动历史可以被和区域1908比较,并且运动历史的部分1909可以被分类为具有比预定的阈值更近来的帧计数(或时间)的用户的部分。随着帧计数(或时间)增大,对于单个用户动作的多个事件(例如从未被触摸状态转换到被触摸状态)的可能性降低。由于这个原因,使用运动历史而非对象数据地图(例如当前用户数据)可能是有益的,尽管也可以使用对象数据地图。
在其他的实施方案中,替代运动历史,可以使用抠像图像的alpha通道或者轮廓数据,因为它们提供了运动历史的表示。在某些例子中,区域1908可以是静态的(例如“按钮”),或者可以根据应用移动(例如“球”)。事件(例如从未被触摸状态转换到被触摸状态)可能触发应用中的动作。动作可以包括显示图像中对象的激活、选择或者移动。
图20示出了用户和应用的显示图像中所包括的虚拟对象交互的例子。表示用户的运动历史的部分2009和区域2008更详细地表示了运动历史1909的部分和区域1908。在运动历史包括运动方向的表示的实施方案中,例如当检测图像中的对象的过程利用了光流时,可以计算部分2009在区域2008内的平均运动,以产生代表部分2009的运动。
图21示出了和应用的显示图像中所包括的虚拟对象交互的用户的矩心(centroid)处理的例子。在某些实施方案中,应用可以计算在区域2108内的部分2109的矩心2110,并把该位置和区域的矩心2111进行比较。即使在检测图像内的对象时未使用光流,应用也可以估计区域2111内的运动的方向和幅值。
图22示出了应用计算多个矩心的例子。例如,可以确定在区域2211内并且具有比第一预定阈值更近来的帧计数(或时间)的对象(例如用户)的运动的部分2212的第一矩心2213。此外,可以确定在区域2211内并且具有比第二预定阈值更近来的帧计数(或时间)的对象(例如用户)的运动的部分2212的第二矩心2214。第一阈值包括短的时间跨度。例如,第一阈值可以是最新近的帧。第二阈值包括较长的时间跨度,以使第二矩心2214的路径追随第一矩心2213的路径。第一矩心2213相对于第二矩心2214的位置可以被视为代表对象(例如用户)部分2212的运动。
第二区域2211可以大于针对图21描述的第一区域2108。应用可以检测在第一区域2108中用户的存在,第一区域2108和显示图像中的对象重叠。应用可以计算以第一区域2108内的用户部分2109的矩心2110为中心的第二区域2211。例如,第一区域2108可以和显示图像中显示的“球”重合。当应用检测到用户触摸球时,使用第二区域2211确定用户击球的用户运动的方向,而所述方向可被用来将力施加到球上。
应用可以使用计算的用户部分2109的表示运动(representative motion)来确定当对象被触摸时施加到对象的幅值和方向。例如,对象可以是“球”或“粒子”。应用可以包括对用户做出响应的很多这种“球”或“粒子”。
应用可以包括流体仿真,例如水或烟。在某些实施方案中,应用维持表示高度(例如水波纹的)或压强(例如气态云雾(gasous cloud)的)的地图。给与指示在该位置处近来用户存在的运动地图元素相对应的地图元素分配值。一个过程传播该值,产生波纹(例如在水中)或旋涡(例如在气态云雾中)。应用可以根据运动地图使抠像图像变形(例如扭曲)(以使用户看上去在水面以下)。应用还可以包括速度地图,其中,用户的速度通过光流(或者通过上面针对区域2111描述的过程)计算,并且被分配给速度地图中的对应元素。
应用可以有很多变型。应用可以是视频游戏或者广告,但是,应该理解本公开不局限于视频游戏或者广告。
应用可以包括数据记入过程(data logging process)。在某些数据记入过程的实施方案中,通过比较被用户占据并具有比阈值更近来的帧计数(或时间)的运动历史(或对象数据地图)的部分(例如像素计数)确定用户的存在。用户的存在可以被记录。在其他的数据记入过程实施方案中,通过聚集(cluster)被用户占据并具有比阈值更近来的帧计数(或时间)的运动历史(或对象数据地图)的像素确定用户的计数。用户的计数可以被记录。在数据记入过程的进一步的实施方案中,可以记录事件(例如从未被触摸转换到被触摸状态),应用的状态可以被记录,和/或显示图像可以被记录。在数据记入过程的某些实施方案中,记录包括存储数据。在数据记入过程的其他实施方案中,记录包括通过网络(例如因特网)传送数据。
参考图23,映射过程的例子可被用于追踪运动历史和基于运动历史控制应用。例如,运动历史中的像素值可以被重新映射,以使表示近来检测到的对象的帧计数(或时间)导致图像显得不透明,并且随着帧计数增大,不透明度减弱到透明。在这个例子中,图23示出了自从在对应像素处检测到对象时起给予帧计数的相对权重。如图所示,帧计数0具有100%的权重(例如完全不透明),帧计数5具有50%的权重(例如完全不透明的不透明度的一半水平),并且10或者更大的帧计数具有0%的权重(例如完全透明)。此映射产生对象的运动显得留下拖尾的视觉效果。
在某些实施方案中,在显示对象的表示时可以使用重新映射的像素信息。如图16中所示,重新映射的像素信息可以产生基于运动历史的图像,该图像包括等级变化的不透明度。在这个实施方案中,分配给当前被用户占据的像素的值是100%。在使数据老化时,减去一个值,被减去的值和持续的帧数成反比。例如,在第一帧期间在像素位置检测到用户,所以分配100%的像素值。在这个例子中,在第二帧期间在该像素位置处未检测到用户,所以像素值被减少10%,并且以此类推直到其达到0%。该值表示alpha水平。但是,仍可以从该值计算自从近来在该位置检测到用户时起的帧数的计数。使用重新映射过程绘制用户表示的显示图像可以提供增强的视觉效果,以便当在与应用相关联的显示图像中绘制对象的表示时,所述对象的表示显得留下拖尾。
图24到图28示出了被配置成基于运动历史控制应用的交互系统的例子。这些系统可以用于执行针对图2描述的过程200。
图24示出了系统2400,它包括显示设备2403、捕获设备2401和计算设备2402。显示设备2403显示显示图像。显示设备2403可以是投影仪和投影屏幕、等离子显示器、液晶显示器(LCD)、自动立体显示器,或者其他的能够显示计算机产生的图像的设备。显示设备2403可以包括多个被排列成显示显示图像的设备(例如由多个投影仪组成的视频墙)。用户2404和显示设备2403上的显示图像交互。捕获设备2401捕获包括用户2404或者用户的一部分的图像。捕获设备2401可以包括产生一个或更多个相机图像序列的一个或更多个相机。
计算设备2402处理捕获设备2401捕获的图像以控制应用。应用产生在显示设备2403上显示的显示图像。应用可以在计算设备上或单独的设备上执行。交互系统2400的部件可以被以很多不同的配置排列。例如,如图所示,捕获设备2401可以位于显示设备2403上方。
图25示出了包括照明器2505的交互系统的例子。照明器2505可以用可见光或者红外光照明用户2404。照明器2505可以从捕获设备2401或者计算设备2402接收控制信号。照明器2505可以位于捕获设备2401和显示设备2403上方。照明器2505可以对用户2404提供比对背景2506中的人物或者对象强的照明。
图26示出了捕获设备2401位于用户2404头顶上方的配置。
图27示出了照明器2505照明用户2404而不照明背景2506中的其他人物和对象的配置。图27表示可以适合用于上面针对图7描述的过程700的配置。
图28示出了设备被安装在窗口2807内的配置。显示设备2403可以被集成到窗口2807中。例如,显示设备可以是投影仪和投影屏幕,其中投影屏幕包括贴附于窗口2807的薄膜。窗口2807可以是零售商店窗口。
参考图29,过程2900可以用于确定用户2404的运动并用于使用所确定的用户2908的运动作为对应用2915的输入。过程2900可以用各种系统实现,包括针对图1和图24到图28描述的系统。为了清楚地介绍,在系统2400的上下文中描述过程2900,但也可以使用其他系统。在描述过程2900的实施方案时使用系统2400并非打算限制过程2900。
捕获设备2401捕获图像集合序列(例如视频)。图像集合可以是图像序列的一部分。例如,图像集合可以包括由一个或更多个捕获设备或相机拍摄的一个或多个图像。捕获设备2401可以包括多个相机。图像集合可以包括由多个相机中的每一个产生的图像。
捕获设备2401产生相机图像集合2901。相机图像集合2901中所包括的一个或更多个图像被捕获处理过程2902处理,这产生了相机控制数据2903和处理过的相机图像集合2904。在某些实施方案中,处理过的相机图像集合2904可以和相机图像集合2901相同。相机控制数据2903被反馈到捕获设备2401中。用户检测过程2905分析处理过的相机图像集合2904,并且也可以使用相机控制数据2903。用户检测过程2905产生用户数据2906。
过程2900还可以包括运动历史过程2907,它处理用户数据2906以产生运动历史2908。在某些实施方案中,运动历史过程2907和运动历史2908可以是应用2915而非过程2900的一部分。过程2900还可以包括抠像过程2909,它使用运动历史2908(或者用户数据2906)和处理过的相机图像2904集合(或者相机图像集合2901)。抠像过程2909产生抠像图像2910。在某些实施方案中,抠像过程2909和抠像图像2910可以是应用2915而非过程2900的一部分。
过程2900还可以包括效果过程2911,它使用运动历史2908(或用户数据2906)并产生效果图像2912。在某些实施方案中,效果过程2911和效果图像2912可以是应用2915而非过程2900的一部分。过程2900还可以包括轮廓过程2913,它使用运动历史2908(或者用户数据2906)并产生轮廓数据2914。在某些实施方案中,轮廓过程2913和抠像数据2914可以是应用2915而非过程2900的一部分。
应用2915可以处理用户数据2906、运动历史2908、相机图像集合2901、处理过的相机图像集合2904、抠像图像2910、效果图像2912和轮廓数据2914中的任何一个。应用产生在显示设备2403上显示的显示图像2916。
用户检测过程2905可以利用运动。在很多场景中,图像内的大部分运动归结于用户。上面针对图3到图7描述的技术可以用于执行用户检测过程2905。
捕获处理2901可以包括产生用于控制捕获设备2401的相机控制数据2903。相机控制数据2903可以影响相机参数,包括曝光时间、增益和光圈。在这个过程的一个例子中,可以计算相机图像集合2901,或其一部分内的平均像素值。如果平均像素密度低于阈值,则产生导致相机增大其灵敏度(例如图像亮度)的相机控制数据2903。如果平均像素密度高于阈值,则产生导致相机降低其灵敏度(例如图像亮度)的相机控制数据2903。
相机可以被以微细步长调整,该调整造成的灵敏度(例如图像亮度)变化足够小,以至于不干扰用户检测过程2905的正常操作。在替代的实施方案中,包括曝光时间、增益和光圈的相机参数可以由内建于相机中的自动曝光过程确定。在这种情况下,相机控制数据2903可以由捕获设备2401产生。
相机控制数据2903(例如由捕获处理2902或由捕获设备2401产生)可以被传送到用户检测过程2905。
可以使用上面针对图8到图11描述的技术执行产生运动历史2908的运动历史处理2907。
抠像过程2909可以把处理过的相机图像集合2904(或相机图像集合2901)的图像和运动历史2908(或者用户数据2906)组合以产生抠像图像2910。抠像图像2910包括alpha通道,其确定当图像与应用产生的其他图形组合时显现的不透明度。
从处理过的相机图像集合2904(或者相机图像集合2901)产生抠像图像2910的基本通道。基本通道可以是红、绿和蓝色通道,但是,应该理解,可以使用其他的颜色空间,例如YUV。在某些实施方案中,相机图像的基本通道被复制到抠像图像的对应通道中。
在捕获设备2401产生包括多个相机图像的相机图像集合的实施方案中(例如包括多个相机的捕获设备2401的实施方案),相机图像可以被选择并复制到抠像图像的对应通道中。在捕获设备和捕获过程的各种实施方案中描述了相机图像的选择。在捕获设备2401产生包括多个相机图像的相机图像集合的另一个实施方案中(例如包括多个相机的捕获设备2401的实施方案),相机图像可以被组合。
组合相机图像的过程可以包括扭曲(warp)相机图像。对象可以出现在多个相机图像内的不同位置。这可以作为相机物理对准以及每一个相机具有略微不同的视点的事实(例如,通过使用光学,两个相机可以在同一视点获取图像,但是这种结构可能很昂贵)的结果出现。扭曲过程重新映射像素的位置,以使对象在集合的多个图像中在位置上显得重合。
在从相机的不同视点产生的图像之间可能存在视差,其中,所述视差依赖于距相机的距离而变化。扭曲过程可以重新映射像素的位置,以使在用户的预期距离处的对象显得在集合的多个图像中在位置上重合。
组合相机图像的过程也可以包括混和(例如被扭曲的)相机图像。混和过程可以平均(例如被扭曲的)相机图像的像素值,针对图像内的每一个像素位置产生组合像素值。可以从运动历史2908(或者用户数据2906)产生抠像图像2910的alpha通道。运动历史2908包括表示在该像素位置检测到用户的帧计数(或时间)的像素值。那些像素值被重新映射成alpha值。上面针对图23描述的过程可以用于把像素值映射成alpha值。
在某些实施方案中,运动历史2908被扭曲。在某些实施方案中,不同的相机可被用于产生用户数据2906和运动历史2908,可以使用和提供抠像图像2910的基本(例如颜色)通道时。对象可以出现在多个相机图像内的不同位置。这可能是相机物理对准(例如每一个相机具有略微不同的视点)的结果。扭曲过程可以用来避免使用光学来光学对准相机的视点的需要。
扭曲过程重新映射像素的位置,以使对象在集合的多个图像中的位置显得重合。运动历史2908可以被重新映射成和提供抠像图像2910的基本(例如红-绿-蓝)通道时使用的图像对准,以便维持最高图像质量。在从相机的不同视点产生的图像之间可能存在视差,其中,所述视差依赖于距相机的距离而变化。扭曲过程重新映射像素的位置,以使在用户的预期距离处的对象在集合的多个图像的位置显得重合。
在某些实施方案中,应用2915产生包括抠像图像2910的显示图像2916。抠像图像2910可以与应用产生的图像组合。在某些实施方案中,应用2915使用alpha通道把抠像图像2910和显示图像组合。上面针对图17描述过包括抠像图像的显示图像的例子。
在某些实施方案中,执行效果过程2911,效果过程2911将视觉效果图像与运动历史2908(或用户数据2906)组合以产生效果图像2912。效果图像2912包括alpha通道,alpha通道确定当图像与应用产生的其他图形组合时该图像可以显现的不透明度。产生效果图像2912的基本(例如红、绿和蓝色)通道以产生动画效果。动画效果的例子包括“血浆”(plasma)和“水波纹”。动画效果可以由预先绘制的动画序列或粒子系统产生。以与产生抠像图像2910的alpha通道相同的方式,从运动历史2908(或用户数据2906)产生效果图像2912的alpha通道。
应用2915可以产生包括效果图像2912的显示图像2916,并把效果图像与应用图像组合,这与组合和显示抠像图像2910的方式相同。
在某些实施方案中,可以执行轮廓过程2913。轮廓过程2913产生表示运动历史2908(或用户数据2906)的轮廓的轮廓数据2914。运动历史可以被作为位图——包含针对每一个像素的元素的多维数组——产生。轮廓数据2914包括环绕运动历史2908中的具有比预定义的阈值更近来的运动的像素(或用户数据2906中被分类为用户的一部分的像素)的坐标集合。轮廓数据2914可以包含比位图表示更少的数据元素,这对于某些应用是有益的。
轮廓过程2913还可以包括减少轮廓数据中的数据点的数量的过程。减少数据点的数量的过程包括去除落入相对较直的线内的点。轮廓过程2913还可以包括去除其尺寸较小的孤立对象的轮廓的过程。在上面描述的图16中示出了轮廓数据2914的例子。
在某些实施方案中,系统包括相机、显示设备和处理器。处理器可以处理相机捕获的图像、控制应用(例如计算机或视频游戏)的执行,并在显示设备上绘制与应用相关联的显示图像。在某些例子中,相机捕获与应用(例如计算机或视频游戏)交互的用户的图像。在这些例子中,相机捕获响应于在显示设备上显示的并与应用相关联的显示图像进行肢体运动的用户的图像。处理器可以处理进行肢体运动的用户的图像,并检测图像内用户的位置。处理器也可以追踪在图像中捕获的用户肢体运动的运动历史。追踪运动历史可以包括把图像划分为多个部分并追踪自从在图像中的多个部分的每一个处检测到用户时起的时间。例如,处理器可以维护像素地图,所述像素地图针对图像中的每一个像素存储与自从在像素地图中的每一个像素处检测到用户时起的时间相关的信息。
在某些实施方案中,运动历史信息(例如像素地图)可以被用来控制由处理器执行的应用。例如,处理器可以访问运动历史信息(例如像素地图),并基于所述运动历史信息在显示设备上绘制和应用(例如计算机或视频游戏)相关联的、包括用户的表示的显示图像。在上面讨论的使用像素地图的例子中,在应用中显示的用户的表示可以对应于自从在每一个像素处检测到用户时起的时间。在这个例子中,用户的表示可以包括具有针对所有检测到用户的像素的特殊效果(例如烟或火)的用户显示,或者可以包括具有仅针对最近未被检测到的用户运动部分的特殊效果(例如烟或火)的用户显示(例如,如果用户移动手臂,则随着手臂移动,烟或火显得追随用户的手臂)。在某些例子中,在显示图像中显示的像素的不透明度可以与像素地图相对应,并且对于一定时间段内未检测到用户的图像部分,不透明度可以随着时间减弱(例如,烟或移动其手臂的用户的阴影可以在手臂从运动开始的位置移开时淡出)。其他的实施方案可以使用被追踪的运动历史信息以其他方式来控制应用。例如,运动历史信息可以被提供给粒子仿真应用,以使粒子仿真应用可以使用粒子仿真技术将用户的表示显示为效果图像(例如烟、火、水,等等)。运动历史信息也可以用来确定对应用的用户输入命令。
图30示出了计算设备2402或计算设备140的外观的例子。简要地说,系统3000包括计算设备3001,计算设备3001包括基于运动历史控制应用的处理器。设备3001可以通过网络3006与包括服务器3002和服务器3004的一个或更多个服务器交换电子通信。
更具体地,计算设备3001的硬件环境包括用于向用户显示文本和图像的显示监视器3008、用于向计算设备3001输入文本数据和用户命令的键盘3009、用于指示、选择和操纵在显示监视器3008上显示的对象的鼠标3010、固定磁盘驱动器3011、可移动磁盘驱动器3012、磁带驱动器3014、硬拷贝输出设备3015、计算机网络连接3016和数字输入设备3017。
显示监视器3008显示图形、图像和文本,包括计算设备3001所使用的软件应用以及运行计算设备3001所必需的操作系统程序的用户接口。用户使用键盘3009输入命令和数据以操作和控制计算机操作系统程序和应用程序。鼠标3010可以是任何类型的指示设备,并且可以是游戏杆、跟踪球、触摸板、或者其他的指示设备。用来提供对虚拟对象的操纵的软件被本地存储在计算机可读存储介质上,例如存储在固定磁盘驱动器3011上。
在进一步的实施方案中,固定磁盘驱动器3011自身可以包括许多物理驱动器单元,例如独立磁盘冗余阵列(redundant array of independent disks,“RAID”),或者可以是在物理上位于分离的计算单元中的磁盘驱动器场或磁盘阵列。这些计算机可读存储介质允许计算设备3001访问存储在可移动和非可移动存储介质上的计算机可执行处理步骤、应用程序等等。
计算机网络连接3016可以是调制解调器连接、包括以太网的局域网(“LAN”)连接,或者宽带广域网(WAN)连接,例如数字用户线路(“DSL”),电缆高速互联网连接、拨号连接、T-1线路、T-3线路、光纤连接,或者卫星连接。网络3006可以是LAN网络、公司或者政府WAN网络、因特网,或者其他网络。
计算机网络连接3016可以是有线或无线连接器。示范性无线连接器包括例如INFRARED DATA
Figure G2007800519115D00321
(
Figure G2007800519115D00322
红外数据协会)无线连接器、光无线连接器、INSTITUTE OF ELECTRICAL AND ELECTRONICS
Figure G2007800519115D00323
(电子和电气工程师协会)标准802.11无线连接器、
Figure G2007800519115D00325
(蓝牙)无线连接器、正交频分复用(″OFDM″)超宽带(“UWB”)无线连接器、时间调制超宽带(“TM-UWB”)无线连接器,或者其他的无线连接器。示范性有线连接器包括例如
Figure G2007800519115D00326
连接器、通用串行总线(“USB”)连接器、串行端口连接器、并行端口连接器,或者其他的有线连接器。
可移动磁盘驱动器3012是可移动存储设备,它用来从计算设备3001下载数据,或者把数据上载到计算设备3001上。可移动磁盘驱动器3012可以是软盘驱动器、
Figure G2007800519115D00327
驱动器、致密盘只读存储器(“CD-ROM”)驱动器、可记录CD驱动器(“CD-R”)、可重写CD驱动器(“CD-RW”)、快闪存储器、USB快闪驱动器、拇指驱动器(thumb drive)、笔型驱动器(pendrive)、钥匙驱动器(key drive)、高密度数字多功能盘(“HD-DVD”)光盘驱动器、蓝光光盘驱动器、全息数字数据存储(“HDDS”)光盘驱动器,或者各种可记录或可重写数字多功能盘(“DVD”)驱动器中的任何一种,例如可记录DVD(“DVD-R”或“DVD+R”)、可重写DVD(“DVD-RW”或“DVD+RW”),或者DVD-RAM。操作系统程序、应用和各种数据文件被存储在盘上,它们被存储在固定磁盘驱动器3011上或者可移动磁盘驱动器3012的可移动介质上。
磁带驱动器3014是磁带存储设备,它用来从计算设备3001下载数据,或者把数据上载到计算设备3001上。磁带驱动器3014可以是四分之一英寸磁带盒(quarter-inch cartridge,“QIC”)、4mm数字音频磁带(“DAT”)、8mm数字线性磁带(digital linear tape,“DLT”)驱动器,或者其他类型的磁带。
硬拷贝输出设备3015为操作系统程序和应用提供输出功能。硬拷贝输出设备3015可以是打印机或产生有形的输出对象,包括文本或图像数据或者文本或图像数据的图形表示的任何输出设备。虽然硬拷贝输出设备3015被图示为直接连接到计算设备3001,但是无需如此。例如,硬拷贝输出设备可以通过例如有线或无线网络的网络接口连接到计算设备3001。
此外,尽管上面将计算设备3001描述为桌面PC,但是在进一步的实施方案中,计算设备3001可以是膝上型计算机、工作站、中型计算机、大型机、嵌入式系统、电话、手持或平版计算机、PDA,或者其他类型的计算机。
图31是框图,示出了图30中所示的计算机内部架构。现在描述计算设备3001的示范性内部架构。计算环境包括:计算机中央处理单元(“CPU”)3101,在计算机中央处理单元3101处理包括操作系统或应用的计算机指令;显示接口3102,它提供用于在显示监视器3008上绘制图形、图像和文本的通信接口和处理功能;键盘接口3104,它为键盘3009提供通信接口;指示设备接口3105,它为鼠标3010或等效的指示设备提供通信接口;数字输入接口3106,它为数字输入设备3017提供通信接口;硬拷贝输出设备接口3108,它为硬拷贝输出设备3015提供通信接口;随机访问存储器(“RAM”)3110,其中,计算机指令和数据被存储在易失性存储器设备中,以供计算机CPU3101处理;只读存储器(“ROM”)3111,其中,用于诸如基本输入和输出(“I/O”)、启动或从键盘3009接收键击的基本系统功能的不变的低层系统代码或数据被存储在非易失性存储器设备中;和,存储装置3120或其他适当类型的存储器(例如随机访问存储器(“RAM”)、只读存储器(“ROM”)、可编程只读存储器(“PROM”)、可擦除可编程只读存储器(“EPROM”)、电可擦除可编程只读存储器(“EEPROM”)、磁盘、光盘、软盘、硬盘、可移动磁带盒、快闪驱动器),其中存储包括操作系统3121、应用程序3122(包括虚拟对象操纵应用3123和其他必要的应用3124)和数据文件3125的文件;计算机网络接口3116,它提供通过计算机网络连接3016到网络3006的通信接口。构成设备和计算机CPU 3101通过计算机总线3127相互通信。
RAM 3110和计算机总线3127连接,以便在执行诸如操作系统应用程序的软件程序期间为计算机CPU 3101和设备驱动器提供快速RAM存储。更具体地说,计算机CPU 3101将计算机可执行处理步骤从固定磁盘驱动器3011或其他的存储介质加载到RAM 3110的区段中,以便执行软件程序。数据存储在RAM 3110中,其中,在执行期间计算机CPU 3101访问所述数据。
计算设备3001存储用于操作系统3121、应用程序3122的计算机可执行代码,应用程序3122例如字处理、电子数据表、演示、游戏,或者其他应用。尽管有可能使用上述实施方案提供对虚拟对象的操纵,但是,也有可能将根据本公开的功能实现为动态链接库(“DLL”),或者实现为其他应用程序的插件,例如互联网网页浏览器的插件,互联网网页浏览器例如
Figure G2007800519115D00341
Internet Explorer网页浏览器。
计算机CPU 3101是多种高性能计算机处理器其中之一,所述高性能计算机处理器包括
Figure G2007800519115D00342
Figure G2007800519115D00343
处理器、处理器、
Figure G2007800519115D00345
精简指令集计算机(“RISC”)处理器、
Figure G2007800519115D00346
处理器、
Figure G2007800519115D00347
RISC Machine
Figure G2007800519115D00348
架构处理器、HP
Figure G2007800519115D00349
处理器,或者用于大型机的专用计算机处理器。在另外的结构中,计算机CPU 3101是多于一个的处理单元,包括在高性能工作站和服务器中可见的多CPU配置,或者在大型机中可见的多重可扩展处理单元。
操作系统3121可以是
Figure G2007800519115D003410
WINDOWS
Figure G2007800519115D003411
2000/
Figure G2007800519115D003412
XP工作站;WINDOWS
Figure G2007800519115D003413
2000/
Figure G2007800519115D003414
XP服务器;各种
Figure G2007800519115D003415
风格的操作系统,包括用于
Figure G2007800519115D003416
工作站和服务器的
Figure G2007800519115D003417
用于
Figure G2007800519115D003418
工作站和服务器的
Figure G2007800519115D003419
用于基于
Figure G2007800519115D003420
CPU的工作站和服务器的
Figure G2007800519115D003421
用于
Figure G2007800519115D003422
工作站和服务器的HP UX WORKLOAD
Figure G2007800519115D003423
用于
Figure G2007800519115D003424
工作站和服务器的
Figure G2007800519115D003425
用于数字设备公司计算机的VAX/VMS、用于基于HP
Figure G2007800519115D003426
的计算机的
Figure G2007800519115D003427
用于基于
Figure G2007800519115D003428
的工作站和服务器的
Figure G2007800519115D003429
用于移动设备的SYMBIAN
Figure G2007800519115D003430
WINDOWS或者WINDOWS
Figure G2007800519115D003432
OS(“NOS”)、
Figure G2007800519115D003433
或者
Figure G2007800519115D003434
或者用于计算机或嵌入式系统的专用操作系统。用于操作系统3121的应用开发平台或框架可以是:BINARY RUNTIME ENVIRONMENT FOR
Figure G2007800519115D00351
Figure G2007800519115D00352
Java Platform,Micro Edition(“Java ME”)或者Java 2Platform,Micro Edition(
Figure G2007800519115D00353
)、PYTHONTM、FLASH
Figure G2007800519115D00354
或者.NET Compact。
虽然图30和图31示出了计算设备的一种可能的实施方案,所述计算设备执行程序代码,或者程序或处理步骤,被配置成基于运动历史完成对应用的控制,但是也可以使用其他类型的计算机。
已经描述了许多实施方案。尽管如此,将会理解,可以做出各种修改而不偏离本公开的精神和范围。因此,其他的实施方案在权利要求的范围内。

Claims (26)

1.一种计算机实施的方法,包括:
接收至少对象的第一图像;
在所述第一图像中检测对象;
基于在第一图像中检测对象,产生对象数据地图,该对象数据地图针对第一图像中的每一个像素,指示在每一个像素处是否检测到对象;
产生运动历史,该运动历史针对所述对象数据地图中所包括的每一个像素,指示自从在每一个像素处检测到对象时起的时间的指示;和
基于所述运动历史控制应用。
2.如权利要求1所述的方法,其中,“产生运动历史,该运动历史针对所述对象数据地图中所包括的每一个像素,指示自从在每一个像素处检测到对象时起的时间的指示”包括:产生运动历史,该运动历史针对所述对象数据地图中所包括的每一个像素,指示与自从在每一个像素处检测到对象时起的时间相对应的不透明度值。
3.如权利要求1所述的方法,其中,“产生运动历史,该运动历史针对所述对象数据地图中所包括的每一个像素,指示自从在每一个像素处检测到对象时起的时间的指示”包括:产生运动历史,该运动历史针对所述对象数据地图中所包括的每一个像素,指示自从在每一个像素处检测到对象时起的帧数。
4.如权利要求1所述的方法,其中,“产生运动历史,该运动历史针对所述对象数据地图中所包括的每一个像素,指示自从在每一个像素处检测到对象时起的时间的指示”包括:产生运动历史,该运动历史针对所述对象数据地图中所包括的每一个像素,指示自从在每一个像素处检测到对象时起的时间的度量。
5.如权利要求1所述的方法,其中:
“产生运动历史,该运动历史针对所述对象数据地图中所包括的每一个像素,指示自从在每一个像素处检测到对象时起的时间的指示”包括:过滤所述运动历史;并且
基于所述运动历史控制应用包括:基于过滤后的运动历史控制应用。
6.如权利要求5所述的方法,其中,过滤所述运动历史包括:针对每一个像素,基于所述每一个像素的值和与所述每一个像素相邻的像素的值,计算用于所述每一个像素的值。
7.如权利要求1所述的方法,其中,接收至少对象的第一图像包括:接收至少用户的第一图像。
8.如权利要求1所述的方法,其中,基于所述运动历史控制应用包括:在与所述应用相关联的显示图像中显示对象的表示。
9.如权利要求8所述的方法,其中,基于所述运动历史控制应用包括:控制在与所述应用相关联的显示图像中对象的表示的移动。
10.如权利要求8所述的方法,其中,在与所述应用相关联的显示图像中显示所述对象的表示包括:在与所述应用相关联的显示图像中,将对象的表示显示为粒子系统的一个或更多个粒子。
11.如权利要求8所述的方法,其中,在与所述应用相关联的显示图像中显示所述对象的表示包括:
基于所述运动历史,产生表示所述对象的运动的轮廓;和
基于所产生的轮廓,确定所述显示图像中的对象的表示是否触摸了由所述应用在所述显示图像中绘制的虚拟对象。
12.如权利要求8所述的方法,其中,在与所述应用相关联的显示图像中显示对象的表示包括:显示对象的表示,以使得与所述运动历史中对时间的指示指示最新近检测到对象的像素相对应的像素被以比与运动历史中对时间的指示指示在较久远的过去检测到对象的像素相对应的像素更强的不透明度显示。
13.如权利要求12所述的方法,其中,“显示对象的表示,以使得与所述运动历史中对时间的指示指示最新近检测到对象的像素相对应的像素被以比与运动历史中对时间的指示指示在较久远的过去检测到对象的像素相对应的像素更强的不透明度显示”包括:显示所述对象的表示,以使得与所述运动历史中的像素相对应的像素被以基于与该像素相关联的时间的指示的不透明度显示。
14.如权利要求13所述的方法,其中,“显示所述对象的表示,以使得与所述运动历史中的像素相对应的像素被以基于与该像素相关联的时间的指示的不透明度显示”包括:显示所述对象的表示,以使得第一像素的不透明度显得强于第二像素的不透明度,其中,所述第一像素所关联的时间的指示指示,与所述第二像素相比,在所述第一像素在更新近的时刻检测到对象。
15.如权利要求8所述的方法,其中,在与所述应用相关联的显示图像中显示对象的表示包括:
基于所述运动历史产生alpha通道;和
基于所述alpha通道在所述显示图像中显示所述对象的表示。
16.如权利要求8所述的方法,其中,在与所述应用相关联的显示图像中显示对象的表示包括:基于动画或粒子系统显示动画的效果图像。
17.如权利要求8所述的方法,其中,在与所述应用相关联的显示图像中显示对象的表示包括:显示所述对象的抠像图像。
18.如权利要求8所述的方法,其中,在与所述应用相关联的显示图像中显示所述对象的表示包括:
基于所述运动历史确定所述显示图像中的对象的表示是否触摸了所述显示图像中由所述应用绘制的虚拟对象;和
基于确定结果控制所述应用。
19.如权利要求18所述的方法,其中,基于确定结果控制所述应用包括:
基于所述运动历史计算所述虚拟对象的速度;和
基于所确定的虚拟对象的速度控制所述应用。
20.如权利要求19所述的方法,其中:
计算所述虚拟对象的速度包括:基于与所述运动历史相关联的光流数据,计算所述虚拟对象的运动速度和方向;和
基于所确定的所述虚拟对象的速度控制所述应用包括:基于所确定的所述虚拟对象的运动速度和方向控制所述应用。
21.如权利要求18所述的方法,其中,所述虚拟对象包括粒子系统的粒子。
22.如权利要求1所述的方法,其中,在所述第一图像中检测对象包括:将所述第一图像与背景图像进行比较。
23.一种计算机实施的方法,包括基于运动历史控制应用,该运动历史针对对象数据地图中所包括的每一个像素,指示自从在每一个像素处检测到对象时起的时间的指示,所述对象数据地图针对所接收到的所述对象的第一图像中的每一个像素,指示在所述每一个像素处是否检测到所述对象。
24.一种系统,包括:
相机,被配置成捕获至少对象的第一图像;
处理器,被配置成:
从所述相机接收所述对象的第一图像,
在所述第一图像中检测所述对象,
响应于在所述第一图像中检测对象,产生对象数据地图,所述对象数据地图针对第一图像中的每一个像素,指示在每一个像素处是否检测到所述对象,
产生运动历史,该运动历史针对所述对象数据地图中所包括的每一个像素,指示自从在每一个像素处检测到对象时起的时间的指示;
基于所述运动历史控制应用;和
显示器,被配置成绘制与所述应用相关联的显示图像。
25.一种计算机可读存储介质,其上具体实施计算机程序,所述计算机程序包括指令用于:
接收至少对象的第一图像;
在所述第一图像中检测所述对象;
响应于在所述第一图像中检测对象,产生对象数据地图,所述对象数据地图针对所述第一图像中的每一个像素,指示在每一个像素处是否检测到所述对象;
产生运动历史,所述运动历史针对对象数据地图中所包括的每一个像素,指示自从在每一个像素处检测到所述对象时起的时间的指示;和
基于所述运动历史控制应用。
26.一种系统,包括:
用于接收至少对象的第一图像的装置;
用于在所述第一图像中检测对象的装置;
用于响应于在所述第一图像中检测对象,产生对象数据地图的装置,所述对象数据地图针对所述第一图像中的每一个像素,指示在每一个像素处是否检测到所述对象;
用于产生运动历史的装置,所述运动历史针对对象数据地图中所包括的每一个像素,指示自从在每一个像素处检测到所述对象时起的时间的指示;和
用于基于所述运动历史控制应用的装置。
CN200780051911A 2006-12-29 2007-12-27 使用增强型交互系统操纵虚拟对象 Pending CN101636745A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US88284906P 2006-12-29 2006-12-29
US60/882,849 2006-12-29

Publications (1)

Publication Number Publication Date
CN101636745A true CN101636745A (zh) 2010-01-27

Family

ID=39589198

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200780051911A Pending CN101636745A (zh) 2006-12-29 2007-12-27 使用增强型交互系统操纵虚拟对象

Country Status (5)

Country Link
US (1) US8559676B2 (zh)
EP (2) EP2613281B1 (zh)
JP (1) JP2010515170A (zh)
CN (1) CN101636745A (zh)
WO (1) WO2008083205A2 (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103576845A (zh) * 2012-08-06 2014-02-12 原相科技股份有限公司 环境光侦测装置与方法、及使用此环境光侦测装置的交互式装置
CN104820493A (zh) * 2015-04-23 2015-08-05 北京小小牛创意科技有限公司 一种运动驱动效果的实现方法及实现系统
CN105765488A (zh) * 2013-11-19 2016-07-13 微软技术许可有限责任公司 虚拟环境的运动控制
CN108920007A (zh) * 2018-07-20 2018-11-30 京东方科技集团股份有限公司 触控报点阈值设置方法和系统
CN108986190A (zh) * 2018-06-21 2018-12-11 珠海金山网络游戏科技有限公司 一种基于三维动画中非人形角色的虚拟主播的方法和系统
CN109643159A (zh) * 2016-08-23 2019-04-16 谷歌有限责任公司 在增强和/或虚拟现实环境中利用六自由度控制器操纵虚拟对象
CN110651299A (zh) * 2018-02-28 2020-01-03 深圳市大疆创新科技有限公司 图像的水波纹检测方法及其装置、无人机和存储装置
CN112602105A (zh) * 2018-06-15 2021-04-02 株式会社Mgr系统规划 广告方法以及广告装置

Families Citing this family (89)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7598942B2 (en) * 2005-02-08 2009-10-06 Oblong Industries, Inc. System and method for gesture based control system
US9823747B2 (en) 2006-02-08 2017-11-21 Oblong Industries, Inc. Spatial, multi-modal control device for use with spatial operating system
US8537112B2 (en) * 2006-02-08 2013-09-17 Oblong Industries, Inc. Control system for navigating a principal dimension of a data space
US8531396B2 (en) * 2006-02-08 2013-09-10 Oblong Industries, Inc. Control system for navigating a principal dimension of a data space
US9075441B2 (en) * 2006-02-08 2015-07-07 Oblong Industries, Inc. Gesture based control using three-dimensional information extracted over an extended depth of field
US8370383B2 (en) 2006-02-08 2013-02-05 Oblong Industries, Inc. Multi-process interactive systems and methods
US8537111B2 (en) * 2006-02-08 2013-09-17 Oblong Industries, Inc. Control system for navigating a principal dimension of a data space
US9910497B2 (en) * 2006-02-08 2018-03-06 Oblong Industries, Inc. Gestural control of autonomous and semi-autonomous systems
EP2163987A3 (en) 2007-04-24 2013-01-23 Oblong Industries, Inc. Processing of events in data processing environments
US7733343B2 (en) * 2007-06-25 2010-06-08 Hewlett-Packard Development Company, L.P. Virtual shadow for physical object placed on surface
US8218811B2 (en) * 2007-09-28 2012-07-10 Uti Limited Partnership Method and system for video interaction based on motion swarms
KR101417808B1 (ko) * 2007-12-06 2014-07-09 삼성전자주식회사 디지털 촬영장치, 그 제어방법 및 제어방법을 실행시키기위한 프로그램을 저장한 기록매체
WO2009128064A2 (en) * 2008-04-14 2009-10-22 Pointgrab Ltd. Vision based pointing device emulation
US8723795B2 (en) 2008-04-24 2014-05-13 Oblong Industries, Inc. Detecting, representing, and interpreting three-space input: gestural continuum subsuming freespace, proximal, and surface-contact modes
US10642364B2 (en) 2009-04-02 2020-05-05 Oblong Industries, Inc. Processing tracking and recognition data in gestural recognition systems
US9740293B2 (en) 2009-04-02 2017-08-22 Oblong Industries, Inc. Operating environment with gestural control and multiple client devices, displays, and users
US9495013B2 (en) 2008-04-24 2016-11-15 Oblong Industries, Inc. Multi-modal gestural interface
US9740922B2 (en) 2008-04-24 2017-08-22 Oblong Industries, Inc. Adaptive tracking system for spatial input devices
US9684380B2 (en) 2009-04-02 2017-06-20 Oblong Industries, Inc. Operating environment with gestural control and multiple client devices, displays, and users
US9952673B2 (en) 2009-04-02 2018-04-24 Oblong Industries, Inc. Operating environment comprising multiple client devices, multiple displays, multiple users, and gestural control
CN102112945B (zh) * 2008-06-18 2016-08-10 奥布隆工业有限公司 用于交通工具接口的基于姿态的控制系统
US8146020B2 (en) * 2008-07-24 2012-03-27 Qualcomm Incorporated Enhanced detection of circular engagement gesture
US8433101B2 (en) * 2008-07-31 2013-04-30 Samsung Electronics Co., Ltd. System and method for waving detection based on object trajectory
JP5028676B2 (ja) * 2008-09-12 2012-09-19 ブリテッシュ ヴァージン アイランズ シューウィー グループ リミテッド グラフィカルユーザーインターフェースの操作/制御装置
PT104205A (pt) * 2008-10-03 2010-04-05 Exva Experts In Video Analisys Método e sistema de interacção entre actores e superfícies pela detecção de movimento
US10086262B1 (en) 2008-11-12 2018-10-02 David G. Capper Video motion capture for wireless gaming
US9383814B1 (en) 2008-11-12 2016-07-05 David G. Capper Plug and play wireless video game
US9586135B1 (en) 2008-11-12 2017-03-07 David G. Capper Video motion capture for wireless gaming
CA2743518C (en) 2008-11-21 2015-02-10 Precitec Itm Gmbh Method and device for monitoring a laser processing operation to be performed on a workpiece and laser processing head having such a device
US8624962B2 (en) * 2009-02-02 2014-01-07 Ydreams—Informatica, S.A. Ydreams Systems and methods for simulating three-dimensional virtual interactions from two-dimensional camera images
US8517834B2 (en) * 2009-02-17 2013-08-27 Softkinetic Studios Sa Computer videogame system with body position detector that requires user to assume various body positions
US9317128B2 (en) 2009-04-02 2016-04-19 Oblong Industries, Inc. Remote devices used in a markerless installation of a spatial operating environment incorporating gestural control
US10824238B2 (en) 2009-04-02 2020-11-03 Oblong Industries, Inc. Operating environment with gestural control and multiple client devices, displays, and users
US20120121128A1 (en) * 2009-04-20 2012-05-17 Bent 360: Medialab Inc. Object tracking system
CN101562756A (zh) * 2009-05-07 2009-10-21 昆山龙腾光电有限公司 立体显示装置及其显示方法、立体显示拼接墙
GB2483168B (en) 2009-10-13 2013-06-12 Pointgrab Ltd Computer vision gesture based control of a device
US9971807B2 (en) 2009-10-14 2018-05-15 Oblong Industries, Inc. Multi-process interactive systems and methods
US9933852B2 (en) 2009-10-14 2018-04-03 Oblong Industries, Inc. Multi-process interactive systems and methods
TWI410834B (zh) * 2009-10-30 2013-10-01 Quanta Comp Inc 利用暫存影像的基於影像之座標輸入裝置及方法
US8933884B2 (en) * 2010-01-15 2015-01-13 Microsoft Corporation Tracking groups of users in motion capture system
US20110187678A1 (en) * 2010-01-29 2011-08-04 Tyco Electronics Corporation Touch system using optical components to image multiple fields of view on an image sensor
US20130135199A1 (en) * 2010-08-10 2013-05-30 Pointgrab Ltd System and method for user interaction with projected content
US20120066624A1 (en) * 2010-09-13 2012-03-15 Ati Technologies Ulc Method and apparatus for controlling movement of graphical user interface objects
EP2428870A1 (en) * 2010-09-13 2012-03-14 Samsung Electronics Co., Ltd. Device and method for controlling gesture for mobile device
US8890803B2 (en) 2010-09-13 2014-11-18 Samsung Electronics Co., Ltd. Gesture control system
US20120098761A1 (en) * 2010-10-22 2012-04-26 April Slayden Mitchell Display system and method of display for supporting multiple display modes
KR101781533B1 (ko) * 2010-12-23 2017-09-27 삼성디스플레이 주식회사 영상 촬영 장치 및 이의 영상 촬영 방법
US20130004928A1 (en) * 2011-01-31 2013-01-03 Jesse Ackerman Reaction training apparatus and methods of use
JP5766479B2 (ja) 2011-03-25 2015-08-19 京セラ株式会社 電子機器、制御方法および制御プログラム
JP5670255B2 (ja) * 2011-05-27 2015-02-18 京セラ株式会社 表示機器
JP5864144B2 (ja) 2011-06-28 2016-02-17 京セラ株式会社 表示機器
US9984489B2 (en) 2011-07-27 2018-05-29 Dreamworks Animation L.L.C. Fluid dynamics framework for animated special effects
US20130083997A1 (en) * 2011-10-04 2013-04-04 Alcatel-Lucent Usa Inc. Temporally structured light
WO2013085525A1 (en) * 2011-12-08 2013-06-13 Intel Corporation Techniques for efficient stereo block matching for gesture recognition
CN103167223A (zh) * 2011-12-09 2013-06-19 富泰华工业(深圳)有限公司 具有广角拍摄功能的移动装置及其影像撷取方法
CN102645555A (zh) * 2012-02-22 2012-08-22 佛山科学技术学院 一种微运动测量方法
US9239624B2 (en) 2012-04-13 2016-01-19 Nokia Technologies Oy Free hand gesture control of automotive user interface
US8938124B2 (en) 2012-05-10 2015-01-20 Pointgrab Ltd. Computer vision based tracking of a hand
TWI476381B (zh) * 2012-08-01 2015-03-11 Pixart Imaging Inc 環境光偵測裝置與方法、及使用此環境光偵測裝置之互動式裝置
TWI500320B (zh) * 2012-12-22 2015-09-11 Univ Nat Cheng Kung 在多視角環境中尋找最佳觀測視角的方法與其電腦程式產品
KR102031284B1 (ko) * 2013-03-14 2019-11-08 삼성전자주식회사 연속 촬영된 이미지를 합성하는 전자 장치 및 방법
CN103179437A (zh) * 2013-03-15 2013-06-26 苏州跨界软件科技有限公司 虚拟人物视频录制及播放系统和方法
JP6136516B2 (ja) * 2013-04-18 2017-05-31 オムロン株式会社 遊技機
US9829984B2 (en) * 2013-05-23 2017-11-28 Fastvdo Llc Motion-assisted visual language for human computer interfaces
TWI505135B (zh) * 2013-08-20 2015-10-21 Utechzone Co Ltd 顯示畫面的控制系統、輸入裝置及控制方法
KR20150043818A (ko) 2013-10-15 2015-04-23 삼성전자주식회사 영상처리장치 및 그 제어방법
DE102014101525A1 (de) * 2014-02-07 2015-08-13 Cassidian Optronics Gmbh Verfahren und Vorrichtung zur Darstellung einer Objektliste, eines Bildes, eines Bildmosaiks, eines virtuellen 2D-Objektraums oder eines virtuellen 3D-Objektraums
US9990046B2 (en) 2014-03-17 2018-06-05 Oblong Industries, Inc. Visual collaboration interface
JP2015191480A (ja) * 2014-03-28 2015-11-02 株式会社ソニー・コンピュータエンタテインメント 情報処理装置、オブジェクトの操作方法、及びオブジェクトの操作プログラム
WO2015146813A1 (ja) 2014-03-28 2015-10-01 株式会社ソニー・コンピュータエンタテインメント オブジェクトの操作方法、オブジェクトの操作プログラム、及び情報処理装置
US9547162B2 (en) * 2015-02-25 2017-01-17 The Regents Of The University Of Michigan Interactive projection system
WO2017081805A1 (ja) * 2015-11-13 2017-05-18 日立マクセル株式会社 操作検出装置、操作検出方法、及び映像表示システム
US11010972B2 (en) 2015-12-11 2021-05-18 Google Llc Context sensitive user interface activation in an augmented and/or virtual reality environment
CN105678830A (zh) * 2015-12-31 2016-06-15 广州多益网络科技有限公司 2d游戏的动画实现方法和系统
CN106101578B (zh) * 2016-06-27 2019-08-16 上海小蚁科技有限公司 图像合成方法和设备
US10529302B2 (en) 2016-07-07 2020-01-07 Oblong Industries, Inc. Spatially mediated augmentations of and interactions among distinct devices and applications via extended pixel manifold
KR102200820B1 (ko) * 2016-09-22 2021-01-11 주식회사 케이티 알파맵(Alpha Map) 분석을 통한 양방향 서비스를 제공하는 사용자 단말, 셋톱 박스 및 방법
US10147218B2 (en) * 2016-09-29 2018-12-04 Sony Interactive Entertainment America, LLC System to identify and use markers for motion capture
WO2018071041A1 (en) * 2016-10-14 2018-04-19 Hewlett-Packard Development Company, L.P. Rebuilding three-dimensional models to provide simplified three-dimensional models
CN109145681B (zh) * 2017-06-16 2021-02-26 北京京东尚科信息技术有限公司 用于判断目标旋转方向的方法及装置
WO2019083501A1 (en) * 2017-10-24 2019-05-02 Hewlett-Packard Development Company, L.P. GENERATING A THREE-DIMENSIONAL VISUALIZATION OF A DIVIDED INPUT DEVICE
CN107948519B (zh) * 2017-11-30 2020-03-27 Oppo广东移动通信有限公司 图像处理方法、装置及设备
US10552707B2 (en) * 2017-12-07 2020-02-04 Qualcomm Incorporated Methods and devices for image change detection
WO2019235608A1 (ja) * 2018-06-07 2019-12-12 日本電気株式会社 分析装置、分析方法および記録媒体
US10747331B2 (en) 2018-07-27 2020-08-18 University Of South Carolina Virtual reality platform with haptic interface for interfacing with media items having metadata
CN110971889A (zh) * 2018-09-30 2020-04-07 华为技术有限公司 一种获取深度图像的方法、摄像装置以及终端
JP7244541B2 (ja) * 2018-12-03 2023-03-22 マクセル株式会社 拡張現実表示装置及び拡張現実表示方法
CN110740309B (zh) * 2019-09-27 2022-05-03 北京字节跳动网络技术有限公司 一种图像显示方法、装置、电子设备及存储介质
US11495054B2 (en) * 2019-10-22 2022-11-08 Objectvideo Labs, Llc Motion-based human video detection

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1154661A (zh) * 1994-07-01 1997-07-16 麻省理工学院 人体动作轨迹学习系统
CN1193394A (zh) * 1995-07-14 1998-09-16 拉都包夫·挪拉赫梅特·挪利斯拉莫维奇 使使用者投入虚拟现实的方法及装置

Family Cites Families (67)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4746770A (en) * 1987-02-17 1988-05-24 Sensor Frame Incorporated Method and apparatus for isolating and manipulating graphic objects on computer video monitor
US5164992A (en) * 1990-11-01 1992-11-17 Massachusetts Institute Of Technology Face recognition system
US5534917A (en) * 1991-05-09 1996-07-09 Very Vivid, Inc. Video image based control system
US6400996B1 (en) * 1999-02-01 2002-06-04 Steven M. Hoffberg Adaptive pattern recognition based control system and method
US5483261A (en) * 1992-02-14 1996-01-09 Itu Research, Inc. Graphical input controller and method with rear screen image detection
USRE38420E1 (en) * 1992-08-12 2004-02-10 British Broadcasting Corporation Derivation of studio camera position and motion from the camera image
US5982352A (en) * 1992-09-18 1999-11-09 Pryor; Timothy R. Method for providing human input to a computer
US6008800A (en) * 1992-09-18 1999-12-28 Pryor; Timothy R. Man machine interfaces for entering data into a computer
US5435554A (en) * 1993-03-08 1995-07-25 Atari Games Corporation Baseball simulation system
JP3727954B2 (ja) * 1993-11-10 2005-12-21 キヤノン株式会社 撮像装置
DE4415167A1 (de) 1994-04-29 1995-11-02 Siemens Ag Telekommunikationsanordnung zum Übertragen von Bildern
US5528263A (en) * 1994-06-15 1996-06-18 Daniel M. Platzker Interactive projected video image display system
JPH08179888A (ja) * 1994-12-21 1996-07-12 Hitachi Ltd 大画面ディスプレイ用入力装置
US5710833A (en) * 1995-04-20 1998-01-20 Massachusetts Institute Of Technology Detection, recognition and coding of complex objects using probabilistic eigenspace analysis
US6075905A (en) * 1996-07-17 2000-06-13 Sarnoff Corporation Method and apparatus for mosaic image construction
JP3876942B2 (ja) * 1997-06-13 2007-02-07 株式会社ワコム 光デジタイザ
US6720949B1 (en) * 1997-08-22 2004-04-13 Timothy R. Pryor Man machine interfaces and applications
US6072496A (en) * 1998-06-08 2000-06-06 Microsoft Corporation Method and system for capturing and representing 3D geometry, color and shading of facial expressions and other animated objects
JP4033582B2 (ja) * 1998-06-09 2008-01-16 株式会社リコー 座標入力/検出装置および電子黒板システム
US6377700B1 (en) * 1998-06-30 2002-04-23 Intel Corporation Method and apparatus for capturing stereoscopic images using image sensors
US6628819B1 (en) * 1998-10-09 2003-09-30 Ricoh Company, Ltd. Estimation of 3-dimensional shape from image sequence
US6468265B1 (en) * 1998-11-20 2002-10-22 Intuitive Surgical, Inc. Performing cardiac surgery without cardioplegia
US6222465B1 (en) * 1998-12-09 2001-04-24 Lucent Technologies Inc. Gesture-based computer interface
US7015950B1 (en) 1999-05-11 2006-03-21 Pryor Timothy R Picture taking method and apparatus
US6791531B1 (en) * 1999-06-07 2004-09-14 Dot On, Inc. Device and method for cursor motion control calibration and object selection
US6275214B1 (en) * 1999-07-06 2001-08-14 Karl C. Hansen Computer presentation system and method with optical tracking of wireless pointer
US7187412B1 (en) 2000-01-18 2007-03-06 Hewlett-Packard Development Company, L.P. Pointing device for digital camera display
US6535114B1 (en) * 2000-03-22 2003-03-18 Toyota Jidosha Kabushiki Kaisha Method and apparatus for environment recognition
US6956576B1 (en) * 2000-05-16 2005-10-18 Sun Microsystems, Inc. Graphics system using sample masks for motion blur, depth of field, and transparency
US6803906B1 (en) * 2000-07-05 2004-10-12 Smart Technologies, Inc. Passive touch system and method of detecting user input
US7227526B2 (en) * 2000-07-24 2007-06-05 Gesturetek, Inc. Video-based image control system
JP4059620B2 (ja) * 2000-09-20 2008-03-12 株式会社リコー 座標検出方法、座標入力/検出装置及び記憶媒体
US20020153188A1 (en) 2000-12-08 2002-10-24 Brandt Kenneth A. Selectable control parameters on a power machine with four-wheel steering
US8035612B2 (en) 2002-05-28 2011-10-11 Intellectual Ventures Holding 67 Llc Self-contained interactive video display system
US7259747B2 (en) 2001-06-05 2007-08-21 Reactrix Systems, Inc. Interactive video display system
JP2003091740A (ja) 2001-09-17 2003-03-28 Namco Ltd 画像生成システム、プログラム及び情報記憶媒体
US20030098841A1 (en) 2001-11-26 2003-05-29 Jessica Broussard Powered, remotely controllable computer display device
KR100415313B1 (ko) * 2001-12-24 2004-01-16 한국전자통신연구원 동영상에서 상관 정합과 시스템 모델을 이용한 광류와카메라 움직임 산출 장치
US7170492B2 (en) 2002-05-28 2007-01-30 Reactrix Systems, Inc. Interactive video display system
US7710391B2 (en) 2002-05-28 2010-05-04 Matthew Bell Processing an image utilizing a spatially varying pattern
US20050122308A1 (en) 2002-05-28 2005-06-09 Matthew Bell Self-contained interactive video display system
US7348963B2 (en) 2002-05-28 2008-03-25 Reactrix Systems, Inc. Interactive video display system
US7576727B2 (en) 2002-12-13 2009-08-18 Matthew Bell Interactive directed light/sound system
JP4323180B2 (ja) * 2003-02-13 2009-09-02 日本電信電話株式会社 自己画像表示を用いたインタフェース方法、装置、およびプログラム
US7162075B2 (en) 2003-03-10 2007-01-09 Cranial Technologies, Inc. Three-dimensional image capture system
US7127101B2 (en) 2003-03-10 2006-10-24 Cranul Technologies, Inc. Automatic selection of cranial remodeling device trim lines
US8745541B2 (en) 2003-03-25 2014-06-03 Microsoft Corporation Architecture for controlling a computer using hand gestures
US7665041B2 (en) 2003-03-25 2010-02-16 Microsoft Corporation Architecture for controlling a computer using hand gestures
US7333133B2 (en) 2003-03-31 2008-02-19 Spatial Integrated Systems, Inc. Recursive least squares approach to calculate motion parameters for a moving camera
US7463280B2 (en) 2003-06-03 2008-12-09 Steuart Iii Leonard P Digital 3D/360 degree camera system
JP4723799B2 (ja) * 2003-07-08 2011-07-13 株式会社ソニー・コンピュータエンタテインメント 制御システムおよび制御方法
CN1902930B (zh) 2003-10-24 2010-12-15 瑞克楚斯系统公司 管理交互式视频显示系统的方法和系统
WO2005041579A2 (en) 2003-10-24 2005-05-06 Reactrix Systems, Inc. Method and system for processing captured image information in an interactive video display system
US7312819B2 (en) 2003-11-24 2007-12-25 Microsoft Corporation Robust camera motion analysis for home video
KR100594971B1 (ko) 2004-01-09 2006-06-30 삼성전자주식회사 지자기 센서를 이용한 입력장치 및 이를 이용한 입력신호생성방법
JP3847753B2 (ja) 2004-01-30 2006-11-22 株式会社ソニー・コンピュータエンタテインメント 画像処理装置、画像処理方法、記録媒体、コンピュータプログラム、半導体デバイス
US20060209019A1 (en) * 2004-06-01 2006-09-21 Energid Technologies Corporation Magnetic haptic feedback systems and methods for virtual reality environments
US20060018516A1 (en) * 2004-07-22 2006-01-26 Masoud Osama T Monitoring activity using video information
EP1645944B1 (en) * 2004-10-05 2012-08-15 Sony France S.A. A content-management interface
EP1851749B1 (en) 2005-01-21 2012-03-28 Qualcomm Incorporated Motion-based tracking
JP2006209563A (ja) * 2005-01-31 2006-08-10 Victor Co Of Japan Ltd インターフェース装置
WO2006084385A1 (en) 2005-02-11 2006-08-17 Macdonald Dettwiler & Associates Inc. 3d imaging system
WO2006108279A1 (en) * 2005-04-11 2006-10-19 Martin Lizee Method and apparatus for virtual presence
US7864168B2 (en) * 2005-05-25 2011-01-04 Impulse Technology Ltd. Virtual reality movement system
US7570250B2 (en) * 2006-05-04 2009-08-04 Yi-Ming Tseng Control device including a ball that stores data
US8280115B2 (en) * 2007-10-30 2012-10-02 Canon Kabushiki Kaisha Image processing apparatus and image processing method
US8243987B2 (en) * 2008-06-06 2012-08-14 International Business Machines Corporation Object tracking using color histogram and object size

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1154661A (zh) * 1994-07-01 1997-07-16 麻省理工学院 人体动作轨迹学习系统
CN1193394A (zh) * 1995-07-14 1998-09-16 拉都包夫·挪拉赫梅特·挪利斯拉莫维奇 使使用者投入虚拟现实的方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
GARY R. BRADSKI,JAMES DAVIS: "Motion Segmentation and Pose Recognition with Motion History Gradients", 《MACHINE VISION AND APPLICATIONS》 *

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103576845A (zh) * 2012-08-06 2014-02-12 原相科技股份有限公司 环境光侦测装置与方法、及使用此环境光侦测装置的交互式装置
CN105765488A (zh) * 2013-11-19 2016-07-13 微软技术许可有限责任公司 虚拟环境的运动控制
CN105765488B (zh) * 2013-11-19 2018-12-11 微软技术许可有限责任公司 虚拟环境的运动控制
CN104820493A (zh) * 2015-04-23 2015-08-05 北京小小牛创意科技有限公司 一种运动驱动效果的实现方法及实现系统
CN109643159A (zh) * 2016-08-23 2019-04-16 谷歌有限责任公司 在增强和/或虚拟现实环境中利用六自由度控制器操纵虚拟对象
CN109643159B (zh) * 2016-08-23 2022-08-02 谷歌有限责任公司 在增强和/或虚拟现实环境中利用六自由度控制器操纵虚拟对象
CN110651299A (zh) * 2018-02-28 2020-01-03 深圳市大疆创新科技有限公司 图像的水波纹检测方法及其装置、无人机和存储装置
CN112602105A (zh) * 2018-06-15 2021-04-02 株式会社Mgr系统规划 广告方法以及广告装置
CN108986190A (zh) * 2018-06-21 2018-12-11 珠海金山网络游戏科技有限公司 一种基于三维动画中非人形角色的虚拟主播的方法和系统
CN108920007A (zh) * 2018-07-20 2018-11-30 京东方科技集团股份有限公司 触控报点阈值设置方法和系统
CN108920007B (zh) * 2018-07-20 2021-03-12 京东方科技集团股份有限公司 触控报点阈值设置方法和系统

Also Published As

Publication number Publication date
WO2008083205A3 (en) 2008-08-28
EP2104905A4 (en) 2010-12-29
EP2613281B1 (en) 2014-08-13
US20080166022A1 (en) 2008-07-10
JP2010515170A (ja) 2010-05-06
EP2613281A1 (en) 2013-07-10
WO2008083205A2 (en) 2008-07-10
US8559676B2 (en) 2013-10-15
EP2104905A2 (en) 2009-09-30

Similar Documents

Publication Publication Date Title
CN101636745A (zh) 使用增强型交互系统操纵虚拟对象
JP5967904B2 (ja) ユーザがコンピュータシステムとやり取りを行うことができる、ビデオストリームにおける動く非剛体オブジェクトをリアルタイムで検出し及び追跡する方法及び装置
US9613454B2 (en) Automatic geometry and lighting inference for realistic image editing
JP5655095B2 (ja) デプスカメラの互換性
Rowe et al. CMUcam3: An open programmable embedded vision sensor
CN101147188B (zh) 图像处理中基于运动的跟踪的方法和系统
Kramer et al. Hacking the kinect
US8411149B2 (en) Method and device for identifying and extracting images of multiple users, and for recognizing user gestures
US9082213B2 (en) Image processing apparatus for combining real object and virtual object and processing method therefor
AU2001294970C1 (en) Object tracking system using multiple cameras
Zollmann et al. Image-based ghostings for single layer occlusions in augmented reality
JP5778182B2 (ja) デプスカメラの互換性
US10970920B2 (en) Systems and methods for ray-traced shadows of transparent objects
US20100002909A1 (en) Method and device for detecting in real time interactions between a user and an augmented reality scene
CN106385591A (zh) 视频处理方法及视频处理装置
CN104145276A (zh) 用于通过光学成像进行的对象检测和表征的增强对比度
JP2017521738A (ja) 目追跡でのグレアに対処すること
CN103503030A (zh) 通过进行图像处理来决定位于现实空间中的对象物的进深的图像处理装置、立体视觉装置、集成电路、程序
CN104834897A (zh) 一种基于移动平台的增强现实的系统及方法
CN114067172A (zh) 一种仿真图像生成方法、仿真图像生成装置及电子设备
CN104407746A (zh) 一种基于红外光电技术的多点触摸系统
KR102448551B1 (ko) 노드 기반 그래프에 의해 구성되는 알고리즘을 이용한 영상 처리 방법 및 장치
Fujiwara et al. Interactions with a line-follower: An interactive tabletop system with a markerless gesture interface for robot control
CN117173314B (zh) 一种图像处理方法、装置、设备、介质及程序产品
Shi et al. Identifying Light Interference in Event-Based Vision

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
ASS Succession or assignment of patent right

Owner name: QUALCOMM INC.

Free format text: FORMER OWNER: GESTURE TEK INC.

Effective date: 20120118

C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20120118

Address after: American California

Applicant after: Qualcomm Inc.

Address before: American California

Applicant before: Gesturetek Inc.

C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20100127