用于结构光深度图的离群值检测和校正的方法和设备与流程

文档序号:15104881发布日期:2018-08-04 16:38阅读:143来源:国知局

本公开大体上涉及用于检测和校正结构光深度图不一致的系统和方法。



背景技术:

结构光系统发射和接收光图案或空间代码,以产生深度图。对象距发射器和接收器越远,接收到的投影在接收器处距其原始位置越近,这是因为传出投影和传入投影是更为平行的。相反地,对象距发射器和接收器越近,接收到的投影在接收器处距其原始位置越远。因此,接收到的码字位置与所发射的码字位置之间的差别给出了场景或对象的深度。结构光系统使用这些相对深度来产生场景的深度图或三维表示。深度图提取对范围从相机质量增强到计算机视觉的许多应用至关重要。

场景中的反射性或透明表面可呈现挑战。举例来说,反射可导致光反射远离接收器或正好到其光学元件中。在两种情况下,可超出结构光系统的动态范围。透明或半透明表面也导致困难,以及可使所发射的码字的恰当检测妥协的双反射和帧间反射。并且,半透明材料,例如皮肤、大理石、蜡、植物和人体组织可导致表面下散射。在情况下,需要检测和校正深度图中的离群值,以提供深度图的准确产生。



技术实现要素:

本公开的样本方面的概述如下。为了方便起见,本公开的一或多个方面在本文中可被简单地称为“一些方面”。

本文中所揭示的方法和设备或装置各自具有若干方面,所述方面中的任何单一者均不独自负责其所需属性。在不限制(例如)如由以下权利要求书所表示的本发明的范围的情况下,现将简要地讨论其较显著的特征。

根据一个方面,提供一种用于校正深度图中的错误的设备。所述设备可包含发射器,其经配置以投影所投影视野中的多个码字。所述设备可包含接收器,其经配置以接收所投影码字从所投影视野中的表面的反射。所述设备可包含错误校正电路,其经配置以:基于所述接收到的所投影码字的反射来产生深度图;将所述深度图分成多个节段;确定所述节段中的每一者中的下部分位数深度值和上部分位数深度值;基于(i)所述节段的下部分位数深度值的最小值和(ii)所述节段的上部分位数深度值的最大值,产生全局深度范围;识别深度图中的离群深度值;以及基于所述深度图中的信息来校正所述离群深度值。

对于一些实施例,基于(i)直方图分位数演算和(ii)均值和方差演算中的至少一者,来确定上部分位数深度值和下部分位数深度值,所述演算中的每一者是基于每一节段中的深度值范围以及所述深度值范围的连续子集,所述连续子集表示所述片段中的深度值的密度。对于一些实施例,所述深度值范围的所述连续子集包括下部分位数深度值和上部分位数深度值,所述下部分位数深度值是所述连续子集内的最低深度值,且所述上部分位数是所述连续子集中的最高深度值。对于一些实施例,投影所述多个码字包含传播光通过代码掩码,所述代码掩码具有多个符号。对于一些实施例,识别深度图中的离群深度值包括检测深度图中在全局深度范围之外的深度值。对于一些实施例,所述多个节段包括所述深度图的重叠区。

对于一些实施例,校正所述离群深度值包含:确定与所述离群深度值相邻的多个深度值,所述多个深度值在所述全局深度范围内;基于所述多个深度值计算第一深度值;以及用所述第一深度值来代替离群深度值。对于一些实施例,第一深度值是所述多个深度值的平均值。对于一些实施例,校正所述离群深度值包含:确定与离群深度值相邻的多个深度值,所述多个深度值在全局深度范围内;计算所述相邻深度值的水平梯度和垂直梯度中的至少一者;基于所述水平梯度和所述垂直梯度中的所述至少一者计算第一深度值;以及用所述第一深度值来代替所述离群深度值。在一些实施例中,所述多个节段中的每一节段的大小是用户可配置的。

根据另一方面,提供一种可由深度映射系统操作的校正深度图中的错误的方法。所述方法可进一步包含经由发射器来投影所投影视野中的多个码字。所述方法可进一步包含:在接收器处接收所投影码字从所述所投影视野中的表面的反射。所述方法可进一步包含经由错误校正电路,基于所述接收到的所投影码字的反射来产生深度图。所述方法可进一步包含经由错误校正电路,将所述深度图分成多个节段。所述方法可进一步包含经由错误校正电路,确定所述节段中的每一者中的下部分位数深度值和上部分位数深度值。所述方法可进一步包含经由错误校正电路,基于(i)所述节段的下部分位数深度值的最小值和(ii)所述节段的上部分位数深度值的最大值,产生全局深度范围。所述方法可进一步包含经由错误校正电路,识别所述深度图中的离群深度值。所述方法可进一步包含经由错误校正电路,基于所述深度图中的信息来校正离群深度值。

对于一些实施例,所述方法可包含:基于(i)直方图分位数演算和(ii)均值和方差演算中的至少一者,来确定上部分位数深度值和下部分位数深度值,所述演算中的每一者是基于每一节段中的深度值范围以及所述深度值范围的连续子集,所述连续子集表示所述片段中的深度值的密度。对于一些实施例,所述深度值范围的所述连续子集包括下部分位数深度值和上部分位数深度值,所述下部分位数深度值是所述连续子集内的最低深度值,且所述上部分位数是所述连续子集中的最高深度值。对于一些实施例,投影所述多个码字包括传播光通过代码掩码,所述代码掩码具有多个符号。对于一些实施例,识别深度图中的离群深度值包括检测深度图中在全局深度范围之外的深度值。对于一些实施例,所述多个节段包括所述深度图的重叠区。

