图像处理系统的制作方法

文档序号:6585606阅读:246来源:国知局

专利名称::图像处理系统的制作方法
技术领域
:本发明涉及图像处理。更具体而言本发明的实施例涉及根据捕获的图像估计照相机参数的方法和系统。
背景技术
:在许多应用中都需要加入计算机生成的图形来加强以传统方式捕获的视频图像。例如,新闻广播和电视天气预报经常包括计算机生成的诸如文本标题、地图、背景幕等内容,这些内容被加入到以传统方式捕获的人类推荐者(humanpresenter)的视频图像中。此类计算机生成的内容能改善呈现给观众的信息所具有的清晰度,并能简单且方便地进行编辑和更新。同样地,很多现代影片包括大量的计算机生成的内容,这些内容与真实的演员和物体混合在一起从而达到在现实生活中不可能实现或实现起来非常昂贵的效果。在有些场合,将计算机图形加入到真实的视频中是非常直接的。例如,将简单且静态的二维图形增加覆盖在视频场景上。但是,将计算机生成的图形加入到视频场景中从而使其好像是被逼真地放置于三维空间中就困难得多,尤其是当捕获真实场景的照相机的位置正在变化时。此外,对计算机生成的图形进行呈现从而使它们看起来像是以与场景中的真实物体相同的方式被照亮将是困难的。如果所捕获的视频在被捕获之后被进行了处理,并且进行逐帧地调整以确保逼真的位置,并且维持计算机生成的物体的照明,则有可能达到看起来逼真的结果。但是,这样做很耗时,并且对于需要实时地在视频场景中对计算机生成的物体进行逼真地放置和照明的应用而言这并不实用。另外,在计算机生成的内容和传统捕获的视频图像的组合显示中包含计算机生成的阴影能极大地增强对用户而言的景象真实性。但是,如果虚拟物体是将计算机生成的阴影投射到真实物体上,则将难以达到看起来逼真的结果。特别是,如果在场景中存在一个或多个虚拟光源或者将计算机生成的物体插入到场景中以使其应当投射由虚拟物体遮蔽真实光源而产生的阴影,则将难以对计算机生成的阴影进行呈现(render)以使其看起来像是投射到真实物体上。
发明内容根据本发明的一个方面,提供一种图像处理器,其被布置成接收表示包括具有预定形状的参照物的场景的图像信号。所述图像处理器可操作以从图像信号中识别所述参照物并检测跨越所述参照物表面的亮度分布。所述图像处理器还可操作以估计由所检测到的跨越所述参照物表面的亮度分布得到的、入射在参照物上的光的方向。如果计算机生成的物体被呈现(render)成好像它们被从与存在于合成图像中的真实物体相同的方向照明,则可使在合成图像中看起来横靠真实物体的计算机生成的物体看起来更加逼真。本发明在这样的图像的产生中具有特别的应用,因为它能自动估计下述光的方向,该光将在假设计算机生成的物体是真实物体的情况下入射到该计算机生成的物体上。这样就能减少对合成图像进行后期作编辑的需求,否则该合成图像将需要手工确定用来呈现计算机生成的物体的光的方向。可替换的,本发明允许实时地呈现和逼真地照亮计算机生成的物体,例如,如果包括参照物的图像是视频帧序列的一部分。根据本发明的一个实施例,亮度分布的检测包括估计在参照物表面上的多个表面点处的亮度量值。此外,对光方向的估计包括计算多个亮度矢量的平均值。每个亮度矢量对应于表面点之一并且包括对应的表面点的亮度量值和对应于垂直于该对应的表面点处的表面的方向的亮度方向。通过在亮度量值最大的参考点表面上简单地确定一点并且相应地推断光的方向,就有可能估计入射在参照物上的光的方向。但是,如果参照物的图像被作为视频图像序列的一部分来捕获,则所述亮度最大的表面上的点可以随着图像的不同而变化,就像所估计的光方向会随着图像的不同而变化一样。如果计算机生成的物体根据这种光的改变的方向实时地呈现计算机生成的物体,则这会以不希望的闪烁或者"摇摆"来表现其本身。因此,根据该实施例,跨越参照物的可见表面采样若干表面点。亮度矢量可以由这些点产生,其平均值形成了估计的光方向的基础。这样就能减少"摇摆"并提供更加稳定的、逐图像的光方向估计。根据本发明的另一实施例,仅检测跨越参照物表面的亮度分布以得到超过阈值限幅电平(cli卯inglevel)的亮度。本实施例可以减少在跨越参照物表面的参考亮度是饱和的或部分饱和的情况下所估计的光方向中的错误。本发明的各种其它方面和特征由所附权利要求定义。现在将通过参考附图仅以示例的方式来描述本发明的实施例,在附图中将对相同的部分提供相应的附图标记,在附图中图1提供了依照根据捕获的图像确定照相机参数的技术布置的照相机和图像处理器的示意图;图2提供了包括照相机取向(orientation)和位置参数的图解说明的、依照根据捕获的图像确定照相机参数的技术的示例布置照相机和图像处理器的示意图;图3提供了包括照相机取向视场的图解说明的、依照根据捕获的图像确定照相机参数的技术的示例布置的照相机和图像处理器的示意图;图4提供了图解说明如何由校准图案构造消失点(vanishingpoint)的示意图;图5提供了包括计算机生成的物体的图解说明的、依照根据捕获的图像确定照相机参数的技术的示例布置的照相机和图像处理器的示意图;图6提供了包括依照估计的照相机参数呈现计算机生成的物体的图像处理器的图解说明的、依照根据捕获的图像确定照相机参数的技术的示例布置的照相机和图像处理器的示意图;图7示出了为棋盘(checkerboard)校准图案定义的轴的示意图;图8a和8b图解说明了用于识别棋盘转角(corner)的处理的一部分;图9示出了"真正的"棋盘转角和"错误肯定的(falsepositive)"棋盘转角;图10图解说明了寻找棋盘的转角的技术的一部分;5图11示出在棋盘校准图案上识别的线的表示;图12a示出棋盘上的两个45度对角线组;图12b示出棋盘上的水平线组和垂直线组;图13图解说明了用于确定线是垂直线还是水平线,或者线是否是45度对角线的处理的一部分;图14a和14b图解说明了在两种特殊情况照相机取向的情况中棋盘的位置;图15示出包括四个有色标记的棋盘校准图案的示意图;图16示出图解说明了包括根据捕获的图像估计照相机参数的方法的步骤的流程图;图17a和17b提供了图解说明用于估计光源方向的技术的示意图;图18a提供了示出在球形参照物中的矢量的分量的示意图;图18b提供了图解说明跨越参照物表面的取样亮度量值的示意图;图19a和19b图解说明跨越参照物表面的亮度分布的限幅;图20提供了估计光源方向的方法流程图;图21是与真实物体的虚拟模型一起被布置从而使得虚拟物体能够看起来像是根据呈现计算机生成的阴影的技术将阴影投射到真实物体上的虚拟物体的示意图;图22是相对于两个光源与真实物体的虚拟模型一起被布置从而使得虚拟物体能够看起来像是根据呈现计算机生成的阴影的技术将阴影投射到真实物体上的两个虚拟物体的示意图;图23是依照呈现计算机生成的阴影的技术呈现计算机生成的阴影的方法的流程图;图24是图解说明被呈现的计算机生成的阴影的示例的示意图;图25是图解说明包括虚拟物体的示例场景的示意图;图26A和26B是用来生成阴影图的呈现途径的示意图;以及图27A至27C是用来生成阴影图的第三呈现途径的示意图,图解说明如何生成对于不同光源的阴影图。具体实施例方式图1提供了用于根据捕获的图像确定照相机参数的系统的示例的示意图。提供了照相机装置l,其能捕获例如视频信号的图像数据,该图像数据表示如由照相机1观察到的场景。照相机1连接至图像处理器2。照相机1和图像处理器2均包括图象处理装置。所述照相机对准校准表面3。照相机1捕获表示校准表面3的图像数据并将对应于这些图像的数据传送回图像处理器2。校准表面3包括校准图案。所述图像处理器2分析校准表面的由照相机1捕获的图像,并使用由捕获的校准表面3的图像导出的信息来确定对应于相对于校准表面3的照相机1的取向的一组参数。图2图解说明了定义照相机的取向的参数。第一角21对应于照相机的倾斜度(pitch)。该倾斜角(pitchangle)21对应于照相机1的中心轴24偏离水平轴25的量。水平轴25相对于校准表面3水平。滚转角(rollangle)22对应于照相机1围绕照相机1的中心轴24相对于校准表面3旋转的量。偏转角(yawangle)23对应于照相机围绕照相机1的垂直轴26相对于校准表面3旋转的量。在某些示例中,图像处理器2还确定相对于校准表面3、对应于照相机1在三维空间中的位置的x,y和z坐标值。图3示出了具有校准表面3的由照相机1捕获并由图像处理器2处理的图像32的表征的、图1和图2中示出的装置。如将要意识到的那样,由照相机1捕获的图像32由照相机的视场31加以定义。如前所述,图像处理器2使用由照相机1提供的捕获图像32来估计照相机1相对于校准表面3的取向和位置。为了做到这一点,图像处理器2分析由照相机1传送给它的捕获的图像数据。图4示出了由图像处理器2从照相机1接收的捕获图像32的示例。如由图4可以看出的那样,捕获图像32包括其上是校准图案的校准表面3。在图4中示出的相对于捕获图像的校准表面的尺寸和位置不是按比例的,而只是表示性的。可以理解,校准表面3相对于捕获图像的尺寸将取决于包括照相机31的视场、对应于照相机縮放(S)(即照相机"变焦")的值和照相机离校准表面的距离的多个因素。校准图案被特性化从而使得其能被照相机1检测到。此外,校准图案和图像处理器2被布置成使得图像处理器能够从由照相机1提供的校准图案的图像中检测至少第一和第二组线。所述第一和第二组线均与校准表面3平行。此外,第一组线61、62、63、64、65和第二组线66、67、68、69、610彼此正交。如图4中所示,图像处理器2可操作以推断(extrapolate)来自第一组和第二组的线以估计在与捕获图像32相同的二维平面上的第一消失点Vpl(所推断的来自第一组的线在该点相交)、以及在捕获图像的相同二维平面上的第二消失点Vp2(所推断的来自第二组线的线在该点相交)的位置(如果这样的位置存在的话)。Vpl和Vp2处于"地平"线611上,该"地平"线水平地穿过捕获图像32的平面。众所周知,从观察者的角度来看,沿着它们的长度观察两个或更多的平行线,该两个或更多的平行线将会聚在地平线上的消失点处,所述地平线是穿过观察者的视场的线。通过考虑图4中所示的校准表面3应认识到,地平线611的位置和消失点Vpl和Vp2沿地平线的位置将根据校准表面3的取向而改变。现有技术使用这一现象来确定照相机1相对于校准表面3的取向。在进一步的示例中,一旦知道了照相机1的取向(即,倾斜角、滚转角和偏转角),就能通过比较捕获图像中的校准图案上的两个特征之间的距离来估计照相机1的"真实世界"位置(即,相对于如由照相机捕获的场景的x、y和z坐标)。可以在假设实际校准表面上的两个特征之间的距离被预先确定并且被图像处理器2知晓的情况下来实现这一点。如将理解的那样,校准图案可以是图像处理器能从其中确定至少两组如上所述的正交平行线的任何适合图案。在进一步的示例中,图像处理器2可操作以使用估计的照相机的位置和取向的值以及表示变焦或视场的值来生成包括与捕获图像相结合的计算机生成的物体的合成图像。由于已知照相机1相对于校准表面3的估计位置和取向,所以图像处理器具有对所有呈现合成图像所需的三维信息的估计,其能够准确地描绘计算机生成的物体相对于校准表面的位置和取向。在表示三维物体的计算机生成的物体的情况下,这意味着在合成图像中对计算机生成的物体的呈现可以就像它是真实物体一样被定位和取向。这在图5中示出。图5示出了图1到3中所示的装置,并且还示出由图像处理器生成并输出的示例合成图像42。图像处理器的输出可以至任何合适的装置,例如显示监视器、记录装置、广播装置等。合成图像4包括计算机生成的物体41。如同前面解释的,计算机生成的物体41是基于虚拟物体41'的,该虚拟物体41'将被"插入"到由照相机1捕获的图像中。在图5中所示的示例中,虚拟物体41'是简单的三维圆柱体。但是,将会认识到,虚拟物体41'也可以表示任何合适的三维物体。图5图解说明了相对于校准表面3的虚拟物体41'的尺寸、形状和位置。如同前面解释的,由于图像处理器2能够估计对应于照相机1的位置和取向的照相机参数,所以考虑到照相机1的位置和取向,图像处理器2能够生成合成图像42从而使得它可以相对于校准表面准确地显示计算机生成的物体。因此,如果照相机1的取向和/或位置相对于校准表面3发生改变,则计算机生成的物体41能够就像其是真实的三维物体那样显示在合成图像42中。这在图6中示出。图6图解说明了计算机生成的物体41在合成图像中的显示可以如何根据如由图像处理器2确定的照相机的取向和位置而发生变化。图6示出了在两个配置A和B中的照相机1的取向和位置。在配置A中,照相机1的x和y位置以及倾斜角已被改变从而使得照相机1直接在校准表面3之上向下指。如可以看出的那样,第二合成图像51由图像处理器产生,其示出了计算机生成的物体41的显示中的相应变化。同样地,在配置B中,照相机1的x和y位置以及倾斜角已经被改变,从而使得照相机1几乎在与校准表面3相同的垂直面上,几乎沿着该表面指向。第三合成图像52由图像处理器生成,其示出了计算机生成的物体41的显示中的相应变化。在一个示例中,校准图案是"棋盘(checkerboard)"图案。棋盘通常包括交替着色的方砖。但是,也可以使用包括交替着色元素的任何适当图案,其在校准图案上的多于两个着色元素邻接的位置处提供相应的多个转角并定义第一和第二线组,每个所述线组中的线相对于彼此平行且相对于校准表面平行,并且第一线组正交于第二线组。可以理解,"着色的"指的是元素的任何光反射特性,该特性使得图像处理器能够对它们进行彼此区分。这包括黑色和白色。下面描述多个处理的原理和应用,这些处理可以在图像处理器2中加以采用以在校准图案是棋盘图案时确定照相机1的位置和取向。如上所述,照相机1捕获其上是棋盘图案的校准表面的图像。捕获的棋盘图像然后被传送至图像处理器。在一个示例中,所述图像处理器包括单元处理器。棋盘校准图案棋盘校准图案允许对具有已知的彼此之间相互关系的转角或线的图案进行检测。每个转角或者线能够被同样地适当定义,并且在由照相机取得的捕获的图像中的其它地方的其它细节能够从错误的检测中被消除,因为它们将不符合与棋盘图案相关的预期形状和图案。当棋盘校准图案实际上只是二维物体时,如果对照相机作出一些基本且合理的假设(即照相机像素为方块,捕获的图像的光学中心在所捕获的图像的中心处,以及在捕获的图像中没有扭曲,或者在照相机1中没有透镜畸变),则该棋盘校准图案足以确定所有的照相机参数。基于这些假设,在校准表面上的"真实世界"位置的四个转角的检测应该足以(在测量100%准确的理想情况下)确定照相机的位置和取向。但是,检测的转角越多,冗余信息的水平就越高,并且因此可以估计的位置和取向参数的精确度就越大(不仅仅因为错误的或令人误解的数据可以被消除或减少)。如同前面所阐述的,将被发现的参数如下所示1.照相机倾斜角212.照相机偏转角233.照相机滚转角224.照相机阿尔法(alpha)31(透视(perspective)/视场)5."真实世界"照相机x位置6."真实世界"照相机y位置7."真实世界"照相机z位置这总共是7个未知数因此四个被检测点的上述断言(assertion)是理论上的最小值(每个点由捕获图像的二维x和y坐标贡献两个方程式)。照相机矩阵方程式可按如下表述[ScreenLocation]=[Projc方程式2-1其中=[Rz][Rx][Ry][Tc]方程式2-2=[XsWsYsWsZsWsWs]方程式2-3「0000<formula>formulaseeoriginaldocumentpage9</formula>方程式2-4a=cot(fovx/2)fovx=x的视场角(fovx=Fieldofview(x)angle)y=高宽比(aspectRatio)=屏幕宽度(screenWidth)/屏幕高度[iz]=(screenHeight)[如果屏幕坐标被归-(1,1/y),则该项可从矩阵中去除]cosftsin&00一sinScos保0000100001方程式2-5<formula>formulaseeoriginaldocumentpage9</formula>^化并以方块像素表示,即屏幕坐标由(-i,-i/y)到O=滚转角)(92=滚转角)<formula>formulaseeoriginaldocumentpage9</formula>(ft=倾斜角)(ex=倾斜角)<formula>formulaseeoriginaldocumentpage10</formula>方程式2-8(Cx,Cy,Cz)为世界空间中的照相机位置[WorldLocation(世界位置)]=[x,y,z,l]1N.B.术语"屏幕"和"捕获的图像"在使用中可互换,即提及屏幕上的位置,指的是捕获的图像的位置/坐标。采用归一化屏幕坐标(即屏幕坐标对应于捕获的图像的坐标,由(-1,-1/(1,1/Y)),并且去除Z屏幕坐标(由于无法测量它),这可被简化成[ScreenLocation]=[MVPMatrix][WorldLocation]方程式2-9a(cos^cos&"in&sin^/sin免)acos汰sin&or(—sin^cos6fe4inftccos&sin&)SOia(—cos^sin&"fsin6itsin^cos&)acosfitcos&a(sin^sin&"tsin&cos^cosft)SC^坐<formula>formulaseeoriginaldocumentpage10</formula>方程式2-11=屏幕上的世界坐标原点的位置S=照相机縮放=照相机距世界坐标原点的距离这里得出的屏幕位置(screenlocation)为如下形式[XSWS,YSWS,WS]T因此,A和Ys是已知的而Ws是未知的。为了简化的目的,可以假设真实世界坐标(即由照相机占据的三维空间)的原点位于棋盘的中心,并且每个方块的宽度为l.O(单位是任意的)。x和z轴被定义为在所述盘上是平的,平行于方块的边,并且因此,y轴由盘的中心垂直地指向上方。这在图7中示出。作为图7中所示的坐标系统的结果,棋盘上的所有转角具有有着y=0、整数x和z坐标的世界坐标。然后,通常,对于在世界坐标(x,O,z)处的棋盘转角,屏幕坐标可由下式表示<formula>formulaseeoriginaldocumentpage11</formula>方程式2-12<formula>formulaseeoriginaldocumentpage11</formula>方程式2-13计算照相机的取向和位置参数的第一步是找到捕获的图像上的棋盘转角。如将被理解的那样,该转角是棋盘上的四个交替地着色的砖相遇的位置。棋盘转角检测算法的要求包括1、找到四个方块的接合点两个"暗"方块彼此对角相对;并且两个"亮"方块位于剩下的两个位置中2、仅在离转角最近的捕获图像的像素处检测转角,然后改进至子像素精度3、消除错误肯定检测(尤其是那些根本不在校准表面上的)4、用最合理的照相机/校准表面的取向进行工作5、在本技术的某些示例中捕获的图像应当被操纵从而使得棋盘图案覆盖大于捕获的图像的高度的大约三分之一。因此在某些示例中如果捕获的图像为具有1920X1080格式的视频输出,则转角应当被彼此分开多于约40个像素。6、转角检测器应当能够适应跨越所述板的照明情况的变化(即看亮度/色度级的差异,而非绝对)7、对于单元处理器上的操作,转角检测器应当能够在一个处理帧(即少于33ms)内在单一协作处理单元(SPU)中完成其对所有转角的检测和确认。为了在图像处理器中实现上述要求,可以采取两个预处理步骤。在第一个预处理步骤中,在从照相机l输出的捕获的图像是具有逐行分段传输(PsF)形式的视频输出的情况下,PsF引入视频被转换成单一逐行帧(简单地通过使线重新交错(reinterleave))。如果图像处理器2是单元处理器,则这由也能滤波视频从而产生1/2、1/4和1/8宽度和高度的更低分辨率的MipM即(贴图)的SPU程序来进行。全尺寸和MipM即版本也能用于在装置中的其它位置呈现视频。如上所述,棋盘的"暗"和"亮"方块可以不一定是黑色和白色。因此,为了迎合棋盘具有两个方块之间的色度变化和较低的亮度变化的情况,可以采取第二个预处理步骤。再次,如果图像处理器是单元处理器,则这个步骤可以作为SPU程序来实施。该过程采用以"暗"(minCol)禾P"亮"(maxCol)的两个近似色的方块(这些应当理想地在初始化时由用户加以设定)。minMaxVector=maxCol-minCol;增益(gain)=1.8/length(minMaxVector);minMaxVector*=增益;输出=点积(inputVideoVec,minMaxVector)输出则局限于0-〉l的范围(SPU函数能将输入的8比特固定点数据转换成浮点)。如果minCol和maxCol分别被设置为黑色和白色,则输出就简单地是亮度数据。在棋盘转角检测过程的第一阶段中,处理捕获的图像的低分辨率版本。在捕获的图像是视频输出的一部分的情况下,这可以是1/8的宽度和高度,例如,240X135像素。在此第一阶段期间,处理整个捕获的图像以检测可能的棋盘转角。设置阈值从而标记所有可能的转角,其中许多将是错误肯定的,其稍后会被去除。在低分辨率下处理捕获图像有两个好处1、可以比在全分辨率(例如包括仅仅像素数的1/64)下更快地搜索整个捕获的图像。2、可能在非盘校准表面位置(或棋盘的其它部分)发现的许多错误肯定在创建低分辨率视频时被固有地滤掉。棋盘方块在低分辨率和全分辨率时将看起来大致相同;而大部分错误肯定则不会如此。最初,在转角检测期间,分析低分辨率版本的捕获的图像中的每个像素。检查当前正在分析的像素周围的7X7像素方块。跟随围绕7X7方块外围的路径计算相邻像素之间差异。这在图8a中示出。识别两组边缘差顶部右半和底部左半(在末端处具有重复的像素以允许在两个半部分(half)之间的一些重叠)。这在图8b中示出。这两组边缘差然后被鉴于下述标准进行估值,以做出关于正在分析的像素是否对应于棋盘上的转角的初始决定。1、最大(最肯定的)边缘近似在同一位置。2、最小(最否定的)边缘近似在同一位置。3、最大和最小边缘彼此分离。4、最大和最小边缘均具有合理的量值。如果所有这些条件都满足,则识别潜在转角并用概率分数标记该潜在转角。检测程序会导致相邻的像素被标记为可能的转角。在这种情况下,可以采取下面的两个阶段来去除重复(duplication)。第一阶段包括处理上述转角检测过程输出的5X5的像素组,并找到该组的重心。处理所有相关的像素。输出是可能的转角的目录,以及在屏幕(即捕获的图像)空间中的它们(全分辨率)的坐标。第二阶段简单地处理在捕获的图像上的可能的转角坐标并从先前的转角中去除所有其坐标低于阈值距离(例如,16个像素)的那些转角。在捕获的图像的全分辨率版本中重复上述低分辨率程序。但是,代替处理整个捕获的图像的是,处理减小了尺寸的部分,例如围绕每个可能的转角(如在低分辨率下检测到的)的32X32像素方块的剪切部分。也可能即使在低和高分辨率处理二者都被采取了之后,所检测到的转角中的某些转角实际上仍是错误肯定的。特别是,棋盘(或其它地方)上的窄线可被当作转角而检测,因为围绕7X7方块的边缘的图案可能类似于真实转角的图案。这在图9中示出。为了去除这样的错误转角,只在距中心像素较远的距离上应用类似于低和高分辨率程序的程序。处理例如围绕每个转角的64X64像素方块裁剪,并分析围绕中心像素的两个圆。较小圆可以具有例如8个像素的半径,而较大圆可以具有例如26个像素的半径。在位置上以及在较小半径和较大半径之间比较围绕这些圆的最肯定的和最否定的边缘。而且,算出高于和低于中级水平灰度级的像素数目对于两个半径来说,之上和之下的部分应当相似。将各种标准结合到用于转角的总体置信水平。只保留具有高置信水平的那些转角。如将被理解的那样,这个处理阶段减少了错误肯定转角的数量,同时使被去除的真实转角的数目最小化。—旦已如上所述处理转角以减少错误肯定的数目,则处理所有确认的转角以便找到它们的坐标以高于像素准确度。可以例如使用与确认过程期间所使用的相同的64X64方块裁剪来实现这一点。而且,与上面类似,这个阶段采用围绕近似的转角位置的圆,在一个示例中,该圆的半径是26个像素。首先,必须找到围绕圆的圆周的两个肯定和否定的边缘的近似大致位置。然后采用更细的取样,进行低通滤波,并找到其峰值边缘,以便找到圆周上的更准确的边缘位置。然后根据连接肯定和否定边缘的两条线的交叉点来计算准确的转角位置。这个过程在图10中示出。在转角检测过程期间,构造连接检测到的转角的线。然后识别贯穿最多数目转角的线。图像处理器识别将每一个确认的转角连接到所有其他确认的转角的每一条可能的线。因此,举例来说,如果检测到49个转角(8X8棋盘上内部转角的理论最大数目),那么存在49X48(2352)条可能的线。但是,由于每一条线都被构造,所以将其与到目前为止构造的所有线进行比较。如果该线与已构造的线非常匹配,那么该已经构造的线具有增加的计数值。在本技术的某些示例中,以极坐标(使用半径和角度)而不是笛卡尔坐标(使用斜率(gradient)和截距(interc印t))来定义所使用的线。这在图11中示出,图11示出如在捕获的图像112上看到的校准图案111。可以看到,线113被构造于两个被识别的转角114,115之间。可以相对于具有半径116和角度117的捕获的图像112来定义所述线113。这使得比较更加一致。在极坐标中,如果角度117在例如2度以内,并且其半径116在例如彼此6像素以内,则可以说线113与另一个匹配。在笛卡尔坐标中,由于接近垂直的线的斜率差将是非常大的,而接近水平的线的斜率差却非常小,因此,无法通过简单的绝对差来比较斜率。找到具有最高计数值的线(事实上是具有位于其上面的最多检测到的转角的那些线)。对于8X8棋盘来说,最多应该有7个检测到的转角在一条线上,不管所述线平行于方块的边缘延伸,还是在45度对角线处延伸。对每条线来说,一旦建立了平均半径和角度(即捕获的图像上的极坐标),就通过所有在该线上的被识别的转角构造最佳拟合的线。最佳拟合的线在最小和最大的半径和角度之间搜索,以找到具有每个点与该线之间的距离的最小和的线。换言之对于线上的n个点,最佳拟合线找到(r,e),其使得下式最小<formula>formulaseeoriginaldocumentpage13</formula>方程式4-1具有最高计数值的线将包括平行于棋盘的方块的边缘(为了简化,以下称为水平/垂直,或者H/V)的那些线、在45度对角线处的那些线以及其它对角线的混合。这些线需要被分类成组,根据它们在真实世界空间中是否平行(即,相对于校准表面)来组织这些组。换言之,应当有水平组、垂直组和针对两个45度对角线中的每一个的组。这在图12a和图12b中示出。图12b示出了水平线组123和垂直线组124。图12a示出了第一线组和第二线组121,122,它们与水平线组123和垂直线组124成45度。对于其它对角线,还可以存在其它线组。这些组将通常包括角度相似但半径不同的线。将线分类成组的第一步是将这些线分类成角度的升序。通常,同一组中任何两条线之间的角度差将随着半径差的增加而增加。将第一线分配给组0:然后利用与第一线的"角度"和"半径"相等的"组角度"和"组半径"初始化该组。然后,将每个随后的线与到目前为止定义的所有组相比较。如果该线的角度类似于一个组角度(所允许的准确的差异量可能取决于半径差异),则将该线分配给该组。组角度和半径作为组中所有线的平均值而被更新。组围绕零角度而展开是有可能的。在这种情况下,几乎360度的线角度必须被看作是(角度-360)度。如上所述,线组的消失点(交叉点)可以用来独立于照相机的位置而确定照相机相对于世界坐标(即校准表面)的取向。它们还可以用来确定照相机l的阿尔法(alpha)/透视(perspective)31。如上面讨论的,消失点是与捕获的图像相同的平面上的坐标,在该坐标处在真实世界空间中平行的线相交。因此它们表示在世界空间中无穷远处的点(因为平行线只能在无穷远处相遇)的捕获图像上的位置。这可以通过使用具有为零的齐次元素的真实世界坐标来表示S卩(x/w,y/w,z/w)的实际的真实世界位置(worldlocation)是在无穷远处。例如,真实世界x轴的消失点可以被表述为真实世界坐标中的(l,O,O,O)。如已知的那样,以下方程式适用(方程式2-1):[Screenlocation]=[MPVMatrix][Worldlocation]可以看出,对于x方向和z方向的消失点,以下方程式也是确切的00=[MVPMatrix]001》」方程式5-1因此可以看出,MVP矩阵的第一列和第三列分别表示x和z方向的消失点的屏幕因此X^"(cos^cos&"^sin6fesin^sin免)—cos&sin^a(—cos^sin6b+sin6lcsin^cos—cos汰sin^a(—sin^cos&+sin6iccos*sin—cos6^cos^>V=a(sin^/sin&+sin汰cos^cos_^-方程式5_2—cos6^cos^由上述方程式可以导出连接两个消失点的线(实际上,xz平面上的任何消失点)具有仅仅取决于滚转角(ez)的斜率~一,=-tan&方程式5-3—旦已经找到滚转角(e》,就可以根据消失点导出对于偏转角0y和倾斜角ex的以下方程式广tan、=.tan&+、八1—广tan&+八少V/JIf方程式5-4tan*sin&:+tan6fe、z尺,、z然后可根据任何的消失点坐标得出a,照相机透视31。还可以将45度对角线组121、122用作消失点的源,取代水平/垂直线组123、124。只要使用两个正交线组,任何一对消失点都是等效的。由45度对角线组121U22获得的结果将与使用水平/垂直线组123U24找到的结果相同,除了偏转角(9y)会相差45度之外。如稍后将会解释的那样,由后面的步骤来确定90度象限,在该象限中偏转角下降。现在足以说如果使用45度对角线消失点ey+=45度(Ji/4弧度)如果检测到所有的棋盘转角,或者检测到跨越棋盘的转角的均匀分布,那么可以估计"世界原点"为最靠近转角分布的中心的转角。如果所述盘的一部分未被检测到,或者处于某些极端的取向,这可能给出错的转角(尤其是当中心转角本身未被检测到时),因此这样的估计可能需要被检查,并且如果需要的话,在后面的阶段中加以修正。由两个相邻转角之间的距离可以找到照相机縮放(S)的值。如果已经找到原点位置,那么,距离一个单位的转角位置(例如(l,O,O))是估计照相机縮放的最简单的方法。对于最初的近似估计来说,假设从照相机到原点的距离远大于两个转角之间的距离,如果估计的原点转角(origincorner)不是正确的原点转角,则结果得到的照相机縮放应当是足够接近的,但是稍后将被改进。对于在世界坐标(x,0,0)处的转角51acos^cos6k+asin&sin^sin&+A",cosficsin^阔r-^^:^-^-15<formula>formulaseeoriginaldocumentpage16</formula>方程式5-5—=其中(XS,YS)=新转角的屏幕坐标(0X,0y)=原点转角的屏幕坐标同样地,对于在世界坐标(O,O,z)处的转角51-o;sin^cos&+asin6)ccos&shi6fe+X,cos儀cos^<formula>formulaseeoriginaldocumentpage16</formula>由此可以导出世界空间中的照相机位置为<formula>formulaseeoriginaldocumentpage16</formula>其中Cx,Cy和Cz等价于x,y和z,即照相机1相对于校准表面的位置。现在,为了使得能够在与校准表面相同的三维空间中呈现计算机生成的物体而构造ViewMatrix(视图矩阵)和ProjectionMatrix(投影矩阵)所需的所有照相机参数都是已知的。用于ProjectionMatrix的剩下的参数(zNear和zFar)是任意的它们决定用于呈现的深度缓存的縮放。例如,所使用的值可以是zNear=1.Of;zFar=100.Of;如将被理解的那样,在转角位置的测量中可能存在一些误差。此外,在棋盘上可能检测到多于四个转角,并且可能存在冗余信息。因此可能期望提供最佳组合结果的方法以产生最准确且可靠的结果。因此,在该过程中的几个阶段处,存在调节任何可能相冲突的结果的一些步骤。例如,如上所述,使用最优拟合(bestfit)线方法来构造在棋盘的转角点之间画出的线。这减少了由于转角坐标测量而引起的某些不准确。但是,仍有可能每组内的线不会均在精确的同一点处相交。实际上,线的角度117或半径116的小误差可能导致相交位置(消失点)的非常大的差异,因为在屏幕上这些线会是接近于平行的。还有可能的是,线组可能包含不属于该组中的线例如,在取向上与组中其它线接近但实质上不属于该组的非45度对角线。在这种情况下,与组中其它线的交点就好像是在棋盘区域之内,因此可以立即被消除。为了进一步注意任何相冲突的结果,计算组内的所有可能相交的捕获图像上的x和y坐标。首先消除棋盘内部的交点。然后对交点的所有x和y值进行加权平均。根据形成交点的两条线的角度之间的差来对每个交点加权。这是因为所计算出的两个几乎平行的线的交点将对每条线中的误差都非常敏感。如果线在角度上越不相似,则交点就越可靠。通常,能够合理地准确地找到消失点的方向(即极坐标中的角度)。有可能的是,线组可能被不正确地形成,并且两个所计算的消失点均表示同一个实际的消失点。因此要包括结合相似的消失点的步骤。对每个消失点分配"置信度"值,该"置信度"值被作为每个交点的角度差的和来计算。因此来自于几乎平行(或者实际上,绝对平行)的线组的消失点将具有低的置信度值,因为它们导致了远的且可能不准确的消失点。来自于具有不同角度的线组的消失点将具有高的置信度值。如果组中的所有线都非常接近于平行(当前分开小于0.2度),则该组被标记为"平行组"。这是取向的特殊情况,并且用特殊的方法来处理。这将在下文描述。可能有多达四个的消失点(可能更多,因为非45度对角线也能产生消失点)已被计算。如上所述,由于这些消失点来自共面线,所以这些消失点均应沿着线(消失线)而存在。但是,有可能的是,"劣等(rogue)"转角或其它不准确已经导致了不正确的消失点。如果是这种情况,则此不正确的点应当偏离该消失线而存在。因此问题是推论哪些是不正确的消失点,以及哪些是正确的。为了识别正确的和不正确的消失点,通过构造从每个消失点到每个其它消失点的线来分析所有可能的消失线。计算每个其它的消失点距该潜在消失线的距离。找到具有最少劣等点(距所述线大于阈值距离的那些点)的消失线。如果该线具有任何劣等消失点,则清除它们,因为它们可能是不准确的。重复这个过程,直到所有剩余的消失点都在距所述线的阈值距离内,或者,在清除后只剩下两个消失点。然后通过剩余的消失点构造最佳拟合线。然后,例如如图4中所示,将该最佳拟合线定义为消失线611。如图13中所示,为了确定线是水平/垂直(即沿棋盘的方块边缘延伸)、45度对角线、还是其它角度的对角线,需要分析原始捕获的图像,尤其是跨越该线的级别(level)的差异。如图13所示,对于线组(其中线具有非常大的跨越该组中的线的绝对差的和),这些线被称为水平/垂直线。具有非常小的绝对差的和的那些线被称为45度对角线。具有中间值的那些线被称为其它对角线,并且不被进一步使用,因为其准确取向是未知的。台^卩'S';方程式6-1册其中B二组中的线的数目N二沿线取的样本的数目(目前是50)然后如果(0rientationScore<0.5*(maxAveLum-minAveLum))则组是45度对角线;否贝U如果(0rientationScore<0.8*(maxAveLum-minAveLum))则组是非45度对角线;否则17组是水平/垂直;其中minAveLum和maxAveLum分别是沿着线一次平均的最小和最大亮度值。如前面解释的,通常使用至少两个正交的消失点来计算照相机的取向。如果由水平/垂直线得出的消失点不可用,则使用两个45度对角线消失点。如果两者都不可用,则无法计算照相机的取向,过程可能终止。如果找到两对正交消失点,则可以使用该两个正交消失点,其组包含最多的线。例如正交消失点对可以是水平/垂直或者45度消失点。然后根据上面展示的方程式来计算照相机的角度。两个消失点被选择的顺序并不重要,换言之,相对于校准表面,哪个被认为是x轴,而哪个被认为是z轴并不重要。这个"象限模糊"可以在下面描述的后面的步骤中被固定。为了确定准确的阿尔法(透视),如前所述,需要消失点在距离和方向上都准确。理论上,一旦已经找到照相机的定位角,则a(alpha)值可以由捕获图像上的任何的消失点的x或y坐标进行计算。为了增加得到准确的a(alpha)值的机会,使用具有如上计算的最高置信度值的消失点的x坐标。因此,如果x轴消失点具有更高的置信分数—x丽cos汰tan^"=,&a"、方程式6-2(cos6t+sin汰tan^sin6k)或者如果z轴消失点具有更高的置信分数—x:兩cos6!)c"=7——^~"^~.&.&、方程式6-3(—tancos+sin汰sin汰)如上所述,最初根据最接近转角分布的中心的转角点来估计原点。该中心被定义为所有转角的棋盘图案上的最小和最大x和y坐标的平均值。稍后可以改进该原点首先通过检测到的转角的计算出来的世界坐标的分布,然后通过着色标记检测。如上所述,可以根据穿过原点转角的线上的转角和原点转角自身之间的距离来估计照相机的縮放。为了找到穿过原点转角的线上的转角,首先需要找到通过原点转角的线。然后,对于每一条通过原点转角的线,找到在该线上的所有其它转角。在这一阶段,不需要知道这些沿x轴、z轴的线是45度对角线(如果是,在哪个方向上),还是其它角度的对角线。为了确定这一点,对每一个H/V/45度对角线计算S的两个估计值(每个来自x和y捕获的图像坐标)如果两个S估计值近似相同,则目前测试的取向是最有可能的。换言之对每条穿过原点转角的线根据X线估计照相机縮放(方程式5-5)如果来自每个转角的两个估计值接近地匹配,则使用这些,否则根据Z线估计照相机縮放(方程式5-6)如果来自每个转角的两个估计值接近地匹配,则使用这些,否则根据对角1线估计照相机縮放如果来自每个转角的两个估计值接近地匹配,则使用这些,否则根据对角2线估计照相机縮放如果来自每个转角的两个估计值接近地匹配,则使用这些估计的线。对于所有线取向,分析沿该线的所有转角。转角之间的世界坐标距离必须是整数。因此,线上的所有转角应当产生估计值S/X(其中X是相对于校准表面的未知三维世界坐标),该值是S的整除(integerdivision)。这些整除可以被因式分解,并且仅仅找到S的估计值。在已经分析所有穿过原点转角的线之后,可以计算S的平均估计值。有可能的是,分析穿过估计的原点转角的线未产生足够的照相机縮放的估计值或者因为通过原点转角的线太少,或者在那些线上存在的转角太少。在这些情况下,需要分析通过其它转角的其它线。如上所述,照相机縮放估计值实质上就是从照相机到校准表面上的世界坐标原点的距离。这个距离很可能将明显大于棋盘方块的宽度。因此,采用不同的检测到的转角作为"原点转角"应该不会产生明显不同的照相机縮放估计值。因此,可以对其它转角使用相同的处理从而产生S的进一步估计值直到存在12个或更多估计值。这应当产生比偶然的错误估计值更稳健的估计值。将在后面的阶段中改进S的估计值。有一些照相机取向的潜在特殊情况可能会导致在使用上述正常处理进行计算时的不稳定、不准确、或者根本没有结果。这主要是因为存在下述取向,在该取向中,在世界空间中平行的线在捕获的图像上也是平行的并且不产生消失点。转角位置测量中的不准确意味着可能计算了消失点,但其可能未必是准确的。因此,在计算消失点位置之前,可以增加检查每组世界平行线的处理阶段。如果相邻线之间的角度小于例如平均0.2度,那么该组被标记为"平行"。在本技术的某些示例中,图像处理器是单元处理器,使用第二SPU程序来计算用于这些特殊情况的照相机参数。然后选择具有较低平均转角像素误差的参数集作为最终的输出,如下文所述。这允许对两个参数集进行误差最小化。在第一种特殊情况下,在捕获图像上所有线都是平行的。这在照相机径直地瞄准所述盘时发生。结果是,所述盘上的在真实世界空间中平行的所有线也将在捕获的图像上平行。这在图14a中示出。如所建议的,这种情况在照相机相对于校准表面平行于y轴直接瞄准时发生。这时,其本身给出了某些参数倾斜(pitch)角=90度滚转(roll)角二O偏转(yaw)角=线组的角度对于此取向,a(Alpha)和照相机縮放(S)参数被链接并且不能单独地被确定。因此,可以设定a的任意值为l,并且使用屏幕上棋盘方块的尺寸来确定S。在第二种特殊情况下,盘线的一个集合在捕获的图像上平行。这种特殊情况的一个示例是照相机被校正以使其沿着平行于x或z轴的线瞄准。这在图14b中示出。在这种情况下,用于计算正常情况的照相机参数的大多数程序都可以使用。可以以与消失点的方向相同的方式使用平行线组的方向。但是,为了计算a,只能使用另一个正交的消失点的距离(半径)。同样地,在两个正交方向上的相邻线之间的距离比也需要被测量这可以通过将每组中的线按照其半径来排序并找到半径差(drx,drz)来实现。如果使用H/V消失点<formula>formulaseeoriginaldocumentpage20</formula>方程式6-5<formula>formulaseeoriginaldocumentpage20</formula>sin&sin&—tan^cos&可以通过常规方法找到照相机縮放值(S)。上面描述的过程能够为每个必要的照相机参数提供估计值。但是,在某些情况下,这些估计值可能不是非常可靠,并且如果不做进一步的改进就使用可能会导致更加不稳定和不匹配的计算机生成物体的插入。因此,可以采取各种附加的处理阶段以改善照相机参数估计值的准确性,从而减少不稳定和其它的模糊(例如在原点位置和棋盘的偏转角)。为了能够对照已经检测到的棋盘的所有转角来检查照相机的取向和位置参数估计值,需要确定每个转角是从哪个世界坐标起始的。然后可将真实世界坐标转换回捕获的图像的坐标并且与检测到的转角位置进行比较。已经知晓关于转角的世界坐标的某些事实1、所有转角都位于校准表面上,因此y=02、所有转角的x和y真实世界坐标都为整数。3、对于8X8棋盘来说,已知x和z坐标位于_3和+3之间。方程式2-12和2-13可以被重新安排以从捕获的图像的坐标和照相机参数找到x和z(世界坐标)<formula>formulaseeoriginaldocumentpage20</formula>方程式7-2方程式7-1和7-2的结果被四舍五入至最接近的整数。作为附加的确认步骤,对多少结果被下舍入(rounddown)到最接近的整数、以及多少被上舍入(roundup)、以及通过什么因数来进行计数。特别是,分析具有世界坐标x或z是1的转角的四舍五入。如果四舍五入是上舍入与下舍入的混合,则照相机参数的估计值可能是合理的,并且在这一阶段中不需要改变。但是,如果所有x或z是l的坐标都以相同方向被四舍五入,则縮放值可能是足够不准确的,以致外围转角实际上被四舍五入至错误的整数。在这些情况下,再次采取世界坐标计算,但是将计算的结果乘以縮放因数,以增加所有转角会被四舍五入至正确的整数的机会。现在分析转角的源(即真实世界)坐标的分布。如果原点转角位置的初始估计值是正确的,则转角世界坐标应当在x和z两个方向上分布在_3和+3之间。如果,例如,若干坐标显示出具有_4的x坐标,同时没有出现在+3的,则有可能我们的原点估计值(originestimate)偏离了它应该在的地方。因此可以将1加到每个x坐标上,为现在具有(O,O,O)的世界坐标的转角重设原点估计值。在重新校正原点估计值之后,仍然可能存在这样一些转角,其世界坐标出现在x或z上的_3到+3范围之外。有可能的是,这些转角因此是在转角确认阶段没有被清除的劣等转角。现在应当清除这些转角,以阻止它们使接下来的错误最小化阶段的结果失真。目前检测到的转角的世界坐标同样可以使用由之前捕获的图像确定的照相机参数加以重新计算。这允许进行确认检查,并且当目前捕获的图像的原始照相机参数估计值非常不准确时备份世界坐标。为了确认和改进到目前为止计算出的照相机参数,可能有必要将它们与每个转角的映射相比较。通过在一定范围内搜索每个参数,可以找到在捕获的图像的像素位置中产生最小总误差的参数的组合(如对所有转角求和)。根据方程式2-1:[ScreenLocation]=[ProjectionMatrix][ViewMatrix][WorldLocation]因此=[CalcScreenlxic]—[MeasuredScreenlxic]方禾呈式7-37bto/£>w=Z(&"-(Cw"erEywF"e"Wc))2方程式7-4c=0其中N=转角数(numberofcorners)每个转角的平均像素误差则可以被表示为,",「scree"附淑7bto/£>rw、,、/4verageCorwer尸"e/fiWw二-x-方程式7—52iV謂6erQ/Cw"e^为了找到最小总误差而改变的参数如下倾斜角、偏转角、滚转角、a、照相机縮放原点位置应当不需要改变,因为它是由转角位置直接导出的。由于初始估计值可能不那么准确,因此需要在宽的区域内搜索这五个参数;它们还需要被改进至准确的程度,并因此以小的步长进行搜索。为了在有限的处理时间内实现这两个条件,使用多阶段处理1、用粗步骤(即很少的步骤)在宽范围内搜索所有五个参数。遍及五个变量的搜索在处理时间方面可能是最慢的,因此所使用的步骤数必须是少的。2、(仅)使用精细步长改进照相机角度。这一阶段被执行两次一次采用原始转角源坐标,以及采用使用在前帧的参数导出的那些源坐标。使用由以最低的最小总误差设21定的坐标得到的角度。3、在围绕在前帧的角度的窄角度范围内搜索(使用在前帧的a和照相机縮放)。如果这一阶段产生了比阶段2更低的总误差,那么就使用来自这一阶段的角度代替。4、使用精细步长改进a和照相机縮放。即便在已经采取上述处理之后,原点位置(尤其是如果盘的部分是模糊的,或者由于照明条件而未检测到)以及偏转象限(yawquadrant)(即90度)取向二者中仍有可能存在模糊。同样地,例如,如果使用砖地(tiledfloor)而不是固定尺寸的棋盘来跟踪,则需要一些平移(translation)参考来指定哪些砖处于哪些世界坐标,因为以砖频率检测会产生混淆。因此,如上所述,在某些示例中,图像处理器可操作用来从校准图案中检测多个进一步的转角特征,每个转角特征都是可由图像处理器唯一识别的。在本技术的某些示例中,为了消除这些模糊,将四个不同着色的标记放置在棋盘的四个外围方块的中间。对于8x8棋盘,这些对应于(±3.5,0,±3.5)的世界坐标。这四个标记将具有可以预置的颜色,例如,红、蓝、绿和黄。这在图15中示出,其中这四个标记以"红"、"蓝"、"绿"和"黄"在棋盘上示出。为了检测图15中所示的着色标记,首先将已知的真实世界坐标乘以MVP矩阵,如方程式2-9所述,以给出在捕获的图像中的期望的位置。然后识别最接近这些捕获的图像位置的像素。所识别的像素可能并不精确地与预置的颜色匹配,因为照明条件可能改变。但是,当考虑为矢量时,所识别的像素颜色,应当与"中心"颜色矢量在约略相同的方向上。因此,这里的第一步骤是从预先设置和所识别的颜色中减去"中心"颜色。如在之前的处理阶段中发现的那样,所述中心颜色基于棋盘的平均亮度。计算两个颜色之间的矢量点积(预置减去偏移量以及识别的像素颜色减去偏移量)。用量值来除该点积从而给出矢量之间的角度。那些具有最紧密匹配角度的被标记为匹配。可以使用0和90度之间的偏转(yaw)角来创建所使用的MVP矩阵(MVPMatrix),即,yaw90(偏转90)=mod(yaw,0.5*PI)例如,对于红色标记[ExpectedScreenLocation]=[MVPMatrix][3.503.51][ReadBackColour]=PrYPbValuesatExpectedScreenLocationcos("wg7e)=Jr)j"j~~』j~~^~方禾呈式7_6If(cos(angle)>threshold)thenMatch=trueElseMatch=false标记的第一个目的是确认原点位置。为此,对于远离当前估计的真实世界原点位置(包括当前位置)的整数x和z平移处的原点位置测试四个可能标记匹配。换言之[PossibleRedStickerWorldLoc]=[3.503.5l]T+[p0q0]T方程式7-7其中p,q是-3和+3之间的整数。产生最高数目的标记检测的原点偏移量变成新的原点。—旦已经找到正确的原点,四个标记的颜色就可以用来确定正确的偏转象限(即22正确的偏转角位于的90度象限)。由于用于找到标记位置的偏转角被减小到0和90度之间的角度,所以将90度的倍数加回到偏转角上是简单的事情。这能很好的做到,因为偏转角旋转被首先应用于世界坐标(参见方程式2-2)。用于找到标贴(sticker)的世界坐标可以按如下顺序完成(-3.5,0,-3.5);(3.5,0,-3.5);(3.5,0,3.5);(-3.5,0,3.5)通过分析在这些位置中检测的四个颜色,可以找到偏转象限偏移量,如下表1中<table>tableseeoriginaldocumentpage23</column></row><table>表1颜色标记位置及其对偏转象限的影响最终的偏转角=偏转90+偏转象限偏移量如果检测到的标记少于2个,则使用来自在前捕获的图像的偏转象限偏移量(yawQimdrantOffset)。如上所述关于特殊情况,可能存在由两个单独的计算返回的两组照相机参数。选择具有最低平均转角像素误差的那组,只要此误差平均少于2个像素。如果两个误差都大于2个像素,则认为照相机参数没有被正确地锁定并使用在前帧的参数。因此,如果棋盘没有被适当地跟踪,则照相机参数会被"冻结"直到再次准确地找到棋盘为止。还可以使用简单的无限脉冲响应(IIR)滤波器、通过将当前值与从在前捕获的图像导出的值混合(当前等于,50/50混合)来对所确定的照相机参数进行滤波。对于照相机角度,所述混合可能稍微复杂一些,因为角度可以环绕360度。为了解决这一点,找到(考虑到环绕)角度差(在当前和在前帧的角度之间),将这个的百分率(目前是50%)加到在前帧的角度上。如将被理解的那样,不是所有前面描述的步骤对校准图案是棋盘图案时估计照相机的取向和位置而言都是必需的。许多步骤,例如那些提高照相机参数的估计值的准确度的步骤是可选的,或者可以根据例如由照相机提供的图像的质量、照相机距校准表面的距离、照明条件的质量之类的某些因素而定。图16示出说明包括根据捕获的图像来估计照相机参数的方法的步骤的流程图。在步骤S1,捕获校准表面的图像;在步骤S2,通过从视频信号中识别多个潜在的转角位置来检测校准表面上的转角位置,定义以每个潜在转角位置为中心的、如由照相机观察到的场景的区域,分析位于每个区域的周界(periphery)上的点的颜色,从而估计转角位于每个潜在转角位置处的可能性。在步骤S3,根据转角位置识别第一和第二线组;在步骤S4,推断(extrapolate)所述线;在步骤S5,确定第一和第二相交点的存在和位置;以及在步骤S6,产生一个或多个估计的滚转角度值、倾斜角度值和偏转角度值。尽管已在单独的捕获图像方面主要解释了上述示例,但是所提到的捕获图像可以是由照相机生成并且以任何适当的视频格式发送至图像处理器的视频流(例如视频帧)的一部分。此外,依照例如Mpeg4的适当的压縮标准,可以在处理期间的合适的点处适当地压縮由照相机发送的捕获图像/视频。此外,当实施上述技术的示例时,可以进行多种修改。例如,如果计算机生成的物体将被插入到合成图像中,则可以临时对校准表面进行成像,允许图像处理器在第一位置中确定照相机的位置和取向。随后,可以去除校准表面,并可以根据例如来自连接至照相机的伺服电机的遥测反馈之类的其它手段来确定照相机取向和位置的任何改变。此外,由照相机生成的视频信号可以包括多个视频帧,且图像处理器可被操作以便为视频信号的单独视频帧估计所估计的滚转角度值、所估计的倾斜角度值和所估计的偏转角度值中的一个或多个。估i十光方向现在将参照图17a至20来解释估计光方向的技术。图17a提供了图解说明估计光方向的技术的示意图。如在以上示例中所述地提供照相机1。图17a中所示的参照物171—个球体,但是如下面进一步解释的那样,可以使用任何合适的三维物体,例如立方体、半球体、或任何其它的部分呈球形的物体。在图17a中所示的图例中,参照物171正被光源(未示出)照亮。图像处理器2可操作以接收由照相机1捕获的包括参照物171的场景的图像,并识别对应于参照物的图像的部分。在某些实施例中,图像处理器2被设置从而使得其可以将参照物171与可能存在于捕获图像中的其它物体区别开。可以通过参照物表面的着色和/或通过其形状和表面纹理来对其进行帮助。所述参照物可以具有预定的形状以辅助图像处理器的检测。在此类实施例中,图像处理器2无需分析捕获图像以识别捕获图像中的参照物171,因为该场景内的参照物171的位置(以及因此捕获图像内的位置)例如通过将位置预编程到图像处理器中而被预先定义了。在某些示例中,参照物171具有无光泽表面。—旦图像处理器2识别了对应于参照物的图像部分,则其可操作以基于跨越参照物表面的亮度分布来估计入射到参照物上的光的方向。这将在下面进一步解释。如将被理解的,参照物171的表面上的亮度将根据下述方向来变化,其中该表面被光源从该方向照亮。此外,对于散射部分入射光的简单参照物来说,这样的点(即,在该点处亮度可能被期望为处于最大值)将是参照物上的点(在该点处表面垂直于光的方向)。因此,此类点的检测可以用于估计入射光的方向。例如,参考图17a,通常会期望点172(在参照物171上的该点处亮度最大)处于垂直于入射光方向的参照物表面上的点处。因此其可用于确定入射光的方向。如上所讨论的,图像处理器2可操作以基于由照相机1捕获的、包括计算机生成物体的呈现的图像来产生合成图像。图17b示出图17a的装置,其中使用由图像处理器生成的光方向的估计来在合成图像182中呈现计算机生成的物体181。图17b示出基于参照物171的亮度而对应于所估计的光方向的第一箭头183。假设指到参照物171上的光是平行的(即聚焦于无穷远),则第二箭头184图解说明了可用于呈现计算机生成的物体181的光的方向。所呈现的计算机生成物体181将出现在合成图像182中的特定方式将取决于其形状和由图像处理器2加给它的光反射特性。但是,总的效果应当是其看起来像是其将以类似于捕获图像内的其它物体的方式被照亮的真实性程度的改善。如可以从合成图像182中看出的那样,计算机生成的物体181已经被呈现,从而使得看起来它是被来自于与所估计的光方向相同的方向的光照亮的。如上所述,为了使图像处理器估计入射到参照物上的光的方向,必须连同关于参照物形状的信息一起来确定跨越参照物表面的亮度分布。图18a示出球体参照物171的更详细图示。如果球体参照物171的表面上的第一点191是这样的点,即在该点处亮度最大,则起始于球体参照物171的中心点192并穿过第一点191的矢量提供了这样的点,即在该点处物体表面垂直于光的方向,并因此指示出入射至球体参照物171上的光的方向。如图18a所示,矢量193的方向可以按照极坐标9、(P来表示。尽管这里使用的参照物是球体,但是可以理解的是,任何适当的形状都可用于参照物,只要图像处理器能够根据捕获的图像确定其表面的三维性即可。在某些示例中,可以依照用于估计照相机1的位置和取向的上述方案来提供x,y和z轴(相对于它们定义极坐标)。当根据参照物的捕获图像估计光的方向时,可以简单地识别表面上亮度最大的点。但是,在某些情况下,例如如果有多个光源或者如果照相机可以观察到的参照物部分的总亮度是饱和的或接近饱和的,则识别出单个点可能是不可能的,或者可能导致较不准确以及更多的"有噪声"的估计。因此,在某些示例中,图像处理器在参照物的整个表面上的点处对参照物进行取样,并确定在每个取样点处的亮度。这在图18b中示出。图18b示出包括多个取样点194的球体参考表面171。对每个取样点194计算亮度矢量,由在特定取样点处的亮度确定该矢量的量值,并且如图18a所示地确定该矢量的方向(换言之,9和(P的值)。在参照物是不同形状的其它示例中,方向矢量将基于垂直于取样点处的表面的方向加以确定。当所有亮度矢量被产生后,计算所有亮度矢量的平均值。该平均矢量的方向形成入射光方向的估计值。在某些情况下,例如由于跨越参照物的可见区域的亮度是饱和的或接近饱和,光源较远和/或相对暗淡,所以从参照物提取准确的亮度数据可能是困难的。因此,可以设置限幅电平。忽略被确定为低于限幅电平的任何亮度取样。限幅电平(clippinglevel)可以是完全预定的值,或者可以相对于捕获图像中的普遍亮度条件来设置。图19a和图19b图解说明了限幅(cli卯ing)的概念。图19a示出从捕获图像中识别的球体参照物的示例。如可以看出的那样,参照物的可见表面的亮度的较大部分是饱和的。图19b示出在其经受限幅之后的参照物201的示例。阴影线区域202指示具有低于限幅电平的亮度的参照物的表面部分。只使用剩余区域203中的取样来估计光的方向。在某些实施例中,当估计出入射光的方向时,图像处理器可操作以考虑照相机1的取向和位置(例如参考如上所述的校准表面而确定)。因此,可以确定相对于校准表面的光的方向,即入射光方向的"真实世界"估计值。因此,当呈现合成图像时还可以考虑照相机1的运动(其将导致相对于照相机1的入射光的方向的改变)。此外,照相机的运动将意味着如由照相机观察到的(即捕获图像中的)参照物的位置将改变。在参照物的位置被预编程在图像处理器中的实施例中,图像处理器可以重新计算捕获图像中的参照物的位置,以适应照相机的运动。图20示出图解说明了包括估计入射在预定形状参照物上的光方向的方法的步骤的流程图。在步骤S10,识别来自代表包括参照物的图像的所接收的图像信号的参照物,该参照物具有预定形状。在步骤S11,检测跨越参照物表面的亮度分布。在步骤S12,估计由检测到的跨越参照物表面的亮度分布导出的入射在参照物上的光的方向。就禾口i十纖顿白寵本力司白勺,沐聰ffl现在将参照图21至27描述可以呈现计算机生成的阴影以使得它们看起来被投射在真实物体上的技术的示例。图21是根据本技术的示例的、虚拟物体1000和真实物体的虚拟模型1010—起被布置、从而使得虚拟物体看起来是将阴影投射在真实物体上的示意图。如由图21可以看出的那样,虚拟模型的区域1020(被称为遮断(occlude)区域)被虚拟物体1000遮住了虚拟光源1030,如虚线所指示的那样。在图21中所示的示例中,虚拟物体IOOO对应于如上面参照图4至6所述的虚拟物体41'。可以理解,图21中所示的示意图表示虚拟物体1000和虚拟模型1010的三维表示的侧视图。在本技术的示例中,虚拟模型1010被映射至由照相机1捕获的真实图像中的真实物体的位置,从而使得虚拟模型与真实物体相符。例如,真实物体可以是国际象棋棋盘,其中国际象棋棋盘的方块充当校准表面3。在这个示例中,虚拟模型将包括矩形盒,其被图像处理器2映射以对应于真实的国际象棋棋盘。在某些示例中,使用如上所述的照相机跟踪和标记检测技术对虚拟模型1010进行定位以便对应于真实物体。换言之,通过参考包括第一物体上的校准图案的校准表面确定第一物体相对于照相机的取向和位置来自动地将虚拟模型映射到第一物体上的位置。但是,可以理解,可以使用使虚拟模型与真实物体一致以使它们实质上与彼此相符的任何其它合适的方法。例如,用户可以通过使用合适的用户界面来手动控制虚拟模型1010的位置和取向。为了使计算机生成的阴影能够被呈现从而使得它们看起来被投射在真实物体上,在本技术的示例中,虚拟模型1010是这样的以致于虚拟模型1010的颜色是黑色且虚拟模型1010基本上是透明的。因此,如果场景中不存在计算机生成的阴影(例如没有投射阴影的虚拟物体),则虚拟模型将会被呈现以使其在作为结果的合成图像中是不可见的。可以理解,出于艺术效果的目的,或者为了模拟彩色环境光,任何其它合适的颜色都可以用于虚拟模型。但是,如果场景中存在计算机生成的阴影(例如,在图21中所示的情形),则图像处理器2可操作以修改在遮断区域的虚拟模型的透明度,以便产生虚拟模型的经修改的透明区域。为了使经修改的透明区域在作为结果的呈现图像中可以看起来像阴影,在某些示例中,图像处理器2可以修改遮断区域(如遮断区域1020)的透明程度从而使遮断区域的透明度低于虚拟模型1010的其它区域的透明程度。换言之,没有被虚拟物体(例如虚拟物体IOOO)遮住虚拟光源(例如光源1030)的虚拟模型的那些区域不会使它们的透明度被修改。因此,当结合虚拟物体IOOO和虚拟模型IOIO呈现真实物体从而使得虚拟模型的修改了透明度的区域看起来与真实物体相结合时,修改了透明度的区域将看起来仿佛它们就是被投射在真实物体上的阴影。换言之,虚拟模型1010可以是部分透明的(不是完全不透明)以使得来自真实光源的光能够从真实物体反射从而使得真实物体看起来像在阴影中。在本技术的示例中,虚拟模型包括构成模型的多个片段。片段通常被用于3D图形中以表示生成用于输出至帧缓冲器的像素所必需的图形数据,并且可以包括诸如光栅位置数据、深度缓存数据、内插属性数据、a(alpha)值数据等数据。在每个片段处的虚拟模型的透明程度与该片段的相应a(alpha)值相关联。换言之,片段的相应a(alpha)值可以被认为是表示该片段的透明程度的该片段的透明度值。通过改变与虚拟模型相关联的a值,可以轻易地控制虚拟模型的透明度。a值和a混合在本领域中是已知的,因此这里不再详细描述。在本文所述的示例中,依照与虚拟物体相关的阴影图来修改虚拟模型的片段的a值。下面将更详细地描述阴影图的生成。在参考图21至27所述的示例中,所有与虚拟模型相关的片段最初均具有0.0的a值,即虚拟模型是完全透明的。可以理解,具有l.O的相关联a值的片段对应于该片段完全不透明。被检测为被虚拟物体1000遮住虚拟光源1030的虚拟模型1010的那些区域(例如遮断区域1020)使其各片段的阿尔法值被增加至大于对应于虚拟模型1010的其它(非遮断)区域的片段的a值。在本技术的示例中,对应于遮断区域的那些片段的a值被增加预置或预定的量。例如,当预置的量是0.2时,对应于遮断区域1020的片段的a值将从O.O(未修改的虚拟模型的a值)增加至0.2。但是,可以理解的是,可以使用受制于(subjectto)1.0的最大a值的任何其它适当的预定量。当场景中存在多于一个的虚拟物体和/或多于一个的虚拟光源时,则被一个或多个虚拟物体遮住一个或多个虚拟光源的虚拟模型的任何区域都可以使它们的a值相应地增加。其中具有两个光源和两个虚拟物体的示例场景在22中示出。图22是被布置在虚拟模型1010上且被虚拟光源1030和虚拟光源1050照亮的虚拟物体1000和虚拟物体1040的示意图。在图22中所示的示例中,虚拟模型1010的遮断区域1060被虚拟物体1000遮住虚拟光源1030,虚拟模型1010的遮断区域被虚拟物体1040遮住虚拟光源1050,并且虚拟模型1010的遮断重叠区域1080分别被虚拟物体1000和1040遮住虚拟光源1030和虚拟光源1050二者。因此,图像处理器2通过检测是否第一遮断区域(例如遮断区域1060)的至少一部分与至少第二遮断区域(例如遮断区域1070)的至少一部分重叠来检测在哪里出现了任何遮断重叠区域。在本技术的示例中,对应于第一遮断区域的虚拟模型的那些片段与第一a值相关联,而对应于第二遮断区域的那些片段与第二a值相关联。然后图像处理器可操作以将第一a值加上第二a值以便生成遮断重叠区域a值。然后依照遮断重叠区域a27值来修改在检测到的遮断重叠区域处的虚拟模型的透明程度。在某些实施例中,由图像处理器2通过给a值增加预定的量来执行a值的修改。在一个示例中,第一a值和第二a值相同,并且如上所述被设置成预定a值。例如,当预定a值为O.2时,遮断重叠区域1080中的片段的a值将被从0.0修改成0.2+0.2=0.4。但是,可以理解,可以使用任何其它适当的预定a值。在替换示例中,第一a值和第二a值可以彼此不同。这可能在一个或多个虚拟物体具有某透明程度时发生。可以理解,增大透明度值对应于降低透明程度。可以理解,本文所述的技术不限于从两个虚拟光源模拟阴影,而可以更一般地应用于多个光源。在某些示例中,对于被检测为从相应的光源落至虚拟模型的特定片段上的每个阴影,将预定的a值加至该片段的a值。这里,如果片段被虚拟物体遮住虚拟光源,则认为阴影落在片段上。换言之,无论阴影落在对应于阴影区域的虚拟物体上的何处,所述阴影区域是被虚拟物体遮住虚拟光源的虚拟模型的区域。在本技术的示例中,每个阴影区域与相应的预定a值相关联。然后图像处理器检测虚拟模型的每个片段,其位置与该片段的位置相符的多个阴影区域。对于其位置被检测为符合该片段的每个阴影区域,与该阴影区域相关联的相应的预定a值被加到与该片段相关联的a值上。例如,如果片段的位置与四个阴影区域的位置相符,且预定a值为0.2,则该片段的a值将为0.2+0.2+0.2+0.2=0.8。但是,可以理解,可以使用任何其它适当的预定a增量。在某些示例中,与相应的阴影区域相关联的预定a值可以是彼此相同的。这简化了a值的计算并且通过模拟均匀的阴影帮助改善图像的真实性。可替代的,在其它示例中,相应的预定a值彼此不同,以便实现想要的美学效果,或者由透明的虚拟物体模拟遮断(occlusion)。在本技术的示例中,片段的a值是与其位置对应于受制于最大a值的该片段的阴影区域相关联的a值的和。如果该片段的a值的和大于所述最大a值,则该片段的a值被限制到最大a值。在某些示例中,最大a值是l.O,尽管可以理解可以使用任何其它合适的a值作为受制于小于或等于1.0的最大a值的最大a。换言之,检测阴影区域的位置是否与片段的位置相符、并且将与该阴影区域相关联的相应的预定a值加到与该片段相关联的a值上是参考图22描述的示例的更普遍的情况。现在将参考图23来描述可与本技术的示例一起使用的已知的呈现计算机生成的阴影的方法。在步骤s100,图像处理器2如上所述将真实物体的虚拟模型映射至该真实物体。然后,在步骤sl05,图像处理器2检测被虚拟物体(例如虚拟物体1000)遮住虚拟光源(例如虚拟光源1030)的虚拟模型的遮断区域。在步骤sllO,图像处理器修改在遮断图像区域的虚拟模型的透明度,从而生成如上所述的修改了透明度的区域。然后,在步骤sll5,操作图像处理器以使真实物体与虚拟物体和待呈现的虚拟模型相结合,从而使得虚拟模型的修改了透明度的区域看起来与真实物体的图像相结合。现在将参考图24至27描述阴影图的产生和遮断区域的检测。对于包含N个阴影投射光的场景来说,阴影映射通常需要N+1个呈现通道(renderingpass)。首先从每个阴影投射光的角度出发(仿佛照相机位于光的位置处一样)将所述场景在N个幕外的(off-screen)缓冲器中呈现一次。然后提取每个呈现通道的深度缓存,并且结果得到的数据被视为纹理图。结果得到的纹理图对应于阴影图,并且表示从给定方向上的相应的阴影投射光到场景中的最近物体的距离。—旦已生成N个阴影图,就可以从照相机的角度出发呈现场景。在某些示例中,投影的纹理映射用于将阴影图从每个光的角度投射回场景上(好像投影仪位于光的位置处一样),从而产生对应于沿该物体和光之间描绘的光线从阴影投射光到最近的物体的距离的距离数据。还可以由图像处理器2来计算从片段到每个光的距离,并将其与距如由该片段的距离数据所指示地读取的每个光的最小距离相比较。如果从片段到光的距离与该片段的距离数据中指示的距离相同,则该片段是到该光最近的物体的一部分,并且该片段将被该光照亮。如果从片段到光的距离大于由该片段的距离数据指示的距离,则该片段不是最接近该光的物体的一部分,且当计算该片段的照明时将忽略来自该光的照明计算。另外,在本技术的示例中,可以使用阴影图来如上所述地修改虚拟模型的透明度。图24示出了具有第一虚拟光源2000、第二虚拟光源2010、球形虚拟物体2020、立方体虚拟物体2030和与有纹理的虚拟物体2050相交的环形虚拟物体2040的被呈现场景的示例。尽管图24中所示的计算机生成的阴影看起来被呈现于有纹理的虚拟物体2050上,但可以理解,该有纹理的虚拟物体可以被如上所述的例如国际象棋棋盘(棋盘)的真实物体的虚拟模型代替,从而使阴影看起来被呈现在真实物体上。图24还示出对应于虚拟光源2000的阴影图的阴影图(标记为阴影图A)以及对应于虚拟光源2010的阴影图的阴影图(标记为阴影图B)。现在将参考图25至27描述图24中的示例被呈现场景的部分的阴影图的产生。图25示出了图24中所示的一些虚拟物体的线框架(wireframe)略图的示意图。特别地,图25示出球形虚拟物体2020的线框架表示2020'、立方体虚拟物体2030的线框架表示2030'和有纹理的虚拟物体2050的线框架表示2050'。图24中的示例被呈现场景包括两个虚拟光源,因此需要三个呈现通道来呈现该场景并产生所需的阴影图。图26A示出第一呈现通道,图26B示出第二呈现通道,且图27A至27C说明了第三呈现通道的示例。图26A示出用于产生虚拟光源2000的阴影图的第一呈现通道的示意图。在图26A中,使用与虚拟照相机2000'相关联的投影平截体从虚拟照相机2000'的角度呈现场景,且其中虚拟照相机2000'被放置在对应于虚拟光源2000的位置的位置,从而产生虚拟光源2000的阴影图2060(对应于图24中的阴影图A)。图26B示出用于产生虚拟光源2010的阴影图的第二呈现通道的示意图。在图26B中,使用与虚拟照相机2010'相关联的投影平截体从虚拟照相机2010'的角度呈现场景,其中虚拟照相机2010'被放置在对应于虚拟光源2010的位置的位置,从而产生虚拟光源2000的阴影图2070(对应于图24中的阴影图B)。在图26A和26B中,阴影图2070和阴影图2080被概略地示作表示球形虚拟物体2020和用来执行该呈现通道的相应虚拟照相机之间的距离的轮廓。在本文所述的示例中,阴影图是包括表示虚拟物体2020和相应的虚拟光源之间距离的值的深度纹理,被縮放至位于相应照相机的投影矩阵的zNear和zFar之间。对于第三呈现通道,从场景照相机(即如图1至6中所示的照相机1)的角度呈现场景。图像处理器2使用投影纹理映射将每个虚拟光源的阴影图投影到场景上,好像来自位于虚拟光源的位置处的投影仪一样。关于投影纹理映射的更多信息可以参见"TheCgTutorial:TheDefinitiveGuidetoProgrammableReal-TimeGraphics,,R.FernandoandM.J.Kilgard,Addison-WesleyProfessional(8March2003),ISBN:0-321-19496-9。在本技术的示例中,图像处理器2包括以硬件实现的片段着色器(fragmentshader)。但是可以理解的是,片段着色器也可以由软件实现。片段着色器执行阴影图到场景上的投影。但是,可以理解的是,可以使用用于将阴影图投影到场景上的任何其它合适的方法。图27A示出将被根据所生成的阴影图呈现的场景中的点的示例。特别地,图27A示出四个示例点&、P2、P3和P4。点P工位于由虚拟光2010投射的阴影中,而被虚拟光2000照亮。点P2位于虚拟光2000和2010二者投射的阴影中,因此不被任何虚拟光照亮。点Ps和P4不位于阴影中,且这些点被虚拟光2000和虚拟光2010二者照亮。图27B图解说明如何计算P工处的片段位置的阴影。图像处理器2将虚拟光2000(也称为光L》的阴影图投影到场景上,并且使用已知技术从由虚拟光2000生成的预先计算的阴影图读取如图27B中所示的距离du—SP1。距离du—SP1表示从虚拟光2000(光L》到被检测为沿虚拟光2000和点P工之间的光线路径距虚拟光2000(光L》最近的虚拟模型的片段的距离。在这种情况下,点Pi处的有纹理的虚拟模型2050'的片段最接近虚拟光2000,如图27B中以双头箭头标记的du—SP1指示的那样。另外,将虚拟光2010(也称为光L2)的阴影图投影至场景上,并计算如图27B中由双头箭头所示的距离42—SP1。距离42—^表示从虚拟光2010(光L》到被检测为沿虚拟光2010和点P工间的光线路径距虚拟光2010(光L》最近的虚拟模型的片段的距离。在这种情况下,点Ps处的球形虚拟模型2050的片段(如图27B所示)最接近虚拟光2010,如图27B中以双头箭头标记的d》SP1指示的那样。图像处理器2还使用已知技术来计算虚拟光2000(光L》与点P工处的片段之间的距离du—P1,以及虚拟光2010(光L2)与点P工处的片段之间的距离(WP1。图27C示出了以与如上所述计算图27B中所示距离相似的方法计算的距离du—SP2、sp2、dLi—p2,禾卩dL2_P2。更一般而言,通过将已知技术应用于各阴影图来关于每个虚拟光Ln(其中n为整数)和场景中的每个点Pm(其中m为整数)执行上述计算,从而生成每个片段和相应的光源的cL,和dta—^值。在图24至27中所示的示例中,n=1至2,但是应该理解可以使用任何其它适当数目的虚拟光源。然后图像处理器2使用所计算的距离dta—Pm至dta—SPm来检测点Pm处的片段是否被虚拟物体遮住虚拟光源Ln(即片段的位置是否对应于阴影区域)。如果dta—Pm=dta—SPm,则点Pm处的片段是沿点Pm和虚拟光Ln之间描绘的光线最接近于虚拟光Ln的片段。因此该片段不被遮断且图像处理器2生成Lm的漫射和镜面照明(specularlighting)参数,并将该参数加到点Pm处的片段的照明参数上。但是,如果dta—Pm>dta—SPm,则存在另一个比点Pm处的片段更接近虚拟光Ln的片段,意味着点Pm处的片段被虚拟物体遮住虚拟光源Ln。因此,点Pm处的片段的位置与阴影区域的位置相符。虚拟模型的阿尔法值则可以如上所述进行相应地修正。当点Pm位于虚拟物体上时,则不将与虚拟光源Ln相关联的任何漫射和镜面照明参数加到点Pm处的片段的照明参数上。换言之,在本技术的示例中,图像处理器通过检测虚拟模型的哪些片段对应于如上文参考图26至27所述的被虚拟物体遮住相应光源的虚拟模型上的点来检测虚拟模型(例如虚拟模型1010)的遮断区域。那些被虚拟物体遮住相应光源的片段在这里被称为遮断片段。然后图像处理器2可以如上所述地修改遮断区域中的遮断片段的透明度。但是,应该理解可以使用任何其它合适的用于检测虚拟模型的遮断区域的方法。应该理解的是,可以定位一个或多个虚拟光源(例如光源2000)以便对应于场景中真实光源的位置。在这种情况下,可以如上文参考图16至20所述的那样估计真实光源的位置,且定位虚拟光源以便对应于真实光源的位置。通过根据本技术的示例应用如上所述的用于呈现计算机生成的阴影的技术,可以用例如使得给出虚拟物体正通过遮断真实光源将阴影投射到真实物体上的表象的方式来生成计算机生成的阴影。这帮助改善结果得到的合成图像对于用户的真实性。应该理解本技术可以适应一个、两个或多个被遮断的光源。虽然已经参考阿尔法值的使用描述了如上所述的虚拟模型的透明度的修改,但是应该理解的是,也可以使用任何其它合适的修改透明度的方法。应该理解,在上述本技术的实施例中,可以以任何适当的方式在图像处理器2中实现上述方法中的任何一个的元素。因此可以用计算机程序产品的形式来实现对传统等效设备的现有部分的所需适应,所述计算机程序产品包括存储在例如软盘、光盘、硬盘、PROM、RAM、闪存或这些或其它存储介质的任何组合之类的数据载体上的、或者经由数据信号在诸如以太网、无线网络、因特网、或这些及其它网络的任何组合之类的网络上发送的、或者用如ASIC(专用集成电路)或FPGA(现场可编程门阵列)或其它适合用于适应传统等效设备的可配置的或订制的电路的硬件实现的处理器可实现指令。3权利要求一种被布置成接收表示包括预定形状的参照物的场景的图像信号的图像处理器,所述图像处理器可操作以从所述图像信号中识别所述参照物;以通过估计所述参照物表面上的多个表面点处的亮度量值来检测跨越所述参照物表面的亮度分布;以及以通过计算多个亮度矢量的平均值来估计由所检测到的跨越参照物表面的亮度分布得到的、入射在所述参照物上的光的方向,每个亮度矢量对应于所述表面点之一,并且包括对应的表面点的亮度量值和亮度方向,该亮度方向对应于垂直于该对应的表面点处的表面的方向,其中检测跨越所述参照物表面的亮度分布以得到超过阈值限幅电平的亮度。2.根据权利要求1所述的图像处理器,其中,所述预定形状是至少部分球形的。3.根据权利要求1所述的图像处理器,其中,通过在场景中占据预定义位置的参照物来识别所述参照物。4.一种用于生成合成图像的系统,该系统包括图像处理器和照相机,所述照相机可操作以捕获表示包括预定形状的参照物的场景的图像,并将表示所述图像的信息信号传送到所述图像处理器,所述图像处理器可操作以从图像信号中识别所述参照物;以通过估计所述参照物表面上的多个表面点处的亮度量值来检测跨越所述参照物表面的亮度分布;以通过计算多个亮度矢量的平均值来估计由所检测到的跨越所述参照物表面的亮度分布得到的、入射在所述参照物上的光的方向,每个亮度矢量对应于所述表面点之一,并且包括对应的表面点的亮度量值和亮度方向,该亮度方向对应于垂直于该对应的表面点处的表面的方向,跨越所述参照物表面的所述亮度分布被检测以得到超过阈值限幅电平的亮度;以及以生成合成图像,该合成图像包括由所述照相机捕获的、与计算机生成的物体的呈现结合的图像数据,所述计算机生成的物体依照所估计的光方向加以呈现。5.根据权利要求4所述的系统,其中,所述场景包括包含校准图案的校准表面,所述图像处理器可操作以通过参考所述校准表面来确定所述照相机的取向和位置,并且从而确定相对于所述校准表面的光的方向。6.—种估计入射到预定形状的参照物上的光的方向的方法,包括从表示包括所述参照物的场景的所接收图像信号中识别所述参照物;通过估计所述参照物表面上的多个表面点处的亮度量值来检测跨越所述参照物表面的亮度分布;以及通过计算多个亮度矢量的平均值来估计由所检测到的跨越所述参照物表面的亮度分布得到的、入射在所述参照物上的光的方向,每个亮度矢量对应于所述表面点之一,并且包括对应的表面点的亮度量值和亮度方向,该亮度方向对应于垂直于该对应的表面点处的表面的方向,其中跨越所述参照物表面的亮度分布的检测仅被检测以得到超过阈值限幅电平的亮度。7.根据权利要求6所述的方法,其中,所述预定形状基本上是球形。8.根据权利要求6所述的方法,其中,通过在场景中占据预定义位置的参照物来识别所述参照物。9.一种具有计算机可执行指令的计算机程序,所述计算机程序在被加载到计算机上时使得计算机执行估计入射到预定形状的参照物上的光方向的方法,包括从表示包括所述参照物的场景的所接收图像信号中识别所述参照物;通过估计所述参照物表面上的多个表面点处的亮度量值来检测跨越所述参照物表面的亮度分布;以及通过计算多个亮度矢量的平均值来估计由所检测到的跨越参照物表面的亮度分布得到的、入射在所述参照物上的光的方向,每个亮度矢量对应于所述表面点之一,并且包括对应的表面点的亮度量值和亮度方向,该亮度方向对应于垂直于该对应的表面点处的表面的方向,其中跨越所述参照物表面的亮度分布的检测仅被检测以得到超过阈值限幅电平的亮度。10.根据权利要求9所述的计算机程序,其中,所述预定形状基本上是球形。11.根据权利要求9所述的计算机程序,其中,通过在场景中占据预定义位置的参照物来识别所述参照物。12.—种用于将由照相机捕获的场景的视频图像与一个或多个呈现的计算机生成物体结合的计算机图形生成系统,该系统包括照相机,其被布置成生成表示包括预定形状的参照物的场景的图像信号;以及图像处理器,其在操作中被布置以从所述图像信号中识别所述参照物;以通过估计所述参照物表面上的多个表面点处的亮度量值来检测跨越所述参照物表面的亮度分布;以及以通过计算多个亮度矢量的平均值来估计由所检测到的跨越参照物表面的亮度分布得到的、入射在所述参照物上的光的方向,每个亮度矢量对应于所述表面点之一,并且包括对应的表面点的亮度量值和亮度方向,该亮度方向对应于垂直于该对应的表面点处的表面的方向,其中检测跨越所述参照物表面的亮度分布以得到超过阈值限幅电平的亮度。13.根据权利要求1所述的系统,其中,所述预定形状是至少部分球形的。14.根据权利要求1所述的系统,其中,通过在场景中占据预定义位置的参照物来识别所述参照物。15.—种用于估计入射在预定形状的参照物上的光的方向的装置,该装置包括用于从表示包括所述参照物的场景的所接收图像信号中识别所述参照物的装置;用于通过估计所述参照物表面上的多个表面点处的亮度量值来检测跨越所述参照物表面的亮度分布的装置;以及用于通过计算多个亮度矢量的平均值来估计由所检测到的跨越参照物表面的亮度分布得到的、入射在所述参照物上的光的方向的装置,每个亮度矢量对应于所述表面点之一,并且包括对应的表面点的亮度量值和亮度方向,该亮度方向对应于垂直于该对应的表面点处的表面的方向,其中跨越所述参照物表面的亮度分布的检测仅被检测以得到超过阈值限幅电平的亮度。全文摘要一种图像处理系统,其包括图像处理器和照相机,所述照相机捕获表示包括预定形状的参照物的场景的图像,并将表示所述图像的图像信号传送到所述图像处理器,所述图像处理器从图像信号中识别参照物,通过估计所述参照物表面上的多个表面点处的亮度量值来检测跨越所述参照物表面的亮度分布,通过计算多个亮度矢量的平均值来估计入射到所述参照物上的光的方向,检测跨越参照物表面的亮度分布以得到超过阈值限幅电平的亮度,并生成合成图像。文档编号G06T15/50GK101751672SQ20091024660公开日2010年6月23日申请日期2009年11月27日优先权日2008年11月28日发明者守分且明申请人:索尼株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1