用于从视图中获得距离信息的设备和方法与流程

文档序号:18219309发布日期:2019-07-19 22:52阅读:244来源:国知局
用于从视图中获得距离信息的设备和方法与流程

本发明包括在数字图像处理领域中,并且更具体地,涉及用于从图像估计距离和生成深度图的方法和系统。



背景技术:

在光场技术中,多视图视觉系统(诸如全光相机或多相机系统(即,若干相机的阵列))经常用于估计场景的深度。全光相机是成像设备,其不仅捕获空间信息,而且还捕获场景的角度信息,称为光场。光场可以表示为四维函数lf(px,py,lx,ly),其中px和py选择光线到达传感器的方向,并且lx、ly是那个光线的空间位置。

全光相机通常由放置在图像传感器前面的微透镜阵列形成。这个图像捕获系统相当于从若干视点捕获场景(所谓的全光视图,就像若干相机均匀分布在全光相机的等效光圈周围)。在光场中隐含地捕获关于场景中的不同物体的深度(物体本身和相机之间的距离)的信息。

通过将变量px、py固定到某对值来从光场获得全光视图,这相当于仅选择通过孔径的特定部分的光线。可以捕获光场的另一个系统可以由若干相机的阵列形成。因而,在光场中隐含地捕获关于场景的不同物体的深度(即,物体本身和相机之间的距离)的信息。

提取物点的深度信息的一般方法是测这个物点的图像在场景的若干捕获的全光视图上的位移。位移或视差(disparity)直接与物体的实际深度相关。为了获得点的视差,有必要在若干视图中(或至少在两个视图中)识别相同点的位置。为了解决这个问题,通常使用视图之间的对应算法。考虑某个视图的一个点,这些方法分析周围区域并尝试在其余视图中找到最相似的区域,从而识别其余视图中相同点的位置。一旦获得视差并且知道设备结构的参数,就有可能通过三角测量方法获得对应的深度。还有可能通过将光场重新聚焦到若干深度平面并检测更聚焦的图像的区域来确定深度信息。这些方法的主要缺点是它们计算量太大,无法在移动平台上获得实时深度图。

从光场获得场景的深度信息的另一种方式是分析极线(epipolar)图像。极线图像是光场的二维切片。通过固定变量py、ly形成水平极线图像,并通过固定变量px、lx形成垂直极线图像。水平/垂直极线图像可以被理解为不同视图py/px的相同线ly/lx的堆叠。假设相同的物点被全光相机中的所有视图捕获,那么在极线图像中形成与不同点对应的线。全光相机中相邻视图之间的最大位移为±1像素。因此,在这种设备中可以避免对应算法,因为与某一行对应的每个点都直接连接到极线图像中其余视图的同一点。但是,如傅立叶域技术和离焦深度(depth-from-defocus)技术的当前全光相机算法在计算上非常低效,因为它们分析并处理图像的所有点(不仅是边缘,如在本发明中那样)。另一方面,简单的光场梯度方法(在水平和垂直方向上)产生非常差的深度图,具有不可靠的深度估计。而且,这些实现不能处理实时视频图像,花费几百毫秒到几分钟仅处理单个帧。

因此,需要一种非常高效的方法,使得移动设备(诸如移动电话、平板电脑或笔记本电脑)中的全光相机和3d图像能够计算深度图并处理实时视频图像(例如,每秒60帧)。

在过去的十五年中,多视图成像在科学文献中出现得更频繁,在一些研究领域,诸如图像去模糊、虚拟视图合成或高分辨率图像重建,仅举几例。使用单个全光相机的主要限制之一是空间分辨率大幅降低,变得等于微透镜的数量;因此,大多数出版物仅考虑借助于超分辨率技术来改善这种全光相机的空间分辨率,而不考虑提高深度估计的准确度和范围。这些方法已经被证明可以有效地将全光相机的空间分辨率提高4倍,但是,超过4倍,它们的性能急剧下降。

当在非常靠近相机的有限深度范围上进行估计时,使用全光相机的深度图估计一般而言是有效的。但是,随着从相机到物体世界的距离增加,这种估计逐渐变得越来越不准确。

立体视觉是获得场景中深度图的另一种方法。使用三角测量技术,可以借助于两个视点从场景中提取3d信息,从而模仿人类视觉感知。有许多立体算法可以通过使用具有已知空间偏移的两个相机来产生深度图。由于立体视觉设备的基线通常比全光相机的基线宽,因此立体视觉方法能够更好地估计长距离的深度图。但是,这些双目立体方法存在若干缺点,因为它们常常导致不完整的视差图(由于遮挡产生的孔,其中不可能在两个图像中找到相同的物点)或者具有深度不连续区域,其中相邻像素之间的视差经历过大于一个像素的间隙(在立体视觉中,当估计深度图时,在子像素级别的对应点之间的视差计算中累积不准确;在某个点处,这些不准确性可能大于像素,从而造成两个连续点之间的间隙并留下没有深度估计的点)。此外,立体方法在计算上非常昂贵,因为它们通常需要计算密集的对应算法。

影响立体相机的另一个问题是常规相机的相对小的景深,因为这种系统只能在两个相机都聚焦的范围内正确地估计深度。采用现代cmos技术,像素维度已缩小至一微米并且很快将低于一微米。众所周知,随着光传感器的像素变小,物体世界中的景深(图像世界中的焦深)恶化,因此聚焦的现实世界的距离范围随着像素变得越来越小而变得越来越短。将有可能使用较小的孔径来逆转那个趋势,但代价是接收较少的光并因此减少可记录的每秒帧数。出于这个原因,用于具有大像素计数(10-20兆像素或更高)和小像素尺寸(约一微米)的移动电话的微型相机开始使用“自动对焦”解决方案,这些解决方案主要通过mems(微电机系统)实现,mems是沿着光轴来回移动透镜以聚焦图像的移动元件。

如果立体对使用自动对焦,那么两个相机将被聚焦,但是失焦区域的信息明显地模糊或丢失(混合来自物体世界的不同区域和深度的传感器或膜信息)。因此,立体处理(即,知道两个相机中的同一图案与现实世界的距离的三角测量)将不会改善失焦区域中的模糊性,从而污染距离计算,最终不会提供任何更可靠的数据。可以认为可以考虑不同的解决方案来解决这个问题,例如,使两个相机中的一个聚焦在短距离上而另一个聚焦在长距离上。但是,这种解决方案使得三角测量解决方案变得更糟,必须在其中一个相机中模糊而在第二相机中不模糊的区域中识别相同的图案,这增加了难度并影响了对应算法的可靠性。

另一种可能但更复杂的解决方案是使用颜色相关的特殊透镜,使得拜耳图案(或任何其它基本颜色图案)的3种不同颜色聚焦在针对短距离、中距离和长距离的三个不同的范围,结合之后的结果得到所谓的edof(扩展景深)。虽然edof仅适用于一个相机,但它可能会扩展到立体对的两个相机。也可以使用立体对的两个相机中的颜色和焦点位置的不同置换。

无论使用哪种方法,最终都需要将两个相机(或颜色)都聚焦在物体世界中相同的深度范围内(在这种情况下,来自两个相机[或颜色]的聚焦区域的信息不能用于计算深度)或者在三角测量过程中混合模糊和未模糊的图像,从而产生次优结果。

扩展深度范围的另一种可能的解决方案,其中立体方法用于估计深度,是将设计具有极小孔径和相对大像素的相机,从非常小的距离(几厘米)扩展景深至无穷大,并对立体对中的两个相机执行相同操作。但是,这种权衡不是免费的。原则上,将有可能颠倒先前关于较小孔径解释的趋势,但是以接收较少的光并因此减少可记录的每秒帧数(在视频应用中不可接受)为代价。最后,将有可能使像素更大,与实际趋势相比,具有带有较小的像素的更大数量的兆像素,但是这将导致非常大的传感器,不适于手持应用并且仅在大型专业相机中被允许。

如前面所指示的,全光相机可以用于通过分析极线图像来估计场景的深度。全光相机的优点是具有更高的景深,因为孔径有效地被划分为若干小孔径(通常是数百个),从而大大增加了景深。全光相机的景深实际上可以从几厘米到无限远,从而使得这些设备对于大的景深比立体方法更具吸引力。在全光相机中,甚至可以避免让mems改变相机的焦点的要求。

所提出的发明使得全光相机能够以极其高效的方式计算深度图,从而允许以高帧速率(每秒60帧或更多帧)处理实时视频图像。而且,本发明还利用多视图系统来显著增强距相机很远的全光相机的深度估计的准确度,仍然能够享受用于超分辨率的现有(和/或新颖)技术以及横向分辨率、重新聚焦和传统深度估计技术的改进。本文公开的过程在计算效率和功率要求方面改进了现有技术方法。



技术实现要素:

本发明涉及计算机实现的方法和设备,其通过处理由全光相机或任何其它光场获取设备、全光功能采样设备或整体图像获取设备捕获的光场图像来获得深度图。其它相机可以与全光相机结合使用,诸如一个或多个常规相机或附加的全光相机,从而形成多视图系统。

全光相机可以用于通过分析极线图像来估计场景的深度。在全光相机中的极线图像中产生的极线的斜率与场景中(在物体世界中)物体的实际深度之间存在关系。因此,通过检测极线图像的线的斜率,有可能生成场景的深度图。该方法在计算上非常高效,因为可以仅对已经找到场景中的边缘的传感器的那些部分执行计算,从而避免在未检测到边缘的物体世界的区域中进行计算。以这种方式,即使在具有由电池操作的低成本处理器的低成本移动设备中(其中需要高效的计算以避免快速耗尽电池),该方法也可以用于获得实时深度图。

本发明使用非常高效的算法,该算法允许在全光相机、移动设备(移动电话、平板电脑、笔记本电脑、小型相机等)、运动感测输入设备和3d相机中的3d图像通过识别物体边缘并仅为识别出的边缘计算深度来处理实时视频图像(以每秒60帧和甚至更高的速度)。

在极线图像中产生的线的斜率与场景中的物体的实际深度之间存在关系。因此,通过检测极线图像的线的斜率,有可能生成场景的深度图。通常,基于极线图像的二维梯度的方法用于获得对应的斜率。也可以采用基于四维梯度的类似方法(因此,计算上更昂贵)。与所有这些方法相反,本方法仅针对边缘计算场景的深度,从而大大降低了计算要求。

光场摄影隐含地将3d场景几何和反射特性捕获到光场中。光场是四维结构,其中入射光线借助于它们的空间位置(2d:lx和ly)以及它们的到达方向(2d:px和py)来描述。在本发明中,考虑4d光场(px,py,lx,ly)作为全光相机的输出。由于它们可能用于估计场景的深度图,因此这些设备变得越来越流行。如果传感器还捕获颜色(例如通过使用所谓的拜耳图案或类似的),那么光场将是5d结构(px,py,lx,ly,c),其中c是捕获的不同颜色通道。为了清楚和简单起见,在本发明中,假设光场是没有颜色信息的4d结构。不过,该领域的专家将理解的是,用于捕获颜色信息的传感器的所公开信息的扩展是微不足道和直截了当的。可能的解决方案是将本文给出的算法分别应用于每个颜色通道,以便增加深度估计的冗余度。

来自光场的深度估计在光场应用中越来越普遍,尤其是在3d成像应用中。但是,为了获得场景的3d重建或深度图,光场中包含的数据需要附加的后处理,该后处理将输入的4d光场结构变换为2d图像,其中对于由全光相机捕获的每个像素,有可能计算它在真实物体世界中的深度。基本上,在全光成像中,距相机不同距离的物体在全光相机的传感器上产生不同的照明图案,因此,可以执行这些图案的适当处理以获得对应的距离,即,这些物体在物体世界中的深度。全光成像系统的主要缺点是空间分辨率的损失以及随着到相机的距离增加,它们的深度估计准确度非常快地降低的事实。

估计场景中物体深度的另一种众所周知的方法是通过立体视觉。通过跟踪同一场景的不同视点之间图像点的位移,有可能使用基本三角测量来估计场景的物体的距离。立体视觉旨在从两个不同的视点(彼此分开的两个不同的相机)记录(或观看)来自物体世界的对应点,计算它们的位移以重建场景的几何形状作为深度图。

根据本发明的实施例,本文描述的系统和处理方法被实现为多视图系统,其包括(但不限于)至少一个光场全光相机和一个或多个附加相机(常规相机和/或全光相机)。本发明产生高质量的场景深度图,其具有比现有技术更高的精度和更大的距离。本发明允许利用来自水平对准的常规相机的附加数据来改进来自全光相机的极线线(水平极线线改进);但是,这并不限制本发明的一般性,本发明可以包括多个相机(假设它们中的至少一个是全光相机)以及它们之间的任何对准。

考虑在m×n个相机的阵列中仅具有一个具有n'全光视图(或等效地,每个微透镜下方的n'个像素)的全光相机和(m×n)-1个常规相机的实施例,本发明提供了以下主要优点:

-本发明提高了现有技术方法的计算效率,因为不需要在每个相机记录的点之间计算出立体对对应(计算密集度非常高),因为在全光极线图像中形成的极线线用于查找对应的点。

-本发明的方法计算要求不高;另外,本发明采用可并行化的任务,其可以享受现代并行计算平台的好处。

-由于其低计算能力要求,本发明可以用于由电池操作的任何类型的移动设备。与小型化微型相机的发展相结合,这对新一代移动设备特别有用。拥有两个摄像头正变得越来越普遍,并且多视图也将很快出现。