对于一些实施例,校正所述离群深度值包含:确定与所述离群深度值相邻的多个深度值,所述多个深度值在所述全局深度范围内;基于所述多个深度值计算第一深度值;以及用所述第一深度值来代替离群深度值。对于一些实施例,第一深度值是所述多个深度值的平均值。对于一些实施例,校正所述离群深度值可包含:确定与离群深度值相邻的多个深度值,所述多个深度值在全局深度范围内;计算所述相邻深度值的水平梯度和垂直梯度中的至少一者;基于所述水平梯度和所述垂直梯度中的所述至少一者计算第一深度值;以及用所述第一深度值来代替所述离群深度值。在一些实施例中,所述多个节段中的每一节段的大小是用户可配置的。

根据另一方面,提供一种用于校正深度图中的错误的设备。所述设备可包含用于投影所投影视野中的多个码字的装置。所述设备可包含用于接收所投影码字从所投影视野中的表面的反射的装置。所述设备可包含用于基于所述接收到的所投影码字的反射来产生深度图的装置。所述设备可包含用于将所述深度图分成多个节段的装置。所述设备可包含用于确定所述节段中的每一者中的下部分位数深度值和上部分位数深度值的装置。所述设备可包含用于基于(i)所述节段的下部分位数深度值的最小值和(ii)所述节段的上部分位数深度值的最大值产生全局深度范围的装置。所述设备可包含用于识别所述深度图中的离群深度值的装置。所述设备可包含用于基于深度图中的信息来校正离群深度值的装置。

根据另一方面,提供一种非暂时性计算机可读媒体,其包括指令,所述指令当由装置执行时,致使所述装置经由发射器,投影所投影视野中的多个码字。还可致使所述装置:在接收器处接收所投影码字从所述所投影视野中的表面的反射。还可致使所述装置经由错误校正系统,基于所述接收到的所投影码字的反射来产生深度图。还可致使所述装置经由错误校正系统,将所述深度图分成多个节段。还可致使所述装置经由错误校正系统,确定所述节段中的每一者中的下部分位数深度值和上部分位数深度值。还可致使所述装置经由错误校正系统,基于(i)所述节段的下部分位数深度值的最小值和(ii)所述节段的上部分位数深度值的最大值,产生全局深度范围。还可致使所述装置经由错误校正系统,识别所述深度图中的离群深度值。还可致使所述装置经由错误校正系统,基于所述深度图中的信息来校正离群深度值。

附图说明

根据在结合图式进行的下文阐述的详细描述,各种特征、本质和优点可变得显而易见,在图式中,相同的元件符号贯穿全文对应地进行识别。

图1说明其中使用已知模式来照明场景且获得用其产生3维信息的深度信息的感测系统的实例。

图2说明含有错误的实例深度图。

图3说明可经配置以产生复合代码掩码和/或投影此类代码掩码的实例发射器装置的框图。

图4说明可经配置以从复合代码掩码获得深度信息的实例接收器装置的框图。

图5说明经配置以执行本文所揭示的错误校正方法中的一或多者的设备的一个实施例的框图。

图6说明分为若干节段的实例深度图,其中产生直方图来确定每一节段的有效深度范围。

图7说明确定全局最小值和全局最大深度值的实例深度图以及已校正离群深度值之后的所得深度图。

图8是说明用于识别和校正深度图中的离群深度值的方法的实例的流程图。

图9是说明用于识别和校正深度图中的至少一个离群深度值的设备的实例的框图。

具体实施方式

以下详细描述是针对本发明的某些具体实施例。然而,本发明可以众多不同方式实施。应显而易见的是,本文中的方面可按多种多样的形式实施,并且本文所揭示的任何特定结构、功能或这两者仅为代表性的。基于本文中的教示,所属领域的技术人员应了解,本文公开的方面可以独立于任何其它方面而实施,且可以各种方式组合这些方面中的两个或多于两个方面。举例来说,可使用本文所陈述的任何数目的方面来实施一种设备或可实践一种方法。另外,通过使用除了本文所陈述的方面中的一或多者之外或不同于本文所陈述的实施例中的一或多者的其它结构、功能性或结构与功能性,可实施此设备或可实践此方法。

本文中所描述的系统和方法可在托管主动空间感测系统的多种不同计算装置上实施。这些装置包含专用成像系统、移动电话、平板计算机、专用相机、可穿戴计算机、个人计算机、照相亭或一体机、个人数字助理、超移动个人计算机以及移动互联网装置。它们可使用通用或专用计算系统环境或配置。可适合与本发明一起使用的众所周知的计算系统、环境和/或配置的实例包含(但不限于)个人计算机、服务器计算机、手持式或膝上型计算机装置、多处理器系统、基于微处理器的系统、可编程消费型电子装置、网络PC、微型计算机、大型计算机,包含上述系统或装置中的任一者的分布式计算环境等。

