首页> 中国专利> 使用上采样、损失与损失平衡进行深度数据模型训练

使用上采样、损失与损失平衡进行深度数据模型训练

摘要

本文讨论了用于训练机器学习(ML)模型以基于图像数据确定深度数据的技术。训练可以使用立体图像数据和深度数据(例如,激光雷达数据)。可以将第一图像(例如,左图像)输入到ML模型,该模型可输出预测的视差和/或深度数据。预测的视差数据可与第二图像数据(例如,右图像)一起使用以重建第一图像。第一图像和重建图像之间的差异可用于确定损失。损失可能包括像素、平滑、结构相似性和/或一致性损失。此外,可以确定深度数据和预测深度数据之间的差异和/或预测视差数据和预测深度数据之间的差异,并且可以基于各种损失来训练ML模型。因此,这些技术可以使用自我监督训练和监督训练来训练ML模型。

著录项

  • 公开/公告号CN114981834A

    专利类型发明专利

  • 公开/公告日2022-08-30

    原文格式PDF

  • 申请/专利权人 祖克斯有限公司;

    申请/专利号CN202080092205.0

  • 申请日2020-11-09

  • 分类号G06T1/40(2006.01);G06T7/593(2006.01);G06N20/00(2006.01);

  • 代理机构永新专利商标代理有限公司 72002;

  • 代理人刘文灿

  • 地址 美国加利福尼亚州

  • 入库时间 2023-06-19 16:31:45

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2022-12-06

    实质审查的生效 IPC(主分类):G06T 1/40 专利申请号:2020800922050 申请日:20201109

    实质审查的生效

说明书

本专利申请要求于2019年11月14日提交的标题为“使用上采样、损失与损失平衡进行深度数据模型训练(DEPTH DATA MODEL TRAINING WITH UPSAMPLING,LOSSES,ANDLOSS BALANCING)”且序列号为16/684,568的美国实用专利申请的优先权,并要求于2019年11月14日提交的标题为“深度数据模型训练(DEPTH DATA MODEL TRAINING)”且序列号为16/684,554的美国实用专利申请的优先权。序列号16/684,568和16/684,554的申请通过引用完全并入本文。

技术背景

车辆可使用多个传感器捕获传感器数据以检测环境中的多个对象。准确和精确的传感器数据可帮助例如自动驾驶车辆穿越环境。在某些情况下,多个传感器可能具有有限的范围和/或提供与环境相关联的低密度数据。

附图说明

以下详细描述参照附图来描述。在以下附图中,附图标记的最左侧的一个或多个数字标识第一次出现该附图标记的附图。在不同附图中使用相同的多个附图标记表示相似或相同的组件或特征。

图1是基于立体图像数据、深度数据和各种损失来训练机器学习模型的示例过程的图解流程图。

图2是基于确定损失来训练机器学习模型的示例过程的图解流程图,所述确定损失基于图像数据和重建的图像数据之间的差异。

图3是基于与立体图像数据相关联的损失来训练机器学习模型的示例过程的图解流程图。

图4是基于与自我监督输出和/或监督输出相关联的损失来训练机器学习模型的示例过程的图解流程图。

图5是用于实现本文所描述的技术中的示例计算机系统的框图。

图6是用于训练机器学习模型以生成基于图像的深度数据的示例过程。

图7是用于训练机器学习模型以生成基于图像的深度数据的另一个示例过程。

具体实施方式

本公开描述了用于训练机器学习模型以基于图像数据确定深度数据的多种系统、方法和装置。训练可以基于立体图像数据和深度数据(例如,激光雷达数据)。当完全训练时,机器学习模型可以接收图像数据(例如,单个图像)并且可以输出与图像中的多个像素相关联的预测深度信息。机器学习模型可基于立体图像对中的左图像和右图像之间的场景中的差异使用多个立体图像进行训练。例如,可以将第一图像(例如,左图像)输入到机器学习模型,该模型可输出预测的深度数据。预测的深度数据可与第二图像数据(例如,右图像)结合使用以重建第一图像。第一图像和重建的第一图像之间的多个差异可用于确定损失。多个示例损失包括但不限于一个或多个像素损失、一个或多个平滑损失、一个或多个结构相似性损失和/或一个或多个一致性损失。此外,可以确定深度数据(例如,表示地面真值(ground truth)深度)和预测的深度数据之间的多个差异,并且可以基于本文讨论的多个损失来训练机器学习模型。因此,这些技术可使用自我监督训练(例如,基于立体图像)和监督训练(例如,基于深度数据)来训练机器学习模型。

机器学习模型可以至少部分基于各种损失来进行训练,其包括但不限于:一个或多个像素损失、一个或多个平滑损失、一个或多个结构相似性损失、一个或多个一致性损失(例如,一个或多个左/右一致性损失、一个或多个深度/视差损失等)等。在本公开的全文中对各种损失的细节进行了讨论。

在一些示例中,本文讨论的技术可以包括确定像素损失。例如,多种操作可以包括确定左图像数据中的像素与重建的左图像数据中的对应像素之间的差异。在一些示例中,像素损失可以表示多个对应像素之间的多个强度值(例如,R、G、B值)的差异。如可理解的,多个操作可包括确定右图像数据中的像素与重建的右图像数据中的对应像素(例如,代表环境的相同部分的像素)之间的差异。在一些示例中,如果像素损失高于阈值,这可能表明图像数据中的像素不对应于重建图像数据中的像素(例如,由于遮挡(occlusion)),在这种情况下,与特定像素相关联的像素损失可被忽略(出于训练的目的)。

在一些示例中,本文讨论的技术可包括确定平滑损失。例如,多种操作可以包括在确定本文讨论的多个损失之前、之后或与之结合地对图像的补丁执行平均化(averaging)。在一些示例中,可以基于在图像数据中检测到的边缘来降低平滑损失的权重。在一些示例中,可针对单个图像来评估平滑损失。

在一些示例中,本文所讨论的技术可包括确定结构相似性损失。例如,多种操作可以包括比较第一图像和重建的第一图像的多个补丁或区域。可以对各种补丁执行多种操作,例如确定补丁的平均RGB值并将来自第一补丁(例如,来自第一图像)的数据与来自第二补丁(例如,来自重建的第一图像)的数据进行比较。在一些示例中,结构相似性损失可以包括比较对应的第一和第二补丁中多个边缘或不连续性的一个或多个位置和/或存在。因此,结构相似性损失可以确定有关相应图像的总体布局或结构的信息,其中多个补丁之间的差异可表示损失。

在一些示例中,本文讨论的技术可以包括确定一致性损失。例如,本文讨论的技术可用于确定重建的第一图像(例如,基于右图像数据和第一预测深度信息的重建左图像)及重建的第二图像(例如,基于左图像数据和第二预测深度信息的重建右图像)。可以基于重建的第一图像和重建的第二图像之间的多个差异来确定一致性损失(例如,左/右一致性损失)。

在一些示例中,一致性损失可强制实施(enforce)来自机器学习模型的多个不同输出头(output head)的数据之间的一致性。例如,机器学习模型的第一输出头可以基于本文讨论的多种自我监督技术(例如,根据基于图像的监督)输出视差数据、预测深度数据和/或逆预测深度数据。在一些示例中,机器学习模型的第二输出头可以基于本文讨论的多种完全监督技术(例如,根据基于激光雷达(或基于深度数据)的监督)来输出深度数据。一致性损失可强制实施两个或多个输出之间的一致性,使得由第一输出头输出的深度信息(或视差信息)与由第二输出头输出的深度信息一致。多个输出之间的差异可以用作损失,以在训练机器学习模型时最小化多个输出的差异。

在一些示例中,结构相似性损失和/或一致性损失可以至少部分地基于与多个像素或数据补丁相关联的分类信息。例如,结构相似性和/或一致性只能在具有相同分类或其他分割(segmentation)信息的多个补丁或像素之间强制实施。

在某些情况下,机器学习模型可以输出各种预测的深度数据。例如,机器学习模型可以输出深度数据、逆深度数据、视差数据等。在一些示例中,深度数据和/或逆深度数据可表示原点(例如,与图像传感器或深度传感器相关联的位置)和环境中的对象(在一些示例中,其可沿着从穿过像素坐目标的原点的射线来确定)之间的度量。在一些示例中,视差数据可以表示像素(或数据元素)在第一图像(例如,左图像)和第二图像(例如,右图像)之间的水平移位(shift)。在一些示例中,视差数据可以通过与多个立体图像传感器相关联的内在和/或外在信息而与深度数据相关联。

在一些示例中,机器学习模型可以单独地确定深度数据和视差数据。如上所述,并且在一些示例中,可以确定深度数据和视差数据之间的差异,这可表示一致性损失(例如,深度/视差一致性损失)以强制实施各种预测数据之间的一致性。

在某些情况下,机器学习模型的输出可表示离散输出或可表示连续输出值。例如,机器学习模型可以确定与图像数据相关联的多个离散深度部分/分组(bin)。这样的多个分组在深度、逆深度、视差或任何其他深度表示中可为线性或非线性的。在一些示例中,机器学习模型可以输出连续深度值作为连续输出(例如,机器学习模型可以输出10.65米的深度值而不执行这种分组(binning)操作)。因此,无论是否使用离散深度分组,连续偏移都可提供多个深度值之间的渐变过渡。在至少一些示例中,可以使用分组和多个偏移的组合(例如,除细粒度偏移之外,模型还可以输出分组的“粗”测量值(如可以从分组的“中心”测量的))。在某些情况下,机器学习算法可使用与深度分组相关联的损失函数和/或softmax损失来确定连续偏移。

