使用深度传感相机来增强演示的利记博彩app

文档序号:2790990阅读:291来源:国知局
专利名称:使用深度传感相机来增强演示的利记博彩app
技术领域
本发明涉及演示系统,尤其涉及使用深度传感相机的演示系统。
背景技术
在商业、教育和其他情形中,人们经常使用一个或多个软件应用来进行演示。通常,该软件将在连接到投影仪的计算机上运行,并且一组幻灯片将被投影在屏幕上。然而, 在某些情况下,幻灯片的投影可能由于屏幕的几何结构或投影仪的位置而失真。通常,进行演示的人(称为演示者)希望站在屏幕前方。当这样做时,演示的一部分可被投影到演示者上,这使得难以看见该演示,并且由于射到其眼睛上的高强度光而使得演示者感到不舒服。另外,如果演示者在屏幕旁,则演示者控制该演示并指向该演示的部分来突出显示该演示的这些部分将是有困难的。

发明内容
提供了一种使用深度相机和(任选地)视觉相机结合计算机和投影仪(或其他显示设备)来自动调整所投影的演示的几何结构并允许基于姿势识别和/或人类跟踪技术来与演示交互的演示系统。一个实施例包括显示视觉演示,自动检测所显示的视觉演示在视觉上失真,并自动纠正所显示的视觉演示来修补所检测的失真。一个实施例包括处理器、与该处理器通信的显示设备、与该处理器通信的深度相机、以及与该处理器通信的存储器设备。存储器设备存储演示。处理器使得该演示由显示设备来显示。处理器从深度相机接收深度图像,并识别该深度相机的视野中的人所作出的一个或多个姿势。处理器基于所识别的一个或多个姿势执行一个或多个动作来调整演示。—个实施例包括接收深度图像,使用深度图像来自动检测投影仪和目标区域之间的遮挡物,响应于并基于检测到遮挡物来自动调整演示使得演示将不被投影到遮挡物上, 以及在目标区域上显示所调整的演示而不将该演示显示在遮挡物上。提供本发明内容以便以简化形式介绍将在以下的具体实施方式
中进一步描述的一些概念。本发明内容并非旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。此外,所要求保护的主题不限于解决在本发明的任一部分中提及的任何或所有缺点的实现。


