有形界面对象的虚拟化相关申请的交叉引用
本申请要求提交于2014年5月21的标题为“活动表面检测、显示和增强”、序号为
62/001,057的美国临时专利申请的利益,通过引用其整体而合并于此。
背景技术
本公开涉及对有形界面对象的虚拟化。
有形用户界面是用户能够物理地与之交互以操纵数字信息的一种物理环境。在有
形用户界面开启了与数字信息交互的可能性的新范畴的同时,在实施这样的界面时仍存在
显著的挑战。例如,现有的有形用户界面一般要求昂贵的高质量的传感器来将用户与该环
境的交互进行数字化,其结果是整合了这些有形用户接口的系统对于大多数消费者来说过
于昂贵。在其他情况中,方案较为复杂且/或用起来较为麻烦,且要求时常重新配置和/或维
修。
发明内容
根据本公开的主题的一个创新方案,一种物理活动表面可视化系统包括立架、视
频捕捉装置、检测器和活动应用。立架被配置为将计算装置定位成靠近物理活动表面,计算
装置具有一个或多个处理器。视频捕捉装置联接为与计算装置通信。视频捕捉装置适于捕
捉视频流,该视频流包括物理活动表面的活动场景以及用户物理地与之交互的一个或多个
界面对象。检测器可由一个或多个处理器执行以基于处理来检测活动场景中的动作,并响
应于对动作的检测,处理视频流以检测包括在物理活动表面的活动场景中的一个或多个界
面对象。活动应用可由一个或多个处理器执行,以基于一个或多个检测到的界面对象而将
虚拟信息显示在计算装置的显示器上。
此外,多种实施方式可进一步可选地包括一个或多个以下特征:检测器进一步可
由一个或多个处理器执行以确定一个或多个界面对象中每一个的属性,且活动应用进一步
可由一个或多个处理器执行以基于一个或多个界面对象中每一个的属性而执行一个或多
个例程,从而生成对一个或多个界面对象进行可视化的对象相关信息;将虚拟信息显示在
计算装置上包括显示对象相关信息以使得一个或多个界面对象对于用户可见;检测器进一
步可执行以处理视频流从而通过接收活动场景的图像、处理该图像以确定包括在活动场景
中的一个或多个界面对象中的每一个的一个或多个轮廓、基于一个或多个轮廓为一个或多
个界面对象中的每一个构建对象描述,来检测包括在物理活动表面的活动场景中的一个或
多个界面对象;活动应用进一步可执行以基于一个或多个检测到的界面对象,通过生成一
个或多个界面对象中的每个的虚拟表示,并将一个或多个界面对象中的每个的虚拟表示叠
加到显示在计算机显示器上的虚拟场景中的相应的虚拟对象上,来将虚拟信息显示在计算
装置的显示器上;打分模块,其可由一个或处理器执行,其中活动应用进一步可执行以通过
与打分模块协作而基于一个或多个检测到的界面对象来将虚拟信息显示在一个或多个计
算装置上,从而计算一个或多个界面对象中每一个的虚拟表示与相应的虚拟对象之间的
差,基于所计算的差生成得分,并基于所计算的差,将得分的表示包括在显示于计算机显示
器上的虚拟场景中;计算一个或多个界面对象中每一个的虚拟表示与相应的虚拟对象之间
的差包括计算一个或多个界面对象中每一个的虚拟表示的轮廓与相应的虚拟对象的轮廓
之间的差;计算一个或多个界面对象中每一个的虚拟表示与相应的虚拟对象之间的差进一
步包括确定相应的虚拟对象的形状、确定未填充在该形状中的像素的数量、确定该形状外
部的像素的数量、确定该形状的像素的总数量、并使用如下公式计算变化微量:max(0,1-
(sum(未填充像素)+sum(形状外部像素))/sum(形状总像素))*100;基于所计算的差生成得
分进一步包括执行单调函数以在对活动场景中的一个或多个有形界面对象的操纵中改变
用户对进展的感知。
本公开描述的主题的另一个总的创新方案可具体化为如下方法,该方法包括:使
用视频捕捉装置捕捉包括物理活动表面的活动场景以及用户物理地与之交互的一个或多
个界面对象的视频流;使用一个或多个计算装置处理视频流中的物理活动表面的活动场景
以确定预定时间段内的动作;基于该处理,使用一个或多个计算装置来检测活动场景中的
动作;响应于对动作的检测,使用一个或多个计算装置处理视频流,以检测包括在物理活动
表面的活动场景中的一个或多个界面对象;以及基于一个或多个检测到的界面对象,将虚
拟信息显示在计算机显示器上。
这些方案的一个或多个的其他实施方式包括相应的系统、设备、和编码在计算机
存储装置上的配置为执行该方法的各动作的计算机程序。这些和其他实施方式各可以选择
性地包括以下特征中的一个或多个。
例如,操作可以进一步包括:使用一个或多个计算装置确定一个或多个界面对象
中每一个的属性;使用一个或多个计算装置,基于一个或多个界面对象中每一个的属性而
执行一个或多个例程,从而生成对一个或多个界面对象进行可视化的对象相关信息;计算
机显示器上的虚拟信息包括将对象相关信息显示在计算机显示器上以使得一个或多个界
面对象对于用户可见;处理视频流以检测包括在物理活动表面的活动场景中的一个或多个
界面对象进一步包括:接收活动场景的图像,处理该图像以确定包括在活动场景中的一个
或多个界面对象中的每一个的一个或多个轮廓,并基于一个或多个轮廓为一个或多个界面
对象中的每一个构建对象描述;基于一个或多个检测到的界面对象将虚拟信息显示在计算
机显示器上进一步包括:生成一个或多个界面对象中的每个的虚拟表示,并将一个或多个
界面对象中的每个的虚拟表示叠加到显示在计算机显示器上的虚拟场景中的相应的虚拟
对象上;基于一个或多个检测到的界面对象来将虚拟信息显示在计算机显示器上进一步包
括:计算一个或多个界面对象中每个的虚拟表示与相应的虚拟对象之间的差,基于所计算
的差生成得分,并基于所计算的差,将得分的表示包括在显示于计算机显示器上的虚拟场
景中;计算一个或多个界面对象中每个的虚拟表示与相应的虚拟对象之间的差包括计算一
个或多个界面对象中每一个的虚拟表示的轮廓与相应的虚拟对象的轮廓之间的差;计算一
个或多个界面对象中每个的虚拟表示与相应的虚拟对象之间的差进一步包括确定相应的
虚拟对象的形状、确定未填充在该形状中的像素的数量、确定该形状外部的像素的数量、确
定该形状的像素的总数量、并使用如下公式计算变化微量:max(0,1-(sum(未填充像素)+
sum(形状外部像素))/sum(形状总像素))*100;以及基于所计算的差生成得分进一步包括
执行单调函数以在对活动场景中的一个或多个有形界面对象的操纵中改变用户对进展的
感知。
本公开描述的主题的另一个总的创新方案可具体化为如下方法,该方法包括:使
用视频捕捉装置捕捉包括物理活动表面的活动场景以及用户物理地与之交互的一个或多
个界面对象的视频流;使用一个或多个计算装置处理视频流来检测包括在物理活动表面的
活动场景中的一个或多个界面对象;基于在活动场景中的一个或多个界面对象的状态,确
定与在计算机装置上可执行的活动应用的预定目标相关的用户进展;以及使用该用户进展
的视觉指示来更新被渲染以显示在计算装置的显示装置上的虚拟场景。在进一步的示例
中,确定与活动应用的预定目标相关的用户进展包括确定一个或多个界面对象对虚拟场景
中的视觉目标的影响,以及更新被渲染以显示在显示装置上的虚拟场景包括基于所确定的
影响来更新视觉目标的状态。
通过本公开描述这里表示的技术的多个特征和优点。然而,应当理解的是,这里描
述的特征和优点不是总括的,许多附加的特征和优点是能够想到的并且落入本公开的范
围。此外,应理解的是本公开使用的语言的选用主要是为了易读和指导性的目的,并非限制
此处所公开的主题的范围。
附图说明
本公开通过示例的方式图示,而不是限制于附图中的图片,其中类似的附图标记
用来指代类似的元件。
图1A-1B为图示了有形界面对象的虚拟化的示例性配置的图。
图2为图示了用于有形界面对象的虚拟化的示例性计算机系统的框图。
图3为图示了示例性计算装置的框图。
图4为用于有形界面对象的虚拟化的示例性方法的流程图。
图5A和5B为用于有形界面对象的虚拟化的进一步示例性方法的流程图。
图6是用于有形界面对象检测的示例性方法的流程图。
图7是用于有形界面对象检测的进一步示例性方法的流程图。
图8是用于有形界面对象检测的进一步示例性方法的流程图。
图9是检测活动表面的状态变化的示例性方法的流程图。
图10是基于识别的界面对象来处理和显示虚拟对象相关信息的示例性方法的流
程图。
图11为用于将背景与有形界面对象分开的示例性方法的流程图。
图12为用于生成反映了用户与有形界面对象进行的与活动应用的目标相关的交
互的得分的示例性方法的流程图。
图13A-14D是基于由用户在物理活动表面创建的物理场景而生成在计算装置上的
虚拟场景的示例。
具体实施方式
本文所述的技术提供了一种用于虚拟化可被用户操作的有形界面(TI)对象的物
理环境的平台。虽然在本文中设想并描述了该平台的许多其他的实施方式和配置,在一些
实施方式中,该平台可以对手持计算装置(如电话或平板电脑)扩展新的硬件配件,以使用
所述计算装置上的内置视频摄像机,并利用新的计算机视觉算法来感测用户与TI对象的交
互。
这种技术产生了许多优点,包括但不限于,通过再利用现有的硬件(例如,相机),
并借助新的轻量级检测和识别算法来融合物理和数字介质的用于开发几乎无限范围的应
用的低成本的替代方案,具有低的实施成本,与现有的计算装置硬件兼容,实时运行以提供
丰富的实时的虚拟体验,处理大量的(例如,>15、>25、>35等)TI对象和/或TI对象交互,同时
不会使计算装置难以处理,以基本完美的召回率和准确率来识别TI对象(例如,分别为99%
和99.5%,),适应于光线的变化和TI对象的磨损和破裂,为不同地点的用户之间提供协作
的触知体验,在设置和使用上甚至针对年轻用户(例如,3+岁)来说也是直观的,使用起来是
自然和直观的,评定用户与TI对象间进行的与活动目标相关的交互的表现,并且在可处理
的TI对象的类型上没有任何限制或限制很少。例如,在一些实施方式中,不需要在TI对象中
包括特定的标记或符号以使平台能够识别TI对象。
平台所使用的TI对象可以是用户使用并可用的日常对象,为特定目的而创建的特
定对象,前述的组合等。TI对象的非限制性的例子包括各种消费品,游戏零件,衣物,玩具,
小雕像,照片,预先配置的卡片,用户绘图,图片,人像等,用户可塑形对象(可塑形的橡皮泥
或黏土)等。TI对象可以具有基本上二维或三维的形状。
图1A-1B为图示了用于对TI对象进行虚拟化的示例性配置100和150的图。如图所
示,配置100和150至少部分地包括,在其表面上可以对TI对象114进行放置、创建等的活动
表面102,以及计算装置104,其配备有或者联接到配置为捕捉活动表面102的视频的视频捕
捉装置110,该计算装置104还包括新的软件和/或硬件,其能够处理所述视频以检测并识别
TI对象114及一个或多个用户对它们的操纵,并提供所述TI对象和/或其操纵的虚拟化和可
视化(例如,见虚拟化的TI对象118)。例如,图1A中的TI对象114是一块可塑形的橡皮泥正在
由用户的手118进行塑形,并且图1B中的TI对象是正在由用户的手118使用画图工具120(例
如铅笔、画刷、蜡笔、钢笔等)绘制的线条。
尽管在图1A和1B中,活动表面102被描绘为在大致水平方向,但应当理解的是,该
活动表面102可以是垂直的或位于适合于用户的交互的任何其他角度。活动表面102可具有
任何颜色,图案,纹理和形貌。例如,活动表面102在性质上可以是基本上平坦的,或者是不
连接的/不连续的。活动表面102的非限制性的实例包括台子,桌子,柜台,地面,墙壁,白板,
黑板,定制的表面等。
活动表面102可以包括平面/自然表面或用于某些活动的预先配置的表面。例如,
在后面的实施例中活动表面102可构成或包括棋盘游戏的棋盘。活动表面102可与立架106
集成,或者可以与立架106分开但放置为与立架106相邻。活动表面102可在一些情况下向用
户指示位于视频捕捉装置110的视野内的该活动表面102的边界。活动表面102在一些情况
下可以包括与在计算装置104上的可操作的应用程序相一致的图案(例如,被配置为用于特
定的活动)或者可以是通用的。例如,活动表面102可以包括为用户表明目标以完成UI对象
的情境(context)(例如,文本和/或图形指示符)。在一些情况下,活动表面102可以是三维
性质的,并包括各种用于用户与其他TI对象交互和/或被配置用于与其他TI对象交互的预
配置对象。在一些情况下,活动表面102上的交互区域的尺寸可以限于视频捕捉装置110的
视野,并可以由适配器108进行适配和/或通过调整视频捕捉装置110的位置而适配。在另外
的实例中,活动表面102可以是投射到活动表面102上的光投射(例如,图案,情境,形状等)。
多种进一步的实施例也是可行的且可想到的。
在示例性配置100、150和180中包含的计算装置104可以位于表面102上或以其他
方式接近于表面102。计算装置104可以向用户提供用于使被用户操纵的TI对象可视化的虚
拟门户。例如,计算装置104可被放置在用户前面的桌子上,使得用户可以在与放置在活动
表面102上的不同TI对象交互的同时容易地看到计算设备104。示例性的计算装置104可包
括但不限于,移动电话(例如,功能电话,智能电话等),平板电脑,笔记本电脑,台式机,上网
本,电视,机顶盒,流媒体装置,便携式媒体播放器,导航装置,个人数字助理等。
计算装置104包括或者联接到(例如,通过无线或有线连接)用于捕捉活动表面102
的视频数据流的视频捕捉装置110(在此也称为相机)。如图1A-1C所描绘的,视频捕捉装置
110可以是配备有对相机110的视野进行适配以至少部分地包括活动表面102的适配器108
的前置相机。为了清楚起见,由视频捕捉装置110捕捉的活动表面102的部分116在此也被可
替换地称为活动表面、物理活动表面、活动场景或物理活动场景。
如图1A和1B中所描绘的,计算装置104和/或视频捕捉装置110可由立架106定位
和/或支承。例如,立架106可以将视频捕捉装置110的显示器112定位于对于同时与物理环
境(活动场景116)交互的用户而言最佳的观看和交互的位置。立架106可以被配置为搁置在
活动表面102上并接收和稳固地保持计算装置104,从而计算装置104在使用期间保持静止。
在一些实施方式中,适配器108将计算装置104的视频捕捉装置110(例如,前置、后
置相机)适配为基本上仅在活动场景116内进行捕捉,不过许多其它实施方式也是可能的和
可以想到的。例如,相机适配器108可以将前置相机的视野分成两个或以上的场景。作为实
例,视频捕捉装置110对包括位于视频捕捉装置110前面的活动表面102的活动场景116进行
捕捉,并对包括基本上位于计算装置104前面的用户在内的用户场景126进行捕捉。这些场
景可以由可由计算装置104执行的活动应用虚拟地渲染在显示器112的分开的区域或同样
的区域中。在另一示例中,相机适配器108可以将计算装置(未示出)的后置相机重定向至计
算装置104的前侧以捕捉位于计算装置104的前面的活动表面102的活动场景116。在一些实
施方式中,适配器108可以被捕捉的场景的一个或多个侧(例如,顶侧,左侧,右侧,且底侧开
口)。
图15-18示出了用于计算装置104的适配器108和立架106的多个示例。如这些图中
所示的,适配器108可包括槽134用于保持(例如,容纳,固定,握紧等)计算装置104的边缘,
以便覆盖相机110的至少一部分。适配器108可以包括至少一个光学元件132(例如,镜子)以
将相机110的视野定向为朝向活动表面102。计算装置104可放置于并容纳在形成于立架106
的顶侧的尺寸兼容的槽136中。槽136可至少部分地朝向立架106的主体以一角度向下延伸,
从而当计算装置104固定在槽中时,它向后成角度以便其用户(们)观看和使用。立架106可
包括形成为正交于并相交于槽136的通道130。通道130可构造为在不使用适配器108时对其
进行收纳和固定。例如,适配器108可具有相容于并构造为易于放置在立架106的通道130中
的锥形形状。在一些例子中,通道130可磁性地将适配器108固定到位,以防止适配器108易
于因冲击而震出通道130。例如,适配器108和立架106可包括相容的磁铁,当适配器108在通
道130中对齐时接合,如图19所示。立架106可以是沿着水平轴而细长的,以防止计算装置
104在搁置于基本水平的活动表面(例如,桌子)时翻倒。立架106可以包括用于电缆的沟道,
电缆插入计算装置104。电缆可配置成为计算装置104提供电力和/或用作与其他计算装置
的通信链路,例如笔记本电脑或其他个人计算机。
在一些实施方式中,适配器108可包括一个或多个光学元件,例如镜子和/或透镜,
以对视频捕捉装置110的标准视野进行适配。例如,适配器108可包括一个或多个镜子和透
镜,以将从活动表面102反射的光重定向和/或修改为进入视频捕捉装置110。作为例子,适
配器108可包括成角度的镜子以将从计算装置104前面的活动表面102反射的光重定向进入
计算装置104的前置相机。作为进一步的例子,多种无线手持装置包括具有相对于显示屏
112而言具有固定视线的前置相机。适配器108可以可拆卸地连接至装置的相机110上,以对
相机110的视线进行扩充,从而它能够对活动表面102(例如桌子表面)进行捕捉。
在另一个例子中,适配器108可包括一系列光学元件(例如镜子),其将从位于计算
装置104前面的活动表面102反射的光卷进计算装置104的后置相机中以便其能够被捕捉。
适配器108还可对视频捕捉装置110(例如前置相机)的视野的一部分进行适配,并对该视野
的其余部分不作改变,以便多种场景能够由视频捕捉装置110捕捉。适配器108还可包括配
置为提供不同效果的光学元件,例如使视频捕捉装置110能够捕捉活动表面102的更大部
分。例如,适配器108可包括凸面镜,其提供鱼眼效果,以比标准配置的视频捕捉装置110能
捕捉活动表面102的更大部分。
在一些实施方式中,视频捕捉装置配置为在其视野内包括立架106。立架106可用
作参考点,用于执行相机110的几何图形校准和/或图像校准。例如,在校准过程中,包括在
检测引擎212中的校准器可对使用立架106的相机110中的相机110(例如,调整白平衡,焦
点,曝光等)进行校准。
视频捕捉装置110在一些实施方式中可以是与计算装置104分开的独立的单元,并
可以定位为步骤活动表面102或可以由适配器108适配为如上所述地捕捉活动表面102。在
这些实施方式中,视频捕捉装置110可以通过有线或无线连接而通信地联接至计算装置104
以向其提供正在捕捉的视频流。
图2为示出了用于有形界面对象的虚拟化的示例性计算机系统200的框图。图示的
系统200包括计算装置104a...104n(也单个地和共同地称为104)和服务器202a...202n(也
单个地和共同地称为202),其通过网络206通信联接以相互交互。例如,计算装置
104a...104n可以通过信号线208a...208n分别联接至网络206,并可由用户222a...222n
(也单个地和共同地称为222)访问。服务器202a...202n可通过信号线204a...204n分别联
接至网络206。附图标记中的命名“a”和“n”的使用表示具有该命名的任何数量的那些元件
可以包括在系统200中。
网络206可包括任何数量的网络和/或网络类型。例如,网络206可包括但不限于,
局域网(LAN)、广域网(WAN)(例如因特网)、虚拟专用网络(VPN)、移动(蜂窝)网络、无线广域
网(WWAN)、(全球微波互联接入)网络、(蓝牙)通信网络、对等网
络、多种装置能够通过其而通信的其他互连数据通路中的一种或多种及其各种组合等等。
计算装置104a...104n(也单个地且共同地称为104)是具有数据处理和通信能力
的计算装置。例如,计算装置104可包括处理器(例如虚拟的,物理的等)、存储器、电源、网络
接口和/或其他软件和/或硬件部件,例如前置和/或后置相机、显示器、图形处理器、无线收
发器、键盘、相机、传感器、固件、操作系统、驱动器、多种物理连接接口(例如USB、HDMI等)。
计算装置104a...104n可互相联接并通信,以及使用无线和/或有线连接通过网络206连接
至系统200的其他实体并与之通信。虽然图2中示出了了两个或多个计算装置104,但系统
200可包括任何数量的计算装置104。另外,计算装置104a...104n可以是可以相同或不同类
型的计算装置。
如图2中所示,一个或多个计算装置104a...104n可包括相机110、检测引擎212、打
分模块216以及一个或多个活动应用214a...214n(也单个地和共同地称为214)。一个或多
个计算装置104和/或相机110也可配备有本文别处讨论的适配器108。检测引擎212能够检
测并识别位于活动场景116(在相机110的视野内的活动表面102上)中的TI对象。检测引擎
212可检测物理空间中的对象的位置和定向,检测该对象是如何被用户操纵的,并且与活动
应用214协同地向用户提供结合这些对象和他们的操纵在内的丰富的虚拟体验。在一些实
施方式中,检测引擎212处理由相机110捕捉的视频,以检测并识别TI对象及其属性,基于TI
对象及其属性生成事件,并将为识别的对象生成的事件提供给一个或多个活动应用214。
打分模块216可以生成反映了用户与有形界面对象进行的与活动应用214的预定
目标相关的交互的得分。得分可以在用户的计算装置104上的屏幕上向用户显示,以反映用
户的进展和/或表现。活动应用214能够处理从检测引擎212接收的事件和/或由打分模块
216生成的得分,以提供将由用户操纵的有形的物理环境和与TI对象相关和/或与之互补的
信息相混合的丰富的环境。计算装置104的其他结构和功能性在下面至少参照图3进行进一
步详细的描述。
服务器202可以各自包括一个或多个具有数据处理、存储和通信能力的计算装置。
例如,服务器202可包括一个或多个硬件服务器、服务器阵列、存储装置和/或系统等,和/或
可以是集中式的或分布式的/基于云的。在一些实施方式中,服务器202可包括一个或多个
虚拟服务器,其运行于主机服务器环境中,并可以通过抽象层(例如,虚拟机器管理器)访问
主机服务器的物理硬件,该主机服务器包括例如处理器、存储器、存储装置、网络接口等。
服务器202可包括软件应用,其可由服务器202的一个或多个计算机处理器操作以
提供多种计算功能、服务和/或资源,并发送数据至计算装置104和从计算装置104接收数
据。例如,软件应用可提供用于以下各项的功能:互联网搜索;社交联网;基于web的电子邮
件;博客;微博;照片管理;视频、音乐和多媒体集合、发布和分享;商业服务;新闻和媒体发
布;用户账户管理;或任何上述服务的组合。应理解的是服务器202不限于提供以上提及的
服务,而是可包括其他网络可访问的服务。
在一些实施方式中,服务器202可包括搜索引擎,用于从数据存储中取回匹配于一
个或多个搜索条件的结果。在一些例子中,搜索条件可包括图像,搜索引擎可将该图像与存
储在其数据存储(未示出)中的产品的图像相比较以识别与该图像匹配的产品。在进一步的
示例中,检测引擎212和/或存储装置310(例如见图3)可向搜索引擎发送信号以提供与其已
从视频流中提取的对象和/或图像匹配的信息。
在一些实施方式中,服务器200可以是消息服务器,其配置为接收包括了虚拟场景
的视频截屏在内的消息数据并将该消息数据发送给其他用户的计算装置104用于消费。例
如,活动应用214可从相机110接收记录了用户在执行活动应用214(例如,在物理活动场景
102中用橡皮泥塑造大象)所指明的动作时的动作的视频数据。用户可使用由活动应用214
提供的协助来执行动作(例如,塑造大象),活动应用214将用户在物理活动场景中的活动
(例如,对橡皮泥进行塑造的努力)的虚拟表示叠加在由计算装置104的显示器114上的活动
应用214(例如,预定义的大象形状)所显示的虚拟目标/要求上。一旦用户完成了满足目标/
要求的尝试(例如,将橡皮泥塑造成大象的形状),用户可以选择界面选项(例如,发送视频
按钮),其显示了表格,用户可将想要与之分享视频的人的电子地址输入其中。在指示了活
动应用214发送视频后,活动应用214可生成包括描述了用户的创造的视频数据在内的消息
数据,并可使用由用户输入(例如,选择,键入等)的电子地址将视频数据传送至消息服务
器。可传送的消息的类型的非限制性实例可以包括电子邮件、SMS、聊天消息、社交网络帖
子、微博博客、博客帖子等。
应理解的是图2中所示的系统200是以示例的方式给出的,多种不同的系统环境和
配置是能够想到的并且在本公开的范围内。例如,多种功能可从服务器移到客户端,反之亦
然,并且一些实施方式可包括另外的或更少的计算装置、和/或网络,并且可实施多种功能
性客户端或服务器侧。进一步地,系统200的多种实体可集成入单个计算装置或系统或另外
的计算装置或系统等。
图3是示例性计算装置104的框图。如图所示,计算装置104可包括处理器312、存储
器314、通信单元316、显示器112、相机110和输入装置318,其通过通信总线308通信地联接。
然而,应理解的是计算装置104不限于此,而是还可以包括其他的元件,例如可以包括参照
图1和2中的计算装置104而讨论的那些元件。
处理器312可通过执行多种输入/输入的、逻辑的和/或数学的操作来执行软件指
令。处理器312具有多种计算体系结构以处理数据信号,例如包括复杂指令集计算机(CISC)
体系结构、精简指令集计算机(RISC)体系结构和/或实施指令集的组合的体系结构。处理器
312可以是物理的和/或虚拟的,并可以包括单核或多个处理单元和/或多核。
存储器314是非暂态计算机可读介质,其配置为存储并向计算装置104的其他部件
提供对数据的存取。在一些实施方式中,存储器314可存储可由处理器312执行的指令和/或
数据。例如,存储器314可存储检测引擎212、活动应用214a...214n以及相机驱动器306。存
储器314也能够存储其他指令和数据,例如包括操作系统、硬件驱动器、其他软件应用、数据
等。存储器314可联接至总线308以与计算装置104的处理器312和其他部件通信。
通信单元316可包括一个或多个接口装置(I/F)以与网络206和/或其他装置有线
地或无线地连接。在一些实施方式中,通信单元316可包括收发器用于发送和接收无线信
号。例如,通信单元316可包括无线收发器以与网络206通信并利用极近距离(例如,
(蓝牙)、NFC等)连接与附近的装置通信。在一些实施方式中,通信单元316可
包括用于与其他装置进行有线连接的端口。例如,通信单元316可包括CAT型(例如5、6等)接
口、ThunderboltTM(雷电)接口、FireWireTM(火线)接口、USB接口等。
显示器112可显示由计算装置104输出的电子图像和数据以呈现给用户222。显示
器112可包括任何常规的显示装置、监视器或屏幕,例如包括有机发光二极管(OLEC)显示
器、液晶显示器(LCD)等。在一些实施方式中,显示器112可以是触屏显示器,其能够接收来
自用户222的一个或多个手指的输入。例如,显示器112可以是电容型触屏显示器,其能够检
测并解译显示表面的多个触点。在一些实施方式中,计算装置104可以包括图形适配器(未
示出)用于渲染和输出图像和数据以呈现在显示器112上。图形适配器(未示出)可以是分离
的处理装置,其包括分离的处理器和存储器(未示出)或可以与处理器312和存储器314集
成。
输入装置318可以包括用于输入信息至计算装置104的任何装置。在一些实施方式
中,输入装置318可以包括一个或多个外围设备。例如,输入装置318可以包括键盘(例如,全
键盘)、点击装置(例如鼠标或触摸板)、麦克风、相机等。在一些实施方式中,输入装置318可
以包括触屏显示器,其能够接收来自用户222的一个或多个手指的输入。例如,输入装置318
的功能和显示器112的功能可以集成,计算装置104的用户222可以通过使用一个或多个手
指接触显示屏112的表面来与计算装置104互动。在这个示例中,用户222可以通过使用手指
接触显示器112的键盘区域来与显示在触屏显示器112上的仿真键盘(即,虚拟键盘或软键
盘)交互。
检测引擎212可以包括检测器302。部件212和302以及打分模块216和/或活动应用
214可以通过总线308和/或处理器312而通信地互相联接和/或联接至计算装置104的其他
部件306、310、314、316、318、112和/或110。在一些实施方式中,部件212、214、216和302中的
一个或多个是可由处理器312执行的指令集以提供其功能。在一些实施方式中,部件212、
214、216和302中的一个或多个存储在计算装置104的存储器314中,并且能够由处理器312
访问和执行以提供其功能。在任一前述的实施方式中,这些部件212、214、216和302可以适
于与计算装置104的处理器312和其他部件协作和通信。
检测器302包括可由处理器312执行的软件和/或逻辑,用于处理相机110捕捉的视
频流以检测和识别包括在活动场景116中的TI对象。在一些实施方式中,检测器302可联接
至相机110并接收来自相机110、相机驱动器306和/或存储器314的视频流。在一些实施方式
中,检测器302可处理视频流的图像以确定TI对象在活动场景116中的位置信息(例如,TI对
象在2D或3D空间中的定位和/或方向),并然后分析包括在视频流中的TI对象的特征以确定
TI对象的特性和/或额外属性,如下文至少参照图4-10所详细讨论的。
在一些实施方式中,检测器302可确定与TI对象关联的手势,其表示TI对象是如何
由用户随着时间操纵的。例如但不限于,检测器302可确定TI对象的以下手势:
放入:表示TI对象已出现在活动场景116中;
遮挡:表示TI对象仍在活动场景116中但被局部地或全部地遮挡(例如,被用户的
手遮挡);
拿走:表示TI对象已从活动场景116中消失;
换掉:表示一个TI对象已经换掉另一个TI对象(在大致同一位置);
转动:表示TI对象已经转动(例如,顺时针转动45、90、135、180、225、270、315度,以
表示角度的任一浮点值转动,等等);
移动:表示对象已经在活动场景116中从一个位置移动到另一个位置;
对齐:表示两个对象以某种方式对齐(例如水平地、垂直地、对角地等等);以及
图案:表示TI对象居中形成图案(例如,直线、三角形、圆形、正方形、长方形、星形
等等)。
检测器302可使得活动应用214能够获知TI对象及其属性。例如,检测器302可基于
检测器302为TI对象确定的对象相关信息而生成TI对象的事件,并将事件传送给一个或多
个活动应用214使用从而与TI对象协同生成丰富的虚拟环境和/或传送给打分模块216以生
成得分。由检测器302检测并识别的给定的TI对象的事件可包括下列一个或多个:对象ID、
对象置信度、对象尺寸、对象形状、对象位置(例如,X、Y、Z)、对象方向、对象是否被遮挡、对
象被遮挡了多少、置信对象被遮挡、与对象关联的手势等,而且也可以使用更少或额外的TI
对象属性。检测器302可联接至应用214(例如,通过处理器312和/或总线308)以向应用214
提供事件。
在视频流包括多个场景(例如图1C所示的场景116和126)的实施方式中,检测器
302可独立地和同时地处理这些场景中的每一个,这将在下文参照至少图5A和5B进行详细
讨论。
检测器302可联接至校准器(未示出)、包括在检测引擎212中的可执行模块,以向
其发送信号通知其来执行几何图像校准和/或图像校准。在一些实施方式中,检测器302可
至少部分地基于对象和/或图像是否被成功检测到而确定是否向校准器发送信号以校准相
机110,如下文至少参照图6所进一步详细讨论的。
检测器302可通过总线308联接至存储装置310来存储、检索或以其他方式处理存
储在其中的数据。例如,检测器302可向存储装置310查询与其所确定的存在于活动场景116
中的任何TI对象相匹配的数据。在一些实施方式中,检测器302可为其所检测到的对象计算
唯一索引。检测器302可基于TI对象的可见的和/或可听的特征来计算索引,例如包括在TI
对象中的图像、TI对象的形状、TI对象的颜色、TI对象的纹理等。在一些实施方式中,每个TI
对象可包括唯一图像,且检测器302可对图像执行图像识别以确定它们的特性。在这些实施
方式中,TI对象的对应的数字记录可被编索引并存储在存储装置310中,并且检测器302可
向存储装置310查询与检测器302所确定为存在于活动场景116中的TI对象相匹配的记录。
打分模块216包括可由处理器312执行的软件和/或逻辑,以生成反映了用户与虚
拟活动场景关联的虚拟活动(由可应用的活动应用214生成)的目标/要求(也简单地称为目
标)相关的物理场景中的物理有形界面对象交互的表现的得分。例如,为了确定得分,在一
些实施例中,打分模块216可将由检测器302确定的物理对象(例如橡皮泥)的虚拟表示叠加
于预定的形状(例如大象图片),并计算橡皮泥的轮廓与预定的形状的轮廓对应的准确度。
在一些实施方式中,打分模块216可执行由图12的流程图表示的方法1200来基于
物理活动场景中的(一个或多个)TI对象的状态和显示在装置屏幕上的(一个或多个)虚拟
场景(例如玩游戏)的目标来生成得分。在方框1202中,方法1200将TI对象的虚拟表示叠加
于对应的虚拟对象。例如,打分模块216将反映TI对象的轮廓的轮廓数据叠加于从计算机存
储器(例如,存储器314和/或存储装置310)检索得到的预定的虚拟对象的轮廓。
在方框1204中,方法1200计算TI对象的虚拟表示的轮廓和对应的虚拟对象的轮廓
之间的差,并在方框1206中基于所计算的差而生成得分。在一些实施方式中,打分模块216
通过考虑由用户创建的形状与预定的形状之间的变化微量来计算得分。打分模块216可以
使用像素来逼近变化微量,例如使用如下公式:
max(0,1-(sum(未填充像素)+sum(形状外部像素))/sum(形状总像素))*100,
其中打分模块216配置为确定相应的虚拟对象的形状,确定未填充在形状中的像
素的数目,确定形状外的像素的数目,并基于由打分模块216提供给或从数据存储装置检索
得到的(一个或多个)对象描述和虚拟物件数据来确定形状的像素的总数目。例如,存储在
存储装置310中的反映虚拟物件的对象包括上述的像素信息,其可由打分模块216和/或活
动应用214检索得到以用于计算得分。类似地,检测器302可确定并将与(一个或多个)TI对
象有关的必要的像素相关信息(那些对象的属性)包括在(一个或多个)TI对象的(一个或多
个)对象描述中。
在一些实施例中,打分模块216计算的实际得分(例如数目)可以通过(例如100*
sqrt(值/100))单调递增函数来变化以改变进展的百分比,但其他的变化方式也是可行并
可想到的。
虽然打分模块216在图2中示为单个实体,但应当理解的是,检测引擎212、一个或
多个活动应用214或其他部件可以包括和/或合并这个模块。例如,每个活动应用可以基于
游戏情节设计用不同的方式计算得分,并可包括适用于其目标的打分模块216的实例。在进
一步的例子中,打分模块216可以是包括在检测引擎212中的功能/模块,或作为可由(一个
或多个)活动应用214调用的单独部件,并传递特定信息,例如TI对象和/或虚拟对象标识
和/或数据(例如轮廓数据等)。进一步的变化方式也是可行的且可想到的。
打分模块216可以联接到存储装置310和/或存储器314以存储信息(例如,得分,处
理的数据等),检索信息(例如,之前的得分,当前的得分,用户简档数据,轮廓数据,像素数
据等),以及删除信息(例如,之前的得分,存储的变量等)等。
活动应用214a...214n包括用于接收对象相关事件的软件和/或逻辑,并基于它们
来运行例程,以生成向用户呈现的虚拟环境,该虚拟环境实时结合TI对象及对它们的操纵、
以及它们的相互关系及它们在活动场景116中与活动表面102的关系。活动应用
214a...214n可以经由处理器312和/或总线308联接到检测器302以接收事件,并可联接到
打分模块216以接收反映得分的得分数据。在一些实施方式中,活动应用214a...214可处理
接收自检测器302的事件以确定对象的属性,并可以基于属性来呈现用于显示的相应信息。
在一些实施例中,活动应用214可从检测器302接收轮廓数据,并可提供轮廓数据
给打分模块216以便其用来计算得分,如本文别处所讨论的。在一些例子中,活动应用214可
确定(一个或多个)目标,(一个或多个)TI对象的(一个或多个)状态,并可基于(一个或多
个)TI对象的状态来更新虚拟场景。例如,活动应用214可更新虚拟场景以虚拟地反映用户
在实现(一个或多个)目标时的进展。具体而言,活动应用214可在确定与预定目标相关的用
户进展中确定TI对象对虚拟场景中的视觉目标的影响(例如,通过将检测到的(一个或多
个)TI对象的位置和/或情境信息与虚拟目标的参数进行比较)。活动应用214然后可通过基
于所确定的影响来更新视觉目标的状态,以更新被渲染以显示在显示装置上的虚拟场景。
在进一步的例子中,活动应用214可以协同打分模块216确定(一个或多个)TI对象
的(一个或多个)状态满足(一个或多个)目标所到等级(例如,由得分反映)。如在此所讨论
的,目标可以是由用户在物理空间中应该操纵TI对象的形状所要模仿的预定的形状。在另
一例子中,目标可以是用户使用物理场景中的TI对象所应当达成的目标。
在一些进一步的实施例中,活动应用214可使用对象ID来从存储装置310检索得到
TI对象的数字表示,可使用对象置信度来确定是否将对象的显示信息进行平均(例如,通过
将对象置信度与预定阈值进行比较),可基于对象的位置和/或对象(或附近的TI对象)是否
被操纵(例如,被移动、被遮挡、被换掉、被拿走,被新增等)来以TI对象的数字表示执行动
作,可执行动作以使得其他的对象基于此动作与给定对象对齐和/或接近等。
活动应用214可使用基于存在于活动场景116中的TI对象而确定的补充信息来增
强其生成的虚拟信息/环境。例如,活动应用214可以用与对象有关的附加信息(例如,事实、
统计、新闻、视频、照片、社交网络帖子、微博等)、对象的配件、对于对象的视觉增强或改进、
对象的声音等来开发TI对象的数字表示。
活动应用214的非限制性示例可包括艺术游戏、绘图游戏、视频游戏、学习应用、辅
助应用、故事画板应用、协作应用、生产性应用等。可由活动应用214呈现的虚拟环境的多种
非限制性示例将在下文至少参照图13A-14D进行讨论。
相机驱动器306包括软件,其可存储在存储器314中并可由处理器312操作以控制/
操作相机110。例如,相机驱动器306为可由处理器312执行的软件驱动器,用于向相机110发
送信号来通知捕捉和提供视频流和/或静态图像等。相机驱动器306能够控制相机110的多
种特征(例如,闪光、孔径、曝光、焦距等)。相机驱动器306可以经由总线308而通信地联接至
相机110和计算装置104的其他部件,这些部件可经由总线308与相机驱动器306接口连接以
使用相机110捕捉视频和/或静态图像。
如本文别处所讨论的,相机110是被配置为捕捉至少活动表面102的视频的视频捕
捉装置。相机110可联接至总线308以与计算装置104的其他部件通信和交互。相机110可包
括:透镜,用以聚集和聚焦光;光传感器,其包括像素区以捕捉聚焦光;以及处理器,其用于
基于由像素区提供的信号来生成图像数据。光传感器可以是任意类型的光传感器,包括:电
荷耦合器件(CCD)、互补金属氧化物半导体(CMOS)传感器、混合CCD/CMOS器件等。相机110还
可包括任何常规特征,例如闪光、变焦透镜等。相机110可包括麦克风(未示出)以捕捉声音,
或可以联接至包括在计算装置104的另一部件中的麦克风和/或直接联接至总线308。在一
些实施方式中,相机110的处理器可经由总线308联接以在存储器314中存储视频和/或静态
图像数据,和/或将视频和/或静态图像数据提供给计算装置104的其他部件,例如检测引擎
212和/或活动应用214。
存储装置310是用于存储和提供对于存储的数据的存取的信息源。在一些实施方
式中,存储装置310可包括对应于虚拟对象(例如,图形设计等)的可被检索和显示的经索引
的记录集。存储装置310还可以存储由用户使用给定的活动应用214的功能性而在物理场景
中制成的用户创建TI对象(例如,艺术品,创造等)。在一些实施方式中,可使用从TI对象得
到的唯一形状、(一个或多个)矩、(一个或多个)直方图等来对用于多种TI对象的记录(例如
图像轮廓)进行索引。可使用与下面参照至少图7-8B讨论的相同的或基本类似的操作来计
算这些索引。
在一些实施方式中,存储装置310可包括在存储器314中或包括在联接至总线308
的另一存储装置中。在一些实施方式中,存储装置310可以是或包括在分布式数据存储中,
例如云计算和/或数据存储系统。在一些实施方式中,存储装置310可包括数据管理系统
(DBMS)、文件系统或其他合适的存储系统。例如,DBMS可以是结构化查询语言(SQL)或NoSQL
(非关系型SQL)DBMS。在一些情况下,存储装置310可在基于对象的数据存储中或在由多行
和多列组成的多维表中存储数据,并可以使用程序操作(例如,查询和语句或类似的数据库
操作库)来操纵(即,插入、查询、更新和/或删除)存储在认证数据存储106中的数据实体。存
储装置310的另外的特征、结构、动作和功能性在本文别处讨论。
图4是用于有形界面对象的虚拟化的示例性方法400的流程图。在方框402中,校准
器校准相机110。在一些实施方式中,校准器执行几何图像校准和/或图像校准以使得相机
110准备好进行TI对象检测和识别。在方框404中,相机110和/或计算装置104然后被定位在
或接近活动表面并且视频捕捉装置(例如,相机110)捕捉(406)包括活动表面的活动场景的
视频流以及用户物理地与之交互的一个或多个界面对象。在一些实施方式中,检测器302可
向相机110发送信号以捕捉视频流(例如,通过相机驱动器306)并且相机110将视频流提供
给检测器302(例如,直接地、经由存储器314等)。如图1A和1B所示,包括相机110的计算装置
104可以被放置于预先配置的立架106上,该预先配置的立架106定位相机110以捕捉活动场
景116并定位计算装置104以用于由用户观看和/或交互,不过除此之外的本文中其他地方
描述的多种进一步的配置也是可行的。在一些例子中,相机110可由适配器108进行适配以
最佳地适配相机110的视野,以捕捉位于计算装置104前面的活动表面102(例如桌子,墙壁
等)的区域。
接下来,检测器302处理视频流以检测(408)包括在活动场景116中的一个或多个
TI对象,并确定(410)检测到的一个或多个TI对象。图5A-9描述了可由检测器302执行的多
种示例性操作以检测TI对象并确定对象属性,不过附加的和/或替换的操作也是可行的并
且是可想到的。方法400然后可以基于由检测302识别的一个或多个TI对象而将虚拟信息呈
现(412)在一个或多个计算装置104上。例如,检测器302可以将其检测并识别的对于TI对象
的事件传送给一个或多个活动应用214,用于在由其基于事件生成的虚拟场景中向用户可
视化。
图5A和5B为用于有形界面对象的虚拟化的进一步示例性方法500的流程图。在方
框502中,校准器可以最先执行对视频捕捉装置(例如相机110)的几何图形校准并且然后视
频捕捉装置可以在方框504中捕捉一个或多个场景的视频。例如,如图1C所示,相机110可以
捕捉活动场景116和用户场景126。在一些例子中,相机110的视野可以由适配器108分割为
多个场景,例如活动场景116和用户场景126。例如,对于前置相机110,适配器108可以保留
相机110的部分视野不被改动以捕捉用户脸部和/或肢体(例如手)的视频,并且使用反射元
件(例如镜子)将相机110的视野的一部分重定向为向下以捕捉活动表面102,不过除此之外
本文别处讨论的配置也是可行的。
检测器302然后可以确定(506)从相机110接收的视频是否包含包括用户在内的场
景(例如用户场景),并且如果是这样,其可以处理(508)该用户场景126以确定用户输入,例
如讲话、脸部表情、手部动作、身体语言等。例如,检测器302可以处理从相机110接收的视频
图像序列的脸部区域和手部区域以确定用户是否在做出手势,并且如果是这样,其可以确
定正在执行的是哪个手势,并将那些手势连同其生成的任何TI对象事件一起传送给一个或
多个活动应用214,如本文别处所讨论的。
此外,检测器302可确定(510)从相机110接收的视频是否包含包括活动表面102的
场景(即,活动场景116),并且如果是这样,则可进行检测(512)包括在活动场景116中的一
个或多个TI对象。如果从相机110接收的视频不包括活动场景116,方法400可返回方框502
以校准相机110,进行处理在方框508中确定的用户输入,可向用户返回错误提示以指示平
台的配置存在问题,可终止或等待,等。
在方框514中,检测器302可以确定所检测的(一个或多个)TI对象的属性,并在方
框516中,可以基于(一个或多个)TI对象的属性为(一个或多个)TI对象生成对应的(一个或
多个)事件。如本文其他地方所描述的,检测器302可确定的属性可包括但不限于,每个TI对
象的基于轮廓的对象描述、每个TI对象的推断的形状的置信度、对象是否被遮挡以及遮挡
了多少、用于遮挡判定的置信度、与(一个或多个)TI对象关联的手势等等。一个或多个活动
应用214可接收检测器302确定的(一个或多个)对象事件和/或任何用户输入,并基于此执
行(518)例程。基于由例程产生的结果,一个或多个活动应用214可在方框520中向(一个或
多个)用户呈现虚拟对象相关信息,例如呈现反映活动目标的数字信息的丰富的虚拟环境,
(一个或多个)TI对象的数字表示,如本文别处所讨论的。
图6是用于有形界面对象检测的示例性方法600的流程图。在方法600中,检测器
302可以接收(602)活动场景116的图像,处理(604)该图像以确定包括在活动场景116中的
每个TI对象的(一个或多个)轮廓,基于(一个或多个)轮廓为每个TI对象构建(606)对象描
述,并且在一些情况下确定(608)(一个或多个)对象的其他属性,例如TI对象的(一个或多
个)颜色,根据轮廓/对象描述推断的形状,TI对象的美学特性(例如,对象的纹理,装饰对象
的图形和/或文本元素等),TI对象的检测的置信度等。图5A-9描述了可由检测器302执行的
多种进一步示例性操作以检测TI对象,不过附加的和/可替换的操作也是可行的并且是可
想到的。
一个或多个活动应用214可使用(一个或多个)TI对象的对象描述、其他属性等(例
如,基于从检测器302接收的事件)以将结合了(一个或多个)TI对象的数字表示、与(一个或
多个)TI对象相关的内容和/或(一个或多个)TI对象的环境和/或位置属性的交互虚拟环境
呈现(610)给用户,如本文别处所述。
在一些实施方式中,活动应用214可指定检测器302在执行对象检测和识别时应当
搜寻的(一个或多个)TI对象的(一个或多个)形状(直接指定或在存储装置310中指定),并
且检测器302可将指定的(一个或多个)形状与其从视频数据中推断出的哪些形状进行比较
以确定(一个或多个)TI对象是什么。在进一步实施方式中,检测器302可推断(一个或多个)
TI对象的(一个或多个)形状并查询能够由服务器202操作的搜索引擎或另一信息源(例如
存储装置310)以确定(一个或多个)TI对象是什么。其他的变型也是可行的且可想到的。
图7为用于TI对象检测的示例性方法700的流程图。在方框702中,检测器302可处
理活动场景116的视频图像以确定包括在活动场景116中的每个TI对象的(一个或多个)轮
廓,并通过使用坐标系对与每个TI对象关联的(一个或多个)轮廓进行映射来构建(704)每
个TI对象的描述。检测器302然后可基于与每个TI对象关联的(一个或多个)轮廓的坐标来
推断(706)每个TI对象的对象形状,并基于那些(一个或多个)TI对象的坐标来确定(708)
(一个或多个)TI对象的位置和/或定向。例如,检测器302可使用对象的轮廓的坐标来确定
对象的位置和/或定向。在一些情况下,检测器302可将坐标与已知的参考点(例如,立架
106,存储在存储装置310中的与TI对象关联的位置信息等)进行比较以确定对象的位置和/
或定向。
图8是用于TI对象检测的进一步示例性方法800的流程图。在方框802中,检测器
302可处理活动场景116的视频图像以确定包括在(一个或多个)TI对象中的(一个或多个)
图像的(一个或多个)轮廓,并在方框804中通过使用坐标系对与(一个或多个)图像关联的
(一个或多个)轮廓进行映射来构建对象图像的(一个或多个)描述。坐标系可以是二维或三
维性质的,并可以被配置为反映活动场景116的尺寸(经缩放的或实际的),且由此反映当由
检测器302映射时(一个或多个)TI对象的位置。然后,检测器302可基于与图像关联的映射
坐标来计算(806)(一个或多个)对象图像的(一个或多个)矩。示例性的可由检测器302计算
的矩可包括面积矩、周长矩、质心矩等。这些矩可基于(一个或多个)TI对象的对象图像描绘
的物件的面积、周长等来计算。作为进一步的示例,检测器302可使用其从对象图像中处理
出的物件的轮廓的坐标来确定那些物件的周长或面积,并且可然后使用周长和面积计算多
种矩作为图像的唯一标识。在一些例子中,检测器302可操纵相机的多个参数(例如,对比
度、曝光、白平衡、等级)以调节捕捉的视频图像以增强由对象图像描绘的物件的轮廓。
作为对于方框806的替换或附加,检测器302可计算(808)(一个或多个)对象图像
的(一个或多个)颜色直方图作为图像的唯一标识。颜色直方图可基于整个图像计算或基于
其一个或多个部分而计算。例如,检测器302可使用网格将给定TI对象中包含的图像进行划
分,并可以使用来自网格的一个或多个区块的图像数据计算(一个或多个)色彩直方图。作
为进一步的示例,网格可以是覆盖图像的4x4网格,其包含16个区块,检测器302可使用来自
第一、第五和第六区块(例如,从左向右、从上到下)的图像数据分别计算三个色彩直方图。
优势在于每个图像可使用提取自对象图像不同区域的不同的属性来编索引,因此使得平台
对多于一个的属性编索引。
检测器302可确定(810)(一个或多个)TI对象的位置信息,例如基于对象和/或图
像坐标确定(一个或多个)TI对象在活动场景116内的位置和/或定向。检测器302还可以确
定(812)是否对方框606和/或808中计算的矩和/或直方图进行转换。在一些例子中,可基于
TI对象在活动场景116中的位置(例如,相对于参考点,诸如立架106)对矩和/或直方图进行
转换。
图9是检测活动表面的状态变化的示例性方法900的流程图。
在方框902中,检测器302可接收活动场景116的视频图像帧。接下来,检测器301可
将该活动场景图像与之前接收的活动场景116的图像帧进行比较(904),确定(906)在该活
动场景116的图像帧和之前接收的活动场景116的图像帧之间是否存在实质差别,并且如果
确定存在本质差别时在方框908中进行以处理视频流来检测包括在活动场景116中的一个
或多个界面对象。如果在方框906中,在活动场景116的当前状态和之前状态之间未检测到
实质差别,方法900可等待(910)下一个图像帧,然后重复至少方框902、904和906的操作。
通过使用方法900,检测引擎212可等待实际包含足够显著的变化的下一视频图像
以证实对(一个或多个)TI对象的图像的处理。作为进一步的示例,在每个循环期间,检测器
302可比较之前的和接下来的视频图像以确定是否有显著的变化,并可以不对最近的图像
进行处理直到变化满足预定阈值。方法900的优点在于其可以消除对于平台来说不必要的
检测和识别处理,从而避免拖慢/不利地影响计算装置104的性能。
图10是基于识别的(一个或多个)TI对象来处理和显示虚拟对象相关信息的示例
性方法1000的流程图。在方框1002中,活动应用214可接收检测器302确定的(一个或多个)
TI对象存在于活动场景116中的(一个或多个)事件。基于包括在一个或多个事件中的信息,
活动应用214可以确定(1004)与事件关联的(一个或多个)TI对象的属性。属性可以包括(一
个或多个)对象轮廓,(一个或多个)颜色,(一个或多个)形状,(一个或多个)装饰性特征(例
如,标签,图标,文本等),(一个或多个)唯一对象标识(ID)等。
在方框1006中,方法1000接收与活动场景116和/或(一个或多个)TI对象关联的一
个或多个输入,例如从由检测器302提供的(一个或多个)事件确定的手势,从随着时间接收
的(一个或多个)事件中包括的信息得到的手势、由检测器302在用户场景中检测到的(一个
或多个)用户输入等,通过计算装置104的输入装置318从用户接收的(一个或多个)用户输
入等。
基于(一个或多个)TI对象的标识和属性,活动应用214然后可执行(1008)一个或
多个例程以生成使一个或多个界面对象可视化的对象相关信息,并将对象相关信息呈现
(1010)给用户,如本文别处所讨论的。
例如,给定的活动应用214可以生成将物理活动场景中的TI对象的虚拟表示(例如
视频图像)与特定对象的参考图像相结合的界面,并将该界面显示在显示器上以示出TI对
象与参考图像的叠加(例如,将反映了用户对目标形状的诠释的橡皮泥创作物的视频与描
绘了动物形状的目标图像相叠加)。
在另一例子中,给定的活动应用214可以生成将所生成的物理活动场景116中的TI
对象的(一个或多个)虚拟表示(例如,(一个或多个)线图)结合到虚拟场景(例如活动/游
戏)中。例如,活动应用214可以确定在界面中(一个或多个)虚拟TI对象的表示与其他虚拟
对象之间的交互,并生成可视地图示出该交互的图形用户界面。一个这样的环境的示例性
环境图示在图14A-14D中,其中活动应用214是球类视频游戏,且其中活动应用214包括指示
了装置屏幕112上的视频游戏界面中的一个或多个虚拟球的移动的算法。在游戏中,用户可
使用任何有形的物理对象(TI对象)(例如,绘图,玩具,身体部分等)来重定向/偏转/阻碍虚
拟球向界面中示出的(一个或多个)特定目标(例如(一个或多个)红色目标)的移动。在这种
情况下,物理活动场景116中的(一个或多个)TI对象可以有利地用于/作为球类视频游戏中
的虚拟控制器,该TI对象可以是不与计算装置104电连接(不电通信地性有线或无线连接)
的普通日常对象。
在其他例子中,为了对用户的表现进行量化,活动应用214可以向打分模块216发
送信号以对用户在物理活动场景中执行与活动应用214呈现的虚拟活动场景中所示出的
(一个或多个)目标相关的各种任务时的表现进行评定的得分进行计算。活动应用214可以
从打分模块215和/或计算机存储接收得分并将得分合并到虚拟活动场景中,如本文别处所
讨论的。
图11为用于将背景与有形界面对象分开的示例性方法1100的流程图。在方框1102
和1104中,检测器302接收活动场景的视频并进行处理以确定预定时段X的动作。X可以是任
何时间量,例如1秒或更多秒,几分之一秒等。在一些实施例中,为了处理场景以获知动作,
检测器302可以将视频的后续帧相互比较以识别它们之间的差。在一些实施例中,为了减少
计算资源,检测器302可使用预定时间周期的帧进行比较,而不是对视频中的每一帧进行比
较。在一些实施例中,检测器302可以忽略视频捕捉到的活动场景中的不重要的变化,例如
阴影,灯光效果等。
在方框1106中,如果在时段X中未检测到动作,方法1100可使用(静态)活动场景来
确定背景。在一些实施例中,检测器302可存储背景(静态视频场景)的图像,并在检测物理
界面对象时使用它以提高精度。
如果在方框1106中检测到了动作,方法1100可使用方框1120中确定的背景(如果
可用)进行检测(1108)场景中的(一个或多个)物理界面对象。在一些实施例中,方法1100可
忽略背景中的对象,改为考虑未出现在背景中的对象。这是有利的,因为它能够提高对象检
测操作的速度和准确度,其另外的细节将在本文别处进一步详细地进行讨论。
在一些实施例中,如果在方框1120中尚未确定背景,方法1100可提示用户不要干
扰活动场景,并回到方框1104再次开始背景确定步骤,可放弃背景确定步骤改为检测活动
场景中的显著的TI对象,并允许用户从那些对象中进行选择或可以估测哪个(哪些)对象是
(一个或多个)感兴趣的对象,等等
在方框1112、1114和1116中,方法1100可确定(一个或多个)对象的属性,基于(一
个或多个)对象(和/或相关事件和/或输入)执行例程,并基于例程的结果呈现虚拟对象相
关信息,如本文别处进一步详细讨论的。自然,方法1100或其部分可以在需要时重复进行
(例如,用以更新背景,连续处理活动场景以识别(一个或多个)对象等)。
应当理解的是,方法400-1200中的每个方法在许多方面是相互兼容的,并且在一
些情况下可相互扩展,而且基于这些方法的不同方面的组合的进一步的方法是能够想到的
并且落入本公开的范围。
此外,方法400-1200的优点在于,在许多方面,包括并不限于提供快速和准确的TI
对象检测和识别;为用户提供实时、虚拟化的体验,其将用户与TI对象和活动表面102的物
理交互与原本对于用户而言不可达到的丰富的、可视的和计算上的增强相混合,并对原本
是不可触知的、相当乏味的数字体验增加有意义的有形方面体验。
图13A-14D是基于由用户在物理活动表面所交互的物理场景而生成在计算装置
104上的虚拟场景的示例。这些图示出了物理活动表面上物理活动场景116的一系列增加的
变化,其复制于计算装置104上的相应活动应用214所产生的两个示例性游戏环境的情境
中。
图13A-13C特别示出了示例性的塑形游戏。在该游戏中,用户将物理活动场景116
中的(一个或多个)有形界面对象114(在该例中为可塑形的橡皮泥,如图13B所示)塑形为活
动应用214所示出的(一个或过个)形状1308。检测器302监测用户的进展并连续地将形状
(一个TI对象)的描述及其属性(其不断变动)提供给活动应用214。活动应用214将大象形状
的橡皮泥的虚拟表示叠加于用户所选择的大象图形上以示出他/她在再现它时的进展。除
了将(一个或多个)虚拟的TI对象(例如,大象橡皮泥的图像)叠加于(一个或多个)目标虚拟
物件(例如大象)上以外,活动应用214可以生成并显示反映用户进展的得分(例如,与打分
模块216协作),如本文别处所讨论的。
通过进一步的例子,图13A示出了在塑形开始前游戏的起始。在最初,活动应用214
可以从存储装置310取回具体化物件1306的文件,生成包括物件1306的表示和用于选择给
定项目(例如1308)的项目选择元素1304的图形用户界面1302,并将图形用户界面1302显示
在装置屏幕112上以与用户交互。通过使用输入装置318和图形用户界面1302的交互元素
(例如1304),用户可以选择给定项目1308(例如对象的形状),则活动应用214可以从输入装
置接收反映该选择的输入数据,并对其作出响应,将相应的项1308呈现在装置屏幕112的显
示器上。特别地,图13A-13C示出了装置屏幕112上选择的项目1308(大象的形状的虚拟表
示),不过在这个例子中用户可以通过与选择元素1304的左右箭头交互来选择不同的动物
或项目,或者返回到主屏幕以选择其他项目,浏览其他项目类别等。此外,得分0意味着用户
还没有用TI对象来填充项目1308。
图13B示出了在物理场景中TI对象(例如橡皮泥)114放置在活动表面116上,并且
用户用他/她的手118在与TI对象交互。界面1302包括TI对象114的虚拟表示1310,其相应地
显示在装置屏幕上的虚拟场景中与虚拟项目1308相结合。在这个例子中,检测器302检测到
的TI对象114(例如橡皮泥)的物理位置确定了橡皮泥位于虚拟场景中的位置。该物理位置
可反映在TI对象的对象描述中,活动应用214可使用该对象描述来放置它。如图所示的,绿
色橡皮泥1310的轮廓被虚拟化地落入正显示在屏幕上的虚拟大象形状1308的轮廓内。
图13B包括得分67。这反映了物理场景中的橡皮泥的形状和/或定位对应于虚拟场
景中的形状的准确度。更特别地,例如,该值表示该形状中已经被橡皮泥填充的总面积的百
分比和/或形状外部的橡皮泥的量。
图13C示出了第三次重复,其中TI对象114(例如,物理的橡皮泥)已经塑形为使得
其轮廓粗略地对应于虚拟形状1308的轮廓。在这个例子中,检测器302使用本文别处所进一
步描述的方法检测橡皮泥的形状。活动应用214在装置屏幕上呈现橡皮泥的虚拟表示1310
并将其叠加于目标形状1308。此外,活动应用214可计算其轮廓对应于虚拟形状的轮廓的准
确度。例如,活动应用214计算(例如,与打分模块216协作)并更新得分为94于界面中,其向
用户传达的是用户已经几近正确地在物理场景中重现了大象的形状,如在虚拟场景中所反
映的那样。
虽然在图13A-13C中使用了大象,但应当理解的是任何其他形状或形状集是可行
的并且可使用的。此外,应当理解的是可塑形橡皮泥是可使用的对象类型的非限制性例子,
还可以使用其他合适的物理对象(例如,绘图,绘画等)。例如,代替或除了塑形橡皮泥或捏
塑体(例如培乐多(Play-dohTM)),用户可以绘制(检测器302可以检测)图片,切割纸片,堆
放面团、豆子、五彩纸屑、蚂蚁等。任何对象都可以虚拟地利用,只要检测器能够检测出来,
如本文别处所讨论的(例如,将对象从活动场景的背景分离)。
图14A-14D示出了由活动应用214提供在装置屏幕上的另一示例性游戏。在这个游
戏的图形用户界面1402中,一个或多个虚拟球落下经过虚拟场景并可以被偏转以使得球击
中一个或多个靶子1406。一旦一个或多个球1404如活动应用214所要求的那样已经击中了
靶子1406,就可以呈现新的和/或更新的虚拟场景,其中可以呈现活动应用214计算的使用
同样的或不同的靶子1406的新挑战(例如,在不同的位置,利用不同的物理学,新的/不同的
障碍等等)。
更具体地,如图14A所示,活动应用214可以在虚拟场景中的某个位置渲染靶子
1406,并从虚拟场景的顶部落下球1404(如轨迹线1408所反映的那样,在这个例子中其并未
实际上在屏幕上向用户示出,而是为了清楚起见而包括在该图中)。应用引擎可以控制球的
虚拟物理调节运动及其与虚拟场景中其他物件(例如靶子和TI对象)的交互。为了对球1404
重定向,用户可将TI对象放置在物理场景中,并且活动应用214可协同检测引擎212来进行
检测并渲染虚拟场景内TI对象的虚拟表示。
图14B和14C示出了由用户在活动场景中引入的(一个或多个)TI对象(例如,由用
户使用绘图工具120所画出的),基于此,物理对象1410的虚拟表示可以偏转(一个或多个)
虚拟球1404的轨迹。如图14B所示,用户的手118可以在活动表面(例如,在一张纸上)上绘制
线条122作为TI对象114,基于此,检测器302识别线条122的物理轮廓并生成相应的表示
1410(例如,使用轮廓)以由活动应用214呈现在图形用户界面1402上。应当理解的是,不论
检测器302是否知道(例如用户绘制线),任何对象都可由用户使用或创造,并由检测器302
检测到。
更特别地,如本文别处所描述的,检测器302可以通过识别其轮廓来检测线条。检
测器302还可以识别线条的各种属性,例如颜色,对比颜色,深度,纹理等。检测器302可以向
活动应用214提供线条的描述(及其属性),活动应用214可以使用其来在活动场景中呈现TI
对象(例如线条)的虚拟表示并使用该表示来对(一个或多个)球重定向。在一些例子中,线
条的描述可以包括或伴有线条的视频图像。
活动应用214接收到TI对象122的虚拟表示1410的位置后,可以使用其来确定对
(一个或多个)虚拟球1404的影响。由于活动应用214计算(一个或多个)球1404的轨迹时,其
知道了(一个或多个)球1404的位置和方向(例如坐标),并随着(一个或多个)球1404的运动
而将球的坐标与TI对象坐标进行比较以确定(一个或多个)TI对象对球1404的影响。例如,
在击打到线条时,活动应用214可以基于活动应用214的可应用物理学对球1404的轨迹进行
重定向。用户可以作出反应并绘制另一线条或延长已有线条(如图14C所示),以进一步操纵
(一个或多个)球1404的轨迹朝向并进入靶子1406。
活动应用214可以基于适用的游戏情节设计包括或忽略用户的额手进/出虚拟场
景。活动应用214可以通过将用户的手的轮廓与预定的所存储的手的形状进行比较来照此
识别该手。在图14C的虚拟场景中,例如,活动应用214包括用户的手的虚拟图示1412,不过
在其他变型中,活动应用214可以将手排除而不进行图示。
图14D示出了玩具恐龙1414被沿着各种绘制线条(如以上参照图14A-14C所讨论
的)而放置在活动表面上。如别处所讨论的,检测器302可以检测物理对象(例如恐龙)并基
于其轮廓构建相应的对象描述以及物理对象其他的属性,例如颜色,纹理,尺寸等。
如图所示,一旦检测器302检测到对象,活动应用214可以使用从检测器302接收到
的对象描述以及属性(例如轮廓,颜色,外形等)在虚拟场景中渲染对象的虚拟表示,并使用
该表示来与偏转球1404的轨迹交互和/或偏转球1404的轨迹。例如,如图14D所示,线条1418
之一的虚拟表示可以使球1404偏转朝向靶子1406并且恐龙1416的虚拟表示可以用来使球
1404中的一个的轨迹偏转朝向1406。应当理解的是恐龙1404仅仅是示例性实施例,其他TI
对象的变型也是可行的。
在以上描述中,为了解释的目的,给出了多种具体细节以提供对本发明的完全理
解。然而,应当理解的是,这里描述的技术可以不需要这些具体细节而实施。进一步地,多种
系统、装置和结构以框图的形式示出以避免使描述含混。例如,多种实施方式被描述为具有
特定的硬件、软件和用户接口。然而,本公开应用于能够接收数据和指令的任何类型的计算
装置以及应用于提供服务的任何外围装置。
在一些例子中,多种实施方式在此表示为对计算机存储器中的数据位的操作的算
法和符号表示。算法在这里总体上被认为是导向期望的结果的自洽的操作集。操作是那些
对物理量的所需的物理操纵。通常,虽然不是必要,但这些量采取能够存储、传送、组合、比
较或其他操纵的电或磁信号的形式。原则上为了共同使用的原因,将这些信号认为是位、
值、元件、符号、字符、术语、数字等已经证明是方便的。
然而,应当记住的是,所有这些和类似的术语关联于适当的物理量,并且仅仅是应
用于这些量的便利的标签。除非特别申明,否则从下面的讨论中显而易见地,应领会到在本
公开的全文的讨论中,“处理”、“计算”、“运算”、“确定”、“显示”等,指的是计算机系统或类
似的电子计算装置的动作和处理,其操纵并转换计算机系统的寄存器和存储器内的表示为
物理(电子)量的数据为计算机系统存储器或寄存器或其他这样的信息存储装置、传送或显
示装置的类似地表示为物理量的其他数据。
这里描述的多种实施方式可涉及用于执行这里的操作的装置。该装置可为要求的
目的而特定地构建,或其可包括由存储在计算机中的计算机程序选择性地启用或重配置的
通用计算机。这样的计算机程序可存储在计算机可读存储介质中,其包括但不限于:任何类
型的圆盘,包括软盘、光盘、CD-ROM以及磁盘;只读存储器(ROM)、随机存取存储器(RAM)、
EPROM、EEPROM、磁卡或光学卡、包括带有非易失性存储器或任何类型的适于存储电子指令
的媒介的USB钥匙,其各联接至计算机系统总线。
这里描述的技术可采用硬件或软件实施方式的形式或包含硬件和软件元件的实
施方式的形式。例如,该技术可在软件中实施,其包括但不限于固件、驻留软件、微代码等。
此外,该技术可采用计算机程序产品的形式,其可从计算机可用或计算机可读媒介存取,其
提供程序代码以由或结合于计算机或任何指令执行系统使用。为了所描述的目的,计算机
可用或计算机可读媒介可以是任何非暂态存储装置,其能够包含、存储、传达、传播或输送
程序以由或结合于指令执行系统、设备或装置使用。
适于存储和/或执行程序代码的数据处理系统可包括至少一个处理器,其通过系
统总线直接或间接联接至存储器元件。存储元件可包括在程序代码实际执行期间使用的本
地存储器、大容量记忆体、快取记忆体,其提供至少一些程序代码暂时存储以减少代码在执
行期间必须从大容量记忆体取回的次数。输入/输出或I/O装置(包括但不限于键盘、显示
器、点击装置等)可直接联接至系统或通过中间I/O控制器联接至系统。
网络适配器也可以联接至系统以使得数据处理系统能够通过中间个人网络或公
共网络联接至其他数据处理系统、存储装置、远程打印机等。无线(例如Wi-FiTM)收发器、以
太网适配器和调制解调器仅为网络适配器的少量示例。个人网络和公共网络可以具有任何
数量的架构和/或拓扑。数据可通过网络使用多种不同的通信协议在这些装置之间传送,协
议包括例如多种互联网层、传输层、或应用层协议。例如,数据库使用如下协议经由网络传
送:传输控制协议/网际协议(TCP/IP)、用户数据报协议(UDP)、传输控制协议(TCP)、超文件
传输协议(HTTP)、安全超文件传输协议(HTTPS)、HTTP动态自适应流媒体(DASH)、实时流媒
体协议(RTSP)、实时传输协议(RTP)和实时传输控制协议(RTCP)、互联网语音协议(VOIP)、
文件传递协议(FTP)、WebSocket握手协议(WS)、无线接入协议(WAP)、多种管理协议(SMS,
MMS,XMS,IMAP,SMTP,POP,WebDAV等)或其他已知协议。
最后,这里表示的结构、算法和/或接口并不固有地涉及任何特定的计算机或其他
设备。可根据这里的教导以程序使用多种通用系统,或构建更专用的设备来执行所要求的
方法方框证明是方便的。用于多种这些系统所要求的结构从以上描述中是显而易见的。此
外,说明书并不参照任何特定的编程语言而描述。应领会到多种编程语言可用来实施此处
描述的说明书的教导。
前文的描述是为了例示和说明的目的而表示的。其并不旨在穷举或限制说明书为
所公开的明确形式。在上述教导下可能有许多修改和变化。其旨在不用这里的详细描述限
制本公开的范围,而是由本申请的权利要求书来限定。如本领域技术人员所将理解的,说明
书可以其他特定形式实施而不偏离其精神或必要特征。同样的,模块、例程、特征、属性、方
法论和其他方面的命名和区分并非强制的或重要的,并且实施说明书或其特征的机制可具
有不同的名称、区分和/或格式。
此外,本公开的模块、例程、特征、属性、方法论和其他方面可以实施为软件、硬件、
固件或前述的任意组合。而且,不论说明书的哪个部件(其示例为模块)实施为软件,该部件
可以实施为独立的程序、更大程序的一部分、多个分开的程序、静态或动态链接库、内核可
加载模块、装置驱动器和/或现在或将来知道的每种方式或任何其他方式。此外,本公开并
不限制以任何特定的编程语言来实施,或实施用于任何特定的操作系统或环境。因此,本公
开旨在为说明但不限制在所附权利要求书中阐述的主题的范围。