在一些示例中,机器学习模型的多个方面可包括以第一分辨率或细节级别确定特征图,接着对该特征图进行上采样以确定各个级别下的不同信息。在一些示例中,特征图可以对应于机器学习模型的一部分的中间输出,例如机器学习模型的编码器部分或编码器部分。在一些示例中,技术可包括基于局部平面引导对一个或多个特征图进行上采样,这可以包括预测与用于上采样的方向和/或幅度相关联的多个单位向量。在一些示例中,与双线性上采样技术形成对比,局部平面引导可以是基于形状的上采样技术的示例(例如,使用多个球体、平面或其他多种形状来进行上采样)。

在一些示例中,任何损失可以表示L1损失(平均绝对误差)、L2损失(均方误差)、似然损失、对数损失、交叉熵损失、铰链损失(hinge loss)、休伯损失等。

在一些示例中,本文讨论的技术可使用损失平衡来组合、聚合或以其他方式确定用于训练机器学习模型的损失。例如,此处没有用到的各种损失(例如,像素损失、平滑损失、结构相似性损失、左/右一致性损失、深度/视差一致性损失等)可使用损失平衡技术来组合以确定“最终”损失以用于训练(例如,通过机器学习模型进行反向传播)。在一些示例中,可以至少部分地基于一个或多个权重来组合或聚合损失。在一些示例中,多个权重可作为训练多个操作的一个方面来学习。在一些示例中,这种学习可以基于同方差性。在一些示例中,同方差性可以至少部分地基于与各种损失相关联的不确定性来确定与多个损失相关联的一个或多个权重。

可以使用训练图像数据和训练激光雷达数据作为用于训练机器学习模型的地面真值来训练机器学习模型。因此,本文讨论的技术可以包括无监督训练、自我监督训练、半监督训练、完全监督训练或其任何组合。例如,可在题为“图像数据的密集深度估计(DenseDepth Estimation of Image Data)”且在2017年11月3日提交的标美国专利第15/803,682号中找到训练机器学习模型的其他多个示例,其全部内容通过引用并入本文。在一些情况下,与训练激光雷达数据相比,训练图像数据可以包括更高分辨率或代表更高数据密度的数据。仅出于说明目的,训练图像数据可以包括来自三个通道(例如,红、绿、蓝)的数据,每个通道具有数百万像素,而与训练图像数据相对应的训练激光雷达数据可以包括几十万个点的数量级,或者更少。因此,基于训练图像数据与对应的训练激光雷达数据量的差异,可理解图像数据的某些像素可能没有对应的激光雷达测量值。在一些情况下,本文讨论的多个操作可以提供与图像数据相对应的深度数据(例如,单深度数据),使得训练图像数据的一些或所有个体像素可以与深度数据相关联。

在某些情况下,机器学习算法可使用附加的数据通道进行训练,包括例如:对应于RGB数据的三个通道,与指示激光雷达(或其他深度数据)是否对于特定像素可用的二进制指示(例如,二进制通道)相对应的一个通道,和/或可以对应于与特定像素相关联的深度测量值的一个通道。在某些情况下,深度测量值可被认为是地面真值,其中被训练的机器学习模型可确定深度数据以最小化地面真值和生成的深度数据之间的差异。可理解地,任何数量的通道和/或任何类型的数据都可以用于训练机器学习模型并作为部署的机器学习算法的输入。在某些情况下,可以省略二进制通道。

可以发送或以其他方式实施经过训练的机器学习模型,以根据来自单个图像传感器的数据来生成深度数据。也就是说,经过训练的机器学习模型可接收图像数据作为输入,并且可以输出与图像数据的一些或所有像素相关联的深度数据。在某些情况下,可以存储深度数据以供后续处理。例如,自动驾驶车辆的一些应用或系统可将深度数据用于定位、感知(例如,对环境中的对象进行检测、识别、分割、分类、追踪等)、相对深度数据生成等。如可理解的,这些应用为示例,并且深度数据或测量的深度数据的这些示例和使用不旨在用于限制。确定和使用基于图像的深度数据的其他多个示例可在题为“视觉深度(Depth fromVision)”且于2019年5月9日提交的美国专利第16/408,407号中找到,其全部内容通过引用并入本文。

在某些情况下,可以使用基于图像的分割技术来移除多个动态对象以改进多个训练操作。例如,基于图像的分割技术可用于识别和删除/丢弃与图像数据中表示的多个动态对象相关的数据,由此剩余数据可以表示环境中的多个静态对象。例如,可以从图像数据中排除与多个动态对象(例如,车辆、行人、骑自行车者、动物、杂物(debris)等)相关联的深度数据,使得由机器学习模型预测的视差数据可以基于立体图像传感器配置,而不基于环境中多个对象的移动。基于激光雷达的分割技术还可用于识别和删除/丢弃与多个动态对象相关联的数据,例如,用于训练机器学习模型的目的。

如上所述,车辆可使用由机器学习模型生成的深度数据来执行包括感知操作的多个操作,以例如对环境中的多个对象进行检测、识别、分割、分类和/或追踪等其他操作。在一些情况下,深度数据可用于生成与对象相关联的三维边界框(或遮罩(mask))。

在一些情况下,本文讨论的技术可以在包括一个或多个图像传感器(例如,红绿蓝(RGB)相机、强度相机(灰阶)、红外线相机、紫外线相机等)、深度相机(例如,RGB-D相机)、飞行时间传感器、激光雷达传感器、雷达传感器、声纳传感器等的系统中实现,以在硬件或软件故障的情况下为系统提供冗余。例如,在深度相机、激光雷达传感器和/或雷达传感器被遮挡或发生故障的情况下,本文讨论的技术可与图像传感器一起使用以提供冗余和/或备份来确保在许多情况下都可以获得密集的深度信息。因此,这里讨论的技术可为例如机器视觉系统提供附加的多种改进。

本文描述的深度数据生成技术可以通过提供附加的深度数据用于执行后续操作以控制自动驾驶车辆(或其他系统)来改进计算设备的功能。例如,与图像数据相关联的深度数据可以允许后续过程,例如定位、感知(例如,检测、识别、分割、分类、追踪等)、线路规划、轨迹生成等被更准确地执行,可能需要较少的处理能力,和/或可能需要较少的存储器。例如,在某些情况下,可使用更快和/或更准确的分割来生成自动驾驶车辆的轨迹,这可以提高自动驾驶车辆乘员的安全性。此外,在一些示例中,本文讨论的技术可用于验证多个传感器的校准,可提供误差检查或选择以确定传感器测量值是否不准确(例如,通过将深度测量值与另一个深度传感器进行比较),和/或可在其他多个传感器被遮挡或禁用的情况下作为后备。在一些示例中,使用这种自我监督和监督技术(其可一起包括半监督训练)训练机器学习模型提供了可以输出与没有这些技术训练的模型相比更准确的深度估计的机器学习模型。本文讨论了对计算机功能的这些和其他改进。

本文描述的技术可以以多种方式实现。参考下方附图提供了示例的实施方式。尽管在自动驾驶车辆的背景下进行了讨论,但本文所描述的多种方法、装置和系统可以应用于各种系统(例如,传感器系统或机器人平台),并且不限于自动驾驶车辆。在一个示例中,类似的技术可以用在驾驶员控制的车辆中,其中这种系统可提供对执行各种操作是否安全的指示。在另一示例中,可以在制造装配线背景中、在航空测量背景中或在航海背景中使用这些技术。此外,本文描述的技术可以与真实数据(例如,使用一个或多个传感器捕获的)、仿真数据(例如,由仿真器生成的)或两者的任何组合一起使用。

图1是基于立体图像数据、深度数据和各种损失来训练机器学习模型的示例过程的图解流程图100。

多种操作可以包括从多个立体图像传感器102捕获和/或接收图像数据。例如,多个立体图像传感器102可以捕获环境的右图像104和左图像106。如右图像104和左图像106所示,图像数据可表示自动驾驶车辆正在穿越的环境。

多种操作还可以包括从一个或多个激光雷达传感器108(也称为一个激光雷达传感器108)捕获和/或接收深度数据。例如,激光雷达传感器108可捕获深度数据110,该深度数据110表示由右图像104和/或左图像106表示的环境的至少一部分。在一些示例中,激光雷达传感器108可以与多个立体图像传感器102相结合对齐和/或校准,使得多个传感器捕获环境的相同部分。在一些示例中,附加于或替代由激光雷达传感器捕获的深度数据,可以由飞行时间传感器捕获深度数据。

如上所述,右图像104和/或左图像106可以表示代表环境的数百万个RGB像素。立体图像传感器102可包括左图像传感器和右图像传感器(例如,如图2所示),其中多个传感器捕获至少部分重叠的视场。在一些示例中,一个或多个激光雷达传感器108可捕获环境的至少一部分,所述环境的至少一部分对应于与左图像传感器或右图像传感器相关联的视场的至少一部分。在一些示例中,图像数据可以由与不同朝向相关联的各种图像传感器捕获。即,本文所讨论的技术不限于立体图像传感器并且可以包括具有共享一些共可见性的多视图几何形状的图像传感器。

