接收的结构光的多尺度处理的制作方法

文档序号:22123330发布日期:2020-09-04 16:53阅读:164来源:国知局
接收的结构光的多尺度处理的制作方法

本公开总体上涉及结构光系统和方法,并且具体涉及对来自结构光系统的捕获图像的多尺度处理。



背景技术:

设备可以使用不同的深度探测系统确定其周围的深度或距离。在确定对象离设备的深度或距离时,设备可以发送一个或多个无线信号并测量无线信号的反射。然后设备可以使用该反射生成示出或以其他方式指示对象离设备的深度的深度图。一种深度探测系统是结构光系统。

对于结构光系统,具有已知点图案(patternofpoint)的无线信号被发送。无线信号可以是电磁频谱的近红外(near-infrared,nir)信号或其他频率信号。无线信号的反射可以被捕获,并且被捕获的信号可以在确定对象离设备的深度时被处理。对传统结构光系统的图案分辨率和信号发送功率的约束限制了所确定的深度的精度。



技术实现要素:

提供本发明内容是为了以简化的形式介绍所选择的构思,这些构思将在下面的详细描述中进一步描述。本发明内容不旨在识别所要求保护的主题的关键特征或必要特征,也不旨在限制所要求保护的主题的范围。

本公开的各方面涉及处理来自结构光系统的捕获图像。示例设备可以包括一个或多个处理器和存储器。存储器可以包括指令,当该指令由一个或多个处理器执行时,使得该设备从结构光接收器接收场景的捕获图像,以第一尺度分析捕获图像的一个或多个第一部分,并且以比第一尺度更细的第二尺度分析捕获图像的一个或多个第二部分。对一个或多个第二部分的分析可以基于对一个或多个第一部分的分析。该指令还可以使得设备从码字分布中为一个或多个第二部分中的每一个确定码字,并且基于一个或多个所确定的码字确定场景中的一个或多个深度。

在另一示例中,公开了一种方法。该示例方法包括从结构光接收器接收场景的捕获图像,以第一尺度分析捕获图像的一个或多个第一部分,以及以比第一尺度更细的第二尺度分析捕获图像的一个或多个第二部分。对一个或多个第二部分的分析可以基于对一个或多个第一部分的分析。该方法还可以包括从码字分布中为一个或多个第二部分中的每一个确定码字,并且基于一个或多个所确定的码字确定场景中的一个或多个深度。

在另一示例中,公开了一种非暂时性计算机可读介质。非暂时性计算机可读介质可以存储指令,当该指令由一个或多个处理器执行时,使得设备从结构化光接收器接收场景的捕获图像,以第一尺度分析接收到的测量的一个或多个第一部分,并且以比第一尺度更细的第二尺度分析接收到的测量的一个或多个第二部分。对一个或多个第二部分的分析可以基于对一个或多个第一部分的分析。该指令还可以使得设备从码字分布中为一个或多个第二部分中的每一个确定码字,并且基于一个或多个所确定的码字确定场景中的一个或多个深度。

在另一示例中,公开了一种设备。该设备包括用于从结构光接收器接收场景的捕获图像的装置,用于以第一尺度分析捕获图像的一个或多个第一部分的装置,以及用于以比第一尺度更细的第二尺度分析捕获图像的一个或多个第二部分的装置。对一个或多个第二部分的分析可以基于对一个或多个第一部分的分析。该设备还可以包括用于从码字分布中为一个或多个第二部分中的每一个确定码字的装置,以及用于基于一个或多个所确定的码字确定场景中的一个或多个深度的装置。

附图说明

在附图的各图中,通过示例而非限制的方式示出了本公开的各方面,其中相同的附图标记指代相同的元件。

图1是对示例结构光系统的描绘。

图2是包括结构光系统的示例设备的框图。

图3是对结构光系统的示例码字分布的部分的描绘。

图4是对码字分布中的lxl图块的示例码字的描绘。

图5是对来自结构光接收器的示例捕获图像的描绘,以及对使用4x4码字从捕获图像生成的第一深度图和使用7x7码字从捕获图像生成的第二深度图的描绘。

图6是描绘以不同尺度分析捕获图像的示例操作的说明性流程图。

图7a是描绘以逐渐减小的尺度分析捕获图像的示例操作的说明性流程图。

图7b是描绘以逐渐减小的尺度分析捕获图像的另一示例操作的说明性流程图。

图8是对示例尺度n的码字中的四个尺度n-1的码字的描绘。

图9是对来自接收器的示例捕获图像的描绘,该图像包括码字分布、来自场景的环境光以及噪声或干扰。

图10是对尺度n+1的父码字的四个尺度n的子码字的描绘。

图11是对与四个相邻比特对应并且包括相同子码字的四个重叠码字的描绘。

图12是对多尺度匹配滤波过程的示例实施方式的伪代码的描绘,多尺度匹配滤波过程可用于从码字分布中为捕获图像的每个比特确定码字的置信度。

图13是对根据图5中描绘的捕获图像的示例深度图的描绘,其中使用多尺度匹配滤波来识别用于生成深度图的码字,多尺度匹配滤波对于不同尺度具有修改的顺序的最大后验估计。

具体实施方式

本公开的各方面涉及用于确定深度的结构光系统。结构光系统可以以点的预定义分布(或聚焦光的另一合适的形状)来发射光。光点可以投射到场景上,并且光点的反射可以被结构光系统接收。可以通过比较接收光的图案和发射光的图案来确定场景中对象的深度。在比较图案时,可以在接收光中识别发射光的预定义分布的一部分。

发射光的预定义分布可以被分成被称为码字的多个部分。码字可以更大(包括更多的光点)以增加在接收光的图案中识别码字的概率。可替换地,码字可以更少(包括更少的光点)以增加可以为场景确定的深度的数量(增加分辨率),但是与更大的码字相比,在接收光的图案中识别码字的概率可能降低。更小的码字被认为是比更大的码字(较粗的码字)更细的码字。当来自结构光系统的接收光被用来与发射光的预定义分布进行比较时,尝试在接收光中识别特定尺寸或尺度的码字,使得在通过使用更粗尺度的码字来可靠地识别码字或通过使用更细尺度的码字来增加分辨率之间做出权衡。因此,需要对结构光系统进行改进,以增加分辨率,同时仍然可靠地识别码字。

在以下描述中,阐述了许多具体细节,诸如具体组件、电路和过程的示例,以提供对本公开的透彻理解。本文使用的术语“耦接”意味着直接连接或通过一个或多个中间组件或电路连接。此外,在以下描述中,为了解释的目的,阐述了特定的术语以提供对本公开的透彻理解。然而,对于本领域的技术人员来说显而易见的是,实践本文公开的教导可能不需要这些具体细节。在其他情况下,以框图形式示出熟知的电路和设备以避免模糊本公开的教导。以下详细描述的一些部分是按照程序、逻辑块、过程和对计算机存储器内的数据比特进行的操作的其他符号表示来呈现的。在本公开中,程序、逻辑块、过程等被认为是导致期望结果的步骤或指令的自洽序列。这些步骤需要对物理量进行物理操纵。通常,尽管不是必须的,这些量采取能够在计算机系统中存储、传送、组合、比较和以其他方式操纵的电信号或磁信号的形式。

然而,应该记住的是,所有这些和类似的术语都与适当的物理量相关联,并且仅仅是应用于这些量的方便标签。除非特别声明,否则从以下讨论中显而易见的是,在整个本申请中,利用诸如“访问”、“接收”、“发送”、“使用”、“选择”、“确定”、“归一化”、“乘以”、“平均”、“监控”、“比较”、“应用”、“更新”、“测量”、“推导”、“建立”的术语的讨论是指计算机系统或类似的电子计算设备的动作和过程,其将表示为计算机系统的寄存器和存储器内的物理(电子)量的数据操纵并转换成类似地表示为计算机系统存储器或寄存器或其他这种信息存储、传输或显示设备中的物理量的其他数据。

在附图中,单个框可以描述为执行一个或多个功能;然而,在实际实践中,由该框执行的功能可以在单个组件中执行或跨多个组件执行,和/或可以使用硬件、使用软件或使用硬件和软件的组合来执行。为了清楚地说明硬件和软件的这种可互换性,各种说明性的组件、框、模块、电路和步骤在下文中按照它们的功能进行了总体描述。这种功能是实施为硬件还是软件取决于特定应用和施加在整个系统上的设计约束。技术人员可以针对每个特定应用以不同的方式实施所描述的功能,但是这种实施方式决策不应被解释为导致脱离本公开的范围。此外,示例设备可以包括除了所示组件之外的组件,包括熟知的组件,诸如处理器、存储器等。

