发明内容
本发明针对用于由从不同视点捕捉的多个重叠图像,计算场景的3D重构的系统和处理过程。该3D重构系统和处理使用上述基于分割的方法,但在现有工作上有改进。即,分割块内的视差必须平滑,而不必是平面的,同样地处理每个图像(即没有参考图像),明显地模拟遮挡,以及强化了视差图间的一致性。
更具体地说,用于根据本发明,计算3D重构的系统和过程包含首先将每个图像划分成其像素很可能显示出相似视差的分割块。然后,计算用于每个图像的每个分割块的视差空间分布(DSD)。该DSD是表示组成分割块的像素显示出用于候选视差值组的每一个的特定视差的似然度。对应于每个图像的每个分割块的DSD中的最大概率的视差值分配给该分割块的每个像素。接着,对每个图像,基于描绘场景的相同部分的相邻图像中的相应像素的视差,然后基于图像的相同分割块内的相邻像素的视差值,平滑分配给每个像素的视差值。平滑操作的结果是用来生成重构、用于组图中的每个图像的视差图(反过来,如果重构应用调用它,能用来生成每个像素深度映射图)。
在本发明的一个实施例中,通过首先将考虑中的图像的每个像素分配给其自己的分割块而实施图像的上述分割。然后,按预定顺序(例如光栅顺序),依次对每个像素,如果分割块的平均颜色以及考虑中的像素的颜色相差小于预定阈值,将与预定数目的相邻像素(例如4个相连近邻)重新分配给考虑中的像素相关联的分割块。接着对图像的每个分割块,确定分割块是否小于区域中的预定数目的的像素(例如区域中100像素)。当发现小于区域中的预定数目的像素,将分割块的像素重新分配给具有与考虑中的分割块的平均颜色最接近的相邻分割块。紧接着,确定每个分割块的宽度是否大于预定的数目的像素(例如40个像素),以及如果是,将分割块水平地分成所需要的一样多的相等分割块以确保新的更瘦的分割块的每一个在宽度上不大于所述预定数目的像素。类似地,一旦满足分割块的宽度,确定分割块的高度是否大于预定数目的像素(例如40个像素),如果是,将分割块垂直地分成所需一样多的相等分割块以确保新的更短的分割块的每一个在高度上不超出所述预定数目的像素。
注意如果在图像的先前的分割前,平滑每个图像的相邻像素间的色差,能实现改进的结果。这在本发明的一个实施例中需要采用按光栅顺序,用于每个像素的下述平滑技术。即,依次选择可以由与考虑中的像素相邻的预定个数的连续像素(例如3个)组成的每一个,以及对像素的每个选择组,从考虑中的像素的颜色的强度减去所选择的组中的每个像素的颜色的强度。对最终差的平均值求和以便产生用于所选择的组的总差值。然后识别显示出最小总差值的像素组,以及平均在所选择的组中的像素和考虑中的像素的每一个的颜色。然后将最终平均颜色分配给考虑中的像素,作为其当前颜色。注意能重复预定多次上述颜色平滑过程以便进一步提高分割的结果。
在本发明的一个实施例中,通过首先计算用于每个图像的每个分割块的初始视差空间分布(DSD),然后通过同时在相同图像的相邻分割块间实施平滑度约束,以及在描绘场景的相同部分的其他图像中的相应分割块间实施一致性约束,细化初始估算来实现上述DSD计算。
在计算DSD前,必须计算深度集,每个对应于单一视差。首先,将用来捕捉表示中间视点的图像的摄像机的光学中心选择为世界原点。z或深度轴与摄像机的方位对准。然后,使用下述方法,计算深度值。将从中间摄像机的图像的中心像素投影到由用户指定的最小深度的相邻图像上。接着,将新深度增加到集合上以便相同像素的投影精确地位于离先前投影一个像素的距离,或一个视差值。增加新深度直到深度值超出由用户指定的最大深度为止。候选视差值的最终范围中的视差值的数量设置成等于在上述方法中找到的深度值的数量。
一旦已计算了深度,能对每个图像的每个分割块,计算初始DSD如下。首先,选择视差。接着选择所考虑图像的一个相邻图像。然后,使用与所选择的候选视差相关联的深度,将考虑中的分割块中的每个像素投影到所选择的相邻图像以便识别相邻图像中的相应像素。如果找到相应的像素,计算与所投影的像素和所识别的相邻图像像素相关联的一个或多个预定增益的比率。例如,这能仅包含在采用单个比率的情况下的灰度级强度增益,或采用与多个增益的每个颜色通道相关联的增益。一当已考虑了分割块的所有像素,生成像素增益比直方图。该直方图用来计算其三个最大连续区间的和。将和指定为用于考虑中的分割块与在与分割块的投影相关联的视差的所选择的相邻图像的匹配分值。
对每个剩余的相邻图像,重复上述过程,然后,在用于每个相邻图像的候选视差值的上述范围中的每个剩余的候选视差上重复上述过程以便产生用于每个相邻图像的每个候选视差值的匹配分值。在这一点上,对每个候选视差值,将结合用于考虑中的候选视差的所有相邻图像计算的匹配分值的积除以结合用于每个候选视差值的所有相邻图像计算的匹配分值的积的和,以便产生用于那个视差值的初始DSD概率。
使用下述方程式,能计算用于每个图像的每个分割块的初始DSD概率的上述细化
其中,pij(d)是指与分割块sij的概率d相关联的细化视差概率值,lij(d)是实施平滑度约束的函数,cijk(d)是实施与相邻图像Ni的组中的每个相邻图像的一致性约束的函数,以及d′是指具有相关概率值的所有视差值。这是重复图像上的细化预定多次(例如50-60次)的迭代方法。
如前所述,使用DSD概率来确定用于每个图像的每个分割块的每个像素的视差值。在执行这一操作中,假定分割块中的所有像素具有相同视差值。然而,通过放松这一要求以及允许每个像素视差值在分割块中改变,能实现更精确的结果。视差变化基于在描述场景的相同部分的其他图像中的相应像素的视差和基于相同图像分割块内的相邻像素的视差值。该视差值平滑过程在本发明的一个实施例中,涉及对考虑中的图像的每个相邻图像,首先将考虑中的像素投影到相邻图像上以及识别对应于投影像素的相邻图像中的像素,然后平均投影和相应图像的视差值。只要当前分配给考虑中的像素和分配给相邻图像中的相应像素的视差值间的差值的绝对值小于预定多个视差等级(例如4个等级),将平均值分配给考虑中的像素作为与所包含的相邻图像相关联的视差因子。否则,将考虑中的像素的视差值分配为与所包含的相邻像素相关联的视差因子。对与相邻图像的每一个相关联,分配给考虑中的像素的视差因子求和,然后除以所包含的相邻图像的数量。将该计算结果分配为考虑中的像素作为其当前视差值。
一当完成图像间平滑,就能执行图像内平滑过程。这需要对每个图像的每个分割块的每个像素,对不在考虑中的分割块外部的、在考虑中的像素的中心上的预定大小窗口(例如5x5窗口)中的像素的当前分配的视差值求平均,然后将所得的平均视差值分配给考虑中的像素作为其最终视差值。
重复预定多次上述平滑过程。例如,在试验的实施例中,在10至20次间重复平滑过程。
除刚才描述的好处外,从下述结合附图的详细描述,本发明的其他优点将变得显而易见。
具体实施方式
在本发明的优选实施例的下述描述中,参考形成其一部分的附图,以及其中,通过示例说明,示出可以实现本发明的具体的实施例。应理解可以利用其他实施例,以及在不背离本发明的范围的情况下,可以实现结构改变。
1.0计算环境
在提供本发明的优选实施例的描述前,将描述可以实现本发明的适当的计算环境的简短的概述。图1示例说明适当的计算系统环境100的例子。计算系统环境100仅是适当的计算环境的一个例子,以及并不打意在暗示相关联本发明的使用或功能性的范围的任何限制。计算环境100不应当解释为具有与在示例性操作环境100中所示的部件的任何一个或组合相关联的任何相关性或要求。
本发明可与其他通用或专用计算系统环境或结构一起操作。适合于与本发明一起使用的公知的计算系统、环境和/或结构的例子包括但不限于个人计算机、服务器计算机、手持或膝上型设备、微型处理器系统、基于微型处理器的系统、机顶盒、可编程消费者电子设备、网络PCs、迷你计算机、大型计算机、包括上述系统或设备的任何一个的分布式计算环境等等。
在可由计算机执行的计算机可执行指令的一般上下文,诸如程序模块中描述本发明。通常,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、部件、数据结构等等。可以在分布式计算环境中实施本发明,其中,由通过通信网络链接的远程处理设备执行任务。在分布式计算环境中,程序模块可以位于包括存储器存储设备的本地或远程计算机存储介质中。
参考图1,用于实现本发明的示例性系统包括以计算机110形式的通用计算设备,计算机110的部件可以包括但不限于处理单元120、系统存储器130和将包括系统存储器的各个系统部件连接到处理单元120的系统总线121。系统总线121可以可以是包括存储器总线或存储器控制器、外围总线和使用各种总线体系结构的任何一个的局部总线几种总线结构的任何一种。举例来说,但不是限制,这种体系结构包括工业标准体系结构(ISA)总线、微通道体系结构(MCA)总线、增强ISA(EISA)总线、视频电子标准协会(VESA)局部总线和也称为Mezzanine总线的外围部件互连(PCI)总线。
计算机110通常包括各种计算机可读介质。计算机可读介质能是能由计算机110存取的任何可用介质以及包括易失性和非易失性介质、可移动和不可移动介质。举例来说,但不是限制,计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括由用于存储信息,诸如计算机可读指令、数据结构、程序模块或其他数据的任何方法或技术实现的易失性和非易失性介质、可移动和不可移动介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储技术、CD-ROM、数字通用盘(DVD)或其他光盘存储、磁带盒、磁带、磁盘存储或其他磁性存储设备,或能用来存储所需信息和能由计算机110存取的任何其他介质。通信介质通常将计算机可读指令、数据结构、程序模块或其他数据嵌入调制数据信号,诸如载波或其他传输机构中,以及包括任何信息传递介质。术语“调制数据信号”是指具有以将信息编码在信号中的方式设置或改变的一个或多个特性的信号。举例来说,但不是限制,通信介质包括有线介质,诸如有线网络或直接有线连接,以及无线介质,诸如声、RF、红外和其他无线介质。上述的任何一个的组合应当包括在计算机可读介质的范围内。
系统存储器130包括以易失性和/或非易失性存储器形式的计算机存储介质,诸如只读存储器(ROM)131和随机存取存储器(RAM)132。包含有助于诸如在启动时,在计算机110间的元件间传送信息的基本例程的基本输入/输出系统133(BIOS)通常存储在ROM131中。RAM132通常包含由处理单元120直接存取和/或当前正在由处理单元120操作的数据和/或程序模块。举例来说,但不是限制,图1示例说明操作系统134、应用程序135、其他程序模块136和程序数据137。
计算机110也可以包括其他可移动/不可移动、易失性/非易失性计算机存储介质。仅举例来说,图1示例说明读取或写入不可移动、非易失性磁性介质的硬盘驱动器141、读取或写入可移动、非易失性磁盘152的磁盘驱动器151以及读取或写入可移动、非易失性光盘156,诸如CD ROM或其他光学介质的光盘驱动器155。能用在示例性操作环境中的其他可移动/不可移动、易失性/非易失性计算机存储介质包括,但不限于磁带盒、闪存卡、数字通用盘、数字视频带、固态RAM、固态ROM等等。硬盘驱动器141通常通过诸如接口140的不可移动存储器接口,连接到系统总线121,以及磁盘驱动器151和光盘驱动器155通过不可移动存储器接口,诸如接口150,连接到系统总线121。
在图1中论述和示例说明的驱动器及它们相关的计算机存储介质为计算机110提供计算机可读指令、数据结构、程序模块和其他数据的存储。在图1中,例如,硬盘驱动器141示例为存储操作系统144、应用程序145、其他程序模块146和程序数据147。注意这些部件能与操作系统134、应用程序135、其他程序模块136和程序数据137相同或不同。操作系统144、应用程序145、其他程序模块146和程序数据147给予不同编号来示例说明至少它们是不同拷贝。用户可以通过输入设备,诸如键盘162和指示设备161,通常称为鼠标、跟踪球或触控板来将命令和信息输入到计算机110中。其他输入设备(未示出)可以包括麦克风、游戏杆、游戏垫、卫星盘、扫描仪等等。这些和其他输入设备通常通过连接到系统总线121的用户输入接口160,连接到处理单元120,但也可以通过其他接口或总线结构,诸如并行端口、游戏端口或通用串行总线(USB)连接。监视器191或其他类型的显示设备也经接口,诸如视频接口190连接到系统总线121。除监视器外,计算机还可以包括可以通过输出外围接口195连接的其他外围输出设备,诸如扬声器197和打印机196。在本发明的特殊意义中,能捕捉一系列图像196的摄像机192(诸如数码/电子静态或视频摄像机,或胶片/摄影扫描仪)也能包括在个人计算机110的输入设备中。另外,尽管仅描述一个摄像机,也能将多个摄像机包括为个人计算机110的输入设备。来自一个或多个摄像机的图像193经适当的摄像机接口194,输入到计算机110中。该接口194连接到系统总线121,从而允许将图像发送并存储在RAM132中,或与计算机110相关联的其他数据存储设备的一个中。然而,应注意到也能从上述计算机可读介质的任何一个,将图像数据输入到计算机110,而不需要使用摄像机192。
计算机110可以在使用到一个或多个远程计算机,诸如远程计算机180的逻辑连接的连网环境中操作。远程计算机180可以是个人计算机、服务器、路由器、网络PC、对等设备或其他公用网络节点,以及通常包括相对于计算机110所述的许多或全部元件,尽管仅在图1中示例说明了存储器存储设备181。图1中所示的逻辑连接包括局域网(LAN)171和广域网(WAN)173,但也可以包括其他网络。这些连网环境在办公室、企业广泛的计算机网络、内联网和互联网中是很常见的。
当用在LAN连网环境中时,计算机110通过网络接口或适配器170,连接到LAN171。当用在WAN连网环境中时,计算机110通常包括用于在WAN173上建立通信的调制解调器172或其他装置。可以是内部或外部的调制解调器173可以经用户输入接口160,或其他适当的机制,连接到系统总线121是。在连网环境中,相对于计算机110所述的程序模块或其一部分可以存储在远程存储器存储设备中。举例来说但不是限制,图1示例说明驻留在存储器设备181上的远程应用程序185。将意识到所示的网络连接是示例性的,以及可以使用在计算机间建立通信链路的其他装置。
基于分割的3D重构系统和过程
现在,已经论述了示例性操作环境,该说明部分的其他部分将专用于描述实现本发明的程序模块。通常,根据本发明的系统和过程涉及从场景的多个图像,计算场景的3D重构。从不同视点捕捉图像,每一个描述至少与图像的另一个重叠预定量(例如60-100%)的场景的区域。如果同时捕捉多个图像,则它们是动态场景。为此。可以使用放在不同视点处的多个像机。另外,应注意到多个图像能采用由位于不同视点的多个视频摄像机生成的一组同一时期捕捉的帧的形式。这些图像可以具有静态场景,在这种情况下,如前,能使用位于不同视点的一系列摄像机,或能将单个摄像机从一个视点到另一视点移动以便捕捉多个图像,因为场景不改变。
通常,当前3D重构技术实现如下,参考图2的流程图。首先,单独地分割每一图像(处理动作200)。第二,使用位于分割块内的所有像素具有相同视差的假定,对每一分割块,计算初始视差空间分布(DSD)(处理动作202)。接着,使用相邻分割块及其在其它图像中的投影,将每一分割块的DSD细化(处理动作204)。然后,在像素视差平滑阶段,放松每一分割块具有单个视差的假定以便产生用于每个图像的视差映射图(处理动作206)。
现在,将在下面的章节中,详细地描述上述处理动作的每一个。
2.1
分割
分割的目标是将每个图像分成可能包含相似视差的区域。这些区域或分割块应当尽可能大以便增加局部支持(local support)同时最小化覆盖可变视差的区域的分割块的机会。在创建这些分割块时,假定同种颜色的区域通常具有平滑视差,即,视差不连续通常与强度边缘相符。
本分割过程具有两个阶段。第一,使用各向异性扩散的变形,平滑多个图像的每一个。然后,基于相邻颜色值,分割每个图像。
在分割前平滑的目的是尽可能多地消除图像噪声以便创建更一致的分割块。也期望降低沿强度边缘的细分割块的数量。通常,本平滑过程与三个连续近邻迭代地平均像素。通过在颜色方面,与中心像素具有最小平方差的像素,确定用于平均的像素组。公知的各向异性扩散和双向过滤算法的简化变形产生用于本应用的良好结果。
更具体地说,参考图3的流程图,对考虑中的图像,按光栅顺序,选择每个像素(处理动作300)。一当已经选择一个像素,依次选择三个近邻像素的每一组(如图4所示的黑色像素所示)(处理动作302)。选择每一组的顺序如何无关紧要,以及如果所选择的像素是中心或边缘像素,仅考虑那些实际存在的相邻像素组。对所选择的三个像素组,从所选择的像素的相应值,减去每个颜色通道(处理动作304)。然后,对最终差的平方值求总和以便产生用于所选择的组的总差(处理动作306)。然后,确定是否已经考虑所有现有的三个像素组(处理动作308)。如果不是,重复处理动作302至308。如果已经考虑所有像素组,那么在处理动作310中,指定显示出最小平方差和的组,用于平均。接着,平均指定组中的像素和所选择的像素的每一个的颜色(处理动作312),以及将该结果分配为所选择的像素的新颜色(处理动作314)。然后,确定是否已经选择图像中的所有像素(处理动作316)。如果不是,重复处理动作300至316。如果已经考虑所有像素,那么平滑过程的当前迭代结束。
重复上述平滑过程预定多次。尽管能执行多次迭代,在本分割过程的试验实施例中,已发现平滑过程的8次迭代产生了可接受结果。
应注意尽管三个近邻组(即3x3窗口)用在上述平滑过程的试验实施例中,能成功地采用更大窗口。例如,能采用五个近邻像素组(即5x5窗口)。
在平滑后,分割阶段开始。这在本发明的一个实施例中,对所包含的多个图像的每一个,如在图5A-C的流程图中概述。首先,对考虑中的图像的每一个像素分配其自己的分割块(处理动作500)。然后,按预定顺序,依次选择每一像素(处理动作502)。例如,在试验实施例中,使用光栅顺序。如果分割块的平均颜色和所选择的像素的平均颜色相差不到一些预定阈值,将相邻4个连通的分割块(像素)与分配给选定像素(如果它不是已在那个分割块中)的分割块合并(即重新分配)(处理动作504)。对角和边缘像素,仅考虑存在的那些“4-连通”像素。接着,确定是否有任何剩余的未选择像素(动作过程506)。如果有,重复处理动作502和506,直到已经考虑所有像素为止。只要已经考虑所有像素,选择先前未被选择的分割块(处理动作508)以及在处理动作510中,确定所选择的分割块是否小于区域中的预定数目的像素(即,如在试验实施例中100像素)。如果所选择的分割块不小于区域中的预定像素数,那么不采取动作。然而,如果发现小于预定数,与具有最相似平均颜色的相邻分割块合并(处理动作512)。换句话说,将所选择的分割块的像素重新分配给其平均颜色最接近所选择的分割块的平均颜色的相邻分割块。接着,确定是否有任何剩余的未选择分割块(处理动作514)。如果是,重复处理动作508至514直到选择和处理所有分割块为止。
应注意到同种颜色的大的区域也可以拥有可变视差。考虑到这种可能性,将分割块限制到宽度和高度的预定大小。更具体地说,参考图5B-C,该过程继续,再次选择一个分割块(处理动作516)。然后,确定所选择的分割块的宽度是否大于预定数目的像素(处理动作518)。例如,在试验的实施例中,预定数目的像素为40。如果所选择的分割块的宽度不大于预定数目的像素,那么不采取动作。然而,如果所选择的分割块在宽度上超出预定数目的像素,水平地将其分成所需的多个相等分割块以便确保新的更瘦分割块的每一个在宽度上不大于预定最大数目的像素(处理动作520)。这是通过将选择的分割块的像素重新分配给适当的新的更瘦分割块来实现的。接着,根据宽度,确定是否已经考虑所有分割块(处理动作522)。如果不是,重复处理动作516至522。然而,如果已经考虑所有分割块,那么除关于分割块高度外,重复分离过程。更具体地说,选择分割块(动作过程524),其是由分割块宽度分离过程产生的新创建的分割块的一个。然后,在处理动作526中,确定所选择的分割块的高度是否大于预定数目的像素。如果所选择的分割块的高度不大于预定数目的像素,那么不执行分离。然而,如果所选择的分割块在高度上超出预定数目的像素,将所选择的分割块垂直地分离成所需的多个同等的分割块以确保新的更短的分割块的每一个在高度上不大于预定数目的最大像素(处理动作528)。同样地,这是通过将所选择的分割块重新分配给适当的新的更短分割块来实现的。然后,如果根据它们的高度,确定是否已经考虑过所有分割块(处理动作530)。如果不是,重复处理动作524至530。如果已经考虑过所有分割块,过程结束。
在本发明的试验实施例中,上述合并和分离操作的结果是所有最终分割块的大小将在100至1600像素改变。上述分割过程的例子如图6(a)和(b)所示,其中图6(a)是原始图像,以及图6(b)表示其分割。
2.2初始视差空间分布
在分割后,下一步骤是计算用于图像中的每个分割块的初始视差空间分布(DSD)。该DSD是用于图像Ii中的分割块sij的多个视差上的概率集。它是典型的视差空间图像(DSI)的变量,将每个视差处的代价或似然性与每个像素[1]关联。分割块sij具有视差d的概率用Pij(d)表示,且∑dpij(d)=1
将用于每个分割块sij的初始DSD设置成:
其中,mijk(d)是用于在视差d处,图像k中的sij的匹配函数,以及Ni是图像I的近邻。对本说明书,将假定Ni由i个直接近邻组成,即,由摄像机捕捉的图像直接与i相邻。在摄像机行中的末端摄像机的情况下,将仅有一个相邻图像可用。另外,在d’的整个范围上除以所有匹配分值的总和确保DSD总和为1。d’的整个范围上的匹配分值能通过在相邻图像中,在与视差相关联的深度处,计算用于分割块的投影的匹配函数,然后计算匹配函数来获得。
假定摄像机间的增益差,发现使用像素增益的直方图的匹配分值产生良好结果,尽管也能采用其他像素特性和其他传统的基于非直方图的匹配方法。对分割块Sij中的每个像素x,使用任何适当的投影方法,找出相邻图像k中的投影x’。然后,使用增益(比)Ii(x)/Ik(x’),产生像素增益比直方图。对颜色像素,单独地计算用于每个通道的增益,以及增加到相同的直方图。使用对数标度,计算直方图的区间,以确保数据的较好间隔。在分割过程的试验实施例中,使用具有范围从0.8至1.25的20个区间的直方图,具有良好结果。
通常,如果使用上述直方图方法,匹配良好,那么直方图具有几个具有大值的区间,以及其余的具有小值,而不良匹配具有更均匀的分布,如图7所示,为测试上述分布的“锐度”,能使用几种方法,诸如测量方差或熵。然而,在本发明的试验实施例中,发现下述匹配函数有效且产生良好结果。
其中,hl是直方图中的第l区间,即,匹配分值是直方图中三个最大连续区间的总和。
一旦对具有相邻图像的考虑中的分割块的初始视差确定匹配分值,对整个视差值集重新计算。例如,在试验实施例中,使用与每个视差相关联的深度,通过将分割块投影到相邻图像中,重新计算匹配分值。通过找出对应于与其近邻中的一个的中间摄像机中的中心像素的投影中的一个像素偏移的深度中的变化,计算与每个视差相关联的深度。因此,对每个视差,在上述增益比计算中,包含不同近邻像素集,因此,直方图将很可能具有导致不同匹配分值的不同的分布。越大匹配分值表示考虑中的分割块可能更接近地匹配与偏移相关联的相邻图像的区域,以及递增的视差值可能比其他候选值更精确。
将参考图8A-B的流程图,概述如在正被处理的图像组的每个图像中的每个分割块上执行的上述初始DSD过程。首先,计算深度值集,每个对应于唯一视差(处理动作800)。在DSD过程的一个实施例中,如下确定用于每个候选的候选视差集和深度值。首先,输入用户指定的最大和最小深度值。然后,使用由用户指定的最小深度,将相对于所述多个图像的视点的中间图像中的中心像素投影到其相邻图像的一个上。将最小深度值分配给与对应于所投影的中心像素的相邻图像像素相关联的视差值上。接着,再次投影中心像素,以便包含来自紧接在前投影的一个视差值以及断定与当前中心像素投影相关联的深度。然后,确定最后一个断定的深度值是否超出用户指定的最大深度。如果不是,将最后一个断定的深度分配给等于所分配的紧接在前视差值的视差,但递增一个视差等级。继续中心像素的该投影、确定断定深度是否超出最大值以及确立新视差以及关联深度直到确定最后一个断定的深度值超出用户指定的最大深度为止。在那一点上,已经分配深度的视差值的范围被指定为候选视差值。接着,从候选视差值集选择视差值(处理动作802)。然后选择其分割块正在考虑中的图像的相邻图像(处理动作804)。紧接着,选择考虑中的分割块中的先前未选择的像素(处理动作806),以及在处理动作808中,使用与所选择的视差相关联的深度,将其投影到所选择的近邻图像上,以便识别对应于所投影的像素的近邻图像中的像素。当每一图像重叠至少一个近邻图像时,考虑中的图像中的至少一些像素将对应于近邻图像中的像素。如果所选择的像素的确具有所选择的近邻图像中的相应像素,那么计算与投影像素和相当识别的近邻图像像素相关联的增益的一个比或多个比(处理动作810)。可以具有与该计算相关联的多个比率的情形的例子是图像是彩色图像。在这种情况下,可以计算每个可应用彩色通道中的增益比。接着,确定在考虑中的分割块中,是否有任何剩余的未选择像素(处理动作812)。如果是,重复处理动作806至812直到考虑所有像素为止。当没有未被选择像素剩余时,在处理动作814中,生成像素增益比直方图(如前所述)。然后,计算直方图中三个最大连续区间的和(处理动作816)以及将该和指定为用于该分割块在所选择的视差处,与所选择的相邻图像匹配的分值(处理动作818)。
在该过程的这一点,对所选择的视差,计算考虑中的分割块的像素与所选择的相邻图像的像素间的匹配分值。如果有另一相邻图像,对它重复上述过程。因此,参考图8B,在处理动作820中,确定是否选择所有相邻图像。如果不是,重复处理动作804至820。如果已经考虑所有相邻图像,处理动作822校验是否有剩余的未选择视差值。如果是,选择新视差以及重复处理动作802至822。在已经选择整个视差集后,计算用于分割块的初始DSD。这需要选择与匹配分值计算相关联的视差的先前未选择的一个(处理动作824)。然后,将结合用于所选择的视差的所有相邻图像计算的匹配分值的乘积除以结合用于每个视差的所有相邻图像计算的匹配分值的乘积和,以便产生用于所选择的视差的DSD概率(处理动作826)。紧接着,断定是否有任何剩余的先前未选择的视差(处理动作828)。如果是,重复处理动作824和828直到考虑所有视差为止。当对每个视差,已经计算DSD概率时,对考虑中的分割块,过程结束。
2.3
DSD细化
下一步是迭代细化在正被处理的图像组的每一图像中的每个分割块的视差空间分布。如在上了中那样,假定每个分割块具有单一视差。
当细化DSD时,期望实施分割块间的平滑度约束和图像间的一致性约束。平滑度约束表示具有类似颜色的相邻分割块应当具有类似的视差。第二约束实施图像间的视差方面的一致性。即,如果将具有视差d的分割块投影到相邻图像上,分割块投影应当具有接近d的视差。
使用下述方程式,迭代实施这两个约束:
其中,lij(d)实施平滑度约束以及cijk(d)实施Ni中每个相邻图像的一致性约束。在试验的实施例中,发现通过图像约50-60次的迭代产生视差概率的所需细化。平滑度和一致性约束的详细情况如下。
2.3.1
平滑度约束
当创建初始分割块时,使用具有类似颜色的相邻像素应当具有类似视差的试探。在分割块上使用相同试探以便细化DSD。假定S
ij表示分割块S
ij的近邻,以及
是用于分割块的最大视差估算s
ij∈S
ij。假定分割块S
ij的视差位于通过受均值
的正常分布污染的
的附近:
其中,在本发明的试验实施例中,
是正态分布以及偏差ε=0.01。使用三个值:分割块颜色的相似度、分割块间的边界的长度以及
估算用于每个相邻分割块S
ij的方差σ
l 2。假定Δ
jl是分割块S
ij和S
il内的像素的平均颜色间的差值,以及b
il是S
ij占用的S
ij′边界的百分比。另外,σ
l 2设置成:
其中,在本发明的试验实施例中,宽度标量v=8以及颜色差高斯的平方方差为
2.3.2
一致性约束
一致性约束确保不同图像间的视差映射图一致,即,如果具有视差d的像素从一个图像投影到另一个图像中,其投影应当也具有视差d。当计算cijk(d)的值以便实施一致性时,应用几个约束。首先,分割块的DSD应当与它投影到的、其他图像中的分割块的DSD类似。第二,尽管期望在图像间分割块的DSD一致,它们还必须与匹配函数mijk(d)一致。第三,由于遮挡(occlusion),一些分割块可以不具有其他图像中的相应分割块。
对每个视差d和分割块Sij,相对于图像Ik,计算其投影DSD,Pijk(d)。如果π(k,x)是像素x投影到的图像Ik中的分割块以及Cij是Sij中的像素数量,
还需要估算图像k中遮挡的分割块sij的似然性。由于如果对每个匹配具有很小的征兆,投影DSDPijk t(d)低,可见度似然性能估算为
随同投影的DSD,计算遮挡函数oijk(d),如果分割块sij遮挡图像Ik中的另一分割块,其值为0,以及如果没有,其值为1。这确保即使sij在图像Ik中不可见,其估算深度不存在于第k个图像的估算深度的表面元素前。更具体地说,oijk(d)定义为
其中,如果x≥0,h(x)=1,否则为0,其是Heaviside阶跃函数,以及λ是用来确定两个表示是否相同的常数。在试验的实施例中,将λ设置成4个视差级。最后,组合遮挡和未遮挡情形。如果不遮挡分割块,直接从投影DSD和匹配函数Pijk t(d)mijk(d)计算cijk(d)。对遮挡区,仅使用遮挡函数oijk(d)。因此,用于cijk(d)的最终函数为,
在本发明的一个实施例中,如在图9所示的流程图中所述,执行上述DSD细化过程。首先,选择正处理的图像组中的一个图像(处理动作900),以及选择所选择的图像的一个分割块(处理动作902)。接着,用如前所述的方式,对所选择的分割块,计算细化的视差概率(处理动作904)。然后,确定是否已经考虑所选择的图像的所有分割块(处理动作906)。如果不是,对每个剩余的分割块,重复处理动作902至906。一当已经考虑所选择的图像的所有分割块,确定是否已经处理所有图像(处理动作908)。如果不是,对所有剩余的图像,重复处理动作900至908。一当已经考虑所有图像,确定是否已经完成预定数目的细化迭代(处理动作910)。如果不是,重复动作900至910的整个过程,直到执行预定次数的迭代为止。
一当已经完成所有预定迭代,对每个图像中的每个分割块sij中的每个像素x分配对应于包含像素的分割块的DSD中的最大概率值的视差值
作为其视差d(x)(处理动作912)。以方程式形式表示,这是
2.4
视差平滑
直到该点,每个分割块中的视差是恒定的。在该阶段,放松该约束以及允许视差基于相邻分割块和图像中的视差平滑地改变。
如前所述,在细化阶段结束时,每个图像的每一分割块中的每一像素设置成具有相关DSD中最大概率值的视差。为确保视差在图像间是一致的,执行下述动作。对具有视差di(x)的图像Ii中的每个像素x,将其投影到每个相邻图像Ik中以便找出对应于投影x的Ik中的像素y。然后,更新di(x)如下:
其中,δik x是二进制函数以便当|di(x)-dk(y)|<λ时等于1,以及当|di(x)-dk(y)|≥λ时,等于0,因此,充当测试类似视差的指示符变量,其中#Ni是近邻数量。在试验的实施例中,λ设置成4个视差等级。
在平均图像上的视差后,平均限制到包含该图像的分割块内的在每一图像的每一图像的预定窗口中的视差以便确保它们仍然平滑。在试验的实施例中,成功地采用5x5窗口,尽管根据需要,能使用其他大小。应注意到如果预定窗口扩展出分割块的边界,仅平均分割块内的那些像素以便确立用于考虑中的像素的最终视差值。上述图像间的视差平滑被迭代地完成。在试验实施例中,发现使用方程式(11),通过图像约10-20次迭代以及在分割块内平均以便平滑每个图像中的视差值依次产生所需效果。
在本发明的一个实施例中,如图10A-C所示的流程图中所示,执行上述平滑过程。首先,选择正被处理的图像组中的一个图像(处理动作1000),然后,选择那个图像中的一个像素(处理动作1002)。另外,选择所选择的图像的相邻图像中的一个(处理动作1004)。紧接着,将所选择的图像投影到所选择的相邻图像中,以及识别对应于所投影的图像的相邻图像中的像素(处理动作1006)。然后,确定如果当前分配给所选择的像素和分配给相邻图像的所识别的相应像素的视差值间的差值的绝对值是否小于预定数目的视差等级(处理动作1008)。如果小于,那么计算考虑中的两个像素的视差值的平均值,并分配给所选择的像素,作为与所选择的相邻像素相关联的视差因子(处理动作1010)。然而,如果差值的绝对值不小于预定数目的视差等级,那么,将当前分配给所选择的像素的视差值分配给它,作为与所选择的相邻图像相关联的视差因子(处理动作1012)。接着,确定是否已经考虑过所选择的图像的所有相邻图像(处理动作1014)。如果不是,那么对每个剩余的相邻图像,重复处理动作1004至1014。只要已经考虑过所有相邻图像,在处理动作1016中,计算分配给所选择的像素、作为与相邻图像相关联的视差因子的和,并除以所包含的相邻图像的数量。然后,将该结果分配为用于所选择的像素的当前视差值(处理动作1018)。接着,确定是否已经处理过所选择的图像的所有像素(处理动作1020)。如果不是,对剩余像素的每一个,重复处理动作1002至1020。如果已经处理过所选择的图像中的所有像素,那么接着确定是否已经考虑过所有图像(处理动作1022)。如果不是,那么对剩余图像的每一个,重复处理动作1000至1022。一当完成间图像平滑,如上所述,过程继续图像内平滑。更具体地说,现在参考图10C,再次选择一个图像(处理动作1026)。这次,选择所选择的图像中的分割块(处理动作1028),以及选择所选择的分割块的像素(处理动作1030)。然后平均不在所选择的分割块外、位于所选择的像素的中心的预定大小的窗口中的像素的视差值,以及将该结果分配给所选择的像素作为其最终视差值(处理动作1032)。接着,确定是否已经考虑过所选择的分割块中的所有像素(处理动作1034)。如果没有,那么对每个剩余像素,重复处理动作1030至1034。当已经处理过所选择的分割块中的所有像素时,确定是否已经考虑过所选择的图像中的所有分割块(处理动作1036)。如果没有,那么对每个剩余的分割块,重复处理动作1028至1036。当已经处理过所选择的图像中的所有分割块时,在剩余的图像上,执行图像内平滑。为此,确定对图像内平滑,是否已经考虑过所有图像(处理动作1038)。如果没有,对每个剩余图像,重复处理动作1026至1038。当已经考虑过所有图像时,在处理动作1040中,确定是否已经完成预定次数的平滑迭代。如果没有,那么重复整个处理动作1000至1040直到执行预定次数的迭代为止。在那一点上,平滑过程结束。
2.5
示例性结果
图11(a)-(e)表示使用本3D重构过程的试验实施例获得的一些采样结果。图11(a)是观看跳霹雳舞者的一组人的图。存在相邻图像但未示出。图11(b)示例说明重构的分割阶段的结果,其中,每个斑点表示不同分割块。图11(c)例示通过向该分割块中的像素分配与分割块的初始DSD的最大概率值相关联的视差获得的视差估算导出的每一像素深度。应注意到在图11(c)-(e)中,图像中的像素越淡,估算它越接近捕捉原始图像的摄像机。图11(d)表示如图11(c)获得的每一像素深度,但在根据本重构过程,是在细化DSD概率后。最后,图11(e)表示在执行视差估算平滑过程后获得的每一像素深度。能看出视差估算在每一连续阶段处提高。
[1]Scharstin,D.,和Szeliski,R.2002.A taxonomy and evaluation of densetwo-frame stereo correspondence algorithms,Interational Journal ofComputer Vision 47 1(5月),7-42
[2]Tao,H.,Sawhney,H.,和Kumar,R.2001.A global matching framework forstereo computation.In Eighth International Con-ference on Computer Vision(ICCV 2001).,第I卷,532-539
[3]Zhang,Y.,和Kambhamettu,C.2001.On 3D scene flow and structureestimation.In Conference on Computer Vision and Pattern Recognition(CVPR’2001),第II卷778-785。