与右图像104和左图像106相对应的图像数据以及深度数据110可被输入至机器学习组件112以用于训练机器学习组件112。如本文所讨论的,机器学习组件112可被训练以最终地基于输入图像数据来输出深度数据。在一些示例中,可以至少部分地基于各种组件114来训练机器学习组件112。在一些示例中,该些组件114可表示各种损失组件和/或架构组件,如本文所讨论的。

例如,多个组件114可以包括但不限于每像素损失(也称为像素损失)、平滑损失组件、结构相似性损失组件、一致性损失组件(例如,左/右一致性、深度/视差一致性、基于边缘的一致性、基于分割的一致性等)、缩放组件、序数回归组件、L2损失组件、损失平衡组件、局部平面引导组件、同方差组件等中的一个或多个。上述多个组件的附加细节在上方和整个公开内容中进行讨论。

在训练了机器学习组件112时,机器学习组件112可用于基于图像数据(例如,来自单个图像传感器的图像数据)来确定环境的深度数据。这种深度数据可以与穿越环境的自动驾驶车辆结合使用。在某些情况下,可以存储深度数据以供后续处理。例如,自动驾驶车辆的一些应用或系统可将深度数据用于定位、感知(例如,对环境中的对象进行检测、识别、分割、分类、追踪等)、相对深度数据的生成等。如可以理解的,这些应用为示例,并且深度数据或测量的深度数据的这些示例和使用不旨在进行限制。

图2是确定损失来训练机器学习模型的示例过程的图解流程图200,所述确定损失基于图像数据和重建图像数据之间的差异。

多个操作可以包括捕获和/或接收由多个立体图像传感器捕获的图像数据,如本文所讨论的。例如,第一图像传感器202(例如,立体图像传感器对的左图像传感器)可以捕获环境的左图像106。第二图像传感器204(例如,立体图像对的右图像传感器)可以捕获环境的右图像104。左图像106可以表示与第一图像传感器202相关联的视场206,而右图像104可以表示与第二图像传感器204相关联的视场208。至少一部分视场可以重叠,示出为重叠部分210。如可理解的,至少一部分视场206和208可以不重叠。

接着,左图像106可输入到机器学习组件212,其可以对应于图1的机器学习组件112。尽管图2说明了左图像106被输入到机器学习组件212,但操作可包括将右图像104与输入左图像106串行或并行输入到机器学习组件中,如结合图3以及在整个公开内容中所讨论的。

在一些示例中,多种操作可以包括校正左图像106和右图像104,使得左图像106和右图像104中的多个对应点位于同一行像素内。在一些示例中,校正图像数据可以简化用于确定视差的多种操作和/或多个扭曲操作。

机器学习组件212可以至少部分地基于左图像106来确定预测的逆深度数据214。在一些示例中,机器学习组件212可以输出深度数据、视差数据等。在一些示例中,预测的逆深度数据214可以表示用于多个计算的效率的逆深度值。

多个操作可以包括将预测的逆深度数据214和右图像104输入到逆扭曲组件216中。逆扭曲组件216可以包括用于基于预测的逆深度数据214和基于多个内在相机参数(例如,镜头畸变、焦距等)、和/或多个外在相机参数(例如,各个图像传感器和多个立体图像传感器的姿态(例如,朝向)等)来扭曲右图像104的功能。例如,给定预测的逆深度数据214、右图像104和多个相机内在参数,逆扭曲组件216可以确定点之间的视差并使用视差来确定重建的左图像218。

可以将重建的左图像218和左图像106输入到损失组件220以确定左图像106和重建的左图像218之间的差异或损失。在一些示例中,右图像104不与左图像106重叠之处的面积可能导致重建左图像218的空数据。这样的空数据可以被表示为区域222,这在确定用于训练的损失时可以降低权重或排除。

如本文所讨论的,损失组件220可以确定用于训练机器学习组件212的各种损失。例如,损失组件可以确定一个或多个像素损失、一个或多个平滑损失、一个或多个结构相似性损失、一个或多个一致性损失等。

在一些示例中,多个操作可以包括基于左图像数据和基于左图像数据的预测逆深度数据(或预测视差数据)来生成重建的右图像(反之亦然)。

图3是基于与立体图像数据相关联的损失来训练机器学习模型的示例过程的图解流程图300。图3的各方面可以由结合图1和图2所讨论的一个或多个组件来执行,其可为了清楚起见而加以省略。

例如,多个操作可以包括捕获或接收左图像106和确定预测的逆深度数据302(例如,基于左图像106)。此外,多个操作可以包括捕获或接收右图像104和确定预测的逆深度数据304(例如,基于右图像104)。在技术公差范围内,可以串行或并行执行确定预测深度数据。

多个操作可以进一步包括基于预测的逆深度数据302和右图像104来确定重建的左图像306,如上述于图2中所讨论的。此外,这些操作可包括基于预测的逆深度数据304和左图像106来确定重建的右图像308,如本文所讨论的。

可以至少部分地基于重建的左图像306和左图像106来确定一个或多个损失(例如,一个或多个损失310)。在一些示例中,损失310可以表示一个或多个像素损失、一个或多个平滑损失、一个或多个结构相似性损失、一个或多个一致性损失(例如,左/右一致性、基于边缘的一致性、基于分割的一致性等)等中的一项或多项。在一些示例中,一致性损失(例如,左/右一致性损失)可表示图像数据和重建图像数据中的多个像素之间的总和或以其他方式聚合的多种差异。在一些示例中,一致性损失可以对应于多个重建图像(例如,重建的左图像306和重建的右图像308)之间的多个差异。

类似地,可以至少部分地基于重建的右图像308和右图像104来确定一个或多个损失(例如,一个或多个损失312)。在一些示例中,一个或多个损失312的多个类别/类型可以基本上对应于一个或多个损失310。

一个或多个损失310和312可以组合、求和或以其他方式聚合以确定一个或多个损失314。本文讨论的机器学习模型可以至少部分地基于一个或多个损失314进行训练。

图4是基于与自我监督输出和监督输出相关联的损失来训练机器学习模型的示例过程的图解流程图400。

如上所述,多种训练操作可以包括捕获和/或接收由多个立体图像传感器捕获的图像数据(例如,表示为右图像104和左图像106)。多种训练操作还可以包括捕获和/或接收深度数据110(例如,由一个或多个激光雷达传感器和/或飞行时间传感器捕获的)。可将右图像104、左图像106和深度数据110输入到机器学习组件402。

在一些示例中,机器学习组件402可以包括神经网络、卷积神经网络、循环神经网络等。在一些示例中,机器学习组件402可以对应于机器学习组件112和212,其已分别于图1和图2中讨论。

机器学习组件402可以至少部分地基于图像数据(例如,右图像104和/或左图像106)和/或深度数据110来确定一个或多个特征图。在一些示例中,机器学习组件402可将一个或多个特征图输出到上采样组件404。在一些示例中,上采样组件404可以是与机器学习组件402分离的组件,或者可以合并于机器学习组件402中。在一些示例中,上采样组件404可表示或可以是机器学习模型的编码器部分的一部分。

在一些示例中,上采样组件可以至少部分地基于局部平面引导将一个或多个特征图上采样到各种分辨率水平。在一些示例中,局部平面引导可以包括如下功能:预测与用于上采样的各个像素或特征的方向和/或幅度相关联的一个或多个单位向量。

机器学习组件402和/或上采样组件404可以确定一个或多个输出406,其可以包括自我监督输出408(例如,逆深度图、视差、深度等)和/或监督的输出410(例如,深度等)。

在一些示例中,自我监督输出408可以至少部分地基于结合重建的图像数据确定的损失,如本文所讨论的。

在一些示例中,监督输出410可以至少部分地基于将预测深度数据与作为地面真值数据的深度数据110进行比较。

在一些示例中,机器学习组件402可包括神经网络的不同的多个输出头以输出自我监督输出408和监督输出410。一个或多个输出406可输入到损失组件412以基于数据确定各种损失。

例如,损失组件412可以确定一个或多个一致性损失和/或损失平衡。例如,一致性损失可以确定自我监督输出408(例如,表示为视差数据)和监督输出410(例如,表示为深度数据)之间的差异。这种一致性损失可称为深度/视差一致性损失。

在一些示例中,一致性损失可以是单侧的(例如,使用监督输出作为地面真值来确定与自我监督输出相关联的第一损失,或使用自我监督输出作为地面真值来确定与监督输出相关联的第二损失),或者一致性损失可以是两侧的(例如,使用监督输出作为地面真值来确定与自我监督输出相关联的第一损失,并使用自我监督输出作为地面真值来确定与监督输出相关联的第二损失,并基于第一损失和第二损失确定第三损失)。在一些示例中,一致性损失可以是基于边缘的一致性损失(例如,基于多个图像和重建图像之间的边缘的一致性)或基于分割的一致性损失(例如,数据的多个分类之间的一致性或数据之间的多个实例分割)。

在一些示例中,与监督训练相关联的损失(例如,基于表示地面真值的激光雷达数据)可以至少部分基于序数回归。在一些示例中,基于序数回归的损失可以与误差和地面真值之间的差异成正比或相关。

