首页> 中国专利> 使用用于立体图像处理的飞行时间技术

使用用于立体图像处理的飞行时间技术

摘要

本公开描述被配置成使用飞行时间(“ToF”)技术来帮助立体图像处理的立体成像系统。所公开的一个过程使用ToF以通过缩小用于匹配的搜索区域来帮助识别立体图像对中的相同元素(例如,像素簇)。另一过程使用ToF来帮助识别其中存在少量纹理而难于找到匹配的立体图像对中的相同元素。

著录项

说明书

技术领域

本公开涉及图像处理,且特别是使用用于立体图像处理的飞行时间技术。

背景技术

图像可被认为是从三维(3D)场景到二维(2D)平面上的投影。虽然2D图像不提供深度信息,但是如果同一场景的两个图像可从不同的有利点得到,则3D点的位置(包括深度)可使用已知技术被找到。

立体图像(其包括来自两个有利点的两个图像)使观察者能够通过组合同一场景的两个偏移量图像(通常来自并排安装的两个照相机)来感知深度。一些立体方法将两个偏移量图像分别呈现到左眼和右眼。观察者的大脑然后组合来自右眼的图像和来自左眼的图像以给出观察者正在看三维图像的感知。

已开发了各种技术以从立体图像获得信息。例如,立体匹配是其中从稍微不同的有利点拍摄的场景的两个图像(立体图像对)被匹配以找到描绘同一场景元素的图像元素的差异(位置上的差别)的过程。差异提供关于场景元素距照相机的相对距离的信息。例如包括彼此分开已知距离(可被称为基线距离)的两个图像捕获设备的立体照相机可用于捕获立体图像对。

立体成像在计算机视觉领域有着许多应用。一个重要应用涉及针对图像中的各种表面/对象的距离识别。距离识别可在诸如机器人学、自主车辆建造、虚拟现实应用等的很多行业中是有用的。各种挑战存在于立体成像的这个领域中。例如,识别两个偏移量图像中的同一表面可能是非常耗费资源和时间的过程。在一些情况下,在其中两个图像中没有很多纹理来区分不同表面的情况下,其可能甚至更难。例如,如果特定图像的背景包括白色墙壁,则目前可用的算法也许不能匹配图像的特定部分。

发明内容

本公开描述在一些情况下处理上面提到的问题中的至少一些的立体成像系统。立体成像系统被配置成使用飞行时间(“ToF”)技术来帮助立体图像处理(例如,深度映射生成和/或差异映射生成)。在本公开中描述的一个过程使用ToF来帮助识别立体图像对中的相同元素(例如,像素簇)。在一些实现中,立体成像系统可包括耦合到第一成像传感器的第一透镜和耦合到第二成像传感器的第二透镜。每个透镜可操作为从不同的视点捕获图像。即,第一透镜/传感器组合从第一视点捕获场景,以及第二透镜/传感器组合从第二视点捕获场景。这两个透镜/传感器组合可被平行于彼此定位以形成立体照相机。立体成像系统还包括可用于测量到场景中的对象的估计距离的飞行时间(“ToF”)传感器。ToF传感器也可以是同一装置(例如,立体照相机)的部分。

在一些实现中,立体成像系统使用来自ToF传感器的信号的回波来为场景的多个部分确定估计距离。例如,立体成像系统可从ToF传感器接收数据,并基于数据来确定位于场景中的特定对象和针对对象中的每一个的估计距离。

立体成像系统从第一图像选择第一像素簇。例如,立体成像系统可使用诸如边缘检测的技术来选择像素簇(例如,彼此相邻的颜色相同或基本相同的像素)。在一些实现中,成像系统选择像素。并且基于所选的像素执行偏移距离的计算。

立体成像系统然后在多个估计距离中识别对应于第一像素簇的估计距离。例如,立体成像系统可将基于ToF计算的估计距离的位置映射到第一图像上。在一些实现中,立体成像系统如下映射估计距离。立体成像系统从ToF传感器接收对应于来自光源的一个或多个光发射产生的多个回波的数据和多个回波的位置数据,其中光发射被场景内的一个或多个对象反射。立体成像系统基于该数据来确定估计距离和每个估计距离的位置。例如,立体成像系统存储所捕获的数据的映射,该映射包括针对场景的各个部分的坐标和距离。立体成像系统将估计距离映射到第一图像内的坐标,并在存储器中存储包括具有对应坐标的估计距离的数据结构。例如,ToF映射内的每个点(例如,坐标集)可被映射到第一图像上的坐标上。即,从ToF传感器的左上角计算的特定的水平和垂直坐标可被映射到第一图像上的特定坐标。

在一些实现中,ToF传感器比与透镜耦合的图像传感器具有更小的分辨率。在那些实现中,第一图像内的多个坐标被映射到ToF传感器的一个坐标(例如,ToF传感器点)。

立体成像系统基于对应于第一像素簇的估计距离来计算第一图像中的第一像素簇和第二图像中的对应像素簇之间的偏移距离。例如,立体成像系统可使用焦距、(透镜之间的)基本距离和估计距离来计算偏移距离。即,立体成像系统可检索第一透镜的焦距(例如,从图像的元数据)以及第一透镜的中心和第二透镜的中心之间的距离(例如,从照相机本身或从图像的元数据)。立体成像系统检索数学公式以基于第一透镜的焦距、第一透镜的中心和第二透镜的中心之间的距离以及估计距离来计算偏移距离。在一些实现中,立体成像系统针对第一图像上的特定像素或点执行该计算。

