用于创建表面显示并与其交互的系统和方法.pdf

上传人:n****g 文档编号:6203729 上传时间:2019-05-20 格式:PDF 页数:33 大小:1.64MB
返回 下载 相关 举报
摘要
申请专利号:

CN201480041341.1

申请日:

2014.08.12

公开号:

CN105378601A

公开日:

2016.03.02

当前法律状态:

实审

有效性:

审中

法律详情:

实质审查的生效IPC(主分类):G06F 3/01申请日:20140812|||公开

IPC分类号:

G06F3/01; G06F1/16

主分类号:

G06F3/01

申请人:

英特尔公司

发明人:

G.库特利罗夫; M.马莫尼

地址:

美国加利福尼亚州

优先权:

13/972621 2013.08.21 US

专利代理机构:

中国专利代理(香港)有限公司72001

代理人:

徐红燕; 陈岚

PDF下载: PDF下载
内容摘要

描述了用于将图形投影到可用表面上,跟踪用户与投影图形的交互,并向用户提供关于跟踪的交互的反馈的系统和方法。在一些实施例中,经由更新的投影图形将反馈提供到表面上。在一些实施例中,经由电子屏幕提供反馈。

权利要求书

1.一种方法,包括:将图像投影到表面上;获得正与在所述表面上的所述投影图像交互的用户的深度数据;处理所述用户与所述投影图像的交互;基于处理所述用户与所述投影图像的交互的结果导致要被显示给所述用户的反馈。2.如权利要求1的方法,其中导致要被显示给所述用户的反馈包括将更新的图像投影到所述表面上。3.如权利要求1的方法,其中所述反馈被显示在电子屏幕上。4.如权利要求1的方法,其中所述用户与所述投影图像的交互包括使用手势来指示在所述投影图像中的一个或多个对象的选择或移动,所述方法还包括使用所获得的深度数据跟踪所述用户的手势,其中所述处理是基于跟踪的手势。5.如权利要求1的方法,其中所述用户与所述投影图像的交互包括触摸在所述投影图像上的一个或多个位置以选择或移动在所述投影图像中的一个或多个对象。6.如权利要求1的方法,还包括:使用相机捕获第一区域的初始深度图像;在所述第一区域内自动地检测用于将所述图像投影到其上的所述表面,其中所述表面满足一个或多个条件。7.如权利要求6的方法,还包括:当没有表面满足所述一个或多个条件时向所述用户提供在所述第一区域内没有表面满足所述一个或多个条件的信息;请求所述用户改变所述相机的位置以允许捕获第二区域的第二深度图像用于检测用于将所述图像投影到其上的适当表面。8.如权利要求1的方法,还包括:获得指示用于将所述图像投影到其上的表面的所述用户的初始深度图像。9.如权利要求1的方法,其中所述表面是在所述用户身体的部分上。10.如权利要求1的方法,还包括:计算表面模型和背景模型,其中所述表面模型是对应于所述表面的第一组数据,并且还有其中所述背景模型是对应于图像背景的第二组数据,其中周期性地更新所述表面模型和所述背景模型。11.如权利要求10的方法,其中针对每个所捕获的深度数据帧来更新所述表面模型和所述背景模型。12.如权利要求10的方法,还包括:从所述表面模型和所述背景模型计算前景模型,其中所述前景模型是包括在深度图像的前景中的对象的第三组数据,其中所述投影图像不包括将被投影到在所述前景中的对象上的部分。13.一种系统,包括:深度相机,其被配置成捕获深度图像;投影仪,其被配置成将生成图像投影到成像表面上;处理模块,其被配置成:  从所捕获的深度图像跟踪用户移动,其中所述用户的移动与所投影的生成图像交互以选择或移动在所述所投影的生成图像中的一个或多个对象;基于所述用户移动与所述所投影的生成图像的交互向所述用户提供反馈;  基于所述用户移动与所述所投影的生成图像的交互向所述用户提供反馈。14.如权利要求13的系统,其中经由所述所投影的生成图像提供所述反馈。15.如权利要求13的系统,其中经由电子屏幕提供所述反馈。16.如权利要求13的系统,其中所述处理模块还被配置成在第一深度图像中自动地检测用于将所述生成图像投影到其上的所述成像表面。17.如权利要求16的系统,其中所述处理模块还被配置成:确定所述成像表面是否满足一个或多个条件;请求所述用户改变所述深度相机的位置以获得第二深度图像用于检测用于将所述生成图像投影到其上的适当成像表面。18.如权利要求13的系统,其中所述深度相机捕获用户深度图像,并且还有其中所述处理模块还被配置成将由所述用户在所述用户深度图像中指示的指定表面识别为所述成像表面。19.如权利要求13的系统,其中所述处理模块还被配置成:计算表面模型和背景模型,其中所述表面模型是对应于所述成像表面的第一组数据,并且还有其中所述背景模型是对应于图像背景的第二组数据,其中周期性地更新所述表面模型和所述背景模型。20.一种系统,包括:用于将图形投影到表面上的装置;用于获得正与被投影在所述表面上的图形交互的用户的深度图像的装置;用于处理所述用户与所述投影图形的交互的装置;用于基于处理所述用户与所述投影图形的交互的结果向所述用户显示反馈的装置。

说明书

用于创建表面显示并与其交互的系统和方法

背景技术