-本发明提供了更多的冗余和噪声容限,因为图像由n′+[(m×n)-1]个图像形成,将由(m×n)-1个常规相机捕获的图像添加为附加的全光视图。本发明比m×n常规相机的常规多视图系统多n′1个图像并且比常规全光相机多(m×n)-1个全光视图,并且通过具有这些附加图像(或视图),有可能比全光相机具有更宽的基线。

-由于全光相机捕获的小基线和高视图数量,因此遮挡效果几乎可以忽略不计。以这种方式,克服了由于物体世界中的遮挡而在深度估计中产生的关于不完整性和不连续性的立体和传统多视图视觉系统的缺点。

-所公开的发明使用插值(或任何其它建立相同世界景象的不同分辨率的两个图像之间的对应关系的方法)以提高全光相机的分辨率,从而跟上常规相机的分辨率。因此,每个全光视图的分辨率都显著增加。

-关于在距相机较远距离处的深度估计中产生的不准确性,本发明克服了基于全光相机的系统的缺点。通过使用几种可能的不同方法来实现这种改进:

·组合来自全光相机的深度图和(m×n)-1个常规相机的2d图像。

·将全光相机的n′个全光视图中的每一个和(m×n)-1个常规相机的2d图像组合成多立声配置n′次,考虑阵列的(m×n)个相机中的每一个作为多立体。这可以包括使用传统的对应算法。

·利用(m×n)-1个常规相机的2d图像来扩展全光相机的极线图像。

-所公开的发明通过应用经典立体算法改善图像的特别困难的区的深度图(例如由于遮挡)。假设借助于任何前述组合创建第一深度图,在至少一个实施例中,可以通过应用经典立体算法来执行这个第一深度图的可能精炼,从而解决关于图像的那些困难的区获得的第一深度图的可能模糊性。

-本发明改善仅使用立体对或多视图可实现的重聚焦能力。

在上面的讨论中,假设在m×n相机阵列上只有一个全光相机,但是具有多于一个全光相机的一般化是直截了当的。如稍后将解释的那样,通过在计算距离的测量上和图像形成处理上具有多于一个全光相机冗余,改善了抗噪性;而且,当使用常规相机的信息时,增加了计算效率。

本公开涉及光场技术和多视图视觉系统,以便估计场景的深度。还公开了通过估计扩展的极线的斜率来产生场景的深度图的图像处理过程。

根据实施例,本发明涉及使用多视图成像系统进行实时深度估计的设备和方法。该系统包括至少一个光场全光相机,并且还可以包括附加的常规相机。这种具有适当图像处理过程的多视图系统能够以非常高质量的分辨率创建场景的深度图,克服了当前全光相机和多相机系统的缺点。本发明在深度测量和最大可测量深度方面实现了更好的精度,同时还提供了附加的优点,诸如在深度图中捕获和表示的不同深度之间的更平滑过渡以及对人眼的更好感知。并且还增强了在捕获场景之后数字地重新聚焦图像并且应用艺术效果的能力。

本发明的方法在计算要求方面非常高效,并且由于其低计算能力要求,它可以用于由电池操作的任何类型的移动设备。本文描述的方法还可以在若干处理器和/或gpu以及用于电池供电的移动设备的具体并行处理器中被高效地并行化。

为了本发明的描述,下文中将考虑以下定义和首字母缩略词:

-微透镜阵列:布置在阵列中的多个小透镜(微透镜)。

-常规微透镜阵列:由微透镜形成的阵列,被设计为规则地间隔开和规则地构建(通过阵列的整个结构的均匀间距、所有透镜的相同曲率半径、相同的焦距等),不考虑由于制造缺陷引起的不均匀性。

-小透镜或微透镜:形成微透镜阵列的每个小透镜。

-全光相机:不仅捕获空间位置而且还捕获入射光线到达方向的设备。

-常规相机:仅捕获入射到图像传感器的光线的空间位置的设备,使得传感器的每个像素集成来自设备的整个孔径的任何方向的所有光。

-光场:四维结构lf(px,py,lx,ly),其包含由全光相机中的微透镜(lx,ly)下方的像素(px,py)捕获的光的信息。

-全光视图:通过为每个微透镜(lx,ly)选择特定值(px,py),相同(px,py),通过取得光场结构的子集而形成的二维图像。

-深度:场景的物点的平面与相机的主平面之间的距离,这两个平面都垂直于光轴。

-深度图:二维图像,其中将物体世界的计算的深度值(dz)作为附加维度值添加到二维图像的每个像素,组成(dx,dy,dz)。

-视差图:当由两个相机从两个不同的视角捕获时,物体世界中3d点的同一集合的图像位置的差异。视差可以用于通过三角测量来确定深度。

-极线图像:通过选择(px,lx)(垂直极线图像)或(py,ly)(水平极线图像)的特定值而组成的光场结构的二维切片。

-极线线:在作为物体边缘被检测到的极线图像内的连接像素的集合。

-有效的极线线:极线线,其形状符合预期由物体世界中的边缘在理想相机中创建的形状,所述理想相机没有像差、未对准和制造公差。

-扩展的极线线:由一个或多个常规相机的一个或多个像素(与物体世界中的同一点对应)扩展的全光相机的极线线的像素集。

-基线:在多视图系统中,两个连续相机(全光或常规相机或任何相机)的孔径中心之间的距离。

-智能微型相机:用于移动设备的小维度微型相机模块,其可以具有附加特征,如通过照明改变自动调整其帧速率、在不同距离处聚焦、放大和缩小等的能力,根据预定义标准变换捕获的图像。

-立体对应(或仅对应):将图像的点与另一个图像的那些点匹配的技术,识别从不同的视点看到的物体世界中的相同点。这个处理计算出一个图像的哪些部分与另一个图像的哪些部分对应,其中差异是由于不同的视角。

-微图像:由全光相机的某些微透镜在图像传感器上产生的主孔径的图像。

-fov:视场。

根据本发明的一方面,提供了一种用于从光场获得深度信息的方法。该方法包括以下步骤:从由光场获取设备(诸如全光相机)捕获的光场生成多个图像(例如,至少一个水平极线图像、至少一个垂直极线图像,或其组合);边缘检测步骤,用于在极线图像中检测由光场获取设备捕获的场景中的物体的边缘;在每个极线图像中,检测由边缘集合形成的有效极线线;确定有效极线线的斜率。

在实施例中,边缘检测步骤包括计算极线图像的每个像素的二阶空间导数并检测二阶空间导数的过零。确定有效极线线的斜率的步骤可以包括将线拟合应用于检测到的边缘。

在极线图像中检测有效的极线线可以包括将极线线确定为连接的边缘的集合并分析极线线以确定极线线是否有效。极线线优选地被确定为连接的边缘像素的集合。在实施例中,分析极线线以确定它们是否有效包括检查与至少一个标准的依从性。在实施例中,标准涉及形成极线线的像素的数量超过确定的阈值(例如,形成极线线的像素的数量必须至少等于对应极线图像的高度的像素的数量)。另一个标准可以指在极线图像内边缘像素的方向的一致性。在实施例中,采用先前标准的组合。可替代地,代替检查与至少一个标准的依从性,分析极线线以确定极线线是否有效可以包括形态分析、启发式方法或机器学习算法。在实施例中,极线线的分析可以包括忽略在极线图像的顶部和/或底部的一行或若干行像素。

该方法还可以包括生成将斜率指派给物体世界中的位置的斜率图。在实施例中,生成斜率图的步骤包括仅将斜率值指派给检测到的边缘。生成斜率图的步骤还可以包括应用填充算法以将斜率值指派给斜率图的位置,同时考虑先前针对检测到的边缘获得的斜率。该方法可以包括从针对同一位置的不同有效极线线获得的冗余斜率的组合生成单个斜率图。在实施例中,丢弃指派给相对于这种位置的其余值具有高分散的某个位置的斜率。

该方法还可以包括生成将深度值指派给物体世界中的位置的深度图,其中通过将斜率到深度的转换应用于斜率图来获得深度图。根据另一个实施例,该方法包括获得与有效极线线的斜率对应的深度值,以及生成将深度值指派给物体世界中的位置的深度图。

生成深度图的步骤可以包括仅将深度值指派给检测到的边缘。生成深度图的步骤可以包括应用填充算法以考虑先前针对检测到的边缘获得的深度值而将深度值指派给深度图的位置。该方法可以包括从针对相同位置的不同极线图像获得的冗余深度值的组合生成单个深度图来生成单个深度图。在实施例中,丢弃指派给相对于这种位置的其余值具有高分散的某个位置的斜率。

在实施例中,该方法包括生成斜率图和/或深度图,其中通过使用在过零中获得的子像素精度,斜率和/或深度图的位置的数量高于微透镜的数量。

在实施例中,仅获得每条有效极线线的一个斜率值。该方法还可以包括将滤波器应用于极线图像以在边缘检测阶段之前获得经滤波的极线图像的步骤。在实施例中,光场获取设备是全光相机。

有效极线线的检测可以包括利用由至少一个附加图像获取设备捕获的图像的附加信息来扩展来自光场获取设备的极线图像的极线线,以获得扩展的极线线。

取决于至少一个附加图像获取设备相对于光场获取设备的相对位置,可以在附加信息的上方和/或下方扩展极线图像。优选地,根据先前在校准处理中计算的水平和垂直偏移,在极线图像上方和/或下方的特定距离处添加附加信息。在实施例中,水平极线图像被扩展,添加与光场获取设备水平对准的至少一个附加图像获取设备的附加信息。可以扩展垂直极线图像,添加与光场获取设备垂直对准的至少一个附加图像获取设备的附加信息。

附加信息可以包括由至少一个常规相机捕获的图像中包含的边缘像素,其中所述边缘像素与极线线表示的物体边缘对应。可替代地,或除此之外,附加信息可以包括由至少一个附加光场获取设备捕获的图像中包含的极线线,其中所述极线线与该极线线表示的物体边缘对应。

在实施例中,该方法包括确定由常规相机捕获的图像中的搜索区域,其中搜索与极线线对应的边缘像素。该方法可以包括确定由附加光场获取设备捕获的图像中的搜索区域,其中搜索与由极线线表示的物体边缘对应的附加光场获取设备的极线线的中心边缘像素。在两种情况下,搜索区域都可以是一维窗口或二维窗口。优选地,基于仅考虑光场获取设备在第一估计深度距离处从分散曲线预期的来自光场获取设备的深度测量值的不确定性来选择搜索区域的尺寸。

根据实施例,该方法包括:

-计算来自光场获取设备的极线线的线性回归。

-从由常规相机捕获的图像中获取延长线。

-用常规相机的延长线扩展光场获取设备的极线图像。

-计算极线线和延长线的交点。

-在交点周围定义搜索区域。

优选地,使用先前在校准处理期间计算的水平和垂直偏移量,利用延长线扩展极线图像。获得水平和垂直偏移量的校准处理可以包括在光场获取设备的共轭平面中放置与光轴对准的发光点,并计算获得与包含由发光点产生的光的常规相机的像素垂直对准的垂直极线所需的偏移量。

获得延长线的步骤可以包括确定由光场获取设备捕获的图像的垂直和/或水平坐标与常规相机图像的垂直和/或水平坐标之间的等效性。在实施例中,通过将发光图案放置在与光轴对准的光场获取设备的共轭平面中并且计算由获取设备的每个图像传感器捕获的光图案的垂直和/或水平尺寸之间的关系,获得获取设备的图像传感器的像素的垂直和/或水平坐标之间的等效性。该方法还可以包括应用对应处理来找出常规相机图像中与由由极线线表示的物体边缘匹配的边缘像素。

获得扩展的极线线的步骤可以包括为极线线和附加信息指派权重。该方法还可以包括从包括光场获取设备和至少一个常规相机的多视图系统获得全聚焦图像。获得全焦点图像的步骤包括:

-对于位于距多视图系统超过阈值的距离处的物体,从至少一个常规相机获得聚焦图像。

-对于位于距多视图系统低于阈值的距离处的物体,从光场获取设备获得重新聚焦的图像。

-通过,对于低于阈值的距离,从光场获取设备的重新聚焦图像中获取最清晰的物体并且,对于超过阈值的距离,从至少一个常规相机中获取聚焦图像,组成最终的全聚焦图像。

在另一个实施例中,该方法还包括重新聚焦来自包括光场获取设备和至少一个常规相机的多视图系统的图像的步骤。重新聚焦图像的步骤包括:

-计算深度图。

-对于位于距多视图系统低于阈值的距离处的物体,使用来自光场获取设备的重新聚焦图像。

-对于位于距多视图系统超过阈值的距离处的物体,选择距至少一个常规相机的聚焦距离范围以及模糊放置在超出所选聚焦范围的距离处的图像中的物体。优选地使用高斯滤波器来执行模糊。

该方法可以包括为光场获取设备和至少一个附加光场获取设备生成斜率图。在实施例中,考虑到光场获取设备之间的垂直和水平偏移,将不同的生成的斜率图组合成单个斜率图。该方法可以包括使用由光场获取设备捕获的所有视图和由常规相机捕获的图像之间的立体对应算法来生成深度图。在由一个全光相机和一个或多个常规相机形成的实施例中,该方法包括使用由常规相机提供的信息来增强在光场相机的极线线图像中估计的斜率的准确度。

根据本发明的另一方面,提供了一种用于从光场生成深度图的设备。该设备包括处理装置,该处理装置被配置为执行先前解释的方法的步骤。在实施例中,该设备可以包括光场获取设备,诸如全光相机。在另一个实施例中,该设备可以包括多视图系统,该多视图系统包括多个相机,其中至少一个相机是光场获取设备。多视图系统可以包括至少一个常规相机。在实施例中,该设备可以包括一个或多个全光相机和一个或多个常规相机。一个或多个常规相机可以与光场获取设备垂直和/或水平对准。多视图系统可以包括光场获取设备和常规相机的二维阵列。

