交互式投影的系统和方法与流程

文档序号:24638604发布日期:2021-04-09 20:50阅读:128来源:国知局
交互式投影的系统和方法与流程

本申请是申请日为2015年12月30日、题为“交互式投影的系统和方法”的中国专利申请201580071520.4的分案申请。

本公开文本涉及用于投影图像的系统和方法。本公开文本尤其涉及用于交互式区域的投影并且将交互式区域映射到复杂表面的系统和方法。



背景技术:

主动产品显示可用于展示各种产品的高级功能。现有技术系统通常是被动显示系统,其中在屏幕上向观看者所呈现的内部很少有机会用于反馈。在其他现有技术系统中,采用了触摸屏幕计算机来允许观看者选择复查内容并且提供反馈。然而,这些系统需要大量的客户设置或者极为昂贵。此外,这些系统由于触摸屏幕的频繁磨损需要大量维护。

例如,underkoffler等人的美国专利no.7,598,942公开了在显示屏幕上可视化地呈现要素的手势接口。多个相机捕捉移动并且检测位置和方位,并且向连接到计算机的处理器生成输出信号。处理器将相机输出转译为手势信号,该手势信号被解释为输入信息。计算机使用该输入信息来生成控制计算机功能的命令。

maggioni的美国专利no.7,034,807公开了用于与显示器交互的系统。该系统包括用于记录显示器附近的指针对象的记录单元。计算机连接到该记录单元并且用于确定指针对象的位置。该系统需要多个相机和多个反射表面。

plagemann等的美国专利公开no.2012/0212413公开了用于接收图像信息并且将其转译为计算机指令的系统。针对单个预定动作空间接收图像信息从而识别运动。结合镜子、棱镜或光缆的相机用于收集图像信息。然而,在任意给定的时间只有一个动作区域受到监视。

sze等的美国专利公开no.2012/0162077公开了用于检测对象在虚拟工作区域的位置和运动的输入设备。相机朝向感兴趣区域。感兴趣区域被“平坦”光束照亮。对象被置于感兴趣区域并被照亮。相机捕捉对象的图像并且将其发送到处理器。处理器处理该图像以获得位置和移动。基于移动,处理器产生计算机指令。

因此,需要用于投影显示器的交互式环境的系统和方法。该系统应当为用户提供主动选择观看的内容的选项。该系统应当易于设置并且应当能够易于运输到其他场所。



技术实现要素:

所公开的系统将“可触”图像投影在能够进行用户交互的三维对象上。可触图像由触发区域和内容区域来限定。

该系统包括连接到计算机处理器的投影仪和红外相机。在一个实施例中,内容服务器和内容数据库也经由网络连接到计算机。待投影的内容存储在数据库中。在设置期间,系统捕捉三维目标表面的基线图像。系统然后变换内容以校正投影位置和目标曲率。在操作期间,经校正的内容图像与触发区域的类似变换图像一同被投影到三维目标表面。红外相机然后针对触发事件对于触发区域进行监视,并且当触发事件发生时将其报告给服务器。触发事件发生在将对象放置在触发区域内预定时间段。当存在触发事件的报告时,系统取回附加的存储内容,进行变换,并将其投影到目标屏幕上。计算机处理器使用仿射变换和非仿射变换来平移和“扭曲(warp)”图像内容,以便匹配目标对象的表面。

在可替换的实施例中,系统使用面部识别软件将与特定识别出的用户相关联的预定义内容投影到对象的表面上。

动作区域能够包括各自对应于不同内容的多个分开限定的动作区域。当用户与动作区域进行交互时,系统识别用户的存在,并且投影相关联的内容。仿射变换能够通过线性代数来描述。在线性代数中,线性变换能够由矩阵来表示。如果t是rn到rm的线性变换映射,并且是n项的列向量,那么

对于一些m×n矩阵a,称为t的变换矩阵。存在一些作者所优选的包括行矩阵的变换矩阵的可替换表示。

矩阵允许任意线性变换以一致的形式进行表示,适于进行计算。这也允许变换易于进行连接(通过将它们的矩阵相乘)。

线性变换不是唯一能够通过矩阵来表示的变换。在n维欧几里得空间rn上非线性的一些变换能够表示为n+1维空间上的线性变换rn+1。这些包括仿射变换(诸如平移)和投影变换。为此,4×4变换矩阵广泛用于3d计算机图形。这些n+1维变换矩阵根据它们的用途被称为仿射矩阵、投影变换矩阵或者更普遍地非线性变换矩阵。关于n维矩阵,n+1维矩阵能够描述为增广矩阵。

在物理学中,主动变换是确实改变系统的物理位置的变换,并且即使不存在坐标系也有意义,而被动变换是物理系统的坐标描述中的改变(基的改变)。主动变换和被动变换之间的区别是重要的。默认情况下,通过变换,数学家通常意为主动变换,而物理学家也意为此。

换言之,被动变换是指当从两个不同坐标框架观看相同对象的描述。

如果具有函数形式的线性变换t(x),通过由t对于标准基的每个向量进行变换,易于确定变换矩阵a,然后将结果插入到矩阵的列中。换言之,

例如,函数t(x)=5x是线性变换。应用上述过程(在此情况下假设n=2)表示出

应当注意的是,向量和算符的矩阵表示取决于所选择的基;相似的矩阵源于可替换的基。然而,寻找分量的方法仍然相同。

在数学上,向量v能够在基向量中利用坐标来表达,该坐标即[v]e=[v1v2...vn]t

现在,在给定的基中,表达变换矩阵a作用在上的结果:

对于给定的基e,通过将a作用于每个来确定矩阵a的元素ai,j,并且观察响应向量该等式限定了矩阵a的第j列的元素ai,j。

为了利用矩阵表示仿射变换,我们能够使用齐次坐标。这意味着将2阶向量(x,y)表示为3阶向量(x,y,1),并且对于更高维度类似。利用该系统,平移能够利用矩阵乘法来表示。函数形式x′=x+tx;y′=y+ty变为

所有的普通线性变换都包括在仿射变换的集合中,并且能够描述为简化形式的仿射变换。因此,任意线性变换也能够表示为一般的变换矩阵。后者通过以下方式获得:将对应的线性变换矩阵扩展一行和一列,除了右下角之外(必须设置为1),将剩余的部分填满零。例如,顺时针旋转矩阵从上面变为:

利用包含齐次坐标的变换矩阵,平移能够与所有其他类型的变换进行无缝混合。原因在于,在实投影空间中,实平面被映射为w=1的平面,所以实欧几里得空间中的平移能够表示为实投影空间中的剪切。虽然平移在笛卡尔坐标所描述的2d或3d欧几里得空间中是非线性变换,但是它在齐次坐标所描述的3d或4d投影空间中变为简单的线性变换(剪切)。

通过两个或更多个仿射变换的组合能够获得更多的仿射变换。例如,假设具有向量(t′x,t′y)的平移t',逆时针角度θ的旋转r,因子(sx,sy)的缩放s以及向量(tx,ty)的平移t,t'rst的结果m是:

当使用仿射变换时,坐标向量的齐次分量(通常称为w)将从不改变。因此,能够安全地假设它一直是1并且将其忽略。然而,当使用透视投影时,事实并非如此。