损失组件412可以进一步包括用于损失平衡的功能。例如,多种操作可以包括确定各种损失,例如一个或多个像素损失、一个或多个平滑损失、一个或多个结构相似性损失、一个或多个一致性损失等。可以对这些损失求和或聚合以确定聚合的损失以通过机器学习组件402反向传播以进行训练。在一些示例中,可根据与每个损失相关联的多个权重和/或不确定性来对损失求和。在一些示例中,多个权重可以作为训练过程的一部分来学习。在一些示例中,与损失相关联的多个权重可以至少部分地基于同方差性来确定。

图5描绘了用于实现本文所讨论的技术的示例系统500的框图。在至少一个示例中,系统500可以包括车辆502。在所示示例系统500中,车辆502为自动驾驶车辆;然而,车辆502也可以是任何其他类型的车辆。

车辆502可以是无人驾驶车辆,例如配置为根据由美国国家公路交通安全管理局发布的级别5分类来操作的自动驾驶车辆,所述级别5分类描述了一种能够在整个行程中执行所有安全关键功能的车辆,而驾驶员(或乘员)不被期望在任何时候对车辆进行控制。在这样的示例中,因为车辆502可以配置为控制从行程开始到完成的所有功能,包括所有停车的功能,所以其可不包括驾驶员和/或用于驾驶车辆502的多个控件,例如方向盘、油门踏板和/或剎车踏板。这仅为一个示例,并且本文描述的多个系统和方法可以结合到任何地面、空中或水上载具中,包括从需要始终由驾驶员手动控制的载具到部分或完全自动控制的载具。

车辆502可包括一个或多个计算设备504、一个或多个传感器系统506、一个或多个发射器508、一个或多个通信连接510(也称为通信设备和/或调制解调器)、至少一个直接连接512(例如,用于与车辆502物理耦合以交换数据和/或提供电力)以及一个或多个驾驶系统514。一个或多个传感器系统506可配置为捕获与环境相关联的传感器数据。

一个或多个传感器系统506可包括飞行时间传感器、位置传感器(例如,GPS、罗盘等)、惯性传感器(例如,惯性测量单元(IMU)、加速度计、磁力计、陀螺仪等)、激光雷达传感器、雷达传感器、声纳传感器、红外线传感器、相机(例如,RGB、IR、强度、深度等)、麦克风传感器、环境传感器(例如,温度传感器、湿度传感器、光传感器、压力传感器等)、超声波换能器、车轮编码器等。一个或多个传感器系统506可以包括这些或其他类型的传感器中的每一个的多个实例。例如,飞行时间传感器可包括位于车辆502的角部、前部、后部、侧面和/或顶部的各个飞行时间传感器。作为另一个示例,相机传感器可以包括设置在车辆502的外部和/或内部周围的不同位置处的多个相机。一个或多个传感器系统506可以向计算设备504提供输入。

车辆502还可以包括用于发射光和/或声音的一个或多个发射器508。该示例中的一个或多个发射器508包括用于与车辆502的多名乘客通信的内部音频和视觉发射器。作为示例而非限制,内部发射器可以包括扬声器、灯、标志、显示屏、触摸屏、触觉发射器(例如,振动和/或力反馈)、机械致动器(例如,安全带张紧器、座椅定位器、头枕定位器等)等。该示例中的一个或多个发射器508还包括多个外部发射器。作为示例而非限制,该示例中的多个外部发射器包括用于表示行驶方向的灯或车辆动作的其他指示器(例如,指示灯、标志、灯阵列等)及一个或多个音频发射器(例如,扬声器、扬声器阵列、喇叭等),以与行人或附近的其他多个车辆听觉地通信,其中一种或多种可能包括声束转向技术。

车辆502还可包括一个或多个通信连接510,其实现了车辆502与一个或多个其他本地或远程计算设备(例如,远程遥控计算设备)或远程服务之间的通信。例如,一个或多个通信连接510可以促进与车辆502和/或一个或多个驾驶系统514上的其他本地计算设备的通信。此外,一个或多个通信连接510可允许车辆502与其他附近的一个或多个计算设备(例如,其他附近的车辆、交通信号等)通信。

一个或多个通信连接510可包括用于将计算设备504连接到另一计算设备或一个或多个外部网络534(例如,互联网)的多个物理和/或逻辑接口。例如,一个或多个通信连接510可以实现基于Wi-Fi的通信,例如通过IEEE 802.11标准定义的频率、短程无线频率,例如蓝牙、蜂窝通信(例如,2G、3G、4G、4GLTE、5G等)、卫星通信、专用短程通信(DSRC)、或使相应的计算设备能够与其他一个或多个计算设备接合的任何合适的有线或无线通信协议。

在至少一个示例中,车辆502可以包括一个或多个驾驶系统514。在一些示例中,车辆502可以具有单个驾驶系统514。在至少一个示例中,如果车辆502具有多个驾驶系统514,则各个驾驶系统514可以定位在车辆502的相对端(例如,前部和后部等)。在至少一个示例中,一个或多个驾驶系统514可以包括一个或多个传感器系统506以检测一个或多个驾驶系统514的状况和/或车辆502的周围环境。作为示例而非限制,一个或多个传感器系统506可以包括一个或多个车轮编码器(例如,旋转编码器)(用于感测多个驾驶系统的多个车轮的旋转)、惯性传感器(例如,惯性测量单元、加速度计、陀螺仪、磁力计等)(用于测量驾驶系统的朝向和加速度)、相机或其他图像传感器、超声波传感器(用于声学地检测驾驶系统周围的多个对象)、激光雷达传感器,雷达传感器等。一些传感器(例如,多个车轮编码器)可以是一个或多个驾驶系统514独有的。在一些情况下,一个或多个驾驶系统514上的一个或多个传感器系统506可以重叠或补充车辆502的对应系统(例如,一个或多个传感器系统506)。

一个或多个驾驶系统514可包括许多车辆系统,其包括高压电池、用于驱动车辆的电机、用于将来自电池的直流电转换成交流电以供其他车辆系统使用的逆变器、包括转向电机和转向齿条(其可以是电动的)的转向系统、包括液压或电动致动器的剎车系统、包括液压和/或气动组件的悬挂系统、用于分配剎车力以减轻牵引力损失并保持控制的稳定性控制系统、HVAC系统、照明(例如,诸如用于照亮车辆外部环境的头灯/尾灯之类的照明)、以及一个或多个其他系统(例如,冷却系统、安全系统、车载充电系统、其他电气组件,例如DC/DC转换器、高压接头、高压电缆、充电系统、充电端口等)。此外,一个或多个驾驶系统514可包括驾驶系统控制器,该驾驶系统控制器可以接收和预处理来自一个或多个传感器系统506的数据并且控制各种车辆系统的操作。在一些示例中,驾驶系统控制器可包括一个或多个处理器和与一个或多个处理器通信耦合的存储器。存储器可以存储一个或多个组件以执行一个或多个驾驶系统514的各种功能。此外,一个或多个驾驶系统514还包括一个或多个通信连接,其使得相应驾驶系统能够与一个或多个其他本地或远程计算设备进行通信。

计算设备504可以包括一个或多个处理器516和与一个或多个处理器516通信耦合的存储器518。在所示示例中,计算设备504的存储器518存储定位组件520、包括机器学习组件524的感知组件522、预测组件526、规划组件528、地图组件530和一个或多个系统控制器532。尽管出于说明目的描绘为驻留在存储器518中,但可以设想,定位组件520、感知组件522、机器学习组件524、预测组件526、规划组件528、地图组件530和一个或多个系统控制器532可以附加地或替代地可由计算设备504访问(例如,存储在车辆502的不同组件中)和/或可由车辆502访问(例如,远程存储)。

在计算设备504的存储器518中,定位组件520可包括从一个或多个传感器系统506接收数据以确定车辆502的位置的功能。例如,定位组件520可包括和/或请求/接收环境的三维地图,并且可以连续地确定自动驾驶车辆在地图内的位置。在一些情况下,定位组件520可以使用SLAM(同时定位和映射)或CLAMS(同时校准、定位和映射)来接收飞行时间数据、图像数据、激光雷达数据、雷达数据、声纳数据、IMU数据、GPS数据、车轮编码器数据或其任意组合等,以准确确定自动驾驶车辆的位置。在一些情况下,定位组件520可向车辆502的各种组件提供数据以确定自动驾驶车辆的初始位置以生成轨迹,如本文所讨论的。

如上所述,定位组件520可使用由机器学习模型组件524生成的深度数据来执行上述操作以确定车辆502的位置。深度数据可提供用于与三维地图(例如,网格式)进行比较的局部地图。在某些情况下,定位组件520可提供用于确定与局部地图、三维地图和/或一个或多个传感器系统506相关联的误差的功能。例如,定位组件520可以确定与车辆502相关联的位置误差(例如,漂移误差)。随着操作时间的推移,误差可能会累积,从而导致定位和/或轨迹数据中的误差。在一些情况下,定位组件520可以基于例如满足或超过阈值的位置误差来确定误差。在一些情况下,定位组件520可以基于位置误差来确定与一个或多个传感器系统506相关联的校准调整。

仅出于说明的目的,定位组件520可基于来自一个或多个传感器系统506的GPS数据来确定车辆的位置。然而,局部地图的比较可以指示车辆处于与GPS数据所指示的位置不同的位置。因此,定位组件520可以指示GPS传感器和/或局部地图存在误差。