诸如智能电话、平板、以及它们相关联的混合物(例如,“平板手机(phablet)”)的便携设备已经变成消费者电子行业的焦点。它们的市场成功很大程度上是由在若干关键技术组件中的进步驱动的,诸如移动处理器SOC(片上系统)、显示技术、以及电池效率。这些发展反过来增加了设备的便携性,以及使实现附加功能性。在核心技术组件中的改进正继续,并且很大程度上是用户输入/输出考虑而不是技术组件需求限制了便携设备的尺寸。因此,现在设备的尺寸和便携性主要依赖于其屏幕、其键盘以及其它输入机构的尺寸。

附图说明

在附图中图解了允许创建显示表面和允许用户与该显示表面交互的系统的示例。示例和附图是图解性的而不是限制性的。

图1是图解用户与具有投影仪、相机和屏幕的电子设备的示例交互的图。

图2是图解用户与具有投影仪和相机的电子设备的示例交互的图。

图3A-3F示出可以被跟踪的手的手势的示例的图形图解。

图4A-4D示出可以被跟踪的手的手势的示例的附加的图形图解。

图5是图解相机投影的示例模型的图。

图6A-6C是示出可以将显示投影到其上的表面和用于监控用户与该投影显示交互的相机的相关联位置的示例的图。

图7A是用于将显示投影在表面上并解释用户与显示的交互的系统的框图。

图7B是图解生成用于在表面上投影的显示并解释用户与显示的交互的处理器组件的示例的框图。

图7C是用于识别投影表面并将图像投影到该表面上的示例过程的流程图。

图8是用于检测在深度图像内的表面的示例技术的流程图。

图9是显示初始表面区域和可以被附加到该初始表面区域的候选毗连区域的图。

图10是用于检测显示表面并初始化表面模型的示例过程的流程图。

图11A-11F示出在检测显示表面并初始化表面模型的过程期间来自各种阶段的示例图像输出。

图12是用于跟踪用户的(一个或多个)手和(一个或多个)手指的示例过程的流程图。

图13是图解相机和投影仪系统的图。

图14是用于将图像从投影仪投影到表面上的示例过程的流程图。

图15是示出根据本公开的实施例用于可以被利用于实现跟踪技术的处理系统的架构示例的框图。

具体实施方式

针对为具有逐渐缩小的形状因素的便携设备提供方便的用户接口的挑战的一个解决方案是将来自设备的显示图形投影到任何可用表面上,并允许用户与所投影的显示交互就好像这是正在运行的触摸屏一样。采用这种途径,设备的形状因素不约束显示,并且也没有提供集成键盘的需要。通过将输入/输出机构从设备中分离,显示可以任意地大,并且用户交互远远更多样化,即使当设备继续被设计成更小时候。本公开描述了用于在便携的装备有投影仪的设备上使实现这样的用户体验的系统和方法。

现在将描述技术的各种方面和示例。以下描述提供明确的细节用于彻底理解并使实现这些示例的描述。然而本领域技术人员将理解的是,可以在没有这些细节中的许多的情况下实践技术。另外,可能没有详细示出或描述一些公知结构或功能,以便避免不必要地遮蔽相关描述。

下面介绍的描述中使用的术语意图以其最广泛的合理方式被解释,即使结合技术的某些明确示例的详细描述使用它。在下面可能甚至强调某些用语;然而,意图以任何约束方式被解释的任何术语将公开地并明确地被限定为如在该具体实施方式章节中这样的。

用户接口系统可以具有两个基本组件。第一组件向用户显示信息,例如诸如平板显示的显示屏,或被投影到垂直平坦的墙上的图像。显示组件向用户示出用户可以与其交互的图形的(或其它)元素的集合。

用户接口系统的第二组件解释与由显示组件呈现给用户的信息相关的用户移动。例如,平板可以在平板显示屏上向用户显示信息,并然后通过检测用户的手指触摸与显示信息相关的屏幕的哪里来解释用户移动。一般地,用户动作对显示信息有直接影响,并因此向用户提供指示由正在运行用户正与其交互的电子设备上的用户接口系统的应用如何解释用户动作的用户反馈。本公开描述用户接口系统,其中显示组件使用将图像投影到任意表面上的投影仪,并且当用户与被投影到表面上的图形交互时用户交互组件识别、跟踪并解释用户移动。

可以使用投影仪将图像或视频投影到表面上。可以使用不同的技术实现该功能性。例如,可以将光照射通过透明的图像,或可以例如通过使用激光扫描技术将图像直接地投影到表面上。可以将手持式投影仪(也被称为微投影仪)集成到诸如蜂窝电话的便携设备中以将图像和视频投影到附近表面上。在本公开的上下文中,可以使用能够将图形元素投影到表面上的任何技术—例如,数字光处理(DLP)、波束控制(beam-steering)、或硅基液晶(liquidcrystalonsilicon,LeoS)。

根据本公开,通过深度相机获取数据用于关于环境和用户移动的输入,并且跟踪组件处理并解释诸如用户移动的由深度相机得到的信息。深度相机以多个帧每秒捕获深度图像,一般是连续深度图像序列。每个深度图像包含每像素深度数据,即在每个深度图像中的每个像素具有值,其表示在成像场景中的对应对象和相机之间的距离。深度相机有时被称为三维(3D)相机。

深度相机可以除其它组件之外包含深度图像传感器、光学透镜、以及光照源。深度图像传感器可以依赖于若干不同的传感器技术之一。在这些传感器技术之间有飞行时间(称作“TOF”,包括扫描TOF或阵列TOF)、结构光、激光散斑模式技术、立体相机、主动立体传感器、以及阴影恢复形状技术(shape-from-shadingtechnology)。这些技术中的大多数依赖于供给它们自己的光照源的主动传感器。与此相反,诸如立体相机的被动传感器技术不供给它们自己的光照源,而是替代地依赖于周围环境照明。除了深度数据,相机还可以以与常规颜色相机所做的相同的方式生成颜色(“RGB”)数据,并且可以将颜色数据与深度数据结合用于处理。