对于本公开文本特别重要的另一变换类型是投影变换。平行投影用于沿平行线将点投影在图像平面上,但是透视投影沿着从单个点(称为投影中心)发散的线将这些点投影到图像平面上。这意味着当对象距离投影中心远时,对象的投影较小,当其较近时,投影更大。这种变换用于修正投影仪相对于三维目标对象的位置。

最简单的透视投影使用原点作为投影中心,并且将z=1作为图像平面。该变换的函数形式然后是x′=x/z;y′=x/z。我们能够通过齐次坐标表达成:

在实施矩阵乘法之后,齐次分量wc通常将不等于1。因此,为了映射回到实平面,我们必须通过将每个分量除以wc来执行齐次相除或透视相除:

更复杂的透视投影能够通过将这样的一个透视投影与旋转、缩放、平移以及剪切进行组合来组成,从而将图像平面和投影中心移动到他们所期望的位置。

非仿射变换(诸如,将二维表面变为三维表面的变换)理论上能够通过将三维表面视为畸变,或者换言之,偏离真正的直线投影来完成。这种类型的变换用于修正三维目标对象的复杂形状。

虽然畸变不规则或者遵循许多图案,最常遇到的畸变是径向对称或者近乎于此。径向畸变通常能够分类为“桶形”畸变或“枕形”畸变。

在桶形畸变中,图像放大随着到光轴的距离而减小。透明效应是已映射在球体(或者桶)周围的图像的效应。采用半球形视图的鱼眼透镜利用这种类型的畸变作为将无限大的对象平面映射为有限的图像区域的方式。在缩放透镜中,桶形畸变出现在透镜焦距范围的中间,并且在范围的广角端最差。

在枕形畸变中,图像放大随着到光轴的距离而增大。可见的效果是,未穿过图像中心的线被向内弯曲,从而朝向图像的中心,类似枕形。

两种类型的混合,有时被称为“胡子”畸变或者复杂畸变,较不普遍但是也不少见。它开始于桶形畸变靠近图像中心,并且朝向图像外围逐渐变为枕形畸变,从而使得该帧的上半部的水平线看起来像八字胡。

这些畸变是径向畸变。它们表明从对象到图像的非线性径向映射。例如,表面上看枕形畸变只不过是大半径相比小半径的过大半径的映射。相反地,桶形畸变只不过是大半径相比小半径的减小半径的映射。

径向畸变能够利用布朗畸变模型(也称为布朗-康拉第模型)进行修正。布朗-康拉第模型既修正径向畸变,也修复透镜中物理元件未完全对准所导致的切向畸变。后者也称为偏心畸变。

其中:

(xd,yd)=利用指定透镜投影到图像平面上的畸变图像点,

(xu,yu)=理想的针孔相机所投影的未畸变图像点,

(xc,yc)=畸变中心(假设为主要点),

kn=nth=径向畸变系数,

pn=nth切向畸变系数,

以及

...=无限系列。

在我们的情况下,桶形和枕形畸变是二次的,意味着它们随着到中心的距离的平方而增加。在胡子畸变(mustachedistortion)中,四次(4度,degree4)项是重要的:在中心,2度桶形畸变占主导,而在边缘枕形方向的4度畸变占主导。其他畸变在理论上是可能的-中心是枕形或者=或者更高阶畸变(6度、8度)-但是在一般情况下通常不发生,并且更高阶畸变相对主要的桶形和枕形效果较小。

桶形畸变通常会具有负项k1,而枕形畸变具有正值。胡子畸变将具有非单调的径向几何序列,其中对于一些r,序列将改变符号。

附图说明

现在将参考下面的附图:

图1是优选实施例的系统架构图。

图2a是优选实施例的相机/投影单元的示意图。

图2b是优选实施例的相机/投影单元的示意图。

图3是优选实施例的显示器的平视图。

图4是优选实施例的显示器的平视图。

图5是优选实施例的显示器的顶视图。

图6是优选实施例的显示器的平视图。

图7是优选实施例的显示器的平视图。

图8是优选实施例的显示器的平视图。

图9是优选实施例的显示器的平视图。

图10是优选实施例的显示器的平视图。

图11是优选实施例的校准方法的流程图。

图12是优选实施例的运行时过程的流程图。

图13是优选实施例的投影映射的运行时过程的流程图。

图14是优选实施例的面部识别过程的流程图。

图15是优选实施例的系统架构图。

图16a是优选实施例的正视图。

图16b是优选实施例的正视图。

图16c是图16a中的对象的上方的假象平坦表面的示意图。

图16d是图16a中的对象的表面的示意图。

图17是优选实施例的触发区域的等轴测视图。

图18a是根据本公开文本的一个实施例的可触摸区域应用的示意图。

图18b是根据本公开文本的一个实施例的触发数据结构的示意图。

图18c是根据本公开文本的一个实施例的内容数据结构的示意图。

图19a是根据本公开文本的一个实施例的使用触发区域的系统的数据流示意图。

图19b是根据本公开文本的一个实施例的用于更新触发区域的流程图。

图19c是根据本公开文本的一个实施例的触发区域的面积的示意图。

图19d是根据本公开文本的一个实施例的触发区域的体积的示意图。

图19e是根据本公开文本的一个实施例的用于更新内容的流程图。

图19f是根据本公开文本的一个实施例的作用于内容的矩阵变换。

图20a是根据本公开文本的一个实施例的使用触发区域的系统的数据流示意图。

图20b是根据本公开文本的一个实施例的用于确定触发区域的触摸的流程图。

图21a是根据本公开文本的一个实施例的第一选项卡被选择时的应用的示意图。

图21b是根据本公开文本的一个实施例的第二选项卡被选择时的应用的示意图。

具体实施方式

在下面的描述中,相同的部件贯穿整个说明书和附图分别利用相同的数字进行标记。所绘制的附图不一定按比例绘制,为了清楚和简明,某些附图可能以夸张或广义的形式显示。

本领域技术人员应当理解,本公开的各方面可以在多个可授予专利的类别中的任何一个或背景中进行说明和描述,其中包括任何新的和有用的过程、机器、制造或物质组成或其任何新的有用的改进。因此,本公开文本的各方面可以完全以硬件或组合软件和硬件的实现来实现,所述软件和硬件实现在此通常可以被称为“电路”、“模块”、“组件”或“系统”(包括固件、驻留软件、微码等)。此外,本公开的各方面可以采用一个或多个计算机可读介质中的计算机程序产品的形式,其中的一个或多个计算机可读介质在其上体现计算机可读程序代码。

可以使用一个或多个计算机可读介质的任何组合。计算机可读介质可以是计算机可读信号介质或计算机可读存储介质。例如,计算机可读存储介质可以是但不限于电子、磁性、光学、电磁或半导体系统、装置或设备,或前述的任何适当的组合。计算机可读存储介质的更具体示例将包括但不限于:便携式计算机软盘、硬盘、随机存取存储器(“ram”),只读存储器(“rom”),可擦除可编程只读存储器(“eprom”或闪速存储器),具有中继器的适当的光纤,便携式光盘只读存储器(“cd-rom”),光存储设备,磁存储设备或前述的任何适当的组合。因此,计算机可读存储介质可以是能够包含或存储由指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合使用的程序的任何有形介质。

用于执行本公开的各方面的操作的计算机程序代码可以以一种或多种编程语言、标记语言、样式表和javascript库的任何组合来编写,包括但不限于windows呈现基础(wpf),html/css,xaml和jquery。