优选地,该设备是电子移动设备,诸如智能电话、平板电脑、笔记本电脑或小型相机。处理装置可以包括:第一cpu,被配置为获得并分析水平极线图像;以及第二cpu,被配置为获得并分析垂直极线图像。在另一个实施例中,处理装置包括多核处理器。可替代地或者作为附加,处理装置可以包括图形处理单元。

根据本发明的又一方面,提供了一种计算机程序产品,用于从由全光相机捕获的图像生成深度图,或者从由一个或多个全光相机和一个或多个常规相机捕获的图像集合生成深度图,包括计算机代码指令,当计算机代码指令由处理器执行时,使得处理器执行先前解释的方法。在实施例中,该计算机程序产品包括至少一个计算机可读存储介质,其上记录有计算机代码指令。

附图说明

下面非常简要地描述一系列附图,这些附图有助于更好地理解本发明并且与作为其非限制性示例的所述发明的实施例明确相关。

图1a表示全光相机捕获放置在微透镜阵列的共轭平面处的物体的光。图1b图示了由全光相机的图像传感器捕获的光。

图2a和2b示出了全光相机捕获放置得比微透镜阵列的共轭平面更近的物体的光。

图3a和3b描绘了全光相机捕获放置得比微透镜阵列的共轭平面更远的物体的光。

图4a-4d描绘了图1、2和3的示例的水平和垂直中心极线图像的形成处理。

图5描绘了根据实施例的用于通过分析在极线图像中检测到的线来确定物体世界中的点的深度的处理流程的图。

图6a-6c示出了在极线图像中有效和无效极线的各种示例。图6d-6g示出了图6a的示例中的极线线的斜率的计算处理。图6h-6j图示了图6b的极线线的斜率的计算处理。

图7a-7e示出了包括若干条极线线的极线图像,以及对应斜率的计算处理。

图8描绘了稀疏深度图的示例,其示出了处于不同深度的三个物体。

图9描绘了密集深度图的示例,其示出了处于不同深度的三个物体。

图10a-10c示出了当捕获设备是单个全光相机时执行本发明的方法的电子移动设备的不同实施例。

图11a-11d示出了当测量由位于特定距离处的物体产生的极线线的斜率时由传感器的非无穷小像素尺寸引入的不确定性。

图12描绘了对于位于不同深度的两个物体的深度(在相机附近的左侧和远离相机的右侧)由全光相机估计的深度的概率分布。

图13a-13e示出了包含由全光相机和若干常规相机形成的多视图系统的五种可能配置的便携式设备。

图14图示了利用由常规相机捕获的同一场景的2d图像对利用全光相机捕获的极线图像的扩展处理。

图15示出了仅考虑全光极线线所获得的第一斜率估计以及如何通过考虑常规相机的2d图像来增强斜率估计。

图16a-16b描绘了根据实施例的增强单个全光相机的斜率估计的本发明的过程的若干步骤。

图17a-17b表示在常规相机图像中搜索边缘像素的窗口或区域(1d和2d)。

图18示出了本发明的多视图系统的可能实施例:全光相机和/或常规相机的二维阵列。

图19a和19b,对于单个全光相机(图19a)以及对于由全光相机和常规相机组成的多视图系统(图19b),比较在测量位于特定深度的物体的深度时的概率分布。

图19a-19b图示了由常规和全光相机形成的可能设置如何捕获由放置在全光相机的微透镜阵列的共轭平面处的世界中的物体发射的光。

图20a-20b示出了水平偏移量h的计算处理。

图21图示了由两个全光相机和一个常规相机形成的多视图系统获得的扩展极线线。

图22a描绘了在使用单个全光相机的实施例中检测有效极线线的流程图。图22b图示了在使用全光相机和由至少一个附加相机捕获的附加信息的实施例中检测有效极线线的流程图。

图23a-23c示出了执行用于多视图系统的方法的电子移动设备的不同实施例。

具体实施方式

本发明涉及用于从光场生成深度图的设备和方法。可以通过多种设备捕获光场。为简单起见,首先只考虑全光相机。然后,当将该方法应用于由一个或多个全光相机和一个或多个常规相机组成的多视图系统时,描述该方法。不过,本文描述的方法可以应用于由任何其它设备(包括其它整体成像设备)捕获的光场。

常规相机仅捕获由传感器捕获的光线的二维空间信息。此外,还可以通过使用所谓的bayer构图的传感器或其它颜色传感器来捕获颜色信息。全光相机不仅捕获这个信息,而且还捕获光线的到达方向。通常,通过在主透镜和传感器之间放置微透镜阵列来制作全光相机。每个微透镜(lx,ly)在传感器上形成主光圈的小图像。这些小图像被称为微图像,使得任何微图像的每个像素(px,py)捕获来自主光圈的不同部分的光线,任何微透镜下方的每个微图像都是主透镜光圈的图像,并且每个微透镜中位置px1,py1或pxn,pyn中的每个像素对来自与微透镜位置无关的光圈(axn,ayn)的给定部分的光进行积分。穿过来自物体世界的不同位置的位置(axn,ayn)的光圈的光将命中不同的微透镜,但是将始终通过像素(pxn,pyn)进行积分。因而,微图像内的像素的坐标(px,py)确定捕获的光线到达给定微透镜的到达方向,并且(lx,ly)确定二维空间位置。所有这些信息被称为光场,并且可以用四维矩阵lf(px,py,lx,ly)或者,如果考虑颜色信息(c),那么五维矩阵lf(px,py,lx,ly,c)表示。下文仅考虑单色传感器。这些传感器捕获它们被设计用于的整个光谱的感测到的光强度。但是,本文描述的发明可以直接扩展到还捕获颜色信息的传感器,这对于本领域的专家来说是显而易见的。本发明对这类传感器的可能适应(adaptation)是将本文描述的方法分开应用于每个颜色通道,以便进一步增加深度估计的冗余度。

世界上距相机不同深度或距离处的物体在由全光相机的图像传感器捕获的图像上产生不同的照明模式。图1a描绘了全光相机100的示意性二维视图,其包括主透镜102、微透镜阵列104(由聚集成行和列的多个微透镜105形成)以及位于微透镜阵列104后面以感测强度、颜色和方向信息的图像传感器106。在图1a所示的示例中,全光相机100从放置在微透镜阵列104的共轭平面处的物点110捕获传入的光线108。图1b表示由全光相机100的图像传感器106捕获的光。网格的每个单元格表示由图像传感器106上方的每个微透镜105产生的微图像112。

当物点110的图像聚焦在微透镜阵列104上时,物点110通过全光相机100的主透镜102放置在mla的共轭平面上,并且仅在微透镜105上方的无穷小点被照亮(实际上,不是无穷小点而是衍射图案)。此外,由于微透镜105和图像传感器106之间的间隔近似为微透镜105的焦距,因此对应微图像112的所有像素收集完全相同的光强度,如图1b中所示。在本文示出的图像传感器平面上方的所有图像中,黑色用于表示光的缺乏并且像素越白,它们被照射越多,灰度级意味着部分照明。

另一方面,在物体世界中比微透镜阵列104的共轭平面更近的场景的物点110将照射更多的微透镜105,因为图像世界中的焦点将比微透镜阵列104更远(更朝着右侧),由传感器像素捕获的图案将不同。这个场景的图在图2a中示出,而图2b示出了在图像传感器106上方产生的对应图案。

相反,比微透镜阵列104的共轭平面更远的物点110也照射更多的微透镜105,但是现在焦点比微透镜阵列104的位置更靠近主透镜102,因此,由图像传感器106捕获的图案与前两种情况不同,如图3a和3b中所示。一些微图像112中的灰度级与部分照射的像素对应,而在白色像素中,像素的整个区域已被来自物体世界中的物点110的光命中。

由图像传感器106捕获的光场的这些各种图案可以通过获取光场的二维切片以极线图像表示。图4a-4c分别针对图3a-3c的每个场景描绘了通过重新组织由图像传感器106捕获的像素的水平极线图像400(上部行)和垂直极线图像402(下部行)的生成处理。图4a示出了在传感器上为位于微透镜阵列的共轭平面处的物体世界中的点创建的图案。图4b描绘了针对比微透镜阵列的共轭平面更靠近相机的物体世界中的点创建的图案。图4c表示为物体世界中比微透镜阵列的共轭平面更远离物体的点创建的图案。

通过固定光场的坐标(py,ly)形成水平极线图像400,而通过固定坐标(px,lx)形成垂直极线图像402。在图4a-4c中,水平极线图像400和垂直极线图像402分别是水平-中心极线图像和垂直-中心极线图像,因为已经对极线图像固定的像素py和px是它们相应的微透镜的中心-水平和中心-垂直像素。图4a-4c示出了垂直极线图像402(下行)和水平极线图像400(上行)如何直接从捕获的光场形成。

图4d更详细地示出了通过堆叠位于与同一行ly中定位的微透镜105(在图4d的示例中,ly=3,微透镜阵列104的水平-中心微透镜105)对应的微图像112的高度py=y的像素线(410、412、414、416、418)形成的水平极线图像400(图4a的上行的缩放视图)的生成处理。由于微图像112中的像素线(410、412、414、416、418)的所选高度py=y是中心高度,因此水平极线图像400被认为是水平-中心极线图像。未绘出形成图4d中的每条像素线(410、412、414、416、418)的各个像素(px=1,px=2,...)。相反,每个垂直极线图像(402)通过堆叠位于与同一列lx中定位的微透镜105对应的微图像112的确定宽度px=x的像素线而形成。

如在图4a-4d中可以看到的,在水平极线图像400和垂直极线图像402中,形成了极线线430(颜色为白色)。这条极线线430的所有被照射像素(白色像素)与物体世界中的相同物点110对应,如图1b-3b的示例中所示。极线线430是在极线图像内连接的、被检测为边缘的被照射像素(非黑色像素)的集合。此外,极线线430的斜率与在微透镜104上方和图像传感器106上方被照射的图案的类型以及与物体世界中物点110的对应深度直接相关。在图4d的示例中,极线线430的斜率是∞(相对于水平轴的角度=90°),其与使得物点110被放置在微透镜阵列104的共轭平面处的距离对应(图1a)。如果斜率为正(角度小于90°),那么物点110更靠近主透镜102(图2a),而如果斜率为负(角度高于90°),那么物点110远离主透镜102(图3a)。

因此,通过了解这个图案,有可能通过全光相机100反向跟踪由像素采样的图案,并获得产生这种图案的物点110的确切深度(dz)。深度和斜率之间的关系取决于用于捕获光场的全光相机100的物理维度和设计(已知)。

因而,极线线430的某个斜率明确地与真实三维世界场景的物点110的某个深度相关。

极线线的估计斜率包含某个物体的深度信息。斜率和深度是同一枚硬币的两面(有可能以确定的方式从斜率获得深度,反之亦然,转换中仅有由于传感器像素不是无穷小的事实引起的量化误差)。斜率本身足以获得关于场景的不同物体的相对深度的信息。这个相对信息(即,斜率)对于一些不必提供绝对深度信息的应用是有用的,诸如识别场景中位于相同深度(相同斜率)的不同物体。因此,在这种场景中,斜率的计算就足够了,并且可以省略斜率到深度的转换。

本发明的方法基于仅针对在微透镜阵列104上方的世界投影上存在边缘的区域(或者同样,物体世界上的边缘是什么)的深度的计算。在优选实施例中,对形成极线线430的被照射像素应用线性回归,以便获得某个斜率。当分析水平400或垂直402极线图像中的极线线430时,考虑沿着水平(px)或垂直(py)维度分布的所有全光视图,因为相同的物点110已被所有这些视图捕获。因此,线性回归技术通过利用沿着一维的冗余信息来减少统计噪声。

此外,该方法包括通过分析水平400和垂直402极线图像中的相同物点110并且考虑利用包含相同物点110的信息的各种极线图像(400、402)获得的深度值来进一步减少统计噪声的附加阶段(例如,很明显,如图1至4中所示,物体世界中的独特物点110在图像传感器106的若干点中产生若干印记,并且那些印记出现在若干垂直和若干水平极线图像)。

在实施例中,识别在水平400和垂直402极线图像中形成的所有极线线430,并计算对应的斜率。然后,通过考虑设备的物理维度来计算物点110的对应深度。

由于极线线由从若干视点捕获的相同物点110形成,因此仅计算每条极线线430的一个斜率和深度值。因此,由于以下两个因素,数据量急剧减少:

(i)与处理由图像传感器106捕获的所有点的其它方法相比,本方法仅处理感兴趣的点(即,被检测为边缘的物体世界的区域),因为它们创建了极线线(因为物体世界完全均匀没有边缘的区域不产生任何极线而是均匀的颜色)。

(ii)有可能每条极线线430仅存储一个斜率值,而不是形成极线线430的每个像素存储一个值。

因此,这个计算处理的输出可以仅是这些检测到的斜率的对应深度值。

根据实施例,通过分析水平400和垂直402极线图像以及极线线430获得的斜率被组合成一个四维矩阵以减少统计噪声,这是由于输出的可靠性通过附加测量的冗余性得以提高,因为在分析垂直402和水平400极线图像两者时考虑同一个传感器像素,因此可以由物体世界的相同点产生若干斜率值。

通过考虑全光相机100的物理参数,将计算出的斜率变换为对应的物体深度。在实施例中,在组合所有冗余斜率之后执行这个变换阶段,从而大大减少斜率到深度变换的数量。