在一些情况下,定位组件520可以确定与三维地图相关联的更新。仅出于说明的目的,一个或多个传感器系统506可以向定位组件520提供位置数据。另外,定位组件520可基于局部地图和三维地图的比较来确定位置。然而,该比较可以指示局部地图的一个或多个点与三维地图不对应。这可指示三维地图已过时。定位组件520可将局部地图和三维地图之间的差异确定为更新的地图并且存储地图更新或者经由网络534将地图更新提供给例如地图数据服务器。

感知组件522可包括用于执行对象检测、分割和/或分类的功能。在一些示例中,感知组件522可以提供经处理的传感器数据,该数据指示存在靠近车辆502的实体和/或将实体分类为实体类型(例如,汽车、行人、骑自行车的人、建筑物、树木、路面、路缘、人行道、未知等)。在附加和/或替代示例中,感知组件522可提供经处理的传感器数据,其指示与检测到的实体和/或该实体所位于的环境相关联的一个或多个特性。在一些示例中,与实体相关联的多个特性可包括但不限于x位置(全局位置)、y位置(全局位置)、z位置(全局位置)、朝向、实体类型(例如,分类)、实体速度、实体范围(大小)等。与环境相关联的多个特性可包括但不限于环境中另一个实体的存在、环境中另一个实体的状态、一天中的时间、一周中的一天、季节、天气状况、对黑暗/光明的指示等。

如上所述,感知组件522可使用多种感知算法来基于传感器数据确定与环境中的对象相关联的基于感知的边界框。例如,感知组件522可接收图像数据并对图像数据进行分类以确定对象表示于图像数据中。接着,使用检测算法,感知组件522可生成与对象相关联的二维边界框和/或基于感知的三维边界框。感知组件522可进一步生成与对象相关联的三维边界框。如上所述,三维边界框可以提供附加信息,例如与对象相关联的位置、朝向、姿态和/或大小(例如,长度、宽度、高度等)。

感知组件522可包括用于存储由感知组件522生成的感知数据的功能。在一些情况下,感知组件522可以确定与已被分类为对象类型的对象相对应的路线。仅出于说明目的,使用一个或多个传感器系统506,感知组件522可以捕获环境的一个或多个图像。一个或多个传感器系统506可以捕获包括诸如行人之类的对象的环境的多个图像。行人可以在时间T位于第一位置并且在时间T+t位于第二位置(例如,在时间T之后的时间t跨度期间的移动)。换言之,行人可以在这段时间跨度期间从第一位置移动到第二位置。例如,这种运动可记录为与对象相关联的被存储的感知数据。

在一些示例中,存储的感知数据可包括由车辆捕获的融合感知数据。融合感知数据可包括来自一个或多个传感器系统506的传感器数据的融合或其他组合,传感器系统506例如图像传感器、激光雷达传感器、雷达传感器、飞行时间传感器、声纳传感器、全球定位系统传感器、内部传感器和/或该些传感器的任何组合。存储的感知数据可以附加地或替代地包括分类数据,该分类数据包括传感器数据中表示的多个对象的语义分类(例如,行人、车辆、建筑物、路面等)。所存储的感知数据可以附加地或替代地包括与被分类为动态对象的多个对象在环境中的运动相对应的路线数据(位置、朝向、传感器特征等)。路线数据可以包括多个不同对象随时间的多个路线。当对象静止(例如,静止站立)或移动(例如,步行、跑步等)时,可以挖掘该路线数据以识别某些类型的对象(例如,行人、动物等)的图像。在该示例中,计算设备确定对应于行人的路线。

感知组件522可包括机器学习组件524,其可根据本文所讨论的技术进行训练以基于图像数据确定深度数据。在一些示例中,机器学习组件524可包括用于接收图像数据(例如,单个图像帧)的功能并且可输出与图像数据中的每个像素相关联的深度数据。在一些情况下,机器学习组件524可在一个或多个其他传感器和组件不工作的情况下作为备用组件,并且在一些示例中,如本文所讨论的,机器学习组件524可以充当用于定位组件520、感知组件522、预测组件526和/或规划组件528的深度数据的主要来源。

预测组件526可生成表示环境中一个或多个对象的可能位置的多个预测概率的一个或多个概率图。例如,预测组件526可为距车辆502的阈值距离内的多个车辆、行人、动物等生成一个或多个概率图。在一些情况下,预测组件526可测量对象的路线并基于观察到的和预测的行为来生成对象的离散化预测概率图、热图、概率分布、离散化概率分布和/或轨迹。在一些情况下,一个或多个概率图可表示环境中一个或多个对象的意图。

规划组件528可确定车辆502要遵循以穿越环境的路径。例如,规划组件528可以确定各种线路和路径以及各种级别的细节。在一些情况下,规划组件528可以确定用于从第一位置(例如,当前位置)行驶到第二位置(例如,目标位置)的线路。出于本讨论的目的,线路可以是用于在两个位置之间行驶的路径点(waypoint)序列。作为非限制性示例,路径点包括街道、十字路口、全球定位系统(GPS)坐标等。此外,规划组件528可以生成用于引导自动驾驶车辆沿着从第一位置到第二位置的线路的至少一部分的指令。在至少一个示例中,规划组件528可以确定如何将自动驾驶车辆从路径点序列中的第一路径点引导到路径点序列中的第二路径点。在一些示例中,指令可以是路径或路径的一部分。在一些示例中,可以根据后退时域技术(receding horizon technique)基本上同时生成多条路径(即,在技术容差内)。可选择具有最高置信水平的后退数据时域(horizon)中的多条路径中的单条路径来操作车辆。

在其他示例中,规划组件528可以替代地或附加地使用来自感知组件522和/或预测组件526的数据来确定车辆502要遵循以穿越环境的路径。例如,规划组件528可以从感知组件522和/或预测组件526接收关于与环境相关联的多个对象的数据。使用该数据,规划组件528可确定用于从第一位置(例如,当前位置)行驶到第二位置(例如,目标位置)的线路,以避开环境中的多个对象。在至少一些示例中,这样的规划组件528可确定不存在这样的无碰撞路径,并且进而提供使车辆502安全停止的路径,从而避免所有碰撞和/或以其他方式减轻损坏。

存储器518还可以包括一个或多个地图530,车辆502可以使用所述地图530在环境内导航。出于讨论的目的,地图可以是任意数量的数据结构,这些数据结构建模为二维、三维或N维,其能够提供有关环境的信息,例如但不限于拓扑结构(例如,交叉路口)、街道、山脉、道路、地形和一般环境。在某些情况下,地图可以包括但不限于:纹理信息(例如,颜色信息(例如,RGB颜色信息、Lab颜色信息、HSV/HSL颜色信息)等)、强度信息(例如,激光雷达信息、雷达信息等);空间信息(例如,投影到网格上的图像数据、各个“面元(surfel)”(例如,与个体颜色和/或强度相关联的多边形))、反射率信息(例如,镜面反射率信息、回射率信息、BRDF信息、BSSRDF信息等)。在一个示例中,地图可以包括环境的三维网格。在一些情况下,地图可以以分片格式(tiled format)存储,使得地图的各个分片表示环境的离散部分,并且可以根据需要加载到工作存储器中,如本文所讨论的。在至少一个示例中,一张或多张地图530可以包括至少一张地图(例如,图像和/或网格)。在一些示例中,可以至少部分地基于一个或多个地图530来控制车辆502。也就是说,一个或多个地图530可以与定位组件520、感知组件522、机器学习组件524、预测组件226和/或规划组件528结合以确定车辆502的位置、识别环境中的多个对象、生成与多个对象和/或车辆502相关联的一个或多个预测概率、和/或生成用于在环境内导航的多个线路和/或轨迹。

在一些示例中,一个或多个地图530可以存储在可通过一个或多个网络534访问的一个或多个远程计算设备(例如,一个或多个计算设备536)上。在一些示例中,可以基于例如特性(例如,实体的类型、一天中的时间、一周中的一天、一年中的季节等)来存储多个地图530。存储多个地图530可以具有相似的存储器需求,但可以提高可访问地图中的数据的速度。

在至少一个示例中,计算设备504可以包括一个或多个系统控制器532,其可配置为控制车辆502的转向、推进、剎车、安全、发射器、通信和其他系统。这些一个或多个系统控制器532可以与以下各项通信或控制以下各项:一个或多个驾驶系统514的对应系统和/或车辆502的其他组件,其可以根据从规划组件528提供的路径来操作。

车辆502可通过网络534连接到一个或多个计算设备536并且可以包括一个或多个处理器538和与一个或多个处理器538通信耦合的存储器540。在至少一种情况下,一个或多个处理器538可以类似于一个或多个处理器516并且存储器540可以类似于存储器518。在所示示例中,计算设备536的存储器540存储训练组件542,训练组件542包括图像数据组件544、深度数据组件546、机器学习组件548、逆扭曲组件550、上采样组件552和损失组件554。在至少一种情况下,机器学习组件548在训练之后可类似于机器学习组件524。尽管出于说明性目的被描绘为驻留在存储器540中,但仍可以预期训练组件542、图像数据组件544、深度数据组件546、机器学习组件548、逆扭曲组件550、上采样组件552和损失组件554可附加地或替代地可由一个或多个计算设备536访问(例如,存储在一个或多个计算设备536的不同组件中)和/或可由一个或多个计算设备536访问(例如,远程存储)。