根据本发明的方面,结构光主动感测系统100发射和接收空间代码以产生深度图。空间代码可由符号组成,例如二进制符号。随着空间代码的数目增大,用于每一空间代码的符号的数目增大,每一符号的带宽增大,显示每一符号所需的空间增大,并且深度掩码的分辨率降低。随着空间代码大小在空间上增大,深度掩码的分辨率降低。因此,需要减少所使用的唯一空间代码的数目,方法是使得有可能在每一帧内更频繁地重复代码。

随着发射器/接收器与对象之间的距离的增大,从发射器到对象的代码的投影的所发射的射线更为平行于从所发射的射线所照亮的对象的表面反射回来的接收到的(传入)代码。因此,当对象较远时从对象中反射并且通过接收器接收到的代码更接近于它们的原始位置(在所投影的代码图像中)。相反地,对象越接近于发射器和接收器,接收到的代码距在它们被发射时的代码的原始位置(在所投影的代码图像中)越远。接收到的和所发射的码字位置之间的差异可用于确定场景或对象的一或多个深度。结构光主动感测系统100可使用此类深度信息来产生场景的深度图或三维表示。场景或对象的深度图产生对许多应用可具重要性,包含例如相机质量增强、计算机视觉等。

如上文所论述,结构光系统将已知模式(例如码字)投影到场景中的至少一个对象上(有时为易于描述,称作投影到场景上),且处理所述接收到的图像来获得深度图。不可避免地,归因于散斑或其它噪声源,接收到的图案的某些区未经解码。这些未经译码区在深度图中形成孔,所述孔不含有深度信息,因此使所述图的效用降级。噪声还可形成经解码图案的区,其可能不提供准确深度值,或其可提供偶然准确的深度值。此类区在深度图中形成孔或干扰,其不含有深度信息或含有不准确的深度信息,从而使图的效用降级。

在一些实施例中,所公开的系统和方法可通过尝试确定最可能发射的代码,基于相邻代码来确定最可能发射的码字(有时为了易于参考称作“代码”)。

图1说明主动感测系统100的实例,其中使用已知图案来照明场景和获得深度信息,使用所述深度信息来从二维(“2D”)图像和/或信息产生三维(“3D”)信息。可在此类示范性主动感测系统100内实施本文中所描述的一或多个方面和/或特征。图1中所说明的系统包含发射器102和接收器108。发射器102投影光场通过代码掩码410,来将码字的图像104投影在对象或场景106上。本文中,出于描述清楚起见,“场景”可取决于所使用的情境而用于指代场景和对象中的任一个或两个。举例来说,场景可包含单个所关注对象,或多个所关注对象。接收器108捕获所反射的图像110和其中的码字。此实例说明代码掩码410的区段112如何投影(如区段114)到场景106的表面(例如,所投影区段116)上。所投影区段116接着可由接收器108捕获作为所捕获节段118。区段112可被用作可经唯一地识别的码字120。因此,通过运用唯一码字以此方式覆盖场景106,场景106的区段/部分可由经反射码字识别且此信息可用于感测感测装置与场景中的对象的距离(深度)。

从由接收器108捕获的图像,可经由场景106识别多个节段。每一所捕获的节段118可在接收器108处唯一地识别,且其相对于其它节段的位置是从所投影图像104的已知图案确定。从每一节/部分/窗识别代码可涉及图案分段(例如来解决失真),以及将感知的节段/部分/窗解码成对应代码。另外,三角测量可应用于每一所捕获节段/部分/窗口以确认定向和/或深度。多个此类节段/部分/窗口可经组合以将所捕获图像图案拼接在一起。以此方式,可产生场景106的深度图107。

图2说明包含包括无效值201的码字以及包括偶然有效值202的码字的实例深度图200。如上所陈述,,噪声可更改检测到的代码中的位,这可导致包含无效值201的码字和包含偶然有效值202的码字,从而产生视觉令人不愉快的深度图以及可能不大有用的深度图。

用于主动深度感测的代码

可通过将光照射通过代码掩码410来将结构光图案投影到场景上。投影通过代码掩码410的光可含有一或多个经棋盘形布置的代码掩码410原语。每一代码掩码410原语可含有空间代码阵列。码簿或数据结构可包含代码集合。空间代码、代码掩码410和代码掩码410原语可使用基底函数产生。可选择基底函数的周期性来满足对于埃尔米特对称性的聚合图案(用于消除重影图像与简化制造)、最小占空比(为确保每码字最小功率)、完美的窗口特性(用于最佳轮廓分辨率与高分辨率的代码填充)和随机移位(用于对象界线的改进检测)的需求。接收器可在解调、解码和校正所接收图案中的错误时利用既定符合约束的码簿和/或设计的属性。

空间代码的大小与对应的分辨率对应于代码掩码410上的空间代码的物理空间范围。大小可对应于表示每一码字的矩阵中的行与列的数目。码字越小,可检测的对象越小。举例来说,为了检测和确定在衬衫上的按钮与衬衫织物之间的深度差异,码字应不大于纽扣的大小。在一实施例中,每一空间代码可占用四行和四列。在一实施例中,代码可占用更多或更少的行和列(行×列),例如占用3×3、4×4、4×5、5×5、6×4或10×10个行和列。