由深度相机生成的数据相对于由RGB相机生成的数据具有若干优势。特别地,深度数据大大地简化了从前景中的对象分割场景背景的问题,深度数据一般对于照明条件中的改变是稳健的(robust),并且深度数据可以被有效地用于解释遮挡。使用深度相机,实时地识别并跟踪用户的手和手指、甚至复杂的手的构造是可能的。另外,本公开描述用于将图形元素投影到显示表面上以便这些图形元素清晰并不失真的方法,并且这些方法可以依赖于由深度相机生成的对相机和相机视场中的对象之间的距离测量。

2012年6月25日提交的题为“SystemandMethodforClose-RangeMovementTracking(用于近距离移动跟踪的系统和方法)”的美国专利申请No.13/532,609描述了基于从深度相机捕获的深度图像跟踪用户的手和手指、并使用跟踪到的数据来控制用户与设备的交互的方法,并且其因此以其整体被并入。2012年4月6日提交的题为“SystemandMethodforEnhancedObjectTracking(用于增强的对象跟踪的系统和方法)”的美国专利申请No.13/441,271描述了使用深度数据和振幅(或红外图像)数据的结合来识别并跟踪一个或多个用户身体部分的方法,并且其因此以其整体被并入到本公开中。2012年11月13日提交的题为“SystemandMethodforUserInteractionandControlofElectronicDevices(用于电子设备的用户交互与控制的系统和方法)”的美国专利申请No.13/676,017描述了基于深度相机的用户交互方法,并且其因此以其整体被并入。

图1是图解用户与具有投影仪4、相机2和屏幕6的电子设备的示例交互的图。该设备使用投影仪4将虚拟键盘3投影到表面上,并且用户与该虚拟键盘交互,例如进行键入运动以输入可以在设备的屏幕6中查看的文本。相机2实时捕获场景中的数据,并通过解释用户的手相对于投影键盘的姿势和构造的算法处理数据。

图2是图解用户与具有投影仪8和相机5的电子设备的另一示例交互的图。投影仪8为用户将图形投影到显示表面7上,并且用户与表面7交互。相机5实时捕获场景数据,并通过解释用户的手的姿势和构造的算法处理数据。在该实施例中,在由投影仪8投影到表面7上的图形中提供反馈,而不是在电子设备的屏幕上向用户提供反馈。

图3A-3F示出可以通过跟踪算法检测的若干示例手势。图3A示出其中手指展开分离的朝上打开的手。图38示出其中食指平行于拇指指向外而其它手指拉向手掌的手。图3C示出其中拇指和终止形成圆形、其中其它手指伸展的手。图3D示出其中拇指和食指形成圆形并且其它手指伸展的手。图3E示出其中手指接触并指向上的打开的手。图3F示出食指和中指展开分离并指向上,其中无名指和小指卷曲朝向手掌并且拇指接触无名指。

图4A-4D是可以通过跟踪算法检测的另外四种示例手势的图。图中的箭头指的是手指和手的移动,其中移动限定特定手势。图4A示出动态波浪式手势。图4B示出松弛闭合的手的手势。图4C示出其中拇指和食指接触的手的手势。图40示出动态挥击手势。手势的这些示例不意图是约束性的。跟踪算法也可以检测许多其它类型的移动和手势。

本公开利用包括投影仪和深度相机的设备。投影仪将图形显示投影到任意表面上,并且深度相机获得被用于识别和建模要被投影在其上的表面,并且还用于解释用户移动和手的姿势的数据。在一些实施例中,投影的图像可以包含个体元素,并且用户可以通过触摸在其上投影了它们的表面与所述元素交互。以这种方式,在实际上不使用物理触摸屏的情况下模仿触摸屏体验。在一些实施例中,可以检测手的姿势,并且可以通过系统解释该姿势以提示不同动作。例如,用户可以触摸表面上的虚拟对象、形成抓握运动、并进行用于将该虚拟对象从桌子推掉的运动。依赖于由应用开发者选择的实现,该动作可以导致虚拟对象长得更大、或消失、或被最大化。也可以将类似类型的交互实现为本公开的实施例。

在一些实施例中,可以将显示投影到用户身体的部分上,诸如手背、或手臂,并且然后用户可以类似地经由(一个或多个)用户自由的手的移动与投影显示交互。根据本公开,将显示投影在其上的表面可以具有任意3D形状。不要求该表面是平坦的,也不要求其是矩形的。

相机查看三维(3D)场景并将来自3D场景的对象投影到二维(2D)图像平面上。在本公开中,“图像坐标系”指的是与图像平面相关联的2D坐标系(x,y),而“世界坐标系”指的是与相机正查看的场景相关联的3D坐标系(X,Y,Z)。在这两个坐标系中,相机是在坐标轴的原点((x=0,y=0),或(X=0-,Y=0,Z=0))。

图5是相机投影的示例理想化模型,称为针孔相机模型。由于该模型是理想化的,为了简单起见,忽略了诸如透镜失真的相机投影的某些特性。基于该模型,在场景的3D坐标系(X,Y,Z)和图像平面的2D坐标系(x,y)之间的关系是:

其中dist是在相机中心(也被称为焦点)和在对象上的点之间的距离,并且d是在相机中心和对应于所述对象点的投影的图像中的点之间的距离(由深度相机明确地计算相机和对象之间的距离)。变量f是焦距并且是在2D图像平面的原点和相机中心(或焦点)之间的距离。因此,在2D图像平面中的点和3D世界中的点之间存在一对一映射。从3D世界坐标系(真实世界场景)到2D图像坐标系(图像平面)的映射被称为投影函数,而从2D图像坐标系到3D世界坐标系的映射被称为背向投影(back-projection)函数。