在此参考根据本公开的实施例的方法、系统和计算机程序产品的流程图和/或框图来描述本公开文本的各方面。应当理解的是,流程图和/或框图的每个块,以及流程图和/或框图中的块的组合可以通过计算机程序指令来实现。这些计算机程序指令可以被提供给与专门和专用电子设备进行互联的计算机的处理器,或其他专用可编程数据处理装置,以产生机器,使得经由计算机的处理器或其他可编程数据处理装置来执行指令,创建集成机器来实现流程图和框图中描述的功能。

这些计算机程序指令也可以存储在计算机可读介质中,当被执行时可以指示计算机、其他可编程数据处理装置或其他设备以特定方式进行工作,使得当指令被存储在计算机可读介质中时,产生制造产品,该制造产品中包括执行时使计算机实现流程图和/或框图块或多个块中所指定的功能/动作的指令。计算机程序指令还可以加载到计算机、其他可编程指令执行装置、或其他设备上,以使得在计算机、其他可编程装置或其他设备上执行一系列操作步骤,以产生计算机实现的过程,从而在计算机或其他可编程装置上执行的指令提供用于实现流程图和/或框图块或多个块中所指定的功能/动作的过程。

参考图1,系统100包括网络101、连接到网络101的内容服务器102、以及连接到网络101的相机/投影仪单元104。内容服务器102进一步连接到用于存储多媒体和其他相关数据内容数据库103。

在优选实施例中,网络101是诸如互联网的广域网,但是能够包括其他广域网和内联网。

在优选实施例中,相机/投影仪单元104从内容服务器102下载存储在内容数据库103中的内容,并将其保存到本地存储器用于稍后投影。在另一个实施例中,相机/投影仪单元104从内容服务器102流传输存储在内容数据库103中的内容用于投影。

在一个实施例中,参考图2a,相机/投影仪单元200包括外壳201、计算机/处理器202、连接到计算机/处理器202的投影仪203、以及连接到计算机/处理器202的相机204。

在另一个实施例中,参考图2b,相机/投影仪单元205将镜子206定位成与投影仪203相邻角度α,以重定向投影仪203的视野。

在优选实施例中,计算机/处理器202是具有适当的处理器和存储器的膝上型计算机,其中的存储器用于存储内容和数据库以及任何其它相关数据。在另一个实施例中,计算机/处理器202是平板计算机。

投影应用程序存储在计算机/处理器202的存储器中,用于利用投影仪203来限定和投影一组触发区域,检测用户存在并且利用相机204识别用户,利用相机204检测对该组触发区域的选择,并且利用投影仪203来投影内容,如下面将进一步描述。

在优选实施例中,相机204是三维范围相机,例如来自微软公司的kinect相机。相机204以标准640×480vga中的30帧/秒的速率提供流视频形式的图像数据。相机的焦距为525像素,视野约为63°。相机204也提供来自机载红外发射器/接收器的目标距离(distance-to-target)信息。红外发射器/接收器的焦距为580像素,视野约为58°。以200μs的刷新率将红外数据作为16比特数字来提供。

参考图3,显示器300包括具有视野302的相机机/投影仪单元301。相机/投影仪单元301连接到臂304。臂304附接到架空天花板并从架空天花板延伸。在优选实施例中,视野302可以在大约45度至75度的范围内。产品303位于视野302中。

在另一实施例中,参考图4,显示器400包括具有视野403的相机/投影仪单元401。相机/投影仪单元401连接到支架402并由支架402支撑。支架402可移除地连接到地板。产品404位于视野403中。

参考图5,显示器500包括附接到臂502的相机/投影仪单元501,其中的臂502附接到基座508。相机/投影仪单元501将触发区域504和505投影到产品503的表面上。当用户在触发区域504和505中触摸产品503的表面时,相机/投影仪单元501检测用户在触发区域504和505中的存在,并将内容506和507分别投影到产品503的表面上。在优选实施例中,内容506和507中的每一个是视频。可以使用任何类型的图形图像。例如,如果用户触摸图中所示汽车的引擎盖,则从与用户相同的视角拍摄的运行的发动机的图像可以投影在罩上,以模拟“透视”效果来提醒用户通过引擎盖“看”运行的发动机。

在另一个实施例中,参考图6,显示器600包括相机/投影仪单元601,该相机/投影仪单元601具有覆盖产品603的视野602。相机/投影仪单元601将触发区域604,605,606和607投影到产品603的表面上。当用户在触发区域604,605,606和607中触摸产品的表面时,相机/投影仪单元601将内容615投影到产品603的表面上。

在一个实施例中,如果用户在任何触发区域604,605,606和607中触摸产品603的表面,则相机/投影仪单元601将不同的颜色/图案616投影到产品603上,从而使得用户能够可视化对于产品603的颜色或图案的潜在改变。

支架608位于产品603附近并被视场602覆盖。支架608包括标牌609、附着到标牌609的支撑610,以及连接到支撑610的基座611。基座611可移除地连接在地板上。相机/投影仪单元601将触发区域612和613投影到标牌609的表面上。当用户触摸触发区域612和613中的标牌609的表面时,相机/投影仪单元601将内容614投影到标牌609上,从而将标牌609转换成交互式数字标牌。内容614优选地包括产品603的信息、视频和/或图片。从内容服务器或从相机/投影仪单元601的本地存储器检索内容614。

参考图7,显示器700包括相机/投影仪单元701和702。相机/投影仪单元701具有覆盖产品703的视野704,包括产品侧面706。相机/投影仪单元702具有覆盖产品703的视野705,包括产品侧面707。相机/投影仪单元701将触发区域708投影到产品侧面706的表面上。当用户在触发区域708中触摸产品侧面706的表面时,相机/投影仪单元701将视频或图形内容投影到产品侧面706的表面上。相机/投影仪单元702将触发区域709投影到产品侧面707的表面上。当用户在触发区域709中触摸产品侧面707的表面时,相机/投影仪单元702将视频或图形内容投影到产品侧面707的表面上。

在另一实施例中,参考图8,显示器800包括位于相机/投影仪单元802的视野801的产品802。相机/投影仪单元801检测用户803在产品802上的存在和位置。在一个实施例中,通过面部识别过程来确定用户803的身份,如下面将进一步描述。响应于用户803的存在,触发区域805和806由相机/投影仪801投影在邻近用户803的产品802的表面上。

在一个实施例中,响应于用户803的存在和身份,内容804自动投影在产品802的表面上。

在另一实施例中,响应于用户触摸触发区域805和806中的任何触发区域,内容804被投影在产品802的表面上。

在另一实施例中,相机/投影仪单元801基于检测到用户803的存在,将第一视频作为内容804投影在产品802的表面上。当用户803触摸触发区域805和806中的任一个触发区域时,内容804分别变为第二视频和第三视频。例如,当相机/投影仪单元801检测到用户803在产品802上的存在时,内容804是介绍或欢迎视频。当用户803触摸触发区域805时,内容804切换到图形宣传册。当用户803触摸触发区域806时,内容804切换到产品动画。任何类型的内容可以用于内容804。

在另一实施例中,参考图9,显示器900包括相机/投影仪单元901和产品902。在该实施例中,投影的内容903包括并且相继地显示产品902的组件,包括基底层904、支撑层905、衬垫层906以及顶层907。在优选实施例中,投影的内容903包括呈现每层的“剥离”的一组动画。例如,响应于用户与触发区域进行交互,顶层907被“剥离”以露出衬垫层906。连续的每个层能够单独地被投影在产品902上,因此使得用户能够可视化产品的不同层。在一个实施例中,投影的内容903覆盖产品902的整体。在另一实施例中,投影的内容903覆盖产品902的一部分。