当偏移距离被确定时,立体成像系统在第二图像内基于偏移距离定位对应像素簇。例如,如果计算确定像素簇偏移了十个像素,立体成像系统计算在第二图像上的对应于十个像素偏移量的位置并在偏移量周围的区域搜索匹配的像素簇。

在一些实现中,立体成像系统通过执行以下动作在估计距离中识别对应于第一像素簇的估计距离。立体成像系统检索第一图像内的坐标集,该坐标集对应于第一像素簇。例如,立体成像系统可检索像素簇内的像素的坐标。在一些实现中,立体成像系统检索多个像素的坐标。立体成像系统通过检索(例如,从数据结构或数据库)对应于坐标集的估计距离来识别对应于该坐标集的距离。在其中多个像素被使用的实现中,立体成像系统检索和估计针对每个像素的距离。像素的估计距离在值上应是相同或接近的。

在一些实现中,立体成像系统通过执行以下动作来基于偏移距离在第二图像内定位对应像素簇。立体成像系统检索与第一像素簇相关联的大小。例如,像素簇可以是五十个像素乘二十个像素。立体成像系统为第二图像产生基于第一像素簇的大小的搜索区域和偏移距离。例如,立体成像系统可产生大小比五十个像素乘二十个像素(例如,两千个像素)更大的搜索区域。立体成像系统在第二图像中识别对应于第一像素簇的第二像素簇。例如,立体成像系统可在所识别区域搜索这个簇。

在一些实现中,立体成像系统基于匹配的像素簇来产生深度映射或差异映射。为了产生深度映射,立体成像系统针对第一图像中的每个像素簇重复匹配过程。

在一些实现中,立体成像系统包括耦合到第一ToF传感器的第一照相机。第一照相机可操作为捕获第一图像。立体成像系统可包括耦合到第二ToF传感器的第二照相机。第二照相机可操作为捕获第二图像。例如,立体成像系统可包括用于捕获立体图像对的左照相机和右照相机。每个照相机可包括ToF传感器。立体成像系统还可包括耦合到第一照相机和第二照相机的控制电路。

在一些实现中,除了捕获立体图像(例如,左图像和右图像)以外,立体成像系统收集两个图像的距离测量值。即,立体成像系统使用来自第一ToF传感器的信号来为第一图像的部分确定第一估计距离集,并使用来自第二ToF传感器的信号来为第二图像的部分确定第二估计距离集。

在一些实现中,立体成像系统如下所述检测估计距离。立体成像系统可包括光源和存储器。耦合到每个照相机的相应ToF传感器(例如,第一ToF传感器和第二ToF传感器)被配置成估计距离测量值。因为这些ToF传感器可能没有与用于捕获左图像和右图像的ToF传感器自身一样高的分辨率,所以左图像和右图像的各个部分的估计距离被捕获。因此,立体成像系统将第一图像(以及在一些实现中的第二图像)划分成多个部分。这些部分可对应于ToF传感器可为其接收数据的多个像素。

立体成像系统可使用直接ToF技术或间接ToF技术来确定估计距离。利用直接ToF,立体成像系统利用第一ToF传感器接收从来自光源的一个或多个光发射产生的第一回波集。光发射被第一图像的多个部分内的一个或多个对象(或对象的部分)反射。立体成像系统基于回波集来为第一图像的部分确定第一估计距离集,并将第一估计距离集存储在存储器中。例如,图像可包括具有接近于照相机和还进一步远离照相机的部分的表。立体成像系统可使用ToF技术来在图像中确定表的特定部分的估计距离。

立体成像系统继续该过程并在立体图像的两个图像中识别对应像素簇。立体成像系统从第一图像选择第一像素簇。例如,立体成像系统可使用诸如边缘检测的技术来选择像素簇(例如,彼此相邻的颜色相同或基本相同的像素)。

当选择像素簇时,立体成像系统在第一估计距离集中识别对应于第一像素簇的估计距离。例如,立体成像系统可访问存储估计距离的数据结构并检索对应于像素簇的估计距离。立体成像系统使用所识别的估计距离来识别以近似相同的距离远离第二照相机的第二图像的部分。即,立体成像系统基于第二估计距离集来识别第二图像的对应于所识别的估计距离的部分的子集。

当利用与所选像素簇的估计距离基本相同的估计距离识别第二图像的部分时,立体成像系统需要尝试将所选像素簇匹配到位于这些部分中的像素,而不必尝试匹配整个图像的像素簇。即,立体成像系统在子集内识别与来自第一图像的第一像素簇匹配的来自第二图像的第二像素簇。例如,如果像素簇以距照相机的特定估计距离定位,当匹配像素簇时只有第二图像中的以基本相同的估计距离定位的像素簇被比较。

在一些实现中,立体成像系统通过遍历第二图像的估计距离进行重复以找到合适的部分来识别第二图像的对应于所识别的估计距离的部分的子集。即,立体成像系统检索对应于第一像素簇的估计距离,并将对应于第一像素簇的估计距离与在第二估计距离集中的估计距离进行比较。基于该比较,立体成像系统识别第二估计距离集中的与对应于第一像素簇的估计距离匹配的一个或多个估计距离,并检索与一个或多个估计距离相关联的一个或多个部分。例如,第二图像可针对各个部分包括五十个估计距离。立体成像系统可将每个估计距离与所选像素簇的估计距离进行比较,且只选择匹配的估计距离用于进一步处理(即,用于像素比较)。

在一些实现中,立体成像系统基于第一图像中的第一像素簇的位置和第二图像中的第二像素簇的位置来计算到由第一簇和第二簇表示的表面的距离。例如,立体成像系统可使用两个像素簇之间的差异值连同焦距、基线和像素大小一起来计算到表面的距离(即,对象的深度)。