由于显示表面是任意的,因此作为系统初始化的一部分应确定它。在本公开的一些实施例中,可以由用户明确地选择显示表面。例如,用户可以指在特定表面处以指示要被用作显示表面的区域,并且可以基于由深度相机生成的数据跟踪用户的手的姿势以解释用户手势。

在一些实施例中,可以通过扫描深度相机的视图、寻找适当表面并选择具有最大表面面积的表面来自动地选择显示表面。在一些实施例中,可以约束系统只选择指定的表面作为可接受的。例如,可以约束系统只选择平坦的表面作为显示表面。

根据本公开,可以在表面的形状和尺寸上强加某些约束。如果不满足这些约束,那么可以请求用户改变系统的位置以便改变相机和投影仪的视图,以便找到确实满足约束的表面。一旦识别了表面,就可以调整由投影仪投影的图像以匹配显示表面的形状、尺寸和3D定向。在本公开中,描述两个用于发现适当显示表面的技术。

图6A-6C是示出可以将显示投影到其上的表面和用于监控用户与该显示交互的相机的相关联位置的示例的图。图6A示出平坦的显示表面;图6B示出凸的显示表面;以及图6C示出凹的显示表面。这些示例是非限制性的,并且也可以使用甚至更具复杂性的表面。

图7A是用于将显示投影在表面上并解释用户与显示的交互的示例系统的框图。深度相机704以交互式帧的速率捕获深度图像。当捕获每个深度图像时,其被存储在存储器708中并由处理器706处理。另外,投影仪702为用户投影图像用于与之交互,并且投影仪702还可以投影向用户提供反馈的图像。

图7B是图解可以被包括在处理器706中的组件的示例的框图,诸如图像获得模块710、更新模型模块712、表面检测模块714、跟踪模块716、应用模块718、图像生成模块720、和/或图像适配模块722。在处理器706和每个所图解的组件中可以包括另外的或更少的组件或模块。

如在本文中使用的那样,“模块”包括通用、专用或共享处理器,和典型地由处理器执行的固件或软件模块。依赖于特定实现或其它的考虑,模块可以是集中式的或者其功能性是分布式的。模块可以包括体现在计算机可读(存储)媒体中用于由处理器执行的通用或专用硬件、固件或软件。如在本文中使用的那样,计算机可读媒体或计算机可读存储媒体意图包括法定的(例如,在美国,在35U.S.C.101下的)所有媒体,并且意图明确地排除本质上非法定的所有媒体,达到该排除针对包括要被生效的计算机可读(存储)媒体的权利要求来说是必要的程度。已知的法定计算机可读媒体包括硬件(例如举几个例子来说,寄存器、随机存取存储器(RAM)、非易失性(NV)储存器),但是可以或可以不被限制于硬件。

图7C是用于识别投影表面并将图像投影到该表面上的示例过程的流程图。在阶段750,当由深度相机704捕获每个深度图像时图像获得模块710存储每个深度图像,其中当需要时可以通过系统的其它组件访问深度图像。然后在决策阶段755,表面检测模块714确定先前是否检测了显示表面。

如果先前没有检测显示表面(阶段755-否),那么在阶段760,表面检测模块714试图在深度图像内检测显示表面。存在可以被用于检测表面的若干技术,本公开中描述其中的两个,并且在阶段760可以使用其中的任一个。表面检测模块714的输出是场景的两个模型,表面模型和背景模型。

可以将表面模型表示为具有与在阶段750得到的深度图像相同的维度(高度和宽度)的图像,其中非表面像素被设置成“0”。给对应于表面的像素分配在所获得的深度图像中的对应像素的深度值。将背景模型表示为具有与在阶段750得到的深度图像相同的维度(高度和宽度)的图像,其中诸如表面像素或对应于前景对象的像素的非背景像素被设置成“0”。给对应于静态的非表面场景元素的像素分配从在阶段750获得的深度图像中得到的深度值。因为这两个模型中的一个或两个中的一些像素可能不是在所有时间都是可见的,因此随着更多信息变得对深度相机来说可见而逐渐地更新模型。另外,掩模是二进制图像,其中所有像素取或“0”或“1”的值。可以容易地通过将大于0的所有像素设置成1来从表面模型构建表面掩模。类似地,可以以相同的方式容易地从背景模型构建背景掩模。

表面检测模块714从深度图像数据中检测显示表面,并初始化表面模型和背景模型。图8是用于在由深度相机704得到的深度图像内检测表面的第一示例技术的流程图。在阶段810,在特设的基础上设置连续性阈值值。依赖于相机的深度数据的质量和精度,从一类型相机到另一类型相机,连续性阈值可以不同。其被用于确保最低限度的平滑表面几何形状。在下面详细描述连续性阈值的目的。

在阶段815,采用标准的平滑滤波器使深度图像平滑以降低嘈杂像素值的影响。然后在阶段820,识别初始表面区域(region)像素集。在一些实施例中,用户明确地指示要被使用的区域。例如,用户指向场景的一个范围(area)。可以使用基于深度相机的跟踪算法来辨认用户的手的姿势,并然后可以对对应于由用户指示的表面的像素采样并可以将其用于形成代表性的表面像素集。在一些实施例中,可以使用诸如选择图像的中心、或在图像的底部的区域的启发法来定位初始表面区域。