空间代码的空间表示对应于每一码字元素如何在代码掩码410上图案化以及接着投影到场景上。举例来说,每一码字元素可使用一或多个点、一或多个线段、一或多个网格、某一其它形状或其某一组合来表示。

空间代码的“占空比”对应于码字中所断言的位或部分(例如,“1”)的数目与未断言的位或部分(例如,“0”)的数目的比率。当包含码字的经译码光图案投影到场景上时,具有值“1”的每一位或部分可具有能量(例如,“光能”),而具有值“0”的每一位可能没有能量。为了码字更容易被检测,码字应具有充足能量。低能量码字可更难以检测且可更易受噪声影响。举例来说,如果码字中的8个或多于8个位为“1”,那么4×4码字具有50%或大于50%的占空比。可存在对于个别码字的最小(或最大)占空比约束或对于码簿中的代码集合的(例如)平均占空比的占空比约束。

代码的“轮廓分辨率”或“完美窗口”特性指示当码字移位某一量,例如一位旋转时,所得数据表示另一码字。码字移位的量可被称为移位量。具有高轮廓分辨率的代码可使结构光深度感测系统能辨识相对较小的对象边界,且提供对不同对象的辨识连续性。行尺寸中的1和列尺寸中的2的移位量可对应于由沿行尺寸向右的一个位位置和沿列尺寸向下的两个位位置的移位。码字的高轮廓分辨率集合使在所接收图像上将窗每次移动一行或一列,且确定在每一窗位置处的深度成为可能。这使得能够通过使用在以所接收图像的第三行和第三列为中心的开始点处的5×5窗,且移动5×5窗到从第三行到第三到最后一行和第三列到第三到最后一列的每一行、列位置来确定深度。由于码字重叠,窗的大小可基于待确定的对象深度(例如,衬衫上的纽扣)的分辨率。

代码的对称性可指示代码掩码或码簿原语具有埃尔米特对称性,其与使用非埃尔米特对称的码簿原语或图案相比可提供若干益处。具有埃尔米特对称性的图案沿X和Y(行和列)轴“翻转”或对称。

代码掩码410原语的混叠特性对应于相同的两个码字之间的距离。当光学图案包含经棋盘形布置的码簿原语时,且当原语中的每一码簿是唯一的时,混叠距离可基于码簿原语的大小。混叠距离可因此表示指示码簿原语的每一码字与码簿原语的每一其它码字不同且码簿原语作为整体为唯一的唯一性准则。混叠距离可对一或多个接收器装置为已知的,且可用于防止码字解调期间的混叠。代码掩码410的基数对应于码簿原语中的唯一代码的数目。

发射器装置

图3是说明可经配置以产生复合代码掩码和/或投影此复合代码掩码的发射器装置的实例的框图。发射器装置302可包含处理电路304(或处理器),其耦合到存储器/存储装置306、图像投影装置308和/或有形媒体309。

在第一实例中,发射器装置302可经耦合以包括有形媒体309。有形媒体可界定、包含和/或存储复合代码掩码314。所述复合代码掩码可包含与载体层组合的代码层。代码层可包含由多个符号定义的可唯一地识别的经空间译码的码字。所述载体层可独立地确定且不同于所述代码层,且包含对于投影后的失真稳健的多个参考对象。可在投影之前,通过合成点扩散函数来使所述代码层与载体层中的至少一者预成形。

在第二实例中,处理电路304可包含代码层产生器/选择器316、载体层产生器/选择器318、复合代码掩码产生器/选择器320和/或预成形电路322。代码层产生器/选择器316可选择预先存储的代码层310且/或可产生此代码层。载体层产生器/选择器318可选择预存储的载体层312且/或可产生此载体层。复合代码掩码产生器/选择器可选择预先存储的复合代码掩码314和/或可将代码层310和载体层312进行组合来产生复合代码掩码314。任选地,处理电路304可包含预成形电路,其使复合代码掩码314、代码层310和/或载体层312预成形,来补偿信道中的预期失真,复合代码掩码通过所述信道投影。

在一些实施方案中,多个不同代码层和/或载体层可能可用,其中每一此载体或代码层可经配置以用于不同条件(例如,用于处于不同距离的对象,或发射器装置与接收器装置之间的不同配置)。举例来说,对于第一距离或范围内的对象,可使用与处于第二距离或范围处的对象不同的代码层与载体层的组合,其中所述第二距离大于所述第一距离。在另一实例中,可取决于发射器装置与接收器装置的相对定向而使用代码与载体层的不同组合。

图像投影装置308可用于将所产生/选择的复合代码掩码投影到所关注对象上。举例来说,激光或其它光源可用以将复合代码掩码投影到所关注的对象上(例如,经由投影信道)。在一个实例中,复合代码掩码314可在红外线光谱中投影,因此其对于肉眼可能不可见。替代地,红外线光谱范围中的接收器传感器可用于捕获此类所投影的复合代码掩码。

接收器装置操作

图4是说明经配置以接收从对象反射的复合代码掩码且从复合代码掩码确定深度信息的接收器装置402的实例的框图。接收器装置402可包含耦合到存储器/存储装置406和接收器传感器408(例如,图像捕获装置)的处理电路404。在一些实施例中,接收器传感器408为图像捕获装置,例如相机。

