一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

生成深度图像的方法及系统与流程

2022-11-23 17:03:49 来源:中国专利 TAG:


1.本说明书涉及图像处理,更具体地,涉及立体型(stereo-based)稠密深度图像。


背景技术:

2.通常,深度图像可以包括逐像素(pixel-wise)信息,该信息与传感器采集的原始图像中的对应像素表示的场景的一部分到传感器的观察位置的距离(例如,连接两个图像传感器的焦点之间的线)有关。根据逐像素距离信息的密度,深度图像可以进一步分为稀疏深度图像和稠密深度图像。例如,稠密深度图像中可以具有原始图像中每个像素的距离信息。例如,可以利用插值或人工智能模型,从相应的稀疏深度图像中生成常规稠密深度图像。
3.稠密深度图像广泛用于计算机图形学和计算机视觉中。基于稠密深度图像的技术可以包括:生成图像效果,例如通过将原始图像中的像素进行不同程度的模糊来模拟浅景深,模拟原始图像中的物体的雾化效果,以及为原始图像中的对象生成合适的阴影(shadow)和暗部(shade);从2d图像生成3d模型;以及利用z缓冲和z剔除渲染3d场景,仅举几例。此外,在一些实现方式中,稠密深度图像可用于定位和移动或姿态控制。
4.从场景中提取深度信息以生成稠密深度图像的常规方法通常可以分为两类:主动方法和被动方法。通常,主动方法涉及向场景中的对象发射光束或激光束等光信号,并测量该光信号的相应往返时段。采用主动方法的技术和传感器包括飞行时间(time-of-flight,tof)相机和光探测和测距(light detection and ranging,lidar)方法。另一方面,被动方法通常涉及利用具有已知相对位移和姿态的两个或多个传感器(例如立体相机)针对特定场景生成多个原始图像(例如,一个参考原始图像和一个或多个目标原始图像),并通过最小化投影后的光度差异(例如,校正)为原始图像中的每个像素生成深度图像。


技术实现要素:

5.以下说明书中描述的技术涉及利用被动方法生成稠密深度图像以提取深度信息。
6.更具体地,因为主动方法(例如,tof或lidar相机)是通过测量每个发射光信号的往返时段来获取特定场景中对象的深度信息,所以主动方法的性能易受到天气条件(例如下雨和下雪)、外部干扰、以及发射光源的功率有限等条件影响。此外,主动方法通常需要高精度硬件来准确测量往返时段,这增加了获取合适深度图像的成本,因此主动方法难以扩大规模。
7.与主动方法相比,被动方法的优势在于常规被动方法可以以较低的成本生成深度图像,并且对于不同的天气、干扰和功率条件具有较高的鲁棒性。一种常规被动方法是通过像素匹配过程中的约束条件和优化过程中的平滑约束来最小化光度差异(例如成本)从而生成深度图像。更具体地,平滑约束用于惩罚深度图像中所有像素的深度值的不连续性。另一示例性常规被动方法包括基于逐像素颜色信息的深度不连续性的平滑约束。然而,由于上述常规被动方法对所有像素应用统一的平滑约束或基于逐像素颜色信息的各个平滑约
束,因此输出的深度图像有时可能不准确。例如,常规被动方法生成的深度图像往往无法与原始图像中呈现的各个对象适当地关联起来。再如,深度图像可能会在原始图像中采集的相同对象内呈现显著不连续性。
8.本说明书描述的技术涉及通过最小化优化成本函数从一个或多个原始图像中生成准确的深度图像。更具体地,优化成本函数是根据优化惩罚值生成的,该优化惩罚值是为位于原始图像中采集的对象的边界上的像素定制的。所描述的技术还涉及利用机器学习模型生成边界像素的预测,以及基于逐像素显著性信息确定边界像素的优化惩罚值。
9.通篇使用的术语“传感器”指用于获取场景信息的各种合适的光学传感器。例如,传感器可以包括图像传感器(例如,数字单镜头反光(dslr)相机)、激光传感器或视频传感器。
10.整个说明书中,术语“原始图像”指由上述传感器采集的数据。例如,原始图像可以包括与dslr相机采集的照片或视频剪辑对应的图像数据。
11.通篇使用的术语“边界像素”指大体上表示对象相对于背景的边界的像素,或原始图像中采集的两个或多个部分重叠或相交的对象的边界的像素。更具体地,对象的边界像素可以包括原始图像中呈现的对象的最外边缘处的像素。此外,边界像素可以包括特定宽度的像素。例如,边界像素可以与对象的边缘相距单个像素、两个像素或五个像素的宽度。边界像素的宽度可以根据对象的大小、原始图像的大小、或原始图像的分辨率来确定。
12.通篇使用的术语“成本函数”指对光度差进行最小化以根据输入图像生成深度图像的目标函数。成本函数可以接收原始图像中每个像素的输入位置、生成成本路径的方向以及特定的视差层次,并输出表示光度差异度量的特定值(例如,成本值)。术语“成本值”表示成本函数输出的值,该成本函数用于处理特定输入(例如,特定视差层次的特定像素)。通常,输入图(map)的成本函数包括多个像素,因此一个成本函数可以生成多个成本值,每个成本值对应一个特定像素。本文所描述的技术涉及优化成本函数的函数形式,以生成准确的深度图像,下面进行详细描述。
13.为简便起见,以下说明书中,“原始图像”也称为图像,“稠密深度图像”也称为深度图像,“成本值”也称为成本。
14.可以对本说明书中描述的主题的特定实施例进行实施以实现以下优点中的一个或多个。
15.以下描述的技术可以提高根据表示场景的一个或多个图像生成深度图的准确性。更具体地,以下描述的技术包括图像中边界像素的相应平滑度惩罚,这放宽了对跨对象边界的深度连续性的要求。因此,与传统技术相比,深度图的准确性显著提高。此外,对边界像素和可选的其他像素的惩罚值进行了优化,因此生成的深度图像还可以基本上保持图像中采集的对象的几何细节(例如,对象的形状和姿态)。例如,利用所述技术生成深度图时,原始图像中采集的人类手指和发丝等细节会得以保留,而传统技术中,为了提高生成的深度图的整体准确性,可能会牺牲甚至忽略这类几何细节。
16.此外,以下描述的技术可以很容易实现扩大生产和流水线化,以有效处理更大的输入图像或大量输入图像。更具体地,配置为执行所述技术的系统可以以分布式方式对获取优化惩罚值和优化相应成本函数的过程进行流水线化。例如,系统可以首先基于多个候选惩罚值生成多个候选成本函数。然后,系统可以将每个候选成本函数分配给相应的计算
设备,以利用并行操作计算相应的成本值。之后,系统可以基于相应的成本值确定优化惩罚值和优化成本函数。
17.此外,本说明书中描述的技术可以稳健地实施在不同条件下采集的输入图像上。基于逐像素显著性信息对边界值的平滑度惩罚值进行优化。采用该技术的系统可以根据不同条件下采集的输入图像生成准确的深度图像,这些图像可以包括利用相同相机在不同背景光或天气条件下采集的图像,在相同位置采集的但包括不同数量、大小、颜色以及位置的对象的图像,以及利用具有不同光源功率的不同相机为同一场景采集的图像,仅举几例。
18.此外,以下描述的技术可以通过利用机器学习模型生成边界像素的预测来进一步提高计算效率,无需识别输入图像的纹理和分类信息。这可以提高计算效率,因为对于图像大小不同的输入图像,每个都包括不同数量和类型的对象,通常很难应用通用的机器学习模型为这类输入图像的每个对象生成纹理和分类预测。
19.本说明书主题中的一个或多个实施例通过附图和以下描述进行详细说明。本主题的其他特征、方面和优点将通过以下描述、附图和权利要求变得更明显。
附图说明
20.图1示出了利用优化惩罚值生成优化深度图像的示例性系统;
21.图2示出了用于生成输入数据的边界像素预测的示例性边界提取引擎;
22.图3示出了示例性惩罚优化引擎采用的示例性方法,该示例性惩罚优化引擎配置为基于形态分析来确定优化惩罚值;
23.图4示出了利用图1的系统生成优化深度图像的示例性过程的流程图;
24.图5示出了基于一个或多个波形生成显著性值的示例性过程;
25.不同附图中的相同附图标记和名称表示相同的元件。
具体实施方式
26.图1示出了利用优化惩罚值生成优化深度图像的示例性系统100。通常,系统100用于优化由图像数据生成的立体型稠密深度图像。
27.如图1所示,用于执行本说明书描述的技术的系统100可以包括图像处理子系统120,该图像处理子系统120用于处理输入的观察数据115,以生成具有深度信息的图像数据作为输出数据180。该观察数据115可以是由一个或多个摄像头捕获的原始图像、立体型分析的多对图像或按照特定图像处理要求处理过的过滤图像。输出数据180可以包括深度图像(也称为深度图)或针对场景采集的两个或多个图像生成的视差图。
28.在一些实施方式中,系统100还可以包括传感器子系统110,该传感器子系统110具有多个传感器101a-101z(例如,摄像头),配置为采集特定场景的图像数据(例如,图像或视频),并将采集的图像数据作为观察数据115提供给图像处理子系统120。传感器子系统110可以包括视听(av)设备(例如,包括多个摄像头或与多个摄像头可通信地连接的av流混合器,或包括多个摄像头的移动设备(例如,智能手机、平板电脑或笔记本电脑),仅举几例)。
29.可替代地,传感器子系统110也可以预处理采集的图像数据以生成观察数据115。例如,传感器子系统110可以基于图像质量、所需图像的数量等标准过滤图像数据,或者为图像处理子系统120生成多个图像对。多个图像对中的每一对可以包括由针对某个场景的
第一传感器采集的参考图像,以及由针对同一场景的第二传感器采集的目标图像,但第二传感器与第一传感器位于不同的位置。
30.为了生成输出数据180,图像处理子系统120可以处理接收到的观察数据115(例如,图像对)。该处理可以包括:确定至少一部分观察数据115(例如,图像对的参考图像)的边界像素,基于逐像素显著性信息确定优化惩罚值以生成优化成本函数,以及根据优化成本函数获取深度信息作为最小化成本值的结果。下面详细描述图像处理子系统120的功能。
31.图像处理子系统120可以将具有深度信息的输出数据180(例如,深度图像或视差图像)提供给外部设备、系统或子系统,以供进一步分析或操作。例如,外部设备、系统或子系统可以包括图像模糊模块190,其配置为处理接收到的图像的深度信息并且模糊图像中的对应像素以再现景深效果,即,图像模糊模块190可以自动模糊图像中位于场景的较远位置的像素或不在摄像头焦距附近的像素。作为另一个示例,外部模块可以包括3d建模系统,该3d建模系统配置为为2d图像采集的场景生成3d模型。
32.回到观察数据115的图像对,如前所述,传感器子系统110可以从传感器101a-101z(也可以将多个传感器同时编号为101)采集的图像数据中生成图像对。更具体地,传感器子系统110可以将传感器101设置在不同位置以采集呈现基本相同场景的各个图像,将第一传感器101a的第一图像设为参考图像,将第二传感器101b的第二图像设为目标图像,生成包括第一图像和第二图像的第一图像对。通常,子系统可以将各传感器采集的多个图像设为参考图像,并将这些参考图像与其他传感器采集的一个或多个目标图像进行配对,形成多个图像对。在一些实施方式中,观察数据115仅包括由各传感器采集的对应图像,并且基于观察数据115生成用于后续操作的图像对的是图像处理子系统120。
33.图像处理子系统120可以包括:边界提取引擎130,配置为获取输入的观察数据115中的边界信息(例如,确定边界像素);初始成本生成器140,配置为当图像对之间的像素相关时生成原始成本信息;惩罚储存器160,配置为存储和提供惩罚值;惩罚优化引擎170,配置为基于逐像素显著性信息确定优化惩罚值;以及成本优化引擎150,配置为至少基于优化惩罚值生成优化成本函数。下面更为详细地描述图像处理子系统120中包括的上述组件。
34.边界提取引擎130可以接收观察数据115,并从观察数据115中提取边界信息。更具体地,边界提取引擎130可以利用机器学习模型处理观察数据115中的图像对的参考图像,并生成关于参考图像中哪些像素是边界像素的预测。图像处理子系统120可以将参考图像中的每个像素与预测的边界信息相关联,并将边界信息存储在存储设备中用于后续操作。下面结合图2详细描述由边界提取引擎130运行的机器学习模型。
35.初始成本生成器140可以接收观察数据115,以生成针对参考图像中的所有像素的初始成本函数。初始成本函数可用于在图像处理子系统120中生成优化成本函数。更具体地,对于观察数据115中的每个图像对,初始成本生成器140可以对图像对的参考图像中的每个像素与该图像对的目标图像中的一个或多个像素执行块匹配过程。在块匹配过程中,初始成本生成器140配置为生成图像对的匹配成本函数,针对参考图像中的对应像素,在多个像素的搜索范围内搜索目标图像中的匹配像素(如果存在的话)。视差层次,作为匹配成本函数的输入,可以确定搜索范围。
36.匹配过程受匹配成本函数的约束,使得系统可以最小化匹配成本函数生成的匹配成本值来获取匹配像素。匹配成本函数可以接收特定像素的输入位置和视差层次以确定搜
索范围。初始成本生成器140可以为块匹配过程自动生成视差层次集合。在一些实施方式中,用户可以通过一个或多个合适的用户界面来确定视差层次并将其提供给初始成本生成器引擎140或图像处理子系统120。此外,初始成本生成器140可以可选地生成初始路径成本函数,其包括参考图像中每个像素的均匀平滑度惩罚值。也就是说,每个像素的初始成本函数可以包括对应的匹配成本函数,并且可选地包括参考图像的对应初始路径成本函数。
37.惩罚储存器160配置为存储多个候选惩罚值165并将其提供给成本优化引擎150,并且可选地提供给惩罚优化引擎170,以确定优化惩罚值。存储在惩罚储存器160中的候选惩罚值165可以由图像处理子系统120自动预设,也可以由用户通过任何合适的用户界面预设。在一些实施方式中,惩罚储存器160包括在图像处理子系统120的存储设备中或物理存储器的一部分中。候选惩罚值165可以包括三个、六个和十个不同的值,例如20、40、80、160、320,仅举几例。通常,候选惩罚值165可以是任何合适的实数。具体地,在某些情况下,每个候选惩罚值可以归一化为介于0和1之间的实数。
38.惩罚优化引擎170配置为从候选惩罚值165中确定参考图像的至少边界像素的优化惩罚值175。更具体地,惩罚优化引擎170可以基于候选惩罚值从成本优化引擎150接收成本数据155,并基于逐像素显著性信息确定边界像素的优化惩罚值。下面对利用显著性信息确定优化惩罚值进行详细描述。
39.优化惩罚值确定后,惩罚优化引擎170可以将其提供给成本优化引擎150以生成优化成本函数,之后图像处理子系统120利用该优化成本函数输出输入图像对的深度图像或视差图像。
40.更具体地,成本优化引擎150可以接收指示边界像素的输入边界数据135、表征输入图像的匹配成本函数的初始成本数据145以及多个候选惩罚值165。针对参考图像的边界像素中的每个像素,成本优化引擎150可以基于不同的候选惩罚值生成多个候选成本函数,最小化每个候选成本函数的成本以获取候选视差层次,然后基于该候选视差层次生成成本量。成本优化引擎150可以生成表征成本量的成本数据155并将其提供给惩罚优化引擎170,用于基于各个成本量的显著性信息确定优化惩罚值175。结合图3对各成本量的生成和优化惩罚值的确定进行详细描述。
41.如上所述,成本优化引擎150可以从惩罚优化引擎170接收优化惩罚值175,并且为参考图像中的每个像素生成优化成本函数。在一些实施方式中,根据每个成本函数(例如,匹配成本函数、路径成本函数或优化成本函数)生成的参考图像的各成本值存储在相应的张量数据结构中,下面对优化成本函数进行详细描述。
42.系统100,更精确地,图像处理子系统120,可以基于输入图像(或输入图像对)的优化成本函数生成深度图像或视差图像,并向外部模块,例如图像模糊模块190,提供包括该深度图像或视差图像的输出数据180,用于其他操作。
43.图2示出了用于生成输入数据230的边界像素预测的示例性边界提取引擎200。边界提取引擎200,例如可以是图1中的边界提取引擎130。
44.边界提取引擎200可以接收包括多个图像的输入数据230,每个图像包括用于相应场景的一个或多个对象。输入数据230可以包含在观察数据115中,并且如图1所描述的,例如来自传感器子系统110。如图2所示,输入数据230可以包括三个对象的图像,即,代表第一类别的第一纹理的三角形,代表第二类别的第二纹理的椭圆,以及代表第三类别的第三纹
理的矩形。为了便于说明,不同对象的不同的纹理用不同的填充图案表示。
45.边界提取引擎200可以处理输入数据230并提供输出数据240,用于生成优化成本函数。更具体地,输出数据240包括针对每个像素的关于该像素是否是对象的边界像素的预测。如上所述,边界像素是图像中大体上位于对象的最边缘的像素,该对象由图像中的多个像素表示。在一些实施方式中,边界像素可以是对象内距最边缘有一个或多个像素(例如,一个、两个或五个像素)宽度的区域中的像素。为了便于说明,输出数据240中的边界像素或边界信息由输出数据240中的对象(三角形、椭圆形和矩形)的相应轮廓来表示。表示边界信息的边界像素也可以称为语义边界。
46.更具体地,输出数据可以包括每个像素与图像中对象的边界相关联的似然性。例如,对于位于第一对象内部的三个像素,边界提取引擎200可以预测第一像素成为图像中第一对象的边界像素的似然性为99%,第二像素成为第一对象的边界像素的似然性为70%,第三像素成为第一对象的边界像素的似然性为1%。然后边界提取引擎200可以将第一像素确定为第一对象的边界像素,而将第二和第三像素确定为第一对象的内部像素。
47.在一些实施方式中,边界提取引擎200可以包括置信水平,该置信水平指示像素被预测成为对象的边界像素的特定似然性为真的概率或似然性。此外,边界提取引擎200可以进一步对似然预测进行线性转换(例如,线性回归)以确定置信水平。
48.此外,边界提取引擎200可以包括一个或多个基于预测的逐像素似然性的标准,以确定一个像素是否是边界像素。例如,该标准可以是阈值似然度为97%,任何具有高于该阈值的似然度的像素都可以确定为边界像素。
49.为了生成表示语义边界的输出数据240,边界提取引擎200可以配置为包括一个或多个合适的训练后的机器学习模型。例如,机器学习模型可以包括神经网络,例如卷积神经网络、全卷积网络(fully convolutional networks,fcns)以及全连接层。下面对通用机器学习模型进行详细描述。
50.边界提取引擎200中包括的机器学习模型还可以包括编码器210和解码器220。编码器210可以是包括一个或多个神经网络层的神经网络。例如,一个或多个神经网络层中可以包括卷积层,接着是全连接层。编码器可以接收输入数据230(例如,图像)并将输入数据映射到由一个或多个向量和具有实数的张量表示的特征图(或对自然语言进行嵌入处理)。编码器210可以将表征上述特征图的编码数据215提供给解码器220。解码器220也可以是包括一个或多个神经网络层的神经网络,但是解码器中的各层与编码器210中的各层通常方向相反。例如,解码器220可以先包括全连接层,其后是一个或多个卷积转置层。解码器220可以处理接收到的编码数据215,并基于特征图生成输入图像中的每个像素的预测。在一些实施方式中,解码器220可以利用分段预测(例如,逐像素预测)生成与输入图像基本匹配的重构输出图像。
51.作为具体示例,编码器210和解码器220可以根据unet架构配置,即跨两部分的对称架构。可以将左侧部分当作编码器210的至少一部分,其可以包括:一个或多个卷积层,配置为执行卷积计算以将输入数据(例如,图像)处理成输出特征(例如,特征图中的张量);池化层,配置为对输出特征进行最大池化或平均池化操作;可选地,还可以包括丢弃层,配置为对输出特征的某些特征进行无效以减轻过度拟合。可以将右侧部分当作解码器220的至少一部分,其可以包括一个或多个转置卷积层,配置为对特征图中由编码器210生成的特征
进行非采样;可选地,还可以包括一个或多个卷积层,配置为进行级联,将非采样特征和编码器210生成的相应特征进行合并,以提高预测准确度。
52.在一些实施方式中,编码器210或解码器220可以通过设置一个或多个深度卷积层来减少网络参数总数,这些深度卷积层配置为,以针对每个输入通道分别执行卷积操作的方式进行深度卷积操作,深度卷积层的输出与输入具有相同的通道数。可选地,深度卷积层之后,编码器210和解码器220可以进一步包括一个或多个逐点卷积层,以将深度卷积层生成的输出特征进行合并。
53.此外,编码器210可以包括一个或多个层块,解码器220可以包括相同数量的对应层块。解码器220的每个块可以接收由编码器210的对应块生成的输出特征,将其作为输入。更具体地,解码器块的输入特征可以是前一个解码器块和对应编码器的输出特征的聚合。例如,最后一个解码器块的输入特征可以是前一个解码器块和第一个编码器块的输出特征的总和。
54.可以利用特定训练样本,按照常规训练步骤来训练用于生成输出数据240的机器学习模型。训练示例可以为包括与边界信息相关联的像素的图像。利用编码器210和解码器220训练机器学习模型的参数的损失函数可以是表示输入数据和与预测相关联的重构输出数据之间差异的损失函数。通常,任何合适的损失函数都可以用于训练机器学习模型,例如合页损失和对数损失,仅举几例。在一些实施方式中,训练示例中的像素的边界信息可以从外部存储设备导入到系统100。可替代地,用户可以手动确定训练图像中的边界像素。
55.需要注意的是,机器学习模型生成的输出数据240省略了输入数据中的一些信息。例如,输出数据240可以省略输入图像中每个像素的纹理和分类信息。因为对纹理和分类进行预测时需要来自输入数据的附加信息(例如,输入图像大小,或预先知道的纹理和类别信息),所以通过忽略纹理和分类信息进行推理计算,边界提取引擎200可以利用训练后的机器学习模型更稳健、更有效地生成边界像素的预测。
56.通常,上述机器学习模型可以用于接收任何种类的数字数据输入,并在该输入上进行训练,以生成基于该输入的任何类型的得分、分类或回归输出。输入数据项可以包括图像数据(此处包括视频数据)、音频数据或文本数据,例如自然语言中的单词或单词片段(或其表示,例如嵌入)。输入数据项可以包括序列数据,例如,表示数字化音频的数据样本序列,或表示为像素序列的图像,或由图像序列表示的视频,或表示自然语言中单词序列的序列。
57.在一些实施方式中,训练后的机器学习模型可以生成包括特征表示的输出,然后可以对其进行进一步处理以生成系统输出。例如,系统输出可以包括用于将输入数据项分类为图像、视频或音频类别等多个类别之一的分类输出(例如,表示输入数据项或输入数据项的对象/元素属于某一类别的估计似然性的数据),或用于将输入数据项的区域分割为,例如,图像或视频中表示的对象或动作的分割输出。可替代地,系统输出可以是强化学习系统中的动作选择输出。
58.在一些实施方式中,输出可以包括相同或不同类型的其他数据项。例如,输入数据项可以是图像、音频或文本,输出数据项可以是图像、音频或文本的修改版,例如,改变了输入数据项或输入数据项内的一个或多个对象或元素的样式、内容、属性、姿态等;或者填补了输入数据项的(缺失)部分;或者预测了数据项的其他版本或视频或音频数据项的扩展;
或者提供了输入数据项的上采样(或下采样)版本。例如,输入数据项可以是以第一语言表示的文本,输出数据项可以是将该文本译为另一种语言的文本,或者将该文本译为另一种语言的翻译的得分。再如,可以将输入图像转换为视频、线框模型或者cad模型,或者可以将2d的输入图像转换为3d;或相反亦然。可替代地,该输入数据项可以包括从口语话语中获取的特征、口语话语的序列或从口语话语的序列中获取的特征,输出数据项可以包括文本片段集合中每个文本片段的得分,每个得分代表该文本片段是基于特征的正确副本的估计似然性。再如,输入数据项可以是图像、音频或文本,输出数据项可以是不同格式的输入数据项的表示。例如,机器学习模型可以将文本转换为语音,反之亦然(用于语音识别),或将图像(或视频)转换为文本(例如,用于字幕)。当生成包含顺序数据的输出时,机器学习模型可以包括一个或多个卷积,例如扩张的卷积层。
59.在一些实施方式中,训练后的机器学习模型用于接收输入数据项,并对该输入数据项进行处理,以根据模型参数生成输入数据项的特征表示。通常,数据项的特征表示是数值的有序集合,例如,将数据项表示为多维特征空间中的点的向量。也就是说,每个特征表示可以包括输入数据项的多个特征中每个特征的数值。如前所述,机器学习模型可以用于接收任何类型的数字数据输入作为输入,并根据该输入生成特征表示。例如,输入数据项,也可以称为模型输入,可以是图像、文档的一部分、文本序列、音频数据、医学数据等等。
60.特征表示可以作为输入提供给另一个系统,例如,用于对模型输入执行机器学习任务。示例任务可包括基于特征的检索、聚类、近似重复检测、验证、特征匹配、域适应、基于视频的弱监督学习。对于视频,例如跨视频帧的对象跟踪,由视频中描绘的实体执行手势的手势识别。
61.如果机器学习模型的输入是图像或从图像中提取的特征,则机器学习模型生成的针对给定图像的输出可以是对象类别集合中每个对象类别的得分,每个得分代表该图像包含属于该类别的对象的图像的估计似然性。
62.图3示出了示例性惩罚优化引擎390采用的示例性方法300,该示例性惩罚优化引擎390配置为基于形态分析来确定优化惩罚值。该示例性惩罚优化引擎390,例如可以是图1中的惩罚优化引擎170。
63.在描述惩罚优化引擎390如何能够获取优化惩罚值之前,初步设定系统(例如,图1的系统100)可以通过聚合多个路径成本函数lr来生成具有函数形式的成本函数s。每个路径成本函数lr用于测量视差层次d处2d坐标系中位于(x,y)处的像素沿方向r遍历的路径上的像素的成本,可以表示为:
[0064][0065]
如公式(1)所示,路径成本函数lr接收特定像素在视差层次d处的位置作为输入,其中d属于预定视差层次集合d。路径成本函数lr(x,y,d)的第一项表示匹配成本函数c(x,y,d),用于利用由视差d确定的搜索范围将参考图像中位于(x,y)处的像素与目标图像中对应的像素进行匹配。回到图1,在一些实施方式中,参考图像中每个像素的匹配成本函数c(x,y,d)包括由初始成本生成器140生成的初始成本函数中。
[0066]
路径成本函数lr(x,y,d)中的第二项表示沿方向r的前一个像素的最低路径成本函数的累积,平滑度惩罚项为p1(x,y)和p2(x,y)。需要注意的是,惩罚项p1和p2都是像素位置的函数,这意味着本说明书中的平滑度惩罚值取决于像素的特性。
[0067]
例如,根据像素的惩罚项p1(x,y)和p2(x,y)生成的惩罚值取决于该像素是否是图像中采集的对象的边界像素。需要注意的是,惩罚项可以作为像素位置的函数。每个惩罚项可以基于输入像素位置返回相应的惩罚值。
[0068]
在一些实施方式中,针对输入像素是否预测为边界像素,惩罚项p1(x,y)和p2(x,y)可以表达为函数形式。例如,针对参考图像的所有像素中的每个像素,惩罚项可以包括阶跃函数形式,如下所示:
[0069][0070][0071]
如上所述,边界提取引擎130可以通过执行机器学习模型的推理操作预测像素为边界像素的似然性,并在似然性超过一个或多个特定标准时确定该像素为边界像素,从而确定输入像素是否为边界像素。
[0072]
系统100可以通过改变函数项的参数来生成一个或多个惩罚项集合。作为示例,系统100可以预先确定惩罚项p1(x,y)和p2(x,y),以包括第一参数集合,其中(x,y),以包括第一参数集合,其中以及作为示例,系统100可以预先确定惩罚项p1(x,y)和p2(x,y),以包括第二参数集合,其中以及
[0073]
在一些实施方式中,惩罚项p1(x,y)和p2(x,y)的似然函数形式可以分别为(x,y)的似然函数形式可以分别为和需要注意的是,函数项pb(x,y)是表示图像中每个像素成为图像中采集的对象的边界像素的似然性的函数,也称为边界似然图。pb(x,y)函数可以利用上述机器学习技术来实现,pb(x,y)可以存储在矩阵数据结构中,矩阵的每一项表示似然性、确定性或基于像素为机器学习模型预测的边界像素的似然性得出的值。函数项p
r1
和p
r2
可以是为更有可能是边界像素的像素确定的恒定实数值,而和可以是其他像素的恒定实数值。系统100可以基于例如,特定标准,从多个候选惩罚值中选择p
r1
、p
r2
,以及的相应值集合。系统100还可以为用户提供用户界面,以选择这些参数的值。下面将对生成惩罚项p1(x,y)和p2(x,y)的细节进行更为详细的描述。
[0074]
系统100可以进一步聚合所有方向r的路径成本函数lr,以在视差层次d处生成所有方向的聚合成本函数s(x,y,d)。深度图像的精度随着聚合成本函数中不同方向的总数的增加而增加。不同方向的总数可以是4个、8个和32个,仅举几例。聚合成本函数s(x,y,d)可以表示为:
[0075]
[0076]
系统100可以基于公式d0=argminds(x,y,d)从视差集合d中选择视差层次d作为像素的视差值,即像素的视差值d0导致产生针对集合d中所有视差层次的成本函数s(x,y,d)的最小聚合成本值。
[0077]
在一些实施方式中,系统可以根据相应的路径成本函数lr和相应的聚合成本函数s生成相应的成本值,并将该成本值以张量的形式进行存储。例如,特定路径成本函数lr的成本值可以存储在三阶张量中,例如其中h和w表示输入图像在高度和宽度方向上的像素大小,表示视差层次集合的大小。系统100可以进一步将路径成本函数lr的成本值存储在四阶张量中的多个方向上,例如其中r表示方向的总数。由于聚合成本函数s是通过在多个方向上累积路径成本函数lr获取的,因此系统100可以将聚合成本函数s生成的成本值存储在三阶张量中,例如与特定路径成本函数lr的存储类似。
[0078]
如图3所示,系统100可以基于像素的位置和像素的相应视差层次生成参考图像的成本量310。例如,x表示沿宽度方向307的位置(例如,坐标),y表示沿高度方向305的位置,位于相应宽度和高度坐标处的每个像素可以沿视差轴303在每个视差层次具有相应的成本值。
[0079]
返回上述惩罚优化引擎390,其被配置为从候选惩罚项,标记为和生成的多个候选惩罚值中确定由优化惩罚项,标记为和生成的优化惩罚值。候选惩罚项和优化惩罚项的函数形式可以构建为与上述惩罚项类似(例如,阶跃函数形式或似然函数形式)。系统可以从0.25、0.5、1、2、4、8和16中选择这些函数项的值来生成相应的优化惩罚值和候选惩罚值,仅举几例。
[0080]
需要注意的是,候选惩罚值和优化惩罚值与参考图像中的每个像素相关联。在一些实施方式中,系统100可以为图像中的每个像素预先确定共同惩罚值集合(例如,对于所有像素,p1(x,y)=16,p2(x,y)=4),并覆盖边界像素的一个或更多常数系数。在一些实施方式中,系统100可以直接确定参考图像中的所有像素的上述惩罚项和对应的惩罚值,而无需覆盖。
[0081]
在一些实施方式中,候选惩罚值可以彼此相差一定的常数乘子,例如,常数乘子可以是2、4和8。当常数乘子为2时,例如,对于和边界像素的第一对候选惩罚值可以分别为1和0.25,边界像素的第二对候选惩罚值可以分别为2和0.5,第三对候选惩罚值可以分别为4和1。
[0082]
为了确定优化惩罚值,惩罚优化引擎390可以首先将多个候选惩罚值165提供给成本优化引擎(例如,成本优化引擎150),成本优化引擎150可以基于边界提取引擎(例如图1的边界提取引擎130)生成的预测生成参考图像中的每个像素的多个候选成本函数
[0083]
多个候选成本函数中的每个候选成本函数可以包括基于一对候选惩罚值(例如,对应候选成本函数中的一对候选惩罚项和的值)在方向r上的候选路径成本函数lr。可替代地或附加地,每个候选成本函数可以包括基于候选惩罚值的聚合成本函数。
[0084]
然后,成本优化引擎150可以将表征多个候选成本函数的成本数据155提供给惩罚
优化引擎390。成本优化引擎150可以生成与给定候选成本函数的图像中每个像素的相应视差层次相关联的多个成本量310(或候选成本量310,因为它们是基于候选惩罚值生成的)。
[0085]
作为响应,惩罚优化引擎390可以基于显著性值确定每个边界像素的函数项和生成的优化惩罚值。更具体地,引擎170可以对与各自的候选惩罚值相关联的候选成本值和视差层次执行形态分析以确定显著性值。如上所述,候选惩罚值可以是从候选惩罚项和生成的输出,也可以是候选惩罚项和中的常数系数的候选值。
[0086]
为了确定显著性值,惩罚优化引擎390配置为基于多个候选成本量为每个像素生成多个波形以确定该像素的多个候选显著性值,并基于一个或多个标准从多个候选显著性值中选择一个候选显著性值作为显著性值。下面结合图5对显著性值的生成进行详细描述。
[0087]
返回图3,为了生成参考图像中像素的波形,惩罚优化引擎390可以从多个候选成本量中选择成本量,从选择的成本量中获取像素在所有视差层次下的相应成本值,并根据相应的候选成本值和相关视差层次生成波形。作为示例,波形可以包括二维数据结构,其中沿垂直方向的值表示该像素的候选成本值,水平平面上的值表示用于生成该像素的对应候选成本值的视差层次。作为另一示例,该像素的波形可以是表示各个视差层次d和基于对应候选惩罚值和的对应候选成本值的离散线函数。
[0088]
如图3所示,不失一般性地,参考图像中像素的波形350在2d坐标系中可以绘制为折线图360,其中水平轴表示视差d,垂直轴表示对应视差层次下根据候选成本函数生成的候选成本值,其中候选成本函数包括候选惩罚项和在该像素的波形350中,每个顶点(例如,编号为370的顶点)表示像素375在可能视差层次下,其候选成本值是基于相应的候选惩罚值和从该视差层次下生成的相应成本量中获得的。
[0089]
惩罚优化引擎390可以识别折线图360中的局部最小候选成本值和全局最小候选成本值。例如,如图3所示,惩罚优化引擎390可以确定折线图360中的全局最小值320和次低局部最小值330。作为响应,引擎170可以计算锐度值,即折线图360中邻近顶点和对应最小值(例如,320和330)之间的候选成本值的绝对差。例如,如图3所示,引擎170可以确定全局最小值320与其相应的邻近顶点之间的候选成本值中的差值1(标记为315)和差值2(标记为325)。类似地,该引擎可以进一步确定局部最小值330与其相应的邻近顶点之间的候选成本值的差值3(标记为340)和差值4(标记为335)。
[0090]
惩罚优化引擎390可以基于锐度值确定像素的候选显著性值。例如,响应于确定波形350中仅存在一个最小候选成本值,引擎170可以基于与最小值相关联的锐度值的总和生成边界像素的候选显著性值。作为另一示例,结合图3,响应于确定波形350中存在两个或更多个最小值,引擎170可以按如下方式确定候选显著性值:
[0091]
候选显著性值=差值1 差值2-差值3-差值4
ꢀꢀꢀ
等式(3)
[0092]
如上所述,惩罚优化引擎390可以针对参考图像中的每个像素生成多个波形,以确定显著性值。每个波形根据不同候选惩罚值从候选成本量中生成。更具体地,图5示出了基于一个或多个波形(513a-c)生成显著性值的示例性过程500。该过程可以由示例性惩罚优化引擎执行,例如,图1中的惩罚优化引擎170或图3中的390。
[0093]
如图5所示,结合图3,惩罚优化引擎390可以针对参考图像中的所有像素生成多个
候选成本量(503a-c)。候选成本量503a、503b和503c分别由包括相应候选惩罚值的各自的候选成本函数生成。如上所述,成本量的三个维度分别表示视差层次、第一方向上的像素的第一坐标、以及垂直于第一方向的第二方向上的像素的第二坐标。
[0094]
对于参考图像所有像素中的每个像素,惩罚优化引擎390可以从多个成本量中的相应成本量中生成相应波形。例如,针对图3中的像素375,惩罚优化引擎390可以从第一候选成本量503a中生成第一波形513a、从第二候选成本量503b中生成第二波形513b、以及从第三候选成本量503c中生成第三波形513c。如上所述,各波形(513a-c)可以表示为折线图。
[0095]
然后,如上所述,惩罚优化引擎390可以确定每个波形的相应候选显著性值。如图5所示,惩罚优化引擎390可以从第一波形513a中生成第一候选显著性值523a,从第二波形513b中生成第二候选显著性值523b,以及从第三波形513c中生成第三候选显著性值523c。如上所述,例如,通过等式(3)可以确定每个候选显著性值的值。
[0096]
为了从候选显著性值523a-523c中确定显著性值,惩罚优化引擎390可以包括一个或多个预定标准,并将每个候选显著性值与预定标准进行比较。例如,标准可以是候选显著性值的阈值,或两个候选显著性值之间的差值的阈值。阈值可以是合适的实数,例如1、4、10、20以及100。
[0097]
在一些实施方式中,惩罚优化引擎390可以过滤掉不满足阈值的候选显著性值,并从剩余的满足阈值的候选显著性值中选择候选显著性值作为像素的显著性值。在一些实施方式中,惩罚优化引擎390可以从剩余的候选显著性值中选择最小的候选显著性值作为像素的显著性值。
[0098]
例如,参照图5,假设第一候选显著性值523a为1.5,第二候选显著性值523b为5,第三候选显著性值523c为100,候选显著性值的阈值为3,则惩罚优化引擎390配置为过滤掉第一候选显著性值523a,因为其小于阈值,并选择候选显著性值523b作为显著性值,因为它是剩余候选显著性值中的最小值。
[0099]
在确定像素的显著性值之后,惩罚优化引擎390可以将与像素的显著性值相关联的候选成本量确定为优化成本量543。例如,如图5所示,惩罚优化引擎390可以将候选成本量503b确定为优化成本量543。
[0100]
在确定像素的成本量543之后,惩罚优化引擎390可以选择候选惩罚值作为像素的优化惩罚值和该候选惩罚值用于从多个候选惩罚值中生成优化成本量543。因此,惩罚优化引擎390可以利用足够的显著性值生成最低成本值的优化惩罚值。
[0101]
惩罚优化引擎390可以重复执行上述过程,以确定参考图像中所有像素的优化惩罚值。回到图1,然后,惩罚优化引擎390可以将确定出的优化惩罚值175提供给成本优化引擎150,以生成输出数据180,该输出数据180至少包括参考图像中每个像素的深度信息(例如,视差图或深度图553)。
[0102]
需要注意的是,为了便于说明,在过程500中仅生成了三个候选成本量。然而,惩罚优化引擎390也可以生成三个以上候选成本函数,例如,与各候选惩罚值相关联的5个、10个、20个、或者100个候选成本量。
[0103]
图4示出了利用图1的系统100生成优化深度图像的示例性过程400的流程图。为方便起见,过程400描述为由位于一个或多个位置的一台或多台计算机的系统执行。例如,用于优化立体型稠密深度图像的系统,例如图1的系统100,经过适当编程可以执行过程400。
[0104]
该系统获取由传感器子系统,例如,图1所述的传感器子系统110中的多个传感器,收集的观测数据。更具体地,系统获取数据,该数据表示由第一传感器生成的特定场景的第一图像和由第二传感器生成的特定场景的第二图像(410)。特定场景可以包括一个或多个对象,第一图像和第二图像可以分别包括多个像素。在一些实施方式中,系统可以将第一图像和第二图像相结合形成图像对。在图像对中,第一图像可以是参考相机拍摄的参考图像,第二图像可以是辅助相机拍摄的目标图像。
[0105]
对于第一图像包括的多个像素中的每个像素,系统确定该像素是否是与所述特定场景中检测到的对象的边界相关联的边界像素(420)。
[0106]
更具体地,当确定第一图像中的像素为边界像素时,系统可以配置为包括训练后的机器学习模型,该机器学习模型用于在处理输入图像时生成像素预测。机器学习模型可以包括编码器和解码器,例如,图2所述的编码器210和解码器220。该机器学习模型可以利用由用户确定的边界像素的训练样本(例如图像)进行训练。对输入图像进行推理操作的训练后机器学习模型的输出预测可以包括一个像素与第一图像中多个像素表示的对象的边界相关联的像素似然性。该系统还可以包括含有似然阈值的标准,似然性高于阈值的所有像素都可以确定为边界像素。
[0107]
在执行优化过程之前,系统可以先为第一图像中包括的每个像素生成初始成本函数,并利用该初始成本函数生成所有像素的初始成本值。当系统执行块匹配过程以在搜索范围内在第二图像的部分像素中找到参考像素的对应像素时,初始成本值可以表示第一图像中的参考像素与第二图像中的对应像素之间的差异。更具体地,可以通过预定视差层次集合中的视差层次来确定该搜索范围。初始成本函数可以包括匹配成本函数,用于测量第一图像(例如,参考图像)中的像素与第二图像(例如,目标图像)中搜索范围内的一个或多个像素之间的块匹配过程的性能。每个像素的匹配成本函数可以接收像素位置和用于确定搜索范围的视差层次作为输入,并输出对聚合成本值有贡献的匹配成本值。
[0108]
系统从一组候选惩罚值(例如,候选惩罚值165)中确定参考图像的所有像素的相应优化惩罚值(430)。
[0109]
为了确定优化惩罚值,如上所述,系统可以首先从惩罚储存器(例如,惩罚储存器160)中获取该组候选惩罚值。候选惩罚值可以根据每个候选惩罚值的大小顺序排列。
[0110]
根据该序列,系统可以基于候选惩罚值的每对候选惩罚值生成一组候选成本函数。基于候选成本函数,系统可以生成第一图像(例如,参考图像)中每个像素的相应的成本量集合。
[0111]
然后,系统可以利用形态分析来确定每个像素的显著性值。系统可以通过生成每个像素的多个波形来进行形态分析,每个波形基于像素在不同视差值下的对应成本量的相应成本值生成。作为响应,对于第一图像中的每个像素,系统可以基于像素的显著性值从多个候选惩罚值中选择一个候选惩罚值作为该像素的优化惩罚值。
[0112]
更具体地,系统可以首先为折线图中绘制的像素生成波形。系统可以确定波形(或折线图)中的一个或多个最小值,例如,视差值的全局最小值,或视差值的次低局部最小值。然后,系统可以至少基于波形中的最小视差值来生成像素的候选显著性值。更具体地,系统可以基于最小视差值和波形中各视差值的对应相邻顶点之间的绝对差值生成候选显著性值。
[0113]
系统可以针对所有候选成本量生成像素的候选显著性值,并且如上所述,基于一个或多个标准从候选显著性值中确定像素的显著性值。
[0114]
然后,系统可以将表示各自的候选成本量中的显著性值的候选成本量确定为优化成本量。然后,系统可以将用于生成优化成本量的候选惩罚值确定为优化惩罚值。系统可以重复执行上述过程,以确定参考图像中所有像素的优化惩罚值。
[0115]
系统确定参考图像中每个像素的优化惩罚值后,可以基于该优化惩罚值生成优化成本函数(440)。如上所述,对于第一图像(例如,参考图像)中的像素,系统可以首先利用优化惩罚值沿多个方向生成各自的优化路径成本函数。然后,系统可以通过聚合多个方向上的各自的优化路径成本函数(即,生成优化聚合成本函数)为第一图像中的所有像素生成优化成本函数。
[0116]
需要注意的是,系统可以同时为参考图像中的所有像素生成优化惩罚值,边界像素的优化惩罚值通常不相同,并且其小于非边界像素或内部像素的优化惩罚值。
[0117]
尽管系统配置为能够确定参考图像中所有像素的优化惩罚值,但在一些实施方式中,系统可以首先执行上述过程,以确定边界像素的优化惩罚值。对于第一图像中不是边界像素的像素(即非边界像素),系统可以分配一个共同惩罚值供这些像素共用。在一些实施方式中,在确定边界像素的优化惩罚值后,系统可以增加所有非边界像素的共同惩罚值,从而可以降低计算成本。
[0118]
然后,系统基于从优化成本函数得出的成本值生成第一图像的深度图像(450)。如上所述,系统可以为每个像素选择根据优化成本函数生成相应最小成本值的视差值作为相应的优化视差值。该系统可以进一步基于各自的优化视差值生成第一图像的深度图像。
[0119]
系统可以将深度图像提供给渲染引擎,该渲染引擎配置为模糊第一图像中的一个或多个像素以再现景深效果(460)。在一些实施方式中,系统可以为不同的外部设备提供深度图像以执行不同的操作。在一些实施方式中,系统可以直接为外部设备提供相应的优化视差值以用于附加操作。例如,外部设备可以包括3d渲染机器,该3d渲染机器配置为基于场景深度图或视差图渲染3d场景。又如,外部设备可以包括阴影生成器,该阴影生成器配置为基于深度图或视差图为场景生成适当的阴影效果。可替代地,外部设备可以包括3d模型生成器,该3d模型生成器配置为基于深度图或视差图生成3d模型。具体地,3d模型生成器可以配置为动态系统(例如,机器人系统)中的组件生成3d模型,每个组件具有不同姿态。3d模型生成器可以基于由采集组件的2d图像生成的深度图或视差图生成该组件的3d模型。可选地,外部设备可以包括一个或多个机器学习模型,该模型配置为基于深度图或视差图并结合附加数据生成相应的预测。例如,其中一个机器学习模型可以预测按轨迹行驶的自动驾驶车辆是否会在特定时间段内与场景中的物体发生碰撞。
[0120]
本说明书中描述的主题和功能操作实施例可以在数字电子电路、有形计算机软件或固件、以及计算机硬件中实现,包括在本说明书中公开的结构及其结构等价物,或它们中的一种或多种组合中实现。本说明书中描述的主题实施例可以实现为一个或多个计算机程序,例如,一个或多个计算机程序指令模块,编码在有形非暂时性存储介质上,由数据处理装置执行或控制数据处理装置的操作。计算机存储介质可以是机器可读存储设备、机器可读存储基板、随机或串行存取存储器设备,或者它们中的一种或多种的组合。可替代地或另外地,程序指令可以编码在人工生成的传播信号上,例如机器生成的电信号、光信号或电磁
信号上,生成该信号以编码用于传输到合适接收器装置的信息,该信息由数据处理装置执行。
[0121]
术语“数据处理装置”指数据处理硬件,涵盖用于处理数据的所有类型的装置、设备和机器,包括例如可编程处理器、计算机或多个处理器或计算机。该装置还可以是,或进一步包括,专用逻辑电路,例如fpga(现场可编程门阵列)或asic(专用集成电路)。除硬件外,该装置,可选地,可以包括为计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统或以下一项或多项组合的代码。
[0122]
也可以称为或描述为程序、软件、软件计算机程序应用程序、应用程序、模块、软件模块、脚本或代码,可以以任何形式的编程语言编写,包括编译或解释语言,或者声明性或过程性语言。计算机程序可以以任何形式部署,包括作为独立程序或作为模块、组件、子例程或其他适合在计算环境中使用的单元部署。程序可以但非必须对应于文件系统中的文件。程序可以保存在包含其他程序或数据的文件的一部分中,例如,保存在标记语言文档中的一个或多个脚本中,专用于所讨论程序的单个文件中,或多个协调文件中,例如,存储一个或多个模块、子程序、或部分代码的文件。计算机程序可以部署为在一台或多台计算机上执行,该一台或多台计算机位于一个站点或分布在多个站点,通过数据通信网络互连。
[0123]
一台或多台计算机的系统配置为执行特定操作或动作意味着,该系统已安装有软件、固件、硬件或其组合,它们的运行使得系统执行操作或动作。一个或多个计算机程序配置为执行特定操作或动作意味着该一个或多个程序包括指令,当该指令由数据处理装置执行时,使得该装置执行操作或动作。
[0124]
如本说明书中使用的,“引擎”或“软件引擎”是指提供与输入不同的输出的软件实现的输入/输出系统。引擎可以是编码的功能块,例如库、平台、软件开发工具包(“sdk”)或对象。每个引擎都可以在任何适当类型的计算设备上实现,该计算设备,例如服务器、移动电话、平板电脑、笔记本电脑、音乐播放器、电子书阅读器、笔记本电脑或台式电脑、pda、智能手机或其他固定或便携式设备,包括一个或多个处理器和计算机可读介质。此外,可以在同一计算设备或不同计算设备上实现两个或更多个引擎。
[0125]
本说明书中描述的过程和逻辑流程可以由一个或多个可编程计算机执行,该可编程计算机执行一个或多个计算机程序,以通过对输入数据进行操作并生成输出来执行功能。该过程和逻辑流程也可以由专用逻辑电路执行,例如fpga或asic,或由专用逻辑电路和一个或多个编程计算机组合执行。
[0126]
适用于执行计算机程序的计算机可以基于通用微处理器、专用微处理器、或同时基于两者,或基于任何其他类型的中央处理单元。通常,中央处理单元接收来自只读存储器、随机存取存储器、或两者的指令和数据。计算机的基本元件是用于执行指令的中央处理单元和用于存储指令和数据的一个或多个存储器设备。专用逻辑电路可以补充或结合在中央处理单元和存储器中。通常,计算机还将包括用于存储数据的一个或多个大容量存储设备,例如磁盘、磁光盘或光盘,或者,计算机与一个或多个大容量存储设备可操作地耦合以从一个或多个大容量存储设备接收数据或向其传输数据或同时接收并传输数据。然而,计算机不需要此类设备。此外,计算机可以嵌入到另一个设备中,例如移动电话、个人数字助理(pda)、移动音频或视频播放器、游戏控制台、全球定位系统(gps)接收器、或便携式存储设备,例如,通用串行总线(usb)闪存驱动器,仅举几例。
[0127]
适用于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储设备,例如,包括半导体存储设备,例如eprom、eeprom、以及闪存设备;磁盘,例如内部硬盘或可移动磁盘;磁光盘;以及cd-rom和dvd-rom磁盘。
[0128]
为了与用户交互,本说明书中描述的主题实施例可以在具有显示设备的计算机上实现,例如用于向用户显示信息的crt(阴极射线管)或lcd(液晶显示器)监视器、键盘、以及定点设备,例如鼠标、轨迹球或存在敏感显示的显示器或用户可以通过其向计算机提供输入的其他表面。也可以使用其他类型的设备来与用户交互;例如,为用户提供的反馈可以是任何形式的感官反馈,例如视觉反馈、听觉反馈或触觉反馈;可以以任何形式接收用户的输入,包括声音、语音或触觉输入。此外,计算机可以通过向用户使用的设备发送文档并从其接收文档来与用户交互。例如,响应从web浏览器收到的请求,将网页发送到用户设备的web浏览器。同时,计算机可以通过向个人设备,例如智能手机,发送文本消息或其他形式的消息、运行消息应用,并接收来自用户的响应消息来与用户交互。
[0129]
本说明书中描述的主题实施例可以在计算系统中实现,该计算系统包括:后端组件,例如,作为数据服务器;或中间件组件,例如,应用服务器;或前端组件,例如具有图形用户界面、网络浏览器或应用程序的客户端计算机,用户可以通过该应用程序与本说明书中描述的主题实现方式进行交互;或者一个或多个此类后端组件、中间件组件或前端组件的任何组合。系统的组件可以通过任何形式互联,也可以通过数字数据通信媒体互连,例如通信网络。通信网络示例包括局域网(lan)和广域网(wan),例如,因特网。
[0130]
计算系统可以包括客户端和服务器。客户端和服务器通常彼此远离,并且通常通过通信网络进行交互。客户端和服务器的关系是通过在各自计算机上运行并且彼此具有客户端-服务器关系的计算机程序产生的。在一些实施例中,服务器将数据,例如html页面,传输到用户设备,例如,目的是向与作为客户端的设备交互的用户显示数据和从用户接收用户输入。可以在服务器处接收来自设备的由用户设备生成的数据,例如用户交互结果。
[0131]
除了上述实施例之外,以下实施例也具有创新性:
[0132]
实施例1公开了一种方法,包括:
[0133]
获取数据,该数据表示由第一传感器生成的特定场景的第一图像和由第二传感器生成的特定场景的第二图像,其中,特定场景包括一个或多个对象,第一图像和所述第二图像各包括多个像素;
[0134]
对于第一图像包括的多个像素中的每个像素,确定该像素是否是与第一图像表示的且在特定场景中的对象的边界相关联的边界像素;
[0135]
对于第一图像包括的每个像素,从多个候选惩罚值中确定该像素的优化惩罚值;
[0136]
基于多个像素的优化惩罚值为第一图像生成优化成本函数;以及
[0137]
基于优化成本函数为第一图像生成深度图像。
[0138]
实施例2是根据实施例1所述的方法,其中该方法还包括:将深度图像提供给渲染引擎,渲染引擎配置为模糊第一图像中的一个或多个像素,以再现景深效果。
[0139]
实施方式3是根据实施例1或2所述的方法,其中生成优化成本函数还包括:
[0140]
针对第一图像包括的所述多个像素中的每个像素,生成初始成本函数,初始成本函数用于基于预定视差层次集合中的视差层次处理像素。
[0141]
实施例4是根据实施例3所述的方法,其中,初始成本函数包括匹配成本函数,匹配
成本函数用于测量第一图像的像素与第二图像中的一个或多个像素之间的块匹配过程的性能,其中第二图像中的一个或多个像素是根据第一图像中的像素和初始成本函数的视差层次确定的。
[0142]
实施例5是根据实施例1-4中任意一项所述的方法,其中,确定所述第一图像的像素是否是边界像素包括:
[0143]
通过训练后的用于处理第一图像的机器学习模型生成用于指示像素是否是边界像素的像素预测;
[0144]
其中,训练后的机器学习模型包括编码器模块和解码器模块,像素预测包括像素与第一图像表示的且在特定场景中的对象的边界相关联的似然性。
[0145]
实施例6是根据实施例1-5中任一项所述的方法,其中,确定像素的优化惩罚值包括:
[0146]
获取多个候选惩罚值,根据多个候选惩罚值中每个候选惩罚值的大小将多个候选惩罚值按次序排列;
[0147]
根据次序,基于多个候选惩罚值中的每个候选惩罚值生成多个候选成本函数;
[0148]
根据多个候选成本函数,生成第一图像中每个像素各自的候选成本量集合;
[0149]
确定第一图像中的每个像素的显著性值;以及
[0150]
对于第一图像中的每个像素,根据该像素的显著性值,从多个候选惩罚值中选择一个候选惩罚值作为像素的优化惩罚值。
[0151]
实施例7是根据实施例6所述的方法,其中,确定所述像素的显著性值包括:
[0152]
基于各自的候选成本量集合中的一个候选成本量的各自的候选成本值以及生成各自的候选成本值的对应视差层次,生成像素的波形,其中波形包括各自候选成本值的一个或多个最小值;以及
[0153]
基于波形中的一个或多个最小值生成显著性值。
[0154]
实施例8是根据实施例1-7中任一项所述的方法,其中,为第一图像中的多个像素生成所述优化成本函数包括:
[0155]
基于优化惩罚值,针对多个像素生成第一图像中多个方向的各自的优化路径成本函数;以及
[0156]
至少基于各自的优化路径成本函数生成第一图像的优化成本函数。
[0157]
实施例9是根据实施例1-8中任一项所述的方法,其中,为第一图像中的多个像素生成所述优化成本函数还包括:
[0158]
响应于为确定的边界像素确定优化惩罚值,增加第一图像中边界像素以外的其他像素共用的共同惩罚值。
[0159]
实施方式10公开了一种系统,包括一个或多个计算机以及一个或多个存储有可操作性指令的存储设备,当指令由一个或多个计算机执行时,使得一个或多个计算机执行实施例1-9中任一项所述的方法。
[0160]
实施例11公开了一种编码有计算机程序的计算机存储介质,该程序包括可操作指令,当该指令由数据处理装置执行时,使得该数据处理装置执行实施例1-9中任一项所述的方法。
[0161]
虽然本说明书中包含许多具体实施细节,但是这些细节不应解释为对任何发明或
要求保护的范围的限制,而是对可能是特定发明的特定实施例特有的特征的描述。本说明书中描述的在单独实施例的上下文中的某些特征还可以在单个实施例中组合实现。相反,在单个实施例的上下文中描述的各种特征还可以在多个实施例中单独实现或以任何合适的子组合实现。而且,虽然上述描述中特征可以在某些组合中起作用,并且甚至最初如此要求保护,但是要求保护的组合的一个或多个特征在某些情况下可以从组合中删除,并且要求保护的组合可以涉及子组合或子组合的变形。
[0162]
类似地,虽然在附图中以特定顺序描述了操作,但是这不应理解为要求这些操作以所示的特定顺序或以顺序次序执行,或者执行所有所示的操作以实现期望的结果。在某些情况下,多任务和并行处理可能是有利的。此外,上述实施例中各个系统模块和组件的分离不应理解为所有实施例中都需要这样分离,而应该理解为,所描述的程序组件和系统通常可以集成在单个软件产品中,或者打包成多个软件产品。
[0163]
已经对上述主题的特定实施例进行了描述。其他实施例在权利要求保护的范围内。例如,权利要求中定义的动作可以以不同顺序执行,但仍能达到期望结果。例如,附图中描绘的过程不一定需要以所示的特定顺序或以顺序次序执行才能达到期望结果。在某些情况下,多任务和并行处理可能是有利的。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献