接下来在阶段825,使初始表面区域逐渐地向外成长,直到发现表面的边界。图9是显示初始表面区域910和可以被附加到该初始表面区域的候选毗连区域920的图。采用水平线打阴影示出初始表面区域910,并且采用斜线打阴影示出候选毗连区域920。由点打阴影示出与表面区域910不连续的区域930。评估属于在毗连区域920中的行或列的所有像素以确定是否应将该行或列附加到表面区域910。或者将毗连表面区域910的整个行或列附加到表面区域910,或者将其标记为表面的不连续边界930。可以反复地重复该过程直到在表面区域910的四侧上限定了表面边界。

在一些实施例中,以以下方式成长初始表面区域910。首先,计算在初始表面区域中所有像素之上的最大像素值,max_initSurface。然后,由在四个方向的任何方向中的相邻于当前区域的单个行或列逐渐地向外成长该区域,直到遇到不连续性。如果在候选行/列的最大像素值和max_initSurface之间的差超过连续性阈值,那么这被视为不连续性,并且不允许该表面区域在该方向中进一步成长。类似地,如果表面区域到达图像的边界,那么该图像边界也被视为表面区域的边界。当表面区域可能不再在任何方向中成长时,通过将来自深度图像的它们各自的深度值分配到表面区域中的所有像素并将0值分配到所有其它像素来创建表面模型。

返回图8,一旦识别了表面区域,就在决策阶段830分析表面区域以确定是否满足了由系统强加的约束。这时候可以评估各种类型的约束。例如,一个约束可以是在图像中的总像素的至少50%是表面区域集的部分。替换约束可以是表面区域像素应代表图像的矩形范围。如果没有满足这些约束中的任何约束(阶段830-否),那么在阶段835表面检测模块714返回指示没有检测到有效表面的false(错误)。应用模块718可以通知用户该结果,因此用户可以以有效表面在相机的视场中的这样方式改变设备的位置。

返回决策阶段830,如果检测到的表面确实满足系统约束(阶段830-是),那么在阶段840,将背景模型初始化为表面模型的补充。特别地,给在表面模型中等于“0”的每个像素分配其在背景模型中的原始深度值。在背景模型中,给在表面模型中具有非零值的所有像素分配“0”。

为了将清晰、不失真的图像投影到表面上,诸如图像的形状、尺寸以及其与投影仪的距离的表面的某些参数应被纳入考虑。使用从投影仪到表面的距离来为要被投影的图像设置焦点和景深。一旦检测到表面模型,就可以在阶段845由图像生成模块720计算这些参数值。

注意在上面描述的方法中,作为向外成长初始表面区域的方式的结果,表面区域被约束成具有矩形形状。现在描述用于检测表面的替换方法,其中可以放松该约束。图10是用于检测显示表面并初始化表面模型的示例过程的流程图。该替换技术允许用于表面的更一般形状,但是具有更大的计算要求和更高的实现复杂度。图11A-11F示出在图10中示出的示例过程期间来自各种阶段的示例图像输出。

基于由深度相机获得的深度图像,产生梯度图像,其包含在深度图像中的不同对象之间的边缘和不连续性。通过首先在阶段1005侵蚀(erode)原始深度图像、并且然后在阶段1010从原始深度图像中减去所侵蚀的图像来产生该梯度图像。

形态学(morphological)操作通过将构成元素(structuringelements)应用到图像对输入图像进行滤波。构成元素典型地为原始几何形状,并且其被表示为二进制图像。在一个实施例中,构成元素是5x5的矩形。对于二进制图像A,由构成元素B对A的侵蚀被定义为

其中

对所有x来说,

侵蚀操作以统一的方式有效地“收缩(shrink)”在二维图像平面中的每个对象远离对象的边界。在对深度图像应用侵蚀操作之后,其被从原始深度图像中减去,以得到梯度图像。图11A示出原始深度图像,将从其中提取表面。图11B示出来自阶段1010的示例梯度图像输出,其中清楚地辨别了轮廓的边界。

随后在阶段1015,通过固定值对梯度图像限定阈值(threshold)以移除较强的梯度。即,如果深度图像像素的值小于阈值值(对应于弱梯度),那么该像素值被设置成1,以及如果深度图像像素的深度值大于阈值值(对应于强梯度),那么该像素值被设置成0。阶段1015的输出是二进制图像。

接下来在阶段1020,找到被二进制限定阈值的梯度图像的被连接的成分,并给每一个分配唯一标签使得分离不同区域。例如,在图11C中,依赖于所有像素的位置和深度值将所有像素分离到不同区域中。对应于强梯度的图像区域有效地形成这些被连接的成分的边界。图11D示出从阶段1020输出的被标注的被连接的成分图像的示例。在块1025,然后成长被标注的被连接的成分以覆盖图像的更大范围。

成长被标注的被连接的成分是重复的过程,其中可以基于至少两个因素将候选像素添加到个别被标注的成分,所述至少两个因素为:候选像素与被标注的成分的距离,以及在被标注的成分和候选像素之间的像素深度值的累积的变化。在一些实施例中,在用于将候选像素添加到被标注的成分的决策过程中使用测地学距离。在本上下文中,测地学距离是两个像素之间的最近路径,其中每个像素具有依赖于在路径中的所有像素上深度值中的变化的权重。例如,权重可以是在相邻像素深度值之间的绝对差的和。如果权重大,那么很可能不应将候选像素与那个特定被标注的成分聚集。对于还没被分配成分的所有像素来说,可以计算到所有成分的测地学距离,并将该像素添加到与最低测地学距离值相关联的成分。图11E是阶段1025的输出的示例图像。