在一些实现中,立体成像系统将已识别的像素簇及其估计距离存储在数据结构中。即,立体成像系统将距离和与来自第一图像的像素簇相关联的标识符存储在数据结构中,其中数据结构将距离映射到特定图像的部分。在一些实现中,立体成像系统存储深度映射和/或距离映射。即,立体成像系统识别第一图像内的像素簇的集合,在数据结构中存储距离集和与该距离集相关联的对应标识符,并基于数据结构中的数据来产生深度映射。

在一些实现中,当对两个图像存在非常少的纹理时,立体成像系统使用ToF来帮助像素簇在这两个图像之间的匹配。图像中纹理的缺乏引起其中一些成像系统不能使其中簇看起来相同的区域中的像素簇匹配的问题。在一些实现中,立体成像系统包括耦合到第一ToF传感器且可操作为捕获第一图像的第一照相机,和耦合到第二ToF传感器且可操作为捕获第二图像的第二照相机。例如,立体成像系统可包括用于捕获立体图像对的左照相机和右照相机。每个照相机可包括ToF传感器。立体成像系统还可包括耦合到第一照相机和第二照相机的控制电路。

在一些实现中,除了捕获立体图像(例如,左图像和右图像)以外,立体成像系统还为两个图像收集距离测量值。即,立体成像系统使用来自第一ToF传感器的信号来为第一图像的部分确定第一估计距离集,并使用来自第二ToF传感器的信号来为第二图像的部分确定第二估计距离集。

在一些实现中,立体成像系统如下所述检测估计距离。立体成像系统可包括光源和存储器。与每个照相机耦合的相应ToF传感器(例如,第一ToF传感器和第二ToF传感器)被配置成估计距离测量值。因为这些ToF传感器可能没有与用于捕获左图像和右图像的ToF传感器本身一样高的分辨率,所以左图像和右图像的各个部分的估计距离被捕获。因此,立体成像系统将第一图像(以及在一些实现中的第二图像)划分成部分。这些部分可对应于ToF传感器可为其接收数据的多个像素。

立体成像系统可使用直接ToF技术或间接ToF技术来确定估计距离。利用直接ToF,立体成像系统利用第一ToF传感器接收从来自光源的一个或多个光发射产生的第一回波集。光发射被第一图像的部分内的一个或多个对象(或对象的部分)反射。立体成像系统基于回波集来为第一图像的部分确定第一估计距离集,并将第一估计距离集存储在存储器中。例如,图像可包括具有接近于照相机和还进一步远离照相机的部分的表。立体成像系统可使用ToF技术来在图像中确定表的特定部分的估计距离。

立体成像系统继续该过程并在立体图像的两个图像中识别对应像素簇。立体成像系统从第一图像选择第一像素簇。例如,立体成像系统可使用诸如边缘检测的技术来选择像素簇(例如,彼此相邻颜色相同或基本相同的像素)。

立体成像系统然后在第二图像中搜索匹配所选的第一像素簇的像素。例如,立体成像系统可执行形状和颜色匹配以在第二图像中识别匹配的像素簇。在一些情况下,立体成像系统基于搜索来确定第一像素簇与第二图像中的多个像素簇匹配。例如,如果图像包括在白色墙壁前方的人,则立体成像系统可识别与第一图像中的所选像素簇匹配的第二图像中的白色墙壁上的各个像素簇。

响应于第一像素簇与第二图像中的多个像素簇匹配的确定,立体成像系统执行以下动作。立体成像系统从第一估计距离集选择对应于第一像素簇的估计距离。例如,立体成像系统可访问存储估计距离的数据结构,并检索对应于像素簇的估计距离。立体成像系统使用已识别的估计距离来识别第二图像的以近似相同的距离远离第二照相机的部分。即,立体成像系统基于第二估计距离集来识别第二图像的对应于所识别的估计距离的部分的子集。

立体成像系统在子集内识别与来自第一图像的第一像素簇匹配的来自第二图像的第二像素簇。例如,来自第一图像的所选像素簇可以以特定估计距离定位。如果来自第二图像的几个像素簇匹配所选像素簇,则基于估计距离,立体成像系统可以淘汰具有与来自第一图像的所选像素簇不匹配的估计距离的那些来自该第二图像的匹配的像素簇。

在一些实现中,立体成像系统通过在收集的估计距离上进行重复以找到匹配来识别第二图像的对应于所识别的估计距离的部分的子集。即,立体成像系统可检索对应于第一像素簇的估计距离,将对应于第一像素簇的估计距离与第二估计距离集中的估计距离进行比较,并在第二估计距离集中识别与对应于第一像素簇的估计距离匹配的一个或多个估计距离。

在一些实现中,立体成像系统基于第一图像中的第一像素簇的位置和第二图像中的第二像素簇的位置来计算到由第一簇和第二簇表示的表面的距离。例如,立体成像系统可使用在两个像素簇之间的差异值连同焦距、基线和像素大小一起来计算到表面的距离(即,对象的深度)。

在一些实现中,立体成像系统将所识别的像素簇及其估计距离存储在数据结构中。即,立体成像系统在数据结构中存储距离和与来自第一图像的像素簇相关联的标识符,其中数据结构将距离映射到特定图像的部分。在一些实现中,立体成像系统存储深度映射和/或距离映射。即,立体成像系统识别第一图像内的像素簇的集合,在数据结构中存储距离集和与该距离集相关联的对应标识符,并基于数据结构中的数据来产生深度映射。

在一些实现中,立体成像系统只使用一个ToF传感器,并使用已知的代数和几何技术来计算从每个照相机的视点到每个对象的距离。

在下面的附图和描述中详细阐述一个或多个实现。其他特征和优势通过描述、附图和权利要求将变得明显。