本公开的各方面可应用于耦接到一个或多个结构光系统的任何合适的电子设备(诸如安全系统、智能手机、平板电脑、膝上型计算机、车辆、无人驾驶飞机或其他设备)。虽然下面针对具有或耦接到一个结构光系统的设备进行了描述,但是本公开的各方面可应用于具有任意数量的结构光系统的设备(包括没有结构光系统,其中结构光信息被提供给设备进行处理),并且因此不限于特定设备。

术语“设备”不限于一个或特定数量的物理对象(诸如一个智能手机、一个控制器、一个处理系统等)。如本文所使用的,设备可以是具有一个或多个部分的任何电子设备,其可以实施本公开的至少一些部分。虽然以下描述和示例使用术语“设备”来描述本公开的各个方面,但是术语“设备”不限于特定的配置、类型或对象数量。此外,术语“系统”不限于多个组件或特定实施例。例如,系统可以实施在一个或多个印刷电路板或其他基板上,并且可以具有可移动或静态组件。虽然以下描述和示例使用术语“系统”来描述本公开的各方面,但是术语“系统”不限于特定的配置、类型或对象数量。

图1是对示例结构光系统100的描绘。结构光系统100可用于生成场景106的深度图(未示出)。结构光系统100可以至少包括投射器或发射器102和接收器108。投射器或发射器102可以被称为“发射器”、“投射器”、“出射器”等,并且不应该局限于特定的传输组件。类似地,接收器108也可以被称为“检测器”、“传感器”、“感测元件”、“光电探测器”等,并且不应该局限于特定的接收组件。

发射器102可以被配置为将光点的码字分布104投射到场景106上,如下面结合图3所述。在一些示例实施方式中,发射器102可以包括一个或多个激光源124、透镜126和光调制器128。发射器102还可以包括孔122,发射光从该孔径逸出发射器102。在一些实施方式中,发射器102还可以包括衍射光学元件(diffractiveopticalelement,doe),以将来自一个或多个激光源124的出射衍射成附加的出射。在一些方面中,光调制器128(用于调节出射强度)可以包括doe。码字分布104可以被硬编码在结构光系统100上(例如,在发射器102处),使得码字分布104的图案和其他特性不会改变,这将结合图3进一步描述。在将光点的码字分布104投射到场景106上时,发射器102可以通过透镜126(和/或通过doe或光调制器128)将来自激光源124的一个或多个激光发射到场景106上。发射器102可以定位在与接收器108相同的参考平面上,并且发射器102和接收器108可以间隔被称为基线(112)的距离。

场景106可以包括来自结构光系统(诸如来自发射器102和接收器108)的不同深度的对象。例如,场景106中的对象106a和106b可以位于不同深度处。接收器108可以被配置成从场景106接收光点的发射的码字分布104的反射110。为了接收反射110,接收器108可以捕获图像。当捕获图像时,接收器108可以接收反射110,以及(i)来自不同深度处的场景106的其他部分的光点的码字分布104的其他反射,和(ii)环境光。噪声也可能存在于捕获图像中。

在一些示例实施方式中,接收器108可以包括透镜130,以将接收到的光(包括来自对象106a和106b的反射110)聚焦或引导到接收器108的传感器132上。接收器108还可以包括孔径120,以限制接收器108可以从其接收光的方向。对于该示例,假设仅接收到反射110,可以基于基线112、反射110中码字分布104的位移和失真以及反射110的强度来确定对象106a和106b的深度。例如,沿着传感器132从位置116到中心114的距离134可以用于确定场景106中对象106b的深度。类似地,沿着传感器132从位置118到中心114的距离136可以用于确定场景106中对象106a的深度。沿着传感器132的距离可以根据传感器132的像素数量或距离(诸如毫米)来测量。

在一些示例实施方式中,传感器132可以包括用于捕获图像的光电二极管阵列(诸如雪崩光电二极管)。为了捕获图像,阵列中的每个光电二极管可以捕获撞击光电二极管的光,并且可以提供指示光的强度的值(捕获值)。因此,图像可以是由光电二极管阵列提供的捕获值。

除了包括光电二极管阵列的传感器132之外或者作为其替代,传感器132可以包括互补金属氧化物半导体(complementarymetal-oxidesemiconductor,cmos)传感器。为了通过光敏cmos传感器捕获图像,传感器的每个像素可以捕获撞击像素的光,并且可以提供指示光的强度的值。在一些示例实施方式中,光电二极管阵列可以耦接到cmos传感器。以这种方式,由光电二极管阵列生成的电脉冲可以触发cmos传感器的对应像素来提供捕获值。

传感器132可以包括至少与码字分布104中的光点数量相等的像素数量。例如,光电二极管阵列或cmos传感器可以分别包括与码字分布104中的光点数量对应的多个光电二极管或多个像素。传感器132在逻辑上可以被分成与码字分布的比特尺寸对应的像素或光电二极管的组(诸如4×4组),如下文结合图3所述。像素或光电二极管的组也被称为比特,并且来自传感器132的比特的捕获图像的部分也可以被称为比特。在一些示例实施方式中,传感器132可以包括与码字分布104相同数量的比特。

如图所示,距离134(对应于来自对象106b的反射110)小于距离136(对应于来自对象106a的反射110)。使用基于基线112以及距离134和136的三角测量,可以在生成场景106的深度图时确定场景106中对象106a和106b的不同深度。确定深度还可以包括确定反射110中的码字分布104的位移或失真,如下面结合图3所述。

尽管在图1中示出了多个分离的组件,但组件中的一个或多个可以实施在一起或者包括附加的功能。结构光系统100可能不需要所有被描述的组件,或者组件的功能可以被分成分离的组件。因此,本公开不应局限于示例性结构光系统100。

图2是包括结构光系统(诸如图1中的结构光系统100)的示例设备200的框图。在一些其他示例中,结构光系统可以耦接到设备200,或者来自结构光系统的信息可以提供给设备200进行处理。示例设备200可以包括或耦接到发射器201(诸如图1中的发射器102)和与发射器201间隔基线203的接收器202(诸如图1中的接收器108)。示例设备200还可以包括处理器204、存储指令208的存储器206和结构光控制器210(其可以包括一个或多个信号处理器212)。设备200可以可选地包括(或耦接到)显示器214和多个输入/输出(i/o)组件216。设备200可以包括未示出的附加特征或组件。例如,无线通信设备可以包括无线接口,该无线接口可以包括多个收发器和基带处理器。发射器201和接收器202可以是由结构光控制器210和/或处理器204控制的结构光系统(诸如图1中的结构光系统100)的一部分。设备200可以包括或耦接到附加的结构光系统,或者可以包括结构光系统的不同配置。例如,设备200可以包括或耦接到用于捕获场景的多个图像的附加接收器(未示出)。本公开不应限于任何特定的示例或图示,包括示例设备200。

存储器206可以是存储计算机可执行指令208的非瞬时性或非暂时性计算机可读介质,以执行本公开中描述的一个或多个操作的全部或部分。存储器206还可以存储由发射器201发射的光的码字分布的码字库209。设备200还可以包括电源218,其可以耦接到或集成在设备200中。

处理器204可以是能够执行存储在存储器206内的一个或多个软件程序(诸如指令208)的脚本或指令的一个或多个合适的处理器。在一些方面中,处理器204可以是执行指令208以使设备200执行任意数量的功能或操作的一个或多个通用处理器。在附加或替代方面中,处理器204可以包括集成电路或其他硬件,以在不使用软件的情况下执行功能或操作。虽然在图2的示例中示出为经由处理器204彼此耦接,但是处理器204、存储器206、结构光控制器210、可选的显示器214和可选的i/o组件216可以以各种布置彼此耦接。例如,处理器204、存储器206、结构光控制器210、可选的显示器214和/或可选的i/o组件216可以经由本地总线(为简单起见未示出)彼此耦接。

显示器214可以是允许用户交互和/或呈现以供用户观看的项目(诸如场景的深度图或预览图像)的任何合适的显示器或屏幕。在一些方面中,显示器214可以是触敏显示器。i/o组件216可以是或包括用于从用户接收输入(诸如命令)并向用户提供输出的任何合适的机构、接口或设备。例如,i/o组件216可以包括(但不限于)图形用户界面、键盘、鼠标、麦克风和扬声器、设备200的可挤压边框或边界、位于设备200上的物理按钮等。显示器214和/或i/o组件216可以向用户提供场景的预览图像或深度图,和/或接收用于调整设备200的一个或多个设置的用户输入(诸如通过发射器201调整出射的强度,调整用于确定深度的码字的尺度等)。