如本文所讨论的,训练组件542可以训练机器学习组件548以基于图像数据来生成深度数据。训练组件542可将训练数据确定为机器学习组件548的多个输入。例如,训练数据可包括传感器数据,例如由车辆捕获的训练图像数据。在一些情况下,图像数据可以是修改的图像数据和/或合成图像数据。附加地,训练数据可以包括传感器数据,例如激光雷达数据、飞行时间数据和/或雷达数据作为地面真值数据。

在一些示例中,图像数据组件544可包括用于接收由多个立体图像传感器捕获的图像数据的功能。在一些示例中,图像数据组件544可以预处理图像数据以用于训练,例如通过去除失真和/或相对于彼此校正图像。失真的示例可包括镜头畸变、颜色校正等。校正图像数据的示例可以包括对齐图像数据,使得第一图像数据中的像素与第二图像数据中的对应像素在同一行中。

在一些示例中,深度数据组件546可以包括用于接收由一个或多个激光雷达传感器、飞行时间传感器、雷达传感器等捕获的深度数据的功能。在一些示例中,深度数据组件546可以相对于图像数据对齐或配准深度数据,使得深度数据的对应点与立体图像数据的左图像数据和/或右图像数据中的特定像素相关联。

机器学习组件548可以使用由训练组件542提供(例如,由图像数据组件544和/或深度数据组件546提供)的训练数据来训练机器学习模型以确定与训练图像数据相关联的深度数据。一旦机器学习组件548被训练,机器学习组件548就可以被部署于车辆502中作为(经训练的)机器学习组件524。

在一些示例中,逆扭曲组件550可包括用于基于估计的深度数据(例如,由机器学习组件输出的)和基于第二图像数据来生成或以其他方式确定重建的第一图像的功能。例如,逆扭曲组件550可至少部分地基于预测的深度数据从第二图像沿水平扫描线移位多个像素以生成重建的第一图像。

在一些示例中,上采样组件552可包括用于对由机器学习组件输出的一个或多个特征图进行上采样的功能。在一些示例中,上采样组件552可基于局部平面引导(LPG)。在一些示例中,上采样组件552可包括于机器学习模型的编码器部分中或者可以是单独的组件。

在一些示例中,损失组件554可以包括用于确定自我监督和/或监督的损失的功能,如本文所讨论的。多个损失可能包括但不限于:一个或多个像素损失、一个或多个平滑损失、一个或多个结构相似性损失、一个或多个一致性损失(例如,左/右一致性损失、深度/视差一致性损失、基于边缘的一致性损失、基于分割的一致性损失等)等。在一些示例中,任何损失可以表示L1损失(平均绝对误差)、L2损失(均方误差)、似然损失、对数损失、交叉熵损失、铰链损失、休伯损失等。在整个本公开中讨论了各种损失的细节。

计算设备504的一个或多个处理器516和计算设备536的一个或多个处理器538可以是能够执行指令以处理数据和执行如本文所述的操作的任何合适的处理器。作为示例而非限制,一个或多个处理器516和538可以包括一个或多个中央处理单元(CPU)、图形处理单元(GPU)、或处理电子数据以将该电子数据转换为可存储在寄存器和/或存储器中的其他电子数据的任何其他设备或设备的一部分。在一些示例中,多个集成电路(例如,ASIC等)、多个门阵列(例如,FPGA等)和其他硬件设备也可以被认为是处理器,只要它们被配置为实现编码指令。

计算设备504的存储器518和一个或多个计算设备536的存储器540是非暂时性计算机可读介质的示例。存储器518和540可以存储操作系统和一个或多个软件应用、指令、程序和/或数据以实现本文描述的方法和归属于各种系统的多种功能。在各种实施方式中,存储器518和540可以使用任何合适的存储器技术来实现,例如静态随机存取存储器(SRAM)、同步动态RAM(SDRAM)、非易失性/闪存型存储器或能够存储信息的任何其他类型的存储器。本文描述的多种架构、系统和各个元素可包括许多其他逻辑、程序和物理的组件,其中附图中所示的那些仅仅是与本文的讨论相关的示例。

在一些情况下,本文讨论的一些或所有组件的方面可以包括任何模型、算法和/或机器学习算法。例如,在某些情况下,存储器518和540中的多个组件可以实现为神经网络。

如本文所述,示例的性神经网络是受生物学启发的算法,其将输入数据传递通过一系列的连接层以产生输出。神经网络中的每一层也可以包括另一个神经网络,或者可以包括任意数量的层(无论是否是卷积的)。如在本公开的上下文中可以理解的,神经网络可以利用机器学习,其可以指代广泛类型的这样的算法,其中基于学习的多个参数来生成输出。

尽管在神经网络的上下文中进行了讨论,但是可以使用与本公开一致的任何类型的机器学习。例如,多个机器学习算法或机器学习的算法可以包括但不限于回归算法(例如,普通最小二乘回归(OLSR)、线性回归、逻辑回归、逐步回归、多元自适应回归样条(MARS)、局部估计散点图平滑(LOESS))、基于实例的算法(例如,岭回归、最小绝对收缩和选择运算符(LASSO)、弹性网络、最小角度回归(LARS))、判定树算法(例如,分类和回归树(CART)、迭代二分法3(ID3)、卡方自动交互检测(CHAID)、判定树桩、条件判定树)、贝叶斯算法(例如,朴素贝叶斯、高斯朴素贝叶斯、多项朴素贝叶斯、平均单依赖估计量(AODE)、贝叶斯信念网络(BNN)、贝叶斯网络)、聚类算法(例如,k-平均值、k-中位数、期望最大化(EM)、层次聚类)、关联规则学习算法(例如,感知器、反向传播、霍普菲尔德网络、径向基函数网络(RBFN))、深度学习算法(例如,深度玻尔兹曼机(DBM)、深度信念网络(DBN)、卷积神经网络(CNN)、堆栈自动编码器)、降维度算法(例如,主成分分析(PCA)、主成分回归(PCR)、偏最小二乘回归(PLSR)、萨蒙映射、多维度缩放(MDS)、投影追踪、线性判别分析(LDA)、混合判别分析(MDA)、二次判别分析(QDA)、灵活判别分析(FDA))、集成算法(例如,提升、引导聚合(Bagging)、AdaBoost、堆栈泛化(混合)、梯度提升机(GBM)、梯度增强回归树(GBRT)、随机森林)、SVM(支持向量机)、监督学习、无监督学习、半监督学习等。

架构的其他示例包括神经网络,例如ResNet50、ResNet101、VGG、DenseNet、PointNet等。

因此,本文讨论的技术提供了基于图像数据确定环境深度数据的稳健实现方式,以允许自动驾驶车辆的安全操作。

图6和7图示了根据本公开的示例的示例过程。这些过程被图示为逻辑流程图,其中的每个操作表示可以在硬件、软件或其组合中实现的操作序列。在软件上下文中,多个操作表示存储在一个或多个计算机可读存储介质上的多个计算机可执行指令,当其由一个或多个处理器执行时,执行所记载的操作。通常,计算机可执行指令包括执行多种特定功能或实现多种特定抽象数据类型的多个例程、程序、对象、组件、数据结构等。描述多种操作的顺序不旨在被解释为限制,并且任何数量的所描述的操作可以以任何顺序和/或并行组合以实现过程。

图6是用于训练机器学习模型以生成基于图像的深度数据的示例过程600。例如,过程600中的部分或全部可以由图5中的一个或多个组件执行,如本文所述。例如,过程600的部分或全部可以由一个或多个车辆计算设备504执行。

在操作602中,该过程可以包括接收立体图像数据和与立体图像数据相关联的深度数据。在一些示例中,操作602可包括在车辆穿越环境时接收由一辆或多辆自动驾驶车辆捕获的立体图像数据和深度数据。如上所述,在一些示例中,环境的至少一部分表示于立体对的两个图像中。此外,在一些示例中,深度数据可以与立体图像数据的至少一部分相关联以提供地面真值深度值。如上所述,在一些示例中,图像数据可由包括共可见性的任何多视图系统捕获,并且不限于多个立体图像传感器。在一些示例中,深度数据可以由一个或多个激光雷达传感器和/或一个或多个飞行时间传感器捕获。

在操作604中,该过程可包括将左图像数据输入到机器学习(ML)模型。在一些示例中,机器学习模型可配置为输出与图像数据相关联的预测深度信息。在一些示例中,与ML模型相关联的多个权重可在第一时间用随机值初始化并且可以在第一时间之后的一个或多个第二时间通过损失的反向传播来调整,如本文中所讨论的。

在操作606中,该过程可以包括从ML模型接收与左图像数据相关联的预测深度信息。如上所述,预测的深度信息可包括但不限于一个或多个深度值(例如,以米为单位)、一个或多个逆深度值(例如,1/米)、或视差数据(例如,衡量像素从一幅图像到另一幅图像的水平位移,其中该像素代表两幅图像中的相同的对象或点)。在一些示例中,ML模型可以输出用于图像数据的一些或所有像素的预测深度信息。

在操作608中,该过程可以包括至少部分地基于预测的深度信息(来自操作606)和右图像数据来确定重建的左图像数据。在一些示例中,操作608可包括基于预测的深度信息来扭曲右图像以确定重建的左图像数据。在一些示例中,可以通过算法或通过机器学习模型来执行扭曲。

在操作610中,该过程可以包括确定左图像数据和重建的左图像数据之间的第一差异。在一些示例中,操作610可包括确定一个或多个损失,其包括但不限于像素损失、平滑损失(例如,其可以基于单个图像)、结构相似性损失和/或一致性损失(受制于附加数据,本文讨论的)。