在成长成分之后,可以在阶段1030将(在它们的空间和深度值两方面都)互相接近的一些成分合并在一起。另外,在阶段1030可以丢弃太小或超过距相机的某距离的成分。图11F是阶段1030的输出的示例图像。最终,在阶段1035,可以将覆盖图像最大百分比的成分选为表面集。在图11F的示例中,可以将表面集选为靠近图像中心的矩形形状的对象;在该情况中从而可以将图像投影到该对象上。然而一般而言,表面集可以是任何一个或多个对象的表面,诸如桌子的表面。

一旦计算了表面区域,就在决策阶段1040对其分析以确定是否满足由系统强加的约束。这时候存在可以被评估的各种类型的约束。例如,一个约束可以是总像素的至少50%在该表面集中。替换地,表面像素应具有特定几何学形状(诸如圆形)。如果没有满足这些约束中的任何约束(阶段1040-否),那么在阶段1045,表面检测模块714返回指示没有检测到有效表面的false(错误)。应用模块718可以通知用户该结果,因此用户可以以有效表面在相机的视场中的这样的方式改变设备的位置。

返回决策阶段1040,如果检测到的表面确实满足系统约束(阶段1040-是),那么将背景模型初始化为表面模型的补充。特别地,给在表面模型中等于“0”的每个像素分配其在背景模型中的原始深度值。在背景模型中,给在表面模型中具有非零值的所有像素分配“0”。为了将清晰、不失真的图像投影到表面上,诸如图像的形状、尺寸以及其与投影仪的距离的表面的某些参数应被纳入考虑。使用从投影仪到表面的距离来为要被投影的图像设置焦点和景深。一旦检测到表面模型,就可以在阶段1055计算这些参数的值。这是用于检测表面的第二替换过程的结束。

返回图7C,如果先前初始化了表面模型(阶段755-是),那么在阶段765,更新模型模块712更新表面和背景模型,并且还计算另外的像素集(被称为前景集)。

如上面描述的那样,表面模型是对应于表面的所有像素的深度图像(其中所有其它像素被设置成“0”),而背景模型是对应于背景的所有像素的深度图像(其中所有其它像素被设置成“0”)。因为这两个模型的一些部分对深度相机来说可能不是可见的,因此随着更多信息变得可见而逐渐地更新模型。在一些实施例中,在每一帧更新模型。替换地,可以更不经常地更新它们,例如每10帧一次。除了表面和背景模型,在每一帧处构建包含既不是表面也不是背景像素的所有像素的前景集。

基于当前深度图像更新模型需要表面接近阈值值,其指示像素深度值是多么靠近表面。在特设的基础上设置接近阈值,并可以将其选择成与在阶段810限定的连续性阈值一致。例如,可以将接近阈值选择成是与连续性阈值同样的,或是连续性阈值的倍数(诸如1.5)。然后,如下完成更新表面和背景模型以及填充前景像素集。逐个像素处理当前深度图像。对于具有在表面的表面接近阈值内的值并且对邻近于表面区域的任何表面像素(即,在表面模型中具有非零值的像素),更新表面模型以包括该像素。替换地,只要邻近于表面区域的像素的整个行或列的像素值具有在表面的表面接近阈值之内的值,就更新表面模型以包括该行或列。如果图像像素具有比对应表面像素大至少表面接近阈值的值(指示其对应于比表面距相机更远的对象),那么可以利用该像素更新背景模型。如果图像像素具有比对应表面像素小至少表面接近阈值的值,那么将其包括在前景集中。将具有靠近表面的值但是不邻近于表面的图像像素也分配到背景,并因此更新背景模型。

在更新了表面和背景模型以及前景像素集之后,在决策阶段770,执行测试以检查是否移动了相机。从前一帧的表面模型掩模中减去来自当前帧的表面模型掩模。如果在当前表面模型和前一表面模型之间有显著差,那么这指示移动了相机(阶段770-是),并且重新初始化表面检测模块714。可以根据应用限定在表面模型之间的差的量并且该量可以依赖于相机帧速率、数据质量以及其它参数。在一些实施例中,使用在图像的总像素中的10%的差。如果在连续的表面模型中没有显著改变,那么在阶段775跟踪模块716跟踪用户的手和手指或在深度图像中移动的对象或身体部分。

前景像素集包括对应于用户的(一个或多个)手或移动对象的像素。将该前景像素集传递到跟踪模块716,其处理前景像素集以解释用户的(一个或多个)手或对象的构造和姿势。然后在阶段780将跟踪模块716的结果传递到应用模块718,其计算对用户动作的响应。在阶段785,应用模块718还生成要被示出在显示表面上的图像。例如,生成图像可以通过示出执行如由跟踪模块716解释的动作的用户被跟踪的手的表示和/或用户手的表示与一个或多个虚拟对象的交互来向用户提供反馈用于与电子设备交互。

图12是跟踪用户的(一个或多个)手和(一个或多个)手指的示例过程的流程图。在阶段1205,在阶段765由更新模型模块712生成了前景像素集之后获得前景像素集。前景像素集包含与用户的(一个或多个)手相关联的像素,但是还可以包含另外的像素。处理整个前景像素集以便在阶段1210在深度图像中搜索任何手。使用用语“二进制大对象(blob)”来表示一组邻近像素。在一些实施例中,对前景像素集的每个二进制大对象应用分类器,并且该分类器指示二进制大对象的形状和其它特征是否对应于手。(在大量的手的二进制大对象数据的个体样本上脱机地训练分类器。)在一些实施例中,还使用来自前面的帧的手的二进制大对象来指示二进制大对象是否对应于手。在一些实施例中,从前面的帧跟踪手的轮廓并将其匹配到来自当前帧的每个二进制大对象的轮廓。一旦找到了手的二进制大对象,就丢弃所有其它前景像素。