在另一实施例中,参考图10,显示器1000包括相机/投影仪单元1001和产品1002。产品停放在地板1004上。内容1003由相机/投影仪单元1001投影在产品1002周围的地板1004上。内容1003包括给出产品1002正在各种环境(诸如,雨、雪或泥)中行驶的外观的动画,以该出产品1002正在行进的外观。

参考图11,将描述用于校准相机/投影仪单元200的方法1100。在步骤1101中,确定表面的基线图像。在该步骤中,相机204的红外发射器/接收器捕获包括产品表面的深度和颜色数据的基线图像。在一个实施例中,为了捕获准确的基线图像,可以利用诸如布单的薄苫布来覆盖高反射表面(诸如车的表面)。

在步骤1102中,为产品的一组触发区域中的每个触发区域选择位置。在优选实施例中,每个触发区域是椭圆。可以采用其他形状。在步骤1103中,将该组触发区域投影在表面上。在步骤1104中,通过将三维对象放置在触发区域上来校准每个触发区域,诸如半球形的对象。可以采用其他的三维对象。在该步骤中,利用相机/投影仪单元200捕获三维对象相对于已保存的基线图像的位置。

在步骤1105中,捕获到的每个三维对象的位置被存储在相机/投影仪单元200的存储器中。在步骤1106中,将多边形进行扭曲以匹配该表面,从而保证该多边形符合它所将要被投影到的表面。多边形可以对应于表面的整个表面或者一部分。

在优选实施例中,采用非仿射变换将多边形的一组点映射到该表面。例如,如果多边形在平面上是正方形,并且表面是相对于投影仪成角度的表面,那么正方形的点被映射为使得正方形变形的四边形,从而使得当该四边形被投影在成角度的表面时,投影的四边形在成角度表面上作为正方形出现。可以采用其他的变换、映射和变形技术。

在步骤1107中,经过扭曲的多边形与触发区域相关联。在步骤1108中,针对多边形确定一组内容。在该步骤中,期望的内容组的文件位置与多边形相关联。该组内容被下载并且保存在本地存储中,或者链接到该组内容的流。在步骤1109中,该组内容被扭曲以匹配经过扭曲的多边形,以便触发区域的选择将非畸变的期望内容投影在表面上。

在一个实施例中,参考图12,将描述运行时过程1200。在步骤1201中,运行时过程1200开始。在步骤1202中,将一组触发区域投影在表面上。在步骤1203中,确定触摸事件,即确定用户是否处于该组触发区域中的任何触发区域。在该步骤中,向相机查询用户位置。用户位置与触发区域边界的坐标进行比较。如果用户位置不在触发区域的边界之内,那么运行时过程返回到步骤1202。如果用户位置在触发区域的边界之内,那么运行时过程进行到步骤1204。

在步骤1204中,将多边形与关联于触发区域的一组内容投影在表面上。在步骤1205中,确定结束事件的存在。结束事件是预定的时间段或者用户在触发区域组中进行的另一触摸事件。预定时间段是内容组的运行时或者任何期望的时间段。如果未发生结束事件,那么运行时过程1200返回到步骤1204,以继续投影多边形和内容组。如果已发生结束事件,那么运行时过程1200进行到步骤1206。

在步骤1206中,确定是否接收到终止命令。如果未接收到终止命令,那么运行时过程1200返回到步骤1202。如果接收到终止命令,那么运行时过程1200结束在步骤1207。

在另一实施例中,参考图13,将描述用于投影映射的运行时过程1300。在步骤1301中,由相机来执行对于区域(诸如,房间)的扫描以检测任何表面。在步骤1302,检测到表面的扫描被映射到虚拟区域。在步骤1303,将多边形和一组内容进行扭曲以匹配虚拟区域。

在优选实施例中,采用非仿射变换将多边形的一组点和该组内容映射到该表面。在其他实施例中,还可以采用其他的变换、映射和变形技术。

在步骤1304中,查询相机以确定用户在该区域的存在。在步骤1305中,如果未检测到存在,那么运行时过程1300返回到步骤1304。如果检测到存在,那么在步骤1306中将一组触发区域投影在表面上。在步骤1307中,面部识别过程开始识别用户的身份,如下面将进一步描述。

在步骤1308中,如果识别出用户的身份,那么运行时过程1300进行到步骤1309。在步骤1309中,将多边形和与触发区域相关联的一组内容投影在表面上。在步骤1311中,确定结束事件的存在。结束事件是预定的时间段或者用户在触发区域组中进行的另一触摸事件。预定时间段是内容的运行时间或者任何期望的时间段。如果未发生结束事件,那么运行时过程1300返回到步骤1309,以继续投影多边形和内容组。如果已发生结束事件,那么运行时过程1300进行到步骤1313。

如果在步骤1308中未识别出用户的身份,那么运行时过程1300进行到步骤1310。在步骤1310中,将多边形和一组预定内容投影在表面上。

在步骤1312中,确定结束事件的存在。如果未发生结束事件,那么运行时过程1300返回到步骤1310,以继续投影多边形和该组预定内容。如果已发生结束事件,那么运行时过程1300进行到步骤1313。

在步骤1313中,做出用户是否处于该组触发区域中的触摸事件的确定。在该步骤中,向相机查询用户位置。将用户位置与该组触发区域中的任意触发区域的边界的坐标进行比较。如果该位置不在该组触发区域中的任意触发区域的边界之内,那么运行时过程1300返回到步骤1308。如果该位置处于该组触发区域中的任意触发区域的边界之内,那么运行时过程1300进行到步骤1314。

在步骤1314中,将多边形与关联于触发区域的一组内容投影在表面上。在步骤1315中,确定结束时间的存在。如果未发生结束事件,那么运行时过程1300返回到步骤1314,以继续投影多边形和该组内容。如果已发生结束事件,那么运行时过程1300进行到步骤1316。

在步骤1316中,确定是否接收到终止命令。如果未接收到终止命令,那么运行时过程1300返回到步骤1304。如果接收到终止命令,那么运行时过程1300结束在步骤1317。

参考图14,步骤1307将被进一步描述为面部识别过程1400。面部识别过程从步骤1401开始。在步骤1402,查询相机以记录包括眼睛的位置和颜色、耳朵位置、下巴位置和头发颜色的面部特征的位置。在优选实施例中,该查询由microsoftskdrel.7.1.lib文件microsoft.kinect.toolkit.facetracking来完成。可以采用任何类型的面部跟踪。在优选实施例中,确定至少121个不同的位置。在步骤1403,测量面部特征之间的距离。在步骤1404,创建“面部图”。面部图包括面部特征以及它们之间的距离的表。在步骤1405,将面部图与存储在存储器中的一组数字图像进行比较。在步骤1406,输出比较结果。在步骤1407,处理结束。