结构光控制器210可以包括信号处理器212,其可以是一个或多个处理器,以处理由接收器202捕获的图像和/或控制发射器201(诸如控制出射的强度)。在一些方面中,信号处理器212可以执行来自存储器的指令(诸如来自存储器206的指令208或者存储在耦接到信号处理器212的单独的存储器中的指令)。在其他方面中,信号处理器212可以包括用于操作的特定硬件。信号处理器212可替代地或附加地包括特定硬件和执行软件指令的能力的组合。

图3是对结构光系统(诸如图1中的结构光系统100)的示例码字分布300的部分的描绘。示例码字分布300可以是图1中的码字分布104的示例部分。该图案包括可以被认为是打开或关闭(分别为1或0)的多个单一光点302。如果没有光从单一光点302发射,则单一光点302可以被认为是关闭的或为0。在一个示例中,doe可以被配置成阻挡来自一个或多个光点302的光发射。在另一示例中,光源(诸如图1中的激光源124)可以关闭或者以其他方式被阻止发射。以这种方式,当没有光从光点302发射时,发射器可以被认为在光点302处发射0。类似地,如果光从单一光点302发射,则单一光点302可以被认为是打开的或为1。例如,doe可以被配置成允许光从一个或多个光点302发射,或者光源可以是打开的并且在一个或多个光点302处发射光。以这种方式,当光从光点302发射时,发射器可以被认为从单一光点302发射1。虽然码字分布300未被示出为包括0和1(打开的光点或关闭的光点),但是图1中的码字分布104被示出为包括示例0和1(其中黑色圆圈表示0,亮圆圈表示1)。如上关于图1中的码字分布104所述,码字分布可以被硬编码。以这种方式,在发射期间,光点302可以总是打开的或为1(即,光点302不改变为关闭或为0)。类似地,在发射期间,关闭或为0的光点302总是关闭的或为0(即,光点302不改变为打开的或为1)。

在一些示例实施方式中,光点302被逻辑分组为4点x4点的比特(诸如比特304)。在一些其它示例实施方式中,最小码字(为深度图或深度确定提供最高分辨率)可以是4比特x4比特的图块(诸如4x4图块306)。如果最小码字的尺寸为4x4,那么尺寸为4x4的码字可以被认为是最细的尺度,因为最小码字尺寸可以提供最高的分辨率。最细的尺度可以被称为尺度0,更粗的尺度由大于0的尺度数指示(如尺度1、尺度2等)。附加的码字尺寸(具有更粗的尺度,因此提供更低的分辨率)可以包括5x5图块(诸如5x5图块308,尺度1)、6x6图块(诸如6x6图块310,尺度2)、7x7图块(诸如7x7图块312,尺度3)或其他尺寸的图块(未示出)。可以存在其他尺寸的码字(更小或更大),并且本公开不应局限于所提供的示例。

因为码字分布104是被硬编码的,所以码字分布104的光点图案是已知的。参考回图2,设备200可以存储码字库209,其可以包括对结构光系统允许的所有尺度的码字分布104(在图1中)中的所有码字。例如,如果允许的尺度是0到3,则码字库209可以包括存在于码字分布104中的尺度从0到3的所有码字(诸如如图3所示的码字分布300的所有尺寸为4x4的图块到尺寸为7x7的图块)。

图4是对码字分布402的lxl图块404的示例码字406的描绘400。码字分布402可以与码字分布104(图1中)或码字分布300(图3中)相同。lxl图块404可以对应于特定尺寸的尺度n码字(其中l与n相关)。在码字分布402被硬编码的情况下,(图2中的)码字库209可以包括示例码字406中的每一个。对于结构光系统,设备200可以确定示例码字406中的一个是否存在于捕获图像的lxl比特图块中。例如,设备200可以识别存在于捕获图像的4×4比特图块中的尺度0码字。所确定的码字可以用于确定场景中对象的深度(诸如生成深度图)。然而,除了光点的所发射的码字分布402的反射之外,接收器202还可以接收环境光或能量。例如,对于近红外(nir)结构光系统,比起更暗的室内照明所提供的干扰,明亮的室外日光可以提供更多对接收发射光的反射的干扰。来自接收器202的捕获图像中也可能存在噪声,这可能干扰接收发射光的反射。该干扰可能使存在于捕获图像中的码字分布402的部分模糊,并且可能导致设备200不能准确地确定存在于捕获图像中的码字分布402的一个或多个码字。

当存在更多干扰时(诸如对于nir结构光系统的明亮的室外照明),设备200可以使用更粗尺度的码字来生成深度图。更粗尺度的码字比更细尺度的码字包括更多的光点,因此为错误地确定捕获图像中的光点提供了更大的容限,并且在确定捕获图像中存在码字方面提供了更大的概率。以这种方式,使用更粗尺度的码字生成的深度图可以比使用更细尺度的码字生成的深度图具有更少的空洞(或无效数据的部分)。可替换地,当存在更少干扰时(诸如对于nir结构光系统的黑暗的室内设置),设备200可以使用更细尺度的码字来生成深度图。更细尺度的码字比更粗尺度的码字包括更少的光点,因此提供了确定捕获图像中的更多码字的能力(因为在码字分布中存在比更粗尺度码字更多的更细尺度码字)。以这种方式,使用更细尺度的码字生成的深度图可以比使用更粗尺度的码字生成的深度图具有更高的分辨率。

图5描绘了来自结构光接收器的示例捕获图像502,以及描绘了使用4×4码字从捕获图像502生成的第一深度图504和使用7×7码字从捕获图像502生成的第二深度图506。深度图504和506的黑色部分指示捕获图像502中不能确定码字的部分。这些部分包括无效数据或没有数据,并且这些部分可以被称为空洞(hole)。黑色条带存在于深度图504和506的右侧,并且对应于捕获图像502右侧的条带。该条带可能是由于在图像捕获期间传感器的对应部分没有接收到发射光的反射而造成的。例如,参考回图1,接收器108的孔径120可以限制能够到达传感器132的光的角度和原点。在接收器108与发射器102间隔基线112的情况下,传感器132的左侧部分可能不会接收到发射光的反射。增加基线112可以增加传感器132不接收发射光的反射的部分。由于在传感器132的部分没有接收到发射光的反射,所以在来自传感器132的部分的捕获图像的部分中不存在码字并且没有识别出码字。

如图所示,深度图504包括比深度图506更多的空洞。例如,深度图504的部分508a的整体包括无效数据,而深度图506的对应部分508b的大部分包括有效数据。然而,深度图504比深度图506具有更高的分辨率。例如,深度图504的部分510a比深度图506的对应部分510b包括更多的细节。

当选择用来分析捕获图像的码字尺寸时,一些结构光系统需要在深度图的分辨率和深度图中无效数据的量之间做出权衡。可以增加发射光的强度,以尝试克服干扰并减少深度图中无效数据的量。然而,法规、安全考虑和功率限制可能要求限制发射光的强度,并且在不增加码字尺寸(从而降低分辨率)的情况下,所允许的强度增加可能是不够的。

为了克服这种结构光系统的局限性,本公开的各方面包括一种结构光系统,其中使用不同尺度的码字来分析一个捕获图像。在一些方面中,发射器和接收器可以是用于结构光系统的传统发射器和传统接收器,并且使用不同尺度的码字来处理从接收器捕获的图像。对于相同的码字,该处理可以是非递归的(即,对于正被分析的捕获图像的部分,不会多次使用相同的码字)。以这种方式,捕获图像的部分针对每个尺度分析一次(并且不会在不同时间针对相同尺度重复该处理)。这种处理可以允许在捕获图像的同时近乎实时地生成深度图。此外,使用不同尺度的码字来处理捕获图像增加了确定捕获图像中存在更细尺度的码字的概率,并且通过使用更细尺度的码字(诸如部分508a)来减少深度图中通常会包括无效数据的部分。

在一些示例实施方式中,设备200可以使用更大的码字尺寸(诸如尺度3)来分析捕获图像(包括反射的码字分布),然后设备200可以使用更小的码字尺寸(诸如尺度0-2)来分析捕获图像(包括反射的码字分布)。例如,对于捕获图像的每个比特,设备200可以使用尺度3、尺度2、尺度1和尺度0码字来分析捕获图像的对应部分。以这种方式,设备200可以通过更精确地确定捕获图像的每个比特的码字来尝试增加深度图的分辨率。在一些示例实施方式中,设备200可以为捕获图像的每个比特确定尺度0码字。在一些其他示例实施方式中,设备200可以为捕获图像的每个比特确定任何合适尺度的码字。

图6是描绘以不同尺度分析捕获图像的示例操作600的说明性流程图。参考设备200描述了以下示例。然而,可以使用其他设备或系统,并且本公开不应被这些示例限制。此外,对于以下示例,尺度0码字的尺寸是4x4(如图3所示),尺度1码字的尺寸是5x5(如图3所示)等。但是尺度可以指任何尺寸的码字,并且本公开不应局限于以下示例或与尺度号对应的特定尺寸的码字。