随后,在阶段1215在深度图像数据和/或相关联的振幅数据和/或相关联的RGB图像中检测特征。这些特征可以是例如手指尖、手指的基部接触手掌的点、以及可检测的任何其它图像数据。然后在阶段1220,将在阶段1215检测到的特征用于识别在图像数据中的个别手指。

在阶段1225,可以使用指尖的3D点和手指关节中的一些来构建手的骨骼模型。可以使用该骨骼模型来进一步改进跟踪质量,并给或者由于遮挡、或者由于错过特征、或者来自在相机视场外的手的部分的在早先阶段中未检测到的关节分配位置。此外,可以将运动学模型应用为骨骼的部分,以添加改进跟踪结果的进一步信息。2013年2月15日提交的题为“Model-BasedMulti-HypothesisTargetTracker(基于模型的多假设目标跟踪器)”的美国申请No.13/768,835描述了用于基于由深度相机捕获的数据跟踪手和手指构造的系统,并且其因此以其整体被并入。

可以基于显示表面的尺寸和形状以及从投影仪到显示表面的距离来调整投影图像的尺寸。例如,如果设备正投影到用户的手上,那么可能期望仅投影适合到手上的图像的部分。在阶段790由图像适配模块722基于显示表面的特定形状适配由应用生成的图像,以便其被清晰地聚焦而不失真。在阶段760由表面检测模块714先前得到确定应如何调整图像到显示表面的特定形状和特性的相关参数。最终,在阶段795由投影仪702将图像投影到显示表面上。然后在阶段750将控制传递回到图像获得模块710用于处理下一深度图像。

图13是图解具有相机1310、投影仪1320和表面1330的系统的图。相机1310查看表面1330并捕获由表面检测模块714处理以分析表面1330的形状的数据,并且投影仪1320将图形图像投影到表面1330上。在一些实施例中,相机和投影仪相对于彼此的位置是固定的。相机和投影仪两者都具有独立的本地坐标系,并且可以由3x4的变换矩阵T来表示从一个坐标系到另一个的变换。特别地,该变换T是旋转和平移,并且可以被写作T=[RIt],其中R是3x3的矩阵,其是矩阵T的前三列,并且t是3x1的列向量,其为矩阵T的第四列。另外,相机和投影仪每一个都具有在3D世界坐标和2D图像平面之间的映射,其中从2D到3D的变换是背向投影函数,而从3D到2D的变换是投影函数。

图14是根据图13中图解的系统、将图像从投影仪投影到表面上的示例过程的流程图。最初在阶段1405,如上面描述的那样通过表面检测模块714从由相机捕获的深度图像中检测表面并生成表面掩模。然后在阶段1410,在表面掩模的2D表示上构建要被投影的图像。在阶段1415,使用相机的背向投影函数将每个像素从2D图像背向投影到3D世界坐标中。在阶段1420,一旦点在3D世界坐标中,就可以使用转换矩阵T将它们转换成投影仪的本地坐标轴。然后在阶段1425使用投影仪的投影函数将每个点投影到2D投影仪图像平面上。最终在阶段1430,将该图像投影到表面上。在一些实施例中,可以按比例放大或缩小像素分辨率以计及在相机和投影仪之间的不同分辨率。

在本公开的一些实施例中,可以通过在3D空间中的等式明确地对表面建模,所述等式具有通用形式:

由在显示表面上的3D点集确定常数aibjck,…,g,其中该集的大小依赖于表面等式的次数的数目。例如,如果表面等式被约束为平坦平面,那么相关等式是ax+by+cz+d=0,

并使用在表面上的三个非共线点来求常数a、b、c、d的解。

在本公开的一些实施例中,监控如由跟踪模块716计算的用户的手的关节的位置以确定用户是否触摸了平面。例如,如果在3D关节位置和表面模型的最近的点之间的距离是在某阈值内(以计及在相机数据中的可能的噪声),那么可以生成触摸事件。

在一些实施例中,所投影的图像可以排除前景集,虽然在更新模型模块712中计算了它。以这种方式,包括用户的手的前景对象可以不干扰被投影到表面上的图像。另外,可以在每个帧处将投影图形图像适配成未被从投影仪的视野阻挡的表面区域的部分。

图15示出以在其内可以执行指令集的计算机系统的示例形式的机器的图式表示,所述指令集用于导致机器执行本文中讨论的方法论中的任何一个或多个。

在替换实施例中,机器操作为独立式设备或可以被连接(例如,网络连接)到其它机器。在网络连接的部署中,机器可以作为在客户端服务器网络环境中的服务器或客户端机器、或作为在点对点(或分布式)网络环境中的对等机器操作。

机器可以是服务器计算机、客户端计算机、个人计算机(PC)、用户设备、平板PC、膝上型计算机、机顶盒(STB)、个人数字助理(PDA)、蜂窝电话、iPhone、iPad、黑莓、处理器、电话、web电器、网络路由器、交换机或桥、控制台、手持式控制台、(手持式)游戏设备、音乐播放器、任何便携、移动、手持设备或能够执行指定要由该机器采取的动作的指令集(连续的或以其它方式)的任何机器。

虽然在示例性实施例中将机器可读媒体或机器可读存储媒体示出为单个媒体,但是用语“机器可读媒体”和“机器可读存储媒体”应被认为包括存储所述一个或多个指令集的单个媒体或多个媒体(例如,中央式或分布式数据库和/或相关联高速缓冲存储器和服务器)。术语“机器可读媒体”和“机器可读存储媒体”还应被认为包括能够存储、编码或携带用于由机器执行并导致机器执行目前公开的技术和创新的方法论中的任何一个或多个的指令集的任何媒体。