参考图15,在一个实施例中,交互式投影系统1500的组件是本地计算机1502、相机1504和投影仪1506。本地计算机1502、相机1504和投影仪1506可以是单独定位的或者全部包含在单个壳体中的单独部件。相机1504收集在其视野内颜色和深度数据,持续监视所限定的触发区域用于交互。投影仪1506在其视场内的任何表面上显示可投射内容和触发区域。本地计算机1502存储并且操纵相机数据、内容文件、投影内容的位置、以及触发区域和所投影的触发区域的位置。本地计算机1502分析相机数据以确定是否已经发生与任何触发区域的交互,如将要进一步描述。本地计算机1502包括能够扭曲内容图像以便将内容未失真的投影在三维表面上的变换功能,如将要进一步描述。

在优选实施例中,本地计算机1502包含处理器;存储器,用于存储内容、数据库以及任何其他相关数据;以及包含硬件驱动器的软件模块。本地计算机1502的最低要求包括intelcorei7处理器、至少八(8)gbram,至少五(5)gb本地存储器、2gb图形处理器、windows操作系统8.1或更高版本、以及到照相机1504的usb3连接。适合的计算机的示例是dell提供的latitudee6540笔记本计算机。在优选实施例中,硬件驱动程序包括诸如microsoft提供的用于windows的kinect的图像捕获程序。

本地计算机1502连接到照相机1504。相机1504是3-d范围相机。相机1504包括用于移动解释和图像识别的固件。相机1504以4字节/像素的标准640×480vga格式以30帧/秒的速率提供流视频形式的图像颜色数据。相机1504的焦距为525像素,具有能够在约45°至75°之间变动的视野。相机1504还提供来自一对机载红外发射机/接收机的目标距离的信息。红外发射器/接收器的焦距为580像素,视野范围为约45°至75°。以200μs的刷新率将红外数据作为16比特数字来提供。适合相机的示例是从微软可获得的kinect相机。

本地计算机1502通过hdmi端口和线缆连接到投影仪1506。投影仪1506是具有10,000流明的亮度和1920×1200wuxga分辨率的pc就绪投影仪。投影仪1506的投射距离在4英尺至40英尺的范围内,带有标准镜头。可以使用大大增加投影机1506的投射距离的可替换镜头。投影仪1506具有在45°至75°范围内的视野角,但能够利用不同的镜头进行调节。适当投影机的示例是可从vivibright可获得的plwu8100f。

本地计算机1502连接到麦克风1512和扬声器1514。麦克风1512允许接收可听命令,该可听命令能够用于触发关于一个或多个内容区域的图像、视频和音频的显示或回放。扬声器1514允许与视频相关联的音频信道的回放,以及已经与触发区域相关联的音频文件的播放。

在可替代实施例中,交互式投影系统1500的组件还包括网络1510、内容服务器1522、数据库1524以及控制计算机1520。内容服务器1522连接到网络1510。网络1510将本地计算机1502连接到内容服务器1522。内容服务器1522还连接到用于存储多媒体和其他相关数据的数据库1524。网络1510是诸如因特网的广域网,但是可以包括其他广域网或内联网。本地计算机1502可以从内容服务器1522下载存储在数据库1524中的内容,并将内容保存到本地存储器以供稍后投影。本地计算机1502还能够从内容服务器1522将存储在数据库1524中的内容进行流传输,用于利用投影仪1506进行投影。

控制计算机1520连接到内容服务器1522,并通过网络1510连接到本地计算机1502。通过控制计算机1520,用户能够操纵本地计算机1502,并且从远程位置设置交互式投影系统1500。控制计算机1520的最低要求包括intelcorei7处理器、至少八(8)gbram、至少五(5)gb本地存储器、2gb图形处理器以及windows操作系统8.1或更高版本。

参考图16a和坐标系1630,x轴表示水平,y轴表示垂直,z轴处于页面外。示出组件在观看空间1602内的相对位置。观看空间1602是具有使得投影仪1506进行用户足够看到的投影的充足光线水平的房间。观看空间1602的尺寸是典型的陈列室地面的尺寸,但是可以根据交互式显示器的对象和投影仪的镜头的大小而变化很大。通常,相机1504被定位成实现视野1604。视野1604可以在45°至75°变动。相机1504由具有臂1606的天花板1640悬挂,但是也可以同样成功地附接到地板支架上。对象1608位于视野1604内的地板1610上。任何触发区域的位置必须在视野1604内。

通常,投影仪1506被定位成实现视野1624。视野1624可以在45°至75°变动。投影仪1506可以从具有臂1616的天花板1640悬挂,但是也可以从地板支架延伸。对象1608位于视野1624内的地板1610上。任何投影内容的位置必须在视野1604内。投影仪1506和相机1504沿x轴分开距离1662,沿着y轴分开距离1664。

标牌1622从地板1610经由支架1628延伸。如图所示,因为标牌1622位于投影仪1506的视野1624内,内容可以显示在标牌1622上。在另一个实施例中,标牌1622位于相机1504的视野1604内。在另一个实施例中,标牌1622在投影机1506的视野1624和相机1504的视野1604中,并且可以显示内容区域和触发区域。在优选实施例中,支架和标牌的总高度1636约为3至4英尺,标牌的长度1638约为16英寸,标牌的宽度1652约为12英寸。在一个优选实施例中,距离1650是天花板1640与地板1610之间的距离,大约为16英尺。

投影仪1506的视野1624为大约72度,包括视场1642和视野1644。视野1642是对象1608的表面上的内容区域1632的视野,约为7度。视野1644是标牌1622上的内容区域1634的视野,大约是5度。标牌1622和对象1608在距离彼此大约8英尺的距离1660内,从而使得投影到标牌1622上和对象上的图像在投影仪1506的视野1624内。

相机1504的视野1604包括视野1646和视野1648。视野1646是在对象1608的表面上的触发区域1620的视野,并且为大约4度。视野1648是在对象1608的表面上的触发区域1626的视野,并且为大约3度。相机1504的视野1604不同与投影仪1506的视野1624,从而使得相机1504可以监视投影仪1506的视野1624外的触发区域。

参考图16b,相机1504通常位于对象1608上方。相机1504在x轴和z轴上的位置由触发区域的期望位置决定。在一个实施例中,相机1504位于对象1608上方沿y轴5至16英尺的范围内,并且位于地板1610的10至20英尺的范围内。在相机视野内显示出触发区域。触发区域1620位于对象1608上。触发区域1626位于对象1608的表面上。系统可以在对象1608的表面上投影触发区域1626的指示符。

投影仪1506在x轴和z轴上的位置由内容区域1632和1634的期望位置来决定。在一个实施例中,投影仪1506位于希望显示内容所在的任何表面上方沿y轴4至40英尺的范围内。理想距离由镜头决定。系统显示内容的表面应当在投影机的视野内。在一个实施例中,内容区域1632位于对象1608(在此情况下是汽车)的引擎罩部分上。内容区域1634位于标牌1622上。

图16c中所示的平坦表面1654是针对对象1608的假想表面。对象1608包括其上投影内容区域1632的曲面1656。角度1658是平坦表面1654与曲面1656之间的差异。

触发区域与内容区域不同,但可以彼此链接。在触发区域位于汽车的前灯上的替代实施例中,相关联的内容区域可以在汽车的引擎罩上,使得当触摸前灯上的触发区域时,在引擎罩的内容区域上播放视频,并且经由一个或多个扬声器播放与视频相关联的音频。此外,代替在引擎盖上播放的视频,前灯上的触发区域可以链接到音频记录,使得当触摸前灯上的触发区域时,播放该音频记录(也称为音频响应)。