附图说明

图1是采用ToF传感以将第一图像中的像素簇与第二图像中的像素簇匹配的立体成像系统100的示例。

图2是图示采用ToF传感以将第一图像中的像素簇与第二图像中的像素簇匹配的框图。

图3是图示将ToF点映射到图像中的像素的动作的框图。

图4是图示识别具有与来自第一图像的所选像素簇基本相似的估计距离的第二图像中的像素簇的动作的框图。

图5图示被划分成与被映射到图像的像素的ToF点对应的部分的图像。

图6图示可包括前置立体成像系统的电子设备。

图7图示可包括后置立体成像系统的电子设备。

图8是采用ToF传感以使第一图像中的像素簇与第二图像中的像素簇匹配的立体成像系统100的另一示例。

图9是采用ToF传感以使第一图像中的像素簇与第二图像中的像素簇匹配的框图。

图10是图示使第一图像中的表面的像素簇与第二图像中的相同表面的像素簇匹配的动作的另一框图。

具体实施方式

如图1所示,装置110包括光电模块112,光电模块112包括两个图像捕获设备(例如,透镜/传感器组合)114A、114B和飞行时间(“ToF”)传感器116。装置110被布置成识别来自两个立体图像捕获设备的图像中的对应像素簇。这个识别可用来基于由照相机114A、114B捕获的场景122的图像利用ToF传感器116使用距离测量值以补充产生过程而产生差异映射和一些实现中的深度映射。在一些实现中,装置110可以例如在显示设备上显示差异映射。由差异映射表示的不同深度(或深度的范围)可以例如作为不同的颜色或使用其他视觉指示器被显示在计算设备的屏幕上。

通常,照相机114A、114B被布置成捕获场景122的立体图像数据(从稍微不同的有利点),并且ToF传感器116被用于计算来自场景122的估计距离数据。照相机114A和114B可以例如被实现为CMOS图像传感器或CCD图像传感器。

在一些实现中,模块110还可包括被布置成将照明的图案投影到场景122上的关联照明源118。当存在时,照明源118可包括例如可操作为将(例如,点或线的)图案投影到场景122中的对象上的红外(IR)投影机。照明源118可以例如被实现为发光二极管(LED)、红外(IR)LED、有机LED(OLED)、红外(IR)激光器或垂直腔面发射激光器(VCSEL)。

装置110还可包括存储器134,存储器134可存储由照相机114A、114B获取的图像和由ToF传感器116获取的数据。例如,如图1所示,存储器134可存储差异映射146和/或深度映射148。在一些实现中,差异映射和深度映射可被组合并存储在存储器134中。

装置110进一步可包括控制电路150,控制电路150可包括一个或多个处理器(例如,专用集成电路(ASIC)或现场可编程门阵列(FPGA))。图1将存储器134和控制电路150示为与模块112是分离的,然而在一些实现中,它们可被集成为模块112的部分。例如,这些部件连同图像捕获设备114A、114B和ToF传感器116一起可被实现为安装在模块112内的印刷电路板(PCB)上的一个或多个集成电路芯片。在一些实现中,照明源118(如果存在)可与容纳图像捕获设备114A、114B和Tof传感器116的模块112分离。此外,模块112还可包括其他处理和控制电路。这样的电路也可以例如在与图像捕获设备安装在同一PCB上的一个或多个集成电路芯片中实现。

图2是图示使第一图像中的表面的像素簇与第二图像中的相同表面的像素簇匹配的动作的框图。在框202中,控制电路(例如,控制电路150)使用来自ToF传感器的信号的回波来为场景的多个部分确定多个估计距离。控制电路可从存储器134检索ToF数据。ToF数据可能已经由ToF传感器116存储在存储器134中。

如上面所讨论的,ToF系统可被用于确定估计距离。通常,ToF系统计算到场景(例如,场景122)中的对象的距离。场景由照明源(例如,照明源118)照明。例如,照明源118可以是红外(IR)光、激光器或另一合适的照明源。一些光由场景中的对象反射。反射光由ToF传感器(例如,ToF传感器116)检测。

ToF传感器的每个像素能够接收光信号。控制电路被配置成调节照明的时序。距像素的距离信息结合由ToF传感器获得的环境的2-D图像被存储在直方图存储器中。来自存储器(例如,存储器134)的数据被用于计算到场景122中的对象的距离。

每个像素的距离信息R可以例如被计算为:

R=(c?ToF)/2,

其中c是光速且ToF是飞行时间,ToF为从照明源(例如,照明源118)发射光到由ToF传感器(例如,ToF传感器116)检测到反射光之间的消逝时间。

在一些示例中,ToF传感器的每个解调像素能够解调接收到的光信号。控制电路被配置成调节ToF传感器的时序。ToF传感器的所有像素的相位值对应于场景122中的对应点的距离信息R。距像素的距离信息结合由ToF传感器获得的环境的2-D图像被存储在存储器(例如,存储器134)中。来自存储器(例如,存储器134)的数据被用于计算到场景122中的对象的距离。

反射光的解调可以传递发射光和反射光之间的相位延迟(P)。相位延迟对应于距离R,如下:

R=(P?c)/(4?f_mod),

其中fmod是照明光的调制频率,其范围例如可以从几MHz到几GHz。

继续图2的动作,在框204中,控制电路(例如,控制电路150)从第一图像选择第一像素簇。例如,控制电路可在存储器(例如,存储器134)中存储在第一图像(例如,左图像和/或右图像)中检测到的多个像素簇。可使用边缘检测算法或其他合适的算法来识别这些像素簇。