如可理解地,多个操作604、606、608和610是在左图像数据作为输入的上下文中讨论的。过程600可包括针对右图像数据的类似的操作。

在操作612,该过程可包括该过程可以包括将右图像数据输入到机器学习(ML)模型。操作612可类似于上方所讨论的操作604,并且取决于实施方式,其可以是可选的。

在操作614,该过程可以包括该过程可以包括从ML模型接收与右图像数据相关联的预测深度信息。操作614可以类似于上方讨论的操作606,并且取决于实施方式,其可以是可选的。

在操作616中,该过程可以包括至少部分地基于预测的深度信息(来自操作614)和左图像数据来确定重建的右图像数据。操作616可类似于上方讨论的操作608,并且取决于实施方式,其可以是可选的。

在操作618中,该过程可以包括确定右图像数据和重建的右图像数据之间的第二差异。操作618可以类似于上方讨论的操作610,并且取决于实施方式,其可以是可选的。

在操作620中,该过程可包括确定深度数据(例如,在操作602中接收的激光雷达数据和/或飞行时间数据)与预测的深度信息之间的第三差异。在一些示例中,预测深度信息可以与左图像数据相关联(例如,来自操作606),或者预测深度信息可以与右图像数据(例如,来自操作614)相关联。

在操作622中,该过程可以包括至少部分地基于第一差异(和/或第二差异)和第三差异来确定损失。在一些示例中,第一差异、第二差异或第三差异中的至少一个可包括L2损失。在一些示例中,基于确定的差异、基于实施方式,操作622可以包括求和、聚合或以其他方式确定损失。

在操作624中,该过程可包括至少部分地基于损失来训练机器学习模型以生成经训练的机器学习模型。例如,可以将损失反向传播通过机器学习模型,以调整各种激活功能的一个或多个权重,以将整体损失最小化。

在一些示例中,过程600还可包括将机器学习模型发送到自动驾驶车辆(或其他设备或组件)以基于图像数据来确定深度数据,如本文所讨论。此外,多种操作可以包括至少部分地根据基于图像的深度数据来确定轨迹和/或控制车辆跟随的轨迹。

图7是用于训练机器学习模型以生成基于图像的深度数据的另一个示例过程700。例如,过程700中的部分或全部可以由图5中的一个或多个组件执行,如本文所述。例如,过程700中的部分或全部可以由一个或多个车辆计算设备504执行。

在操作702中,该过程可包括接收立体图像数据和与立体图像数据相关联的深度数据(例如,激光雷达数据和/或飞行时间数据)。在一些示例中,操作702可基本上对应于操作602。

在操作704,该过程可包括至少部分地基于输入到机器学习模型的第一图像数据来确定预测的深度信息和预测的视差信息。在一些示例中,操作704可基本上对应于和/或可包括操作604、606、612和/或614的多个方面。在一些示例中,操作704可至少部分地基于局部平面引导上采样706。例如,机器学习模型可包括编码器部分,其可对由机器学习模型的编码器部分输出的一个或多个特征图进行上采样。在一些示例中,编码器可以使用局部平面引导来对多个特征图进行上采样,使得预测的深度信息可以至少部分地基于局部平面引导上采样。

在操作708中,该过程可包括至少部分地基于预测的视差信息和第二图像数据来确定重建的第一图像数据。在一些示例中,操作708可基本上对应于和/或可包括操作608和/或616的多个方面。

在操作710中,该过程可包括确定第一图像数据和重建的第一图像数据之间的第一差异。在一些示例中,操作710可以基本上对应于和/或可以包括操作610和/或618的多个方面。

在操作712中,该过程可包括确定深度数据和预测的深度信息之间的第二差异。在一些示例中,操作712可基本上对应于和/或可以包括操作620的多个方面。

在操作714中,该过程可包括确定是否确定一致性损失。若是,则过程继续到操作716。若否,则过程继续到操作718。

在操作716中,该过程可以包括确定预测的深度信息和预测的视差信息之间的第三差异。在一些示例中,第三差异可表示深度/视差的一致性损失,如本文中所讨论的。例如,机器学习模型可以包括:第一输出头,其基于自我监督训练(基于图像的训练)输出预测的深度信息(和/或预测的逆深度信息或视差信息);以及第二输出头,其基于监督训练(基于激光雷达的训练)输出预测的深度信息。

在操作718中,该过程可包括确定是否平衡损失以用于训练机器学习模型。若是,则过程继续到操作720。若否,则过程继续到操作722。

在操作720中,该过程可包括确定与差异相关联的权重。例如,操作720可包括确定(例如,学习)权重(例如,标量值)以对各种差异(例如,第一差异、第二差异和/或第三差异)进行加权。在一些示例中,操作720可以至少部分地基于与各种损失相关联的同方差性和/或不确定性。

在操作722,该过程可包括至少部分地基于第一差异和第二差异(和/或第三差异和/或权重)来确定损失。在一个示例中,第一差异、第二差异和/或第三差异中的至少一个包括L2损失,其表示为元素724。

在操作726中,该过程可包括至少部分地基于损失来训练机器学习模型以生成训练的机器学习模型。在一些示例中,操作726可以基本上对应于和/或可以包括操作624的多个方面。

示例条款

A:一种系统,其包括:一个或多个处理器;以及一个或多个存储计算机可执行指令的非暂时性计算机可读介质,该些指令在执行时使一个或多个处理器执行多种操作,包括:训练机器学习模型以确定深度信息,训练包括:接收由立体图像传感器捕获的图像数据,图像数据包括由左图像传感器捕获的左图像数据及由右图像传感器捕获的右图像数据;接收由激光雷达传感器捕获的激光雷达数据,该激光雷达数据与图像数据的一部分相关联;将左图像数据输入到机器学习模型中;从机器学习模型接收与左图像数据相关联的预测深度信息;至少部分地基于预测的深度信息和右图像数据来确定重建的左图像数据;确定左图像数据和重建的左图像数据之间的第一差异;确定预测深度信息的至少一部分与激光雷达数据之间的第二差异;至少部分地基于第一差异和第二差异来确定损失;以及至少部分基于损失来训练机器学习模型以生成机器学习模型。

B:如段落A所述的系统,多个操作进一步包括:将机器学习模型发送到自动驾驶车辆以用于控制自动驾驶车辆。

C:如段落A或B所述的系统,其中预测的深度信息包括以下至少之一:深度数据;逆深度数据;或差异数据。

D:如段落A-C中任一段所述的系统,其中第一差异包括以下中的至少一个:像素损失,其表示与左图像数据的第一像素相关联的第一强度值和与重建的左图像数据中的第二像素相关联的第二强度值的差异;或与以下中的至少一个相关联的结构相似性损失:与左图像数据和重建的左图像数据相关联的边缘或不连续性。

E:如段落A-D中任一段所述的系统,其中预测深度信息与离散深度值相关联。

F:一种方法,包括:接收由包括第一视场的第一图像传感器捕获的第一图像数据;接收由包括第二视场的第二图像传感器捕获的第二图像数据,其中,所述第一视场的至少一部分与所述第二视场的至少一部分相关联;接收由深度传感器捕获的深度数据,所述深度数据与所述第一图像数据或所述第二图像数据中的至少一个的一部分相关联;将所述第一图像数据输入到机器学习模型中;从所述机器学习模型接收与所述第一图像数据相关联的预测深度信息;至少部分地基于所述预测深度信息和所述第二图像数据,来确定重建的第一图像数据;确定所述第一图像数据和所述重建的第一图像数据之间的第一差异;确定所述预测深度信息和所述深度数据之间的第二差异;至少部分地基于所述第一差异和所述第二差异来确定损失;以及至少部分地基于所述损失来调整与所述机器学习模型相关联的参数,以生成经训练的机器学习模型。

G:如段落F所述的方法,其进一步包括:将所述经训练的机器学习模型发送到自动驾驶车辆,以用于控制所述自动驾驶车辆。

H:如段落F或G所述的方法,其中,所述预测深度信息包括以下各项中的至少一项:深度数据;逆深度数据;或者视差数据。

I:如段落F-H中任一段所述的方法,其中所述第一差异包括表示以下二者之间的差异的像素损失:与所述第一图像数据的第一像素相关联的第一强度值,以及与所述重建的第一图像数据中的第二像素相关联的第二强度值。

J:如段落F-I中任一段所述的方法,其进一步包括:确定第三差异,其包括至少部分地基于所述重建的第一图像数据的平滑损失,其中,与所述平滑损失相关联的权重至少部分地基于在所述第一图像数据或所述重建的第一图像数据中的至少一个中表示的边缘。

K:如段落F-J中任一段所述的方法,其中第一差异包括至少部分地基于与第一图像数据的一部分相关联的平均值或协方差中的至少一个的结构相似性损失。

L:如段落F-K中任一段所述的方法,其中所述预测深度信息至少部分根据基于形状的上采样。

M:如段落F-L中任一段所述的方法,其中确定所述重建的第一图像数据包括:至少部分地基于所述预测深度信息来扭曲所述第二图像数据。

N:如段落F-M中任一段所述的方法,其中,所述预测深度信息为第一预测深度信息,所述方法还包括:将所述第二图像数据输入到所述机器学习模型中;从所述机器学习模型接收与所述第二图像数据相关联的第二预测深度信息;至少部分地基于所述第二预测深度信息和所述第一图像数据,来确定重建的第二图像数据;确定所述第二图像数据和所述重建的第二图像数据之间的第三差异;以及进一步至少部分地基于所述第三差异来确定所述损失。

