专利名称::在360度全景图像中进行头部大小均衡的系统和方法
技术领域:
:本发明一般涉及使用计算机观看图像,尤其涉及对由全向相机拍摄的全景图像进行实时校正以缓解与这种图像相关联的失真和感知问题的系统和方法。发明背景典型的大于60度的视场的广角相机一般被用于拍摄大型场景。由广角相机拍摄的广角图像可至少使用两种类型的投影来观看。线性透视和圆柱投影是用来观看广角图像的最典型的投影。线性透视投影是由广角镜头拍摄的被投射在平面胶片上的图像。线性透视投射以牺牲维持形状为代价保持直线笔直。这导致了透视变形。如果图像观看者的眼睛位于投射中心则图像将显得正确且不会变形。然而,当以较小的视场观看该广角图像时,观看者期望在物体旋转时图像平面上的图像大小增加较小并且变形量较小。这就是为何物体在边缘处显得被拉伸的原因。比预期的图像平面上的大小变化和变形大,会使得用户感觉场景不固定,特别在观看全景图像时就像场景绕观察者游动。使用具有曲面胶片和旋转开缝镜头的广角镜头产生圆柱投影。圆柱投影比线性投影能够更好地保持形状。另外,圆柱投影缓解了任何明显的游动运动。虽然圆柱投影是优于线性投影的一种观看改进,但是失真和感知问题仍然存在。尤其,圆柱投影多余地将直线弯曲。另外,圆柱投影几乎完全移除了在观看全景图像时转动头部的幻影。广角图像中的失真和弯曲问题是由视场失配所引起的。具体而言,由于计算机监视器的有限观看大小和标准的观看距离,观看时图像所对的角度比最初将该场景投射到图像平面的相机的视场小的多。这种失配是导致许多失真和感知问题的原因。在观看时以较小的视场观看广角图像引起的一个相关问题是深度错误感知。广角图像夸大了远近物体之间的深度差异。场景中物体深度的一个重要视觉提示是位于近处和远处位置的相似物体的图像大小之间的比率(称为深度透视縮短率(foreshorteningratio))。较小的视场导致较小的透视缩短率。例如,假定场景包含彼此靠近站立的两个人,其中一个人比另外一个人离相机稍远。如果该场景被用常规(近似60度)视场相机拍摄,而相同场景又由广角视场相机拍摄,则场景中物体的大小将显得不同。特别地,使用常规视场相机,离相机较远的那个人将显得比另一个人离相机稍远。然而,使用广角视场相机,离相机较远的那个人将显得比另一个人小得多。由于这种被夸大的大小差异,离相机较远的那个人显得比实际要远得多。当在计算机监视器上观看深度场景的广角图像(诸如视频会议场景)时,观看者的视场一般而言会比实际图像的视场小得多。因此,观看者所感知的深度比实际深度要大得多。显露这些失真和感知问题的一个应用是在视频会议系统中。广角相机常被用于视频会议系统中以拍摄和发送包含有会议室中所有与会人员的图像。然而,一个问题是在观看该视频会议时广角图像夸大了该会议室的深度。这使得图像中间的人(通常是离相机最远的人)与会议室中的其他人相比由于极端的透视縮短而显得非常小。通常伴随广角相机图像的这些失真和感知问题在观看覆盖360度视场的全景图像时还要突出。全景图像可以通过对准和"缝合"从单个相机获得的输入图像来生成。或者,全景图像可以通过使用多个相机获取输入图像并将它们缝合来构造。例如,这是在使用多个相机生成全景视频的情形。本质上,构造全景视频必需获取描绘四周场景的360度景观的多个视频。由以背靠背方式布置的多个相机组成的相机机组有时被用来拍摄这些视频。通常使用将输入图像中的像素位置映射到全景图像中的像素位置的缝合表以将这些图像在全景中缝合在一起。360度全向相机已被用于会议记录和视频会议。相机通常被放在与会人员围聚的桌子中央。如果该会议桌是矩形,则该全景图像上的人体头部大小将根据他们离相机的距离而变化。例如坐在桌子远端的人将比坐得离相机近的人显得小的多。全景图像中的这种头部大小变化视觉上看起来不是那么吸引人并且经常难以辨认位于桌子远端的人或辨认他们的表情。采用全景图像的视频会议的另一问题是某些全向相机生成3700X600像素全景图像,然而大多数用户仅有只能显示1024X166像素全景的1024X768像素显示器。在分辨率降低这么大的情况下,位于桌子远端的人在没有头部大小归一化时是看不到的。相应地,需要一种对全景相机拍摄的图像进行实时校正以减少与这些图像相关联的失真和感知问题的系统和方法。该系统和方法应该将全景图像中的头部大小归一化并允许用标准分辨率监视器观看图像中的人物。另外,该系统和方法应该易于建立和操作并且应该是计算上高效的。发明摘要本发明的系统和方法提供了对近似360度全景图像中的失真和感知缺陷进行实时校正。本发明的系统和方法,该实时全景图像校正系统和方法采用参数化翘曲函数即空间变化一致(SpatiallyVaryingUniform,SVU)縮放函数来翘曲全景图像以在不引入不连续性的同时均衡人体头部大小。SVU函数之前在提交于2002年6月28日题为"Real-TimeWide-AngleImageCorrectionSystemAndMethodForComputerImageViewing(用于计算机图像观看的实时广角图像校正系统和方法)"的专利申请序列号10/186,915中说明过。然而,该早先专利申请仅使用了针对多达180度的图像的这种技术。在本发明中,该SVU缩放函数被应用到360度全景图像,同时考虑了诸如会议桌几何形状以及和与会人员头部相切的平面等水平特征。在上述专利申请中,SVU缩放函数被用在通常由放在会议室桌子的一端的广角相机生成的至多达180度的图像。相比而言,360度全向相机通常被放在桌子的中央。因此,用于计算广角图像和近似360度全景图像的SVU縮放函数的上下曲线是不同的。该实时全景图像校正系统和方法提供了头部大小归一化,从而使得诸如头部等较远物体显得较近因此也较大。同时使较大的近处头部显得较小。因此,位于桌子远端的人较大并且即使在1024X166像素的显示器上也能看得到。在本发明的系统和方法的一个实施例中,用户也选择会议桌形状和大小以及该实时全景图像校正系统修改全景图像缝合表以匹配该会议桌从而使得在计算缝合的同时归一化与会人员的头部大小。一般而言,在本发明的一个实施例中,该实时全景图像校正方法输入一一全景图像,其中远处物体比离相机近的物体小得多,以及诸如桌子尺寸和人体头部的顶端等图像中的水平特征参数。然后校正被夸大的深度和水平失真,并输出经校正的全景图像。该校正是通过使用被设计成在克服与全景图像相关联的大多数问题的同时将新失真的引入降到最低的一类翘曲函数来执行的。这类翘曲函数包括空间变化一致縮放函数。一般而言,在局部水平上进行縮放同时保持全局背景。对于视频会议应用,这意味着该翘曲在不会使每个人失真并且保持了房间背景的情况下对远处的人进行放大。在上述实施例中,实时全景图像校正方法接收近似360度全景图像的像素坐标以及水平特征尺寸并且对全景图像的像素坐标进行垂直和水平縮放。该缩放是使用参数化图像翘曲函数来执行的。该縮放产生一初步翘曲表(preliminarywarptable),它对应于保持垂直线条笔直但会弯曲水平线条的图像。该结果输出是将经校正的图像像素坐标映射到原始图像像素坐标的翘曲表。换言之,该翘曲表指示了每个原始像素坐标在新的经校正的全景图像内的位置。该经校正的全景图像是从原始全景图像实时构造的。在本发明的另一实施例中,在将输入图像缝合成全景图像的同时将缝合表与翘曲表级联起来以提高计算效率并允许对头部大小进行归一化。在该实施例中,使用缝合表将一组图像缝合成虚构的缝合全景图像。除了这组图像之外,还输入了水平特征参数。该虚构全景图像被用于计算随后与缝合表级联的翘曲表。该被级联的翘曲和缝合表然后被用于将该组输入图像缝合成真实的畸变经过校正的全景。对于上述讨论的两个实施例,在适宜的情况下可使用翘曲表或级联的缝合及翘曲表来校正垂直和水平失真。垂直縮放是使用参数化图像翘曲函数和翘曲因子对全景图像或虚构全景图像中的每条垂直扫描线单独执行的。主縮放因子是使用源曲线、翘曲因子、以及从源曲线和翘曲因子计算出的目标曲线来计算的。本发明的一个方面具有由用户定义的源曲线和翘曲因子。另外,源曲线可以从水平特征的几何以及针对给定翘曲因子的相机参数自动计算得出。主缩放因子被用来縮放垂直方向上的像素坐标。在虚拟场景中,该垂直縮放针对所选的垂直扫描线通过主縮放因子量垂直"拉伸"/"收縮"全景图像(或虚构全景图像)。还执行垂直扫描线的水平縮放并且使用相同的主縮放因子来保持长宽比。类似于垂直縮放,水平縮放在虚拟意义上可以被理解为通过主缩放因子量将全景图像的垂直扫描线的宽度局部地水平"拉伸"/"收縮"。在虚拟意义上,通过对原始全景图像或一组未经缝合的输入图像情况下的虚构全景图像施加垂直和水平缩放,获得初步校正图像。为了加速计算,生成将该初步校正图像的初步像素坐标映射到原始图像像素坐标的初步翘曲表。水平失真通过根据像素坐标的位置将初步翘曲表分为多个部分来校正。这些部分中的每一个都使用不同的縮放因子来垂直縮放。在本发明的一个方面,第一部分被定义为包含位于底端源曲线与顶端源曲线之间的像素所对应的那些像素坐标。然后主縮放因子被用于垂直地縮放该部分中的像素坐标。其它部分中的像素坐标使用为与主缩放因子不同值的次縮放因子来垂直缩放。为了保持连续性,每个部分使用平滑函数来连接。一旦对初步翘曲表中的像素坐标执行了水平失真校正处理,就生成翘曲表。使用该翘曲表,执行全景图像的实时翘曲以实时地生成被校正的全景图像。如上所讨论的,在本发明的一个实施例中,该翘曲表与缝合表相级联以在缝合全景图像并对其校正时提高计算效率。本发明可参照以下说明和示出本发明的各方面的附图来进一步理解。其它特征和优点在结合作为示例示出了本发明的原理的附图进行以下本发明的具体说明时将是显而易见的。图1示出了由360度全景相机在会议室中拍摄的图像。图2示出了经过本发明的实时全景图像校正系统和方法校正的图1中的图像。图3示出了针对180度图像的SVU縮放函数的上下曲线(绿色曲线)。图4示出了针对360度全景图像的SVU縮放函数的上下曲线(绿色曲线)。图5A是示出了本发明的实时全景图像校正系统的一个实施例的概况的框图。图5B是示出了本发明的采用了级联缝合和翘曲表的实时全景图像校正系统的另一实施例的概况的框图。图6是示出了适于执行本发明的计算装置的框图。图7是示出了图5A和5B中所示的实时全景图像校正系统的翘曲表生成模块的细节的框图。图8A是示出了图5A中所示的实时全景图像校正系统的操作的一般性流程图。图8B是示出了图5B中所示的实时全景图像校正系统的操作的一般性流程图。图9是示出了图7中所示的垂直縮放模块的细节的流程图。图IO示出了根据两组曲线来确定翘曲函数。图11是演示了桌子边缘投影到圆柱胶片上(假定采用标准相机取向)的示图。图12是示出了图7中所示水平缩放模块的细节的流程图。图13是示出了图7中所示的水平畸变校正模块的细节的流程图。图14示出了垂直縮放函数以及将初步像素坐标分为三个部分的概念性示图。图15绘出了经填充的校正后全景图像,其中额外的像素被添加到图像的周界周围从而使其与用于网络传输或显示的标准大小一致。发明的具体描述在以下本发明的描述中,参照了构成本发明一部分并在其中作为示例示出了可以实践本发明的具体示例的附图。应该理解的是,也可利用其它实施例并且可以改变结构而不会背离本发明的范围。1.0一般性概述图1示出了由位于会议室中桌子中央的360度全向相机拍摄的图像。该相机配置是在视频会议应用中可能使用的典型相机配置。参照图l,可以看到穿白色衣服的人显得比其它两个人小得多。其原因在于他坐得离相机较远。首先,穿白色衣服的人可见度较低并且显得离观众较远从而影响实时通信的体验。其次,由于网络带宽限制和有限的屏幕空间,图像大小通常受到限制。如果人体图像非常小那么浪费了许多传输的像素。因此,均衡人体头部大小以最大地利用被传输和显示的这些像素是合乎需要的。图2示出了使用实时全景图像校正系统和方法校正的图1的图像。实时全景图像校正系统和方法采用了一种均衡或归一化人体头部大小同时不会造成图像不连续性的技术。该技术是在2002年6月28日提交的题为"Real-TimeWide-AngleImageCorrectionSystemAndMethodForComputerImageViewing(用于计算机图像观看的实时广角图像校正系统和方法)"的专利申请序列号10/186,915中说明的SVU缩放函数的扩展。在该先前专利申请中,SVU缩放函数被用在通常由放在会议室桌子一端的广角相机生成的180度图像上。相反地,以上所讨论的360度相机通常被放置在桌子的中央。因此,针对360度全景图像生成的用于计算SVU縮放函数的上下曲线与广角(例如,至多达180度)图像中所使用的是不同的。图3示出了被用于计算180度图像的SVU缩放函数的上下源曲线(绿色曲线)。图4示出了被用于计算360度图像的SVU缩放函数的上下源曲线(绿色曲线)。给定了绿色源曲线和目标曲线(红色曲线),可以用与上述专利申请中所述的相同方法生成SVU缩放函数。与先前提到的共审待批的专利申请相类似,全景图像的校正是使用一类被称为空间变化一致(svu)縮放函数的用于保持局部縮放透视并校正深度错误感知的参数化翘曲函数来实现的。该svu縮放函数和縮放因子被用来执行对图像的像素坐标的垂直縮放和水平缩放。这生成了将该初步校正图像的像素位置映射到原始像素位置的初步翘曲表。该初步校正图像是虚拟图像而并没有被实际构造。然而,该初步校正图像保持垂直线条笔直但弯曲了水平线条。这种水平失真是通过使用svu缩放函数和至少两个不同的縮放因子来执行水平失真校正来校正的。该处理生成了翘曲表。该翘曲表将经过校正的全景图像中的位置映射到失真的全景图像中的原始像素坐标。在其中图像被缝合以构造全景图像的本发明的一些实施例中,该翘曲表可以与缝合表相级联以提高计算效率。使用该翘曲表、或级联的缝合和翘曲表,从原始全景图像实时地构造了经过校正的全景图像。图5A是示出了本发明的实时全景图像校正系统500A的一个实施例的一般性概况框图。一般而言,系统500A获得水平特征几何505(例如,会议桌几何和与人体头部顶端相切的平面)以及全景图像510并输入水平特征几何505以及与该全景图像内每个像素的坐标相对应的全景图像像素坐标520。水平特征几何505和全景图像像素坐标520由实时全景图像校正系统500A处理并输出经过校正的全景图像530。全景图像510可以是单个缝合的图像(诸如来自静止相机)或图像序列的一部分(诸如来自视频相机)。全景图像510内每个像素的坐标被获得以生成全景图像像素坐标520。例如,在直角坐标框架中,像素坐标520是全景图像510内通常对应于被缝合以获得全景图像的一系列图像的每个像素的(x,y)位置。实时全景图像校正模块500A包括翘曲表生成模块540、翘曲表550以及实时图像翘曲系统560。翘曲表生成模块540被用于使用全景图像翘曲函数生成翘曲表550。全景图像像素坐标520被处理以构造翘曲表550。翘曲表生成模块540的细节将在以下讨论。翘曲表550包含以对应于校正后的全景图像530中的位置的方式排列的全景图像像素坐标520。因此,翘曲表550确定全景图像像素坐标520在校正后的全景图像530中的新位置。一旦生成了翘曲表550,全景图像510就被接收作为实时翘曲系统560的输入。实时全景图像翘曲系统560将翘曲表550应用到全景图像510以创建经过校正的全景图像530。实时翘曲系统560通过获取全景图像510位于包含在翘曲表550中的像素坐标处的RGB值来针对经校正的全景图像530中的每个位置来创建经校正的全景图像530。全景像素坐标520上的RGB值由此被重新布置在经校正的全景图像530中。新位置是使用翘曲表550来确定的。应该注意的是,可以使用诸如YUV等任何颜色空间。在图5B所示的本发明的另一实施例500B中,翘曲表被与将全景图像缝合在一起的缝合表级联起来。在该实施例中,一组输入图像512被缝合成虚构全景图像515并且该虚构缝合的全景图像的图像像素坐标522被输入到系统500B中。实时全景图像校正模块500B包括翘曲表生成模块540、翘曲表550、级联的缝合和翘曲表555(在4.5节中更加具体地讨论)、以及实时图像翘曲系统560。翘曲表生成模块540被用于使用参数化图像翘曲函数生成翘曲表550。虚构全景图像515的全景图像像素坐标522被处理以创建翘曲表550。翘曲表生成模块540的细节将在以下讨论。翘曲表550包含以与经校正全景图像530中的位置相对应的方式排列的全景图像像素坐标522。因此,翘曲表550为全景图像像素坐标522确定经校正全景图像530中的新位置。一旦生成了翘曲表550,就将其与用于缝合输入图像512集的缝合表相连接以创建级联的翘曲和缝合表555。输入图像集512被作为实时图像翘曲系统560的输入被接收。实时全景图像翘曲系统560将级联的翘曲和缝合表555应用到输入图像集512以生成经校正的全景图像530。实时图像翘曲系统560通过获取该组输入图像512位于包含在级联的翘曲和缝合表555中的像素坐标处的RGB值(或YUV、或其它颜色空间)来针对经校正全景图像530中的每个位置创建经校正的全景图像530。—虚构全景像素坐标522上的RGB值因此在缝合输入图像集512的同时被重新布置在经校正的全景图像530中。新位置是由使用级联的翘曲和缝合表555来确定的。由于缝合器是静态的并且需要最小的计算所以实时地进行翘曲过程。翘曲表的生成意味着生成经校正的全景图像530所需的全部就是将翘曲表550(或级联的翘曲和缝合表)应用到全景图像510或输入图像集512,这可以快速实现。2.0示例性操作环境本发明的实时全景图像校正系统500A或500B被设计成在计算环境中操作。以下讨论旨在提供可在其中实现本发明的合适计算环境的简短且一般性的说明。图6是示出了适于执行本发明的计算装置的框图。虽然并不要求如此,但将在诸如由计算机执行的程序模块等计算机可执行指令的一般性语境中对本发明进行说明。一般而言,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等。此外,本领域的技术人员将赏识到本发明还可在包括个人计算机、服务器计算机、手持设备、多处理器系统、基于微处理器的或编程消费电子产品、网络PC、微型计算机、大型计算机等各种计算机系统配置上实践。本发明还可在通过通信网络链接的远程处理设备执行任务的分布式计算环境中实践。在分布式计算环境中,程序模块可以位于包括存储器存储设备的本地和远程计算机存储介质上。参照图6,用于实现本发明的一个示例性系统包括通用计算设备600。特别地,计算设备600包括处理单元602、系统存储器604、以及将包括系统存储器604在内的各种系统组件耦合至处理单元602的系统总线606。系统总线606可以是包括存储器总线或存储器控制器、外围总线、以及使用各种总线架构的局部总线在内的诸多类型的总线结构中的任意一种。系统存储器包括只读存储器(ROM)610和随机存取存储器(RAM)612。包含帮助在诸如启动期间在计算设备600内的各要素之间传送信息的基本例程的基本输入/输出系统(BIOS)614被存储在ROM610中。计算设备600还包括对未示出的硬盘进行读取和写入的硬盘驱动器616、对可移动磁盘620进行读取和写入的磁盘驱动器618、以及对诸如CD-ROM等可移动光盘624或其它光学介质进行读取和写入的光盘驱动器622。硬盘驱动器616、磁盘驱动器628以及光盘驱动器622通过硬盘驱动器接口626、磁盘驱动器接口628以及光盘驱动器接口630分别被连接至系统总线606。驱动器极其相关联的计算机可读介质提供了对用于计算设备600的计算机可读指令、数据结构、程序模块以及其它数据的非易失性存储。虽然在此所述的示例性环境中采用了硬盘、可移动磁盘620以及可移动光盘624,然而本领域的技术人员应该赏识到的是,诸如磁带盒、闪存卡、数字视频盘、Bernoulli盒式磁盘、随机存取存储器(RAM)、只读存储器(ROM)等可以存储计算机所能访问的数据的其它类型的计算机可读介质也可使用在该示例性操作环境中。可在硬盘、磁盘620、光盘624、ROM610或RAM612上存储包括操作系统632、一个或多个应用程序634、其它程序模块636以及程序数据638在内的许多程序模块。用户(未示出)可通过诸如键盘640和定点设备642等输入设备向计算设备600输入命令和信息。另外,相机643(诸如摄像机)以及包括例如话筒、操纵杆、游戏垫、盘式卫星天线、扫描器在内的其它输入设备(未示出)可以被连接至计算设备600。这些其它输入设备经常通过被耦合至系统总线606的串行端口接口644连接至处理单元602,但是也可以通过诸如并行端口、游戏端口或通用串行接口(USB)等其它接口来连接。监视器646(或其它类型的显示设备)也通过诸如视频适配器648等接口被连接至系统总线606。除了监视器646之外,诸如个人计算机等计算设备通常包括诸如扬声器或打印机等其它外围输出设备(未示出)。计算设备600可在使用对诸如远程计算机650等一个或多个远程计算机的逻辑连接的联网环境中操作。远程计算机650可以是另一台个人计算机、服务器、路由器、网络PC、对等设备或其它公共节点,并且虽然在图6中仅示出了存储器存储设备652但通常包括以上关于计算设备600所述的部分或所有要素。图6中所示的逻辑连接包括局域网(LAN)654和广域网(WAN)656、这些联网环境在办公室、企业范围的计算机网络、内联网以及因特网中是较为普遍的。当在LAN联网环境中使用时,计算设备600通过网络接口或适配器658被连接到局域网654。当在WAN联网环境中使用时,计算设备600通常包括用于通过诸如因特网等广域网656建立通信的调制解调器660或其它装置。可以内置或外置的调制解调器660通过串行端口接口644被连接至系统总线606。在联网环境中,关于计算设备600所绘的程序模块或其部分可存储在远程存储器存储设备652中。应该赏识到的是,所示的联网连接是示例性的,也可使用在计算机之间建立通信链接的其它方式。3.0实时全景图像校正系统详述一般而言,实时全景图像校正系统500提供了全景图像510的实时校正,尤其是将远离相机就坐的人的头部大小归一化或均衡化。系统500校正垂直和水平方向t的弯曲和失真。另外,系统500校正诸如深度和游动运动等感知问题。图7示出了图5A或5B中所示的翘曲表生成模块540的细节框图。特别地,翘曲表生成模块540包括用于输入全景图像像素坐标520或虚构全景图像的像素坐标522以及水平特征几何505的输入模块700。这些像素坐标520、522表示全景图像510或虚构全景图像515中每个像素的位置。模块540还包括垂直缩放模块710。垂直縮放模块710使用翘曲函数处理全景图像像素坐标520或虚构全景图像像素坐标522的每条垂直扫描线从而使得在垂直方向上縮放全景图像像素坐标520、522。概念上,这可以被理解为在垂直方向上"拉伸"全景图像510(或虚构全景图像515)。这种垂直縮放部分地校正了全景图像510(或虚构全景图像515)中被夸大的深度。翘曲表生成模块540还包括使用参数化图像翘曲函数在水平方向上缩放图像像素坐标520、522的水平缩放模块720。与垂直縮放类似,概念上这可以被理解为在水平方向上"拉伸"全景图像510或虚构全景图像515。另外,水平縮放是对每条垂直扫描线个别地执行的从而使得保持全景图像510或虚构全景图像515的长苋比。垂直縮放模块710和水平縮放模块720创建将初步像素坐标映射至原始像素坐标的初步翘曲表。该初步翘曲表可被用来创建初步校正图像。实际上这并没有被实行,且初步校正图像是虚拟图像。初步校正图像具有垂直线条被保持垂直而水平线线条被弯曲这一特性。为了校正该水平失真,还在翘曲表生成模块540中包括了水平失真模块730。水平失真模块730将在初步翘曲表中的初步像素坐标根据位置垂直地缩放不同的量。翘曲表生成模块540的输出是翘曲表550。翘曲表将经校正的全景图像530中的像素坐标映射到原始全景图像像素坐标520或虚构缝合图像的像素坐标522。翘曲表可以与缝合表相级联以创建级联的翘曲和缝合表,并且可被用于从输入图像集缝合全景图像。4.0实时全景图像校正方法本发明的实时全景图像校正方法使用被称为空间变化一致縮放函数或svu縮放函数的参数化图像翘曲函数。虽然svu缩放函数可以局部地类似于一致缩放函数以保持长宽比,然而縮放因子在图像上的变化造成翘曲。svu縮放函数避免了旋转并且移除了在观看全景图像时的游动运动。图8示出了图5A中所示的实时全景图像校正系统500A的实时全景图像校正方法的一个实施例的操作的一般性流程图。来自全景图像510的全景图像像素坐标520和水平特征几何505作为输入被接收(框800)。接着,生成翘曲表550(框810)。该翘曲表550被用于确定经校正的全景图像像素坐标530的位置。如以下将具体讨论的,翘曲表550的生成包括垂直縮放、水平縮放、水平失真校正。垂直縮放针对被夸大的深度对全景图像510进行校正。为了校正被夸大的深度,全景图像510中央远处的物体或人需要相对于靠近相机的物体或人被放大。为了保持全景图像510的长宽比,还要执行水平縮放。具体地,使用参数化图像翘曲函数(诸如SVU縮放函数)执行水平縮放从而为全景图像510的每条垂直扫描线生成新的宽度。虽然SVU函数保持了垂直线条垂直,但是引起了一定量的垂直剪切。视觉上,这被感知为倾斜或弯曲的水平线条。场景经常包含诸如桌子和房间天花板等靠近图像顶部或底部的水平表面,这些平面上的失真是较容易引入注意的。为了校正该垂直剪切,实时全景图像校正方法还包括执行针对水平失真对全景图像510进行校正的水平失真校正。一般而言,这是通过在全景图像510中垂直位置上(诸如沿垂直扫描线)放宽垂直縮放的一致性以及进行非线性缩放来实现的。在垂直縮放、水平縮放、以及水平失真校正之后,生成了将经校正的全景图像530中的像素映射到全景图像510的翘曲表550。一旦已生成翘曲表550,全景图像510就作为输入被接收(框820)。全景图像510随后被实时地翘曲以生成经校正的全景图像530。翘曲表确立在全景图像510中何处可找到对应于经校正的全景图像530中的每个位置的像素以生成无畸变的全景图像。图8B示出了图5A中所示的实时全景图像校正系统500B的实时全景图像校正方法的一个实施例的操作的一般性流程图,它与关于图8A所述的方式相类似进行操作。来自虚构全景图像515的图像像素坐标522和水平特征几何505作为输入被接收(框800)。接着,生成翘曲表550(框810)。然后将翘曲表与翘曲表550相级联以生成级联的翘曲和缝合表(框815)。输入用于生成虚构全景图像的输入图像集(框820)。级联的翘曲和缝合表555然后被用于在缝合输入图像组的同时确定经校正的全景图像像素坐标530的位置(框830)。然后输出经校正的全景图像(框840)。以下进一步具体讨论各个縮放过程和模块的细节。4.1垂直縮放图9示出了图7中710所示的垂直縮放模块的细节的流程图。水平特征几何505和全景像素坐标520或522作为输入被接收(框900)。接着,使用一组曲线和缩放因子确定参数化图像翘曲函数(诸如SVU縮放函数)。特别地,连同翘曲因子(框920)—起指定源曲线(框910)。使用这些源曲线和翘曲因子,计算出目标曲线(框930)。图IO示出了通过(1)源曲线和(2)目标曲线这两组曲线确定翘曲函数。在本发明的一个方面,源曲线由用户通过简单的用户界面输入。这些源曲线提供了参数化图像翘曲函数的参数。通过该用户界面,用户被要求定义两条三次曲线。这两条源曲线定义了诸如人体头部顶端、以及桌子边缘等公共(实际)水平特征。如图IO所示,顶端源曲线St和底端源曲线Sb被指定。通过对比图10和图4可以注意到为了计算该全景的源和目标曲线,必须定义上下源曲线的四个不同部分以定义整个全景图像的源曲线。除了手动地指定源曲线之外,它们也可以从诸如会议桌以及和与会人员头部相接触的平面等水平特征几何自动地确定。假定会议桌是矩形的。可以在知道桌子宽度W和长度L、相机高度h、相机的焦距长度r、以及相机取向e的情况下计算出绿色源曲线。一旦确定了相机则焦距长度r和相机高度h就是已知的。桌子尺寸可以在安装期间由用户提供。图11演示了桌子边缘到圆柱胶片上的投影(假定标准相机取向)。以下是表示圆柱图像上桌子边界的下源曲线的四个部分的方程式。rcos6Mri(W<formula>formulaseeoriginaldocumentpage17</formula>类似地,以下是表示圆柱图像上与人体头部的顶端相切的平面的上源曲线的四个不同部分的方程式,其中//表示相机离与会人员头部顶端的平面距离。<formula>formulaseeoriginaldocumentpage17</formula>同样可由用户选择的翘曲因子a确定图像的翘曲程度。翘曲因子a位于0到1之间,其中01=0即无翘曲,而a-l即最大翘曲。概念上,指定00=0将不触及该图像,而指定01=1将源曲线上的像素拉至端点之间的线条。通常理想的翘曲因子位于近似0到1的中途处。一旦指定了源曲线和翘曲因子,就可计算出目标曲线(框930)。令y=St(x)并且y-Sb(x)分别为顶端和底端源曲线的方程式。两个目标曲线(源曲线上的点将移至的位置)由源曲线和a确定。具体地,顶端目标曲线Tt和底端目标曲线Tb被定义。如果St(x)的端点之间的直线方程式被定义为y=yt(x),而连接底端源端点的直线方程式被定义为y=yb(x),则顶端目标曲线的方程式为Tt(x)=(l-a)St(x)+ayt(x),和Tb(x)=(l-a)Sb(X)+ayb(x)。随后使用源曲线和目标曲线计算出主缩放因子r(x)(框940)。具体地,给定图10中所示的任意垂直扫描线x,令A、B表示其与源曲线的交点而A'、B'表示与目标曲线的交点。SVU縮放函数将AB縮放为A'B'。令t;(x)-t;(;0S,(x)-&(x)比率r(x)是位于水平位置x的垂直扫描线的主縮放因子。然后使用主縮放因子r(x)在垂直方向上縮放垂直扫描线的全景像素坐标520(框950)。4.2水平縮放为了保持长宽比,全景像素坐标520还在水平方向上被縮放。该水平縮放使用相同的主縮放因子r(x)。换言之,就像垂直縮放那样,垂直扫描线还根据主縮放因子r(x)被水平地縮放以保持长宽比。图12示出了图7中所示的水平縮放模块的细节的流程图。被垂直縮放的全景像素坐标作为输入被接收(框1200)。使用主縮放因子r(x),该被垂直縮放的全景像素坐标在水平方向上被缩放(框1210)。一旦该被垂直縮放的全景像素坐标520被缩放,初步校正图像的总体宽度W'就变为w,=LK"血其中,w是全景(或源)图像510的宽度。接着,生成初步翘曲表(框1220)。初步翘曲表包含初步像素坐标。初步像素坐标是己经过垂直和水平縮放的全景像素坐标。概念上,该初步像素坐标可被用于构造初步校正图像。因此,对于全景图像510中的任意像素(x,y),令(x',y,)表示其在初步校正图像中的新位置。这产生,x,=工卢7;(x)+KxrCy-S,(x))以上方程式是SVU缩放函数的前向映射方程式。SVU縮放函数并不是在各处都是理想的一致縮放。容易证明在各处都是理想一致縮放的唯一函数是一致全局縮放函数。svu縮放函数类似于广义圆柱表面上的投影。然而,这种简单的投影并不产生局部一致的縮放。需要局部一致縮放并且缺乏局部一致缩放导致初步校正图像中的物体显得被拉伸。4.3水平失真校正一旦已在垂直和水平方向上縮放全景像素坐标520,就针对水平畸变纠正校正得到的初步翘曲表。水平失真校正是需要的,因为虽然参数类图像翘曲函数(诸如SVU縮放函数)保持垂直线条垂直,但是弯曲了水平线条。为了使该问题最小化,在每条垂直扫描线上放宽縮放的一致性并且进行非线性縮放。图13示出了图7中所示水平失真模块730的细节的流程图。一般而言,模块730将初步翘曲表中的初步像素坐标分为多个部分并根据用于每个部分的专用縮放因子在垂直方向上縮放该部分。各部分之间的縮放因子可以不同,并且通常在至少一个部分上不同。特定地,该水平失真校正模块730首先将初步翘曲表分为多个部分(框1300)。在本发明的一个方面,初步校正图像在概念上如图14中所示的被划分。图14示出了垂直縮放函数以及初步校正图像被分为三个部分的概念性视图。应该注意到的是在图14中y是垂直方向。参照图14,第一部分1400被定义于底端源曲线Sb和顶端源曲线St之间。其它部分包括源曲线之外的部分,其中包括源曲线以下的第二部分1410和源曲线之上的第三部分920。位于源曲线之间的第一部分1300中的初步像素坐标在垂直(y)方向使用主缩放因子r(x)縮放(框1310)。该垂直方向上的缩放是如上所述地执行的。位于源曲线之外的部分(第二部分1310和第三部分1320)中的初步像素坐标在垂直方向上被较小地縮放。这是通过最初指定次縮放因子(框1320)来执行的。次縮放因子s在图14中被示为位于主缩放因子r(x)以下。接着,位于源曲线之外的其它部分1410、1420中的初步像素坐标在垂直方向上使用次縮放因子(框1330)被縮放。应该注意的是,水平縮放保持相同(换言之,使用相同的主縮放因子r(x))从而使得垂直线条的直线性被保持。为了保持各部分之间的连续性,各部分之间的过渡通过应用平滑参数w来获得(框B40)。该平滑参数使垂直縮放函数平滑并且在垂直縮放函数穿越源曲线时平滑地连接不相同的縮放因子。参照图10和14,考虑图10中所示的位于x上的垂直线条。如图14所示,g(y)是可被定义为该垂直线上任意一点y上的垂直縮放因子的垂直縮放函数。应该注意的是,g(y)依存于x。函数g(y)由次縮放因子s和平滑参数w这两个参数控制。垂直扫描线中距离源曲线大于w/2的部分当中,位于源曲线之间的按照主縮放因子r(x滩放,而位于源曲线之外的按照次縮放因子s縮放。三个恒定部分通过[St-0.5w,St+0.5w]中的两个三次样条粘合在一起。每个三次样条具有值为s和r(x)的端点并且在两个端点处斜率为0。平滑参数w控制源曲线处的连续性。例如,如果场景在源曲线处不连续,则可以选择非常小的w而不会有明显伪像。在s,(x)的情况下,g(y)变成在获得初步校正图像中的新像素位置时假定的常量。一旦水平失真校正函数已被应用到初步翘曲表,就生成包含经校正的全景图像530中全景像素坐标的位置的翘曲表550(框1350)。翘曲表550然后作为输出被发送(框1360)。翘曲表被用于从全景图像510构造经校正的全景图像530。4.4校正全景图像观看错误感知svu縮放函数有助于校正深度错误感知问题。这是通过使用用于观看全景图像的对称svu缩放函数来实现的。底端源曲线是顶端源曲线的镜像。源曲线经过图像拐角并且在中心垂直扫描线处具有最小值(或最大值)。一个参数指定中心点的高度而第二参数是以上讨论的翘曲因子a。4.5级联的翘曲/缝合表如上所提到的,翘曲表可以与被用来将图像缝合成全景图像的缝合表级联在一起。例如,在一个圆形会议桌的实施例中,通过将从多个相机拍摄的图像缝合在一起来生成会议室的圆柱投影。缝合器使用将相机图像映射到全景图像上的缝合表。缝合表通常是在制造校准期间由相机制造商在工厂里创建的。该表包含全景中每个像素(x,y)的以下信息。(x,y)-全景像素坐标(ul,vl)-相机1的图像像素坐标(u2,v2)-相机2的图像像素坐标相机1-主源相机相机2-在(x,y)处于重叠区域中时的次源相机。令S(x,y)表示像素(x,y)上的缝合器表项。艮卩,S(x,y)-(相机l,ul,vl,相机2,u2,v2}。为了将缝合器从圆柱转化为直角,需要将该缝合表与翘曲表级联起来。对于最终全景图像(头部大小归一化之后)上的每个像素(x,y),令W(x,y)表示作为圆柱全景图像上的像素坐标的表项而令T表示S和W的级联表。则T(x,y)=S(W(x,y))。该级联表可以在安装时刻被预先计算。在运行时刻,操作与全景缝合相同。5.0用户界面实时全景图像校正系统的一个实施例为用户提供了简化系统操作的用户界面(UI)。该UI包括用于输入所需设置的控制面板(例如,触摸面板液晶显示器),以及其中归一化头部从全景图像被提取和显示的具有发言人窗口的显示器。另外,UI可包括用于显示经校正的或经缩放的全景图像的显示,其大小将随应用的翘曲因子而变化,并且在图像周界有额外的像素。这允许以标准大小在网路上传输经校正的图像而不需要为了发送不同大小和分辨率的图像去重新协商网络堆栈。5.1控制面板用于拍摄全景图像的全向相机可具有诸如触摸LCD屏等用于安装和正常使用本发明的实时全景图像校正系统的控制面板。在一个实施例中,可以输入桌子形状和大小、相机位置和取向以及头部大小归一化设置(0-100%)等。桌子形状和大小设置可包括圆形(优选地为默认);小矩形(例如,10X5');大矩形(例如,16X5');以及其它(在该情形中被用户要求指定桌子的长度和宽度)。默认桌子设置(圆形)为非圆形桌子生成缝合图像,但不将针对这些桌子类型的头部大小归一化。如上所讨论的,在本发明的一个实施例中,全向相机位置和取向可以通过控制面板来设置。默认位置是桌子中央。默认取向是LCD在靠近桌子长端处可读(即,文本(text)平行于桌子的主对称轴)。相机的取向是非常重要的,因为如果取向不正确,则翘曲可能实际上使得头部大小更加不同而不是使其相等。相机取向可在不影响可知效果的情况下+/-15度变化。各种常规方法可被用来保持相机在安装后的取向。还可以自动地确定相机桌形状和大小以及全向相机位置。此外,在本发明的一个实施例中,头部大小归一化百分比可通过LCD设置。该参数可以用滑块来设置从而允许从0%归一化(圆柱)到100%归一化(直角)之间连续性设置。没有将设置处于100%的主要原因是使得归一化对于相机位置和旋转变化更为稳健,并且提供了某些用户期望的一些透视失真。5.2发言人窗口UI可包括通过从全景图像直接复制子窗口以从全景图像提取头部的具有发言人窗口的显示窗格。该子窗口然后作为单独的显示窗格被显示。所提取的头部可以不被归一化或被归一化。该特征在视频会议中正在讲话的人,特别是在他们位置离相机相对较远时尤其有用。通过提取被放大的头部,可以看到人的表情。这在人们正在讲话时尤其有益。5.3经填充的全景图像另外,UI可包括用于显示和发送经过填充的全景图像的特征。由于显示具有不同翘曲因子的图像将会被校正为不同的大小,所以该经填充的全景图像显示在经校正的图像周围添加了额外的像素以使其成为标准大小。例如,诸如黑色条等条形可被添加在图像的顶端或底端。经填充的校正图像的一个例子在图15中被示出。该经填充的全景图像允许系统相对于每幅经校正的全景图像都保持恒定大小和分辨率D这还允许在不需要为了发送不同大小和分辨率的图像而重新协商网络堆栈的情况下传输每一幅经校正的全景图像。接收图像的一方然后可显示该经填充的具有或没有条形的全景图像。出于示例和说明的目的给出了本发明的以上说明。其不是意在无遗漏的描述或者将本发明限制于所公开的精确形式中。根据以上教义,许多修改和变更都是可能的。本发明的范围旨在由所附权利要求而不是本发明的具体说明来限制的。权利要求1.一种用于执行全景图像的实时校正的方法,包括从约360度的全景图像获得全景像素坐标;通过对所述全景像素坐标应用空间变化一致(SVU)缩放函数来生成翘曲表;以及使用所述翘曲表和所述全景图像中水平特征的几何来翘曲所述全景图像以生成经校正的全景图像。2.如权利要求l所述的方法,其特征在于,生成翘曲表还包括使用所述SVU縮放函数垂直地縮放所述全景图像像素坐标以创建经过垂直縮放的全景图像像素坐标;使用所述SVU縮放函数水平缩放所述经垂直缩放的全景图像像素坐标以创建包含初步像素坐标的初步翘曲表;以及使用所述SVU縮放函数对所述初步翘曲表执行水平畸变校正以创建所述翘曲表。3.如权利要求2所述的方法,其特征在于,垂直縮放包括使用主縮放因子在垂直方向上縮放所述全景图像像素坐标。4.如权利要求3所述的方法,其特征在于,还包括使用源曲线和目标曲线来计算所述主缩放因子。5.如权利要求4所述的方法,其特征在于,还包括指定源曲线;指定翘曲因子;以及使用所述源曲线和所述翘曲因子来计算目标曲线。6.如权利要求5所述的方法,其特征在于,所述源曲线还包括底端源曲线和顶端源曲线。7.如权利要求6所述的方法,其特征在于,所述底端源曲线由所述水平特征几何来定义。8.如权利要求7所述的方法,其特征在于,所述水平特征是桌子,并且拍摄所述全景图像的相机近似位于所述桌子的中央。9.如权利要求8所述的方法,其特征在于,所述底端源曲线由以下各式定义<formula>formulaseeoriginaldocumentpage3</formula>其中,『是桌宽,丄是桌长,A是相机高度,r是相机焦距,cc是在0到l之间的翘曲因子,并且0是相机取向。10.如权利要求6所述的方法,其特征在于,所述顶端源曲线是基于与坐在桌子周围的人的头部顶端近似相接触的平面,所述桌子中央放有拍摄所述全景图像的相机。11.如权利要求IO所述的方法,其特征在于,所述顶端源曲线由以下各式定义:<formula>formulaseeoriginaldocumentpage3</formula>其中,『是桌宽,丄是桌长,/V是所述与人的头部相接触的平面的高度,r是相机焦距,a是在o到i之间的翘曲因子,并且e是相机取向。12.如权利要求2所述的方法,其特征在于,所述水平縮放还包括使用针对每条垂直扫描线的主縮放因子在水平方向上縮放所述全景图像像素坐标。13.如权利要求12所述的方法,其特征在于,所述主縮放因子是使用源曲线和目标曲线计算得到的。14.如权利要求3所述的方法,其特征在于,执行水平畸变校正还包括将所述初步翘曲表分为多个部分;以及使用至少两个不同的縮放因子在垂直方向上縮放包含在所述各部分的每一个部分中的初步像素坐标。15.如权利要求1所述的方法,其特征在于,所述翘曲表是从用户指定的桌子尺寸和相机参数计算出的。16.—种具有用于执行如权利要求1所述的方法的计算机可执行指令的计算机可读介质。17.—种用于校正约360度全景图像的畸变的方法,包括输入一组图像;输入与从所输入的一组图像创建的虚构全景图像的像素坐标相对应的图像像素坐标;使用具有縮放因子的空间变化一致(SVU)縮放函数来生成包含对图像畸变进行校正的经校正的像素坐标的翘曲表;将用于创建所述虚构全景图像的缝合表与所述翘曲表级联;以及使用级联的翘曲和缝合表从所输入的一组图像创建经校正的全景图像。18.如权利要求17所述的方法,其特征在于,所述经校正的全景图像是实时创建的。19.如权利要求18所述的方法,其特征在于,还包括将所述翘曲表与用于将图像缝合在一起以创建所述全景图像的缝合表级联。20.如权利要求18所述的方法,其特征在于,所述经校正的全景图像被校正以增大远离拍摄图像序列相机的物体的大小。21.—种具有用于实时校正和观看全景图像的计算机可执行指令的计算机可读介质,所述指令包括执行生成翘曲表以翘曲用来创建全景图像的图像序列中的像素,还包括在所述全景图像上指定源曲线;指定与被应用到所述全景图像像素坐标的翘曲量相对应的翘曲因子;使用所述源曲线和所述翘曲因子计算目标曲线;使用所述源曲线和所述目标曲线计算主缩放因子;使用所述主縮放因子来縮放所述全景图像像素坐标以生成所述翘曲表;将所述翘曲表与被用以创建所述全景图像的缝合表级联;以及在将所述图像序列缝合成经校正的全景图像的同时应用所述级联的翘曲和缝合表。22.如权利要求21所述的计算机可读介质,其特征在于,所述计算机可读介质被嵌入在全向相机中。全文摘要一种用于减少由全向相机拍摄图像中的畸变和感知问题的实时近似360度图像校正系统和方法。一般而言,该实时全景图像校正方法从全景图像的像素坐标中生成翘曲表并将该翘曲表应用到全景图像以生成经校正的全景图像。该校正是使用包括空间变化一致(SVU)缩放函数在内的参数类翘曲函数来执行的。该SVU缩放函数和缩放因子被用来执行对该全景图像像素坐标的垂直和水平缩放。使用SVU缩放函数以至少两个不同的缩放因子执行水平失真校正。该处理生成可被应用到全景图像以产生经校正的全景图像的翘曲表。在一个实施例中,该翘曲表被与用于创建全景图像的缝合表相级联。文档编号G06T5/00GK101160591SQ200680012198公开日2008年4月9日申请日期2006年2月16日优先权日2005年4月14日发明者M·科恩,R·柯特勒,刘自成,张正友申请人:微软公司