在框206中,控制电路(例如,控制电路150)识别对应于第一像素簇的估计距离。例如,控制电路可存储关于第一像素簇在第一图像内的位置的信息。图5图示其中每个ToF点(由正方形表示)对应于图像(例如,第一图像)的多个像素且被映射到这些像素(或在一些实现中的立体点)的图像。在这些情况下,ToF传感器比图像捕获设备传感器具有更小的分辨率。所以,如图5所示,控制电路可创建将ToF传感器的点映射到对应立体图像捕获设备传感器点的图。在图5的示例中,每个ToF传感器点对应于立体图像捕获设备传感器的三十六个点。

在框208中,控制电路(例如,控制电路150)基于对应于第一像素簇的估计距离来计算第一图像中的第一像素簇与第二图像中的对应像素簇之间的偏移距离。例如,控制电路可检索第一透镜的焦距和第一透镜的中心与第二透镜的中心之间的距离,并基于第一透镜的焦距、第一透镜的中心与第二透镜的中心之间的距离和估计距离来计算偏移距离。

可基于下面的公式来计算偏移距离。

D=(b*f)/z

其中D是偏移距离,b是在第一透镜的中心与第二透镜的中心之间的距离,以及z是到由像素簇表示的对象的估计距离。

在框210中,控制电路(例如,控制电路150)在第二图像内基于偏移距离来定位对应像素簇。例如,控制电路可检索与第一像素簇相关联的大小。如果像素簇是规则形状(例如,正方形),则控制电路记录第一图像内的对应于该形状的坐标。然而,在很多情况下,像素簇将是不规则形状。在这些情况下,控制电路可存储包含不规则像素簇的规则形状(例如,像素簇可容纳到其中的正方形、矩形或圆形)的大小。

控制电路然后基于第一像素簇的大小和偏移距离针对第二图像产生搜索区域,并在第二图像中识别对应于第一像素簇的第二像素簇。例如,控制电路可在第二图像中选择对应于所产生的区域的坐标,但被偏移了偏移距离。在一些实现中,该区域可以比所产生的区域更大(例如,两倍、三倍或四倍于所产生的区域)。

在一些实现中,控制电路从ToF传感器接收与从来自光源的一个或多个光发射产生的多个回波对应的数据和多个回波的位置数据,并基于该数据来确定估计距离和每个估计距离的位置,其中光发射被场景内的一个或多个对象反射。例如,控制电路可处理ToF数据并将信号转换成相对于场景的坐标的估计距离和ToF点。

在一些实现中,控制电路将多个估计距离映射到第一图像内的坐标;并在存储器(例如,存储器134)中存储包括具有对应坐标的多个估计距离的数据结构。图3图示ToF点到像素集的映射过程。在框302中,控制电路(例如,控制电路150)检索与多个飞行时间(“ToF”)点相关联的数据,该数据包括针对每个ToF点的估计距离和位置。例如,控制电路可从存储器134检索数据。在304,控制电路(例如,控制电路150)选择多个ToF点的先前未选择的ToF点。例如,控制电路可以在每个ToF点上重复并选择先前未选择的ToF点用于处理。

在框306中,控制电路(例如,控制电路150)将ToF点的位置与将Tof点映射到第一图像的像素的数据结构内的多个位置进行比较。例如,控制电路可遍历数据结构进行重复,该数据结构列出所有ToF点和第一图像(或具有与第一成像传感器和/或第二成像传感器的分辨率相同的分辨率的任何图像)的对应像素。在框308中,控制电路(例如,控制电路150)确定所选的ToF点是否匹配来自数据结构的位置。例如,控制电路可识别匹配位置。如果控制电路确定没有匹配位置,则过程300移动到312。然而,如果控制电路确定ToF点与位置匹配,过程300移动到框310。

在框310中,控制电路(例如,控制电路150)将与所选的ToF点相关联的估计距离和第一图像的与匹配的位置相关联的多个像素一起存储。例如,控制电路可以产生针对第一图像的数据结构,并将与所选的ToF点相关联的估计距离与用于匹配的像素的对应像素标识符一起存储,其中每个像素可以与ToF点相关联。

在框312中,控制电路(例如,控制电路150)确定是否有更多未选择的ToF点。如果控制电路确定有更多未选择的ToF点,过程300移动到框304,其中另一先前未选择的ToF点被选择。如果控制电路确定没有更多未选择的ToF点,则过程300移动到312并结束。

在一些实现中,控制电路通过检索第一图像内的坐标集并在数据结构中识别对应于该坐标集的距离来在多个估计距离中识别对应于第一像素簇的估计距离,该坐标集对应于第一像素簇。例如,控制电路可检索第一像素簇内的像素的水平坐标和垂直坐标。控制电路可遍历数据结构进行重复以找到与坐标相关联的ToF点且然后找到与ToF点相关联的估计距离。在一些实现中,控制电路基于数据结构中的数据来产生深度映射。

参考图6,在一些示例中,采用诸如关于图1所述的那些ToF传感器和照相机的立体成像系统650可安装在诸如移动电话、智能电话、平板电脑或可穿戴计算设备的移动计算设备652前侧上或嵌入到其前侧内。移动设备652的前侧是设备的包括屏幕655的侧面。上面所述的深度映射和/或差异映射可被显示在屏幕655上。立体成像系统650可以是包括照明设备654(其可包括照明源118和ToF传感器116)和成像部件的前侧成像系统,成像部件包括照相机656和照相机658。立体成像系统650可用于捕获包括靠着白色墙壁的人的场景660的图像。前侧距离测量系统650可用于需要具有准确的差异映射或深度映射的各种应用(例如,摄影、虚拟现实、增强现实和其他合适的应用)。