在另一个实施例中,先前生成的深度/斜率的四维矩阵被组合成二维稀疏深度/斜率图(稀疏是因为它仅在物体世界中存在边缘的情况下提供读数),从而进一步减少统计噪声并因此提高了深度图的质量。

在又一个实施例中,为水平400和垂直402极线图像中的极线线430计算的深度/斜率被直接组合成二维稀疏深度/斜率图,因此执行单个组合阶段,这提高了计算效率。

在实施例中,通过应用图像填充技术来填充稀疏深度/斜率图,以获得每个像素(dx,dy)的深度/斜率值。

在又一个实施例中,由如图4a-4d所示,仅水平-中心极线图像(通过将坐标py设置为等于微图像112内的py维度中的中心像素而形成)和/或仅垂直-中心极线图像(通过使坐标px等于微图像中的px维度中的中心像素而形成)被考虑,其目的是减少要分析的极线图像的数量,从而以减少统计冗余为代价来提高性能。

本发明的方法可以在配备有全光相机的移动设备(例如智能电话、平板电脑或笔记本电脑)中实现。

图5示出了根据实施例的用于生成深度图的方法的流程图。为了生成深度图,该方法从由全光相机100捕获的光场501生成水平502和垂直503极线图像。对于生成的每个水平502和垂直503极线图像,识别在极线图像内的有效极线线(510、511)。然后,计算这些有效极线线(510、511)的斜率(512、513),并最终获得对应的深度值(514、515)。

图5描述了识别和处理有效极线线(510、511)的处理,该处理将捕获的光场501作为输入并处理所有水平502和垂直503极线图像(图5中的“epi”),执行以下步骤:

-对于每个水平极线图像502,针对(py,ly)值的固定对获得:

ο沿着lx维度应用一维(或更高)滤波器以便减少噪声,从而获得经滤波的水平极线图像504。

ο对于每个像素(px,lx),对沿着lx维度的像素的光强度或对比度在像素(px,lx)处计算二阶空间导数506。

ο通过分析具有子像素精度的极线,更具体而言,通过检测二阶空间导数的过零,来确定物体世界的边缘508。

ο搜索正确布置的每个过零,从而形成有效极线线510,丢弃无效极线线。

-对于每个垂直极线图像503,针对(px,lx)值的固定对获得:

ο沿着ly维度应用一维滤波器以减少噪声,从而获得经滤波的垂直极线图像505。

ο对于每个像素(py,ly),沿着ly维度计算二阶空间导数507。

ο通过分析具有子像素精度的极线,更具体而言,通过检测二阶空间导数的过零,来确定物体世界的边缘509。

ο搜索正确布置的每个过零,从而形成有效极线线511,丢弃无效极线线。

-对于在水平和垂直极线图像中找到的每条有效极线线(510、511),通过执行线性回归技术(但也可以使用任何其它拟合技术),子像素精度边缘被用于确定有效极线线(510、511)的斜率(512、513)。

-对于每个计算出的斜率,应用斜率到深度转换(514、515)。

-最后,生成深度的两个矩阵,用于水平极线图像502的水平深度矩阵516和用于垂直极线图像503的垂直深度矩阵517。

可以可选地丢弃降噪滤波器步骤以获得经滤波的水平504或垂直505极线图像,以提高处理速度。

在另一个实施例中,将两个斜率矩阵(从水平502和垂直503极线图像获得)组合成单个斜率矩阵,并最终获得单个深度矩阵。

根据实施例,二阶空间导数的过零由二阶导数的连续正-负或负-正值识别。此外,为了获得子像素精度,考虑这些点的二阶导数的量值以确定实际过零发生的位置。本领域专家将认识到,许多其它边缘检测方法(诸如canny边缘检测器操作器、曲线拟合方法或基于矩的方法)也可以用于此目的,并且本文描述的技术不限于过零方法。不过,在确定由检测到的边缘形成的线的斜率时,尽可能获得最大准确性是非常重要的,这就是为什么确定边缘的子像素精度非常重要的原因。所提出的方法的目标之一是计算高效(在选择要采用的边缘检测算法时应当考虑这个要求)。

物体世界的完全均匀(没有任何纹理或颜色对比度)的区域将不会产生任何极线线,因为所有像素将记录非常相同的光强度,而与光源到相机的距离无关。图1至4中所示的所有实施例与“暗”物体世界对应,其中仅有一个辐射点光源(物点110)在极线图像(400、402)内产生极线线430。

在实际情况下,通过对比度的改变或颜色的改变来创建极线线430,这就是为什么极线线430与物体世界中的边缘(颜色或对比度的改变)对应的原因。

因此,极线线430由物体边缘产生。极线图像的一阶导数(即,对于像素的强度)提供梯度(即,光强度或对比度改变的快速性)。二阶导数指示对比度改变最快的位置(与物体世界中的物体边缘对应)。由于二阶导数不一定在给定像素处具有过零(因为它取决于像素中的光强度值,例如图6a中的极线图像具有某个灰度级),因此利用子像素精确确定物体边缘。

正是由于全光相机100的本质和设计约束,在极线图像内形成有效极线线(510、511)的像素必须处于相邻位置(即,形成有效极线线的点必须连接)并且必须构成线,其所有点朝着与我们在极线线上自上而下或自下而上的相同方向前进。

图6a-6c描绘了在极线图像600中有效极线线610的示例(图6a)以及在相应极线图像(602、604)中的无效极线线(612、614)的若干示例(图6b和6c)。在优选实施例中,当在极线图像中寻找边缘以形成有效极线线时仅考虑相邻位置(从检测为边缘的中心像素开始,图6a-6c中的箭头表示为确定形成极线线的连接边缘像素所考虑的相邻位置)。因此,如图6a所示的极线线610被认为是有效的,而如图6b中所示的极性线612被检测为无效,因为极线图像602的顶部620处的像素和底部622处的像素未连接到极线线612的其余部分。

初看起来,如图6c中所示的极线线614可以被认为是有效的极线线。但是,由于全光相机100的性质,这种线不会在无瑕疵的设备中发生(顶部630处和底部632处的像素不遵循与极线线的其余部分相同的方向)。在一个实施例中,在计算极线线的斜率时可以省略这些线的这些极端像素(630、632),并且仍被认为是有效的极线线,因为外部像素可能来自主透镜的像差。以这种方式,我们折衷接收光功率和斜率辨别能力以减少由穿过光圈的最异常(aberrated)外围部分的光线形成的极端像素的像差。也可以将整条线标记为无效,以避免用无效的极线线执行计算。

启发式地,通过视觉检查线的形态,人类容易区分有效与无效的极线线。但是,在计算机上做出决定的算法并不简单。对于这个问题的专家来说,设想执行那个任务的若干不同算法并不困难,并且分析形态的任何算法的特定实现与本发明的内容无关。已经启发式定义了如何识别有效极线线,并且可以开发许多计算机解决方案来执行那个任务。

在实施例中,只有具有至少与极线图像的高度相同数量的被照射像素的极线线才被认为是有效线。这可以提高在(在前一阶段中光学地或计算地)实际校正像差的设备中的斜率计算的准确性。

主透镜102的最高像差是在透镜的极端处产生的(远离其中心的区域,其中近轴近似不再有效)。通过主透镜102的这些极端部分的所有光线比在其中心附近穿过透镜的光线更异常。在全光相机100中,这些光线被每个微图像112的极端像素或每个微透镜104的极端像素捕获,这些微透镜104也是在极线图像的顶部或底部附近的极端像素640(图6a)。因此,在实施例中,可以省略极线图像的极端像素640以减少光学像差的影响以及增加检测到的深度值的数量(通过忽略极端像素来增加有效极线线的数量)。因此,具有比像差图像的像素高度更少的像素的极线线可以被认为是有效的,例如图6b和6c,忽略它们的顶部(620、630)和底部(622、632)像素。

图6d-6g表示图6a的极线图像600中的极线线610的斜率的计算处理的示例。在这个示例中,已经考虑了像素的以下强度值“i”,如图6d的表642中所示:黑色像素的值为0,深灰色像素的值为20,浅灰色像素的值为60,并且白色像素的值为100。根据以下等式,图6e的表644表示沿着lx维度的强度i的像素i处的数值二阶导数:

其中i+1表示lx维度上的后续像素,并且i-1表示前一像素。连续像素之间的距离δlx总是相同(它被认为是δlx=1的值)。

图6f描绘了图646,其具有沿着lx维度(水平子轴)的每个像素px(水平轴)的二阶导数(垂直轴)的值,示出了由连续正-负或负-正值识别的二阶导数的过零650。如前面所解释的,通过检测二阶空间导数的过零650来确定物体世界中的物体边缘。

图6g在图6a的极线图像600中描绘了具有子像素精度的过零650。为了理解子像素精度,在微透镜lx=2(二阶导数值为100)和lx=3(二阶导数值为-200)之间针对像素px=1的过零已被放大。连接两个二阶导数值的线652与过零650中的零纵坐标相交,该过零650位于具有子像素精度的lx=2内。通过对检测到的过零650应用线性回归656并直接计算线性回归656的斜率来获得图6g的极线线610的斜率。

图6h-6j表示图6b的极线图像602中的极线线612的斜率的计算处理的另一个示例。像素的强度值i在图6h的表653中示出,而图6i的表654表示二阶导数值。计算过零650并在图6j中显示为点。通过对检测到的过零650应用线性回归658来计算极线线612的斜率。要注意的是,由于分别从像素620和622获得的过零650a和650b,图6j中的极线线612的线性回归658具有比图6g中的极线线610的线性回归656更高的斜率。

在实施例中,在线性回归中考虑所有过零。但是,在另一个实施例中,可以预先丢弃一些过零,并且在获得极线线的斜率的处理中不考虑这些过零。与用于应用线性回归技术的其余点相比具有高分散的点可以被识别并从这个处理中排除,以便获得更准确的斜率估计或消除异常值。例如,在图6j中,当计算线性回归658(获得具有类似于为图6g的极线线610获得的斜率的斜率的极线线)时,可以丢弃由顶部像素620引起的过零650a和由极线图像602的底部像素622引起的过零650b,因为顶部620和底部622像素未连接到引起极线线612的其余像素(在这种情况下,顶部620和底部622像素可以是由主透镜102的像差引起的)。

一旦计算出二阶导数644,就决定它们是定义有效还是无效极线线。对于这个处理,可以丢弃与一些像素对应的二阶导数的一些值,如前面所解释的。将线性回归应用于有效过零以计算其对应的斜率。相反,对于所有被识别为无效的极线线,不需要执行进一步的计算。

有可能使用启发式方法、形态分析、人工智能或任何其它方法预先从极线图像确定极线线是有效还是无效,并避免进一步计算,甚至不计算我们提前知道它们无效的极线线的斜率。

在实施例中,当将线性回归应用于检测到的有效极线线时,还可以计算误差估计。作为示例,极线线(即,过零)的点与最终估计的回归线之间的距离之和可以用作误差(即,计算出的极线线与用于计算这条极线线的点之间的距离的绝对值的相加)。但是,可以定义任何其它类型的误差计算。

在实施例中,最大误差阈值可以用于丢弃极线线(并且不在算法的其余部分中考虑)。为此,如果计算出的误差高于最大误差阈值,那么认为极线线无效,并且如果计算出的误差低于最大误差阈值,那么认为极线线有效。

水平极线图像400可以包含若干条极线线(至多nlx条极线线),例如在图5中的水平极线图像502的检测到的有效极线线510中所示。类似地,垂直极线图像可以包含若条极线线518(至多nly条极线线)。图7a示出了包括两条不同极线线(图7e中的710和712)的水平极线图像700的示例。图7a示出了与两条极线线都对应的过零650的线性回归(756、758)。这个示例表示比图4和6中呈现的更现实的场景,因为光图案现在由具有一定尺寸而不是无穷小的物体产生的。这就是为什么由图像传感器106记录的高强度(白色像素)占据图7a中的若干微透镜(lx)的原因。

在图7b的表720中示出了极线图像700的像素的强度值“i”,而图7c的表730表示二阶导数值。在实施例中,考虑极线图像的像素是否被标记或被检测为边缘像素731或者不包括找到具有二阶导数的负值的那些像素(px,lx)的方法,在这些像素的右侧或左侧具有带正二阶导数的像素(图7c的突出显示的像素)。作为替代,如图7d中所示(图7c的相同表,二阶导数值),对于具有二阶导数的正值的那些像素(px,lx),在这些像素的右侧或左侧具有带负二阶导数的像素(图7d的突出显示的像素),可以将极线图像的像素标记为边缘像素731。

一旦检测到边缘像素731,根据实施例,就在此参考图7e的示例解释识别在极线图像内的有效极线线的过程(与图7c的二阶导数值和边缘像素731对应):

-对于位于与中心像素(px=5)对应的中心行px(或对于垂直极线图像是py)中的水平极线图像中并标记为边缘像素731的每个1x像素(lx=1至lx=11)(或垂直极线图像中的ly)(边缘像素a和j):

1-在上部相邻位置(lx,px-1),(lx+1,px-1),(lx-1,px-1)中搜索标记为边缘像素731的像素:找到边缘像素b(对于从边缘像素a开始的第一次迭代)和边缘像素k(对于从边缘像素j开始的第一次迭代)。

2-如果找到边缘像素731,那么用新边缘像素731的坐标更新lx和px(在从边缘像素a开始的第一次迭代中,边缘像素b的坐标:lx=4,px=4;在从边缘像素j开始的第一次迭代中,边缘像素k的坐标:lx=8,px=4)并且重复步骤1(当从边缘像素a迭代时,找到接下来的边缘像素:边缘像素d、f和h;当从边缘像素j迭代时,边缘像素m和o,其中边缘像素q不被认为是极线线的一部分,因为它相对于边缘像素o位于lx+2中)。否则继续执行步骤3。

