采用拖延期的视频流的姿势预处理来减少平台功率的制作方法
【专利摘要】公开的技术用于处理视频流以通过采用分步的分布式流水线过程来减少平台功率,其中选择性地执行CPU密集处理。在一个示例情况下,这些技术在用户的计算机系统中实现,其中初始阈值检测部件(图像扰动)和用户存在(例如,手部图像)处理部件(可选地)接近或在系统的相机内,并且相机位于或接近系统的主显示器。阈值检测级和/或目标存在级可以在拖延期被选择性禁用。例如,拖延期可以在50到1000毫秒的范围中并且响应于系统的用户不可能作出导航姿势或系统没准备好处理视频的指示而被触发,因此通过避免没有导航姿势的视频帧的处理来保存功率。
【专利说明】采用拖延期的视频流的姿势预处理来减少平台功率
【背景技术】
[0001]最终用户的大多数计算机使用将最终用户连接到因特网,并且通过浏览接口发生。常见使用和活动包括例如基于搜索引擎的浏览、电子邮件、社交网络、内容消费(例如,新闻文章和视频观看)、内容共享(例如,照片、音乐等)、在线购物和购买、以及地图和方向,只列出一些。这样的常见因特网使用通常需要某个形式的基于用户的导航,例如典型地用鼠标或触摸板和关键词完成的导航。
[0002]在改进用户导航体验的努力中,已经产生基于姿势(gesture)的导航技术。特别地,用户手部运动可以由所谓的网络相机(webcam)记录并且转化成指针运动。结合网络相机操作的典型的基于姿势的导航应用能够模仿通常用常规鼠标或触摸板执行的动作:单击、双击、拖拉和滚动。用户还可使用头部运动来控制计算机或以其它方式影响导航。存在两个使用相机实现人体姿势的基本方法:使用具有所谓的标记的对象的姿势(其中在视场中部署的标记与相机传感器交互),以及无标记的姿势(例如无标记的手势)。可以使用典型用于大约3到5米(m)范围中的观察距离的三维或3D相机(具有Z深度),或典型用于在大约0.5m范围中的观察距离的两维或2D相机(从2D信息解释3D运动),来实现无标记的姿势技术。
[0003]计算环境(例如,桌上型计算机或工作站、膝上型计算机或平板计算机、或游戏控制台)中的图形处理通常需要多个复杂操作。这样的操作包括例如关于确保图像被适当并及时渲染的那些、以及关于姿势识别的那些。存在出现在这样的操作的上下文中的多个重要的问题。
【发明内容】
[0004]本发明一方面提供一种用于处理原始视频流的系统。该系统包括:阈值检测级,配置为确定所述视频流的当前帧是否充分不同于所述视频流的前一帧,并且响应于所述当前帧没有充分不同于所述前一帧,所述阈值检测级还配置为停止后续级对所述当前帧的进一步处理;以及目标存在级,配置为确定所述当前帧是否包括肤色颜色的(colored)像素,并且响应于所述当前帧不包括肤色颜色的像素,所述目标存在级还配置为停止后续级对所述当前帧的进一步处理;其中所述阈值检测级和/或目标存在级中的至少一个能够在拖延期(hold-off period)被选择性禁用。
[0005]本发明另一方面提供一种用于处理原始视频流的系统。该系统包括:阈值检测级,配置为确定所述视频流的当前帧是否充分不同于所述视频流的前一帧,并且响应于所述当前帧没有充分不同于所述前一帧,所述阈值检测级还配置为停止后续级对所述当前帧的进一步处理;目标存在级,配置为确定所述当前帧是否包括肤色颜色的像素,并且响应于所述当前帧不包括肤色颜色的像素,所述目标存在级还配置为停止后续级对所述当前帧的进一步处理;分割级,配置为接收来自所述当前帧的数据,并且将感兴趣的像素与不感兴趣的像素分开,其中感兴趣的像素被表示为二进制大对象(blob)并且不感兴趣的像素由非二进制大对象表示;手部分析器(parser)级,配置为执行从所述分割级接收的二进制大对象数据的空间解释;以及姿势识别级,配置为执行从所述手部分析器级接收的二进制大对象数据的时间解释并且识别用户基于手部的导航姿势;其中所述阈值检测级、目标存在级、分割级、分析器级和姿势识别级以分步的(St印ped)分布式布置进行配置,并且所述阈值检测级和/或所述目标存在级中的至少一个能够在拖延期被选择性禁用。
[0006]本发明又一方面提供一种使用原始视频流的计算机导航方法。该方法包括:在第一处理级处确定所述视频流的当前帧是否充分不同于所述视频流的前一帧,并且响应于所述当前帧没有充分不同于所述前一帧,停止后续级对所述当前帧的进一步处理;以及在第二处理级处确定所述当前帧是否包括肤色颜色的像素,并且响应于所述当前帧不包括肤色颜色的像素,停止后续级对所述当前帧的进一步处理;其中所述第一和第二处理级中的至少一个能够在拖延期被选择性禁用,所述拖延期在50到1000毫秒的范围中并且响应于没有作出导航姿势的指示而被触发,因此通过避免没有导航姿势的视频帧的处理来保存功率。
【专利附图】
【附图说明】
[0007]图1a根据本发明的实施例用图形图示用于实施视频流的姿势预处理来减少平台功耗的分步的分布式过程。
[0008]图1b根据本发明的实施例图示图1a中分步的分布式过程的流程图。
[0009]图2a根据本发明的实施例图示配置用于实施视频流的分步的分布式姿势预处理来减少平台功耗的系统的框图。
[0010]图2b根据本发明的实施例图示来自图2a中示出的系统的不同级(stage)的控制和数据流。
[0011]图2c根据本发明的实施例示出用于过程中每个的典型CPU利用(给定特定计算系统设置),并且因此示范可以通过使用视频流过程的分步的分布式姿势预处理而具有的改进潜力。
[0012]图3a根据本发明的实施例图示配置用于实施视频流的分步的分布式姿势预处理来减少平台功耗的计算系统的示例使用情形。
[0013]图3b-图3e根据本发明的实施例各自图示相机和GP电路的示例布置。
[0014]图4根据本发明的实施例图示配置用于实施视频流的分步的分布式姿势预处理来减少平台功耗的计算系统的框图。
[0015]图5根据本发明的另一实施例图示配置用于实施视频流的分步的分布式姿势预处理来减少平台功耗的计算系统的框图。
[0016]图6根据本发明的另一实施例图示配置用于实施视频流的分步的分布式姿势预处理来减少平台功耗的计算系统的框图。
[0017]图7根据本发明的实施例图示可以减少多少平台功耗的示例。
[0018]图8根据本发明的另一实施例图示配置用于实施视频流的分步的分布式姿势预处理来减少平台功耗的应用编程接口(API)的框图。
[0019]图9图示根据本发明的实施例配置的媒体系统。
[0020]图10图示根据本发明的实施例配置的移动计算系统。【具体实施方式】
[0021]公开的技术用于通过采用分步的分布式流水线(pipeline)过程来处理视频流以减少平台功率,其中选择性地执行CPU密集处理。根据一些实施例,这些技术特别地适用于视频流的有效的基于手部的导航姿势处理。该过程的分步的分布式特性允许减小在图像处理之前将图像数据从给定相机传递到存储器所需的功率。在一个示例情况下,例如,在用户的计算机系统中实现这些技术,其中初始阈值检测(图像扰动)部件和用户存在(手部图像)处理部件(可选地)接近或在系统的相机内,并且相机位于或接近系统的主显示器。这些技术还可包括当用户摆姿势的手部忙于一些其它用户活动(例如,键盘、鼠标或触摸屏活动)时,通过在姿势预处理期间选择性地引入拖延期来减少图像处理。当计算机系统检测到这样的活动时,可以安全地推断基于手部的导航摆姿势未被同时实施,并且因此图像处理可以在那些无姿势期期间以及在随后简短的拖延期(例如,50到1000毫秒(mSec)、或50到500毫秒、或50到100毫秒)停止,拖延期通常反映用户将他/她的手部从鼠标/键盘/屏幕位置移回到通常实施基于手部的导航摆姿势的中间位置所花费的时间段。这样的停止可以被选择性地使用,例如只当计算机系统在电池或以其它方式受限的功率上操作时。例如,计算机系统可以是具有在系统内部和/或外部的显示器和相机的任何移动或固定计算系统。在一些情况下,这个中间位置的定位可以是用户可配置的。
[0022]一般概沭
如先前解释的,存在出现在图形处理的上下文中的多个重要的问题,特别是关于姿势识别。例如,执行姿势识别的典型2D和3D视频图像处理的工作量消耗相对大量的输入/输出(IO)功率,并且对中央处理单元(CPU)利用和平台热设计功率(有时被称作TDP)预算作出最大贡献(max out)。在相机“总是打开”并提供图像用于处理并且因此即使在视觉图像内没有相关事情发生也消耗功率的应用中,这样的问题加剧了。例如,捕获图像信息并且将它推送到CPU用于处理可以轻易消耗超过10瓦,即使对于简单姿势或以其它方式在计算上简单的任务。大多数图像处理工作量通常包括在计算上更复杂的任务并且以可用的最大视频处理能力或接近可用的最大视频处理能力来操作,并且内在地由CPU利用和功率预算限制。因此,图像处理应用可以消耗所有可用的CPU周期,不留下或以其它方式留下不充分的CPU处理能力用于其它应用。相机功率本身是在图像处理之前将图像数据从相机传递到存储器所需的视频捕获功率(包括平台控制器中心、CPU、和存储器功率)的相对小的部分。图像处理算法由这些因素有效地自我限制并且将消耗多得多的功率(如果它可用)。例如,典型的算法将帧速率自我限制到15帧每秒(FPS),当更好的识别将以更高的FPS发生时。因此,有可能可以用视频图像处理来消耗最大平台功率,即使当没有将被分析的感兴趣的影像(imagery)(例如,摆姿势等)时。
[0023]因此,并且根据本发明的实施例,公开用于处理视频流来减少平台功率的技术。虽然可关于处理任何类型的视频内容来使用这些技术,但是根据一些实施例,它们特别适用于视频流的有效的基于手部的导航姿势处理。可以用分步的分布式方式来实现这些技术,使得极大减少在图像处理之前将图像数据从给定相机传递到存储器所需的功率。例如,在一个示例情况下,在用户的计算机系统中实现这些技术,其中预处理部件接近或位于系统的相机内,并且相机位于或接近系统的主显示器。在一些这样的实施例中,这些技术还包括通过在姿势预处理期间选择性地引入拖延期来减少图像处理。更详细地,当用户的手部忙于一些其它基于用户接口的活动(例如,基于键盘或鼠标或触摸屏的活动)时,可以识别没有基于手部的导航姿势的时期。当由计算机系统检测到这样的活动时,可以安全地推断基于手部的导航摆姿势未被同时实施,并且因此图像处理可以在无姿势期期间以及在随后简短的拖延期(例如,50到500毫秒)被停止,拖延期通常反映用户将他/她的手部从鼠标/键盘/屏幕移回到通常实施基于手部的导航摆姿势的中间位置所花费的时间段。这样的停止可被选择性地使用,例如只当计算机系统在电池功率上操作时。当在外部电源上操作时,则拖延期可以根据一些实施例而被设置为零来提供瞬时响应性,这是某些应用(例如,基于手势的游戏)期望的。
[0024]例如,计算机系统可以是膝上型计算机或上网本(其中显示器是翻盖(Iid)类型显示器)、或桌上型计算机或工作站计算机或游戏控制台(其中显示器是外部显示器)、或平板计算机或智能电话(其中显示器是用户接口和计算系统的壳体的完整部分)。例如,显示器可以是IXD或CRT、或触摸屏显示器,并且可与计算装置一体化(例如,平板计算机、膝上型计算机、移动电话)或在计算装置外部(例如,桌上型计算机、膝上型计算机或平板计算机)。例如,相机可以是单个2D相机或网络相机,虽然可使用任何合适的相机技术,包括3D相机或所谓的立体相机对,并且可与计算装置和/或显示器一体化或在外部。
[0025]根据一个示例实施例,预处理部件包括阈值检测级、目标存在级、分割级、手部分析器级和姿势识别级。阈值检测级通常配置为确定视频帧是否实际上是空的。如果帧不是空的或已经以有意义的方式从最后帧改变,则处理转到目标存在级,目标存在级配置为找到作为目标的像素颜色(具体地是颜色匹配肤色特性的像素)。如果找到充分的皮肤颜色的像素来暗示可能存在手指,则处理转到分割级,分割级配置为将感兴趣的像素与不感兴趣的像素分开并且因此可以作为自适应肤色检测级(肤色/非肤色边缘检测)操作。在一个示例配置中,这一级将彩色视频帧转换成二进制大对象(blob)图像,其可以被编码为单色或灰度级图像。二进制大对象用来表示皮肤颜色的像素的区域。根据一些示例实施例,这一级也配置成纠正相机噪声和照明差别,并且使用腐蚀和放大变形方法来平滑二进制大对象。
[0026]手部分析器级配置为执行由分割级产生的二进制大对象数据的空间解释,并且尝试将二进制大对象数据映射到人体解剖几何形状。根据实施例,相关性选择极大取决于使用情形和关于实施导航姿势的人的相机观看角度的假设。取决于场景,有时只需要边缘数据,有时需要填充的二进制大对象数据,并且有时需要有关节的手部模型。如将领会到的,取决于正被成像的主体部分的复杂性,解剖学上具体的分析可能难以概括并且因此难以放入固定功能件解决方案。然而,在这个使用情形中,可以在手部分析器级检测手指,例如通过分析手部二进制大对象的边缘。例如,手部分析器级可配置用于比较边缘的斜率来识别峰值(指尖)的位置。根据一些示例实施例,拇指和食指可以位于手部二进制大对象内,并且这些手指可以用作姿势识别任务的目标。姿势识别级配置为执行由手部分析器级生成的解剖/手部数据的时间解释。例如,如果姿势识别级用来检测鼠标等效的操作,则它可查找用户的指尖和/或手部的位置改变。
[0027]注意,不是所有这五个预处理级必须接近或在计算系统的相机内。也不是它们所有必须处于或接近计算系统的显示器来实现功率节省。例如,如将根据本公开所领会的,如果阈值检测级和目标存在级是在接近显示器的相机传感器中实现的仅有级,并且剩下的级被实现在CPU中(例如,作为又将讨论的姿势API的一部分),则这样的实施例仍然会实现可观的功率节省。而且,不同的使用模型可指示不同的实现策略。例如,可期望具有两个模式操作:用于因特网导航(涉及相对低复杂性姿势的更随意使用)的2D模式,以及用于更密集的应用(例如,可涉及相对高复杂性姿势的CAD操纵、Photoshop)的3D模式。在这样的实施例中,2D模式可全部在相机传感器中执行(以增加的相机成本为代价),而3D模式可在相机传感器中执行前两个或三个级并且然后将原始图像数据上传到姿势API用于由计算系统的CPU执行的姿势处理步骤(或将那个原始图像数据传到专用软件应用)。在2D和3D模式两者中,实现功率节省,尤其是当相机的视场(FOV)内没有出现感兴趣的事情时。
[0028]在一些实施例中,各种分步的分布式预处理部件到计算机系统的逻辑连接被实现为姿势应用编程接口(在下文中称为“姿势API”)。例如,根据一些实施例,姿势API可呈现为扩展的通用串行总线人接口(USB HID)类装置。一般而言,姿势API有效地暴露来自各种预处理级(阈值检测、目标存在、分割、手部分析器和姿势识别)的信息,以使这样的信息可以由计算系统的其它部分利用,如果这样期望的话。在一些实施例中,API还可被编程或以其它方式配置为包括安全/隐私政策以便防止例如来自视频流的不安全信息接入到计算系统的CPU或其它资源。
[0029]如将根据本公开领会的,本文提供的姿势预处理视频流技术可用于任何数量的应用,包括改进基于手势的因特网导航以及基于手势的计算机导航。可以应用这些技术的一个具体这样的应用是在大约0.5m的距离处使用2D相机的无标记手势识别。然而,这些技术可应用于包括基于3D的应用的许多其它应用,如果这样期望的话。根据本公开许多使用模型将是显而易见的,例如桌子或用户的膝部或公园长凳上的笔记本计算机或上网本、在家或办公室的具有一个或多个外部显示器的桌上型计算机或笔记本计算机或上网本、在工作/卧室环境中的桌上型计算机或笔记本计算机或上网本、咖啡馆桌上的笔记本计算机或上网本、会议室桌上的笔记本计算机或上网本、飞机托盘顶部上的笔记本计算机或上网本、以及因特网咖啡馆(例如,具有一个或多个外部显示器的桌上型计算机),只列出一些。
[0030]如将根据本公开进一步领会的,计算系统内视频处理任务的功耗应该理想地与从计算系统的相机传感器获取的原始图像数据的提取的等级相当。换句话说,原始图像数据消耗极小功率,增加地更多功率被消耗来将图像阈值化(thresho I d ),而更多功率被消耗来检测存在,等等。为此,根据实施例,预处理部件有效地实施分步的或渐进式操作序列,其中增加地更多功率消耗在行进中的每个级来生成视频流图像内的更高级的相关信息或意义。然而注意,一些实施例可具有一些比后面的级使用更多功率的中间级,并且要求保护的发明不旨在限于展现功耗的任何特定进展的级。例如,在一些实施例中,分割级比组合的其它四个级更计算密集。总的来说,预处理部件可以共同地并且有效地分析原始(未经压缩的)的视频流或视频流的子集,来确定视频流图像内的意义或相关性。例如,可以在硬件中(例如,诸如Verilog或VHDL的寄存器传递语言、或其它门级逻辑或专门建立的半导体)、或软件/固件中(例如,在微控制器中执行的微码)实现预处理部件。
[0031]系统架构
图1a根据本发明的实施例用图形图示用于实施视频流的姿势预处理来减少平台功耗的分步的分布式过程。如可以看出的,存在可以在计算系统的CPU和分布式性能原语之间被有效地划分的五个不同级别的数据提取。这些级别包括原始数据、阈值化、存在、命令、和识别。如可以进一步看到的,与数据提取的这些级别中的每个相关联的处理可以被实施在相机中(或其附近)、或在图形处理单元(GPU)硬件加速中、或在CPU上执行的应用软件中。如可以进一步看到的,在这些级别中的至少一些处的处理可以用拖延期来实现,当可以推断没有相关活动正在相机的FOV中发生时,拖延期可用于在适当的时刻有效地禁用在那个级别处的处理,如本文解释的。
[0032]例如,原始数据可以是编码的视频流或原始图像流。原始数据通常指示未经压缩的图像数据,然而编码的视频流通常被压缩。压缩算法通常用来通过低带宽通信信道拟合(f it)大量的数据,并且这通常在相机传感器硅内完成。数据压缩通常减少图像的保真度并且使图像处理更困难。在阈值化级别,可完成阈值化来检测图像中的扰动以便粗略地识别用户活动的存在。例如,这样的粗略识别将检测从没有用户出现的数据帧的流到有用户出现的数据帧的流的转换,如由用户运动(视频内容)和/或用户语音(音频内容)指示的。如在这个示例实施例中可以看到的,原始数据和阈值化级别中的每个可以在相机内或以其它方式接近相机而被处理。
[0033]一旦在阈值化级别处作出这样的粗略识别,则可以在存在级别处识别内容中具体用户特征的存在。例如,具体用户特征可包括用户的脸部和/或手部。如另外参考图1a中描绘的示例实施例可以看到的,处理的这个特定级别可在一些情况下在相机内或以其它方式接近相机而被实施,或在其它情况下由GPU作为加速过程来实施,这取决于涉及的图像分析的复杂性(例如,脸部分析可比手部分析更复杂)。
[0034]一旦作出具体用户特征出现在内容流中的这样的精确识别,则那些用户特征可以通常对于在命令级别处摆姿势被评定。例如,脸部和/或手部活动可以通常对于类似命令的姿势(如同运动的手部或头部转动)被评定。如另外参考图1a中描绘的示例实施例可以看到的,处理的这个特定级别可由GPU作为加速过程来实施。例如,在一些情况下,GPU可与CPU共处一地(co-locate),或可经由总线结构在操作上耦合到CPU。在后者情况下,GPU可以在与CPU相同的母板上,或可在母板外部(例如,在操作上耦合到母板的专用图形处理卡上,或在经由通信端口在操作上耦合到计算系统的外部图形处理装置上)。
[0035]一旦识别类似命令的姿势,则那个姿势可以对于在识别等级的特定命令被评定。例如,命令可以是用于指引用户正在执行的在线购物过程的用户导航命令。例如,关于视频内容,基于脸部的姿势可以经过(subject to)脸部识别,和/或基于手部的姿势可以经过分析来识别符合美国符号语言(ASL)的手势,以便识别给定命令。如另外参考图1a中描绘的示例实施例可以看到的,处理的这个特定级别可由CPU上执行的应用软件实施。
[0036]图1b根据本发明的实施例图示图1a的分步的分布式过程的流程图。如在这个示例实施例中可以看到的,视频相机用来生成给定计算机设置处的用户手部活动的原始图像数据。在其它实施例中,将被处理的视频内容可包括用户的脸部活动。如将根据本公开领会的,无论内容类型,本文提供的用于预处理媒体内容的分步的分布式技术可以按类似方式被等同地应用。
[0037]流程以从可包括一个或多个相机的传感器接收原始图像数据流媒体(streaming)开始。如果使用多于一个相机,则因此可以处理每个视频流,如本文所讨论的。如可以看到的,在这个示例实施例中的初始处理级别(阈值化和存在级别)可以在拖延期期间被选择性地禁用,如又将参考图2a解释的。为了图1b的这个描述的剩余部分的目的,假设启用在这些级别处的处理。
[0038]在阈值化级别处,分析视频流来检测视频流中的扰动。在一个示例实施例中,如果当前视频帧多于10%与前一视频帧不同,则可以发出检测信号。阈值可以从一个实施例到下一个而不同(例如,5%或者更多、或者50%或更多,等等),并且可以按期望的给定因素,例如为给定计算系统(使用情形)设置而正被观察的特定环境以及在那个环境/系统中改变的所期望的灵敏性程度),而设置。如果不超过预先建立的粗略阈值,则过程继续接收并监视原始图像数据。然而,如果超过粗略阈值,则过程继续在存在级别处检测图像中的用户手部。如以前解释的,在一些实施例中,在阈值化级别和存在级别处的预处理可以被实施在相机电路中,或被实施在配置为接近相机部署并且在相对短的距离上(例如,小于0.lm,例如
0.05m或者更小,或经由总线结构或其它合适的通信端口直接耦合到相机壳体)在操作上与相机耦合的专用电路中,以使IO功率相对于在来自相机的所有图像内容被提供给CPU上执行的应用软件时将使用的IO功率而减少。如将领会的,要求保护的发明不旨在限于专用电路与给定相机传感器之间的距离的任何特定范围;而是本文提供的使用分步的分布式预处理方案的概念可以在任何数量的配置中被实现。如果图像不包括可识别为用户手部的任何东西,则过程继续接收并监视原始图像数据。
[0039]然而,如果图像的确包括可识别为用户手部的内容,则过程在命令级别或以其它方式朝着命令级别继续将成像的手部映射到与已知手势相关联的有关节的手部的模型。在一些这样的示例实施例中,成像的手部与多个这样的模型比较,并且为每个模型确定相似度分数。过程在命令级别继续确定图像是否包括作出已知姿势的手部。例如,在一些这样的情况下,产生最高相似度分数的模型可以被识别为匹配。在其它情况下,遇到的具有超过预先建立的阈值的相似度分数的第一模型可以被识别为匹配(以使不一定需要测试所有模型)。如以前解释的,在一些实施例中,这个命令级别预处理可以被实施为GPU加速过程。如果在命令级别处确定图像不包括作出已知姿势的手部,则过程返回到存在级别以便继续关于图像中是否存在用户手部而分析视频流。如将根据本公开领会的,命令级别可通知存在级别它的发现(例如,没有二进制大对象数据),使得存在级别处的处理以受教育的方式进行。
[0040]然而,如果在命令级别处确定图像的确包括作出已知姿势的手部,则过程继续将姿势数据传给应用软件用于在识别级别进行处理。如以前解释的,这个级别的处理趋向于是CPU密集的。另外注意,在这个示例情况中姿势数据经由USB HID API (姿势API)传上栈。将参考图8又讨论这个API。如将进一步领会的,注意命令级别确定可足以明确识别已知手势,并且将不需要执行在基于CPU的识别级别处的后续处理,因此进一步节省基于CPU的功耗。
[0041]因此,通过在相机内或以其它方式接近相机进行至少一些程度的视频流的姿势预处理可以实质减少功耗,这在移动计算装置(例如,膝上型计算机、上网本、平板计算机、智能电话等)中可能是特别有帮助的。这是因为,一般而言,大多数视频处理涉及可以在配置为并且定位成减少IO活动和CPU工作量的分布式电路中被实施的相对低复杂性的处理,并且涉及更高复杂性处理的剩余百分比的处理可作为原始数据被发送到GPU用于加速处理和/或发送到CPU中的驱动器(应用软件)用于处理。在此意义上,本文提供的技术通过使用在相机和GPU中(或其附近)运行的专用分布式性能原语或硬件功能件来减少在通用CPU核中执行的基于软件的算法的需要。
[0042]图2a根据本发明的实施例图示配置用于实施视频流的分步的分布式姿势预处理来减少平台功耗的系统的框图。如可以看到的,系统是配置有多个分布式部件(在此示例情况下为五个)的姿势处理流水线。在这个示例实施例中,部件中的两个(阈值检测级和目标存在级)被实现为在相机内或以其它方式接近相机的姿势预处理(GP)电路。响应于拖延控制信号,这两个部件中的每个可以被启用或禁用(根据具体情况而定),这将又参考表I进行讨论。如将根据本公开领会的,如果GP电路实际直接集成在相机电路内或以其它方式充分接近相机(只要GP电路充分接近相机传感器以便减少IO功率和CPU处理时间)或以其它方式比CPU更接近相机,则GP电路可被认为是与相机“共处一地”。另一部件(分割级)是GPU加速的。其它的两个部件(手部分析器级和姿势识别级)在计算系统的CPU中被执行。根据本公开,这个分步的分布式架构的变化将是显而易见的,其中任何这样的分步的分布式架构允许关于活跃和空闲功率场景的优化。特别地,与相机和GPU共处一地的视频处理部件是有效地更固定的功能件,因此比解决相同计算问题的传统CPU要求更少功率。
[0043]如本文所使用的,“GP电路”是配置为实现图2a中示出的五个级中的一个或多个的集成电路,它被实现在提供将被分析的视频流的相机内或者被实现为配置为由如以前解释的相对短的连接来与那个相机直接耦合的专用电路(例如,以便与将所有视频从相机传到基于CPU的驱动器的传统技术相比减少IO功率和CPU周期)。共处一地的GP电路和相机中的每个可以集成在显示器内、或在显示器外部、或一些合适的组合。例如,在一些具体示例实施例中,GP电路可以被实现在移动计算装置(例如,膝上型计算机、上网本等)的铰链式显示器盖内并且接近也嵌入在那个盖内的相机电路。在其它这样的示例基于盖的显示器情况下,GP电路可被直接实现在嵌入的相机本身内。在其它示例情况下,例如,GP电路可被直接实现在外部相机内,外部相机配置为夹住或以其它方式在操作上耦合到计算系统(例如,桌上型计算机、膝上型计算机等)的基于盖的显示器或外部显示器。在另外其它示例情况下,GP电路可被实现在离散封装件中并且配置为与这样的外部相机在操作上耦合。在另外其它示例实施例中,GP电路可嵌在外部显示器的壳体内并且接近也嵌在那个显示器内的相机电路。在其它这样的示例外部显示器情况下,GP电路可被直接实现在嵌入的相机本身内。如将根据本公开领会的,GP电路与相机电路之间的集成度或接近度越大,在相机与GP电路图像处理子系统之间可以实现的IO功率减小越大。
[0044]阈值检测级是流水线中的第一级并且配置为粗略地确定视频帧是否实际上是空的。如果当前视频帧与前一帧足够类似,则该帧被视为空的。例如,根据一个这样的实施例,这可以使用低功率硅来实现,低功率硅实现合计并且比较每个帧的亮度(Iuma)通道的简单算法。如果视频使用RGB颜色空间,则因为YUV像素的大多数亮度分量被包括在RGB像素的绿色分量中,所以绿色分量在其位置被代替。如果当前的与以前的之间的变化量大于给定阈值,则这将触发移到下一级。否则,不发送空帧到下一级,这当用户不执行姿势时帮助管理功率。
[0045]根据实施例,目标存在级配置为实现相对低复杂性的方法用于找到作为目标的像素颜色。在一些情况下,这一级寻找颜色匹配肤色的特性的像素。例如,对肤色的匹配可以在配置为将RGB (或YUV)数据流转换成HSV像素的硅中被实施。人类肤色占用色调中相对有限的范围,从而允许快速、低功率固定功能的转换和比较。注意目标存在级不要求前一帧的信息或任何数据存储。如果在扫描线路中找到足够的皮肤颜色的像素以暗示可能出现手指,则处理转换到下一级。否则,无目标存在或不足数量的皮肤颜色的像素的帧没有被发送到下一级,这当用户不执行姿势时帮助管理功率。
[0046]根据实施例,分割级配置为从目标存在级接收目标存在帧并且将感兴趣的像素与不感兴趣的像素分开。在一个示例情况下,这一级实现将彩色视频帧转换成二进制大对象的图像的自适应肤色检测算法,二进制大对象的图像可编码为单色或灰度级图像。例如,在灰度级图像的情况下,非零像素可用于表示二进制大对象的像素并且黑色像素指示非二进制大对象像素。本质上,二进制大对象用来表示皮肤颜色的像素的区域。自适应肤色检测基于帧数据来适配皮肤色调下界和上界。除了使用腐蚀和放大变形方法来平滑对象之外,这也消除由于相机噪声和照明引起的分散像素。如已知的,形态学是基于形状处理数字图像的数学方法。放大变形通常指的是扩展或填充目标对象的操作。腐蚀变形涉及类似的方法,但是在不是对象而是图像的背景上操作。如将根据本公开领会的,许多GPU具有可以对于分割级的最佳实现受影响(leverage)的指令。
[0047]根据实施例,手部分析器级配置为执行二进制大对象数据的空间解释。在一个特定示例情况下,该级尝试将二进制大对象数据映射到人体解剖几何形状,例如人手的模型或人体的模型,这取决于正在评价的目标姿势。如将根据本公开领会的,手部分析器级尝试关联二进制大对象数据与人体部分/姿态的方式极大取决于使用情形以及关于人的相机观看角度的假设。解释二进制大对象的方式也可以不同。在一些示例情况下,只使用边缘确定人体几何形状可能是充分的。在其它场景中,填满的二进制大对象是更适当的。在一些情况下,来自分割级的二进制大对象数据可需要附加的处理来移除二进制大对象上对正确分析它们有害的视觉伪像,并且手部分析器级可配置为移除这样的伪像。在相机配置为观看用户手部的情况下,可以通过分析手部二进制大对象的边缘来检测手指。比较边缘上不同采样点处的斜率可以暗示峰值(例如,指尖)的位置。那些类似峰值的二进制大对象的另外分析(在各种像素之间的距离和斜率方面)可以揭示指尖附连到指干。如有必要,这一级可以尝试接合整个人手,包括所有5个指尖的位置。在一些情况下,检测单个手指可能是充分的。在这个意义上,使用模型确定要求分析的数量。如以前指示的,解剖学上具体的分析(例如,手部分析)可难以概括,并且因此难以放入固定功能硅。因此,在一些实施例中,手部分析器级由CPU执行。
[0048]根据本发明的实施例,姿势识别级配置为执行解剖/手部数据(从手部分析器级接收的二进制大对象数据)的时间解释。例如,如果该级用于分析鼠标或触摸板操作,则它可以查找一个或多个指尖的位置改变。在一些情况下,原始相机图像中的运动模糊可以使手部分析器级难以接合人体解剖。在这样的情况下,姿势识别级可以采用关于使用情形的假定来改进姿势解释的可靠性。例如,如果手部分析器级在一个帧中成功地检测完整手指但它只可以在下一帧中确定指尖位置(例如,不可以确认指尖附连到“适当的”手指),则姿势识别级可假定它是在下一帧中的相同手指。
[0049]一般而言,分割级、手部分析器级和姿势识别级可配置为将反馈发送到阈值检测级或目标存在级。例如,并且如在图2a的示例实施例中可以看到的,如果手部分析器级实际找到可能是手部的足够大的二进制大对象,则它可以用信号通知阈值检测级来将前一帧的亮度/绿色计数器复位到零,因此迫使下一帧指示它是非空帧。例如,在一个具体示例实施例中,这个类型的用信号通知可以通过GP电路的阈值检测级硅上的单个管脚/导线来实现,其可从驱动器进行控制。备选地,根据另一实施例,它还可以在USB上被完成。这帮助防止非移动的手部引起阈值检测级认为手部是静态背景的一部分的场景。另一示例反馈环场景将是当检测到足够大的二进制大对象时迫使系统将数据直接从相机发送到分割级,而不将它发送到阈值检测级和目标存在级(如图2a中描绘的并且标为目标存在-数据流)。这个类型的活动可通过移除不必要的阈值有关的处理来改进功率。然而注意,虽然这样的反馈机制可提供进一步程度的优化,但是它们不是在所有实施例中必需的。例如,如果这些技术的实现是成本高昂的,则备选解决方案是每I或2秒回落到目标存在级来检查目标是否持续地出现。在这样的情况下,为这付出的处罚是价值姿势命令数据的一个帧的损耗。
[0050]图2b根据本发明的实施例描述来自图2a系统的不同级的控制和数据。为了根据一个示例实施例提出的划分,GP电路可以配置有阈值检测级和目标存在级,并且可以还配置为控制数据多工(mux)并且决定是否向上游发送数据(用于分割)来唤醒系统。根据一些这样的实施例,利用这样的按需发送数据的方法,可实现平台功率的重要保存并且计算系统只在它需要醒着时才醒着。
[0051]如可以看到的,来自起始帧的原始数据被提供到阈值状态,阈值状态配置为对于感兴趣区域检测相较于前一帧的给定帧中的改变。如果不满足改变阈值,则可减少FPS并且过程继续以监视帧的原始数据。如果满足阈值,则原始数据被传到目标存在状态,目标存在状态配置为在感兴趣的色调范围内查找目标存在。例如,可以使用由各种样本聚集的经验数据来确定色调范围。在其它实施例中,色调范围可以被确定为测量给定用户的肤色的初始设置或校准过程的一部分。在任何这样的情况下,如果没有找到合适的目标,则将控制提供回到阈值状态。否则,如果以给定帧速率(例如,默认速率或如在这个控制环内精制的)找到合适的目标,则控制被传到分割处理状态,分割处理状态实施如以前解释的自适应皮肤检测。还注意,在一些实施例中,如以前解释的,在某个情况下,例如当检测到足够大的二进制大对象时,系统可以将原始数据直接从相机发送到分割处理状态,而不将它发送到阈值状态和目标存在状态(如图2b中描绘的并且标为处理状态期间的数据/控制流)。
[0052]在任何这样的情况下,分割处理状态配置为实施自适应肤色检测来分割图像。在一些实施例中,可使用变形方法来消除噪声并且平滑图像。自适应皮肤图像信息被提供到手部分析器状态,手部分析器状态配置为将二进制大对象数据映射到人体解剖几何形状,例如在此示例情况下的人手模型。如果手部分析器状态无法确认给定二进制大对象与手部相关,则控制被回传到目标存在状态(没有检测到二进制大对象)。然而,如果手部分析器状态确认给定二进制大对象与手部相关,则控制被传到姿势识别状态(找到二进制大对象)。然后姿势识别状态分析特定命令(例如,由用户提供的导航命令)的手部数据。一旦结束这个分析,则那个帧的过程流程完成,并且在计算系统上执行的给定应用可因此受控制。
[0053]图2c示出可以在GP电路中被实现的五个过程中的每个的典型CPU利用,给定包括2-2.66 GHz CPU和提供640x480像素帧的视频数据的USB相机的特定设置。如可以看到的,分割采取最大利用,并且由于更少的迭代改变它是可以被加速的良好候选者。根据本发明的实施例,GPU加速的自适应肤色检测算法将帮助改进总的系统性能和功率效率。由于工作量可以在CPU/GPU之间共享,这也将确保处理数据帧而没有任何帧丢弃。当找到更大的二进制大对象时并且采用更长的周长长度,看到典型的最差情况的手部分析器利用。根据一些示例实施例,在划分如本文所描述的处理(例如,如果阈值检测和目标存在被分布到USB相机中或以其它方式接近USB相机,并且分割是GPU加速的)之后的总的CPU利用率将小于10% ο
[0054]示例使用情形和系统配置
图3a根据本发明的实施例图示配置用于实施视频流的分步的分布式姿势预处理来减少平台功耗的计算系统的示例使用情形。如可以看到的,用户以常见或其它典型的方式正坐在计算系统前面。这个示例的计算系统表现为具有外部显示器的桌上型布置,但如将领会的可以是任何合适的计算系统,例如膝上型计算机或上网本或使用基于盖的显示器的其它这样的移动计算装置、或使用外部显示器的移动计算装置、或例如平板计算机或智能电话的触摸屏装置。
[0055]在任何这样的情况下,这个示例实施例的系统另外配置有相机和GP电路。例如,相机可用来捕获用户姿势(例如手势)。在图3a中描绘的这个示例情况下,相机和GP电路嵌入显示器的顶部内以便提供包括如下区域的F0V:其中,用户手部将通过使用例如计算机系统键盘、鼠标、触摸屏、或其它这样的输入装置而是活动的。然而注意,给定如本文所描述的系统的姿势解释能力,用户不需要实际从事于这样的输入装置。而是,如本文所论述的,用户可以在处于FOV中的指定用户输入区域内简单运动他或他的手部以便使用基于手部的姿势与计算机系统有效地通信。图3b-图3e图不相机和GP电路的各种不例布置。
[0056]图3b图示如下示例情况:其中,GP电路被集成或以其它方式被包含在相机的成像集成电路(硅或其它)内来进一步减少平台功率(通过消除相机传感器与图像处理功能件中的至少一些之间的IO功率)。在这个示例情况(以及在图3C-图3e中示出的示例情况)下,GP电路至少包括阈值检测和目标存在电路,以及可能还包括本文中提供的其它姿势预处理电路,如果这样期望的话。图3c图示另一示例情况,其中相机和GP电路是彼此分开实现的但是仍然接近彼此并且由相对短的通信总线(在这个示例实施例中是USB总线)在操作上耦合。如将领会的,可使用任何数量的其它合适的通信端口和总线结构。图3d图示另一示例情况,其中GP电路被集成或以其它方式被包含在相机的成像集成电路内,并且相机嵌入显示器内。图3e图示另一示例情况,其中相机嵌入显示器内,并且GP电路配置为孤立装置,所述孤立装置配置为与装置的USB端口在操作上耦合以便提供对其中嵌入的相机的接入。例如,在图3a_图3e中指示的任何这样的情况下,显示器可以在操作上是外部显示器、触摸屏显示器、或基于盖的显示器。
[0057]图4根据本发明的实施例图示配置用于实施视频流的分步的分布式姿势预处理来减少平台功耗的膝上型计算系统的框图。如可以看到的,这个示例具有膝上型计算机的典型形状因数并且包括由铰链在操作上耦合到显示器部分的基板部分。例如,显示器可具有触摸屏能力,但也可以是LED显示器。一般而言,除了与视频内容的分级式和分布式姿势预处理有关的架构和功能性以外,可以用常规或习惯的技术来实现许多示出的架构和功能性(如所希望的),其根据本发明的实施例来实现并且又将被讨论。
[0058]在这个示例情况下,GP电路被包括在显示器电路的传感器数据处理块中,传感器数据处理块经由对应的移动产业处理器接口 -相机串行接口(MIP1-CSI)在操作上耦合到两个集成相机。一个相机聚焦在第一用户输入区域上以便捕获用户手势,并且另一相机聚焦在第二用户输入区域上以便捕获用户头部和脸部姿势。如将领会的,手部GP电路配置有阈值检测级和目标存在级用于用户手势处理,并且头部-脸部GP电路配置有阈值检测级和目标存在级用于用户头部和/或脸部姿势处理。因此,在这个示例情况下,GP电路可以被有效地分成两个姿势专用块。在其它示例实施例中,一个相机可结合机械透镜化组件来使用,机械透镜化组件有效地允许单个相机捕获两个作为目标的用户输入区域,如果这样期望的话。在这样的情况下,GP电路可实现为能够处理涉及的各种姿势类型中的每个的单个块。
[0059]如将领会的,可以用类似的方式实现GP电路用于手部和头部-脸部中的每个。如以前解释的,无论解剖目标,GP电路的阈值检测级可以用例如配置为合计并且比较每个帧的亮度通道的门级逻辑或其它专门构造的半导体来实现,并且如果当前帧与前一帧之间的变化量大于给定阈值(例如,>3%改变,或>5%改变,或>10%改变),则可以生成用户检测信号,因此触发原始数据到目标存在级的传递。否则,不变的或以其它方式为空的帧有效抑制这样的检测信号,因此在没有姿势的时间期间保存功率。在类似的方式中,并且不管解剖目标,目标存在级GP电路可以用例如配置成如下的门级逻辑或其它专门构造的半导体来实现:将RGB (或YUV)数据流扫描线转换成HSV像素,并且将其中表示的像素色调值与肤色色调的相对有限范围作比较。如果在扫描线中找到皮肤颜色的像素来暗示可能出现手指或脸部,则处理转到分割级。否则,无目标出现或不足数量的皮肤颜色的像素的帧没有被发送到下一级或以其它方式被抑制,以便在没有姿势的时间期间保存功率。在其它实施例中,目标存在级可被实现在GPU中,给定它的功能的平行特性(例如,给定扫描线内每个像素的色调平行分析)。然而,如将领会的,在这样的情况下,通常存在更高的IO功率成本来将那个图像数据从相机传送到GPU。尽管如此,使用GPU仍然避免关联的CPU周期,所述CPU周期对在驱动器级别处的那个图像数据的处理将是必需的。
[0060]在这个示例实施例中,分割级与CPU共处一地(如有时完成的),但其它实施例可利用与CPU通信的单独GPU (如以前解释的)。根据一个示例实施例,分割级配置为将它接收的彩色视频中的每个帧转换成二进制大对象的图像,其中非零像素表示二进制大对象像素并且黑色像素指示非二进制大对象像素。例如,在这样的情况下,二进制大对象可用于表示皮肤颜色的像素的区域。在这个意义上,分割级适配或以其它方式更清楚地定义给定帧内基于皮肤色调的二进制大对象的边界,因此有效地减少给定图像到二进制布置(二进制大对象和非二进制大对象)的复杂性。这样的基于扫描线的处理任务到平行处理的可控制性使分割级成为GPU实现的理想候选者。
[0061]在其它实施例中,可以按与目标存在级的类似方式用门级逻辑或其它专门构造的半导体来在GP电路中实现分割级。然而,定义二进制大对象数据的边界可通常要求处理更大数量的扫描线,这可以增加目标存在级的复杂性。然而,这个复杂性可以例如通过使用适合于目标解剖特征和合理程度的内插的假设得以弥补。例如,假定作出和平符号的手部是目标解剖特征,并且处理手部图像的三个或四个扫描线。例如,第一扫描线可示出跨和平符号的“V”部分的上部取得的非肤色像素(三组)和肤色像素(两组)的交替组。第二扫描线可类似地示出跨和平符号的“V”部分的下部取得的非肤色像素(三组)和肤色像素(两组)的交替组,但两个肤色像素部分之间的非肤色像素部分的长度将更短。第三扫描线可示出跨手部主体部分取得的非肤色像素(两组)和肤色像素(一组)的交替组,并且第四扫描线可示出跨手腕部分取得的非肤色像素(两组)和肤色像素(一组)的交替组,其中手部主体部分中的肤色像素的组比手腕区域中的肤色像素的组更长。因此,例如,如果这三个或四个扫描线的这样的表征可以使用基于逻辑的比较来确认,则与介入扫描线关联的手部数据可以被插入或以其它方式估计并且可以因此指定整个肤色二进制大对象的边界。
[0062]手部分析器级和姿势识别级可以由作为应用驱动器的一部分的基板中的CPU执行,但如本文所描述的只有当被较早的级激活时。再次,根据一些实施例,这样的处理可备选地在GPU中执行,或甚至在GP电路中执行。为此目的,预处理功能件到GPU和/或GP电路的集成度可以基于例如成本收益分析,该分析平衡(在一方面)这样的集成的费用/成本与(在另一方面)功耗和CPU周期的节省。如将根据本公开领会的,以相对低的成本的重要节省可以通过在GP电路中实现阈值检测级和目标存在级、在GPU中实现分割级,并且允许手部分析器级和姿势识别级在CPU上执行来实现。到GP电路的进一步集成的成本可以不是合理的或以其它方式合意的,但本发明不旨在这样限制。
[0063]另外参考图4,SRAM高速缓冲存储器可用于存储与视频的有效处理关联的参数,并且可以用任何其它类型的合适存储器技术来实现。例如,在一些实施例中,存储器可用于存储帧内的坐标(通常包括由用户提供的手势)。例如,这些坐标可以基于经验分析随时间(overtime)建立和/或精制,或可以是用户配置的。在任何情况下,这样的坐标可由GP电路(以及其它部件,如果这样期望的话)使用以有效地进一步减少图像处理负载。在这个意义上,可以分析视频流的子集。存储器还可包括与特定用户设置关联的肤色的范围。例如,此数据可以是基于经验分析随时间建立的,或可以是用户配置的。许多其它类型的信息和数据可以被存储在存储器中,如将领会的。
[0064]性能原语是可以提供来支持GP电路的功能的可选部件,并且可在硬件和/或软件中实现。例如,适合于处理手势视频的示例性能原语可以是矩阵乘法或求和模块。另一示例功能件可以是傅里叶变换模块以将图像从空间域转换到频域以便于处理。在更一般的意义上,将由基于CPU的驱动器处理使用的任何图像处理工具可以在性能原语中实现来帮助分布式预处理功能件。可选的隐私和安全政策模块可以配置为提供针对恶意行为的保护,并且可实现来执行一个或多个安全政策,例如与信任的装置处理环境关联的那些。例如,隐私和安全政策模块可执行政策,例如基于用户的政策(例如,一些用户可不想要打开相机)和基于平台的政策(例如,只有信任的平台模块(TPM)装置可以经由USB端口连接到平台控制器中心(PCH))。
[0065]图4中示出的其它显示器和基板元件部分可按通常完成的或如以其它方式所期望的实现。图5根据本发明的另一实施例图示配置为实施视频流的分步的分布式姿势预处理来减少平台功耗的上网本计算系统的框图。如可以看见的,系统的显示器部分类似于图4中示出的膝上型计算机系统的显示器部分,并且以前的有关论述此处同样可应用。基板部分也类似,但配置稍微不同,给定它是上网本配置。因此,CPU可能是例如Intel?At0m?CPU或合适于上网本、上网机(nettop)和其它这样的低功率微型计算系统的其它这样的处理器。如以前解释的,GPU可与CPU共处一地(如示出的或以其它方式与CPU在操作上耦合)。
[0066]图6根据本发明的另一实施例图示具有外部显示器并且配置用于实施视频流的分步的分布式姿势预处理来减少平台功耗的计算系统的框图。例如,计算系统可以是桌上型计算机或膝上型计算机(固定的或不固定的,在电池功率上运行)。如可以看见的,系统的显示器和基板部分可以类似于图4和图5中示出的系统的显示器/基板部分,并且以前的有关论述此处同样可应用。可使用许多其它计算系统架构和配置,并且要求保护的发明不旨在限于任何特定的一个。
[0067]图7根据本发明的实施例指示通过将视频预处理移出核/非核并且移入相机模块而实现的功率节省。总Δ功率是在平台的备用电源上消耗的功率。如将根据本公开领会的,当没有东西出现在图像中时,可基本上减少视频操作的CPU C0%占有率。如可以进一步看到的,虽然将图像处理从核移到非核节省大约1.4瓦的功率(来自减少的CPU周期),当在相机传感器本身内执行预处理(例如阈值检测状态和目标存在状态)时(因此消除I/O功率),实现大约3.6瓦的额外功率节省。
[0068]例如,可用于互联网导航的示例手势通常依靠粗粒度姿势(例如,滚动向上/向下、下一页/上一页、双击,等等),单个精细粒度姿势通常用于鼠标运动。当输入具体文本信息时只需要在键盘上打字。典型类别的文本包括URL、用户名字、密码、搜索字(包括街道名等)。在许多场景中,需要很少或不需要鼠标运动。因此,姿势的简单性还允许姿势识别被实现为相机本身内的分布式过程。
[0069]姿势API
图8根据本发明的另一实施例图示示出配置用于实施视频流的分步的分布式姿势预处理来减少平台功耗的应用编程接口(API)的框图。在这一示例情况下,姿势API是在这个特定系统上可用的一个或多个API (传感器AP1、上下文API)。原始传感器数据通过传感器API来处理,并且姿势API预处理原始传感器数据并且暴露来自阈值检测级和目标存在级的信息(存在和阈值数据)、以及来自分割级、手部分析器级和/或姿势识别级的信息(姿势数据),无论计算是否是在相机传感器内/接近相机传感器或在CPU/主存储器上运行的软件驱动器内执行。如可以另外看到的,姿势API可包括隐私和安全政策,例如基于用户的政策(例如,一些用户可不想要打开相机)以及基于平台的政策(例如,只有信任的平台模块(TPM)装置可以经由USB端口连接到平台控制器中心(PCH))。如以前解释的,姿势API预处理原始视频数据并且呈现为扩展的USB HID类装置。在这样的情况下,原始数据不受影响并且呈现为标准USB视频类装置。
[0070]姿势API可以被编程或以其它方式配置为将状态消息传递给相机中的姿势装置端点,例如包括用户输入区域(例如,键盘/鼠标区域,如在图3a中示出的)的像素。外部显示器的相机的过程与笔记本计算机的集成显示器的相机的过程相同。在一个示例情况下,该过程包括:使键盘位于视频流的视场中;以感兴趣的像素(虚拟标记)的形式将键盘信息传递给相机/GP电路;在相机传感器/GP电路中开始手势预处理任务;更新键盘位置(如需要的);并且经由姿势API将姿势处理信息呈现给平台。在多显示器或多键盘的系统中,用户可以指示哪个显示器或键盘是主要的。这里可使用任何数量的合适选项。
[0071]如先前也解释的,由姿势API解释的手势可用于增强其它补充输入模态,例如由键盘和/或鼠标接收的用户输入。各种搜索引擎当前合并有许多鼠标/触摸姿势,用户可以将其用作捷径来改进它们的浏览体验。用户可以启用/禁用特定捷径,并且如期望的添加新的定制捷径。这样的系统的一个缺点(除了缺乏标准化之外)是所有捷径总共合计为将被使用的潜在巨大数量的姿势,从而引起不可避免地禁止广泛采用中的精神混乱。根据本发明的一个实施例,提供基于姿势的命令的相对简单和简明的列表,其可以如所期望的进行修改/扩展。例如,一些可编程性可以是期望的,因为大多数勤劳的用户可能希望扩展姿势的列表,并且大多数用户可能想要为他们的收藏夹(Favourite)中列出的网站添加个人化姿势。大多数用户通常一再地频繁访问相同的网页(例如,Google、Gmail、Facebook等)。将这个系列的键盘/鼠标命令减少成单个姿势(或短系列的姿势)可改进易用性并且加速用户的页面切换时间。
[0072]此外,可以考虑若干手势所需的“中间返回”。“中间位置”是当不执行手势时手部的统计平均位置。例如,当手掌放在掌托上时,其中手指放在以下键上=Q-E-R-G-空格键-空格键-H-U-1-P。中间返回是手部到中间位置的返回(例如,在执行一个手势之后并且在开始下一姿势之前)。在大多数计算系统使用模型中,手部保持在中间位置。期望最小化总的手势,从而使手掌在手势期间留在相同的物理位置中。因为图像处理算法将忽略相机FOV外部的所有视觉活动,这简化了图像处理。图8中示出的其它部件和特征先前关于图4-6进行了讨论或者如将领会的,可以以其它方式如通常完成的被实现。
[0073]拖延期
如先前解释的,当基于用户的当前活动和/或他/她的计算机系统的操作状态/环境在视频流上执行姿势预处理任务时,还可引入拖延期,以便通过消除浪费的处理周期来进一步减少平台功率。例如并且如先前解释的,如果用户正在键盘上打字或使用鼠标或触碰触摸屏或趋向被识别或以其它方式被定义为除了基于手部的导航摆姿势以外的一些事情的可检测活动,则可以假定用户没有同时作出基于手部的导航姿势。因此,用户将花费有限数量的时间来将他/她的手部从当前非摆姿势活动位置重新定位到从其开始作出期望手势的中间位置。在此不摆姿势期期间发生的任何图像处理有效地总计为浪费的处理周期和浪费的功率,并且因此可被停止,这还有助于功率效率。
[0074]因此,在这样的示例情况下,图像处理可以在无姿势期期间以及在随后的简短拖延期停止。简短期(本文被称作拖延期)可以例如在50到500毫秒、或50到250毫秒、或50到100毫秒的范围中。在更一般的意义上,这个拖延期可以被设置为反映用户将他/她的手部从鼠标/键盘/屏幕移回到通常实施基于手部的导航姿势的中间位置所花费时间段的任何延迟。如先前解释的,这个中间位置的定位可以是用户可配置的。以类似的方式,拖延期也可以是用户可配置的(如果这样期望的话)以便提供定制的性能。
[0075]如将根据本公开进一步领会的,可以选择性地使用或以其它方式调整拖延期,这取决于操作的环境因素,例如当前在计算机系统上执行的应用(例如,文字处理应用对游戏应用)、功率保存方案(例如,全功率模式对睡眠或其它低功率模式)、和/或那个计算机系统的功率源(例如,电池对市电电源(mains))。例如,根据一些实施例,当在外部功率上操作时,则拖延期可以被设置为零或某个更低延迟以便提供更大的响应性,这可以是取决于应用而期望的。同样地,当执行具有严格瞬时响应性要求的应用(例如某些游戏应用)时,则拖延期可以被设置为零或某个更低延迟以便提供更大的瞬时响应性。在其它示例场景中,如果计算机系统正在电池功率上运行时,则例如50-100毫秒延迟可以是可接受的以适应从低功率状态醒来的平台(例如,以便允许PCH/CPU/DRAM加电回来)。同样地,如果近来发生按键按压/鼠标运动,则附加的50-100毫秒延迟可以是可接受的,这是因为当用户的手部移回到中间位置时通常将没有姿势出现。一般的想法是:因为可能没有相关的事情出现在照相机的FOV中,例如当用户不可能作出姿势时,或当用户正作出系统未准备好解释的姿势时,在拖延期期间,图像预处理的停止是可接受的。
[0076]如先前指出的,阈值检测级和目标存在级中的每个(或任何其它级)可以响应于拖延控制信号而被禁用,例如,当存在用户没有作出需要分析的导航姿势或系统没准备好解释这样的导航姿势的指示时,所述拖延控制信号被选择性地设置(或复位,根据具体情况而
定)。表1示范提供这样的指示的示例活动。__
【权利要求】
1.一种用于处理原始视频流的系统,包括: 阈值检测级,配置为确定所述视频流的当前帧是否充分不同于所述视频流的前一帧,并且响应于所述当前帧没有充分不同于所述前一帧,所述阈值检测级还配置为停止后续级对所述当前帧的进一步处理;以及 目标存在级,配置为确定所述当前帧是否包括肤色颜色的像素,并且响应于所述当前帧不包括肤色颜色的像素,所述目标存在级还配置为停止后续级对所述当前帧的进一步处理; 其中所述阈值检测级和/或目标存在级中的至少一个能够在拖延期被选择性禁用。
2.如权利要求1所述的系统,其中所述阈值检测级配置为合计并且比较所述当前帧的亮度通道与所述前一帧的亮度通道,并且如果所述当前帧与所述前一帧之间的变化量大于给定阈值,则所述当前帧的数据被传到所述目标存在级用于进一步处理。
3.如权利要求1所述的系统,其中所述目标存在级配置为将所述当前帧的数据转换成一个或多个HSV像素,并且如果找到充分数量的肤色颜色的像素,则所述当前帧的数据被传到下一处理级。
4.如权利要求3所述的系统,其中所述下一处理级是分割级,所述分割级配置为将感兴趣的像素与不感兴趣的像素分开,其中感兴趣的像素被表示为二进制大对象,并且不感兴趣的像素由非二进制大对象表示。
5.如权利要求4所述的系统,其中所述分割级配置为如下中的至少一个:消除由于相机噪声和/或照明引起的分散像素,和/或使用腐蚀和/或放大变形方法来处理成像数据。
6.如权利要求4所述的系统,其中所述分割级在图形处理单元(GPU)中实现。
7.如权利要求4所述的系统,还包括: 分析器级,配置为执行从所述分割级接收的二进制大对象数据的空间解释。
8.如权利要求7所述的系统,其中所述分析器级通过将所述二进制大对象数据映射到目标人体结构几何形状的模型来执行空间解释。
9.如权利要求8所述的系统,其中所述目标人体结构几何形状是手部。
10.如权利要求7所述的系统,还包括: 姿势识别级,配置为执行从所述分析器级接收的二进制大对象数据的时间解释。
11.如权利要求10所述的系统,其中所述分割级、分析器级和/或姿势识别级中的至少一个配置为将反馈发送到所述阈值检测级和/或所述目标存在级中的至少一个。
12.如权利要求1所述的系统,其中所述拖延期在50到1000毫秒的范围中,并且响应于所述系统的用户不可能作出导航姿势或所述系统没准备好处理视频的指示而被触发。
13.一种成像装置,包括权利要求1至12中任一项所述的系统和在操作上耦合到所述系统的相机。
14.如权利要求13所述的成像装置,其中所述阈值检测级和所述目标存在级中的至少一个在所述相机的传感器电路内实现。
15.一种显示器,包括权利要求1至12中任一项所述的系统。
16.—种用于处理原始视频流的系统,包括: 阈值检测级,配置为确定所述视频流的当前帧是否充分不同于所述视频流的前一帧,并且响应于所述当前帧没有充分不同于所述前一帧,所述阈值检测级还配置为停止后续级对所述当前帧的进一步处理; 目标存在级,配置为确定所述当前帧是否包括肤色颜色的像素,并且响应于所述当前帧不包括肤色颜色的像素,所述目标存在级还配置为停止后续级对所述当前帧的进一步处理; 分割级,配置为接收来自所述当前帧的数据,并且将感兴趣的像素与不感兴趣的像素分开,其中感兴趣的像素被表示为二进制大对象并且不感兴趣的像素由非二进制大对象表示; 手部分析器级,配置为执行从所述分割级接收的二进制大对象数据的空间解释;以及 姿势识别级,配置为执行从所述手部分析器级接收的二进制大对象数据的时间解释并且识别用户基于手部的导航姿势; 其中所述阈值检测级、目标存在级、分割级、分析器级和姿势识别级以分步的分布式布置进行配置,并且所述阈值检测级和/或所述目标存在级中的至少一个能够在拖延期被选择性禁用。
17.如权利要求16所述的系统,其中所述阈值检测级和/或所述目标存在级中的至少一个在相机内或接近相机实现,所述相机可在第一位置处部署并且具有包括用户输入区域的视场,并且所述分割级、分析器级和姿势识别级位于不同于所述第一位置的一个或多个位置。
18.如权利要求17所述的系统,其中所述阈值检测级和所述目标存在级在显示器内实现。
19.如权利要求16所述的系统,其中所述分割级在图形处理单元中实现,并且所述分析器级和所述姿势识别级由应用软件实现。
20.如权利要求16所述的系统,还包括:应用编程接口(API),用于在操作上将一个或多个所述级耦合到所述系统配置为工作在其中的计算平台。
21.如权利要求20所述的系统,其中所述API被表示为扩展的通用串行总线人机接口(USB HID)类装置。
22.如权利要求16所述的系统,其中所述拖延期在50到1000毫秒的范围中,并且响应于所述系统的用户不可能作出导航姿势或所述系统没准备好处理视频的指示而被触发。
23.—种媒体处理系统,包括权利要求16至22中任一项所述的系统。
24.—种移动计算系统,包括权利要求16至22中任一项所述的系统。
25.一种使用原始视频流的计算机导航方法,包括: 在第一处理级处确定所述视频流的当前帧是否充分不同于所述视频流的前一帧,并且响应于所述当前帧没有充分不同于所述前一帧,停止后续级对所述当前帧的进一步处理;以及 在第二处理级处确定所述当前帧是否包括肤色颜色的像素,并且响应于所述当前帧不包括肤色颜色的像素,停止后续级对所述当前帧的进一步处理; 其中所述第一和第二处理级中的至少一个能够在拖延期被选择性禁用,所述拖延期在50到1000毫秒的范围中并且响应于没有作出导航姿势的指示而被触发,因此通过避免没有导航姿势的视频帧的处理来保存功率。
【文档编号】G06K9/00GK103916647SQ201410010010
【公开日】2014年7月9日 申请日期:2014年1月9日 优先权日:2013年1月9日
【发明者】J.伯尔 申请人:英特尔公司