如图7所示,在一些示例中,采用诸如关于图1所述的那些ToF传感器的立体成像系统770可安装在移动计算设备772的后侧上。后侧是设备的与前侧相对的侧面(例如,不包括显示屏的侧面)。立体成像系统770可以是包括照明设备774(其可包括照明源118和ToF传感器116)和成像部件的后侧成像系统,成像部件包括照相机776和照相机778。后侧立体成像系统可用于需要具有准确的差异映射或深度映射的各种应用(例如,摄影、虚拟现实、增强现实和其他合适的应用)。

如图8所示,装置810包括光电模块812,光电模块812包括两个(或更多个)深度通道,每个深度通道具有相应的图像捕获设备(例如,照相机)814A、814B和飞行时间(“ToF”)传感器816。装置810被布置成基于由照相机814A、814B捕获的场景822的图像利用ToF传感器816使用距离测量值以补充产生过程来产生差异映射和在一些实现中的深度映射。在一些实现中,装置810可例如在显示设备上显示差异映射。由差异映射表示的不同深度(或深度的范围)可以例如作为不同的颜色或使用其他视觉指示器被显示在计算设备的屏幕上。

通常,照相机814A、814B被布置成(从稍微不同的有利点)捕获场景822的立体图像数据,并且ToF传感器816被布置成从场景822捕获相应的估计距离数据。照相机814A和814B可以例如被实现为CMOS图像传感器或CCD图像传感器。

在一些实现中,模块810还可以包括布置成将照明的图案投影到场景822上的关联照明源818。当存在时,照明源818可包括例如可操作为将(例如,点或线的)图案投影到场景822中的对象上的红外(IR)投影机。照明源818可以例如被实现为发光二极管(LED)、红外(IR)LED、有机LED(OLED)、红外(IR)激光器或垂直腔面发射激光器(VCSEL)。

装置810还可包括存储器834,存储器834可存储由照相机814A、814B获取的图像和由ToF传感器816获取的数据。例如,如图8所示,存储器834可存储差异映射846和/或深度映射148。在一些实现中,差异映射和深度映射可被组合并存储在存储器834中。

装置810可进一步包括控制电路850,控制电路850可包括一个或多个处理器(例如,专用集成电路(ASIC)或现场可编程门阵列(FPGA))。图8将存储器834和控制电路150图示为与模块812分离,然而在一些实现中,它们可以被集成为模块812的部分。例如,这些部件连同图像捕获设备814A、814B和ToF传感器816可被实现为安装在模块812内的印刷电路板(PCB)上的一个或多个集成电路芯片。在一些实现中,照明源818(如果存在)可与容纳图像捕获设备814A、814B和ToF传感器816的模块812分离。进一步,模块812还可包括其他处理和控制电路。这样的电路也可以例如在与图像捕获设备安装在同一PCB上的一个或多个集成电路芯片中实现。

如在本申请中所述的,控制电路可以被配置成执行在本公开中所述的动作。图9是示出使第一图像中的表面的像素簇与第二图像中的相同表面的像素簇匹配的动作的框图。在框902中,控制电路(例如,控制电路150或控制电路850)使用来自第一ToF传感器(例如,如图8所示的耦合到第一立体图像捕获设备的ToF传感器816)的信号来为第一图像的部分确定第一估计距离集,并使用来自第二ToF传感器(例如如图8所示的与第二立体图像捕获设备耦合的ToF传感器816)的信号来为第二图像的部分确定第二估计距离集。在一些实施方式中,如在图1中描述的,可以只利用一个ToF传感器并校准以与第一照相机和第二照相机两者一起工作。

在一些实现中,第一立体图像捕获设备和第二立体图像捕获设备被校准为处于相同高度,并被同时启动以捕获第一图像、第二图像和ToF图像。如果立体图像捕获设备不处于相同高度,图像可被校正以针对差别来调整。

继续图9的动作,在框904中,控制电路(例如,控制电路150)从第一图像选择第一像素簇。例如,控制电路可在存储器(例如,存储器134或存储器834)中存储在第一图像(例如,左图像和/或右图像)中检测到的多个像素簇。可使用边缘检测算法或其他合适的算法来识别这些像素簇。

在框906中,控制电路(例如,控制电路150或控制电路850)在第一估计距离集中识别对应于第一像素簇的估计距离。例如,控制电路可存储关于第一像素簇在第一图像内的位置的信息。图5示出被划分成对应于ToF传感器的像素的部分并被映射到与立体图像捕获设备(例如,图1或图8的第一立体捕获设备或第二立体捕获设备)相关联的点的图像。在一些情况下,ToF传感器比图像捕获设备传感器具有更小的分辨率。所以,如图5所示,控制电路可创建将ToF传感器的点映射到对应图像捕获设备传感器点的映射。在图5的示例中,每个ToF传感器点对应于立体图像捕获设备传感器的三十六个点。

在框908中,控制电路(例如,控制电路150或控制电路850)基于第二估计距离集来识别第二图像的对应于所识别的估计距离的部分的子集。在一些实现中,控制电路遍历如由ToF传感器捕获的第二图像的每个部分进行重复以识别匹配的距离。如图5所示,ToF点可表示场景的特定区域并存储在数据结构中。在数据结构中的每个条目可包括在如由立体图像捕获设备捕获的图像内的对应点(或像素)。