3-在下部相邻位置(lx,px+1),(lx+1,px+1),(lx-1,px+1)中搜索标记为边缘的像素:边缘像素c(当从边缘像素a开始迭代时)和边缘像素l(当从边缘像素j迭代时)。

4-如果找到边缘像素731,那么用新边缘像素731的坐标更新lx和px(在从边缘像素a开始的第一次迭代中,边缘像素c的坐标:lx=4,px=6;在从边缘像素j开始的第一次迭代中,边缘像素l的坐标:lx=8,px=6)并且重复步骤3(当从边缘像素a迭代时,找到接下来边缘像素:边缘像素e、g和i;当从边缘像素j迭代时,边缘像素n和p,其中边缘像素r不被认为是极线线的一部分,因为它相对于边缘像素p位于lx-2中)。否则继续下一步。

这个迭代处理的结果是第一极线线710(与中心边缘像素a对应)和第二极线线712(与中心边缘像素j对应)。第一极线线710由9个边缘像素(h,f,d,b,a,c,e,g,i)形成。第二极线线712由7个边缘像素(o,m,k,j,l,n,p)形成。

-取决于在所描述的迭代处理中针对中心行px中的某个lx检测到的边缘像素731的数量,可以认为极线线是有效的或无效的。在实施例中,检测到的边缘像素731的数量必须至少是极线图像的像素高度(即,图7e的示例中是9)。第一极线线710符合这个标准,因为它具有9个像素;但是,第二极线线712不符合这个标准,因为它仅由7个像素形成。在另一个实施例中,可以省略极端像素(px=1,px=9)以减小主透镜102的光学像差的影响(在那种情况下,检测到的边缘像素731的数量应当至少为极线图像的像素减去2(即,图7e中的7个像素))。在这最后的实施例中,图7e的两条极线线(710、712)都被认为是有效的。

-取决于在极线线内的每个边缘像素731的方向的一致性,可以认为极线线是有效的或无效的(指向极线图像中的相同方向)。例如,在第一极线线710中,从中心边缘点a开始,所有上部边缘像素(b,d,f,h)都位于位置lx-1或lx,而下部边缘像素(c,e,g,i)位于lx+1或lx位置,从而形成第一极线线710的一致方向。这同样适用于第二极线线712,从中心边缘点j开始,所有上部边缘像素(k,m,o)都位于位置lx-1或lx,而下部边缘像素(l,n,p)位于lx+1或lx位置。

在实施例中,必须遵守这两个标准(对于极线线检测到的边缘像素731的数量和方向的一致性),以使极线线被认为是有效的。

因此,并且根据图7e中描述的实施例,将极线线视为有效:

-首先,使用二阶导数值检测极线图像中与物体边缘对应的像素(即,边缘像素731)。

-然后,获得形成极线线的连接的边缘像素的集合。可以采用不同的算法,诸如先前在图7e中定义的迭代处理,从边缘像素a和j开始(箭头示出向上和向下迭代搜索方向,寻找相邻的边缘像素,以便获得连接的边缘像素的集合,从而形成极线)。

-基于一个或多个标准(例如,集合中的边缘像素的数量和集合中的边缘像素的相干方向),极线线被认为是有效的或无效的。

当检测到有效极线线时,计算这条线的斜率。然后可以将这个斜率值直接转换为深度值,因为斜率和距离值之间存在直接关系。一旦计算出被分析的极线线的斜率,根据实施例,该方法的输出就是稀疏二维深度图,其包含由全光相机捕获的场景的物体的边缘的深度值(dz)。深度图的坐标(dx,dy)指示对应物点的横向位置(即,物体世界的二维坐标),而深度值(dz)表示物体世界中对应坐标(dx,dy)的深度。图8图示了稀疏深度图的边缘,其示出了处于不同深度的三个物体(802、804、806),其中黑色表示没有指派深度值并且深度值越白,场景中的物体越远。

该方法可以包括附加的阶段,以考虑在前一阶段中获得的极线线的斜率而生成稀疏深度图。通过将现实世界中的物体的深度值(dz)指派给在(dx,dy)之前计算的边缘来获得稀疏深度图。

在实施例中,稀疏深度图生成的输入是两个矩阵(水平深度矩阵516,以及与计算的深度值(dz)和光场结构(px,py,lx,ly)中的对应位置相关的垂直深度矩阵517)。稀疏深度图生成的输入也可以是在先前步骤中获得的两个斜率矩阵(512、513)。在这种情况下,首先获得稀疏斜率图,并且仅将到深度的转换应用于这个二维斜率图,从而减少计算要求。

通过分析水平极线图像获得水平深度矩阵516,而从垂直极线图像获得垂直深度矩阵517。现有技术中这些矩阵(516、517)中的每一个的尺寸是npx×npy×nlx×nly,npx和npy是水平和垂直方向上每个微图像的像素数,而nlx和nly是水平和垂直微透镜的数量。

当执行极线线的线性回归时,有可能仅获得一个斜率值。因而,在实施例中,可以大大减小这个阶段的输入矩阵的尺寸,以仅存储由线性回归方法产生的每条极线线的深度/斜率值,使得水平深度矩阵的尺寸为npy·nly·nlx(水平极线图像可以包含多达nlx条极线线)并且垂直深度矩阵的尺寸为npx·nlx·nly(垂直极线图像可以包含多达nly条极线线)。

在实施例中,两个深度/斜率矩阵可以仅包括在水平-中心和垂直-中心极线图像(或任何其它极线图像)中分析的点,使得矩阵的尺寸对于它们两者都是nlx×nly。

这些矩阵的许多点可以没有计算出的深度值,因为在极线图像内的对应位置没有检测到有效极线线(没有检测到边缘)。

可以使用组合阶段将获得的每个深度值(dz)指派给物体世界的二维坐标(dx,dy),从而取决于计算出的点的斜率并考虑点的坐标(px,py,lx,ly)(即,传感器上的位置)获得深度图(dx,dy,dz)。如在图1至4中可以观察到的,物点110在传感器上产生不同的图案以及在极线线上产生不同的斜率。因此,通过计算斜率并知道传感器上的位置(px,py,lx,ly),有可能为每条检测到的极线线找到对应世界位置(dx,dy)。

对于同一对(dx,dy)可以获得若干不同的dz值,因为物体世界中的单个边缘可以引起受到略微不同的噪声、像差、遮挡或量化误差影响的若干条极线线,从而产生具有不同斜率以及因此不同深度的极线线。其中一些水平极线线和其中一些垂直极线线也可能产生略微不同的dz值。

在实施例中,所有冗余的深度值(dz的不同值)被组合成单个深度图,以便在生成二维深度图(每个dx,dy坐标的单个dz值)时减少统计噪声。

当获得深度图(dx,dy,dz)上的所有深度值(dz)时,可以获得相同位置(dx,dy)的若干深度值(dz)。因此,可以应用若干方法以便获得最终值。作为示例而非限制,算术平均值或中值或任何其它平均技术(具有或不具有加权思考)可以应用于针对相同深度图位置(dx,dy)获得的所有深度值(所有dz值)。

由于这种冗余性,统计噪声减少,从而提高了深度图的质量。此外,在至少一个实施例中,可以考虑为极线线计算的误差估计,以便选择深度图的某个位置(dx,dy)的最终深度值(dz);例如,通过选择投影到相同位置(dx,dy)的所有值中具有最低误差的值(例如,将极线线与引起那条极性线的像素之间的所有距离相加作为误差,或任何其它测量)。

获得的深度值越多,由于冗余性增加而产生的深度图越准确,从而最小化深度测量的误差。不过,可以减少算法所考虑的冗余性,从而也降低深度图的质量,以便降低计算要求和实现的复杂性。

在实施例中,通过采用包含估计的深度值的水平(或垂直)极线结构的某个全光视图直接生成二维稀疏深度图,即,通过取得将px和/或py设置为某些像素(通常是中心像素,因为它是较少受像差影响的视图)的所有点。在这种情况下,计算复杂性以更少冗余和可能更稀疏的深度图(仅用于每个微透镜的深度值)为代价而降低。

在实施例中,深度图的分辨率可以高于微透镜的总数,以便利用在过零边界检测阶段中获得的子像素准确度。

由于斜率值只能在识别出的极线图像边缘(在极线线处)获得,因此在前一阶段获得的稀疏深度图包含许多空位置(dx,dy),不仅对于大量像素,而且对于大量微透镜,其中现实世界的均匀性不会在极线图像上产生边缘。在实施例中,可以通过考虑相邻位置的深度值来获得所有这些空位置的对应深度值。获得密集深度图的这个过程可以被称为“深度图填充”并且从图像填充技术中的许多现有技术获利。

可以应用若干技术来填充稀疏深度图以便获得密集深度图。因而,这些方法中的一些仅仅是示例而非限制:区域增长、分离和合并和/或聚类技术,以及现有技术中已知的用于图像处理的一些其它方法。此外,可以采用正则化方法来填充深度图。

图9描绘了密集深度图的示例,其示出了处于不同深度的三个物体(902、904、906)。这个图9以灰度级示出了在图8中生成的稀疏深度图的密集深度图,其中黑色表示没有指派深度值并且深度值越白,场景中的物体越远。

根据优选实施例,本发明的方法在诸如智能电话、平板电脑或笔记本电脑之类的电子移动设备中执行。图10a、10b和10c图示了具有处理单元或处理装置1004的电子移动设备1000的不同实施例,处理单元或处理装置1004被配置为执行该方法以便从由全光相机100捕获的图像1002获得深度图。

为了在移动设备中实时地获得深度图,强烈建议以非常高效的方式实现本方法。为了实现这一点,可以利用当前多核心处理器1006(图10a)中包括的多个核心,甚至在来自移动设备的处理器中,从而以这样一种方式创建若干算法执行线程,使得它们中的每一个负责执行不同的操作。

在实施例中,创建两个cpu执行线程,使得第一cpu1008a(图10b中)为水平极线图像502执行所描述的步骤(参见图5),而第二cpu1008b负责对垂直极线图像503执行相同的操作。

可以使用更先进的计算技术以便提高计算效率。例如,可以使用图形处理单元(图10c中的gpu1010),甚至包括在移动设备中的图形处理单元,因为gpu包括能够同时执行操作的数百或数千个核心。因而,在实施例中,在gpu1010的不同核心中同时处理每个极线图像(垂直和水平),以进一步加速算法的执行。

如已经解释的,将在极线图像中发现的图案变换成深度信息的处理需要应用一些图像处理技术。极线图像包含极线线,它们是形成线的连接像素(与物体世界中的相同点对应的若干传感器像素)。这些极线线的斜率与在微透镜上方照射的图案的形状直接相关并且,更重要的是,与物体世界中那个点的对应深度直接相关。总结该处理,在极线图像中发现的图案,极线线,提供关于真实物体世界中物体的深度的信息。可以使用边缘检测算法来检测这些线,并且可以通过线性回归技术来测量它们的斜率。边缘检测和线性回归都可以以亚像素准确度执行。因此,在实施例中,边缘检测步骤包括分别针对极线图像的每个像素计算水平400和垂直402极线图像的lx和ly维度的二阶空间导数,并检测二阶空间导数的过零,以子像素准确度确定有效极线线的斜率,并对形成检测到的边缘的那些点的过零应用线拟合。在下文中,当在这种像素的区域内发现二阶空间导数的过零时,将像素视为边缘像素。

来自每条极线线的斜率给出值,该值按照所述方便地处理,提供产生这种图案的物体世界中的点的实际深度。这种用于深度估计的方法的主要优点之一是所有的计算都只能对传感器上检测到物体世界边缘的那些像素进行,这些像素代表图像的相对小的部分,从而避免对传感器的每个像素执行计算。

但是,由于光学和物理现象,在距离相机很远的地方,来自物体世界中任何一点的光线到达相机透镜,几乎它们全都彼此平行(无论物点的哪个场产生这些光线),因此需要相对大量的距离变化才能在全光相机中产生感测到的极线线斜率的微小变化,即,放置在不同距离处的两个不同物体可以产生几乎相同的斜率(因为传感器将需要无限的准确度来感测这种变化;换句话说,只有无穷小的像素和无噪声的世界才会产生斜率的改变)。在这些情况下,获得斜率的准确估计是极其重要的,否则估计的深度将与世界上物体的实际深度显著不同。要注意的是,在这个意义上,由于传感器在有限像素中离散化,因此在全光相机中测量斜率时总是会引入误差。

图11a-11c示出了当测量位于距相机一定距离处的物体的深度时由全光相机100捕获的水平极线图像400的三个不同示例。三个水平极线图像400之间的差异在于,即使在三种情况下距离完全相同,全光相机100的操作者的手由于振动引起的位置的略微不同的变化而造成三个略微不同的读数的事实。理想情况下,三条极线线应当完全相等。但是,由于系统固有的噪声,并且由于光照射略微不同的像素,因此极线线的过零也处于略微不同的位置,在应用线性回归后分别产生三个不同的斜率值1102、1104和1106。假设图11a和图11c是极端情况(在距相机一定距离处的特定物体的最大和最小可能斜率测量),可以在这两个极值之间定义不确定区域。这种区域的示例在图11d中示出,其中图11b的水平极线图像400用其对应的线性回归以及与极值对应的线性回归表示。在这个不确定性范围内只有一个确切的斜率值将产生完全正确的深度值。