在另外的实施例中,监视触发区域的计算机也与汽车通信,并且能够响应于与触发区域的交互来控制汽车的功能。这允许控制对象-汽车-与显示或投影在对象上的媒体相协同。在一个实施例中,与汽车引擎罩上的触发区域的交互导致发动机的视频在发动机罩上播放并使系统启动汽车的发动机。当对象是汽车时,能够响应于与触发区域的交互来控制附加特征,例如:打开或关闭前灯和尾灯,锁定和解锁车门,打开和关闭窗户,打开行李箱等。

参考图16c,表面1654是对象1608上方的假想平坦表面,来自投影的图像通过该平面。表面1654的平面垂直于投影仪指向的方向并与对象1608相切。

参考图16d,表面1656是对象1608的表面,弯曲而不平坦。通过扭曲和变换图像来调整投影到弯曲表面(诸如,表面1656)而不是平坦表面(诸如,假想表面1654)上的图像,以匹配表面的曲率。

参考图17,描述触发区域。触发区域1702和1704是存储在数据库中的预定义的三维空间。触发区域由相机1504中的红外传感器来监视,用于用户与系统进行交互。当红外传感器检测到触发区域中的用户时,系统执行诸如显示存储内容的预定动作。

触发区域能够是由形成包围体积的线的一系列点所界定的任何三维形状。参考坐标系1706,触发区域1702由包括x1,y1,z1;x2,y1,z1;x1,y2,z1;x2,y2,z1的一组点以及函数1708来界定。在该示例中,函数1708是由等式限定的双曲线函数式:

c≈x2+y2公式12

可以使用其他双曲线函数或线性函数来定义x,y或z方向上的任何一组点,定义一般的形状,只要该函数相对于离散区域是闭合的。触发区域1704是三维多边形。每个触发区域的各种x,y和z值可以变化。x和y值的范围为2至12英寸,优选为7至8英寸。z值可以在1至4英寸之间,优选约为2英寸的范围。

图18a是根据一个实施例的存储在计算机中并由诸如可触摸区域应用1802的触发区域软件程序进行访问的一组数据要素的示意图。可触摸区域应用1802是在计算机系统上运行的应用,其允许基于用户与已经关联并且链接到投影内容的触发区域进行的交互,将投影内容显示在对象和表面上。触摸区域应用1802包括选项卡1804,1806和1808;一个或多个内容控件1852;以及一个或多个触发器控件1854。

选项卡1804,1806和1808是显示在可触摸区域应用1802的应用窗口中的用户界面要素,其允许在应用的不同模式之间的选择,诸如图19a所示的模式1910,1912和1914。选项卡1804,1806和1808显示在显示区域1816中。

显示区域1816是可触摸区域应用1802的显示空间。触摸区域应用包括显示在显示区域1816中的触发控件1854和内容控件1852。

触发控件1854各自与触发区域数据结构1818的示例相关联。触发区域数据结构1818包括识别触发区域的几个数据字段,该触发区域由带有计算机的相机进行监视,诸如图15的计算机1502和相机1504。

内容控件1852各自与内容数据结构1820的实例相关联。内容数据结构1820识别由系统显示内容的内容区域和内容。内容数据结构1820包括识别内容并控制其显示的若干数据字段。

图18b是根据本公开文本的一个实施例的触发数据结构的示意图。触发区域数据结构1818与触发控件1854相关联并且包括坐标1822、类型1824、名称1826、标识符1828、深度数据1830、内容数据结构1820以及文件名1834。与触发区域数据结构1818相关联的数据被存储到允许通过触摸可触摸区域应用1802来保存和重新加载触发数据结构区域1818的一个或多个文件。

坐标1822识别在显示区域1816中显示触发控件1852的四个角中的每一个角的x和y位置。

类型1824识别与触发区域数据结构1818直接相关联的内容的类型,诸如图像或视频。

名称1826是识别触发控件的实例的用户友好的名称。

标识符1828是诸如全局唯一标识符(guid)的唯一标识符,其被给予可触摸区域应用1802的每个触发控件1854以访问触发控件1854。

深度数据1830识别与触发区域数据结构1818和触发控件1854相关联的三维位置或触摸框。

内容数据结构1820识别与触发区域数据结构1818和触发控件1854相关联的内容区域。

文件名1834识别提供触发控件1854的默认图像的文件,例如图像文件。文件名1834可以指向完全透明的图像,使得在默认情况下,触发控件1854不显示图像。

图18c是根据一个优选实施例的内容数据结构的示意图。内容数据结构1820与内容控件1852相关联并且包括若干数据字段,用于在可触摸区域应用1802的显示区域1816内识别和显示内容。

坐标1836识别内容控件1852的每个角的x和y位置。由坐标1836识别的角来形成多边形。当显示与内容数据结构1820相关联的图像或视频时,图像或视频的角部被扭曲并且变换以适合由坐标1836所识别的形状。

类型1838标识与内容数据结构1820和内容控件1852相关联的内容的类型。内容类型包括图像、视频、声音等。

当例如内容区域1820的类型1838识别出内容是视频时,循环1840识别循环内容的次数。

定向1842识别用于显示与内容控件1852相关联的图像的定向。在一个实施例中,定向1842指定当显示与内容控件1852相关联的图像或视频时,将该图像或视频围绕水平轴或垂直轴翻转或旋转90度的倍数。

文件名1844标识与内容数据结构1820和内容控件1852相关联的图像或视频的文件名。在另外的实施例中,文件名1844是到静态内容或动态内容的链接,诸如响应于与触发区域的交互而播放的视频文件、流视频文件或实况相机流。

标识符1846是给予可触摸区域应用1802的每个内容控件1852以访问内容控件1852的唯一标识符或guid。

名称1848是用于标识内容控件的实例的用户友好的名称。

图19a是根据本公开的校准触发区域和内容区域的系统的数据流程图。在该实施例中,系统包括计算机1902、相机1904、投影仪1906和显示器1908。

计算机1902经由usb(通用串行总线)3.0连接与范围摄像机1904连接,并通过hdmi(高清多媒体接口)连接连接到投影仪1906和显示器1908。计算机1902控制由显示器1908和投影仪1906所显示的图像。相机1904提供彩色数据和深度数据。投影仪1906将从计算机1902发送的图像投射到投影仪1906前面的任何表面,包括一个或多个展示架、对象和屏幕。显示器1908显示应用以辅助校准过程。

可触摸区域应用使用三种模式来执行校准过程,第一模式1910,第二模式1912和第三模式1914。当选择第一模式1910时,用户界面控件与可触摸区域应用相关联。例如,在默认显示静态图像和基于与两个触发区域的交互来显示两个视频的情况下,将静态图像、两个视频和两个触发控件添加到可触摸区域应用中。在第一模式1910中,应用执行步骤1916,1918,1920和1922。

在第二模式1912中,选择用于触发区域的三维真实世界位置。在第二模式1912中,应用执行步骤1924,1926,1928,1930和1932。

在第三模式1914中,投影内容的投影位置被选择、微调并且对齐。在第三模式1914中,应用程序执行步骤1934,1936,1938和1940。

在步骤1916中,在可触摸区域应用中选择第一选项卡以将可触摸区域应用的模式设置为第一模式1910。在计算机程序列表附录中在名为mainwindow.xaml.cs的文件的计算机程序列表中第922-926行示出了用于选择第一选项卡的代码的一个示例。

在步骤1918,应用程序的显示图像被发送到显示器1908,从而可以添加和操纵用户界面控制—触发控件和内容控件。