图4是图示识别第二图像中的具有与来自第一图像的所选像素簇基本相似的估计距离的像素簇的动作的框图。在框402中,控制电路(例如,控制电路150或控制电路850)检索在第一图像中识别的第一像素簇集和第一对应估计距离集以及与第二图像的部分对应的第二估计距离集。例如,如上面所讨论的,可在数据结构中存储针对每个像素簇的标识符。针对像素簇的估计距离可与标识符一起被存储。可通过将像素簇映射到ToF传感器的一个或多个点上导出估计距离。例如,光502可与两个或更多个ToF点相关联,ToF点转而又与立体图像捕获设备的36或更多个点相关联。控制电路可检索该信息。

在框404中,控制电路(例如,控制电路150或控制电路850)从第一像素簇集选择先前未选择的像素簇。例如,控制电路可遍历第一图像的每个像素簇进行重复以匹配第二图像中的像素簇。

在框406中,控制电路(例如,控制电路150或控制电路850)将与所选像素簇相关联的估计距离和与部分相关联的估计距离集中的每一个估计距离进行比较。例如,控制电路可执行将所选像素簇的估计距离与与来自第二图像的像素簇集相关联的距离进行比较的循环。

在框408中,控制电路(例如,控制电路150或控制电路850)确定与所选像素簇相关联的估计距离是否与与部分相关联的估计距离集中的任一匹配。如果没有估计距离匹配,控制电路确定像素簇要么不存在、要么在过程中已发生错误。此时,过程400移动到框412并继续。在一些实现中,不匹配的像素簇可被存储在存储器中,并且其他技术可用来确定像素簇是否能够被匹配或不存在于这对图像中的第二图像中。

如果与所选像素簇相关联的估计距离与与部分相关联的估计距离集中的一个或多个估计距离匹配,过程400移动到框410。即,如果与像素簇相关联的距离与第二图像中的至少一个距离匹配,过程400继续。在框410中,控制电路(例如,控制电路150或控制电路850)将具有匹配的估计距离的一个或多个部分添加到部分集以针对所选像素簇执行像素簇匹配。例如,用于匹配的距离的ToF点可被存储在存储器(例如,存储器134或存储器834)中。

在框412中,控制电路(例如,控制电路150)确定所有像素簇是否先前已被选择(即,遍历重复)。如果所有像素以前已被选择,过程400在框414中结束。如果更多未选择的像素簇存在,过程400移动到其中另一先前未选择的像素簇被选择用于处理的框404。

继续图9,在框910中,控制电路(例如,控制电路150)在子集内识别与来自第一图像的第一像素簇匹配的来自第二图像的第二像素簇。控制电路可使用已知的技术(例如,图像匹配或像素匹配)来识别第二图像中的匹配像素簇。

在一些实现中,当确定第一估计距离集时,控制电路将第一图像划分成部分。例如,如图5所示,第一图像可被划分成与对应ToF点相关联的部分。控制电路用第一ToF传感器接收从来自光源的一个或多个光发射产生的第一回波集,其中光发射被第一图像的部分内的一个或多个对象反射。基于回波,控制电路可构建每个像素/ToF点的直方图,并基于回波集确定针对第一图像的部分的第一估计距离集。例如,由ToF传感器的每个像素收集的光可被转换成估计距离并存储在存储器(例如存储器134)中而创建第一估计距离集。

在一些实现中,控制电路基于第一图像中的第一像素簇的位置和第二图像中的第二像素簇的位置来计算到由第一簇和第二簇表示的表面的距离。控制电路可使用已知的技术来执行计算。

在一些实现中,控制电路进一步被配置成在数据结构中存储距离和与来自第一图像的像素簇相关联的标识符,其中数据结构将距离映射到特定图像的部分。如图5所示,控制电路可将ToF传感器的点或像素映射到立体捕获设备的点或像素。在一些实现中,控制电路基于数据结构中的数据来产生深度映射。

图10是图示使第一图像中的表面的像素簇与第二图像中的相同表面的像素簇匹配的动作的另一框图。这个过程尤其适用于其中由于立体图像对中的纹理的缺乏将对匹配像素簇造成挑战的情况。在框1002中,控制电路(例如,控制电路150或控制电路850)使用来自第一ToF传感器(例如,如图8所示的与第一立体图像捕获设备耦合的ToF传感器816)的信号来为第一图像的部分确定第一估计距离集,并使用来自第二ToF传感器(例如,如图8所示的与第二立体图像捕获设备耦合的ToF传感器816)的信号来为第二图像的部分确定第二估计距离集。在一些实现中,可以只使用一个ToF传感器(如图1所示)。ToF传感器可被校准以产生针对场景的ToF点。

在框1004中,控制电路(例如,控制电路150或控制电路850)从第一图像选择第一像素簇。例如,控制电路可在存储器(例如,存储器134或存储器834)中存储在第一图像(例如,左图像和/或右图像)中检测到的多个像素簇。可使用边缘检测算法或其他合适的算法来识别这些像素簇。

在框1006中,控制电路(例如,控制电路150或控制电路850)在第二图像中搜索与所选的第一像素簇匹配的像素。例如,控制电路可使用像素匹配或图像匹配技术来识别匹配的像素簇。在框1008中,控制电路(例如,控制电路150或控制电路850)确定第一像素簇是否与第二图像中的多个像素簇匹配。如果控制电路确定第一像素簇不与第二图像中的多个像素簇匹配,则过程1000移动到其中控制电路(例如,在存储器134或存储器834中)存储来自第二图像的匹配的像素簇的1010。此时,过程1000结束。

如果控制电路确定第一像素簇与第二图像中的多个像素簇匹配,过程1000移动到其中控制电路从第一估计距离集选择对应于第一像素簇的估计距离的框1012。例如,控制电路可从存储在存储器(例如,存储器134或存储器834)中的数据结构检索估计距离。估计距离可存储在表中且可以在该表中与第一像素簇相关联。