由于缺乏精度,全光相机100中估计的深度的准确度随着深度增加而减小。图12示出了当测量位于相对短距离和相对大距离处的物体的距离时某个全光相机100的不确定性。图12示出了当计算位于距相机不同距离(两条点线垂直线1206和1208)的两个物体的深度时(水平轴随距离增加)利用全光相机100获得的深度测量值的统计分布1202和1204(或者垂直轴上的可能波动,源自相机的略微不同的读数,其中物体总是位于相同距离处)的两个示例。水平轴表示距全光相机100的深度或距离,而垂直轴是对于物体世界中始终处于相同距离处的点提供相同深度值的测量的数量。左边的曲线1202示出了当测量位于相对短距离处的物体时的分布,而图的右边的曲线1204表示用相同的相机获得的分布,但现在物体位于更大的距离处。如图12中所示,估计的深度的不确定性随着距离的增加而增加,也增加了估计的深度的分散。这就是为什么单个全光相机仅对于相对较短的距离提供良好的深度估计的原因。

根据本发明的另一个实施例,提供了用于获得深度图的方法和系统,该深度图增强由单个全光相机提供的容量,大大降低了由通过使用形成多视图系统的附加相机的信息提供的低斜率变化引入的大距离测量的不确定性。这个改进的实施例可以应用于多个且非常复杂的相机配置,包括阵列状配置中的大量相机,如稍后将描述的。通过将一个或多个常规相机1304与一个或多个全光相机100组合使用,在特定间隔d(当在移动设备中使用相机时通常为几厘米)时,减小了大距离测量的不确定性。

图13a-13e示出了在一定距离d处使用全光相机100和若干常规相机1304的可能的多视图系统配置的一些示例,但是全光相机100和每个常规相机1304之间的距离可以针对每个常规相机1304变化。例如,相机可以结合为诸如智能电话或平板电脑之类的移动设备1300的后置摄像头。图13a的实施例表示与分开距离d的常规相机1304水平对准的全光相机100。图13b示出了与常规相机1304水平对准并且还与第二常规相机1304垂直对准的全光相机100。图13c的实施例示出了与两个常规相机1304水平对准的全光相机100,一个在右侧,一个在左侧,以及垂直对准的第三常规相机1304。图13d的示例描绘了全光相机100,其在每个维度上与两个常规相机1304水平和垂直对准。最后,图13e示出了移动设备1300,其结合与两个常规相机1304水平对准的全光相机100,一个在右侧,一个在左侧。

但是,为了清楚和简单起见,但不作为限制,在本文描述了用于的实施例的改进方法,其中图像捕获系统或相机设置包括全光相机100和放置在水平轴上某个距离d处的常规相机1304,如图13a的示例中所描绘的。一旦解释了针对常规相机的方法,将该方法复制到使用若干常规相机1304的实施例就将是直接的。虽然也可以采用垂直极线图像402,但也将针对水平极线图像400解释改进的方法。

获得深度信息的改进方法基于先前针对全光相机100解释的深度估计过程,其中计算在极线图像中形成的极线线的斜率并且最终与物体世界中的某个深度相关。但是,改进的系统和方法的主要贡献之一是使用由一个或多个常规相机1304提供的2d图像作为全光相机100的附加视图。这个新的全光视图位于全光相机100的某个距离处。通过利用所需技术适当地调整它,2d图像可以用于显著扩展全光系统的基线。因而,全光相机100的极线线也可以用由常规相机1304提供的新全光视图来扩展。这个扩展程序用于在测量极线线的斜率时改善准确度。

常规相机1304的信息被用于以更高的准确度测量斜率。但是,为了使用这个附加信息,有必要找到常规相机1304的2d图像与全光相机100的全光视图之间的等效性。为了实现这一点,必须考虑相机之间的分离以及视场、像素尺寸、传感器尺寸、微透镜尺寸等的差异。该处理在图14中解释,其中位于距全光相机100和常规相机1304某个距离处的点照射常规相机1304的图像传感器1400中的边缘像素(cx,cy)1402和若干像素以及全光相机100的图像传感器106中的微图像112。这允许将附加线包括到由全光相机图像传感器106捕获的水平极线图像400,所述附加线是常规相机图像传感器1400的延长线1406。这条延长线1406被认为是全光相机100的附加全光视图。如图15中所示,延长线1406的位置由两个偏移量确定,垂直间隔b(与全光相机100和常规相机1304之间的距离d直接相关)和水平偏移量h(两个相机的共同场通过它匹配)。此外,还有必要获得与全光相机100的行(py,ly)(其形成极线图像400)对应的常规相机图像1412的行cy(与延长线1406对应)。所有这些等价性仅取决于两个相机的内在参数及其对准(相对位置)。获得它们的过程解释如下。

在刚刚描述的处理之后,从常规相机1304获得的延长线1406被用作在某个距离d处的全光相机100的额外视图,如图15中所解释的。因此,专门从全光相机100的极线图像400获得的极线线1404的线性回归1506扩展到延长线1406。围绕这个交点1504(其与常规相机传感器1400的像素(cx’,cy’)对应),区域1512被定义为搜索常规相机1304的对应边缘像素(cx,cy)1402。这个边缘像素(cx,cy)1402与世界中形成极线图像400的极线线1404的那些像素相同的物体边缘对应。在执行在窗口1512内的所有像素中找到边缘像素1402的处理对应算法的这个步骤,所述边缘像素1402将与和形成极线线1404的像素最相似的像素对应。

一旦找到对应的边缘像素1402,极线线1404的像素和边缘像素1402就形成扩展的极线线1408。扩展的极线线1408的像素用于执行新的线性回归过程,以获得线性回归1508和重新计算的斜率。为了计算新的斜率,可以使用以子像素精度计算与扩展的极线线1408对应的边缘的过程,例如通过沿着lx方向(或者垂直极线的方向)获得扩展的极线线1408的二阶导数的过零。在延长线1406的方向上常规相机的点的二阶导数也可以沿着cx方向应用。

由于常规相机提供的信息,与扩展的极线线1408相关联的线性回归1508的新斜率更接近于在无噪声世界中并利用无穷小像素获得的理想斜率1514,并且远好于仅使用全光相机100提供的像素的第一估计1506。

增强全光相机的深度估计准确度的整个过程可以概括为两个阶段,如图16a和16b的流程图中所示。扩展极线图像的过程仅针对水平极线图像进行描述;但是,将这种分析扩展到常规相机放置在垂直轴并且考虑垂直极线图像而不是水平极线图像的情况是直接的:

-与相机的校准对应的第一阶段1600:

ο确定垂直间隔b1602,其中必须在水平极线图像400中添加常规相机图像1412的延长线1406(垂直间隔b取决于全光相机100和常规相机1304之间的距离d)。

ο确定当它们被包括在全光相机100的水平极线图像400中时必须应用于常规相机1304的延长线1406的水平偏移量h1604(以匹配两个相机在水平方向上的共同场)。

ο考虑视场、像素的尺寸和两个相机的位置,获得全光相机的空间位置与常规相机的空间位置之间的关系1606。特别地,当应用于水平极线图像400时,根据垂直视场、像素的尺寸和两个相机的位置,获得全光相机100的空间维度ly与常规相机1304的空间维度cy之间的关系。

-与斜率计算对应的第二阶段1610,通过该第二阶段1610,斜率准确度增强。对于在全光相机100的水平极线图像400中找到的每条极线线1404:

ο在全光相机100的极线图像400中,仅考虑极线线1404的像素和对应的线性回归1506来计算斜率1612的第一估计。

ο获得1614常规相机图像1412的与全光相机100的水平极线图像400的垂直坐标(ly,py)对应的cy线(延长线1306)。这一行cy包含常规相机图像中与世界中全光相机图像中的极线线的边缘像素的相同物体对应的特定边缘像素1402。

ο通过根据先前在第一阶段1600中获得的水平偏移量h和垂直间隔b放置延长线1406来扩展1616极线图像400。

ο用延长线1406计算全光相机线性回归1506的交点1504,并获得常规相机图像的对应像素(cx’,cy’)。

ο定义1620窗口1512(其可以是一维窗口1512或二维窗口1512',分别如图17a和17b中所示;在图17b的示例中,2d窗口1512'由围绕(cx’,cy’)像素(交点1504)的三行像素形成:行c’y-1、行c’y和行c’y+1,其中将寻求常规相机的延长线1406的边缘像素1402。

ο应用1622对应方法以找到常规相机图像1412中的(cx,cy)边缘像素1402,其与由极线线1404表示的世界的物点最佳匹配。边缘像素1402是常规相机图像1412中与物体世界中由极线线1404表示的边缘点的相同点对应的点。

ο最后,将线性回归技术1624应用于由极线线1404的像素和边缘像素1402形成的扩展的极线线1408,并计算线性回归1508的斜率。为此,在实施例中,线性回归被应用于由水平极线图像400的极线线1404的边缘像素的lx方向(或者对于垂直极线图像是ly)的二阶导数的过零和沿着常规相机图像1412的cx方向(沿着线1406)在边缘像素1402周围的值的二阶导数的过零形成的点集。

将过程扩展到其它多视图相机设置是直接的,诸如图13b-13e或图18中所示的设置,其表示根据本发明的多视图系统的另一个可能的实施例,包括全光相机100和常规相机1304的二维阵列。作为示例,但不作为限制,如果全光相机被四个常规相机包围(一个在全光相机的顶部、一个在底部、一个在左侧、另一个在右侧,如图13d的示例中那样),由全光相机100提供的水平400和垂直402极线图像都可以在水平400和垂直402极线图像的顶部和底部添加水平延长线1406来被延长,所述延长线1406与由常规相机图像传感器1400捕获的图像1412的水平/垂直线(用于水平/垂直极线图像)对应;因此,通过具有四个而不是仅一个常规相机可以获得附加的冗余度,这通过增加测量的数量来减少噪声的影响。水平极线图像用延长线1406扩展(对于右侧的第一常规相机1304,水平线放置在底部适当距离处,如图14和15中所示,而对于左侧的第二常规相机1304,水平线放置在顶部适当距离处),由左右常规相机提供的线,而垂直极线图像从顶部和底部常规相机用垂直扩展线1406扩展(常规相机图像1412的垂直线位于适当距离处)。为了用多个常规相机1304适当地扩展极线图像(400、402),必须取决于每个附加的单独常规相机1304的位置和它们的物理参数来为它们计算垂直间隔b和水平偏移量h。

要注意的是,由于全光相机与常规相机之间的间隔远大于单个全光相机的基线,因此除了全光相机的极线线1404的边缘像素集合之外,在相对大的距离处还需要较小的深度变化以在由常规相机的边缘像素1402形成的新的扩展的极线线1408中产生显著的斜率改变。扩展的极线线1408的线性回归1508的新斜率可以用于确定物体世界中边缘点的高度准确的深度。这意味着当识别出常规相机的边缘像素1402时,来自全光相机的极线线1404的斜率的不确定性(或类似地由图11a-11d的示例中的斜率1104周围的斜率1102和1106定义的不确定性)急剧降低,从而生成扩展的极线线1408(和对应的线性回归1508),如图14和15中所示。图19a和19b中示出了这种不确定性的急剧降低。图19a描绘了仅使用全光相机为某个大深度获得的分布1902,而图19b示出了针对相同物体但是考虑全光相机以及常规相机信息获得的分布1904。要注意的是,当使用常规相机提供的信息时,分散(以及不确定性)如何更窄。

扩展极线图像的处理的第一阶段1600需要知道光学系统的一些物理参数,以便使用常规相机的2d图像作为附加的全光视图。首先,常规相机的延长线1406和极线图像400的中心(特别是中心水平线1516)之间的间隔b与常规相机1304和全光相机100之间的距离d直接相关(与两个相机之间的基线有关)。由于极线图像400中的每行1510与全光相机的不同全光视图对应并且视图沿着全光相机的孔径分布,因此获得常规相机图像1412的延长线1406的位置是直接的(仅是与全光相机100和常规相机1304之间的距离d对应的像素中的垂直间隔b处的附加视图,参见图15)。作为示例,并且在不限制本发明的一般性的情况下,全光相机和常规相机之间的典型间隔可以是大约5cm,全光视图的数量(等于每个微透镜106下方的像素的数量)通常是大约10x10并且微型相机的孔径200通常是大约1mm(因此,在这个示例中,全光视图之间的间距是1/10mm)。因此,水平极线图像400的中心水平线1516(全光相机的中心全光视图之间)与常规相机的延长线1406之间的间隔b是5cm基线与全光相机的全光视图之间的间距之间的分数(两个相机之间的间隔):

由于每个全光视图被示为极线图像中的行,因此在极线图像400的中心行(中心水平线1516)与常规相机延长线1406之间的垂直维度中的间隔b在示例中将是500像素(考虑到极线图像的连续行1510之间的间隔d是一个像素),如图15中所示。

在极线扩展过程的第一阶段1600中所需的另一个物理参数是水平偏移量h,其被计算以确保两个相机的场的公共部分匹配,以将线1406视为与全光视图对准的附加相机(上例中的10×10相机)。通常,常规相机的传感器由于它们之间的分离而接收与全光相机相比来自现实世界的略微不同部分的光。此外,两个相机的视场(fov)可以是不同的(即使在最常见的情况下,设计两个fov完全相同也是有意义的),这意味着捕获现实世界的不同部分。

常规相机图像传感器的水平偏移量h必须考虑所有这些因素以适当地估计扩展的极线线1408的线性回归1508的斜率。如在图15中可以观察到的,应用于延长线1406的不正确的水平偏移量h将产生对扩展的极线线1408的斜率的错误估计。在优选实施例中,水平偏移量h是通过实验计算的,如图20a中所描绘的。该实验包括将发光点2002对准地放置在全光相机100的光轴2004中。此外,这个发光点2002被放置在距全光相机100的主透镜102的距离2006处,其与全光相机100的微透镜阵列104的共轭平面对应。在那个具体场景中,所有全光视图捕获完全相同的图案,并且极线图像包含完全垂直的极线线430(如图4d和图20b中所描绘的)。

另一方面,由于常规相机1304与全光相机100分开一定距离d,因此点2002照亮与常规相机1304的传感器中心不同的某个像素2010(因为我们假设常规相机图像传感器1400与常规相机的光轴对准)。图20b示出了全光相机的水平极线图像400,其包含完全垂直的极线线430以及包含被照亮像素2010的常规相机图像传感器1400的像素2012的水平线(cx=1,...,cx=cx_max)。要注意的是,如果两个相机水平对准,那么这条线2012将与传感器的中心线对应,否则必须执行简单的搜索以在常规相机1304的图像传感器1400上找到像素2010。一旦定位了像素2010和水平线2012,就可以在图20b中直接计算为了获得与极线线430完全对准的像素2010而必须应用的水平偏移量h。

一旦确定了常规相机图像1400的线2012的垂直间隔b和水平偏移量h,全光相机的空间坐标(lx,ly)与常规相机的空间坐标(cx,cy)之间的关系就必须被发现,以便正确地扩展在极线图像(400、402)中发现的极线线。在水平极线图像400(py,ly)中,行表示由沿着px维度的不同全光视图捕获的相同空间位置ly(在图14的示例中,极线图像400的第一行与px=1对应,最后一行与px=9对应)。因此,为了适当地选择必须添加到水平极线图像400的常规相机图像1412的延长线1406,必须找到常规相机图像1400的ly和垂直维度cy之间的等效性。

在优选实施例中,这种关系可以通过使用类似于图20a中给出的设置来找到,而不是使用发光点2002,使用照亮常规相机1304的更多像素2010以及全光相机100的更多微透镜的更大图案。(cx,cy)和(lx,ly)之间的对应关系是通过识别在常规相机的传感器上产生的图案sc的尺寸(被照亮的像素的数量)和在全光相机的微透镜阵列上产生的图案sp的尺寸(已经被照亮的微透镜的数量)来获得的。通过比较这两个尺寸,获得两个空间坐标之间的关系,不过也必须考虑水平偏移量h。因而,当常规相机1304在全光相机100的水平轴上对准时,可以获得下一个关系:

cx=lx·scx/spx+hor_offset

cy=ly·scy/spy+ver_offset

其中spx和scx是分别在全光相机100和常规相机1304上产生的图案的x维度的尺寸。类似地,spy和scy是分别在全光相机100和常规相机1304上产生的图案的y维度的尺寸。参数hor_offset是先前获得的水平偏移量h。另一方面,如果全光相机100和常规相机1304在水平轴上完美对准,那么参数ver_offset为零。否则,必须使用与图20a和20b中解释的类似的实验(但对于垂直极线图像402),以便获得补偿垂直轴中的未对准的垂直偏移量。

在至少一个实施例中,在计算尺寸spx、scx、spy和scy时使用子像素精度来执行找到这些关系的过程,因为有可能使用图案的边缘的二阶导数的过零以便计算对应的尺寸。类似地,通过对准像素2010的过零与极线430,可以以子像素精度获得水平偏移量h。

在该处理中的这一点,图16a的图的第一阶段1600已经完成并且已经校准了不同的相机。然后起动第二阶段1610以便增强全光相机的斜率的准确度。

对于在极线图像中检测到的每条极线线1404,必须找到常规相机图像的延长线1406中的对应边缘像素1402。在至少一个实施例中,首先通过线性回归技术计算每条极线线1404的斜率,仅考虑在物体世界中被识别为边缘的点(使用在全光相机中以子像素精度计算的二阶导数的对应过零),从而获得线性回归线1506。之后,必须通过使用上面解释的原理从常规相机图像1412识别对应的延长线1406:ly和cy之间的关系及垂直偏移量,以及lx和cx之间的关系及水平偏移量h。

然后,考虑水平偏移量h和间隔b,扩展线1406并且计算与常规相机的延长线1306的交点1404。必须应用cx和lx之间的关系以获得对应的像素(cx’,xy’)。这个像素将被用于确定常规相机的延长线1306内我们将在其中寻找边缘像素1302的区域1412。这个点与物体世界中与全光极线1304的那些像素相同的边缘对应。

在至少一个实施例中,具有任意数量的像素的一维窗口1512被用作线1406内所考虑的区域,以寻找与物体世界中形成全光相机的极线线1404的像素的相同边缘对应的常规相机1304的边缘像素1402。

在至少一个实施例中,还有可能使用考虑到常规相机图像1412的线cy1406的相邻线的二维窗口1512'。在至少一个实施例中,根据仅用全光相机估计某个深度时获得的分散来选择这个窗口1512的宽度(和2d窗口1512'中的高度)(参见图11d中的点线1102和1106以及图12中的分散曲线1202和1204)。这个窗口可以是不对称的,即,在像素(cx’,xy’)左侧考虑的像素数量可以与在这种像素右侧考虑的像素数量不同。