接收器传感器408可经配置以获得投影在对象的表面上的复合代码掩码的至少一部分。举例来说,接收器传感器可捕获投影在目标对象的表面上的复合代码掩码的至少一部分的图像。复合代码掩码可由以下界定:(a)由多个符号界定的可唯一识别的经空间译码码字的代码层,和(b)载体层,其可独立地确定且不同于所述代码层,且包含对于投影后的失真稳健的多个参考对象。所述代码层与载体层中的至少一者可在投影之前通过合成点扩散函数预成形。在一个实例中,接收器传感器408可在红外线光谱中捕获复合代码掩码。

仍参考图4,在一些实施例中,代码层可包括n1×n2个二进制符号,其中n1和n2是大于二的整数。在复合代码掩码中,每一符号可为不同于参考对象的两个灰阶阴影中的一者中的线段。代码层的符号可在至少一个维度上交错。载体层参考对象可包括之前具有保护间隔的多个相等间隔的参考条带所述参考条带与所述保护间隔可具有不同宽度。每一参考条带相对于保护间隔宽度的宽度可由发射器装置和/或接收器装置的预期光学扩展决定。

处理电路404可包含参考条带检测器电路/模块412、失真调整电路/模块414、码字识别器电路/模块416、深度检测电路/模块418和/或深度图产生电路/模块420。

参考条带检测器电路/模块412可经配置以检测复合代码掩码的部分内的参考条带。失真调整电路/模块414可经配置以基于参考条带的相对于参考条带的实际定向的预期定向来调整复合代码掩码的所述部分的失真。码字识别器电路/模块416可经配置以从复合代码掩码的所述部分内界定的窗中获得码字。深度检测电路/模块418可经配置以基于以下各项来获得对应于窗的目标对象的表面部分的深度信息:(a)复合代码掩码的单个投影,以及(b)所述窗相对于已知参考代码掩码的位移。

深度图产生电路/模块420可经配置以基于检测为未失真复合代码掩码的所述部分内的不同重叠窗的多个码字来汇编所述对象的深度图。

在一个实例中,代码层与载体层中的至少一者的预成形增大了复合代码掩码的投影期间的功率效率,使得与未成形复合代码掩码相比,接收器传感器感知到更多功率。

在一个实例中,所使用的合成点扩散函数可基于以下各项中的至少一者而选自多个点扩散函数:(a)将经由其投影复合代码掩码的预期信道条件,(b)复合代码掩码投影到其上的表面的特性,和/或(c)将接收所投影复合代码掩码的接收器传感器的灵敏度。在另一实例中,合成点扩散函数可基于以下各项中的至少一者而选自多个点扩散函数:(a)对将投影复合代码掩码的投影仪的第一信道响应;和/或(b)对从将投影复合代码掩码的投影仪到将接收复合代码掩码的接收器传感器的路径的第二通道响应。

错误检测装置

图5是说明经配置以执行本文中所公开的错误校正方法中的一或多者的设备的实施方案的框图。实例深度映射装置500包含光发射器502、光接收元件504、处理器506和存储器508。光发射器502、光接收元件504、处理器506和存储器508通过总线510可操作地连接。

存储器508可存储配置处理器506来执行本文中论述的方法的一或多个功能的指令。举例来说,存储于存储器508中的指令可配置处理器506来控制光发射器502发射将结构光编码为码字的光以便照明目标对象。存储于存储器508中的指令可进一步致使处理器506控制光接收元件504来接收从目标对象反射的光,且产生编码在反射光中的数据。

图6说明可如何检测深度图中的错误。在错误校正之前示出实例深度图200。包含无效值201的码字可被视为较暗的有阴影区,例如在深度图200的最右边缘中。包含偶然有效值202的码字可被视为深度图中的变色斑点或区的分散,通常与周围的区的色彩或阴影明显不同。

本文所述的错误校正系统和方法可在接收到无效代码时或接收到偶然有效代码时检测错误。可通过基于下文所描述的方法中的任一者确定有效码字,来执行错误的校正。在一个实例实施例中,错误校正系统可将深度图200分为多个节段(例如601a、602a、603a和604a)。所述多个节段可相对于每一节段在大小上变化,或所述节段可采用大小均一性。所述节段的大小可为用户可配置的,或取决于所投影图像104和其中的代码掩码410的大小。可影响所述多个节段中的每一节段的大小的其它变量是代码掩码410中的每一唯一码字120的大小、代码掩码410中的唯一码字120的数目、深度图200的分辨率、所投影图像104的大小、所反射图像110的大小等。在一个实例中,可基于所投影图像104的大小,将深度图分成若干节段,所述节段是多个粗略重叠区。应注意,此实例不应被视为限制性的,因为所述数目的节段可能不具有任何重叠特征,且可分为严格邻近的,或重叠和邻近特征的组合。