从602开始,设备200(诸如信号处理器212或处理器204)可以以第一尺度分析来自接收器202的捕获图像。捕获图像可以包括发射光的码字分布的反射。在以第一尺度分析捕获图像的一些示例中,设备200可以将捕获图像的部分与码字分布中的第一尺度码字进行比较。然后在604,设备200可以以比第一尺度更细的第二尺度分析捕获图像。在以第二尺度分析捕获图像的一些示例中,设备200可以将捕获图像的更小部分与码字分布中的第二尺度的码字进行比较。

例如,如果第一尺度是尺度3,则设备200可以确定捕获图像的7x7比特图块。图块可以重叠,并且单独的7x7图块可以对应于捕获图像的每个比特。然后,设备200可以将尺度3码字与每个7×7图块进行比较,并且可以确定图块中存在的每个尺度3码字的可能性。为了以尺度2分析捕获图像,设备200可以确定捕获图像的6x6比特图块。图块可以重叠,并且单独的6x6图块可以对应于捕获图像的每个比特。然后,设备200可以将尺度2码字与每个6×6图块进行比较,并且可以确定图块中存在的每个尺度2码字的可能性。

在一些示例实施方式中,设备200可以以逐渐减小的尺度来分析捕获图像。例如,可以将尺度3码字与捕获图像的每个7x7图块进行比较,并且可以确定图块中存在的每个尺度3码字的可能性。然后,可以将尺度2码字与捕获图像的每个6x6图块进行比较,并且可以确定图块中存在的每个尺度2码字的可能性。然后,可以将尺度1码字与捕获图像的每个5x5图块进行比较,并且可以确定图块中存在的每个尺度1码字的可能性。最后,可以将尺度0码字与捕获图像的每个4x4图块进行比较,并且可以确定图块中存在的每个尺度0码字的可能性。

在一些示例实施方式中,确定更细尺度的码字的可能性可以取决于所确定的更粗尺度的码字的可能性。例如,捕获图像的4x4图块中存在尺度0码字的可能性可以取决于捕获图像的5x5图块中存在尺度1码字的一个或多个确定的可能性。这种可能性可以被称为置信度,置信度之间的相关性将在下面更详细地描述。

这些示例描述了以某一尺度分析捕获图像的每个图块。例如,可以将所有尺度0码字与捕获图像中的每一个4x4图块进行比较(4x4图块的数量等于捕获图像中的比特数)。虽然以下示例描述了分析每个图块,但是可替换地,可以仅对图块的子集执行分析。例如,捕获图像的部分可能不包括足够的捕获值来确定是否存在码字(诸如来自接收器传感器的被接收器孔径的边缘阻挡的部分的捕获图像的部分,因此不接收透射光的反射)。在另一示例中,设备200可以确定捕获图像的图块的捕获值太小(诸如小于强度阈值)。在另一示例中,设备200可以跳过图块或者以其他方式将码字仅与捕获图像的图块的子集进行比较。本公开不应局限于分析捕获图像的每个图块或部分。

图7a是描述以逐渐减小的尺度分析捕获图像的示例操作700的说明性流程图。从702开始,设备200可以以尺度n分析与捕获图像的比特s对应的捕获图像的一部分。在一些示例实施方式中,尺度n可以设置为最粗尺度n,并且与捕获图像的第一比特对应的第一部分可以被分析。第一比特可以是捕获图像的左上比特。对于第一比特,s可以等于1。与左上比特对应的捕获图像的部分可以是捕获图像的图块,该图块包括第一比特作为该图块的左上比特。例如,如果n=3且尺度n=尺度n,则该图块可以是捕获图像的7x7比特图块。

如果最粗尺度n为3,则设备200可以在码字库209中包括最大尺寸为7x7比特的码字。分析与捕获图像的比特s对应的部分可以包括设备200确定与比特s对应的捕获图像的7x7比特图块。在对7x7比特图块的分析期间,设备200可以将码字分布的尺度为3(7x7比特尺寸)的码字与7x7比特图块中的捕获值进行比较。例如,设备200可以将码字库209中的每个尺度3码字与捕获图像的图块进行比较。基于分析期间的比较,设备200可以确定每个尺度为n(诸如当前示例中的尺度3)的码字的置信度(704)。置信度可以是捕获图像的图块包括被比较码字的概率或可能性的其他指示。对于最粗尺度n=n,可以使用最大似然估计来确定置信度。更小的置信度可以指示一个码字比另一码字存在于图块中的可能性更低。在一些示例实施方式中,为更大尺度(诸如尺度n+1)的码字确定的置信度可以影响为更小尺度(诸如尺度n)确定的置信度。在一个示例中,确定置信度可以被限制为受到紧邻的更大尺度置信度的影响(诸如,尺度n码字的置信度影响尺度n-1码字的置信度)。下面将更详细地描述置信度的示例确定。

在一些示例实施方式中,设备200可以为比特s和尺度n确定或创建码字的置信度图。例如,置信度图包括被比较的每个尺度n码字的置信度。可替换地,可以使用其他合适的结构或过程来保留针对与捕获图像的比特s对应的图块,为尺度n码字确定的置信度。在一些示例实施方式中,尺度n码字的置信度可以影响为尺度n-1码字确定置信度(当以尺度n-1分析时),如下文更详细描述的。置信度图可以是用于保留以尺度n确定置信度的一种实施方式,以在以尺度n-1确定置信度时使用。

在分析与比特s对应的捕获图像中的部分之后,设备200可以确定是否要分析捕获图像的另一部分(706)。如果要分析另一部分,设备200可以增加s(708)。例如,如果分析了与捕获图像的第一比特(s=1)对应的图块,则接下来可以分析与捕获图像的第二比特(s=2)对应的图块。第二比特可以是第一比特右边的相邻比特,可以是第一比特下面的相邻比特,或者可以是捕获图像的比特的合适顺序的任何其他比特。捕获图像的部分可以是图块,该图块包括第二比特作为图块的左上比特。

示例操作700然后可以返回到步骤702,并且设备200可以以尺度n分析所捕获图像的下一部分。在一些示例实施方式中,设备200可以为捕获图像的所有比特继续分析捕获图像的部分。对于最上面的一行比特,比特的顺序可以是从左到右,对于下一行比特,比特的顺序可以是从左到右,依此类推。可替换地,比特的顺序可以是任何合适的比特顺序。

捕获图像的部分可以重叠。例如,如果(i)第一比特(s=1)是左上比特,(ii)第二比特(s=2)是第一比特右边的相邻比特,以及(iii)这些部分是捕获图像的7x7比特图块,该7x7比特图块具有对应比特作为图块的左上比特,所有7行和7列中的6列比特重叠(7x6比特重叠)。结果,尺度2码字可以存在于图块的重叠中,而尺度3码字可以存在于每个图块中。设备200可以基于两个图块的尺度3码字的置信度来调整重叠中的6×6图块的尺度2码字的置信度。下面将更详细地描述置信度的示例确定。

参考回706,如果捕获图像的所有部分都被分析(比特s等于捕获图像的最大比特数),则示例操作可以前进到710。如果尺度n大于0(710),则n可以减小(诸如减小1),并且s可以重置为1(712),并且示例操作700可以返回到步骤702。以这种方式,设备200可以以更细的尺度分析捕获图像的更小部分(712)。例如,在(使用尺度3码字)分析捕获图像的7x7图块之后,设备200可以(使用尺度2码字)分析捕获图像的6x6图块。以这种方式,设备200可以为捕获图像的每个更小部分确定减少的尺度n的码字的置信度。部分的码字的置信度可能受到包括该部分的更大部分(诸如包括更小图块的更大图块)的更大尺度的码字的置信度的影响。下面将更详细地描述确定置信度。

参考回710,如果尺度n不大于0,则示例操作前进到714。以这种方式,可以执行示例操作700的步骤702-712,直到为捕获图像的每个尺寸部分,以每个尺度确定了置信度。例如,如果n从0到3,则设备200可以为捕获图像的每个7x7图块确定尺度3码字的置信度,可以为捕获图像的每个6x6图块确定尺度2码字的置信度,可以为捕获图像的每个5x5图块确定尺度1码字的置信度,并且可以为捕获图像的每个4x4图块确定尺度0码字的置信度。

在步骤714中,设备200可以为捕获图像的每个比特确定或设置码字。在一些示例实施方式中,设备200可以为每个比特确定或设置尺度0码字(716)。例如,设备200可以为捕获图像中的与比特对应的4x4图块选择具有最高置信度的尺度0码字。