O:一个或多个非暂时性计算机可读介质,存储能够由一个或多个处理器执行的指令,其中,所述指令在被执行时使所述一个或多个处理器执行操作,所述操作包括:接收由立体图像传感器中的第一图像传感器捕获的第一图像数据;接收由所述立体图像传感器中的第二图像传感器捕获的第二图像数据;接收由深度传感器捕获的深度数据,所述深度数据与所述第一图像数据或所述第二图像数据中的至少一个的一部分相关联;将所述第一图像数据输入到机器学习模型中;从所述机器学习模型接收与所述第一图像数据相关联的预测深度信息;至少部分地基于所述预测深度信息和所述第二图像数据,来确定重建的第一图像数据;确定所述第一图像数据和所述重建的第一图像数据之间的第一差异;确定所述预测深度信息和所述深度数据之间的第二差异;至少部分地基于所述第一差异和所述第二差异来确定损失;并且至少部分地基于所述损失来调整所述机器学习模型的参数,以生成经训练的机器学习模型。

P:如段落O所述的一个或多个非暂时性计算机可读介质,多个操作进一步包括:将经训练的机器学习模型发送到自动驾驶车辆以用于控制自动驾驶车辆。

Q:如段落O或P所述的一个或多个非暂时性计算机可读介质,其中所述第一差异包括以下各项中的至少一项:像素损失;平滑损失;或者结构相似性损失。

R:如段落O-Q中任一段所述的一个或多个非暂时性计算机可读介质,其中所述预测深度信息与离散的深度值相关联。

S:如段落O-R中任一段所述的一个或多个非暂时性计算机可读介质,其中,所述预测深度信息为第一预测深度信息,所述操作还包括:将所述第二图像数据输入到所述机器学习模型中;从所述机器学习模型接收与所述第二图像数据相关联的第二预测深度信息;至少部分地基于所述第二预测深度信息和所述第一图像数据,来确定重建的第二图像数据;确定所述第二图像数据和所述重建的第二图像数据之间的第三差异;以及进一步至少部分地基于所述第三差异来确定所述损失。

T:如段落O-S中任一段所述的一个或多个非暂时性计算机可读介质,所述操作还包括:接收与在所述第一图像数据或所述第二图像数据中的至少一个中表示的对象相关联的语义信息;其中,所述损失至少部分地基于所述语义信息。

U:一种系统,包括:一个或多个处理器;以及一个或多个存储计算机可执行指令的非暂时性计算机可读介质,所述指令在被执行时使一个或多个处理器执行操作,所述操作包括:接收由多个立体图像传感器捕获的图像数据,该图像数据包括由左图像传感器捕获的左图像数据和由右图像传感器捕获的右图像数据;接收由激光雷达传感器捕获的激光雷达数据,该激光雷达数据与图像数据的一部分相关联;将左图像数据输入机器学习模型中;从机器学习模型接收与左图像数据相关联的预测视差信息和预测深度信息;至少部分地基于预测的视差信息和右图像数据,确定重建的左图像数据;确定左图像数据和重建的左图像数据之间的第一差异;确定预测深度信息和激光雷达数据之间的第二差异;确定预测视差信息和预测深度信息之间的第三差异;确定与第一差异、第二差异或第三差异中的至少一个相关联的权重;至少部分地基于第一差异、第二差异、第三差异和权重来确定损失;以及至少部分基于损失来训练机器学习模型以生成经训练的机器学习模型。

V:如段落U中所述的系统,所述操作进一步包括:至少部分地依据基于形状的上采样来确定机器学习模型的中间输出;其中,预测视差信息或预测深度信息中的至少一个至少部分地基于中间输出。

W:如段落U或V中所述的系统,其中第三差异表示一致性损失。

X:如段落U-W中任一段所述的系统,其中权重是至少部分基于不确定性的学习权重。

Y:如段落U-X中任一段所述的系统,所述操作进一步包括将经训练的机器学习模型发送到自动驾驶车辆以用于控制自动驾驶车辆。

Z:一种方法,包括:接收由包括第一视场的第一图像传感器捕获的第一图像数据;接收由包括第二视场的第二图像传感器捕获的第二图像数据,其中第一视场的至少一部分与第二视场的至少一部分相关联;接收由深度传感器捕获的深度数据,该深度数据与第一图像数据或第二图像数据中的至少一个的一部分相关联;将第一图像数据输入到机器学习模型中;从机器学习模型接收与第一图像数据相关联的预测视差信息和预测深度信息;至少部分地基于预测的视差信息和第二图像数据,确定重建的第一图像数据;确定第一图像数据和重建的第一图像数据之间的第一差异;确定预测的深度信息和深度数据之间的第二差异;至少部分地基于第一差异和第二差异来确定损失;以及至少部分地基于损失来调整机器学习模型的参数以生成经训练的机器学习模型。

AA:如段落Z中所述的方法,还包括将经训练的机器学习模型发送到自动驾驶车辆以用于控制自动驾驶车辆。

AB:如段落Z或AA中所述的方法,其中预测深度信息包括以下至少之一:深度数据;逆深度数据;或视差数据。

AC:如段落Z-AB中任一段所述的方法,其进一步包括:确定预测的视差信息和预测的深度信息之间的第三差异;并进一步至少部分地基于第三差异确定损失。

AD:如段落AC中所述的方法,其中第三差异表示一致性损失。

AE:如段落Z-AD中任一段所述的方法,其进一步包括:确定与第一差异或第二差异中的至少一个相关联的权重;并进一步至少部分地基于权重来确定损失。

AF:如段落AE中所述的方法,其中权重是至少部分基于不确定性的学习权重。

AG:如段落Z-AF中任一段所述的方法,其中确定重建的第一图像数据包括至少部分地基于预测的视差信息来扭曲第二图像数据。

AH:如段落Z-AG中任一段所述的方法,其中第一差异包括以下至少一项:像素损失;或结构相似性损失。

AI:一个或多个非暂时性计算机可读介质,其存储可由一个或多个处理器执行的指令,其中所述指令在被执行时,使一个或多个处理器执行操作,所述操作包括:接收由包括第一视场的第一图像传感器捕获的第一图像数据;接收由包括第二视场的第二图像传感器捕获的第二图像数据,其中第一视场的至少一部分与第二视场的至少一部分相关联;接收由深度传感器捕获的深度数据,该深度数据与第一图像数据或第二图像数据中的至少一个的一部分相关联;将第一图像数据输入到机器学习模型中;从机器学习模型接收与第一图像数据相关联的预测视差信息和预测深度信息;至少部分地基于预测的视差信息和第二图像数据来确定重建的第一图像数据;确定第一图像数据和重建的第一图像数据之间的第一差异;确定预测的深度信息和深度数据之间的第二差异;确定预测视差信息和预测深度信息之间的第三差异;确定与第一差异、第二差异或第三差异中的至少一个相关联的权重;至少部分地基于第一差异、第二差异、第三差异和权重来确定损失;以及至少部分地基于损失来调整机器学习模型的参数以生成经训练的机器学习模型。

AJ:如段落AI中所述的一个或多个非暂时性计算机可读介质,其中预测的深度信息至少部分地根据基于形状的上采样。

AK:如段落AI或AJ中所述的一个或多个非暂时性计算机可读介质,其中权重是与第一差异相关联的第一权重,所述操作还包括:确定与第二差异或第三差异中的至少一个相关联的第二权重,其中第二权重不同于第一权重;并且进一步至少部分地基于第二权重来确定损失。

AL:如段落AK中所述的一个或多个非暂时性计算机可读介质,其中第一权重和第二权重是学习的权重。

AM:如段落AI-AL中任一段所述的一个或多个非暂时性计算机可读介质,所述操作进一步包括:接收与在第一图像数据或第二图像数据中的至少一个中表示的对象相关联的语义信息;其中损失至少部分基于语义信息。

AN:如段落AM中所述的一个或多个非暂时性计算机可读介质,其中:语义信息包括静态分类、动态分类或对象类型分类中的至少一种。

虽然上述示例条款是针对一种特定实施方式进行描述的,但应理解,在本文档的上下文中,示例条款的内容还可通过方法、设备、系统、计算机可读介质和/或另一种实施方式来实现。此外,任何示例A-AN可以单独实施或与任何其他一个或多个示例A-AN组合实施。

结论

尽管已经描述了本文中所描述的技术的一个或多个示例,但其各种改变、增加、排列和等同物都包括在本文所描述的技术的范围内。

在示例的描述中,参考了构成其一部分的附图,这些附图通过图解的方式示出了要求保护的目标的具体示例。应当理解的是,可以使用其他示例并且可以进行改变或变更,例如结构的改变。这样的多个示例、改变或变更不一定会脱离关于预期要求保护的目标的范围。尽管本文中的步骤可以特定顺序呈现,但在某些情况下,顺序可改变使得在不同时间或以不同顺序提供特定输入,而不改变所描述的多个系统和方法的功能。所公开的多个程序也可以不同的顺序执行。另外,本文中的各种计算不需要按照所公开的顺序执行,并且可以容易地实施使用多种计算方式的多个替代排序的其他示例。除了重新排序之外,多种计算方式还可拆解为多个具有相同结果的子计算。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号