一旦在像素1504周围定义了常规相机1304的图像1412内的一定数量的像素的1d窗口1512或2d窗口1512',就有必要识别若干可能候选中哪个像素是边缘像素1402,即,由物体世界中的相同光源生成的常规相机1304中的像素,其与最佳匹配形成极线线1404的边缘像素的像素(即,最相似的像素)对应。可以使用几种技术来匹配来自两个相机的图像(绝对差的sad-和、相关、熵以及偏差的任何其它定量测量)。可能的实施例使用极线线1404的中心像素作为在全光相机中进行比较的参考,因为产生所述中心像素的光线穿过全光相机100的主透镜102的中心部分并以低角度穿过对应的微透镜104,从而遭受最低的像差。

执行识别的稳健方式是匹配图案而不是比较单个像素,使得可以更容易地识别物体世界的特定部分。可以通过取得与物体世界的相邻部分对应的中心像素的相邻像素来形成这些图案。在全光相机中,物体世界的这些相邻部分由相邻的微透镜采样。作为示例,让我们假设在常规相机中找到的边缘像素1402与极线线1404的中心像素相同的世界物体对应,该中心像素位于微图像(lx,ly)的中心(px=5,py=5)。然后,为了正确地识别像素1402,通过考虑来自四个相邻微图像(lx+1,ly)、(lx-1,ly)、(lx,ly)、(lx,ly+1)、(lx,ly-1)的四个周围中心像素(px=5,py=5)来定义围绕极线线1404的这个中心像素匹配的图案。以这种方式,仅考虑来自五个全光中心视图的最小像差点(每个微图像中的px=5,py=5,每个微图像具有9×9像素)。一旦定义了全光相机100的参考图案,就在常规相机1304的图像传感器1412中定义相同数量像素的图案。特别地,为窗口1512内的延长线1406的每个像素定义一个图案。这个参考图案可以具有不同的尺寸或甚至是1d图案。

在实施例中,常规相机1304的像素远小于全光相机100的微透镜,使得单个微透镜集成来自物体世界的比来自常规相机1304的单个像素的光更大部分的光(参见图15)。在这种情况下,在常规相机的图像传感器上定义的图案必须包括更多像素,以便正确地识别相同的空间区域(因为在全光相机100的相对大尺寸的单个微透镜105上投射其光的世界的区域将其光投射到常规相机1304的更大数量的相对小像素上)。

如果两个相机中的传感器具有相同的尺寸(例如,两个10兆像素传感器),并且在上面的示例中每个微图像112的像素数量是例如10×10(100像素),那么我们将必须匹配全光相机中由这五个像素(参考像素(lx,ly)及其四个连接的邻居)形成的图案与常规相机中具有500个像素的图案(区域1512内每个像素一个图案)。常规相机的这些图案中的每一个由每个10×10像素的五个正方形形成。以这种方式,与仅仅比较1像素与常规相机中的10×10像素相比,解决方案的稳健性得到改善。但是,在上面的示例中,如果常规相机1304的图像传感器是40兆像素传感器,那么我们将必须匹配全光相机中的中心全光视图中的五个中心像素的图案与常规相机中2000像素的图案(常规相机图像传感器1412的20×20像素的五个正方形),从而在这个视图中改善深度结果的精度。

模式匹配算法(熵、相关、sad、......)将最终产生常规相机1304中最佳匹配极线线1404的中心像素的像素。例如,如果我们在之前的示例中使用sad(绝对差之和),那么全光相机中的参考图案的五个像素(i,j)的强度值被减去,例如,到在常规相机的每个候选像素周围定义的图案的500个像素(k,l)的强度值的平均值。针对窗口1512内的每个候选像素计算这些减法的所有绝对值的总和,从而获得常规相机的区域1512内的每个候选像素的唯一值。最终选择的像素是具有最小差异(最小sad值)的像素,并且被用于扩展全光相机的极线线。

因此,通过应用对应算法,找到常规相机的边缘像素1402。利用这个额外的像素(其作为额外的全光视图工作),通过将线性回归技术(或任何其它拟合方法)应用于由在常规相机图像1412中找到的边缘像素1402的二阶导数的过零和在全光相机100的极线图像400中找到的形成极线线1404的像素的二阶导数的过零形成的点集合来计算扩展的极线线1408的线性回归1508的斜率。要注意的是,可以使用子像素精度来计算在全光相机100的极线图像400中和在常规相机1304的图像1412中执行的线性回归和边缘检测。在至少一个实施例中,当计算扩展的极线线1408的线性回归时,在常规相机1304中检测到的边缘像素1402的二阶空间导数的过零可以被指派为比在全光相机100中检测到的极线线1404的边缘像素的二阶导数的过零更重要(例如,通过向边缘像素1402的过零指派比指派给极线线1404的其余过零点的权重更高的权重值)。

在至少一个实施例中,常规相机可以被设计为在光学上等效于全光视图。理想地,这将意味着水平偏移量h为零并且全光视图的空间坐标(lx,ly)直接等效于常规相机的空间坐标(cx,cy)。这个系统可以由全光相机和常规相机组成,常规相机在功能上等效于移位的全光视图,即,常规相机的像素数量等于全光相机的微透镜的数量并且常规相机的像素的尺寸等于全光相机的微透镜的尺寸。此外,全光相机100的主透镜102与微透镜阵列104之间的距离2016与主透镜2020与常规相机1304的图像传感器1400之间的距离2014相同,并且两个相机的两个焦距也是相同的。在这个实施例中,常规相机像素和全光相机微透镜之间的关系是直截了当的((lx,ly)和(cx,cy)之间的关系)并且仅两个相机之间的距离d以及由两个相机捕获的场的差异必须在扩展极线线之前考虑(常规相机可能与全光相机捕获场景的不同部分,因此必须计算水平偏移量h,例如,根据先前评论的图20a和20b的实验)。

本发明还改善了仅使用立体对或仅使用全光相机可以实现的重新聚焦性能。如前所述,为了能够估计任何成像系统中的深度的要求是必须聚焦场景的感兴趣区域,否则来自世界中不同空间位置的信息在传感器中混合。在全光相机中,场景被聚焦的深度范围有效地增加,因为孔径被划分为多个等效视图(具有非常小的孔径并因此具有大的景深)。