在一些其他示例实施方式中,设备200可以为比特确定可以是任何尺度的码字。例如,设备200可以比较为对应于比特的不同尺寸的图块所确定的不同尺度码字的置信度。然后,设备200可以确定具有最高置信度的码字。在一些示例实施方式中,该比较可以是加权比较,以使确定偏向更低尺度的码字。例如,如果对于该比特,尺度0码字的置信度等于尺度1码字的置信度,则加权比较可以使设备200为该比特选择尺度0码字。

利用为捕获图像的每个比特确定的码字,设备200可以确定场景中对象的深度(诸如从捕获图像生成深度图)。

在图7a中的示例操作700中,设备200可以针对每个比特以每个尺度分析捕获图像的部分。然后,设备200可以基于该分析来确定每个比特的码字。在一些替代实施方式中,如果捕获图像的对应部分的码字的置信度太低,则设备200可以通过停止以更细尺度对一个或多个比特进行处理来尝试节省时间和处理资源。例如,如果对于图块,每个尺度n码字的置信度都小于置信度阈值,则置信度可能太低。以这种方式,设备200可以停止以当前尺度(诸如尺度n)分析捕获图像的部分,并且设备200可以为捕获图像的对应比特确定更粗尺度的码字(诸如尺度为n+1码字)。

图7b是以逐渐减小的尺度分析捕获图像的另一示例操作750的说明性流程图。捕获图像的比特顺序可以与图7a中的示例操作700相同。此外,捕获图像的部分的尺寸以及捕获图像的部分与捕获图像的比特之间的关系可以与图7a中的示例操作700相同。

从752开始,设备200可以以尺度n=n(其中n指示码字分布的最粗尺度的码字)分析与捕获图像的比特s=1对应的捕获图像的部分。步骤752的操作可以类似于图7a中的步骤702。例如,比特s=1可以是捕获图像的第一比特,并且第一比特可以是捕获图像的左上比特。如果n=3,则设备200在码字库209中包括最大尺寸为7x7比特的码字。在分析对应于比特s的部分时,设备200可以确定对应于比特s的捕获图像的7x7比特图块(诸如该比特是7x7比特图块的左上比特)。对于7x7比特图块,设备200可以将码字分布的尺度3码字与7x7比特图块中的捕获值进行比较。在一个示例中,设备200可以基于该比较来确定每个尺度3码字中的置信度。置信度可以是图块包括码字的概率或可能性的其他度量。下面将更详细地描述示例置信度。

可选地,设备200可以为捕获图像的比特识别尺度n码字(754)。例如,设备200可以为与比特对应的捕获图像的部分识别具有最大置信度的尺度n码字。在一些其他示例中,设备200可以识别其置信度首先被测量为大于置信度阈值的码字。可替换地,设备200可以在不为比特识别特定尺度n码字的情况下确定置信度(因此不执行步骤754)。

设备200可能百分百地识别该比特的码字。例如,由于可能存在环境光、噪声或可以影响捕获图像的捕获值的其他干扰,每个确定的置信度可能小于最大值,该最大值指示码字一定存在的概率。换句话说,可能存在码字被错误地识别的可能性。不管设备200是否要识别尺度n码字(或者当n不等于n时识别尺度为n的码字),置信图可以指示每个码字存在于图块中的可能性。类似于图7a中的示例操作700,置信度可能受到紧邻的更大尺度置信度的影响(诸如,尺度n-1码字的置信度受到尺度n码字的置信度的影响)。这种影响的示例将在下面描述示例置信度时进一步描述。

在以尺度n分析捕获图像的部分之后(752,在此期间可以识别尺度n尺寸的码字(754)),设备200可以为与比特对应的被分析部分确定是否存在有效码字(756)。例如,设备200可以确定为第一比特识别的尺度n码字是否有效。在一些示例实施方式中,如果码字的置信度大于置信度阈值,则所识别的码字可以被确定为有效。例如,所识别的码字可以是具有最大置信度的码字,但是如果置信度仍然小于置信度阈值,则所识别的码字可能无效。置信度阈值可以指示码字存在于图块中的可能性仍然足够的最小置信度(诸如大于50%的可能性或码字存在于图块中的可能性的另一级别)。对于正被分析的捕获图像的不同尺度和/或部分,置信阈值可以相同或不同。置信度阈值还可以是静态的或用户可调的、启发式可调的、由制造商确定的等。如果设备200在识别码字时不执行步骤754,则设备200可以通过将所确定的码字的置信度与置信度阈值进行比较来确定对于比特是否存在有效码字。如果一个或多个置信度大于置信度阈值,则设备200可以确定对于比特存在有效码字。

如果有效码字不存在(诸如一个或多个置信度小于置信度阈值),并且如果前一个(更粗的)尺度尺寸的码字对于比特有效,则为比特s确定前一个尺度的码字(758)。例如,如果n+1=n,且为比特s识别了尺度n码字,但尺度n码字对于比特s无效,则设备200可为比特s确定所识别的尺度n码字。可替换地,如果设备200没有执行步骤754,则设备200可将码字确定为具有最高置信度的尺度n码字。

如果尺度n=n并且尺度n码字被认为无效(诸如置信度小于置信度阈值),则设备200不为比特s确定码字。以这种方式,深度图可以包括与比特对应的空洞(诸如图5中深度图504和506的黑色部分)。然后,示例操作750从步骤758前进到768,其中设备200确定是否要分析捕获图像的另一部分(捕获图像中存在另一比特)。类似于图7a中的示例操作700,设备200可以分析捕获图像的每个部分,其中捕获图像的单独的部分对应于捕获图像的每个比特。

参考回756,如果对于比特s存在有效码字,则设备200确定是否尺度n>0(760)。换句话说,设备200可以确定码字分布是否存在比n更细的尺度。如果尺度n>0,则设备200可以减小n(762)。例如,设备200可以将n减小1。在一些其他示例实施方式中,设备200可以将n减少不同的量,诸如2或更多。除了n减小1之外,基于码字的置信度,n还可以减小1以上。作为说明性示例,如果所识别的尺度3码字的置信度为90%,并且用于确定该码字是否有效的阈值为60%,则设备200可以确定该码字具有高置信度,并且可以使用贪婪处理来将尺度n减小两个或更多(而不是一个),以更快地确定被认为对该比特有效的最细尺度的码字。相反,如果当前识别的码字的置信度接近置信度阈值(诸如对于60%阈值来说的62%),则设备200可以确定将尺度n减小1。可替换地,如果置信度在阈值范围内或接近阈值,则设备200可以假设更细尺度码字的置信度不会大于该比特的置信度阈值,并且设备200可以确定不减小尺度并且为比特以当前尺度设置尺度。

在减小n之后,设备200可以以减小的尺度n分析与捕获图像的比特s对应的捕获图像的更小部分(764)。除了以比n更小的尺度n进行以外,步骤764的操作可以类似于步骤752。在一些示例实施方式中,设备200以逐渐变细的尺度分析与比特s对应的逐渐变小的图块,直到达到最细的尺度(尺度0)。例如,设备200可以将从尺度3到尺度0的码字与捕获图像的从尺寸为7x7到尺寸为4x4的图块进行比较。在一些示例实施方式中,设备200可以为比特s识别尺度n码字(766)。除了以减小的尺度n<n进行以外,步骤766可以类似于步骤754。示例操作然后返回到756。

参考回760,如果尺度n=0(n不大于0),则设备200可以为比特s确定尺度0码字(761)。例如,如果设备200识别尺度0码字(以尺度n=0执行步骤766),则设备200可以为比特s确定所识别的尺度0码字。在另一示例中,如果设备200没有以尺度n=0执行步骤766,则设备200可以以最高置信度确定尺度0码字作为比特s的码字。示例操作700可以从步骤761前进到768,其中设备200确定是否要分析捕获图像的另一部分(在捕获图像中存在另一比特)。

在为比特s确定码字之后(步骤758或761),或者在为比特s确定没有码字之后(诸如,尺度n码字的置信度小于置信度阈值),设备200可以确定捕获图像中是否存在另一比特(768)。例如,如果s<s,并且s等于捕获图像中的比特数,则设备200可以确定存在另一比特。在一些示例实施方式中,设备200可以以从左到右、从上到下的方式遍历比特,直到捕获图像的所有对应部分都被分析。然而,类似于图7a中的示例操作700,捕获图像中的比特的顺序可以是任何合适的顺序。如果存在另一比特,则设备200可以将n重置为n并增加s(769)。例如,s可以增加1。然后,设备200可以以n=n的尺度分析与捕获图像的比特s对应的捕获图像的部分(770)。在一些示例实施方式中,设备200可以为比特s识别尺度n码字(772)。除了对捕获图像的不同比特执行分析和识别之外,步骤770和可选步骤772的操作可以类似于步骤752和可选步骤754的操作。