图1是捕捉设备、投影系统和计算系统的一个实施例的框图。图2是计算系统和集成的捕捉设备和投影系统的一个实施例的框图。图3描绘了骨架的示例。图4示出可被用来跟踪运动并基于所跟踪的运动来更新应用的计算系统的示例实施例。
图5示出可被用来跟踪运动并基于所跟踪的运动来更新应用的计算系统的另一示例实施例。图6是描述用于提供演示、与演示交互并调整演示的过程的一个实施例的流程图。图7A是描述用于自动调整演示来纠正失真的过程的一个实施例的流程图。图7B是描述用于自动调整演示来纠正失真的过程的一个实施例的流程图。图8A描绘了失真的演示。图8B描绘了被调整来纠正失真的演示。图9是描述用于在演示期间解决遮挡物的过程的一个实施例的流程图。图9A是描述用于响应于并基于检测到遮挡物来自动调整演示,使得演示将不被投影到遮挡物上的过程的一个实施例的流程图。图9B是描述用于响应于并基于检测到遮挡物来自动调整演示,使得演示将不被投影到遮挡物上的过程的一个实施例的流程图。图IOA描绘了被人遮挡的演示。图IOB描绘了响应于遮挡被调整的演示。图IOC描绘了响应于遮挡被调整的演示。图11是描述用于使用姿势来与演示交互的过程的一个实施例的流程图。图12是描述用于突出显示演示的一部分的过程的一个实施例的流程图。图13描绘了其一部分被突出显示的演示。
具体实施例方式提供了使用深度相机以及(任选地)视觉相机结合计算机和投影仪(或其他显示设备)的演示系统。对深度相机和(任选的)视觉相机的使用允许该系统自动纠正所投影的演示的几何结构。与该演示的交互(切换幻灯片、指向等)通过利用基于深度相机和(任选的)视觉相机的输出的姿势识别/人类跟踪来实现。另外,深度相机和/或视觉相机的输出可用于检测投影仪和屏幕(或其他目标区域)之间的遮挡物(例如,演示者),以便调整演示使其不投影到遮挡物上,并且任选地重新组织该演示来避免遮挡。图1是包括连接到捕捉设备20和投影仪60并与这两个设备进行通信的计算设备 12的演示系统的一个实施例的框图。在一实施例中,捕捉设备20可被配置成经由任何合适的技术,包括例如飞行时间、结构化光、立体图像等来捕捉包括深度图像的带有深度信息的视频,该深度图像可包括深度值。根据一实施例,捕捉设备20可将深度信息组织为“Z层”,即可与Z轴正交的从深度相机沿着其视线延伸的层。如图1所示,捕捉设备20可包括相机组件23。根据一示例实施例,相机组件23可以是可捕捉场景的深度图像的深度相机。深度图像可包括所捕捉的场景的二维O-D)像素区域,其中2-D像素区域中的每一像素可表示深度值,诸如例如以厘米、毫米等计的、所捕捉的场景中的物体距相机的距离。如图1所示,根据一示例实施例,图像相机组件23可包括可用于捕捉场景的深度图像以及视觉图像的红外(IR)光组件25、三维(3-D)相机沈、和RGB (视觉图像)相机观。例如,在飞行时间分析中,捕捉设备20的顶光组件25可将红外光发射到场景上,然后可使用传感器(未示出),使用例如3-D相机沈和/或RGB相机观,来检测来自场景中的一个或多个目标和物体的表面的反向散射光。在某些实施例中,可以使用脉冲式红外光从而可以测量出射光脉冲和相应的入射光脉冲之间的时间差并将其用于确定从捕捉设备20到场景中的目标或对象上的特定位置的物理距离。另外,在其他示例实施例中,可将入射光波的相位与出射光波的相位进行比较来确定相移。然后可以使用相移来确定从捕捉设备到对象或目标上的特定位置的距离。根据另一示例实施例,可使用飞行时间分析,通过经由包括例如快门式光脉冲成像的各种技术来分析反射光束随时间的强度变化以间接地确定从捕捉设备20到目标或对象上的特定位置的物理距离。在另一示例实施例中,捕捉设备20可使用结构化光来捕捉深度信息。在这样的分析中,图案化光(即,被显示为诸如网格图案、条纹图案等已知图案或不同图案的光)可经由例如顶光组件25被投影到场景上。在撞击到场景中的一个或多个目标或对象的表面时, 作为响应,图案可变形。图案的这种变形可由例如3-D相机沈和/或RGB相机28 (和/或其他传感器)来捕捉,然后可被分析以确定从捕捉设备到目标或物体上的特定位置的物理距离。在一些实现中,顶光组件25与相机沈和观分开,使得可以使用三角测量来确定距相机沈和观的距离。在一些实现中,捕捉设备20将包括传感顶光的专用顶传感器或具有顶滤波器的传感器。根据另一实施例,捕捉设备20可包括两个或更多物理上分开的相机,这些相机可从不同角度查看场景来获得可被解析以生成深度信息的视觉立体数据。其他类型的深度图像传感器也可被用来创建深度图像。捕捉设备20还可包括话筒30。话筒30可包括可接收声音并将其转换成电信号的变换器或传感器。根据一个实施例,话筒30可用于减少目标识别、分析和跟踪系统10中的捕捉设备20与计算系统12之间的反馈。另外,话筒30可用于接收也可被提供给计算系统 12的音频信号。在一示例实施例中,捕捉设备20还可包括可与图像相机组件23进行通信的处理器32。处理器32可包括可执行指令的标准处理器、专用处理器、微处理器等,这些指令包括用于接收深度图像、生成适当的数据格式(例如,帧)并将数据传送到计算系统12的指令。捕捉设备20还可包括存储器组件34,存储器组件34可存储由处理器32执行的指令、3-D相机和/或RGB相机所捕捉的图像或图像帧、或任何其他合适的信息、图像等等。 根据一示例实施例,存储器组件34可包括随机存取存储器(RAM)、只读存储器(ROM)、高速缓存、闪存、硬盘、或任何其他合适的存储组件。如图1所示,在一个实施例中,存储器组件 34可以是与图像捕捉组件22和处理器32进行通信的单独的组件。根据另一实施例,存储器组件34可被集成到处理器32和/或图像捕捉组件22中。如图1所示,捕捉设备20可经由通信链路36与计算系统12进行通信。通信链路36可以是包括例如USB连接、火线连接、以太网电缆连接等的有线连接和/或诸如无线 802. lib,802. llg、802. Ila或802. Iln连接等无线连接。根据一个实施例,计算系统12可经由通信链路36向捕捉设备20提供可用于确定例如何时捕捉场景的时钟。另外,捕捉设备20将由例如3-D相机沈和/或RGB相机洲捕捉的深度信息和视觉(例如,RGB)图像经由通信链路36提供给计算系统12。在一个实施例中,深度图像和视觉图像以每秒30帧的速率传送。计算系统12然后可使用该模型、深度信息和捕捉的图像来例如控制诸如演示软件等应用。计算系统12包括深度图像处理和骨架跟踪模块50,该模块使用深度图像来跟踪可由深度相机检测的一个或多个人。深度图像处理和骨架跟踪模块50将跟踪信息提供给应用52,应用52可以是诸如微软公司的PowerPoint等演示软件应用。音频数据和视觉图像数据也被提供给应用52、深度图像处理和骨架跟踪模块50以及识别器引擎M。应用52 或深度图像处理和骨架跟踪模块50也可向识别器引擎M提供跟踪信息、音频数据和视觉图像数据。在另一实施例中,识别器引擎M从深度图像处理和骨架跟踪模块50直接接收跟踪信息,并从捕捉设备20直接接收音频数据和视觉图像数据。识别器引擎讨与过滤器60、62、64、……、66的集合相关联,每一过滤器包括关于可由捕捉设备20检测的任何人或对象执行的姿势、动作或状况的信息。例如,来自捕捉设备20的数据可由过滤器60、62、64、……、66来处理,以便标识一个用户或一组用户何时执行了一个或多个姿势或其他动作。那些姿势可与应用52的各种控制、对象或状况相关联。 由此,计算环境12可借助过滤器使用识别器引擎M来解释移动。图2的捕捉设备20向计算系统12提供RGB图像(或其他格式或色彩空间的视觉图像)和深度图像。深度图像可以是多个观测到的像素,其中每个观测到的像素具有观测到的深度值。例如,深度图像可包括所捕捉的场景的二维0-D)像素区域,其中2-D像素区域中的每一像素可具有深度值,如所捕捉的场景中的对象距捕捉设备的距离。图2是演示系统的第二实施例的框图。图2的系统类似于图1的系统,除了投影系统70被集成在捕捉设备70中之外。由此,处理器32可以与投影系统70进行通信来配置投影系统70并接收来自投影系统70的反馈。系统(图1的系统或图2的系统)将使用RGB图像和深度图像来跟踪用户的移动。 例如,系统将使用深度图像来跟踪人的骨架。可以使用许多方法来使用深度图像跟踪人的骨架。使用深度图像来跟踪骨架的一个合适的示例在2009年10月21日提交的美国专利申请12/603,437 "Pose Tracking Pipeline (姿势跟踪流水线),,(以下称为,437申请) 中提供,该申请通过整体引用合并于此。‘437申请的过程包括获取深度图像,对数据进行降采样,移除和/或平滑高变度噪声数据,标识并移除背景,以及将前景像素中的每一个分配给身体的不同部位。基于这些步骤,系统将使一模型拟合到该数据并创建骨架。该骨架将包括一组关节和这些关节之间的连接。图3示出了具有15个关节(j0、jl、j2、j3、j4、j5、 j6、j7、j8、j9、j 10、j 11、j 12、j 13和j 14)的示例骨架。这些关节中的每一个表示骨架中该骨架可以在χ、y、ζ方向上枢转的位置或身体上关注的位置。也可使用用于跟踪的其他方法。合适的跟踪技术也在以下四个美国专利申请中公开,所有这些申请通过整体引用结合于此2009年5月四日提交的美国专利申请12/475,308 "Device for Identifying and Tracking Multiple Humans Over Time (用于随时间标识并跟踪多个人的设备)”;2010年 1月四日提交的美国专利申请12/696,^2‘‘Visual Based Identity Tracking(基于视觉的身份跟踪),,;2009年12月18日提交的美国专利申请12/641,788 "Motion Detection Using Depth Images (使用深度图像的运动检测”;以及2009年10月7日提交的美国专利申请 12/575,388 "Human Tracking System(人类跟踪系统)”。
识别器引擎讨包括多个过滤器60、62、64、……、66来确定姿势或动作。过滤器包括定义姿势、动作或状况以及该姿势、动作或状况的参数或元数据的信息。例如,包括一只手从一侧到另一侧的运动的挥手可以是使用过滤器之一识别的姿势。另外,指向运动可以是可由过滤器之一识别的另一姿势。然后可为该姿势设定参数。在姿势是挥手的情况下,参数可以是该手必须达到的阈值速度、该手必须行进的距离(绝对的,或相对于用户的整体大小)、以及识别器引擎对发生姿势的置信评级。用于姿势的这些参数可以随着时间在各应用之间、在单个应用的各上下文之间、或在一个应用的一个上下文内变化。过滤器可以是模块化的或是可互换的。在一个实施例中,过滤器具有多个输入 (这些输入中的每一个具有一类型)以及多个输出(这些输出中的每一个具有一类型)。第一过滤器可用具有与第一过滤器相同数量和类型的输入和输出的第二过滤器来替换而不更改识别器引擎体系结构的任何其他方面。过滤器不需要具有任何参数。对过滤器的输入可包括诸如关于用户的关节位置的关节数据、在关节处相交的骨所形成的角度、来自场景的RGB色彩数据、以及用户的某一方面的变化速率等内容。来自过滤器的输出可包括诸如正作出给定姿势的置信度、作出姿势运动的速度、以及作出姿势运动的时间等内容。识别器引擎M可具有向过滤器提供功能的基本识别器引擎。在一实施例中,识别器引擎M实现的功能包括跟踪所识别的姿势和其他输入的随时间输入 (input-over-time)存档、隐马尔可夫模型实现(其中模型化系统被假定为马尔可夫过程-其中当前状态封装了确定将来状态所需的任何过去状态信息,因此不必为此目的而维护任何其他过去状态信息的过程-该过程具有未知参数,并且隐藏参数是从可观察数据来确定的)、以及求解姿势识别的特定实例所需的其他功能。过滤器60、62、64、……、66在识别器引擎M之上加载并实现,并且可利用识别器引擎M提供给所有过滤器60、62、64、……、66的服务。在一个实施例中,识别器引擎54 接收数据来确定该数据是否满足任何过滤器60、62、64、……、66的要求。由于这些所提供的诸如解析输入等服务是由识别器引擎讨一次性提供而非由每一过滤器60、62、64、……、 66提供的,因此这一服务在一段时间内只需被处理一次而不是在该时间段对每一过滤器处理一次,因此减少了确定姿势所需的处理。应用52可使用识别器引擎M所提供的过滤器60、62、64、……、66,或者它可提供其自己的、插入到识别器引擎M中的过滤器。在一实施例中,所有过滤器具有启用该插入特性的通用接口。此外,所有过滤器可利用参数,因此可使用以下单个姿势工具来诊断并调节整个过滤器系统。关于识别器引擎M的更多信息可在2009年4月13日提交的美国专利申请 12/422, 661 "Gesture Recognizer System Architecture (姿势识别器系统体系结构),,中找到,该申请通过整体引用合并于此。关于识别姿势的更多信息可在2009年2月23日提交的美国专利申请12/391,150‘。tandard Gestures (标准姿势)”;以及2009年5月29日提交的美国专利申请12/474,655 "Gesture Tool (姿势工具)”中找到,这两个申请通过整体引用结合于此。图4示出了计算系统的一个示例实施例,该计算系统可以是图1和2所示的计算系统12。诸如上面参考图1和2所描述的计算系统12等的计算系统可以是多媒体控制台100。如图4所示,多媒体控制台100具有含有一级高速缓存102、二级高速缓存104和闪存R0M(只读存储器)106的中央处理单元(CPU) 101。一级高速缓存102和二级高速缓存104临时存储数据并因此减少存储器访问周期数,由此改进处理速度和吞吐量。CPU 101 可以设置成具有一个以上的核,以及由此的附加的一级和二级高速缓存102和104。闪存 R0M106(—个或多个ROM芯片)可存储在多媒体控制台100通电时在引导进程的初始阶段期间加载的可执行代码。图形处理单元(GPU) 108和视频编码器/视频编解码器(编码器/解码器)114形成用于高速、高分辨率图形处理的视频处理流水线。数据经由总线从图形处理单元108输送到视频编码器/视频编解码器114。视频处理流水线将数据输出到A/V (音频/视频)端口 140以传输到电视机或其他显示器。存储器控制器110连接到GPU 108以方便处理器访问各种类型的存储器112,诸如但不局限于RAM(随机存取存储器)。多媒体控制台100包括较佳地在模块118上实现的I/O控制器120、系统管理控制器122、音频处理单元123、网络接口控制器124、第一 USB主控制器126、第二 USB控制器 1 和前面板I/O子部件130。USB控制器126和1 用作外围控制器142⑴-142 O)、无线适配器148、和外置存储器设备146 (例如闪存、外置⑶/DVD ROM驱动器、可移动介质等) 的主机。网络接口 1 和/或无线适配器148提供对网络(例如,因特网、家庭网络等)的访问并且可以是包括以太网卡、调制解调器、蓝牙模块、电缆调制解调器等的各种不同的有线和无线适配器组件中任何一种。提供系统存储器143来存储在引导进程期间加载的应用数据。提供媒体驱动器 144且其可包括DVD/⑶驱动器、蓝光驱动器、硬盘驱动器、或其它可移动媒体驱动器等。媒体驱动器144对于多媒体控制台100可以内置或外置的。应用数据可经由媒体驱动器144 访问,以由多媒体控制台100执行、回放等。媒体驱动器144经由诸如串行ATA总线或其他高速连接(例如IEEE 1394)等总线连接到I/O控制器120。系统管理控制器122提供涉及确保多媒体控制台100的可用性的各种服务功能。 音频处理单元123和音频编解码器132形成具有高保真度和立体声处理的对应的音频处理流水线。音频数据经由通信链路在音频处理单元123与音频编解码器132之间传输。音频处理流水线将数据输出到A/V端口 140以供外部音频用户或具有音频能力的设备再现。前面板I/O子部件130支持暴露在多媒体控制台100的外表面上的电源按钮150 和弹出按钮152以及任何LED(发光二极管)或其它指示器的功能。系统供电模块136向多媒体控制台100的组件供电。风扇138冷却多媒体控制台100内的电路。CPU 101、GPU 108、存储器控制器110、和多媒体控制台100内的各个其它组件经由一条或多条总线互连,包括串行和并行总线、存储器总线、外围总线、和使用各种总线架构中任一种的处理器或局部总线。作为示例,这种架构可以包括外围部件互连(PCI)总线、 PCI-Express 总线等。当多媒体控制台100通电时,应用数据可从系统存储器143加载到存储器112和 /或高速缓存102、104中并在CPU 101上执行。存储器或高速缓存可被实现为用于存储处理器可读代码的多个存储设备,该处理器可读代码对处理器编程来执行此处所描述的方法。应用可呈现在导航到多媒体控制台100上可用的不同媒体类型时提供一致的用户体验的图形用户界面。在操作中,媒体驱动器144中包含的应用和/或其它媒体可从媒体驱动器144启动或播放,以向多媒体控制台100提供附加功能。多媒体控制台100可通过将该系统简单地连接到投影仪、电视机或其它显示器而作为独立系统来操作。在该独立模式中,多媒体控制台100允许一个或多个用户与该系统交互。然而,随着通过网络接口 1 或无线适配器148可用的宽带连接的集成,多媒体控制台100还可作为较大网络社区中的参与者来操作。当多媒体控制台100通电时,可以保留设定量的硬件资源以供多媒体控制台操作系统作系统使用。这些资源可以包括存储器保留(例如,16MB)、CPU和GPU周期(例如, 5%)、网络带宽(例如,SlAs)等。因为这些资源是在系统引导时保留的,所以所保留的资源对应用而言是不存在的。具体地,存储器保留较佳地足够大,以包含启动内核、并发系统应用和驱动程序。 CPU保留较佳地为恒定,使得若所保留的CPU用量不被系统应用使用,则空闲线程将消耗任何未使用的周期。对于GPU保留,通过使用GPU中断来显示由系统应用生成的轻量消息(例如,弹出窗口),以调度代码来将弹出窗口呈现为覆盖图。覆盖图所需的存储器量取决于覆盖区域大小,并且覆盖图较佳地与屏幕分辨率成比例缩放。在并发系统应用使用完整用户界面的情况下,优选使用独立于应用分辨率的分辨率。定标器可用于设置该分辨率,从而无需改变频率,也就不会引起TV重新同步。在多媒体控制台100引导且系统资源被保留之后,就执行并发系统应用来提供系统功能。系统功能被封装在一组在上述所保留的系统资源中执行的系统应用中。操作系统内核标识是系统应用线程而非用户应用线程的线程。系统应用优选地被调度为在预定时间并以预定时间间隔在CPU 101上运行,以便为应用提供一致的系统资源视图。进行调度是为了对在控制台上运行的应用将高速缓存分裂最小化。当并发系统应用需要音频时,则由于时间敏感性而异步调度音频处理给用户应用。多媒体控制台应用管理器(如下所述)在系统应用活动时控制应用音频水平(例如, 静音、衰减)。输入设备(例如,控制器142(1)和142( )由应用和系统应用共享。输入设备不是所保留的资源,但却在系统应用和应用之间切换以使其各自具有设备的焦点。应用管理器较佳地控制输入流的切换,且驱动程序维护关于焦点切换的状态信息。相机沈、观和捕捉设备20可经由USB控制器1 或其他接口来定义控制台100的附加输入设备。图5示出了计算系统220的一个示例实施例,该计算系统可用于实现图1和2所示的计算系统12。计算系统环境220只是合适的计算系统的一个示例,并且不旨在对所公开的主题的使用范围或功能提出任何限制。也不应该将计算系统220解释为对示例性操作系统220中示出的任一组件或其组合有任何依赖性或要求。在某些实施方式中,所描绘的各种计算元素可包括被配置成实例化本公开的各具体方面的电路。例如,本公开中使用的术语电路可包括被配置成通过固件或开关来执行功能的专用硬件组件。在其他示例实施方式中,术语电路可包括由实施可用于执行功能的逻辑的软件指令配置的通用处理单元、存储器等。在电路包括硬件与软件组合的示例实施方式中,实现者可编写实施逻辑的源代码且该源代码可被编译成可由通用处理单元处理的机器可读代码。因为本领域技术人员可以明白现有技术已经进化到硬件、软件或硬件/软件组合之间几乎没有差别的地步,因而选择硬件或是软件来实现具体功能是留给实现者的设计选择。更具体地,本领域技术人员可以明白软件进程可被变换成等价的硬件结构,而硬件结构本身可被变换成等价的软件进程。因此,对于硬件实现还是软件实现的选择是设计选择并留给实现者。计算系统220包括计算机Ml,计算机241通常包括各种计算机可读介质。计算机可读介质可以是能由计算机241访问的任何可用介质,而且包含易失性和非易失性介质、 可移动和不可移动介质。系统存储器222包括易失性和/或非易失性存储器形式的计算机存储介质,如只读存储器(ROM) 223和随机存取存储器(RAM) 2600基本输入/输出系统 224 (BIOS)包括如在启动时帮助在计算机Ml内的元件之间传输信息的基本例程,它通常储存在ROM 223中。RAM沈0 (—个或多个存储器芯片)通常包含处理单元259可以立即访问和/或目前正在操作的数据和/或程序模块。作为示例而非限制,图4示出了操作系统 225、应用程序226,其他程序模块227,和程序数据228。计算机241还可以包括其他可移动/不可移动、易失性/非易失性计算机存储介质。仅作为示例,图4示出了对不可移动、非易失性磁介质进行读写的硬盘驱动器238,对可移动、非易失性磁盘2M进行读写的磁盘驱动器239,以及对诸如CD ROM或其它光学介质等可移动、非易失性光盘253进行读写的光盘驱动器M0。可以在示例性操作环境中使用的其他可移动/不可移动、易失性/非易失性计算机存储介质包括但不限于,磁带盒、闪存卡、数字多功能盘、数字录像带、固态RAM、固态ROM等等。硬盘驱动器238通常由不可移动存储器接口,诸如接口 234连接至系统总线221,磁盘驱动器239和光盘驱动器240通常由可移动存储器接口,诸如接口 235连接至系统总线221。以上描述和在图5中示出的驱动器及其相关联的计算机存储介质为编程计算机 241提供对计算机可读指令、数据结构、程序模块和其他数据的存储。例如,在图5中,硬盘驱动器238被示为存储操作系统258、应用程序257、其它程序模块256和程序数据255。注意,这些组件可以与操作系统225、应用程序226、其他程序模块227和程序数据2 相同, 也可以与它们不同。给操作系统258、应用程序257、其他程序模块256、以及程序数据255 提供了不同的编号,以说明至少它们是不同的副本。用户可以通过输入设备,诸如键盘251 和定点设备252(通常被称为鼠标、跟踪球或触摸垫),向计算机241输入命令和信息。其他输入设备(未示出)可以包括话筒、操纵杆、游戏手柄、圆盘式卫星天线、扫描仪等等。这些和其他输入设备通常由耦合至系统总线的用户输入接口 236连接至处理单元259,但也可以由其他接口和总线结构,诸如并行端口、游戏端口或通用串行总线(USB),来连接。相机沈、观和捕捉设备20可经由用户输入接口 236来定义控制台100的附加输入设备。监视器242或其他类型的显示设备也经由接口,诸如视频接口 232,连接至系统总线221。除监视器之外,计算机还可以包括可以通过输出外围接口 233连接的诸如扬声器243和打印机243之类的其他外围输出设备。捕捉设备20可经由输出外围接口 233、网络接口 237或其他接口连接到计算系统220。计算机241可使用至一个或多个远程计算机,诸如远程计算机对6的逻辑连接在网络化环境中操作。远程计算机246可以是个人计算机、服务器、路由器、网络PC、对等设备或其他公共网络节点,通常包括上文参考计算机241所描述的许多或全部元件,虽然图5中只示出了存储器存储设备M7。图中所示逻辑连接包括局域网(LAN)245和广域网 (WAN) M9,但也可以包括其它网络。这样的联网环境在办公室、企业范围计算机网络、内联网和因特网中是常见的。当在LAN联网环境中使用时,计算机241通过网络接口或适配器237连接至LAN 2450当在WAN联网环境中使用时,计算机241通常包括调制解调器250或用于通过诸如因特网等WAN 249建立通信的其他装置。调制解调器250可以是内置或外置的,它可以经由用户输入接口 236或其他适当的机制连接至系统总线221。在网络化环境中,相对于计算机 241所描述的程序模块或其部分可被存储在远程存储器存储设备中。作为示例而非局限,图 5示出应用程序248驻留在存储器设备247上。可以理解,所示的网络连接是示例性的,且可以使用在计算机之间建立通信链路的其他手段。上述计算系统、捕捉设备和投影仪可用于显示演示。图6是用于使用上述组件来显示演示的过程的一个实施例的流程图。在步骤302,用户将准备演示。例如,用户可使用微软公司的PowerPoint来准备用于演示的一张或多张幻灯片。这些幻灯片将在没有针对任何潜在遮挡或失真的任何纠正的情况下准备。在步骤304,将显示演示。例如,如果用户使用PowerPoint 创建了演示,则用户将使用PowerPoint来显示该幻灯片放映。演示将使用计算系统12、捕捉设备20和投影仪60来显示。连接到计算系统12的投影仪60将演示投影到屏幕、墙或其他表面上。在步骤306,系统将自动纠正演示的失真。例如,如果投影仪60的表面不是水平的,在其上进行投影的屏幕不是水平的,或者投影仪相对于屏幕的定位不是适当角度,则演示的投影可能失真。下文将描述更多细节。步骤306包括计算系统 12故意扭曲一个或多个投影的图像来抵消所检测的失真。在步骤308,系统将自动纠正一个或多个遮挡物。例如,如果演示者(或其他人或物体)在投影仪60和屏幕(或墙或其他表面)之间,使得演示的一部分被投影到该人(或物体)上,则该人(或物体)将遮挡演示的一部分。在步骤308,系统将自动补偿该遮挡物。在某些实施例中,可补偿多于一个遮挡物。在步骤310,一个或多个用户可如下所述使用姿势来与演示交互。如下将更为详尽地描述步骤306-310。尽管图6以具体次序示出了各步骤,但图6中描述的步骤可以按其他次序执行,某些步骤可以同时执行,并且可跳过步骤306-310中的一个或多个。图7A和7B是描述用于自动纠正演示中的失真的两个过程的流程图。图7A和7B 的过程可以作为图6的步骤306的一部分来执行。这两个过程可以同时或顺序地执行。在一个实施例中,这两个过程可被组合成一个过程。图7A的过程将自动纠正演示的由于投影仪60不是水平而引起的失真。在一个实施例中,投影仪60将包括倾斜传感器61 (见图1和图幻。该倾斜传感器可包括加速计、倾角计、回转仪或其他类型的倾斜传感器。在图7A的步骤402,系统将从倾斜传感器获得指示投影仪60是否为水平的数据。如果投影仪60是水平的(步骤404),则不需要对演示作出任何改变来纠正由于投影仪被倾斜而引起的失真(步骤406)。如果投影仪不是水平的 (步骤404),则计算系统12将在步骤408自动扭曲或以其他方式调整演示来抵消投影仪不是水平的效应。在步骤410,将显示经调整/扭曲的演示。。该演示可通过使用本领域已知的软件技术使得显示画面的一端更宽来调整/扭曲。在不与地板垂直的屏幕的情况下,倾斜传感可能不是有用的(例如,想象投影在天花板上)。使用深度信息,有可能确保投影的角的3D坐标在3D空间中形成完美矩形(具有直角)。在某些实施例中,在不使用3D信息的情况下,有可能仅从相机的视点来修补失真。
图7B是描述用于由于演示被投影到其上的表面的几何结构或由于投影仪相对于演示被投影到其上的表面的几何结构而调整/扭曲演示的过程的一个实施例的流程图。在步骤452,系统将传感演示的视觉图像。如上所讨论的,捕捉设备20将包括能捕捉视觉图像(例如,RGB图像)的图像传感器。该RGB图像将包括屏幕(或其他投影表面)上的演示的图像。传感的图像将在步骤454中与已知图像进行比较。例如,如果演示是PowerPoint 演示,则将存在具有用于定义幻灯片的数据的PowerPoint文件。计算系统12将访问来自 PowerPoint的数据来访问要演示的实际已知图像,并将来自PowerPoint文件的实际已知图像与来自捕捉设备20的视觉RGB图像的所传感的图像进行比较。将比较两个图像的几何结构来查看来自已知图像的各个成分以及总体演示的形状是否与来自步骤452的所传感的视觉图像中的相同。例如,计算系统12可标识所传感的图像中的项目的边缘是否呈预期角度(例如,来自PowerPoint文件的实际已知图像中的边缘的角度)。或者,计算系统 12可以标识投影在屏幕中的视觉演示是否是具有直角的矩形。如果来自捕捉设备20的视觉RGB图像的所传感的图像的几何结构匹配来自 PowerPoint文件的实际已知图像的几何结构(步骤456),则不需要对演示作出任何改变 (步骤458)。如果几何结构不匹配(步骤456),则计算系统12将自动调整/扭曲演示来纠正所传感的图像和实际已知图像的几何结构之间的差异。确定投影仪是否水平(图7A的步骤404-404)和将实际已知图像与所传感的图像进行比较来查看几何结构是否匹配(图 7B的步骤452-456)是自动检测可视地显示的演示是否在视觉上失真的示例。图8A和8B示出了在步骤408和460中执行的调整/扭曲。图8A示出了投影仪 60在屏幕(或墙)470上显示演示472。演示472是失真的,如演示的顶部比演示的底部宽。 步骤408或步骤460中的任一个可用于调整/扭曲演示472。图8B示出了在步骤408或步骤460调整/扭曲演示472来补偿失真之后的演示472。因此,图8B示出了演示472为具有四个直角的矩形,且演示的顶部与演示的底部一样宽。由此,图8A在步骤408和/或 460之前,图8B示出了步骤408和/或步骤460之后(或其结果)。图9是描述用于自动补偿遮挡物的过程的一个实施例的流程图。图9的方法是图 6的步骤308的实现的一个示例。在图9的步骤502,计算系统12将从捕捉设备20获得一个或多个深度图像和一个或多个视觉图像。在步骤504,计算系统12使用深度图像和/或视觉图像来找出演示被投影到其上的屏幕(或其他表面)。例如,视觉图像可用于识别演示,且该信息然后可用于使用深度图像来找出该表面的坐标。在步骤506,计算系统12将自动检测演示的全部或一部分是否被遮挡。例如,如果一个人站在屏幕(或其他表面)前方, 则该个人遮挡该演示。在该情形中,演示的一部分实际上被投影到该人上。当将演示的一部分投影到该人上时,其他人将难以查看该演示并且被投影的人可能不舒服。例如,被投影的人要在投影仪的光照射该人的眼睛的情况下看清楚是有困难的。有许多用于自动检测投影是否被遮挡的手段。在一个示例中,使用深度图像来跟踪房间中的一个或多个人。基于知道演示被投影到其上的屏幕或表面的坐标以及房间中的一个或多个人的坐标,系统可以计算一个或多个人是否在投影仪60和其上进行投影的表面之间。即,跟踪骨架,并且确定该骨架的位置是否在投影仪和目标区域之间,使得该骨架将阻挡演示到目标区域上的投影。在另一实施例中,该系统可使用深度图像来确定一个人是否在投影仪前方的位置。在另一实施例中,可使用视觉图像来确定在人的形状内的演示的视觉图像中是否有失真。在步骤508,计算系统12将响应于并基于检测到遮挡物来自动调整演示,使得该演示将不被投影到遮挡物上。在步骤510,将自动显示经调整的演示。有可能通过将投影的3D坐标与理想平面进行比较来在不使用骨架的情况下检测每像素遮挡。与该平面相差很多的像素被认为是被遮挡的。还有可能某些像素未被遮挡, 但是它们离屏幕相当远(想象投影到太小的屏幕上)。在这一情况下,也可修补该信息以便仅显示在适合平面的部分上。当确定演示被遮挡时,系统具有至少三个选择。第一,系统可以什么都不做并且继续将演示投影到遮挡物上。第二,系统可以检测屏幕的被遮挡部分。幻灯片中的每一像素将被分类成可见/遮挡类。对于被分类为遮挡的像素,将出现恒定颜色(例如,黑色),使得演示者将清晰可见。或者,可使被分类为被遮挡的、显示演示的像素变暗。另一好处是演示者将不会因来自投影仪的亮光而感到目眩,因为瞄准眼睛的像素可能被关闭(例如,投影为黑色)。未被遮挡的像素将描绘预期演示。第三个选项是演示的投影将仅把演示投影到未遮挡部分上,并且演示将被重新组织以使得本来将被投影到遮挡物上的内容将被重新安排到该演示的不同部分来使得内容将被正确地显示。图9A是描述用于调整演示以使得演示将不投影到遮挡物(例如,站在屏幕前方的人)上的过程的一个实施例的流程图。图9A的方法是图9的步骤508的一个示例实现。在步骤M0,计算设备12将确定哪些像素被投影到遮挡物上,以及哪些像素未被投影到遮挡物上。在步骤M2,被投影到遮挡物上的所有像素将被改为一共同颜色(例如,黑色)。黑色像素将表现为关闭。未被投影到遮挡物上的那些像素将继续基于PowerPoint文件(或其他类型的文件)来演示它们本来要演示的内容。由此,未遮挡像素将示出没有任何改变的原始演示(步骤M4)。图9B是描述仅投影到屏幕而不投影到遮挡物上并且还重新组织幻灯片的内容以使得没有任何内容丢失的过程的一个实施例的流程图。图9B的过程是步骤508的实现的另一示例。在步骤560,计算系统12将标识哪些像素被遮挡(类似于步骤M0)。在步骤 562,计算设备12将访问原始PowerPoint文件(或其他文件),并标识幻灯片中的哪些内容项本来要被显示在被遮挡的像素中。在步骤564,计算系统12将所有被遮挡的像素改为共同的颜色(例如,黑色)。在步骤566,计算系统12将重新排列PowerPoint幻灯片(或其他类型的文件)中的项目的组织,使得本来在幻灯片中的所有项目将在该幻灯片的可见部分中。即,本来要被投影到屏幕上但被遮挡的项目将被移至幻灯片的其他部分,使得它们不被遮挡。在一个实施例中,计算系统12将访问原始PowerPoint文件,制作该文件的副本, 重新排列幻灯片中的各个项目,并重新投影该幻灯片。图10A-10C提供了执行图9A和9B的过程的效果的示例。图10A示出了在执行图 9A或9B的过程之前的情形。投影仪60在屏幕470上显示演示570。演示570包括直方图、标题“三年研究”、陈述“收益增长了 43%”的文本、以及照片。如可以见到的,文本和照片的一部分被人580遮挡,使得两者都被显示在人580上。如上所讨论的,图9A将所有被遮挡的像素改为共同的颜色(例如,黑色),使得演示不被投影到人580上。这由图10B来描绘,图10B示出了与原始演示570不同的经调整的演示572,使得演示572不被投影到人 580上。相反,投影仪演示572的一部分包括黑色像素,使得演示表现为被投影在人580周围。
如上所讨论的,图9B描绘了重新排列演示中的项目使得所有项目将被显示在遮挡物周围的过程。这由图IOC来描绘。图IOA示出了在图9B的过程之前显示的投影,图IOC 示出了在图9B的过程之后显示的演示。如可以看见的,演示574是演示570的经调整的版本,使得演示574不被投影到人580上,并且演示570中的项目被重新排列,使得所有项目仍可见。例如,被投影到人580的头上的照片被移至演示574的不同部分,使其在图IOC中是可见的。另外,文本“收益增长了 43%”被移动,使得所有文本在演示574中是可见的。图11是描述用于使用姿势来与演示交互的过程的一个实施例的流程图。图11的过程是图6的步骤310的一个示例实现。在图11的步骤602,计算系统12将从捕捉设备 20获得一个或多个深度图像和一个或多个视觉图像。在步骤604,计算系统12将使用上述技术来跟踪对应于房间中的一个或多个人的一个或多个骨架。在步骤606,计算系统12将使用识别器引擎M和适当的过滤器来识别一个或多个姿势。在步骤608,计算系统12将基于所识别的一个或多个姿势执行一个或多个动作来调整演示。例如,如果计算系统12识别从右到左的手移动,则计算系统12将自动将演示前进到下一幻灯片。如果计算系统识别从左到右挥动的手运动,则系统将演示移至前一幻灯片。也可利用其他姿势和其他动作。可由计算系统12识别的另一姿势可以是人指向演示的一部分。响应于该指向, 计算系统可调整演示来突出显示演示中被指向的部分。图12是描述用于执行识别用户指向演示的一部分并突出显示演示的该部分的方法的一个实施例的流程图。图12的过程是图11的步骤608的一个示例实现。在图12的步骤640,计算系统12将使用一个或多个深度图像和一个或多个视觉图像来找出演示被投影到其上的屏幕(或其上进行投影的其他表面)。例如,可使用视觉图像来标识演示在哪里,然后可使用深度图像来计算其上进行投影的表面的三维位置。在步骤642,计算系统12将使用以上讨论的骨架信息来确定用户的手臂的方向,使得计算系统12可确定从用户的手臂沿着用户的手臂的轴发出的射线 (或向量)。在步骤644,计算系统12将计算该射线与演示被投影到其上的表面的交点。 在步骤646,计算系统12将标识在该射线和投影表面的交点处的、演示中的一个或多个项目。计算系统12通过将该交点的真实世界三维坐标转换成演示中的二维坐标,并确定什么项目在对应于该二维坐标的位置处,来标识演示中被人指向的部分。计算系统12可访问 PowerPoint文件来标识演示中的项目。在步骤648,突出显示所标识的交点处的项目。有许多突出显示演示中的对象的不同方式。在一个实施例中,项目可加上下划线、 改变其背景、变为加粗、变为斜体、加圈、改变以便在其前面具有部分透明的云或其他对象、 改变颜色、闪光、被指向、变为动画等等。并非需要一种类型的突出显示。图13示出了图12的突出显示射线和投影表面的交点处的对象的过程的结果的一个示例。如可以见到的,投影仪60将演示670投影到表面470上。演示人672指向演示 670。图13示出了来自用户的手臂的射线674(虚线)。在实际实现中,该射线将不可见。 射线674指向演示670。具体地,在射线674与投影表面470的交点处是文本“收益增长了 43%”。为了突出显示该文本(原始文本是白色背景上的黑色墨水),背景将颜色从白色改为黑色,且文本的颜色从黑色改为白色(或另一颜色)。也可使用许多其他类型的突出显
7J\ ο上述用于与演示交互并纠正演示的技术将使得演示变得更有效。尽管用结构特征和/或方法动作专用的语言描述了本主题,但可以理解,所附权利要求书中定义的主题不必限于上述具体特征或动作。相反,上述具体特征和动作是作为实现权利要求的示例形式公开的。本发明的范围旨在由所附权利要求书来定义。
权利要求
1.一种用于显示内容的方法,包括 显示视觉演示(304);自动检测所显示的视觉演示在视觉上失真(306、402、404、452、妨4、456);以及自动纠正所显示的视觉演示来修补所检测到的失真(306、408、460)。
2.如权利要求1所述的方法,其特征在于所述自动纠正所显示的视觉演示来修补所检测到的失真包括故意扭曲一个或多个所投影的图像来抵消所检测到的失真并显示经扭曲的一个或多个所投影的图像。
3.如权利要求1或2所述的方法,其特征在于所述自动检测所显示的视觉演示在视觉上失真包括使用物理传感器来检测投影仪不是水平的。
4.如权利要求1、2或3所述的方法,其特征在于所述自动检测所显示的视觉演示在视觉上失真包括传感所述视觉演示的视觉图像并标识所述视觉演示的边缘是否呈预期角度。
5.如权利要求1、2或3所述的方法,其特征在于所述自动检测所显示的视觉演示在视觉上失真包括传感所述视觉演示的视觉图像并标识所述视觉演示是否是具有直角的矩形。
6.如权利要求1-5中的任一项所述的方法,其特征在于所述显示视觉演示包括基于文件中的内容来创建一个或多个图像;以及所述自动检测所显示的视觉演示在视觉上失真包括传感所述视觉演示的视觉图像并确定所传感的视觉图像不匹配所述文件中的内容。
7.如权利要求1所述的方法,其特征在于所述显示视觉演示包括基于文件中的内容来创建一个或多个图像; 所述自动检测所显示的视觉演示在视觉上失真包括传感所述视觉演示的视觉图像并确定所传感的视觉图像是否匹配所述文件中的内容;以及所述自动纠正所显示的视觉演示来修补所检测到的失真包括故意扭曲一个或多个所投影的图像来纠正所传感的视觉图像和所述文件中的内容之间的差异,所述自动纠正在视觉上显示的演示还包括显示经扭曲的一个或多个所投影的图像。
8.如权利要求7所述的方法,其特征在于,还包括 从深度相机接收深度图像;基于所述深度图像来识别人所作出的一个或多个姿势;以及基于所识别的一个或多个姿势执行一个或多个动作来调整所述演示。
9.一种用于显示内容的装置,包括 处理器(101,108,259);与所述处理器进行通信的显示设备(60、70);与所述处理器进行通信的深度相机(23),所述处理器从所述深度相机接收深度图像, 并识别所述深度相机的视野中的人作出的一个或多个姿势;以及与所述处理器进行通信的存储器设备(106、112、143、144、222、238、253、2M),所述存储器设备存储演示,所述处理器使得所述演示被所述显示设备显示,所述处理器基于所识别的一个或多个姿势执行一个或多个动作来调整所述演示。
10.如权利要求9所述的装置,其特征在于 所述演示包括一组幻灯片;以及所述一个或多个动作包括响应于人的预定动作来改变幻灯片。
11.如权利要求9所述的装置,其特征在于 所述演示包括一组幻灯片;所述处理器识别所述人正在用人的手作出挥手运动;以及所述处理器响应于所述人正在用人的手作出挥手运动来改变幻灯片。
12.如权利要求9、10或11所述的装置,其特征在于 所述一个或多个姿势包括所述人指向所述演示的一部分;调整演示的所述一个或多个动作包括突出显示所述演示的被所述人所指向的部分;以及所述处理器识别所述人正进行指向并确定所述人正指向所述演示中的何处。
13.如权利要求12所述的装置,其特征在于所述处理器通过计算来自所述人的手臂的射线与用于所述演示的投影表面之间的交点来确定所述人正指向所述演示中的何处。
14.如权利要求13所述的装置,其特征在于所述处理器通过将所述交点的真实世界三维坐标转换成所述演示中的二维坐标并基于所述演示中的二维坐标添加图形来突出显示所述演示中正被所述人指向的部分。
15.如权利要求14所述的装置,其特征在于所述处理器通过突出显示文本来突出显示所述演示中正被所述人指向的部分。
全文摘要
本发明公开了一种使用深度传感相机来增强演示的系统和方法。使用深度相机和任选的视觉相机结合计算设备和投影仪来显示演示并自动纠正所投影的演示的几何结构。与该演示的交互(切换幻灯片、指示等)通过利用基于深度相机和(任选的)视觉相机的输出的姿势识别/人类跟踪来实现。另外,深度相机和/或视觉相机的输出可用于检测投影仪和屏幕(或其他目标区域)之间的遮挡物,以便调整演示使其不投影到遮挡物上,并且任选地重新组织该演示来避免遮挡。
文档编号G03B29/00GK102253711SQ20111008137
公开日2011年11月23日 申请日期2011年3月24日 优先权日2010年3月26日
发明者A·阿德莱尔, S·凯茨 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1