在框1014中,控制电路(例如,控制电路150或控制电路850)基于第二估计距离集来识别第二图像的部分的对应于所识别的估计距离的子集。例如,控制电路可遍历每个估计距离(例如,如在图5的ToF点中所示的)进行重复,并识别与所选像素簇的估计距离匹配的子集。

在框1016中,控制电路在子集内识别与来自第一图像的第一像素簇匹配的来自第二图像的第二像素簇。例如,控制电路可将对应于第二图像的部分的子集的像素簇与基于搜索而找到的像素簇进行比较,并确定像素簇中的哪些匹配。

在一些实现中,直接ToF系统可被用于确定多个估计距离,如在图10中讨论的。在一些实现中,控制电路通过采取下面的动作来识别第二图像的部分的对应于所识别的估计距离的子集。控制电路检索对应于第一像素簇的估计距离。例如,控制电路可从存储器(例如,存储器134或存储器834)检索第一像素簇(包括第一像素簇的标识符和估计距离数据)。控制电路还可检索第二估计距离集中的估计距离(即,距第二图像的距离)。例如,如图5所示,控制电路可检索ToF点。ToF点可以是针对特定ToF像素的距离。

控制电路可将对应于第一像素簇的估计距离与第二估计距离集中的估计距离进行比较,并识别第二组估计距离中与对应于第一像素簇的估计距离匹配的一个或多个估计距离。例如,控制电路可比较距离,并可确定在特定百分比内(例如,在5%、10%或另一合适的百分比内)的距离是匹配的距离。

在一些实现中,控制电路基于第一图像中的第一像素簇的位置和第二图像中的第二像素簇的位置来计算到由第一簇和第二簇表示的表面的距离。已知的技术可用于这个计算。

在一些实现中,控制电路在数据结构中存储距离和与来自数据结构中的第一图像的像素相关联的标识符,其中数据结构将距离映射到特定图像的部分。可基于图5的ToF点来产生数据结构。例如,每个ToF点可以是数据结构中的具有所捕获的图像上的对应点/像素的节点。基于第一图像中的像素簇集与第二图像中的匹配的像素簇的映射,控制电路产生深度映射和/或差异映射。

本公开中描述的主题和功能操作的各个方面,包括本说明书中公开的结构及其结构等价物或它们中的一个或多个的组合,可在数字电子电路中或在软件、固件或硬件中实现。此外,在本公开中描述的主题的方面可被实现为一个或多个计算机程序产品,即,被编码在计算机可读介质上的用于由数据处理装置执行或控制数据处理装置的操作的计算机程序指令的一个或多个模块。计算机可读介质可以是机器可读存储设备、机器可读存储基板、存储器设备、影响机器可读传播信号的物质的组合物或它们中的一个或多个的组合。装置可包括除了硬件以外的为考虑中的计算机程序创建执行环境的代码,例如,构成处理器固件的代码。

计算机程序(也被认为是程序、软件、软件应用、脚本或代码)可以以任何形式的编程语言——包括编译或解释语言——编写,且可以以任何形式——包括作为独立程序或作为模块、部件、子例程或适合于在计算环境中使用的其他单元——部署。计算机程序不必要对应于文件系统中的文件。程序可被存储在保存其他程序或数据(例如,在标记语言文档中存储的一个或多个脚本)的文件的一部分中、在专用于考虑中的程序的单个文件中或在多个协调文件(例如,存储一个或多个模块、子程序或代码的部分的文件)中。计算机程序可被部署为在一个计算机上或在位于一个地点处或分布在多个地点并通过通信互联的多个计算机上被执行。

在本说明书中描述的过程和逻辑流可由一个或多个可编程处理器执行,可编程处理器通过对输入数据操作并产生输出来执行一个或多个计算机程序以执行功能。过程和逻辑流也可由的专用逻辑电路执行,以及装置也可被实现为诸如FPGA(现场可编程门阵列)或ASIC(专用集成电路)的专用逻辑电路。

适合于执行计算机程序的处理器通过示例的方式包括通用和专用微处理器两者以及任何种类的数字计算机中的任何一个或多个处理器。通常,处理器用于从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是用于执行指令的处理器和用于存储指令和数据的一个或多个存储器设备。适合于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器设备,通过示例的方式包括:诸如EPROM、EEPROM和闪存设备的半导体存储器设备;诸如内部硬盘或可移动盘的磁盘;磁光盘;以及CD ROM和DVD-ROM盘。处理器和存储器可以辅以专用逻辑电路或被合并在专用逻辑电路中。

虽然本说明书包含很多细节,但这些不应被解释为对本发明的范围或所主张的范围的限制,而是作为特定于本发明的特定实施方式的特征的描述。本说明书中在单独的实施方式的上下文中描述的某些特征也可组合实现在单个实施方式中。相反,在单个实施方式的上下文中描述的各个特征也可单独地或以任何合适的子组合实现在多个实施方式中。而且,虽然特征在上面可以被描述为以组合的形式且甚至以最初主张的那样动作,但是来自所主张的组合的一个或多个特征可在一些情况下从组合被删去,并且所主张的组合可以指向子组合或子组合的变形。

类似地,虽然操作在附图中以特定的顺序描绘,但这不应被理解为要求这样的操作以特定的顺序或以连续的顺序被执行,或所有所示的操作都被执行,以实现需要的结果。在某些情况下,多任务和并行处理可以是有利的。

描述了多个实施方式。虽然如此,要理解的是,在不偏离本发明的精神和范围的情况下可做出各种修改。例如,上面描述的一些步骤可以是与顺序无关的,且进而可以以与上面所述的顺序不同的顺序来执行。

因此,其他实现在权利要求的范围内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号