参考回768,如果捕获图像中不存在其他比特(例如,s=s),则示例操作750结束。以这种方式,可以为每个比特确定码字。然后,所确定的码字可以用于生成深度图或确定场景中对象的深度。

虽然示例操作描述了顺序地分析捕获图像的部分,但是也可以同时分析捕获图像的部分。例如,设备200可以使用多个处理器(诸如信号处理器212和/或处理器204)、多个处理器核心和/或多个处理线程来同时确定多个捕获图像部分的码字的置信度。本公开不应限于顺序处理的特定示例或用于处理捕获图像的部分的比特的特定排序。

确定码字的置信度

关于确定码字的置信度,如果码字分布被硬编码在(图2中的)发射器201上,并且码字库209包括码字分布中的(不同的尺度的)所有码字,则码字分布中码字相对于另一码字的位置可以被映射到码字库209中。例如,码字库209可以被组织成使得设备200可以确定码字分布中码字相对于另一码字的位置。此外,尺度n码字包括有限数量的尺度小于n的码字。例如,尺度n码字包括四个尺度n-1子码字。类似地,尺度n-1码字具有四个父尺度n码字。

参考回图3,5x5图块308可以是尺度1码字,4x4图块306可以是尺度0码字。如图所示,尺度0码字被包括在尺度1码字中。存在于尺度1码字中的三个其他尺度0码字包括:在4×4图块306下方偏移一比特的4×4图块处的尺度0码字、在4×4图块306右侧偏移一比特的4×4图块处的尺度0码字、以及在4×4图块306右侧偏移一比特的4×4图块处的尺度0码字。类似地,在6x6图块310(其可以是尺度2码字)中可以存在四个尺度1码字,并且在7x7图块312(其可以是尺度3码字)中可以存在四个尺度2码字。

图8描绘了包括四个尺度n-1码字804的示例尺度n码字802。如果尺度n码字802的每个正方形是码字分布的比特,则尺度n可以是1,对应于5×5比特的码字。以这种方式,n-1=0,并且尺度n-1码字804是4×4比特的码字。如果以绝对置信度(诸如码字的概率或置信度为100%)为捕获图像的5x5比特部分识别了尺度n码字,则在捕获图像的5x5比特部分中的4x4比特部分中的唯一可能的尺度n-1码字是尺度n码字中的四个n-1码字(它们被称为“子码字”到“父码字”)。每个子n-1码字包括四个子n-2码字,依此类推,直到尺度为0。例如,尺度3码字包括4个尺度2子码字、16个尺度1码字(4个尺度2子码字×每个尺度2子码字4个尺度1码字)和64个尺度0码字(16个尺度1码字×每个尺度1码字4个尺度0码字)。

如果设备200能够绝对肯定地(诸如置信度等于100%)为捕获图像的部分确定尺度n码字,则设备200可以通过仅将所确定的尺度n码字的子码字与更小部分进行比较(从比较中排除其他码字)来为捕获图像的该部分内的更小部分确定更细尺度的码字。然而,设备200可能不能绝对肯定地确定码字(诸如置信度小于100%)。在一些示例实施方式中,确定的父码字的置信度可以用于影响确定子码字的置信度。例如,子尺度n-1码字804中的每一个的概率或置信度可能受到尺度n码字802的置信度的影响。

例如,假设对于捕获图像的5x5比特部分,尺度1码字被确定为具有置信度w,则设备200可以基于该置信度w来调整或确定尺度1码字的尺度0子码字的置信度。以这种方式,设备200可以将置信度确定偏向(prejudice)更高置信度父码字的子码字,而无需从分析的一部分中完全移除潜在的码字。在一些示例实施方式中,码字从更粗尺度到更细尺度的置信度确定可以视为马尔可夫链。结果,只有尺度n的潜在父码字的置信度可能影响尺度n-1码字的置信度。以这种方式,当确定尺度n-1码字的置信度时,设备200可以忽略尺度n+1或更大尺度的任何码字的置信度。

本公开的以下部分描述了用于确定码字置信度(包括影响更细尺度码字置信度的更粗尺度码字置信度)的示例实施方式。提供这些实施例是为了说明的目的,并且本公开不应该局限于以下示例。

图9描绘了由接收器(诸如图2的接收器202)测量或感测的示例图像902,其可以包括码字分布904(诸如图1的码字分布104)、来自场景906的环境光以及噪声或干扰908。在一些示例实施方式中,被表示为y(n)的捕获图像(或图像)902可以由信号模型910建模,并且在下文中被表示为等式(1):

对于i∈{0,1,…k(n)-1}(1)

其中,n为尺度,ai是小于1的衰减值,k(n)是对于尺度n码字分布中存在的码字数量,i是码字数量k(n)内的码字。等式(1)将图像902建模为衰减的码字分布aixi(n)(其中,发射的码字分布的强度由于例如在接收器处接收之前的扩散和衍射而减小)、来自场景bi的反射的恒定环境光(假设其不会改变并且与用于分析图像902的尺度无关)和噪声v(n)的和。噪声可以是高斯或随机的。可替换地,噪声可以取决于图像中的位置(例如,当远离图像902的中心时,噪声可能增强)或其他因素,使得噪声可以被确定性地建模。(图9中的)l(n)可以是与尺度n对应的图像902的图块的长度或宽度。如果设备200分析图图块902的(图9中的)l(n)xl(n)图块,则来自尺度n码字i的潜在码字{0,1,…k(n)-1}中的尺度n码字i可以增加或最小化xi(n)和bi,从而减小或最小化噪声v(n)

为稍后便于解释,在改变信号模型的符号时,由接收器传感器捕获的图像(y)被建模为三个分量的线性组合:由来自场景的光的反射的码字分布形成的码字图像g;由环境光形成的干涉图像b;以及噪声图像w。假设ys、gs、bs和ws分别表示图像y、g、b和w的lxl图块中的像素值,其中lxl图块的左上角比特在比特s,并且还假设局部图块中的值被布置为lxl维列向量,ys可以表示为下面的等式(2):

ys=gs+bs+ws(2)

比特s的尺寸为lxl的反射码字gs是个发射序列的信道失真版本,由标签x表示,如下面的等式(3)所示:

其中,p×p是捕获图像中的点或孔(无效数据)的空间支持,m是发射器201可以为lxl图块投射的单独的个二进制码(1和0)的总数。

从发射器到接收器的光的失真函数可能难以建模,因为它取决于多个因素,包括场景中对象的表面反射属性、发射器透镜(诸如图1中的透镜126)的点扩散函数(pointspreadfunction,psf)和接收器透镜(诸如图1中的透镜130)的psf。为了便于计算,可以将不同失真的累积效应简化为发射信号的空间相关衰减(根据码字分布)和空间不变模糊操作(不管场景内容和相机捕捉条件如何,其可以被认为是静态的或固定)。

以这种方式,将模糊的lxl图块尺寸码字表示为对应于码字x∈(所有可能的码字χ)的元素可以如下面的等式(4)所示:

并且图像中的反射码字gs可以表示为下面的等式(5):

其中,xs表示比特s的码字,as>0表示传感器比特s的码字衰减。因为模糊核f被认为是固定的或静态的,所以可以在处理捕获的图像之前计算元素f(xs)。

在一些示例实施方式中,为了便于计算,接收到的码字分布对每个码字k去均值,并且标准偏差被调整为正态分布标准偏差,如下式(6)所示:

∑ifi(k)=0和

对于结构光解码,观察到的图块ys中的能量的高频部分主要是由于噪声或码字分布的点(而不是由于场景)造成的。结果,为了便于计算,可以将干涉图像局部视为常数,从而对局部图块仅贡献dc或常数偏移(由正标量bs表示),并且标量bs的l2维向量bs可以被简化,如下面的等式(7)所示:

其中,1l2表示全为1的l2维列向量。

结果,ys的信号模型可以如下面的等式(8)所示(类似于等式(1),但符号不同):

ys=asf(xs)+bs1l2+ws(8)

从捕获图像知道s∈s的图块ys,其中s表示捕获图像中的所有比特的集合,码字xs被估计。在知道码字xs的过程中,可以通过预定义的确定性变换h(可以基于结构光系统的基线和其他特征来知道)来估计视差值ds,使得ds=h(s,xs),指示反射中码字的失真或位移。

如前所述,第一尺度码字的置信度可能会受到更粗尺度码字的置信度的影响。然而,对于最粗的尺度,不存在更大尺度的码字。以这种方式,设备200可以确定最大尺度码字的置信度,而不受来自其他尺度码字的置信度的影响。在一些示例实施方式中,设备200可以使用最大似然(maximumlikelihood,ml)估计或对数似然估计来确定码字的置信度,而不依赖于来自其他尺度码字的置信度(诸如当确定最粗尺度码字的置信度时)。例如,设备200可以对图7a中的示例操作700中的步骤702和720以及图7b中的示例操作750中的步骤752和770使用ml估计。ml估计的示例描述如下。

