附图说明
在附图中,在所有不同的视图中,相同的参考字符通常指类似的部件。此外,附图不一定按比例绘制,相反,重点通常放在例示所公开的技术的原理。在以下说明中,所公开的技术的不同实施方式将参照以下附图进行说明,其中:
图1A示出了根据所公开的技术的一种实施方式的捕获图像数据的系统。
图1B是根据所公开的技术的一种实施方式的实施图像分析装置的姿势识别系统的简化框图。
图2A描绘了根据所公开的技术的一种实施方式的由用户的姿势控制的电子装置。
图2B描绘了根据所公开的技术的一种实施方式的由姿势识别系统检测的多个姿势。
图3A和3B描绘了根据所公开的技术的一种实施方式的反映用户的姿势的完成程度的屏幕虚拟指示器。
图3C是示出根据所公开的技术的一种实施方式的预测用户选择虚拟对象并随后及时操纵所选择的虚拟对象的时间的方法的流程图。
图4A和4B描绘根据所公开的技术的一种实施方式的动态调整用户的实际运动和显示在屏幕上的所导致的动作之间的关系。
图4C是示出根据所公开的技术的一种实施方式的动态调整用户的实际运动和显示在屏幕上的所导致的动作之间的关系的方法的流程图。
图5A和5B描绘根据所公开的技术的一种实施方式的圆盘用户界面元件。
图6是示出根据所公开的技术的一种实施方式的过滤姿势的方法的流程图。
图7是示出根据所公开的技术的一种实施方式的定制姿势解释的方法的流程图。
图8A、8B和8C示出根据所公开的技术的一种实施方式的用户限定姿势的示例性训练指导流程。
详细说明
所公开的技术的实施方式涉及使用音频信号以降低功耗操作运动捕获系统的方法和系统。例如,可以关联一个序列的图像,以便构造对象的3-D模型,所述3-D模型包括对象的位置和形状。可使用相同的技术分析连续的图像,以便构建对象的运动(例如,自由形式的姿势)的模型。在光线不足的情况下,当不能以足够的可靠度对自由形式的姿势进行光学识别时,音频信号可以提供对象的方向和位置,如本文进一步所述的。
如本文所使用的,如果之前的信号、事件或值影响给定的信号、事件或值,则给定的信号、事件或值“依赖于”之前的信号、事件或值。如果有中间处理元件、步骤、动作或时间段,则给定的信号、事件或值仍然可以“依赖于”之前的信号、事件或值。如果中间处理元件或步骤结合多个信号、事件或值,则处理元件或步骤的信号输出被认为是“依赖于”每个信号、事件或值的输入。如果给定信号、事件或值与之前的信号、事件或值相同,则这仅是简并情形,其中给定的信号、事件或值仍然被认为是“依赖于”之前的信号、事件或值。类似地限定给定的信号、事件或值对另一信号、事件或值的“响应”。
首先参考图1A,图1A示出了一种示例性姿势识别系统100A,所述系统包括一对摄像机102、104,所述摄像机联接至图像分析系统106。摄像机102、104可以是任何类型的摄像机,包括对全部可见光谱敏感的摄像机,或者更典型地,对一定范围内的波长带(例如,红外(IR)或紫外线波长带)具有增强的敏感度的摄像机;更一般地,术语“摄像机”在此是指能够捕获对象的图像并以数字数据的形式表示该图像的任何装置(或装置的组合)。虽然使用两个摄像机的实施方式的示例进行例示,但是也容易实施使用不同数目的摄像机或非摄像机光敏图像传感器或其组合的其它的实施方式。例如,可以使用行传感器(linesensor)或线摄像机(linecamera)而非能够捕获二维(2D)图像的传统的装置。术语“光”通常用来指任何电磁辐射,其可以或可以不在可见光谱内,并且可以是宽带(例如,白光)或窄带(例如,单个波长或窄带波长)。
虽然没有特别的帧频要求,但是摄像机102、104优选能够捕获视频图像(即,至少每秒15帧的恒定速率的连续图像帧)。摄像机102、104的功能对所公开的技术并非关键,摄像机可以具有不同的帧频、图像分辨率(例如,每幅图像的像素)、颜色或亮度(intensity)分辨率(例如,每像素亮度数据的比特数目)、镜头的焦距、景深等。一般情况下,对于特定的应用程序,可以使用能对关注的空间体积内的物体进行聚焦的任何摄像机。例如,为了捕获静止的人的手的运动,关注的体积可以被限定为一侧约一米的立方体。
在一些实施方式中,示出的系统100A包括一对源108、110,所述源可被设置在摄像机102、104任一侧,并由图像分析系统106控制。在一种实施方式中,源108、110是光源。例如,光源可以是红外光源,例如红外发光二极管(LED),摄像机102、104可以对红外光敏感。使用红外光能允许姿势识别系统100A在广范围的光线条件下工作,并且能避免可能会与引导可见光进入人运动的区域相关的各种不便或干扰。然而,要求电磁光谱的特定波长或区域。在一种实施方式中,过滤器120、122被放置在摄像机102、104前方,以便过滤掉可见光,使得仅红外光存在于由摄像机102、104捕获的图像中。在另一实施方式中,源108、110是声波源。声波源向用户发射声波;用户遮挡(或“声波遮掩”)或者改变(或“声波偏移”)向用户冲击的声波。该声波遮掩和/或声波偏移也可以用于检测用户的手势。在一些实施方式中,声波是例如超声波,即人类听不见的声波。
应当强调,图1A所示的布置是代表性的,而非限制性的。例如,可用激光或其它光源代替LED。在包括激光的实施方式中,附加的光学元件(例如,镜头或漫射器(diffuser))可用于加宽激光束(使其视野类似于摄像机的视野)。有用的布置还可以包括用于不同范围的小角度和广角照明器。光源通常漫射而不是镜面点光源;例如,具有光传播包封的封装的LED是合适的。
在操作中,光源108、110被布置为照亮关注的区域112,所述区域包含可选地持有工具的人体114的一部分(在这个示例中,一只手)或其它关注的对象,摄像机102、104定向为朝向区域112,以捕获手114的视频图像。在一些实施方式中,光源108、110和摄像机102、104的操作由图像分析系统106控制,所述图像分析系统可以是例如计算机系统。基于所捕获的图像,图像分析系统106确定对象114的位置和/或运动。
图1B是计算机系统100B的简化框图,实施根据所公开的技术的一种实施方式的图像分析系统106(也被称为图像分析仪)。图像分析系统106可以包括能够捕获和处理图像数据的任何装置或装置部件,或由能够捕获和处理图像数据的任何装置或装置部件组成。在一些实施方式中,计算机系统100B包括处理器132、存储器134、摄像机界面136、显示器138、扬声器139、键盘140和鼠标141。存储器134可以用于存储由处理器132执行的指令以及与执行指令相关联的输入和/或输出数据。具体地,存储器134包含这样的指令,所述指令在概念上示出为一组模块,所述模块控制处理器132的工作以及处理器132与其它硬件部件的交互,所述模块在后文更详细地说明。操作系统指导执行低层次的、基本系统功能,如文件管理和海量存储装置的运行。操作系统可以是/或包括多种操作系统,如MicrosoftWINDOWS操作系统、Unix操作系统、Linux操作系、Xenix的操作系统、IBMAIX操作系统、惠普UX操作系统、NovellNETWARE操作系统、SunMicrosystems的SOLARIS操作系统、OS/2操作系统、BeOS操作系统、MACINTOSH操作系统、APACHE操作系统、OPENACTION操作系统、iOS、Android或其它移动操作系统,或其它平台操作系统。
计算环境还可以包括其它可移动/不可移动、易失性/非易失性计算机存储介质。例如,硬盘驱动器可读取或写入至不可移动、非易失性磁介质。磁盘驱动器可读取或写入至可移动、非易失性磁盘,光盘驱动器可读取或写入至可移动、非易失性光盘,例如CD-ROM或其它光学介质。可以在示例性操作环境中使用的其它可移动/不可移动、易失性/非易失性计算机存储介质包括但不限于:磁带盒、闪存卡、数字多功能盘、数字录像带、固态RAM、固态ROM等。存储介质通常通过可移动或不可移动存储器界面连接到系统总线。
处理器132可以是通用微处理器,但是,根据实施方式,可以可选地是微控制器、外围集成电路元件、CSIC(客户专用集成电路)、ASIC(应用程序专用集成电路)、逻辑电路、数字信号处理器,诸如FPGA(现场可编程门阵列)的可编程逻辑装置、PLD(可编程逻辑装置)、PLA(可编程逻辑阵列)、RFID处理器、智能芯片、或能够实施所公开的技术的过程的动作的任何其它装置或装置的布置。
摄像机界面136可包括这样的硬件和/或软件,所述硬件和/或软件使计算机系统100B和摄像机(如在图1A中所示的摄像机102、104)以及相关联的光源(例如,图1A中的光源108、110)之间能够进行通信。因此,例如,摄像机界面136可包括一个或多个数据端口146、148(摄像机可连接到该数据端口)以及硬件和/或软件的信号处理器,以便在将信号作为输入提供到在处理器132上执行的运动捕获(“运动捕获”)程序144之前,修改来自摄像机的数据信号(例如,为减少噪声或重新格式化数据)。在一些实施方式中,摄像机界面136还可以传送信号给摄像机,以便例如激活或停用所述摄像机,以控制摄像机设置(帧频、图像质量、敏感度等)等等。例如,可以响应来自处理器132的控制信号传送前述信号,所述控制信号可以是响应用户输入或其它检测到的事件而生成的。
摄像机界面136还可以包括控制器147、149,光源(例如,光源108、110)可以连接到所述控制器。在一些实施方式中,例如,控制器147、149响应来自执行运动捕获程序144的处理器132的指令向光源供给工作电流。在其它实施方式中,光源可以从外部电源(未示出)汲取工作电流,控制器147、149能生成用于光源的控制信号,所述控制信号例如指示光源开启或关闭或改变亮度。在一些实施方式中,单个控制器可用于控制多个光源。
限定运动捕获程序144的指令存储在存储器134中,当被执行时,这些指令对由连接至摄像机界面136的摄像机供给的图像进行运动捕获分析。在一种实施方式中,运动捕获程序144包括各种模块,例如对象检测模块152、对象分析模块154和姿势识别模块156。对象检测模块152可以分析图像(例如,通过摄像机界面136捕获的图像)来检测其中的对象的边缘和/或关于对象的位置的其它信息。对象分析模块154可分析由对象检测模块152提供的对象的信息,以确定对象(例如,用户的手)的3D位置和/或运动。可以在运动捕获程序144的代码模块中实施的动作的示例说明如下。存储器134还可以包括运动捕获程序144使用的其它信息和/或代码模块。
显示器138、扬声器139、键盘140和鼠标141可以用来协助用户与计算机系统100B的交互。在一些实施方式中,使用摄像机界面136和运动捕获程序144进行姿势捕获的结果可以被解释为用户输入。例如,用户可以做出手势,所述手势使用运动捕获程序144进行分析,该分析的结果可以解释为给在处理器132上执行某些其它程序(例如,web浏览器、文字处理器或其它应用程序)的指令。因此,通过举例说明的方式,用户可以使用向上或向下的刷动姿势“滚动”当前在显示器138上显示的网页,使用旋转姿势来增加或减少扬声器139的音频输出的音量,依此类推。
应当理解,计算机系统100B是说明性的,各种变化和修改都是可能的。计算机系统可以以各种形式的因素来实施,所述因素包括服务器系统、桌面系统、笔记本电脑系统、平板电脑、智能电话或个人数字助理等等。具体实施方式可包括本文没有说明的其它功能,例如,有线和/或无线网络界面、媒体播放和/或记录能力等。在一些实施方式中,一个或多个摄像机可以内置在计算机中,而不是被提供为单独的部件。另外,图像分析仪可以仅利用计算机系统部件的一个子集(例如,作为具有合适的I/O界面以接收图像数据和输出分析结果的处理器执行程序代码、ASIC或固定功能的数字信号处理器)来实施。
虽然本文参考特定的模块说明了计算机系统100B,但是,应该理解,限定模块是为了说明的方便,并不旨在暗示部件的特定的物理布置。此外,模块不必对应于物理上独特的部件。就使用物理上独特的部件而言,根据需要,部件之间的连接(例如,用于数据通信)可以是有线和/或无线的。
参考图1A、1B和2A,用户做出姿势,所述姿势由摄像机102、104捕获为一系列时间上连续的图像。这些图像由姿势识别模块156分析,所述姿势识别模块156可以被实施为运动捕获144的另一模块。姿势识别系统在计算机视觉领域是公知的,并且可以利用基于3D模型的算法(即,容积模型或骨架模型)、使用人体或与姿势相关的身体部位的简化表示的骨架模型、或基于例如与姿势相关的身体部位的变形模板的基于图像的模型或其它技术。参见例如,Wu等人,“基于视觉的姿势识别:回顾与展望”(Vison-BasedGestureRecognition:AReview),载于《人机交互中基于姿势的通信》(Springer,1999);Pavlovis等人,“人机交互中的手势的视觉解读:回顾与展望”(VisualInterpretationofHandGesturesforHuman-computerInteraction:areview),IEEETrans.PatternAnalysisandMachineIntelligence(19(7):677-695,1997年7月)。
姿势识别模块156向电子装置214提供输入,允许用户远程控制电子装置214和/或在显示在屏幕218上的虚拟环境中操纵虚拟对象216,所述虚拟对象例如是原型/模型、块、球,或者其它形状、按钮、杠杆或其它控制件。用户可以使用其身体的任何部位做出姿势,所述部位例如是手指、手或手臂。作为姿势识别的一部分或独立的装置,图像分析仪106可实时确定在3D空间中的用户的手的形状和位置,参见,例如,美国申请系列号61/587554,13/446585和61/724091,其分别提交于2012年1月17日、2012年3月7日和2012年11月8日,其全部公开内容通过引用并入于此。结果,图像分析仪106不仅可以识别姿势以便向电子装置214提供输入,还可以捕获连续视频图像中的用户的手的位置和图像,以便确定3D空间中的姿势的特征,并在显示屏幕218上复制该图像。
在一种实施方式中,姿势识别模块156将检测到的姿势与作为记录电子存储在数据库220中的姿势的资料库进行对比,所述数据库实施在图象分析系统106、电子装置214或外部存储系统222中。(如本文中所使用的,术语“电子存储”包括易失性或非易失性存储器中的存储,后者包括磁盘,闪存存储器等,并延伸至任何计算可寻址存储介质(包括例如光学存储))。例如,姿势可以被存储为矢量,即,数学上指定的空间轨迹,所述姿势记录可具有指定做出姿势的用户身体的相关部分的域;因此,用户的手和头部做出的类似的轨迹可以作为不同的姿势存储在数据库中,以使应用程序可以对其有不同的解释。通常,将感测到的姿势的轨迹与所存储的轨迹进行数学对比,以找到最佳匹配,并且,仅当匹配度超过阈值时,该姿势被识别为对应于的所识别出的数据库条目。矢量可以被按比例缩放,以便例如将跟踪的用户的手的大弧度的和小弧度识别为相同的姿势(即,对应于相同的数据库记录),但是,姿势识别模块返回姿势的身份标识和反映缩放比例(scale)的值。缩放比例可对应于做出姿势时横过的实际姿势距离,或可标准化为一些典型距离。
在一些实施方式中,姿势识别模块156检测多个姿势。参照图2B,例如,用户可以做出挥动手臂的姿势,同时手指弯曲。姿势识别模块156检测挥动和弯曲姿势200B,并记录挥动轨迹330和五个手指的五个弯曲轨迹332、334、336、338、340。每条轨迹可以沿着例如欧拉空间中的六个欧拉自由度(x,y,z,翻滚角,俯仰角和偏航角)转换成矢量。具有最大幅度的矢量例如代表该运动的主导成分(例如,在这种情况下,挥动),其余的矢量可以被忽略。当然,手指的细微运动可以是被隔离解释的主导姿势,而手的较大幅度的挥动运动被忽略。在一种实施方式中,矢量过滤器(可以使用过滤技术实施)应用于所述多个矢量,以过滤掉小矢量并识别主导矢量。可以重复、迭代该过程,直到识别出一个矢量—运动的主导成分。在一些实施方式中,每次检测到新姿势,就生成新的过滤器。
如果该姿势识别系统156被实施为特定应用程序的一部分(如游戏或电视的控制器逻辑),则数据库姿势记录还可以包含对应于该姿势(可以对其利用缩放比例值进行按比例缩放)的输入参数;在将姿势识别系统156实施为可用于多种应用程序的实用程序的通用系统中,该应用程序的特定参数被省略:当应用程序调用姿势识别系统156时,其根据其自己的程序解释所识别的姿势。
因此,参照图2A,姿势识别系统156通过参考数据库220识别手势,将表示所识别的姿势的信号向电子装置214传送。装置214继而把所识别的姿势和缩放比例值处理为输入信号,并对其分配输入参数值;然后,输入参数由在电子装置214上执行的应用程序使用,协助基于姿势的用户交互。例如,用户可以首先使其手以重复或独特的方式(例如,做出挥手势)运动,以启动与电子装置214的通信。在检测并识别该手势时,姿势识别系统156将信号传送给指示用户检测的电子装置214,作为响应,装置214呈现适当的显示(例如,控制面板224)。然后,用户做出另一姿势(例如,沿“向上”或“向下”方向使其手运动),这又由姿势识别系统156检测到。姿势识别系统156识别姿势和与之相关的缩放比例值,并将数据传送给电子装置214;装置214继而将此信息解释为表示所希望的动作的输入参数(就好像用户按压遥控装置上的按钮),使得用户能够操纵控制面板224上显示的数据(例如,选择感兴趣的频道、调整音频声音或改变屏幕的亮度)。在不同实施方式中,装置214连接到视频游戏源(例如,视频游戏控制台或CD或基于网络的视频游戏);用户可以做出各种姿势来与虚拟环境(视频游戏)中的虚拟对象216进行远程交互。检测到的姿势和缩放比例作为输入参数提供到当前运行的游戏,所述游戏解释它们,并执行与背景相适应的动作,即,响应该姿势生成屏幕显示。该系统的各种部件—姿势识别系统156和装置214的解释姿势并基于其生成显示内容的操作元件—可以是单独的(如图所示),或者可以被组织起来,或在概念上看成是在图像分析系统106内。
在不同实施方式中,在用户成功启动与姿势识别系统156和电子装置214的通信后,姿势识别系统156生成代表检测到的身体的一部分(例如,手)的光标226或图228(以下称为“光标”),并将其显示在装置的屏幕218上。在一种实施方式中,姿势识别系统156协调地锁定屏幕218上的光标226的运动,以便跟踪用户的姿势的实际运动。例如,当用户使其手沿向上方向运动时,作为响应,显示的光标226也在显示屏幕上向上运动。结果,光标226的运动直接将用户的姿势映射到显示的内容,使得例如用户的手和光标226的行为分别类似于PC的鼠标和监视器上的光标。这允许用户评估实际物理姿势的运动和在屏幕218上发生的所导致的动作(例如,显示在屏幕上的虚拟对象216的运动)之间的关系。因而,手的绝对位置通常对显示控制不重要;相反,用户的身体的相对位置和/或运动的方向控制屏幕虚拟动作,例如,光标226的运动。
用户交互的一个示例300A示于图3A。如图所示,用户做出姿势以使显示的光标310运动,以便与所显示的关注的虚拟对象312至少部分地重叠。然后,用户做出另一姿势(例如,“手指点击”),以选择所期望的对象312。为了将对象312标记为用户选择的对象,用户的运动(即,身体部位的运动)可能需要满足完成姿势的预定的阈值(例如,95%);这个值存储在数据库220中或由当前在电子装置316中运行的应用程序来实施。
例如,完成“点击”姿势可以要求用户的手指运动5厘米的距离,所述“点击”姿势激活类似于按钮的虚拟控制件;在检测到手指运动1厘米时,姿势识别系统314通过将其与数据库记录进行匹配来识别该姿势,并且确定所识别的姿势的完成程度(在这种情况下,20%)。在一种实施方式中,数据库中的每个姿势包括多个图像或矢量,所述图像或矢量的每一个与做出的姿势的完成程度(例如,从1%到100%)相关联;在其它实施方式中,完成程度由内插或将观察的矢量与所存储的矢量进行简单的对比来计算。所做出的姿势的完成程度(例如,用户使其手运动的幅度)可以被呈现在屏幕上,事实上,对姿势的完成程度的评估可以由装置316上运行的呈现应用程序而不是由姿势识别系统314进行处理。
例如,电子装置316可以显示空心圆形图标318,当用户使得其手指运动靠近装置316(用户做出点击或“触摸”姿势)时该装置从姿势识别系统314接收简单运动(位置改变)信号,此时呈现应用程序用一种颜色或多种颜色填充所述空心圆形图标。圆被填充的程度指示用户的运动还有多久完成该姿势(或用户的手指已经离开其原始位置多远)。当用户完全做出点击或触摸姿势时,圆形被完全填充,这可能导致例如将虚拟对象312标记为被选择的对象。
在一些实施方式中,该装置暂时显示第二指示(例如,改变指示器的形状,颜色或亮度),以便确认该对象的选择。因而,姿势完成程度和/或对象选择的确认指示使用户能够很容易地预测选择虚拟对象的确切时刻;相应地,用户可以随后以直观的方式操纵所选择的屏幕虚拟(on-screen)对象。虽然这里的讨论聚焦于填充空心圆318,但是所公开的技术不限于显示在屏幕上的可以指示所做出的姿势的完成程度的任何特定类型的图像。例如,也可以使用逐渐由颜色填充的空心杆320、颜色梯度322、颜色的亮度或用于示出由用户做出的姿势的完成程度的任何合适的指示器,其都在所公开的当前的技术的范围内。
姿势识别系统314基于在所捕获的2D图像中的用户的身体的做出姿势的部位的形状和位置连续检测并识别用户姿势。姿势的3D图像可以通过分析在连续获取的图像中用户做出姿势的身体部位的所识别的形状和位置的时间相关性进行重构。因为重构的3D图像可以实时地准确检测和识别小幅度姿势(例如,使手指运动小于1厘米的距离),所以姿势识别系统314提供高检测敏感度。在不同实施方式中,一旦该姿势被识别且与其相关联的指令被识别,姿势识别系统314就将信号传送给装置316以激活显示用户的姿势的完成程度的屏幕虚拟指示器。屏幕虚拟指示器提供反馈,所述反馈允许用户使用不同程度的运动来控制电子装置316和/或操纵所显示的虚拟对象312。例如,用户的姿势可以是例如和身高尺寸一样大的跳跃或如手指点击的小幅度姿势。
在一种实施方式中,一旦对象312被标记为选择对象,则所述姿势识别系统314将对象312与屏幕虚拟光标310锁定在一起,以反映用户随后做出的运动。例如,当用户使其手沿向下方向运动时,作为响应,显示的光标310和选择的虚拟对象312也在显示屏幕上一起向下运动。再次,这允许用户在虚拟环境中精确地操纵虚拟对象312。
在另一种实施方式300B中,当虚拟对象被标记为选择的条目时,用户的后续运动被计算转换为施加到所选择的对象的模拟物理作用力。参照图3B,用户例如使其食指向前运动一厘米的距离来完成对虚拟对象330的选择;这种选择可以通过完全填充显示在屏幕上的空心圆332来确认。然后,用户可将其食指向前运动另一厘米。当检测这种运动时,姿势识别系统314将其转换为模拟作用力;可基于物理模拟模型、身体运动的自由度、身体部位的质量和运动速度、重力和/或任何其它相关参数来转换作用力。装置316上运行的生成虚拟对象330的应用程序通过以下来响应作用力的数据:基于包括牛顿物理原则的运动模型呈现受作用力影响的虚拟对象330的行为。
例如,如果用户运动是预定范围(例如,小于1厘米)内的幅度相对较小的运动和/或相对较慢的运动,则转换的作用力使所选择的对象330的形状变形;然而,如果用户的运动超过所确定的范围(即,大于10厘米)或阈值速度时,则装置316将所转换的作用力处理为大(即,比模拟的静摩擦作用力大)到足以使所选择的对象330运动。在接收到推力时,装置316的呈现应用程序基于运动模型模拟对象330的运动;然后在屏幕上更新该运动行为。呈现应用程序可以对虚拟对象330采取其它动作,例如,对按钮、操纵杆、铰链、把手等进行拉伸、弯曲、或施加机械控制。结果,模拟的作用力复制现实世界中等效作用力的效果,使交互对用户是可预见的和现实的。
应当强调,姿势识别系统314和装置316上运行的呈现应用程序之间的前述功能划分仅为示例;在一些实施方式中,该两个部分更紧密联接,甚至统一,从而使得不是简单地将一般作用力数据传递给应用程序,而是姿势识别系统314对呈现在装置316上的环境具有世界知识(worldknowledge)。以这种方式,姿势识别系统314可以将对象特定(object-specific)知识(例如,摩擦力和惯性)施加至作用力数据,使得直接计算用户的运动对呈现的对象的物理效果(而不是基于一般作用力数据,所述一般作用力数据由姿势识别系统314生成,并由装置316基于一个一个的对象进行处理)。此外,在不同实施方式中,运动捕获144在装置316上运行,部件314是简单的传感器,其仅仅传送图像(例如,高对比度的图像)至装置316以便由运动捕获144进行分析。在这样的实施方式中,该运动捕获144可以是独立应用程序,所述独立应用程序将姿势信息提供给在装置316上运行的呈现应用程序(例如游戏),或者如以上所讨论的,也可以集成在呈现应用程序内(例如,游戏应用程序可以设置合适的运动捕获功能)。这种系统314和装置316之间以及硬件和软件之间的计算责任的划分代表了设计选择。
图3C示出代表性方法300C,所述方法用于支持用户与电子装置的姿势交互,尤其涉及监视姿势完成程度,以便能推迟屏幕虚拟动作直到姿势完成。在第一动作352中,用户通过做出姿势来启动与电子装置的通信。在第二动作354中,由姿势识别系统检测姿势。在第三动作356中,姿势识别系统将识别的姿势与存储在数据库中的姿势记录进行对比,以识别该姿势并实时评估完成程度。然后,姿势识别系统将信号传送给电子装置(在第四动作358中)。(如前所述,完成程度功能可以在装置上实施,而不是由姿势识别系统实施,后者的系统仅仅提供运动跟踪数据。)基于该信号,该电子装置显示反映用户姿势的完成程度的屏幕虚拟指示器(在第五动作360中)。如果完成程度超过阈值(例如,95%),则电子装置和/或显示在屏幕上的虚拟对象随后由用户基于当前或随后做出的姿势及时进行操纵(动作362、364)。
参考图4A,在一个实施400A中,基于用户的实际运动的绝对空间位移确定在屏幕414上所显示的对象412的运动410。例如,用户可以首先如418所示将手416滑动到右方一厘米;当检测到并识别该姿势时,姿势识别系统420将信号传送给指示运动的电子装置422,该装置将所述信号解释为输入参数,并且作为响应,采取行动使光标或虚拟对象412在屏幕414上沿同一方向运动(即,呈现为运动)例如一百个像素。用户的物理运动和所呈现的运动之间的关系可以由用户通过例如改变由姿势识别系统420存储的用于相关联的姿势的缩放比例因子进行设置。如果姿势识别系统420集成了呈现应用程序,则用户可以使用姿势来进行这种改变。
例如,用户可以指定:光标或对象412响应给定的手的运动做出的更大的屏幕虚拟运动(即,横过更多的像素)。用户可以首先通过做出明确的姿势激活显示在屏幕上的比例控制面板424。控制面板424可被呈现为例如滑块、圆形标度盘或任何适当的形式。用户随后做出另一姿势来基于缩放比例控制面板424的样式来调整比例。如果缩放比例控制面板是滑块,则用户滑动其手指以改变该比例。在另一实施方式中,没有缩放比例控制面板显示在屏幕上;比例是基于该用户的后续姿势调整。作为另一示例,用户可以通过打开其拳头或使其拇指和食指分开来增加缩放比例,通过握拳或使其食指向拇指运动来减少缩放比例。虽然为了说明的目的这里的讨论集中于手或手指姿势,但是所公开的技术不限于由人体的任何特定部分做出的任何姿势。也可使用任何合适的姿势用于用户与电子装置之间的通信,其在公开的当前技术的范围之内。
在另一些实施方式中,比例调整是用遥控装置(用户通过按压按钮来控制)或使用无线装置(诸如平板电脑或智能电话)来实现。不同的缩放比例可以与各姿势相关联(即,缩放比例是局部的,对各姿势可以不同)并存储在数据库中的特定姿势记录中。可替代地,缩放比例可以适用于存储在姿势数据库中的几个或所有的姿势(即,缩放比例是全局的,对至少几个姿势相同)。
可替代地,物理和屏幕虚拟运动之间的关系至少部分地基于显示器和/或呈现的环境的特性来确定。例如,参考图4B,在一个实施方式400B中,所获取的用户的(摄像机)图像430具有M×N个像素的矩阵形式的亮度值,电子装置422显示屏幕的(呈现的)帧具有X×Y像素。当用户在摄像机图像中做出导致m像素的水平位移(或m象素距离)和n象素竖直位移(或n象素距离)的挥手姿势420时,相对水平和竖直运动分别被设定为m/M,n/N,用于按比例缩放。响应该手势,可以使显示屏幕414上的光标或对象412运动(x,y)像素,其中x和y分别以最简单的形式被确定为x=m/M×X,y=n/N×Y。但是,即使为了显示基本上是单位(1:1)的缩放比例(其被针对用户的环境和显示屏幕的相对尺寸调整),通常也要考虑摄像机的位置和用户的距离、焦距、图像传感器的分辨率、视角等,结果,x和y的量被乘以恒定的量,导致从“用户空间”到呈现的图像的实质仿射影射(affinemapping)。再次说明,所述常数可以被调整来放大或减小屏幕虚拟运动的响应。用户与显示在屏幕上的虚拟对象412进行的这种交互可以在使对象在虚拟环境中运动的同时向用户提供现实的感觉。
用户的实际运动和所导致的在屏幕上发生的动作之间的缩放比例关系可能会导致性能上的挑战,特别是当用户可用的空间有限时。例如,当两个家庭成员一起坐在沙发上播放显示在电视上的视频游戏时,每一个用户的运动的有效范围由于其它用户的存在而受到限制。因此,可以改变缩放比例因子来反映受限制的运动范围,以使小幅度的物理运动对应于较大的屏幕虚拟运动。这可以在由姿势识别系统检测到多个相邻的用户时自动发生。在不同实施方式中,缩放比例也可取决于屏幕上的呈现的内容。例如,在具有多个对象的忙碌呈现环境中,可能期望小的缩放比例,以运行用户精密导航;而对于更简单的或更开放的环境(如以下情形:用户假装扔球或挥动高尔夫球杆,且检测到的动作被呈现在屏幕上),优选大的缩放比例。
如上所述,用户的运动和屏幕上显示的运动之间的合适关系取决于用户相对于记录摄像机的位置。例如,用户的实际运动m与捕获的图像的像素尺寸M的比例取决于在姿势识别系统420实施的摄像机的视角以及摄像机和用户之间的距离。如果视角宽或者用户在远离摄像机的距离处,则用户的姿势的检测到的相对运动(即,m/M)小于如果视角不那么宽或用户更接近摄像机的情况下的相对运动。因此,在前者的情况下,虚拟对象响应姿势在屏幕上运动得太少,而在后一种情况下,虚拟对象运动得太多。在不同实施方式中,用户的实际运动与显示在屏幕上的相应的运动的比例基于例如在用户和姿势识别系统(其可以通过测距来跟踪)之间的距离自动粗略地调整;这使用户可以朝向或远离姿势识别系统运动,而不破坏用户已经获得对实际和呈现运动之间的关系的直观的感受。
在不同实施方式中,当识别出姿势但所检测到的用户运动很微小(即,低于预定阈值)时,姿势识别系统420从低敏感度检测模式切换为高敏感度模式,在所述高敏感度模式中,基于所获取的2D图像和/或3D模型准确地重构手势的3D图像。由于高敏感度姿势识别系统可以精确地检测由身体的一小部分(例如,一个手指)做出的小幅度运动(例如,小于几毫米),所以用户的实际运动与屏幕上显示的所导致的运动的比例可以在大范围内进行调整,例如,在1000:1和1:1000之间。
图4C中示出根据所公开的当前技术的实施方式的用户动态地调整其实际运动和显示在电子装置的屏幕上的所导致的对象运动之间的关系的代表性方法400C。在第一动作452中,用户通过做出姿势启动与电子装置的通信。在第二动作454中,该姿势被检测,并且通过姿势识别系统识别。在第三动作456中,姿势识别系统通过将检测到的姿势与存储在数据库中的姿势进行对比识别与所述姿势相关的指令。然后,姿势识别系统基于所述指令确定用户的实际运动与显示在装置的屏幕上的所导致的虚拟动作的比例(在第四动作458)。姿势识别系统传送指示指令的信号到所述电子装置(在第五动作460)。在第六动作462,在接收到信号时,电子装置基于所确定的比例和用户的随后的运动在屏幕上显示虚拟动作。
系统100B可以经由显示器138向用户呈现各种用户界面元件以方便与其交互。用户界面元件可以是响应来自用户的某些姿势(或其它形式的输入)而创建,或是通过处理器132上运行的软件程序(例如,运动捕获程序144或其它应用程序或游戏程序)创建。在一种实施方式中,显示器138在显示器138上设有盘状“圆盘”(puck)用户界面元件502,如图5A所示。如上所述的姿势识别系统314识别来自用户的姿势,并根据所公开的技术的实施方式使得圆盘502相应地运动。在一种实施方式中,用户的手的代表符504也出现在显示器138上;当手的代表符504触摸圆盘502的一侧506并使其沿第一方向508运动时,圆盘在对应于代表符504的运动的相应的方向510运动。用户可以经由代表符504类似地在其侧面在任何位置触摸圆盘502,做出“推”圆盘502的姿势,从而使得圆盘502在相应的方向上运动。
示出在图5A中的所公开的技术的实施方式是说明性的示例;所公开的技术不限于仅此实施方式。屏幕138上可以没有用户的手的代表符504;姿势识别系统314可将来自用户的姿势识别为意在推圆盘502的姿势,而不显示代表符504,用户可以使用其手的其它部分(例如,手掌)或使用其它身体部位或对象创建姿势。在其它实施方式中,如果被显示,代表符504可以包括其它对象,如触控笔或画笔,或用户的其它身体部位。圆盘502可以是任何尺寸或形状,例如圆形、方形、椭圆形或三角形。
圆盘502的位置可被用作输入至计算机程序、显示设置、游戏或任何其它此类软件应用程序的输入或其它变量。在一种实施方式中,圆盘502的x位置控制第一变量,圆盘502的y位置控制第二(有关或无关)变量。图5B示出了一个这样的应用程序;灰度选择小部件512包括圆盘502。通过经由一个或多个姿势推动圆盘502,用户可以在选择小部件512上选择灰度值。例如对应于该圆盘502的中心的灰度值可由此被选择,以便供例如电脑绘画程序使用。选择小部件512可包括多个任何其它此类值(例如,颜色),用于通过圆盘502从其中选择。
圆盘502可响应用户姿势以任何数目的不同方式运动。例如,圆盘502可在用户停止推动它之后继续运动一段时间,并且可以根据虚拟质量和与小部件512的虚拟摩擦系数(或其它类似的值)减速直至停止。圆盘502可以仅在用户的姿势已与其一侧接触并且用户的进一步的运动超过最小阈值距离(例如,圆盘是“粘性”的,需要姿势覆盖初始最小量的距离,才能“摆脱粘性”)才启动运动。在一种实施方式中,当用户的姿势停止与圆盘502接触时,圆盘502通过虚拟“弹簧”栓系到小部件512上的一个点。按压如传统的按钮的圆盘的顶部表面可以导致发生进一步的动作。在一种实施方式中,在按压圆盘502的顶表面之后,用户可以做出旋转姿势,姿势识别系统314可相应地旋转圆盘(并相应地改变应用程序的参数)。
在所公开的技术的其它实施方式中,用户可以使用姿势创建附加的用户界面元件,随后用这些元件进行交互。例如,姿势识别系统314可以检测用户已用手指(或其它对象)做出圆形运动并将该圆形运动解释为期望在显示器138上创建按钮。一旦被创建,用户可与用户界面元件进行交互(通过,例如,按压按钮),并由此使得执行相关联的功能。该功能可以通过以下来确定:显示器138的背景、显示器138上创建用户界面元件的位置或者其它用户输入。
在另一种实施方式中,姿势识别系统314响应用户姿势,创建滑块,所述用户姿势例如是伸展两个手指(例如,其食指和中指)并用手指做出姿势(例如,平行于显示器138的平面的运动)。一旦被创建,滑块就可用于控制适当的应用程序(例如,滚动文件、菜单或列表的页面或部分)。
在另一种实施方式中,姿势识别系统314将用户的向前或反向的手指指向姿势解释为“鼠标点击”(或其它类似的选择或确认命令)。用户可以使其手指着显示器138或指向显示器138,并使手指沿其长轴的方向朝向显示器138运动;如果手指运动的距离超过一个阈值(例如,1、5或10厘米),则姿势识别系统314将此姿势解释为鼠标点击。在一种实施方式中,仅当至少有一定比例的运动(例如,50%)是在手指指向的方向时,姿势才被解释为鼠标点击。朝向远离显示器138的方向的运动的类似的姿势可以被解释为另一个或不同的用户输入。在一种实施方式中,向前的姿势是左击鼠标,反向姿势是右鼠标点击。
其它用户的姿势、其它对象的运动或其组合可以被集体捕获并用于确定旋转因子。姿势识别系统314可以分析存在于一个序列的捕获的图像中的所有或大部分运动,并基于其生成单个旋转因子(表达为例如若干程度的旋转)。在一种实施方式中,姿势识别系统314在所捕获的运动的中心处或附近选择焦点,计算每个运动对象相对于该焦点的旋转量,并基于其计算平均旋转量。不同对象的运动可以基于其加速度、速度、尺寸、靠近显示器138的程度或其它类似的因子加权在平均值中。然后,单个旋转因子可以用作输入至在系统100B中运行的程序的输入。
如上所述,姿势识别系统(例如,示于图1A的系统100)使用一个或多个摄像机102、104捕获诸如手114的对象的图像;该对象可以使用一个或多个光源108、110照明。对象检测模块152检测对象,姿势的识别模块156检测使用对象做出的姿势。一旦检测到,姿势就被输入到电子装置,所述电子装置可以以不同的方式(例如,操纵虚拟对象)使用姿势。然而,可能会检测许多不同种类的姿势,在电子装置上运行的应用程序可能不使用或不需要每个检测到的姿势。传送不被使用的姿势给应用程序可能会造成不必要的复杂性和/或消耗不必要的应用程序和姿势识别模块156之间的链接的带宽。
在一种实施方式中,仅姿势识别模块156所捕获姿势的一个子集被传送给在电子装置上运行的应用程序。如图1A中所示,所识别的姿势可以从姿势识别模块156传送给姿势过滤器158,并基于所述姿势的一个或多个特性进行过滤。通过过滤器158的标准姿势被传送给应用程序,没有通过过滤器的姿势不被传送和/或被删除。姿势过滤器158被示为存储器134中的独立模块,但是公开的技术并不局限于此实施方式;过滤器158的功能可以全部或部分地结合到姿势识别模块156中。在不同实施方式中,姿势识别模块156不考虑过滤器158的设置识别所有检测到的姿势,或者根据过滤器158的设置识别检测姿势的一个子集。
图6是示出根据所公开的技术的实施方式过滤姿势的方法的流程图600。在一种实施方式中,说明了在三维(3D)感觉空间中将关注的姿势与非关注的姿势区别开的方法。所述方法包括在动作652中接收限定一个或多个基准姿势的基准特性的输入,在动作654中,使用电子传感器检测三维(3D)感觉空间中的一个或多个实际姿势并使用来自电子传感器的数据确定实际特性,在动作656中,将实际姿势和基准姿势进行对比来确定一组关注的姿势,并在动作658将所述一组关注的姿势和相应的姿势参数提供给进一步的处理。
在一种实施方式中,当基准特性是姿势路径时,诸如横向挥动的直线路径的实际姿势被解释为一组关注的姿势。根据一种实施方式,当基准特性是姿势速度时,具有高速度的实际姿势被解释为一组关注的姿势。根据一种实施方式,当基准特性是姿势形态时,使用以特定的手指指向的手做出的实际姿势被解释为一组关注的姿势。根据一种实施方式,当基准特性是姿势形态时,握拳的手的实际姿势被解释为一组关注的姿势。
在另一种实施方式中,当基准特性是姿势的形状时,手竖起大拇指的实际姿势被解释为一组关注的姿势。根据一种实施方式,当基准特性是姿势长度时,挥动姿势被解释为一组关注的姿势。在又一种实施方式中,当基准特性是姿势的位置时,距所述电子传感器的距离小于阈值的实际姿势被解释为一组关注的姿势。当基准特性是姿势的持续时间时,在3D感觉空间中持续阈值时间周期的实际姿势,而非在3D感觉空间中持续的时间小于阈值时间周期的实际姿势被解释为一组关注的姿势。当然,可以在同一时间使用不止一个特性。
过滤器158的特性可被限定为适应特定的应用程序或一组应用程序。在不同实施方式中,特征可以从菜单界面接收、从命令文件或配置文件读取、经由API或任何其它类似的方法通信。过滤器158可以包括多个组的预配置特性,并允许用户或应用程序选择该多个组中的一个。过滤器特性的示例包括:姿势做出的路径(例如,过滤器158可以仅通过例如具有相对直的路径的姿势,而阻止具有曲线路径的姿势);姿势的速度(例如,过滤器158可以通过具有高速度的姿势,而阻止具有低速度的姿势);和/或姿势的方向(例如,过滤器可以通过具有左右运动的姿势,而阻止具有向前向后运动的姿势)。进一步的过滤器特性可基于形态、形状或做出姿势的对象的倾向;例如,过滤器158可以仅通过使用以特定的手指(例如,无名指)指向的手做出的姿势、握拳的手或张开的手。该过滤器158可以进一步仅通过用拇指向上或向下的姿势做出的姿势,例如用于投票应用程序。
由过滤器158进行的过滤可如下所述地实施。在一种实施方式中,由姿势识别模块156检测到的姿势被分配一组特性,每组特性包括一个或多个特性(例如,速度或路径),姿势和特性保持在数据结构中。过滤器158检测哪些被分配的特性满足其过滤特性,并通过与这些特性相关联的姿势。通过过滤器158的姿势可以经由API或经由类似的方法返回到一个或多个应用程序。可替代地或附加地,该姿势可以显示在显示器138上和/或在菜单(为,例如,实地教学IF应用程序)中。
如上所述,姿势识别模块156将所检测的对象的运动与已知的姿势的库进行对比,如果存在匹配,则返回匹配的姿势。在一种实施方式中,用户、程序员、应用程序开发者或其它用户限定的姿势补充、修改或替换已知姿势。如果姿势识别模块156识别出用户限定的姿势,则其通过API(或类似方法)将该姿势返回给一个或多个程序。在一种实施方式中,再次参考图1A,姿势设置模块160基于限定姿势的特性的输入屏蔽姿势的运动,并返回具有匹配特性的姿势的组。
用户限定的特性可以包括任何数量的各种不同的姿势的属性。例如,所述特性可以包括姿势的路径(例如,相对较直的、曲线的;圆形与刷动);姿势的参数(例如,最小或最大长度);姿势的空间特性(例如,所述姿势发生的空间区域);姿势的时间特性(例如,姿势的最小或最大持续时间);和/或姿势的速度(例如,最小或最大速度)。所公开的技术不局限于这些属性,姿势的任何其它属性都在所公开的技术的范围之内。
用户限定的姿势和预定的姿势之间的冲突可以以任何数量的方式解决。程序员可以例如指定应该忽略预定的姿势。在另一实施方式中,用户限定的姿势被确定优先于预定的姿势,使得如果姿势同时匹配二者,则返回用户限定的姿势。
在不同实施方式中,姿势训练系统帮助应用程序开发者和/或最终用户来限定自己的姿势和/或使得姿势适应自己的需求和喜好—换句话说,超出预先编程或者“封装”的姿势之外。姿势训练系统可以通过正常的语言(例如,一系列的问题)与用户进行交互,以更好地限定用户希望系统能够识别的动作。通过在预说明的安装过程回答这些问题,用户可以限定用于相应的姿势的参数和/或参数范围,从而解决模糊性。有利的是,这种方法提供了可靠的姿势识别,而不需要通常与需计算机猜测答案相关联的算法复杂性;因此,其有助于减少软件复杂性和成本。在一种实施方式中,一旦系统已被训练来识别特定姿势或动作,则其可以为这个姿势或动作创建一个对象(例如,文件、数据结构等),之后协助识别姿势或动作。该对象可以由应用编程界面(API)使用,并且可以由开发人员和非开发用户使用。在一些实施方式中,数据是由开发者和非开发者用户共享,或能够由其共享,从而有助于协作等。
在一些实施方式中,姿势训练是对话式的、互动和动态的;根据用户给出的响应,可以选择接下来的问题或者待指定的下一个参数。这些问题可以以视觉或音频形式(例如,作为显示在计算机屏幕上的文本,或者通过扬声器输出)呈现给用户。用户的响应同样可以以各种模式给出,例如通过键盘的文字输入、图形用户界面元件的选择(例如,使用鼠标)、语音命令,或者,在某些情况下通过该系统已经熟练识别的基本姿势。(例如,“拇指向上”或“拇指向下”姿势可以用于回答任何是和否的问题。)另外,如由以下示例示出的,某些问题引起动作(具体而言,进行示范性的姿势(例如,典型的姿势或姿势的范围的边界点))而不是口头答复。在这种情况下,该系统可以利用例如机器学习方法来精选来自摄像机的图像或捕获动作的视频流的相关信息。
图7是为特定用户定制姿势解释的方法的流程图700。在一种实施方式中,说明了为特定用户定制姿势解释的方法。所述方法包括:在动作752提示用户选择用于自由空间中的姿势的特性值并接收选择的特性值,在动作754提示用户在三维(3D)感觉空间中执行姿势的特性边界集中示范(characteristicfocuseddemonstrationofboundaries),在动作756,从由电子传感器捕获的边界集中示范确定姿势的一组参数,在动作758存储用于姿势识别的该组参数和相应的值。
所述方法还包括通过以下测试对特定姿势的解释:提示用户在3D感觉空间中做出特定姿势的完整姿势示范,从由电子传感器捕获的完整姿势示范确定特定姿势的一组参数,将特定姿势的该组参数与从边界集中示范确定的相应的一组参数和选择的特性值进行对比,并且在行动760向用户报告对比的结果,并接收对特定姿势的解释是否正确的确认信息。
所述方法还包括使用用于提示用户选择姿势的特性值的问卷。在一种实施方式中,使用问卷提示用户选择特性值包括:从用户接收姿势在3D感觉空间内的最小阈值时间段,在此之前不解释姿势。在另一实施方式中,执行特性边界集中示范包括用户使用特定手指做出手指向姿势作为姿势形态。执行特性边界集中示范还包括用户使用手做出握拳姿势作为姿势的形态。执行特性边界集中示范还包括用户使用手拇指向上或拇指向下的姿势作为姿势的形状。
在一种实施方式中,执行特性边界集中示范包括用户用手做出拇指向上或拇指向下的姿势作为姿势的形状。根据一种实施方式,执行特性边界集中示范包括用户做出捏合姿势以便设定最小姿势距离作为一姿势尺寸。在另一实施方式中,执行特性边界集中示范还包括用户做出挥动姿势以便设置最大姿势距离为一姿势尺寸。
在又一种实施方式中,执行特性边界集中示范包括用户做出手指轻弹的姿势以便设置最快的姿势运动。在一种实施方式中,执行特性边界集中示范包括用户做出挥动姿势以便设置最慢的姿势运动。执行特性边界集中示范包括用户做出横向扫动姿势以便设置直线姿势路径。根据一种实施方式,执行特性边界集中示范包括用户做出圆形扫动以便设置圆形姿势路径。
图8A、8B和8C示出了根据一种实施方式的用于示例性训练指导流程的一系列的问题和提示800A,800B,和800C。如图所示,在动作852和854,用户首先被询问在姿势中涉及了多少手和手指。然后,在动作856,系统通过询问姿势能占用的最大和最小时间量确定姿势的总的时间段。在动作858,对于最大时间量,设定较低的截止,如一秒。
在接下来的几个交互中,系统询问用户姿势的尺寸、速度和方向是否重要。在动作860,如果尺寸重要,要求用户示范的最小和最大合理动作。作为示范的结果,自动生成的识别器(即在训练期间基于用户输入创建的对象)可随后量化姿势的尺寸并计算标准化尺寸的姿势输出。相关的训练参数包括指示运动、路径、开始和停止点、弧长等参数和/或其组合,和/或从前述计算的参数。如果尺寸并不重要,则姿势总是被标准化并且不考虑尺寸。在这种情况下,相关的训练参数包括标准化运动参数(包括:例如,运动、路径、开始和停止点、弧长等和/或其组合,和/或从上述计算的参数)。
在动作862,如果速度重要,则请求用户示范最快和最慢的运动。从所观察的运动,系统可以安静地检查加速度范围。速度示范使得自动生成的识别器能输出速度(例如,基于时间变量速度沿着姿势的傅立叶变换,这允许在频率领域中识别数据的特性速度)。相关训练参数包括平移距离(如欧氏距离,即,(dx2+dy2+dz2)1/2)和持续时间窗口(即,姿势持续多久指示用于分析的相关时间跨度)。如果速度不重要,则姿势是速度标准化的。为了表征姿势的时间方面,时间转换为空间,也就是,使用统一的采样(例如,手的一个位置随着时间在一个方向上运动)。姿势然后被伸展、收缩,并匹配至模板来提取关于速度随着时间的推移信息。训练参数包括所得到的曲线的曲率和扭转。
在动作864,如果姿势的方向重要,则用户被要求示范各种合理和各种不合理的方向。结果,自动生成的识别器被启用,以输出以下信息:姿势是否正在被发出、确定性水平和/或错误、和/或运动参数(例如,运动、路径、开始和停止点、弧长,平移范围等和/或其组合,和/或从其组合计算的参数)。如果方向不重要,则训练参数是简单的曲率和扭转。
此外,在动作466,用户被要求决定是否应接收草率姿势应。如果接受,则系统要求用户示范非常草率但仍是可接受的姿势。否则,系统将尝试通过要求用户示范可以勉强接受的姿势和不能接受的姿势来确定什么是可以接受的界限。
最后,在动作868,在所有相关参数都在训练期间被设置后,测试系统的姿势识别能力。用户可能会被要求做出姿势(系统刚刚被训练识别的姿势,或其它姿势)。为指示姿势的开始和结束,用户可以按压例如键盘上的空格键。用户做出姿势之后,系统指示其是否将这个姿势识别为以前被训练过的,并请求用户确认或校正。该测试可以重复多次。可以组合(例如,取平均值等)多个成功的测试的结果或用户选择一个最好的结果。上述交互当然只是一个示例。其它实施方式可以以不同的次序询问问题或提示,和/或提示以不同的顺序,或询问附加的或不同的问题。
因而,本文说明的上述3D用户交互技术使用户能够通过简单地做出身体姿势来直观地控制和操纵电子装置和虚拟对象。因为姿势识别系统协助以高检测敏感度呈现姿势的重构3D图像,所以用于显示控制的动态的用户交互是实时获得,没有过度的计算复杂性。例如,用户可以动态地控制其实际运动与显示在屏幕上的相应的动作之间的关系。此外,该装置可以显示屏幕虚拟指示器,以实时反映用户的姿势的完成程度。因此,所公开的技术使得用户能够动态地与显示在屏幕上的虚拟对象进行交互,并且有利地增强了虚拟环境的真实感。
本文所使用的术语和表达用作说明性的术语和的表达,并非限制性的,并且在使用这些术语和表达时,不意在排除所示出和说明的特征的任何等同物或其一部分。此外,已经说明所公开的技术的某些实施方式,显而易见的是,本领域的普通技术人员认为,可以在不脱离所公开的技术的精神和范围的情况下使用结合本文所公开的概念的其它实施方式。因此,所说明的实施方式应在所有方面被认为是仅是说明性的而不是限制性。
具体实施方式
在一种实施方式中,说明了将三维(3D)感觉空间中的有意义的姿势与相近的无意义的姿势区别开的方法。所述方法包括:通过使用电子传感器检测3D感觉空间中的手臂和附着的手腕和手指的位置,当手臂在运动时,将手腕和手指的弯曲与手臂姿势的总轨迹区别开,从一系列检测的位置计算手臂做出的挥动姿势的空间轨迹,从检测的位置计算手腕和/或手指的弯曲姿势的空间轨迹,以及基于相应的空间轨迹的幅度决定挥动姿势是否主导弯曲姿势。手腕和手指弯曲指手指朝向和/或远离手腕的向内和/或向外运动。在另一实施方式中,手臂做出的挥动姿势是指手臂从一侧到另一侧的向内和/或向外的伸展。所述方法还包括触发对主导姿势的响应,而不触发对非主导姿势的响应。
所公开的技术的方法和其它实施方式可以包括一个或多个下述特征和/或与所公开的其它方法结合说明的一个或多个特征。为了简明起见,在本申请中公开的特征的组合不单独列举,并且不重复各基本组的特征。读者将理解,在本部分所述的特征可以如何容易地与识别为实施方式的多组基本特征相结合。
在一种实施方式中,挥动姿势的空间轨迹的幅度至少部分由做出挥动姿势时所横过的距离确定。在另一种实施方式中,弯曲姿势的空间轨迹的幅度至少部分地由手指的卷曲的程度(scaleofcurling)确定。
其它实施方式可以包括非临时性计算机可读存储介质,所述存储介质存储指令,所述指令能够由处理器执行以便执行上述任何方法。又一种实施方式可包括包含存储器和一个或多个处理器的系统,所述处理器可操作来执行存储在存储器中的指令以便执行上述任何方法的指令。
在另一种实施方式中,说明了区分源自于3D感觉空间中的单个对象的两个同时做出的姿势的方法。所述方法包括当手臂运动时通过以下将手腕和手指弯曲与手臂姿势的总轨迹区别开:使用电子传感器检测3D感觉空间中的手臂和附着的手腕和手指的位置,从一系列检测的位置计算手臂做出的挥动姿势的空间轨迹,其中,空间轨迹的幅度至少部分由做出挥动姿势时所横过的距离确定,计算手腕和/或手指的弯曲姿势的空间轨迹,其中,弯曲姿势的空间轨迹的幅度至少部分地由手指的卷曲的程度以及手指间的自由度确定,并且评估各空间轨迹的幅度并基于空间轨迹的幅度决定主导姿势。手腕和手指弯曲指手指朝向和/或远离手腕的向内和/或向外运动。在另一实施方式中,手臂做出的挥动姿势是指手臂从一侧到另一侧的向内和/或向外的伸展。所述方法还包括根据主导姿势触发对总轨迹的响应。
其它实施方式可以包括非临时性计算机可读存储介质,所述存储介质存储能够由处理器执行以执行上述任何方法的指令。又一种实施方式可包括包含存储器和一个或多个处理器的系统,所述处理器可操作来执行存储在存储器中的指令以便执行上述任何方法的指令。
在另一种实施方式中,说明了不考虑用户在3D感觉空间中的位置一致地响应用户的姿势输入的方法。所述方法包括通过以下来自动调整在物理空间中的姿势和姿势界面中所导致的响应的缩放比例:计算控制对象距电子联接至姿势界面的摄像机的距离,基于控制对象距摄像机的距离来将摄像机视野中的运动所横过的视角(apparentangle)按比例缩放至按比例缩放的运动距离,并自动调整响应与反映物理空间中的姿势的按比例缩放的运动距离而不是横过的视角的比例。
所公开的技术的方法和其它实施方式可以包括一个或多个下述特征和/或与所公开的其它方法结合说明的一个或多个特征。
所述方法还包括:当横过的视角低于阈值时,降低姿势界面的屏幕虚拟响应。所述方法还包括:当横过的视角高于阈值时,增大姿势界面的屏幕虚拟响应。
其它实施方式可包括非临时性计算机可读存储介质,所述存储介质存储能够由处理器执行以执行上述任何方法的指令。又一种实施方式可包括包含存储器和一个或多个处理器的系统,所述处理器可操作来执行存储在存储器中的指令以便执行上述任何方法的指令。
在另一种实施方式中,说明了调整3D感觉空间中的姿势界面的虚拟对象的响应的方法。所述方法包括通过以下调整物理空间中的姿势和姿势界面中的所导致的虚拟对象的响应之间的响应比例:基于所述虚拟对象的数量计算姿势界面的虚拟对象的密度,并且,响应姿势界面中的虚拟对象的密度,自动调整虚拟对象的屏幕虚拟响应与姿势的比例。
所公开的技术的方法和其它实施方式可以包括一个或多个下述特征和/或与所公开的其它方法结合说明的一个或多个特征。
所述方法还包括:当内容密度高于阈值时,响应特定姿势,自动指定虚拟对象的低屏幕虚拟响应。所述方法还包括:当内容密度低于阈值时,响应特定姿势,自动指定虚拟对象的高屏幕虚拟响应。
在另一种实施方式中,说明了在3D感觉空间中一致地响应来自多个用户的姿势输入的方法。所述方法包括通过以下来自动调整来自多个用户的物理空间中的姿势和在分享的姿势界面中所导致的响应之间的响应比例:基于在3D感觉空间检测的用户的间隔计算3D感觉空间中的用户间隔,并且当解释物理空间中的姿势的运动距离时,响应用户间隔,自动调整分享的姿势界面的屏幕虚拟响应的比例。
其它实施方式可以包括非临时性计算机可读存储介质,所述存储介质存储指令,所述指令能够由处理器执行以便执行上述任何方法。又一种实施方式可包括包含存储器和一个或多个处理器的系统,所述处理器可操作来执行存储在存储器中的指令以便执行上述任何方法的指令。
在又一种实施方式中,说明了检测用户是否打算与在3D感觉空间中的虚拟对象进行交互的方法。所述方法包括:使用电子传感器检测3D感觉空间中的手指的点击姿势,并根据点击姿势的完成程度确定是否将点击姿势解释为与3D感觉空间中的虚拟对象进行交互。手指的点击姿势是指手指的向下或向上伸展而不同的手指保持伸展或卷曲。所述确定包括:计算手指做出点击姿势时横过的距离,访问姿势数据库以确定所计算的对应于点击姿势的距离的姿势完成值,并将点击识别为响应超过阈值的姿势完成值操纵虚拟对象。
所公开的技术的方法和其它实施方式可以包括一个或多个下述特征和/或与所公开的其它方法结合说明的一个或多个特征。
在一种实施方式中,姿势数据库包括不同的姿势的轨迹和相应的姿势完成值。在另一实施方式中,所述方法还包括通过将点击姿势的空间轨迹与存储在姿势数据库中的至少一个空间轨迹进行对比来计算点击姿势的完成程度。它也包括通过以下来测量点击姿势的完成程度:将做出点击姿势关联至代表虚拟控制的界面元件,并在做出点击姿势时实时修改界面元件。在又一种实施方式中,所述方法还包括空心圆形图标作为界面元件,并通过响应点击姿势逐渐填充圆形图标来实时修改图标。
其它实施方式可包括非临时性计算机可读存储介质,所述存储介质存储能够由处理器执行以执行上述任何方法的指令。又一种实施方式可包括包含存储器和一个或多个处理器的系统,所述处理器可操作来执行存储在存储器中的指令以便执行上述任何方法的指令。
在一种实施方式中,说明了检测用户是否打算与在3D感觉空间中的虚拟对象进行交互的方法。所述方法包括:使用电子传感器检测3D感觉空间中的手指的点击姿势,响应检测点击姿势,激活显示点击姿势的完成程度的屏幕虚拟指示器,并响应超过阈值的点击姿势的完成程度,修改虚拟对象。手指的点击姿势是指手指的向下或向上伸展而不同的手指保持伸展或卷曲。
其它实施方式可包括非临时性计算机可读存储介质,所述存储介质存储指令,所述指令能够由处理器执行以便执行上述任何方法。又一种实施方式可包括包含存储器和一个或多个处理器的系统,所述处理器可操作来执行存储在存储器中的指令以便执行上述任何方法的指令。
在另一种实施方式中,说明了操纵在3D感觉空间中的虚拟对象的方法。所述方法包括:响应手指在3D感觉空间中的点击姿势,选择姿势界面的虚拟对象,并在保持选择所述虚拟对象的同时检测手指在3D感觉空间中随后的指向姿势,并计算指向姿势的作用力矢量。手指的点击姿势是指手指的向下或向上伸展而不同的手指保持伸展或卷曲。在另一实施方式中,作用力矢量的幅度是基于手指做出指向姿势时横过的距离以及在做出指向姿势期间手指的速度。所述方法还包括:当作用力矢量的幅度超过阈值时,将作用力矢量施加在虚拟对象上,并修改虚拟对象。
所公开的技术的方法和其它实施方式可以包括一个或多个下述特征和/或与所公开的其它方法结合说明的一个或多个特征。
在一种实施方式中,修改虚拟对象包括改变虚拟对象的形状。在另一种实施方式中,修改虚拟对象包括改变虚拟对象的位置。
其它实施方式可包括非临时性计算机可读存储介质,所述存储介质存储能够由处理器执行以执行上述任何方法的指令。又一种实施方式可包括包含存储器和一个或多个处理器的系统,所述处理器可操作来执行存储在存储器中的指令以便执行上述任何方法的指令。
在另一种实施方式中,说明了3D感觉空间中创建界面元件的方法。所述方法包括:使用电子传感器检测3D感觉空间中的手指的圆形扫动,检测3D感觉空间中的手指的随后的横向扫动,并响应随后的横向扫动,指示(register)按压屏幕虚拟按钮,并执行至少一个相关联的功能。手指的圆形扫动指手指在自由空间中顺时针或逆时针运动。在另一实施方式中,手指的横向扫描指手指的指尖指向屏幕控制时手指的向前或向后运动
所公开的技术的方法和其它实施方式可以包括一个或多个下述特征和/或与所公开的其它方法结合说明的一个或多个特征。
在一种实施方式中,相关联的功能是基于所述姿势界面的上下文选择。在另一实施方式中,相关联的功能是基于姿势界面上的屏幕虚拟按钮的位置选择。所述方法还包括:如果不低于阈值比例的横向扫动运动是在手指指向的方向上,则将横向扫动解释为左击鼠标。所述方法还包括:如果不低于阈值比例的横向扫动运动是在与手指指向相反的方向上,则将横向扫动解释为右击鼠标。
其它实施方式可包括非临时性计算机可读存储介质,所述存储介质存储指令,所述指令能够由处理器执行以便执行上述任何方法。又一种实施方式可包括包含存储器和一个或多个处理器的系统,所述处理器可操作来执行存储在存储器中的指令以便执行上述任何方法的指令。
在另一种实施方式中,说明了在3D感觉空间中创建界面元件的方法。所述方法包括检测3D感觉空间中的双手指竖直扫动,响应双手指竖直扫动在姿势界面构建竖直滑块,检测所述3D感觉空间中靠近所述竖直滑块的随后的手指竖直扫动,和响应手指竖直扫动滚动竖直滑块,并执行至少一个相关联的功能。双手指竖直扫动指两个手指手在自由空间中向上或向下运动而手的其它手指卷曲。在另一实施方式中,一个手指竖直扫动指手的手指在自由空间中向上或向下运动而手的其它手指卷曲。
所公开的技术的方法和其它实施方式可以包括一个或多个下述特征和/或与所公开的其它方法结合说明的一个或多个特征。
在一种实施方式中,相关联的功能是基于所述姿势界面的上下文选择。在另一实施方式中,相关联的功能是基于所述姿势界面上的竖直滑块的位置选择。
在又一种实施方式中,说明使用在3D感觉空间中的自由姿势操纵灰度选择小部件的方法。所述方法包括通过以下将灰度选择小部件关联至屏幕虚拟圆盘:响应屏幕虚拟圆盘运动,修改灰度选择小部件上的灰度值。其包括:响应使用电子传感器检测的3D感觉空间中的手指点击,改变所述屏幕虚拟圆盘的位置,并在对应于屏幕上的圆盘的x或y位置的灰度选择小部件上选择特定的灰度值。手指姿势指第一指在相对于第二手指的限制位置中,随后第二手指快速运动远离食指。
其它实施方式可包括非临时性计算机可读存储介质,所述存储介质存储指令,所述指令能够由处理器执行以便执行上述任何方法的指令。又一种实施方式可包括包含存储器和一个或多个处理器的系统,所述处理器可操作来执行存储在存储器中的指令以便执行上述任何方法的指令。
在又一种实施方式中,说明使用在3D感觉空间中的自由姿势操纵姿势界面的多个控制的方法。所述方法包括通过以下将显示器设置和灰度选择小部件关联至屏幕虚拟圆盘:响应屏幕虚拟圆盘运动,修改显示器设定小部件上的亮度值和灰度选择小部件上的灰度值。其包括:响应使用电子传感器检测的3D感觉空间中的手指点击,改变所述屏幕虚拟圆盘的位置,并选择对应于屏幕上的圆盘的x或y位置的特定的亮度值和灰度值。
其它实施方式可包括非临时性计算机可读存储介质,所述存储介质存储指令,所述指令能够由处理器执行以便执行上述任何方法。又一种实施方式可包括包含存储器和一个或多个处理器的系统,所述处理器可操作来执行存储在存储器中的指令以便执行上述任何方法的指令。
在又一种实施方式中,说明了在3D感觉空间中创建界面元件的方法。所述方法包括:使用电子传感器检测3D感觉空间中的手指的圆形扫动,响应圆形扫动,在姿势界面中构建屏幕虚拟圆盘,检测3D感觉空间中的手指的随后的漩涡扫动,并响应随后的涡旋扫动,旋转圆盘,并执行至少一个相关联的功能。手指的圆形扫动指手指在自由空间中顺时针或逆时针运动。在另一实施方式中,手指的漩涡运动指手指在自由空间中重复做出顺时针或逆时针运动并结合有手指的向上或向下的运动。
其它实施方式可包括非临时性计算机可读存储介质,所述存储介质存储指令,所述指令能够由处理器执行以便执行上述任何方法。又一种实施方式可包括包含存储器和一个或多个处理器的系统,所述处理器可操作来执行存储在存储器中的指令以便执行上述任何方法的指令。
在一种实施方式中,说明了在三维(3D)感觉空间中将关注的姿势与非关注的姿势区别开的方法。所述方法包括接收限定一个或多个基准姿势的基准特性的输入,使用电子传感器检测三维(3D)感觉空间中的一个或多个实际姿势并使用来自电子传感器的数据确定实际特性,将实际姿势和基准姿势进行对比来确定一组关注的姿势,并将一组关注的姿势和相应的姿势参数提供给进一步的处理。
所公开的技术的方法和其它实施方式可以包括一个或多个下述特征和/或与所公开的其它方法结合说明的一个或多个特征。为了简明起见,在本申请中公开的特征的组合不单独列举,并且不重复各基本组的特征。读者将理解,在本部分所述的特征可以如何容易地与识别为实施方式的多组基本特征相结合。
在一种实施方式中,当基准特性是姿势路径时,直线路径的实际姿势(如横向挥动)被解释为一组关注的姿势。根据一种实施方式,当基准特性是姿势速度时,具有高速度的实际姿势被解释为一组关注的姿势。根据一种实施方式,当基准特性是姿势形态时,使用以特定的手指指向的手做出的实际姿势被解释为一组关注的姿势。当基准特性是姿势形态时,根据一种实施方式握拳的手的实际姿势被解释为一组关注的姿势。
在另一种实施方式中,当基准特性是姿势的形状时,手竖起大拇指的实际姿势被解释为一组关注的姿势。根据一种实施方式,当基准特性是姿势长度时,挥动姿势被解释为一组关注的姿势。在又一种实施方式中,当基准特性是姿势的位置时,距所述电子传感器的距离小于阈值的实际姿势被解释为一组关注的姿势。当基准特性是姿势的持续时间时,在3D感觉空间中持续阈值时间周期的实际姿势,而非在3D感觉空间中持续的时间小于阈值时间周期的实际姿势被解释为一组关注的姿势。
其它实施方式可包括非临时性计算机可读存储介质,所述存储介质存储能够由处理器执行以执行上述任何方法的指令。又一种实施方式可包括包含存储器和一个或多个处理器的系统,所述处理器可操作来执行存储在存储器中的指令以便执行上述任何方法的指令。
在另一种实施方式中,说明为特定用户定制姿势解释的方法。所述方法包括:提示用户选择用于自由空间中的姿势的特性值并接收选择的特性值,提示用户在三维(3D)感觉空间中执行姿势的特性边界集中示范,从由电子传感器捕获的边界集中示范确定姿势的一组参数,并存储用于姿势识别的该组参数和相应的值。
所公开的技术的方法和其它实施方式可以包括一个或多个下述特征和/或与所公开的其它方法结合说明的一个或多个特征。
所述方法还包括使用用于提示用户选择姿势的特性值的问卷。在一种实施方式中,使用问卷提示用户选择特性值包括从用户接收姿势在3D感觉空间内的最小阈值时间段,在此之前不解释姿势。在另一实施方式中,执行特性边界集中示范包括用户使用特定手指做出手指向姿势作为姿势形态。执行特性边界集中示范还包括用户使用手做出握拳姿势作为姿势的形态。执行特性边界集中示范还包括用户使用手拇指向上或拇指向下的姿势作为姿势的形状。
在一种实施方式中,执行特性边界集中示范包括用户用手做出拇指向上或拇指向下的姿势作为姿势的形状。根据一种实施方式,执行特性边界集中示范包括用户做出捏合姿势以便设定最小姿势距离作为一姿势尺寸。在另一实施方式中,执行特性边界集中示范还包括用户做出挥动姿势以便设置最大姿势距离为一姿势尺寸。
在又一种实施方式中,执行特性边界集中示范包括用户做出手指轻弹的姿势以便设置最快的姿势运动。在一种实施方式中,执行特性边界集中示范包括用户做出挥动姿势以便设置最慢的姿势运动。执行特性边界集中示范包括用户做出横向扫动姿势以便设置直线姿势路径。根据一种实施方式,执行特性边界集中示范包括用户做出圆形扫动以便设置圆形姿势路径。
所述方法还包括通过以下测试对特定姿势的解释:提示用户在3D感觉空间执行特定姿势的完整姿势示范,从由电子传感器捕获的一组特定姿势确定特定姿势的一组参数,将特定姿势的该组参数与从边界集中示范确定的响应的一组参数和选择的特性值进行对比,并且向用户报告对比的结果并接收对特定姿势的解释是否正确的确认信息。
其它实施方式可包括非临时性计算机可读存储介质,所述存储介质存储指令,所述指令可以由处理器执行,以便执行上述任何方法。又一种实施方式可包括包含存储器和一个或多个处理器的系统,所述处理器可操作来执行存储在存储器中的指令以便执行上述任何方法的指令。
在另一个方面,一种识别姿势的机器实施的方法包括:提示输入在自由空间中广泛地限定姿势的一个或多个特性,将信息传送给机器(无论是否有表面接触),接收一个或多个输入特性,从所接收的输入确定限定姿势的一组训练参数,提示输入所述姿势的至少一个示例,从姿势的至少一个示例确定对应于该组的训练参数的一组值,并将该组值提供给存储器用于识别姿势。所述方法可包括:存储一组对象参数,所述一组对象参数限定至少一个对象并与姿势相关联,所述至少一个对象可显示在无接触的显示器上。
从姿势的至少一个示例确定对应于该组的训练参数的一组值可以包括:至少部分基于一个或多个特性确定是否标准化所述一组训练值中的至少一个,并可选地,至少部分基于一个或多个特性确定是否忽视所述一组训练值中的至少一个(其可以包括指示所述姿势的尺寸是否重要信息)。限定姿势的该组训练参数还可以包括限定姿势的至少一个运动的至少一个参数。提示输入所述姿势的至少一个示例可以包括提示输入最小的合理的运动或提示输入最大合理运动。
在另一个方面,所公开的技术涉及非临时性计算机可读介质,所述介质存储一个或多个指令,当由一个或多个处理器执行时,所述一个或多个指令使得所述一个或多个处理器执行以下步骤:提示输入在自由空间中广泛地限定姿势的一个或多个特性,将信息传送给机器(无论是否有表面接触),接收一个或多个输入特性,从所接收的输入确定限定姿势的一组训练参数,提示输入所述姿势的至少一个示例,从姿势的至少一个示例确定对应于该组的训练参数的一组值,并将该组值提供给存储器用于识别姿势。
在另一个方面,所公开的技术涉及控制用户与装置的动态交互的方法。在代表性的实施方式中,所述方法包括捕获用户的多个时间连续的图像;计算分析所述用户的图像来识别用户的姿势,并识别与其相关的缩放比例,所述缩放比例指示在做出姿势时横过的实际姿势距离;计算确定缩放比例和显示的运动之间的比例,所述显示的运动对应于待显示在装置上的动作;基于比例将动作显示在装置上,并基于外部参数调整比例。外部参数可以是实际姿势距离,或者是对应于做出的动作的所捕获的图像中的像素距离和以像素为单位的显示屏尺寸的比例。
在不同实施方式中,分析用户的图像包括:(i)识别形状和图像中的一个或多个人体部位的位置,和(ii)基于图像中识别的身体部位的形状和位置之间的关系重构人体部位在3D空间中的位置和形状。在一种实施方式中,分析用户的图像还包括:在3D空间中,依时间次序组合所述身体部位的重构位置和形状。另外,所述方法可以包括限定身体部位的3D模型和基于所述3D模型在3D空间中重构身体部位的位置和形状。
可以通过将姿势与姿势数据库中的记录进行对比来识别缩放比例,姿势数据库可以包括各自将姿势与输入参数相关联的一系列电子存储记录。此外,该姿势可以作为矢量存储在记录中。
在另一个方面,所公开的技术涉及一种使用户与具有显示屏的装置进行动态交互的系统。在不同实施方式中,该系统包括朝向视场的一个或多个摄像机;一个或多个源,所述源将照明引入视场中的用户;姿势数据库,所述姿势数据库包括一系列电子存储记录,每个记录将一个姿势与输入参数相关联;以及联接到摄像机和数据库中的图像分析仪。在一种实施方式中,图像分析仪被配置成操作所述摄像机捕获用户的多个时间连续的图像,分析用户的图像以识别由用户做出的姿势,并且将所识别的姿势与姿势数据库记录进行对比来识别与其相关联的输入参数;输入参数对应于一个动作,所述动作根据在做出姿势时横过的实际姿势距离与对应于该动作的显示的运动之间的比例显示在显示器上,图像分析仪基于外部参数调整该比例。
图像分析仪可以进一步被配置为(i)识别用户图像中的人体的一个或多个部位的形状和位置和(ii)基于图像中的身体部位的识别的形状和位置之间的关系重构人体部位在3D空间中的位置和形状。另外,图像分析仪可以被配置为限定3D模型,并基于3D模型重构人体部位在3D空间中的位置和形状。在一种实施方式中,图像分析仪被配置为:估计3D空间中的身体部位的轨迹。
外部参数可以是实际姿势距离,或者是对应于所做出的姿势在所捕获的图像中的像素距离与以像素为单位的显示屏尺寸的比例。每个姿势可以具有不同的比例,这些不同的比例存储在数据库的各姿势记录中;或者,姿势数据库中的所有姿势可以具有相同的比例。
所公开的技术的另一个方面涉及动态显示用户与装置的交互的方法。在代表性的实施方式中,所述方法包括(i)捕获用户的多个时间连续的图像,(ⅱ)计算分析所述用户的图像来识别用户的姿势,(ⅲ)将所识别的姿势与姿势数据库中的记录进行对比以识别的姿势,(ⅳ)计算确定所识别的姿势的完成程度,以及(v)根据确定的完成程度修改装置的显示内容。内容可以包括图标、条、颜色渐变或色彩亮度。
在不同实施方式中,所述方法包括重复动作(ⅰ)-(ⅴ),直到完成程度超过预定阈值,然后使所述装置进行完成触发动作。在一种实施方式中,分析用户的图像包括:识别用户图像中人体的一个或多个部位的形状和位置。在一些实施方式中,所述方法还包括:根据物理模拟模型并基于姿势完成程度显示响应姿势的动作。内容可以包括图标、条、颜色渐变或色彩亮度。
在另一个方面,所公开的技术涉及一种用户与具有显示屏的装置的动态交互系统。在某些实施方式中,该系统包括朝向视场的一个或多个摄像机;一个或多个源,所述源(例如光源和/或声源)将照明引入视场中的用户;姿势数据库,所述姿势数据库包括一系列电子存储记录,每个记录指定一个姿势;以及联接到摄像机的图像分析仪。在一种实施方式中,图像分析仪被配置成操作所述摄像机捕获用户的多个时间连续的图像,分析用户的图像以识别用户的姿势,并且将所识别的姿势与姿势数据库的记录进行对比来识别姿势,确定所识别的姿势的完成程度,并在装置的屏幕上显示反应所确定的完成程度。指示器可以包括图标、条、颜色渐变或色彩亮度。
在不同实施方式中,图像分析仪被配置成确定完成程度是否超过预定阈值,如果完成程度超过预定阈值,则使该装置进行完成触发(completion-triggered)的动作。图像分析仪可以进一步被配置为根据物理模拟模型并基于姿势完成程度显示响应姿势的动作。所显示的动作可进一步基于运动模型。
公开的技术的又一个方面涉及一种控制用户与装置的动态交互的方法。在代表性的实施方式中,所述方法包括捕获用户的多个时间连续的图像,计算分析用户的图像,以识别多个用户的姿势,计算确定主导姿势,并基于主导姿势将动作显示在装置上。
主导姿势可通过过滤所述多个姿势来确定。在一种实施方式中,过滤被迭代地执行。此外,每个所述姿势可以被代表为一个轨迹。在一些实施方式中,每个轨迹可以代表为沿着欧拉空间中的六个欧拉自由度的矢量,并且具有最大幅度的示例被确定为主导姿势。
在不同实施方式中,分析所述用户的图像包括:(i)识别用户的图像中的人体的一个或多个部位的形状和位置和(ii)基于图像中的识别的身体部位的形状和位置之间的关系重构人体部位在3D空间中的位置和形状。在一种实施方式中,方法还包括限定身体部位的3D模型,并基于3D模型重构人体部位在3D空间中的位置和形状。分析用户的图像包括在3D空间中依时间次序组合所述身体部位的重构位置和形状。
在另一个方面,公开的技术涉及一种控制用户与装置的动态交互的系统。在不同实施方式中,该系统包括朝向视场的一个或多个摄像机;一个或多个源,所述源(例如光源和/或声源)将照明引导至视场中的用户;姿势数据库,所述姿势数据库包括一系列电子存储记录,每个记录指定一个姿势;以及联接到摄像机和数据库的图像分析仪。在一种实施方式中,图像分析仪被配置成操作所述摄像机捕获用户的多个时间连续的图像,分析用户的图像以识别多个用户姿势,确定主导姿势,并基于主导姿势将动作显示在装置上。
图像分析仪可被进一步配置成通过过滤所述多个姿势来确定主导姿势。在一种实施方式中,过滤被迭代地执行。此外,图像分析仪可以配置成将每个姿势代表为一个轨迹。每个轨迹可以被代表为沿着欧拉空间中的六个欧拉自由度的矢量,并且具有最大的幅度的示例被确定为主导姿势。
在一个方面,控制用户与装置的动态交互的方法包括:捕获用户的多个时间连续的图像,计算分析所述用户的图像的子集,以便识别用户的与屏幕虚拟圆盘的位置相接触的姿势,计算分析所述用户的图像的又一个子集,以便识别用户的使屏幕虚拟圆盘运动至新位置的姿势,根据圆盘的新位置修改软件应用程序的参数。
圆盘可以是圆形、方形或三角形;参数可以是色彩,滑动圆盘可改变颜色。识别用户的滑动屏幕虚拟圆盘的姿势可以包括:姿势在修改参数之前超过阈值距离。圆盘可在用户姿势停止接触圆盘之后继续运动一段时间。圆盘可在用户姿势停止接触圆盘之后弹回固定位置。用户的图像的子集可以被计算分析,以便识别用户的创建用户界面元件的命令的姿势。姿势可以是圆周运动,两个手指横向运动,或用户手指的向前或反向运动,用户界面元件的运动分别可以是按钮,滑块,或鼠标点击。
在另一个方面,使得用户能够与具有显示屏的装置进行动态交互的系统包括:朝向视场的摄像机;源,所述源将照明引导至视场中的用户;姿势数据库,所述姿势数据库包括一系列电子存储记录,每个记录将姿势与输入参数相关联。图像分析仪联接到摄像机,被配置为捕获用户的多个时间连续的图像,计算分析所述用户的图像的子集,以便识别用户的与屏幕虚拟圆盘的位置相接触的姿势,计算分析所述用户的图像的又一个子集,以便识别用户的使屏幕虚拟圆盘运动至新位置的姿势,根据圆盘的新位置修改软件应用程序的参数。
圆盘可以是圆形、方形或三角形;参数可以是色彩,滑动圆盘可改变颜色。识别用户的滑动屏幕虚拟圆盘的姿势可以包括:姿势在修改参数之前超过阈值距离。圆盘可在用户姿势停止接触圆盘之后继续运动一段时间。圆盘可在用户姿势停止接触圆盘之后弹回固定位置。用户的图像的子集可以被计算分析,以识别用户的创建用户界面元件的命令的姿势。姿势可以是圆周运动,两个手指横向运动,或用户手指的向前或反向运动,用户界面元件的运动分别可以是按钮,滑块,或鼠标点击。
在整个本说明书中对“实施例”、“示例”、“一个实施方式”或者“实施方式”的引用意味着与示例结合说明的特定特征、结构或特性被包括在本技术的至少一个示例中。因此,在整个说明书的不同的地方中出现的短语“在一个示例中”、“在示例中”、“一个实施方式”、或“一个实施”不一定都指代同一示例。此外,特定的特征、结构、程序、动作或特性可以以任何方式结合在本技术的一个或多个示例中。这里提供的标题仅用于方便,不旨在限制或解释权利技术的范围或含义。