当我们想要将图像重新聚焦到某个深度平面时,这个要求也适用。重新聚焦处理基本上由取决于期望聚焦的深度平面适当地混合场景的不同捕获视图组成,以便组合视图,好像系统的传感器位于期望深度的共轭距离处一样(例如,在全光相机的特定情况下,微透镜阵列的虚拟膜可以向前和/或向后传播,以在微透镜阵列平面之前或之外获得“虚拟膜”。因此,视图越不同,就越可以实现重新聚焦效果。执行重新聚焦效果的另一种可能性是模糊(例如,使用高斯滤波器)场景中不位于与期望深度相同的深度平面的那些部分(实际上,这是通过模糊我们希望失去焦点的某些已知深度处的区域的散焦)。考虑到场景的已知深度图,这可以被直截了当地执行。

从上面可以清楚地看出,重新聚焦性能与深度估计的能力直接相关,使得估计距离越可靠,实现重聚焦效果越好。这个原理对于任何成像系统都有效。

图13a-13e中所示的实施例改善深度估计性能(大大降低了估计的深度值的不确定性),并且与单个全光相机或常规的多视图系统相比,它还允许估计更大的距离。而且,还增强了重新聚焦性能。

由于全光相机在距离相机相对小的距离处开始失去深度测量的精度,因此随着距离的增加,全光相机中的重新聚焦处理不再有效(对于用于智能电话的几毫米的微型相机,大约是一米,对于手持相机中实际更大的透镜也多不了多少)。由于全光相机100的相邻全光视图之间的相对小的基线(在前一示例中为十分之一毫米),超过一定距离,如果光线来自无限远距离,那么光线几乎与它们到达时平行地到达相机。因此,不可能区分两三米与无限距离的深度,并且重新聚焦超过两三米后变得不可能,其仅对于一米以下的距离工作良好。

从图13a开始描述的多视图系统有效地将全光相机100的良好性能组合用于小距离,并且还利用多个相机系统的较大基线用于远距离。为了最大化重新聚焦效果,有必要尽可能多地扩展多视图系统的景深。

为了实现这一点,在至少一个实施例中,常规相机1304超焦距被设计为在无限远和距离t(通常是超焦距的一半,例如一米)之间的一切都具有可接受的清晰度,并且互补地将全光相机100设计成使得它可以以可接受的不确定性测量从距离t到非常靠近相机的距离,甚至达到估计接近全光相机100的efl(有效焦距)的物体的距离的极限(几毫米)。

根据实施例,本发明允许获得场景的全对焦图像,即使对于物体世界中位于许多不同距离处的许多不同物体(从非常近的物体,逐渐增加物体的距离并最终到达一些物体的无限距离)。作为示例并且从不作为限制,实施例应用全光相机的标准重新聚焦方法以获得聚焦在位于相机和t之间的物体上的图像。最终的全对焦图像通过拍摄每个重新聚焦的图像的最清晰物体组成,而对于位于大于t的距离处的物体,我们简单地从常规相机1304的图像中取出它们,因为范围t和无限范围内的所有物体都对焦。

类似地,本发明还可以用于在拍摄照片之后将照片重新聚焦到某个深度平面,从而克服先前的系统,如单个全光相机或立体对。如前面所解释的,本发明通过使用多视图系统增加全光相机的距离辨别能力。这允许对位于高于t的距离处的物体以良好的准确度计算距离;因此,有可能创建艺术摄影效果,例如,在从a到b的距离之间聚焦小范围(由用户选择a和b以定义聚焦范围)。对于距离高于a且低于b的图像可以通过使全光相机100散焦(如果a和b小于t)或仅通过数字滤波(模糊滤波器)常规相机图像来生成,这在我们的多视图系统中是可能的,因为即使对于长距离我们也有可靠的深度图,并且我们可以选择在用户选择的距离范围内进行散焦。

所描述的所有应用也与超分辨率方法兼容,可以应用超分辨率方法来增加全光视图的分辨率。此外,通过适当的图像处理例程混合全光相机和常规相机的图像,有可能增加全光视图的低分辨率。

除了已经描述的优点之外,本发明还可以避免使用聚焦现代微米像素相机所需的马达(或mems)(因为聚焦是以数字方式执行的:对于常规相机的长距离和对于全光相机的小距离)、降低成本、提高可靠性并且,如果用户在拍摄照片后希望的话,提供全对焦图像。不过,这不是对本发明的限制,并且它也可以由具有可变焦点的相机使用。

本发明为短距离、长距离和立体对中的失焦区域提供更好的重新聚焦,以及允许更高质量3d图像的更好距离计算。

为了简单和清楚起见,仅考虑与全光相机水平对准的常规相机,已经解释了所公开的发明的描述以增强单个全光相机和立体对的深度估计的性能。不过,本领域的专家可以容易地将本发明扩展到由多个相机形成的多视图系统,其中至少一个是全光相机。另外,这些相机的空间分布可以是任意的(不需要任何昂贵的校准或对准过程),并且仅必须采取小的和直截了当的改变来适应本文提出的方法。

如前面所解释的,当常规相机与全光相机水平对准时,考虑到两个相机之间的分离以及两个传感器像素之间的等效性,可以如图14和15中所示的那样扩展水平极线图像。显然,当两个相机在垂直轴上对准时,可以将类似的处理应用于垂直极线图像。

在至少一个实施例中,前面描述的过程可以简单地扩展到全光相机与两个常规相机(一个在全光相机上面,另一个在全光相机下面)垂直对准并且它还与另两个常规相机(一个在全光相机右侧,另一个在全光相机左侧)水平对准的场景,如图13d的示例中那样,构成由总共五个相机(一个全光相机和围绕它的四个常规相机)形成的系统。在这个实施例中,使用前面描述的方法,水平400和垂直402极线图像用全光相机100的极线图像400上方的延长线1406和全光相机100的极线图像400下方的另一条延长线1406扩展。在垂直极线图像402中,延长线1406取自垂直对准的常规相机1304的图像1412,并且水平极线图像400用水平对准的常规相机1304的图像1412扩展。除了全光相机带来的非常靠近相机的物体的优点之外,这种配置的明显优势在于它改善了基线,对于更大距离增加了能力,同时避免由常规相机形成的多视图系统的繁重处理任务,以匹配来自大量图像(在示例性实施例中为五个)的图案,更容易搜索图案标识(图17a和17b中的开窗过程)。另一个简化的实施例可以使用全光相机、水平对准的常规相机和垂直对准的第二常规相机,如图13b中所绘出的,从而对于水平400和垂直402极线图像都增加基线。

本发明可以应用于更一般的场景。让我们假定空间位置的矩阵,使得在矩阵的每个位置都可以放置相机。图18示出了这个矩阵,标题符号(bullet)可以用全光相机、常规相机或根本没有相机来代替。本发明可以使用这个矩阵的任何可能的配置。对于该领域的专家来说显然的是,只需要为不同的常规相机和全光相机找到适当的偏移量和传感器像素之间的等效性,以便用提供更大基线的新的常规相机视图正确地扩展全光相机的极线图像。全光相机的极线图像可以在垂直方向上扩展,其中与常规相机一样多的线在这个方向上。例如,如果全光相机放置在水平对准的四个常规相机的左侧,那么全光相机的极线图像将用四条附加的线扩展,每条线与四个常规相机对应并且彼此分开一定距离,该距离取决于它们之间的物理间隔。通过使用这样的配置,增加了深度估计的冗余性以及基线,减少了对于大距离的深度测量的不确定性。

除此之外,还有可能用若干全光相机和/或若干常规相机来扩展全光相机的极线图像。在这些情况下,极线图像不仅用单行常规相机扩展,而且用不同全光相机的极线图像扩展,如图21的示例中所示,其中扩展的极线线1408由从图像2112a获得的水平极线图像400a、从图像1412获得的边缘像素1402以及从图像2112b获得的水平极线图像400b形成,图像2112a由来自第一全光相机100a的图像传感器106a捕获,图像1412由来自常规相机1304的图像传感器1400捕获,图像2112b由来自第二全光相机100b的图像传感器106b捕获,其中延长线1406相对于第一极线图像400a具有水平偏移量h1和垂直间隔b1,并且第二极线图像400b相对于第一极线图像400a具有水平偏移量h2和垂直间隔b2。然后计算扩展的极线线1408的线性回归1508及其对应的斜率,以估计高度准确的距离。这可以被用于通过具有若干第一斜率估计(利用全光相机之一的极线图像计算的那些)来进一步增加测量的准确度,以识别其余相机图像1412、2112b的执行对常规相机1402的对应边缘像素和附加全光相机的极线线1404b的中心像素的搜索的区域或窗口1512。在包括多于一个全光相机的多视图系统的实施例中,用其余全光相机图像(如图21中所示的图像2112b)的信息来扩展极线图像,并且必须执行识别某条极线线1404a与物体世界中其余全光相机100b的极线线1404b相同的边缘的第二阶段1610。在实施例中,这个阶段等效于先前当用常规相机的信息扩展极线图像但考虑附加全光相机100b的中心全光视图时所解释的。

在全光相机既不在水平轴也不在垂直轴上与常规相机对准的配置中,仍然有可能扩展全光相机的极线图像。简单地说,必须应用垂直和水平偏移量来校正这些不对准并正确匹配不同的图像。这是多视图文献中当必须纠正若干不对准的视图时众所周知的过程。

在至少一个实施例中,多视图系统由等距分布的m×n相机矩阵组成,使得对角线位置处的相机都是全光相机,如图18中所示。这个实施例具有的优点是使得能够使用常规相机的相同数量的延长线来扩展每个全光相机的垂直和水平极线图像。这确保了扩展所有全光相机的每个极线图像的水平轴和垂直轴的相同准确度。

在至少一个实施例中,相机可以不规则地分布在矩阵中。在至少一个实施例中,如果矩阵的维度足够高,那么可以分布相机,从而形成任何类型的图形(例如圆形)或任何其它分布。

本发明中提出的极线图像扩展过程用于在附加常规相机的帮助下增强全光相机的深度估计处理,并最终生成更准确的深度图。因此,基于极线图像的分析和用常规相机辅助的极线线的斜率的估计,本发明的方法可以应用于针对全光相机存在的任何深度图生成技术。

在不能作为限制的其它实施例中,解释了示例性深度图生成过程。该示例的配置由位于中心的全光相机、位于其右侧的常规相机以及全光相机上方的另一个常规相机组成。一旦全光相机已经捕获了光场并且常规相机捕获了对应的图像1412,就分析全光相机光场的极线图像。将极线图像扩展过程应用于水平和垂直极线图像,从而获得用于每条极线线的准确斜率估计。

重要的是要注意,在全光相机中,若干条极线线可以包含物体世界中同一点的信息。因此,必须组合与相同空间位置对应的所有斜率以利用冗余信息并进一步降低不确定性,从而获得每个空间位置(dx,dy)的最终唯一斜率。通过取决于它们在传感器中的位置(px,py,lx,ly)计算所有斜率值来获得这个斜率图,更具体地是通过将那些极线线(由物体世界中的同一点产生)的点投影到物体世界中的同一平面并为每个dx,dy对指派斜率值来计算物体世界中属于一条或多条极线线的点dx和dy。

取决于多视图系统的配置,可能不是所有全光相机的极线线都可以用常规相机的图像1412增强(例如,在系统包含与两个常规相机水平对准的全光相机的情况下,只有水平极线图像可以利用使用常规相机的图像1412作为附加视图)。因此,在至少一个实施例中,在组合处理期间,在已经扩展的极线图像中计算的斜率可以比仅从全光相机的极线图像获得的那些斜率具有更大的权重。即,当仅从全光相机获得斜率时,极线线被投影到某个斜率图位置(dx,dy)并且其准确度已通过使用来自常规相机的至少一个图像1412增强的斜率也投影到相同的(dx,dy)位置,用于这个位置的最终斜率值可以用加权或不加权的任何算术平均值计算。在应用加权平均的情况下,在至少一个实施例中,增强的斜率具有更大的权重,因为它们更准确。

一旦获得了斜率图,就应用斜率和深度之间的关系(这取决于全光相机的物理参数和配置)以获得深度图。由于极线线仅在物体世界的边缘处找到,因此这个深度图不完整,包含没有深度值的位置(dx,dy)(稀疏深度图)。为了获得密集的深度图,可以应用填充方法。在文献中可以找到不同的填充策略,诸如基于图像分割的策略(区域生长、拆分和合并和/或聚类技术)、来自三维散射点的表面的插值/近似或者通过多视图立体技术的三维重建,仅举几例。在实施例中,可以通过考虑相邻位置的深度值来获得所有这些空位置的对应深度值。

在实施例中,深度图的分辨率可以高于微透镜的总数,以便利用在边缘检测阶段中获得的子像素准确度。如上所述,不仅对于大量像素,而且对于其中现实世界的均匀性不会在极线图像上产生边缘的大量微透镜,斜率值只能在识别出的极线图像边缘处(在极线处)获得,而在前一阶段获得的稀疏深度图包含许多空位置(dx,dy)。因此,在这种更高分辨率的深度图中,将同样应用先前的填充技术以便获得密集的深度图。

上面的图5图示了用于确定深度图的流程图,其中检测有效的极线线(步骤510和511)。当仅考虑一个全光相机100时,有效的极线线是从所述全光相机100的极线图像(400、402)获得的极线线610(图6a),如图22a中所示。在这种情况下,检测有效极线线(510、511)的步骤包括检测2202来自全光相机100的极线线,并考虑或指派2204检测到的极线线作为有效的极线线(假设它们被认为是有效的)。

可替代地,如图22b的流程图中所示,图5的检测(510、511)有效极线线的步骤可以包括检测2212来自全光相机100的极线图像(400、402)的极线线1404以及用包括在由一个或多个附加图像获取设备捕获的图像中的附加信息来扩展2214这些极线线1404,以获得2216扩展的极线线1408并将这些扩展的极线线1408指派2218为有效的极线线。以这种方式,图14的扩展的极线线1408在图5的步骤510和511中被认为是有效的极线线,并且图5中确定(512、513)有效极线线的斜率的步骤将包括计算扩展的极线线1408的斜率。

如先前所解释的(例如,在图21的示例中),并且在图22b中所描绘的,用于扩展全光相机100的极线线的附加信息2222可以包括由一个或多个常规相机1304捕获的图像1412中包含的边缘像素1402。可替代地,附加信息2224可以包括由一个或多个附加的全光相机100b捕获的图像2112b的极线线1404b。附加信息2226还可以是来自一个或多个常规相机1304的边缘像素1402和来自一个或多个附加全光相机100b的极线线1404b的组合。

根据优选实施例,多视图系统的方法在电子移动设备(诸如智能电话、平板电脑或笔记本电脑)中执行。图23a、23b和23c图示了电子移动设备2300的不同实施例,其中处理单元或处理装置2306被配置为执行该方法,以便从由本发明的多视图系统2302捕获的图像2304获得斜率和/或深度图。

为了在移动设备中实时地获得深度图,强烈推荐以非常高效的方式实现本方法。为了实现这一点,有可能利用当前多核处理器2308(图23a)中包括的多个核,甚至在来自移动设备的处理器中,从而以这样一种方式创建若干算法执行线程,使得它们中的每一个负责执行不同的操作。在实施例中,创建两个cpu执行线程,使得第一cpu2310(在图23b中)执行所描述的用于水平极线图像的步骤,而第二cpu2310b负责对垂直极线图像执行相同的操作。可以使用更先进的计算技术以便增加计算效率。例如,可以使用图形处理单元(图23c中的gpu2312),甚至包括在移动设备中的图形处理单元,因为gpu包括能够同时执行操作的数百或数千个核。因而,在实施例中,每个极线图像(垂直和水平)被扩展(这是否有可能是取决于多视图系统)并且在gpu2312的不同核中同时处理以进一步加速算法的执行。

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