图9中的噪声或干扰908可以是确定性的(诸如与场景906的特性、结构光系统等有关)、随机的或这两者的组合。虽然在一些示例实施方式中可以精确地对噪声908建模,但是在一些其他示例实施方式中,为了便于计算,噪声可以被认为是高斯或随机的。例如,假设等式(8)中的是概率分布为n(0,σ2il2)的加性高斯白噪声,其中il2是l2xl2单位矩阵。给定xs、as和bs下,ys的条件分布可以如下面的等式(9)所示:

进一步假设每个比特s的ys有条件地独立于给定的xs、as和bs的相邻比特,条件分布的负对数似然函数可以是可以计算的独立项的和,如下面的等式(10)和(11)所示:

-logp(y|x,a,b)=∑s∈sl(ys|xs)(10)

设备200可以通过最小化等式(10)中描绘的负对数似然函数来计算xs、as和bs的ml估计,诸如分别在下面的等式(12)-(14)中描绘的:

码字xs的ml估计(如等式(12)所示)是码字k∈χ,对于该码字,来自码字库209的反射码字f(k)与ys最大相关。确定估计时所涉及的每比特计算是mxl2维矩阵f的乘法,定义为[f(0);…;f(m-1)]t,具有l2维向量ys。在一些示例实施方式中,计算可以由信号处理器212或处理器204(可以是一个或多个处理单元或多线程cpu)执行,以用于实时应用。

在一些示例实施方式中,设备200可以在确定使用ml估计计算的码字的置信度时执行异常拒绝。在一些示例实施方式中,置信度是给定ys的后验码字反射/衰减估计和干扰估计其可以如下面等式(15)所示计算:

假设(i)所有码字同样可能地出现在编码图像中,以及(ii)任何信道失真和背景信号都独立于发射的码字分布。

在一些示例实施方式中(诸如图7b中的756),如果置信度低于置信度阈值t,则最大码字估计可能不被认为是比特s的有效码字,诸如下面的等式(16)所示:

在一些示例实施方式中,也可以使用更细尺度的ml估计来确定置信度。然而,用于更细尺度的ml估计的一个缺点是该估计忽略了相邻比特之间的空间相互作用或依赖性。结果,由于噪声或背景,对ys的小的调整或改变可能会影响置信度或码字确定,使得可能为正被分析的相邻比特确定不同/不相邻的尺度0(或其它尺度)码字,并且这种码字的置信度可能低于置信度阈值,使得深度图的更多部分包括无效数据。

在替代ml估计的一些示例实施方式中,设备200可以使用更细尺度的最大后验(maximumaposteriori,map)估计来确定置信度。map估计考虑了相邻像素之间的局部相关性,因此可以提供比使用ml估计更精确的置信度。然而,map估计的一些缺点是计算量大、资源密集和时间密集,因为码字可能被多次比较,并且在分析期间可能使用相同的码字以相同的尺度重复处理捕获图像的部分。此外,即使在更粗尺度上的错误标记或置信度确定比在更细尺度上的错误标记或置信度确定更差(因为捕获图像的更多比特可能受到更粗尺度上的误差的影响),错误标记(诸如不正确地确定码字)或确定置信度时的错误在不同的尺度上也被赋予相同的权重。

在一些其他示例实施方式中,可以在更细尺度(例如小于最大尺度的尺度)上使用修改的顺序map(sequentialmap,smap)估计,从而减少计算和资源需求,并减少计算置信度所需的时间量。此外,如下所述,smap估计可能在更粗尺度上比在更细尺度上更大地惩罚码字的不正确置信度。以这种方式,可以生成多尺度随机场(multiscalerandomfield,msrf),并且可以使用多尺度匹配滤波器来确定不同尺度的码字的置信度。

在定义多尺度信号模型时,以尺度n和比特s(在一些示例实施方式中,比特s位于图块的左上比特)来表示l(n)xl(n)图块中的比特值。此外,n=0表示最细尺度,n=n表示最粗尺度,使得尺度的窗口和码字尺寸被排序为l0<l1<…ln表示比特s和尺度n的码字,在尺度n的可能的码字集合χ(n)中,被定义为码字{0,1,…m(n)-1},其中m(n)是尺度n的码字数量。此外,对应于χ(n)的去均值和标准偏差归一化码字分布在下面的等式(17)中描绘:

此外,对于与比特s对应的图块,as、bs和ws分别表示码字衰减、由于环境光而引起的信号分量和l(n)2噪声矢量。因此,可以如下面的等式(18)所示建模,并且类似于等式(8):

在一些示例实施方式中,在尺度上具有马尔可夫链结构的msrfχ(n)可以用于确定码字的置信度。结果,χ(n)中的分布仅取决于χ(n+1)中的分布,而不取决于χ(n+q),其中整数q大于1(即,当前尺度中的分析仅取决于直接更粗尺度中的分析,而不取决于其他更粗尺度)。因此,对于所有比特s和如等式(18)所示的尺度n,y(n)可以仅依赖于码字x(n)。对于所有比特s,a={as}且b={bs},a和b将被确定以便根据分布和已知的确定在一些示例实施方式中,a和b被认为是未知但确定性的(不是随机的)。

y和x代表所有比特s和尺度n的并且进一步地,给定x和其它模型参数a和b,所有都是条件独立的,y的条件分布可以如下面的等式(19)和(20)所示:

其中,是由类似于上述关于ml估计的等式(9)的表达式定义的多元高斯分布。

由于x(n)仅依赖于x(n+1),所以可以考虑码字之间的空间依赖性而无需显著增加计算或处理资源。依赖于尺度上的马尔可夫链结构属性,码字的置信度(作为概率质量函数)可以定义为如下面的等式(21)-(24)所示:

其中,p(x(n)|x(n+1))=p(x(n))。在一些示例实施方式中,码字之间的空间依赖性可以是局部的,其中,对与尺度n的比特对应的图块的分析可以仅依赖于更粗尺度n+1的比特(δs)周围的比特邻域的图块。结果,x的置信度或概率分布可以如下面的等式(25)所示,其是在给定了比特s的邻居的x(n)的概率的情况下的跨尺度和跨所有比特的乘积:

在一些示例实施方式中,为了便于计算,比特s的邻居可以是包括比特s的2×2图块内的三个其他比特,这些比特在任何尺度n下可以是相同的。在一些其他示例实施方式中,比特s的邻居可以被定义为任何尺寸,并且可以根据s和n而变化。

组合等式(19)和(25)产生y和x的联合分布,如下面的等式(26)所示:

使用y和x的联合分布,设备200可以估计码字在尺度之间的差异(诸如码字分布中尺度n码字和尺度n-1码字之间的距离)。在一些示例实施方式中,可以使用map估计或smap估计。如前所述,smap估计可能在更粗的尺度上比在更细的尺度上更多地惩罚不正确的置信度计算。在使用成本函数来确定码字的置信度时,smap估计可以在更粗尺度上使用增加的成本因子来越多地惩罚不正确的置信度计算。smap估计下的示例成本函数如下面的等式(27)所示:

其中α>1,尺度n时的成本函数如下面的等式(28)所示:

如果n是置信度被确定的最粗尺度,那么成本函数如下面的等式(29)所示:

通过定义smap估计的成本函数,码字的置信度可以与成本函数成反比。设备200可以将码字的置信度确定为最小化成本函数,如下面的等式(30)所示:

在执行如等式(30)所示的最小化时,用于在确定每个比特s和尺度n的码字的置信度时计算smap估计的由粗到细的计算如下面的等式(31)所示:

在等式(31)中,比特s的尺度n码字的置信度是基于尺度n码字的父尺度n+1码字的置信度(如术语所示)。

使用等式(18)中描绘的信号模型,给定k(n)(其中k(n)∈χ(n)表示尺度n码字)、给定as并给定bs,的条件概率的对数可以如下面的等式(32)和(33)所定义:

等式(33)中的第一项类似于等式(11)中关于ml估计的项。

为了执行如等式(31)所示的估计,设备200可以确定在给定对比特s的相邻比特的更粗尺度码字的估计的情况下(其中k(n)∈χ(n))的条件概率。

图10是对示例识别的父尺度n+1码字1002的四个尺度n子码字1004的描绘。码字1002的左上比特是比特s。子码字1004位于父码字的比特s(其左上比特位于比特s)、比特s+p(0,1)(向右一比特)、比特s+p(1,0)(向下一比特)和比特s+p(1,1)(向下一比特且向右一比特)。子码字1004由ci(m(n+1))表示,其中i在{0,1,2,3}之内。图10示出了父码字1002和子码字1004之间的空间关系。在确定子码字的置信度时使用父码字的估计或确定的置信度推断与比特s和比特s的相邻比特对应的4个父码字的置信度可以影响比特s的码字的置信度。对于如果比特s的相邻比特是三个相邻比特s+p(0,1)、s+p(1,0)和s+p(1,1),则对于i在{0,1,2,3}之内有并且其中