在步骤1920,添加和更新触发控件和内容控件。可以添加新的触发控件和内容控件,并且可以更新触发控件、触发区域、内容控件和内容区域之间的关联。可以移动或拖动内容控件和触发控件的角,以重塑投影到内容区域和触发区域上的图像和视频。在计算机程序列表附录中名为nonaffinetransformcontrol.xaml.cs的文件的计算机程序列表中的行437-476示出执行此功能的代码的一个示例。该代码调用函数来确定变换矩阵,该变换矩阵示出在计算机程序列表附录中的名为nonaffinetransformcontrol.xaml.cs的文件的计算机程序列表中的第1220-1258行。用于更新触发控件或内容控件的代码的一个示例示出在计算机程序列表附录中的名为nonaffinetransformcontrol.xaml.cs的文件的计算机程序列表中的行478-512。

在步骤1922,对于从步骤1920到用户界面控件的每次改变,更新发送到显示器1908的图像。这提供了反馈,以实现触发控件和内容控件之间的序列、时序和交互。

在步骤1924,选择第二选项卡以将应用程序转移到第二模式1912,以允许选择与触发控制相关联的触发区域的物理位置。在计算机程序列表附录中的名为mainwindow.xaml.cs的文件的计算机程序列表中的第927-971行示出用于选择第二选项卡的代码的一个示例。

在步骤1926,计算机1902从相机1904接收颜色和深度数据。

在步骤1928,改变应用的应用窗口的显示区域,以显示从相机1904接收到的颜色和深度数据与叠加在图像上的触发控件的组合。

在步骤1930,将添加在第一模式1910中触发控件与由相机1904监视的物理位置相关联。通过拖动和移动在显示器1908上所显示的触发器控件来创建关联。用于更新触发控件的代码的一个示例显示在计算机程序列表附录中的名为nonaffinetransformcontrol.xaml.cs的文件的计算机程序列表中的行478-512。

在步骤1932,针对触发控制的每次改变以及从相机1904接收的颜色和深度数据的每个改变,计算机1902更新发送到显示器1908的图像。

在步骤1934,选择第三选项卡,例如图18所示的第三选项卡1808,以将应用的模式设置为第三模式1914,从而允许选择将与内容控件相关联的内容区域的位置。用于选择第三选项卡的代码的一个示例示出在计算机程序列表附录中的名为mainwindow.xaml.cs的文件的计算机程序列表中的916-920行。

在步骤1936,计算机1902停止显示来自摄像机1904的颜色和深度数据,并将可触摸区域应用显示为包括用户界面控件的投影仪1906上的全屏窗口。投影仪1906将来自计算机1902的图像投影到投影仪1906前面的表面和对象上。例如,当相机1904投射到汽车的引擎罩上时,可触摸区域应用所显示的内容是发动机的图像。在替代实施例中,由计算机1902发送到投影仪1906的图像也被发送到显示器1908,从而使得图像由显示器1908和投影仪1906两者进行显示。

在步骤1938,更新内容控件。例如,调整内容控件的大小以匹配它们所投影到的表面。当汽车的引擎罩具有梯形形状时,内容控件的拐角被拖动以匹配罩的梯形形状。用于更新内容控件的代码的一个示例示出在计算机程序列表附录中的名为nonaffinetransformcontrol.xaml.cs的文件的计算机程序列表的第478-512行。

在步骤1940,对于来自步骤1938的内容控件的每次更新,发送到投影仪的图像被更新以包括在步骤1938中做出的改变。

图19b是根据本公开文本的一个实施例的用于更新与处罚控制相关联的触发区域的流程图。用于更新图19b的触发区域的方法是图19a的步骤1930的一个实施例。

在步骤1942,从相机(例如相机1904)接收颜色和深度数据。以包含两帧数据的一个或多个字节流来接收颜色和深度数据,一个基于相机的颜色传感器,一个基于相机的红外深度传感器。颜色传感器和深度传感器的分辨率不同,从而使得两帧数据的分辨率也不同。作为一个示例,颜色数据可以具有1920×1080的分辨率,每像素具有32比特的颜色信息,并且深度数据可以具有640×480的分辨率,每像素具有16比特的深度信息。

在步骤1944,显示颜色和深度数据的组合。颜色数据分辨率被裁剪为深度数据分辨率。在经裁剪的分辨率内,如果深度数据指示在深度传感器的范围内存在表面或对象,则显示颜色数据。

在步骤1946,选择与触发控件相关联的触发区域。触发区域识别触发区域的三维坐标,该触发区域的三维坐标存储在与触发控件相关联的数据结构中并且关于提供深度数据的相机。如图19c所示,区域1952是深度传感器的范围和观察区域内的表面的区域。在优选实施例中,区域的形状默认为正方形或矩形,但是还可以使用任何其他形状。

在步骤1948,选择触发区域的深度。与触发区域结合的深度创建与触发区域相关联并用于确定触发区域是否已被触摸的体积。图19d示出通过添加深度1956从区域1952创建的体积1954。

在步骤1950,存储触发区域和深度。触发区域和深度与触发区域相关联并保存到数据库。在优选实施例中,触发区域和深度被存储在图18b的触发区域数据结构1818的深度数据1830中。

图19e是根据本公开文本的一个实施例的用于更新内容区域的流程图。用于更新图19e的内容区域的方法是图19a的步骤1938的一个实施例。

在步骤1958,选择初始的平坦投影区域。被选择并且与内容控件相关联的内容的原始分辨率提供该初始平面投影区域。图19f示出了已选择的内容的初始平面投影1968。

在步骤1960,选择与仿射变换有关的区域。在优选实施例中,通过将内容区域的拐角拖动到期望的形状来选择用于仿射变换的区域。作为示例,当内容区域是矩形图像时,拖动一个或多个拐角以形成缩放的平行四边形形状,如图19f的变换1970所示。

在步骤1962,选择与非仿射变换相关的区域。在优选实施例中,如图19f的变换1972所示,通过将来自内容区域的边界的一个或多个拐角和线拖动成弯曲形状来选择该区域。

在步骤1964,从仿射变换和非仿射变换创建画笔或过滤器。画笔将应用于与内容控件相关联的内容,从而将原始尺寸和形状的内容转换为经由步骤1960和1962所选择的区域的选定大小和形状,对应于仿射变换和非仿射变换。当内容是视频时,在显示视频时将画笔应用于视频的每个帧。

在步骤1966,从针对仿射变换和非仿射变换的所选择区域创建的画笔被保存到持久存储器。

图19f是根据本公开文本的一个实施例的作用于内容的矩阵变换。平面投影1968是没有扭曲和变换的初始投影。已经使用仿射变换对于投影1970进行扭曲和变换。已经使用非仿射变换对于投影1972进行扭曲和变换。

以下代码列表提供了计算转换的示例:

图20a是根据本公开的使用触发区域的系统的数据流程图。该系统包括计算机2002、范围相机2004和投影仪2006,并且已经被校准从而将触发区域和内容区域对准到投影仪2006前面的表面和对象。

计算机2002通过usb(通用串行总线)3.0连接与范围相机2004连接,并通过hdmi(高清多媒体接口)连接连接到投影仪2006。计算机2002基于从范围相机2004接收到的数据来控制由投影仪2006显示的图像。范围相机2004提供彩色数据和深度数据。投影仪2006将从计算机2002发送的图像投射到投影仪2006前面的任何表面,包括一个或多个展示架、对象和屏幕。