仍参看图6,错误校正系统可确定每一节段中的码字的数目,且以根据其对应深度值的间隔来对所述数目的码字进行分类。所述错误校正系统可进一步确定表示每一节段的深度值的最高密度的间隔范围。这可使用直方图分位数、均值和方差、密度分布,或任何其它推断两个限界的适当方法来实现。在一个实例中,处理器506可分析光接收元件504接收到的节段601a的码字,且确定所述节段的深度值范围。举例来说,在计算节段601a的深度值的密度分布时,处理器506可确定由节段601a中的深度值表示的多个间隔或值范围,且接着确定在包含于节段601a中的所有深度值中,有多少深度值落在每一间隔中。这在图6中说明为节段601a形成的直方图601。表示节段601a的深度值的密度分布的直方图601包含x轴和y轴。x轴可指示在特定节段中找到的深度值的多个间隔,而y轴可指示与每一间隔相关联的若干深度值,或换句话说,所述特定节段的深度值的分布密度。

参看直方图601,深度值601d的最大密度出现在x轴上的大约315和335的间隔值之间。应注意,x轴和y轴上提供的值表示实例标度,且不应被视为限制性的。类似地,直方图602示出在x轴上大约310和335的间隔值之间出现的深度值602d的最大密度。直方图603示出在x轴上大约310和340的间隔值之间出现的深度值603d的最大密度,且直方图604示出在x轴上大约340和355的间隔值之间出现的深度值604d的最大密度。因此,直方图提供处理器506为每一节段调配的数据的实例说明。注意,当应用给定节段的统计分析时,所述给定节段的深度值保持不变。然而,在一个实例实施例中,节段中的值可由固定或可配置的加权函数来加权。举例来说,出于提供统计分析的目的,深度值可取决于其在给定节段中的位置、其在深度图200中的位置,或根据用户配置的加权函数而变化。

参看节段601a,一旦处理器506已组织节段601a的深度值,并确定最高密度的间隔,处理器就可计算最小间隔601b和最大间隔601c。仍使用节段601a作为实例,可将最小间隔601b确定为深度值315,且可将最大间隔601c确定为深度值335。参看节段602a,一旦处理器506已组织节段602a的深度值,并确定最高密度的间隔,处理器就可计算最小间隔602b和最大间隔602c。仍使用节段602a作为实例,可将最小间隔602b确定为深度值310,且将最大间隔602c确定为深度值335。参看节段603a,一旦处理器506已组织节段603a的深度值,并确定最高密度的间隔,处理器就可计算最小间隔603b和最大间隔603c。仍使用节段603a作为实例,可将最小间隔603b确定为深度值310,且将最大间隔603c确定为深度值340。参看节段601a,一旦处理器506已组织节段601a的深度值,并确定最高密度的间隔,处理器就可计算最小间隔601b和最大间隔601c。仍使用节段601a作为实例,可将最小间隔601b确定为深度值340,且可将最大间隔601c确定为深度值355。

使用直方图601作为实例,确定最小间隔601b和最大间隔601c可为用户可配置特征。举例来说,用户可实施使深度值601d的范围变窄为固定或可配置分位数的约束条件,从而将最小间隔601b和最大间隔601c放在包含给定节段中的深度值的百分比的值处。举例来说,固定分位数可将最小间隔601b和最大间隔601c限制为包括给定节段的深度值的90%或更多的间隔值。换句话说,包括其余深度值的离群10%的间隔将不包含于最小间隔601b与最大间隔601c之间的深度范围中。在另一实例中,用户可以类似方式使深度值的范围变宽,或可手动输入每一节段的限制值。以此方式,用户可输入一个最小间隔601b限制和一个最大间隔601c限制,或用户可为片段601a输入多个最小间隔限制和最大间隔限制。

仍参看实例节段601a,如果相邻码字在值范围内,那么处理器506可通过将节段601a的区域中的落在深度值601d的范围之外的深度值改变为相邻码字的深度值,来将片段601a的深度值限制为最小间隔601b和最大值间隔601c内的深度值601d的范围。举例来说,节段601a可包括在处理器506确定的深度值601d的范围之外的深度值。这些值可包含无效值201或偶然有效值202。如果确定节段601a中的深度值在最小间隔601b和最大间隔601c所限制的深度值601d的范围之外,那么处理器506可确定此值为无效。处理器506可查看与无效值相邻的深度值,且确定所述相邻值是否在深度值601d的范围内。如果确定相邻深度值在深度值601d的范围内,那么处理器506可确定相邻深度值的平均值,并将所述平均值指派给无效深度值,用来替换它。在另一实例中,用户可将节段601a的落在深度值601d的范围之外的深度值手动改变为特定值。

图7说明使用为所述节段中的每一者确定的间隔值来对整个深度图200进行全局错误校正以便产生经校正深度图700的方法。注意,在优选实施例中,可将全局错误校正方法应用于深度图200,而不如上文所论述在节段等级上校正深度值。图7包含全局错误校正之前的实例深度图200,以及来自取自实例深度图200的两个单独节段的两个实例直方图(703和704)。第一直方图703表示给定节段的深度值的密度分布。在第一直方图703的实例中,示出具有深度值703d的最高密度的两个区。第一区具有从大约310到320的深度值的最高密度,第二区具有从大约325到340的深度值的最高密度。在此实例中,确定与第一直方图703相关联的节段包含深度图200的所有其它节段的最低深度值间隔703e。

第二直方图704表示给定节段的深度值的密度分布。在第二直方图704的实例中,示出具有深度值704d的最高密度的两个区。第一区具有从大约340到350的深度值的最高密度,第二区具有从大约350到355的深度值的最高密度。在此实例中,确定与第二直方图704相关联的节段包含深度图200的所有其它节段的最高深度值间隔704e。