一般而言,可以将被执行以实现公开的实施例的例程实现为操作系统或指定应用、组件、程序、对象、模块或被称为“计算机程序”的指令序列的一部分。计算机程序典型地包含在各种时间在计算机的各种存储器和储存设备中的一个或多个指令集,当由计算机中的一个或多个处理单元或处理器读取或执行它们时,导致计算机执行操作以执行涉及本公开的各种方面的元件。

另外,虽然在完全运行的计算机和计算机系统的上下文中描述实施例,但是本领域技术人员将领会的是,各种实施例能够被分配为以各种各样形式的程序产品,以及不管被用于实际上实现分派的机器或计算机可读媒体的特定类型而本公开同样地应用。

机器可读存储媒体、机器可读媒体、或计算机可读(储存)媒体的进一步示例包括但不限于可记录类型媒体,除其它之外诸如易失性和非易失性存储设备、软盘和其它可移除盘、硬盘驱动器、光盘(例如,紧凑盘只读存储器(CDROM)、数字通用盘(DVD)等),以及传输类型媒体,诸如数字和模拟通信链路。

结论

除非上下文明确要求以其它方式,否则遍及说明书和权利要求,词语“包含”、“包含”等将被解释为包括性意思(即,就是说意义为“包括但不限于”),与排他性或穷举性意思相反。如本文中使用的那样,用语“被连接”、“被耦合”或它们的任何变体的意思是在两个或更多元件之间的直接的或非直接的任何连接或耦合。在元件之间的这样的耦合或连接可以是物理的、逻辑的、或它们的结合。另外,当在本申请中使用词语“本文中”、“在上面”、“在下面”以及类似意思的词语时,指的是本申请作为一个整体而不指的是本申请的任何特定部分。在上下文准许的情况下,在上面的具体实施方式中使用单数或复数的词语还可以包括各自的复数或单数。在提及两个或更多项目的列表中的词语“或”覆盖该词语以下解释中的所有:列表中的项目的任意、列表中的项目的所有、以及列表中的项目的任意结合。

本技术的示例的上面的具体实施方式不意图是穷举的或将本技术限制为上面公开的准确形式。虽然在上面出于图解性目的描述了用于技术的明确的实施例,但是如相关领域技术人员将公认的那样,在技术范围内的各种等价修改是可能的。虽然在本申请中以给定的顺序呈现过程或块,但是替换的实现可以执行具有以不同顺序执行的步骤的例程,或使用具有在不同顺序中的块的系统。可以删除、移动、添加、细分、结合、和/或修改一些过程或块以提供替换或子组合。另外,虽然有时将过程或块示出为被串行地执行,但是替代地可以并行地执行或实现这些过程或块,或者可以在不同的时间执行它们。另外在本文中声明的任何指定数目都只是示例。要理解的是,替换实现可以使用不一致的值或范围。

也可以将在本文中提供的各种图解和教导应用于除了上面描述的系统的系统。可以结合上面描述的各种示例的元件和动作以提供对技术的进一步实现。

在上面声明的任何专利和申请以及其它参考(包括可以被列在随附提交文件中的那些)都通过引用的方式以其整体被并入本文。如果必要,可以修改技术的方面以使用在此类参考中包括的系统、功能和概念来提供对技术的进一步实现。

可以根据上面的具体实施方式对技术进行这些和其它改变。虽然上面的描述描述了技术的某些示例、并描述了预期的最佳模式,但是不论在正文中上面看起来多详细,都可以以许多方式实践技术。在其明确实现中,系统的细节可以相当大地更改而仍由本文公开的技术所包括。如上面声明的那样,当描述技术的某些特征或方面时使用的特定术语不应被认为暗示该术语在本文中正被重新限定以被约束到与该术语相关联的技术的任何明确特性、特征或方面。一般而言,不应将在以下的权利要求中使用的用语解释为将技术限制到在说明书中公开的明确示例,除非上面的具体实施方式章节明确地限定这样的用语。因此,技术的实际范围不仅包括所公开的示例,而且包括在权利要求下的实践或实现技术的所有等价方式。

虽然在下面以某些权利要求形式呈现了技术的某些方面,但是申请人以任意数目的权利要求形式预期技术的各种方面。例如,虽然仅将技术的一方面陈述为35U.S.C.§112第六段下的装置加功能权利要求,可以同样地将其它方面体现为装置加功能权利要求,或是以其它形式,诸如在计算机可读媒体中被体现。(意图被视为U.S.C.§112?6下的任何权利要求将开始于词语“装置用于”)因此,申请人保留在提交申请后添加另外权利要求的权利以针对技术的其它方面追加这样的另外的权利要求形式。

用于创建表面显示并与其交互的系统和方法.pdf_第1页
第1页 / 共33页
用于创建表面显示并与其交互的系统和方法.pdf_第2页
第2页 / 共33页
用于创建表面显示并与其交互的系统和方法.pdf_第3页
第3页 / 共33页
点击查看更多>>
资源描述

《用于创建表面显示并与其交互的系统和方法.pdf》由会员分享,可在线阅读,更多相关《用于创建表面显示并与其交互的系统和方法.pdf(33页珍藏版)》请在专利查询网上搜索。

描述了用于将图形投影到可用表面上,跟踪用户与投影图形的交互,并向用户提供关于跟踪的交互的反馈的系统和方法。在一些实施例中,经由更新的投影图形将反馈提供到表面上。在一些实施例中,经由电子屏幕提供反馈。。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1