在步骤2008,计算机2002发送由投影机2006接收和显示的显示图像。显示图像具有例如1920×1080像素的分辨率,其是用于投影仪2006的原始分辨率。

在步骤2010,数据帧从范围相机2004发送并由计算机2002接收。颜色数据和深度数据由范围相机2004测量,并被分成具有不同分辨率的两个不同的字节流。颜色数据为1920×1080×32比特,每个红、绿、蓝和α通道为8位。α通道默认为1。深度数据为640×480×16比特,深度信息为13比特,用于以1毫米为单位测量距摄像机2004的深度。

在步骤2012,计算机2002确定触发区域是否已被触摸。通过将从范围相机2004接收到的深度数据的基线与从范围相机2004接收到的当前深度数据进行比较来进行确定。在一个优选实施例中,基线深度数据是在校准过程期间捕获到的三帧数据的平均值。

在一个实施例中,触发区域的检测通过计算与触发区域相关联的体积的20%或更多是否在一行中被占据至少三个帧来确定。用于执行该功能的代码的一个示例示出在计算机程序列表附录中的名为mainwindow.xaml.cs的文件的计算机程序列表中第494-527行。体积的占用由与触发区域的体积相关的像素相关联的深度来确定。深度应该小于基准深度,但是大于阈值深度,从而使得触发区域仅由靠近触发区域的真实世界位置的对象来激活。

在另一个实施例中,对于被占用的触发区域的每个像素,测试周围的八个像素(形成3×3或9个像素矩阵)以查看它们是否都被相似地占据。这种额外的精度允许触摸单个手指来激活触发区域。

在步骤2014中,计算机2002基于从范围相机2004接收到的帧数据来更新将要发送到投影仪2006的显示图像。当没有点击或激活触发区域时,针对包含视频的内容区域更新显示图像。当适当地激活触发区域时,与该触发区域相关联的内容区域被激活。

在步骤2016,计算机2002发送更新的图像。更新的图像基于正在显示的内容和与触发区域的交互。

图20b是根据本公开文本的一个实施例的用于确定触发区域的触摸的流程图。用于执行与图20b的流程图的步骤类似的步骤的代码的一个示例示出在计算机程序列表附录中的名为mainwindow.xaml.cs的文件的计算机程序列表中第494-527行。

在步骤2018,从相机(诸如图20的范围相机2004)接收深度数据。在优选实施例中,深度数据具有640×480像素的分辨率,每像素具有13比特的深度信息,并对准到16比特。

在步骤2020中,确定与触发区域相关联的触发体积是否已经被对象填充了20%或更多。将与触发体积相关的深度数据的每个像素与其对应的基线深度进行比较,从而确定像素是否包括超过基线深度的阈值量的对象。当与触发体积相关联的像素的20%或更多被确定为包括对象时,则增加帧计数器,并且该方法进行到步骤2022。否则,帧计数器递减到最小值零,并且该方法返回到步骤2018以等待下一帧深度数据。

在步骤2022,比较触发区域的帧计数。在优选实施例中,必须关于可接触是针对三个连续的数据帧,对于对象进行检测。当检测到三个连续的数据帧时,该方法进行到步骤2024。否则,该方法返回到步骤2018,从下一个深度数据帧进行等待。

在步骤2024,已经足够次数检测到足够大小的对象,来激活与触发区域相关联的触摸事件。在优选实施例中,触摸事件是与触发区域相关联的触发控制相关联的鼠标点击事件,其经由内容控件将内容显示在内容区域上。内容区域中所显示的内容可以是静态的、动态的或流式的。

在图21a和图21b中,正在校准系统以将内容显示在对象上。可触摸区域应用(诸如图18的可触摸区域应用1802)包括允许在可触摸区域应用中用于校准的不同模式(例如图19a的模式1910,1912和1914)之间进行切换的选项卡2116,2181和2120。通过选择选项卡2116可以访问第一种模式,第一模式用于添加、关联和操纵触发区域和内容区域。通过选择选项卡2118来访问第二模式,第二模式用于识别与触发控件相关联的触发区域的三维真实世界位置。通过选择选项卡2120可以访问第三模式,第三模式用于相对于对象显示、对准和操作内容区域。

图21a是当选择第一选项卡时的应用的视图。当选择第一选项卡2116时,在第一显示器上看到应用窗口2102,该第一显示器连接到计算机,并且可以与计算机(例如图19a的计算机1902)基本上同位置。在第一显示器上显示应用程序窗口2102允许用户设置系统的触发区域和内容区域,以及与触发控件、内容控件、触发区域和内容区域相关联的链接和交互行为。触发控件2104和2106显示在应用程序窗口2102中。应用窗口2102还显示内容控件2108、内容控件2110、内容控制2112和鼠标指针2114。应用窗口2102还包括选项卡2116,2181和2120。应用窗口2102的背景2128是黑色的。

触发控件2104与内容控件2110相关联。当系统正在运行并且触发控件2104被触发时,内容控件2110的内容将在内容控件2108的内容的上面进行播放。类似地,触发控件2106与内容控件2112相关联,从而使得触摸或点击触发控件2106在内容控件2108的内容之上播放内容控件2112的媒体或内容。

内容控件2108包括系统通常显示的默认内容。在图21a和图21b的实施例中,内容控件2108链接到发动机(诸如2122的发动机)的静态图像。内容控件2110链接到触发控件2104,并且包括对象(即,图21b的汽车2122)的性能特征的视频。内容控件2112链接到汽车2122的安全系统的视频,并与触发控件2106相关联。

图21b是当选择第二选项卡2118时应用的视图。当选择第二选项卡2118时,应用程序窗口2102显示来自相机的颜色和深度数据的组合,来代替在背景2128上显示内容控件。当像素没有深度数据时,像素被显示为黑色。否则,示出来自相机的rgb(红绿蓝)颜色值。在一个实施例中,当颜色数据的分辨率与深度数据的分辨率不匹配时,仅使用诸如区域2130和2132中的深度数据来示出不存在颜色数据的图像的部分。使用颜色和深度数据的组合示出区域2134,并且仅使用深度数据来示出区域2130和2132,因为该部分没有颜色数据。可替代实施例示出应用窗口2102上的颜色数据和深度数据的任何一种或组合。

触发控件2104和2106可以被拖动到图21b中示出的应用窗口2102的视图的任何部分。当触发控件被移动时,它与三维物理位置相关联,该三维物理位置与图21b中的应用窗口2102中显示的像素对应。针对与触发控件相关联的触发区域创建触摸框,使得当确定对象足够填充触摸框时,通过在可触摸区域应用的显示区域中,为与触发区域相关联的触发控制创建虚拟鼠标点击,来激活触发控件。

在另外的实施例中,当投影仪可以显示照相机的图像时,投影仪会闪烁与触发区域的大小和位置有关的图像。当从相机的颜色数据识别与触发区域相关的闪光图像时,从深度数据识别与触发区域对应的三维坐标,并且与触发控件相关联以自动校准触发区域的三维位置和触发控件。

本领域技术人员将理解的是,在不脱离本发明的广泛概念的情况下,可以对上述实施例进行改变。因此,应当理解的是,本公开文本不限于在此的特定实施例,而是旨在覆盖由所附权利要求限定的本公开文本的精神和范围内的所有修改。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1