使用间隔值(703e和704e)的全局错误校正可用于校正深度图200中的离群深度值。在一个实例中,处理器506可将深度图200分成多个节段,并为每一节段确定最小和最大间隔以及深度值范围,如上文所描述。处理器506接着可将所有节段的最小和最大间隔进行比较,且确定在所述多个节段中找到的深度值间隔703e和在所述多个节段中找到的最高深度值间隔704e。处理器接着可使用落在最低深度值间隔703e与最高深度值间隔704e之间的深度值范围作为有效深度范围,来定位深度图200中落在此范围之外的无效深度值。

可使用多种技术中的任一者来校正深度图200中的无效和离群深度值。处理器506可将无效深度值改变为有效的相邻深度值。处理器506可确定无效深度值周围的深度值的有效性。在确定周围深度值的有效性后,处理器可通过基于有效相邻深度值的内插,用新值来替换无效深度值来校正所述无效深度值。内插方法可包含:求周围深度值的平均值;使用图案辨识软件来确定图案;以及校正无效深度值来维持所述图案,或任何其它内插方法。举例来说,在一些实施例中,对于将校正的每一离群深度值,可确定节段内的N个(例如十个)最近有效深度值或整个深度图200,且可将所述N个深度值的经加权(例如通过距离)平均值计算为相应离群值的新深度值。举例来说,如果(d0,...,d9)是距离群深度值P最近的十个有效深度值的值,且(D0,...,D9)是从这些深度值到离群深度值P(距离依次递增)的距离,且:

接着,经加权平均值(w)为:

经加权平均值可用于替换离群深度值P。在一个实施例中,为了替换离群深度值,可使用八个最近相邻者(d0…d7)。举例来说,所述八个最近相邻深度值可包含两个水平相邻者、两个垂直相邻者,以及四个拐角相邻者。N可为取决于深度值在深度图中的位置的动态数目。举例来说,深度图的拐角中的深度值将具有比深度图的中间的深度值小的N值。在另一实例中,N值可对深度图的拐角中的离群深度值保持相同,在此情况下,相邻深度值可包含不紧邻离群深度值的深度值。N也可为用户可配置数目,且可经配置以包含比距离群深度值最近的八个深度值多或少的深度值。

作为另一实例,在一些实施例中,梯度填充可用于校正离群深度值。举例来说,处理器506可考虑离群深度值周围的有效深度值的区域,且可将方向值指派给有效深度值,所述方向值指示使深度值升高或降低的趋势。基于此趋势,处理器506可经配置以估计深度值来替换离群深度值。在一些实施例中,可使用低频深度/视差填补技术。举例来说,可使用有效数据来拟合平面d(u,v)=au+bv+c的技术,其中(u,v)是深度值的坐标。这通过将其替换深度值设置为au*+bv*+c来校正离群深度值(u*,v*)。注意,在一些实施例中,与平面不同的形状可用作用于替换像素的模型。在其它实施例中,可使用用于校正像素的其它方法。

图8是说明检测和校正深度图107中的离群深度值的过程800的实例的流程图。在框802处,过程800投影来自发射器的在所投影视野中的多个码字。在一些实施方案中,框802的功能性可由图1中所示的发射器102或图3中的发射器装置302执行。在框804处,过程800接收所投影码字从所述视野中的表面的反射。在一些实施方案中,框804的功能性可由图1中所示的接收器108或图4中所示的接收器装置402执行。在框806处,过程800基于所述接收到的所投影码字的反射来产生深度图。在一些实施方案中,框806的功能性可由图4中所示的处理电路404或图5的深度映射装置500执行。在框808处,过程800将深度图分成多个节段。在一些实施方案中,框808的功能性可由图4中所示的处理电路404或图5的深度映射装置500执行。在框810处,过程800确定节段中的每一者中的下部分位数深度值和上部分位数深度值。在一些实施方案中,框810的功能性可由图4中所示的处理电路404或图5的深度映射装置500执行。在框812处,过程800基于(i)节段的下部分位数深度值的最小值和(ii)节段的上部分位数深度值的最大值,产生全局深度范围。在一些实施方案中,框812的功能性可由图4中所示的处理电路404或图5的深度映射装置500执行。在框814处,过程800识别深度图中的离群深度值。在一些实施方案中,框814的功能性可由图4中所示的处理电路404或图5的深度映射装置500执行。在框816处,过程800校正离群深度值。在一些实施方案中,框816的功能性可由图4中所示的处理电路404或图5的深度映射装置500执行。