因此,在确定比特s的相邻比特的码字的置信度的一些方面中,相邻比特的码字的置信度可以影响比特s的码字的置信度。这可以通过共同具有至少一个子码字的相邻比特的重叠码字来推断。例如,四个相邻的更粗尺度码字可以共同具有子码字其中在四个相邻的更粗尺度码字重叠。

图11是对四个示例相邻码字被示为重叠以使得相邻码字共有子码字的描绘。结果,比特s的相邻比特的相邻码字的置信度影响尺度n的共有子码字的置信度。例如,当以更细尺度分析与比特s对应的捕获图像的更小部分时,诸如设备更新关于子码字的先验信息时,该置信度可以用于增加子码字的置信度。例如,与基于比特s的父码字置信度的所有潜在码字相比,设备200可以增加子码字的置信度。

在增加共有子码字的置信度的一些方面中,如果θ0和θ1表示两个正数,且θ1>θ0,则在给定粗尺度码字置信度的情况下,的条件概率或置信度如下面的等式(34)和(35)所示:

其中,在给定码字m(n+1)的情况下,k(n)的噪声定义为如下面的等式(36)所示:

如等式(34)和(35)所示,如果尺度n码字是更粗尺度n+1码字的子码字,并且如果图块对应于其对应图块被分析的比特的相邻比特,则尺度n码字对于该图块具有增加的置信度(因为θ1>θ0)。置信度如下面的等式(37)所示:

其中,变量γ是归一化向量,以确保尺度n的所有码字的概率或置信度的和为1(最大值)时,如下面的等式(38)所示:

∑k∈χ(n)p(k|m(n+1))=1(38)变量γ被定义为如下面的等式(39)所示:

参考回等式(31)并且已经确定了等式(32)和(33)中的项以及等式(35)中的已确定项p(k(n)|m(n+1)),设备200可以使用从粗到细的尺度优化步骤来确定码字的置信度的smap估计。

图12是对多尺度匹配滤波过程的实施方式的示例伪代码1200的描绘,多尺度匹配滤波过程可用于在为每个比特s确定码字时执行最优化。伪码200可以体现在软件、硬件或这两者的组合中,并且可以由设备200执行。

设备200开始于以最粗尺度n分析与比特s对应的捕获图像的部分。伪代码1200的第1行指示n=n,将尺度设置为最粗尺度。在一些示例实施方式中,任何尺度n码字对于对应图块存在的概率是均匀的(与第二码字相比,找到第一码字的概率相等,等等)。因为不存在更粗尺度,所以不存在父码字。码字存在的概率的均匀分布在下面的等式(40)中描述:

如果概率分布是均匀的,则可以使用例如ml估计或另一估计技术来估计在最粗尺度n的每个比特的码字的置信度,以及最粗尺度的模型参数的as和bs。伪码1200的第3-5行描绘了用于确定每个比特s的尺度为n的码字的置信度以及a和b示例性ml估计。在设备200已经确定了最粗尺度n的估计之后,设备200可以确定剩余的更细尺度码字的置信度的smap估计(诸如(n-1)、(n-2)等),诸如第13行所示。在一些示例实施方式中,可以为越来越细的尺度执行该确定,直到达到尺度0,诸如伪代码1200中的第6-17行所示。在完成对比特s的处理之后,设备200可以对捕获图像的其他比特执行伪代码1200。

如伪码1200所示,设备200为每个尺度的每个码字和捕获图像的每个比特确定置信度(见第3行和第13行)。虽然在伪码1200中没有示出,但是在一些替代实施方式中,设备200可以在每个尺度上检查对于比特是否存在任何有效码字。例如,设备200可以确定从13行确定的为比特s确定的尺度n码字的一个或多个置信度是否大于置信度阈值。在一些示例实施方式中,如果不存在有效码字,则设备200可以将比特s的码字确定为尺度n+1码字(诸如从为比特s确定的尺度n+1码字的置信度)。

在确定码字的置信度的一些示例中,给定的码字的后验概率被确定。下面的等式(41)描绘了在尺度n下的计算的示例:

在特定示例中,尺度0的计算在下面的等式(42)中描述:

在一些示例实施方式中(诸如对于图7b中的756),如果置信度(诸如等式(42)中描绘的后验概率)大于置信度阈值,则尺度0码字可能是有效的,如下面的等式(43)中所描绘的:

根据伪代码,为比特s确定每个尺度0码字的置信度。在一些示例实施方式中,设备200可以将比特s的码字确定为具有最大置信度的尺度0码字。

在一些其他示例实施方式中,可以为比特s确定尺度大于0的码字。如等式(41)所示,设备可以为比特s确定每个尺度码字的置信度。在一些示例中,设备200可以跨尺度比较码字的置信度以确定比特s的码字。例如,设备200可以对所有码字的置信度执行加权比较。权重可以被配置为使判决偏向于更细尺度的码字(其中,0尺度码字被给予最高权重),但是对于更粗尺度码字来说足够高的置信度可能足以使设备200确定比特s的更粗尺度码字。

在确定捕获图像的比特的码字之后,设备200可以生成场景的深度图。图13描绘了来自捕获图像502的深度图1302,其中对于不同的尺度,使用具有smap估计的多尺度匹配滤波来确定码字。与深度图504(使用4×4码字生成)和深度图506(使用7×7码字生成)相比,深度图1302包括比深度图506更高的分辨率,并且包括比深度图504更少的具有无效数据的部分。

本文描述的技术可以用硬件、软件、固件或其任意组合来实施,除非具体描述为以特定方式实施。描述为模块或组件的任何特征也可以在集成逻辑设备中一起实施,或者单独实施为离散但可互操作的逻辑设备。如果以软件实施,则这些技术可以至少部分地通过包括指令208的非暂时性处理器可读存储介质(诸如图2的示例设备200中的存储器206)来实现,当指令208被处理器204(或结构光控制器210或信号处理器212)执行时,使得设备200执行上述方法中的一个或多个。非暂时性处理器可读数据存储介质可以形成计算机程序产品的一部分,该计算机程序产品可以包括封装材料。

非暂时性处理器可读存储介质可以包括随机存取存储器(ram),诸如同步动态随机存取存储器(sdram)、只读存储器(rom)、非易失性随机存取存储器(nvram)、电可擦除可编程只读存储器(eeprom)、闪存、其他已知存储介质等。附加地或替代地,这些技术可以至少部分地通过处理器可读通信介质来实现,该处理器可读通信介质携带或传达指令或数据结构形式的代码,并且可以由计算机或其他处理器来访问、读取和/或执行。

结合本文公开的实施例描述的各种说明性逻辑块、模块、电路和指令可以由一个或多个处理器执行,诸如图2的示例设备200中的处理器204或信号处理器212。这种(多个)处理器可以包括但不限于一个或多个数字信号处理器(dsp)、通用微处理器、专用集成电路(asic)、专用指令集处理器(asip)、现场可编程门阵列(fpga)或其他等效的集成或分立逻辑电路。本文使用的术语“处理器”可以指任何前述结构或任何其他适于实施本文描述的技术的结构。此外,在一些方面中,本文所述的功能可以在如本文所述配置的专用软件模块或硬件模块内提供。此外,这些技术可以完全在一个或多个电路或逻辑元件中实施。通用处理器可以是微处理器,但是可选地,该处理器可以是任何传统的处理器、控制器、微控制器或状态机。处理器也可以实施为计算设备的组合,例如,dsp和微处理器的组合、多个微处理器、一个或多个微处理器与dsp核心的结合、或者任何其他这种配置。

虽然本公开显示了说明性的方面,但是应当注意,在不脱离所附权利要求的范围的情况下,可以在此进行各种改变和修改。例如,虽然结构光系统被描述为使用nir,但是也可以使用其他频率的信号,诸如微波、其他红外线、紫外线和可见光。此外,根据本文所述方面的方法权利要求的功能、步骤或动作不需要以任何特定的顺序来执行,除非另有明确说明。例如,如果由设备200、结构光控制器210、处理器204和/或信号处理器212执行,则所描述的示例操作的步骤可以以任何顺序和任何频率执行。此外,尽管可以一单数形式描述或要求保护元件,但是除非明确声明限制为单数形式,否则可以考虑复数形式。因此,本公开不限于图示的示例,并且用于执行本文描述的功能的任何手段都包括在本公开的各方面中。

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