图9是说明用于检测和校正深度图107中的离群深度值的设备900的实例的框图。设备900可包含用于投影所投影视野中的多个码字的组件902。在一些实施方案中,用于投影的组件902可由图1中所示的发射器102或图3中的发射器装置302执行。设备900可包含用于接收所投影码字从所投影视野中的表面的反射的组件904。在一些实施方案中,用于接收的组件904可由图1中所示的接收器108或图4中所示的接收器装置402。设备900可包含用于所述接收到的基于所投影码字的反射产生深度图的组件906。在一些实施方案中,用于产生的组件906可由图4中所示的处理电路404或图5的深度映射装置500执行。设备900可包含用于将深度图划分成多个节段的组件908。在一些实施方案中,用于划分的组件908可由图4中所示的处理电路404或图5的深度映射装置500执行。所述设备900可包含用于确定所述节段中的每一者中的下部分位数深度值和上部分位数深度值的组件910。在一些实施方案中,用于确定910的组件可由图4中所示的处理电路404或图5的深度映射装置500执行。设备900可包含用于基于(i)所述节段的下部分位数深度值的最小值和(ii)所述节段的上部分位数深度值的最大值产生全局深度范围的组件912。在一些实施方案中,用于产生的组件912可由图4中所示的处理电路404或图5的深度映射装置500执行。设备900可包含用于识别深度图中的离群深度值的组件914。在一些实施方案中,用于识别的组件914可由图4中所示的处理电路404或图5的深度映射装置500执行。设备900可包含用于基于深度图中的信息来校正离群深度值的组件916。在一些实施方案中,用于校正的组件916可由图4中所示的处理电路404或图5的深度映射装置500执行。

图式中所说明的组件、步骤、特征和/或功能中的一或多者可以重新布置和/或组合成单个组件、步骤、特征或功能或在若干组件、步骤或功能中实施。在不脱离本文中揭示的新颖特征的情况下,还可添加额外元件、组件、步骤和/或功能。图式中所说明的设备、装置和/或组件可经配置以执行图式中描述的方法、特征或步骤中的一或多者。本文中所描述的新颖算法还可有效地实施于软件中和/或嵌入于硬件中。

而且,应注意,实施例可描述为描绘为流程图、结构图或框图的过程。尽管流程图可将操作描述为顺序过程,但是许多操作可并行或同时执行。另外,操作的顺序可重新安排。当过程的操作完成时,所述过程终止。过程可对应于方法、功能、过程(procedure)序、子例程、子程序等。当过程对应于功能时,过程的终止对应于功能返回到调用功能或主功能。

此外,存储媒体可表示用于存储数据的一或多个装置,包含只读存储器(ROM)、随机存取存储器(RAM)、磁盘存储媒体、光学存储媒体、快闪存储器装置和/或其它机器可读媒体、处理器可读媒体,和/或用于存储信息的计算机可读媒体。术语“机器可读媒体”、“计算机可读媒体”和/或“处理器可读媒体”可包含(但不限于)非暂时性媒体(例如,便携式或固定存储装置)、光学存储装置以及能够存储、容纳或运载指令和/或数据的各种其它媒体。因此,本文所述的各种方法可完全或部分地由可存储在“机器可读媒体”、“计算机可读媒体”和/或“处理器可读媒体”中且由一个或多个处理器、机器和/或装置执行的指令和/或数据来实施。

此外,诸实施例可由硬件、软件、固件、中间件、微码或其任何组合来实施。当以软件、固件、中间件或微码实施时,用以执行必要任务的程序代码或代码段可存储在机器可读媒体中,例如存储媒体或其它存储装置中。处理器可执行必要任务。代码段可表示过程、函数、子程序、程序、例程、子例程、模块、软件包、类,或指令、数据结构或程序语句的任何组合。代码段可通过传递和/或接收信息、数据、自变量、参数或存储器内容耦合到另一代码段或硬件电路。信息、自变量、参数、数据等可经由包含存储器共享、消息传递、权标传递、网络传输等任何合适的手段传递、转发或传输。

结合本文中所揭示的实例描述的各种说明性逻辑块、模块、电路、元件和/或组件可运用通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它可编程逻辑组件、离散门或晶体管逻辑、离散硬件组件或其经设计以执行本文中所描述的功能的任何组合来实施或执行。通用处理器可为微处理器;但在替代方案中,处理器可为任何常规处理器、控制器、微控制器或状态机。处理器还可以实施为计算组件的组合,例如DSP与微处理器的组合、多个微处理器的组合、一或多个微处理器与DSP核心的联合,或任何其它此类配置。

结合本文中所揭示的实例描述的方法或算法可以处理单元、编程指令或其它方向的形式直接体现在硬件、可由处理器执行的软件模块或两者的组合中,且可包含于单个装置中或跨越多个装置而分布。软件模块可驻留在RAM存储器、快闪存储器、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可移动的磁盘、CD-ROM,或此项技术中已知的任何其它形式的存储媒体中。存储媒体可耦合到处理器,使得处理器可从存储媒体读取信息和将信息写入到存储媒体。在替代例中,存储媒体可与处理器成一体式。

所属领域的技术人员将理解结合本文中所揭示的实施例描述的各种说明性逻辑块、模块、电路和算法步骤可实施为电子硬件、计算机软件或两者的组合。为清晰地说明硬件与软件的这种可互换性,上文已大体就各种说明A性组件、块、模块、电路和步骤的功能性加以描述。此类功能性是实施为硬件还是软件取决于特定应用以及强加于整个系统的设计约束。

本文中所描述的本发明的各种特征可在不脱离本发明的情况下实施于不同系统中。应注意,前述实施例仅为实例,且不应解释为限制本发明。实施例的描述意图为说明性的,且不限制权利要求书的范围。因而,本发明的教示可易于应用于其它类型的设备,且许多替代方案、修改和变化对于所属领域的技术人员将显而易见。

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