从3D边界框的单眼深度监督的制作方法

文档序号:33652492发布日期:2023-03-29 09:16阅读:44来源:国知局
从3D边界框的单眼深度监督的制作方法
从3d边界框的单眼深度监督
技术领域
1.本公开的某些方面总体上涉及深度估计系统。


背景技术:

2.自主代理(例如,车辆、机器人等)依赖于深度估计来执行各种任务。这些各种任务可以包括构造周围环境的三维(3d)表示或识别3d对象。3d表示可以用于各种任务,诸如定位和/或自主导航。改进深度估计的准确性可以改进下游任务(诸如产生3d表示或3d对象检测)的准确性。可取的是改进从通过自主代理的传感器捕捉的图像获得的深度估计的准确性。


技术实现要素:

3.在本公开的一个方面,公开了一种方法。所述方法包括捕捉与自我车辆相邻的环境的二维(2d)图像。所述环境至少包括动态对象和静态对象。所述方法还包括经由深度估计网络来基于2d图像产生环境的深度图。对于深度图中的动态对象的深度估计的准确性大于对于深度图中的静态对象的深度估计的准确性。所述方法进一步包括基于深度图来产生环境的三维(3d)估计。所述方法更进一步包括基于识别的位置来控制自我车辆的动作。
4.在本公开的另一方面,公开了一种具有记录于其上的非暂时性程序代码的非暂时性计算机可读介质。所述程序代码被处理器执行,并且包括捕捉与自我车辆相邻的环境的2d图像的程序代码,所述环境至少包括动态对象和静态对象。所述程序代码还包括经由深度估计网络来基于2d图像产生环境的深度图的程序代码。对于深度图中的动态对象的深度估计的准确性大于对于深度图中的静态对象的深度估计的准确性。所述程序代码进一步包括基于深度图来产生环境的3d估计的程序代码。所述程序代码更进一步包括基于识别的位置来控制自我车辆的动作的程序代码。
5.本公开的另一方面涉及一种设备。所述设备具有存储器、耦合到存储器的一个或多个处理器、以及存储在存储器中的指令。所述指令在被所述处理器执行时,可操作为使所述设备捕捉与自我车辆相邻的环境的2d图像,所述环境至少包括动态对象和静态对象。所述指令还使所述设备经由深度估计网络来基于2d图像产生环境的深度图。对于深度图中的动态对象的深度估计的准确性大于对于深度图中的静态对象的深度估计的准确性。所述指令另外还使所述设备基于深度图来产生环境的3d估计。所述指令进一步使所述设备基于识别的位置来控制自我车辆的动作。
6.这相当广泛地概述了本公开的特征和技术优点,以便下面的详细描述可以被更好地理解。下面将描述本公开的另外的特征和优点。本领域技术人员应意识到,本公开可以被容易地用作修改或设计用于实现本公开的相同的目的的其他结构的基础。本领域技术人员还应意识到,这样的等同的构造不背离如所附权利要求书中所阐述的本公开的教导。从结合附图考虑时的以下描述,被相信对于其组织和操作方法这二者而言是本公开的特性的新颖的特征、与进一步的目的和优点一起,将被更好地理解。然而,将明确地理解的是,附图中
的每个附图仅仅是为了例示说明和描述的目的而提供的,并不意图作为本公开的限制的定义。
附图说明
7.从下面结合附图时阐述的详细描述,本公开的特征、性质和优点将变得更清楚,在附图中,相似的标号始终对应地标识。
8.图1例示说明根据本公开的各方面的环境中的车辆的例子。
9.图2a是根据本公开的各方面的单个图像的例子。
10.图2b是根据本公开的各方面的深度图的例子。
11.图2c是根据本公开的各方面的重构的目标图像的例子。
12.图3例示说明根据本公开的各方面的深度网络的例子。
13.图4例示说明根据本公开的各方面的姿势网络的例子。
14.图5例示说明根据本公开的各方面的训练流水线的例子。
15.图6是例示说明根据本公开的各方面的用于深度估计系统的硬件实现的例子的示图。
16.图7例示说明根据本公开的各方面的方法的流程图。
具体实施方式
17.下面结合附图阐述的详细描述意图作为各种配置的描述,并不意图表示其中可以实施本文中描述的构思的唯一配置。详细描述包括用于提供各种构思的透彻理解的目的的特定细节。然而,对于本领域技术人员将清楚的是,可以在没有这些特定细节的情况下实施这些构思。在一些情况下,以框图形式示出公知的结构和组件,以便避免使这些构思模糊。
18.代理(诸如自主代理)可以基于深度估计来执行各种任务。例如,代理可以基于从传感器获得的图像来产生场景的3d表示。3d表示也可以被称为3d模型、3d场景或3d图。3d表示可以促进各种任务,诸如场景理解、运动计划和/或障碍避免。例如,代理可以基于3d表示来自主地导航穿过环境。另外,或可替代地,代理可以基于深度估计来识别3d对象。
19.人工神经网络(诸如深度网络)可以被训练来从传感器测量估计深度。与改进下游任务(诸如3d对象检测)不同,常规的用于深度训练的系统强调深度性能。深度训练是指训练深度网络来从图像估计深度的训练阶段。本公开的各方面涉及通过将3d对象检测信息作为深度训练的训练损失的一部分并入来改进用于下游任务的深度估计。
20.图1例示说明根据本公开的各方面的环境150中的自我车辆100(例如,自我代理)的例子。如图1所示,自我车辆100正在道路110上行进。第一车辆104(例如,其他代理)可以在自我车辆100的前面,第二车辆116可以与自我车辆100相邻。在这个例子中,自我车辆100可以包括2d相机108(诸如2d rgb相机)和第二传感器106。第二传感器106可以是另一个rgb相机或另一类型的传感器(诸如radar和/或超声)。另外,或可替代地,自我车辆100可以包括一个或多个附加的传感器。例如,附加的传感器可以是面向侧面和/或面向后面的传感器。
21.在一个配置中,2d相机108捕捉包括2d相机108的视场114中的对象的2d图像。第二传感器106可以产生一个或多个输出流。2d相机捕捉的2d图像包括第一车辆104的2d图像,
因为第一车辆104在2d相机108的视场114中。
22.从第二传感器106和2d相机108获得的信息可以用于当自我车辆100处于自主模式时、沿着路线导航自我车辆100。第二传感器106和2d相机108可以由从车辆100的蓄电池(未示出)提供的电力来提供动力。所述蓄电池也可以为车辆的发动机提供动力。从第二传感器106和2d相机108获得的信息可以用于产生环境的3d表示。
23.本公开的各方面改进对于环境中的对象的深度估计。改进的深度估计可以改进下游任务,诸如3d对象检测。下游任务可以是指基于深度估计执行的任务。在一些实现中,可以基于3d边界框信息来选择对应于对象的地面真实(ground-truth)点。可以增大针对与对象对应的每个地面真实点(例如,像素)的权重。由于权重增大,深度网络改进对于对象的深度估计。
24.改进的深度估计可以是指准确性提高的深度估计。对象可以包括在输入图像中不突出的对象,诸如汽车和行人。改进在输入图像中不突出的对象的深度估计的准确性可能是以对于在输入图像中突出的代表性对象(诸如道路和建筑物)的深度估计的准确性为代价的。改进在输入图像中不突出的对象的深度估计的准确性改进用于下游任务(诸如3d对象检测)的模型,因为这些对象的识别可以得到改进。
25.监督式单眼深度网络通过将输入图像回归到估计的深度输出来学习估计函数。监督式训练是指从标记的地面真实信息学习。例如,常规的监督式单眼深度网络可以使用地面真实深度(例如,lidar数据)来将神经网络训练为回归模型。在监督式深度网络中,卷积神经网络产生初始的粗略估计,并且使用另一神经网络来改善预测以生成更准确的结果。随着用于深度估计的监督式技术发展,由于产生带标签的数据的成本,目标深度标签的可用性降低。例如,给户外场景加标签是耗时的任务。
26.一些常规的单眼深度解决方案用基于视觉的信息代替lidar信息。也就是说,深度网络不使用直接来自lidar的点云,而是从多个单幅图像估计点云。在这样的例子中,常规的单眼深度解决方案使用估计的点云来进行3d边界框检测。如所描述的,相机(例如,基于视觉的系统)在大多数系统中是普遍存在的,并且与lidar传感器相比,较为便宜。因此,基于相机的解决方案可以被应用于范围更广泛的平台。然而,lidar系统的性能好于基于视觉的系统。改进深度估计的准确性可以缩小lidar系统和基于视觉的系统之间的差距。常规的系统也可以通过在训练和测试时包括来自稀疏的lidar传感器的信息来缩小lidar系统和基于视觉的系统之间的差距。稀疏的lidar信息可以校正错位。这些常规的系统减少lidar信息的使用。
27.由于它们的成本,lidar系统在经济上可能是不可行的。相机(诸如红-绿-蓝(rgb)相机)可以提供密集的信息。另外,与lidar传感器相比,相机在经济上可能更可行。本公开的各方面改进从以监督式的方式训练的深度网络产生的单眼深度估计。改进的单眼深度估计消除lidar和视觉解决方案之间的差距,以使得相机可以增强、补充或代替测距传感器。在一些实现中,可以通过启动机器人中内在的几何约束、或者经由来自校准的lidar传感器的稀疏的深度标签来自行监督深度训练(例如,用于基于图像的深度估计的训练)。
28.消除来自单眼相机的深度估计和来自lidar传感器的深度估计之间的差距可以降低成本,并且增加鲁棒的解决方案,因为相机补充测距传感器的功能。例如,与lidar传感器相比,相机在一些环境(诸如多雨环境)中可能运转得更好。不同地,与相机相比,lidar传感
器在其他环境(诸如低光条件)下可能运转地更好。因此,单眼深度估计可以改进代理执行各种任务的能力。
29.此外,与lidar数据相比,代理可以生成更大量的图像数据。图像数据可以被用作用于深度网络的训练数据。照此,单眼传感器的使用可以使训练数据的量增大,从而改进自监督的单眼深度估计。
30.如所描述的,本公开的各方面改进从单眼图像(例如,伪lidar点云)的3d对象检测。3d对象检测是使得自主代理能够自主导航的组件。目前,lidar信息可以被用于3d对象检测。可取的是通过处理单眼点云、而不是lidar信息来改进3d对象检测。
31.准确的深度估计可以改进贯穿环境的自主导航。例如,准确的深度估计可以改进与对象(诸如汽车或行人)的碰撞避免。本公开的各方面不限于自主代理。本公开的各方面还设想在手动模式或半自主模式下操作的代理。在手动模式下,人类驾驶者手动地操作(例如,控制)代理。在自主模式下,代理控制系统在没有人类干预的情况下操作代理。在半自主模式下,人类可以操作代理,代理控制系统可以超控(override)或辅助人类。例如,代理控制系统可以超控人类来防止碰撞或遵守一个或多个交通规则。
32.在一些例子中,常规的系统获得通过预先训练的深度网络产生的伪点云。预先训练的深度网络将输入图像变换为对于3d边界框检测需要的信息(例如,伪点云)。预先训练的深度网络包括以半监督或监督式的方式训练的单眼、立体或多视图网络。预先训练的深度网络可以是不针对特定任务训练的通用的深度网络。预先训练的深度网络可以被称为现成的网络。
33.预先训练的深度网络可以学习环境的强先验(例如,地平面、垂直墙壁、结构)。学习的先验可以改进总体深度结果。然而,学习的先验不改进对于3d对象检测有关的对象的深度估计。3d对象检测有关的对象通常是动态对象,诸如汽车和行人。如对于本领域技术人员已知的,动态对象对于半监督式设置中的单眼深度估计是个困难的问题。例如,动态对象的运动违反形成用于训练深度网络的光度损失的基础的静态世界假定。
34.如所描述的,常规的现成的深度网络是使用不同于下游任务(诸如3d对象检测)的度量和损失训练的。因此,常规的现成的深度网络可能降低相关任务的准确性。例如,常规的现成的深度网络可以准确地恢复地平面,因为地平面覆盖图像中的大部分(例如,大量像素)。不同地,表示行人的大量像素可能少于表示地平面(诸如道路)的像素的数量。因此,行人对于深度估计的相关性可能较少,因为单眼深度网络的目标是使所有像素的预测的准确性最大化。
35.本公开的各方面不是使用仅为深度估计而开发的现成的深度网络,而是训练深度网络来改进下游任务,诸如3d对象检测。在一些实现中,3d对象检测信息可以被合并为对于深度训练的训练损失的一部分。3d对象检测信息可以被指定用于训练下游任务训练。因此,3d对象信息已经可供深度网络使用。常规的系统不使用这样的信息来进行深度训练。
36.在一些实现中,如果3d边界框信息在训练时不可用,则深度网络回到没有3d边界框信息的深度训练。照此,训练阶段可以从具有3d边界框的图像和没有带注释的3d边界框的图像学习。这样的实现提高了深度训练的灵活性以使用不同的信息源,使得可用的标签不被丢弃。
37.在一些实现中,基于训练,深度网络在测试时、基于输入图像来执行深度估计。也
就是说,深度网络是使用3d边界框信息以及地面真实深度信息(如果可用)训练的。但是,深度网络在测试时只可以使用输入图像来进行深度估计。
38.图2a例示说明根据本公开的各方面的场景202的目标图像200的例子。目标图像200可以由单眼相机捕捉。单眼相机可以捕捉代理(例如,车辆)的面向前的视图。在一个配置中,单眼相机与车辆集成。例如,单眼相机可以被限定在车顶结构、挡风玻璃、护栏或车辆的其他部分中。车辆可以具有一个或多个相机和/或其他类型的传感器。目标图像200也可以被称为当前图像。目标图像200捕捉场景的2d表示。
39.图2b例示说明根据本公开的各方面的场景202的深度图220的例子。深度图220可以从目标图像200和一个或多个源图像估计。源图像可以是在与目标图像200相关的前一个时间步长捕捉的图像。深度图220提供场景的深度。所述深度可以被表示为颜色或其他特征。
40.图2c例示说明根据本公开的各方面的场景202的3d重构240的例子。所述3d重构可以从深度图220以及源图像和目标图像200的姿势产生。如图2a和2c所示,3d重构240中的场景202的视角不同于目标图像200中的场景202的视角。因为3d重构240是场景202的3d视图,所以可以根据需要改变视角。3d重构240可以用于控制代理的一个或多个动作。
41.图3例示说明根据本公开的各方面的深度网络300的例子。如图3所示,深度网络300包括编码器302和解码器304。深度网络300产生输入图像320的按像素的深度图,诸如图2b的深度图220。
42.编码器302包括多个编码器层302a-d。每个编码器层302a-d可以是用于在编码处理期间对特征进行下采样的打包层。解码器304包括多个解码器层304a-d。在图3中,每个解码器层304a-d可以是用于在解码处理期间对特征进行上采样的拆包层。也就是说,每个解码器层304a-d可以对接收的特征图进行拆包。
43.跳跃连接306在编码器层302a-d和解码器层304a-d之间发送激活和梯度。跳跃连接306促进对更高分辨率的细节进行解析。例如,梯度可以经由跳跃连接306直接向回传播到层,从而改进训练。另外,跳跃连接306直接将图像细节(例如,特征)从卷积层发送到去卷积层,从而改进更高分辨率上的图像恢复。
44.解码器层302a-d可以产生中间反向深度图310。每个中间反向深度图310可以在与对应的跳跃连接306和对应的解码器层302a-d拆包的特征图级联之前被上采样。反向深度图310还用作从其计算损失的深度网络的输出。与递增地对每个反向深度图310进行超解析的常规系统不同。本公开的各方面使用双线性插值将每个反向深度图310上采样到最高的分辨率。上采样到最高的分辨率使基于副本的伪像和光度歧义减少,从而改进深度估计。
45.图4例示说明根据本公开的各方面的用于自我运动估计的姿势网络400的例子。与常规的姿势网络相反,图4的姿势网络400不使用可解释性掩膜。在常规的系统中,可解释性掩膜移除不符合静态世界假定的对象。
46.如图4所示,姿势网络400包括多个卷积层402、最后的卷积层404和多通道(例如,六通道)平均池化层406。最后的卷积层404可以是1
×
1层。多通道层406可以是六通道层。
47.在一个配置中,目标图像(i
t
)408和源图像(is)410被输入到姿势网络400。目标图像408和源图像410可以被级联在一起,以使得级联的目标图像408和源图像410被输入到姿势网络400。在训练期间,一个或多个源图像410可以在不同的训练时期期间被使用。源图像
410可以包括前一个时间步长(t-1)的图像和后一个时间步长(t+1)的图像。输出是目标图像408和源图像410之间的六个自由度(dof)变换的集合。如果多于一个的源图像410被考虑,则可以对每个源图像410重复所述处理。
48.不同的训练方法可以用于训练单眼深度估计网络。训练方法可以包括,例如,监督式训练、半监督式训练和自监督式训练。监督式训练是指通过应用损失(诸如l1损失(例如,绝对误差))来回归地面真实深度信息的网络。在自监督式训练中,深度信息和姿势信息被扭曲(warp)以产生重构图像(例如,2d图像的3d表示)。光度损失使原始图像和重构图像之间的差异最小化。半监督式训练可以是自监督式和监督式训练的组合。
49.如所描述的,在一些实现中,与图像中的第一对象集合相对应的地面真实点的权重大于与图像中的第二对象集合相对应的地面真实点的权重。可以基于期望的任务来确定对象集合。例如,对于3d对象检测,第一对象集合可以是输入图像中的动态对象和/或出现率较低的对象。作为例子,第一对象集合可以包括车辆和/或行人。另外,第二对象集合可以是输入图像中的静态对象和/或出现率较高的对象。作为例子,第二对象集合可以包括建筑物、道路和/或人行道。在大多数情况下,一系列图像包括与人和/或车辆的出现相比更常出现的建筑物、道路和/或人行道。
50.本公开的各方面为单眼深度估计训练数据增加3d边界框。在训练时,除了深度信息之外,还可以使用3d边界框。也就是说,可以用3d边界框和地面真实深度信息来训练单眼深度网络。
51.在一个配置中,调整3d边界框内的像素的权重。可以通过提高3d边界框内的像素的相关性来产生伪点云。增大像素的权重(例如,相关性)可以使深度度量减小。还有,增大像素的权重改进3d对象检测。
52.可以通过集中于图像的被视为对于分配的任务(例如,3d对象检测)有关的部分来改进3d对象检测。也就是说,可以针对3d对象检测任务训练深度网络。任务特定的训练与使用不是针对特定任务构思或训练的、预先训练的通用深度网络的常规系统是不同的。
53.本公开的各方面可以改进监督式训练、自监督式训练和半监督式训练。对于监督式训练,不同的权重可以被应用于包含地面真实信息的图像像素。可以从带注释的深度图识别这些像素。例如,深度图可以用边界框来注释。可以调整用于边界框内的像素的权重。
54.在一些方面,对于自监督式训练,3d边界框被投影回输入图像,从而生成2d投影。不同的权重可以被应用于落在2d重投影边界框内的像素。图5例示说明根据本公开的各方面的用于训练深度估计网络504的示例训练流水线500。如图5所示,如图3中所描述的深度估计网络300可以从二维输入图像502产生深度估计506。训练流水线500不限于使用如图3中所描述的深度估计网络300,其他类型的深度估计神经网络可以被实现。
55.深度估计网络504可以被视图合成模块508用来产生重构图像510(例如,扭曲的源图像)。在一些实现中,当前图像502和源图像504被输入到如图4中所描述的姿势网络,以估计传感器(例如,单眼相机)的姿势。当前图像502可以是时间步长t处的图像,源图像502可以是时间步长t-1处的图像。视图合成模块508可以基于估计的深度和估计的姿势来产生重构图像510。视图合成模块508也可以被称为场景重构网络。可以关于目标图像502和重构图像510之间的差异来训练视图合成模块508。可以训练所述网络以使损失(诸如光度损失520)最小化。
56.基于目标图像502和重构图像510(例如,逼近目标图像的扭曲的源图像)之间的差异来计算光度损失520。光度损失520可以用于更新深度网络300、视图合成模块508、姿势网络500和/或像素的权重。
57.可以如下确定光度损失520(l
p
):
[0058][0059]
其中ssim()是用于估计目标图像502和重构图像510之间的结构相似性(ssim)的函数。可以如下确定ssim:
[0060]
ssim(x,y)=[l(x,y)]
α
·
[c(x,y)]
β
·
[s(x,y)]
γ

ꢀꢀꢀꢀ
(2)
[0061]
其中s()确定结构相似性,c()确定对比度相似性,i()确定亮度相似性。α、β和γ是用于调整每个分量的相对重要性的参数,每个参数大于零。
[0062]
在测试阶段期间,训练流水线500可以如上所述那样产生重构图像510。光度损失516可以不在测试阶段期间计算。重构图像510可以用于定位和/或其他车辆导航任务。
[0063]
例如,视图估计模块508可以基于估计的深度506和传感器姿势将当前图像502中的每个点(例如,像素)投影到源图像506的一位置。在将点投影到源图像504之后,可以使用双线性插值来将点扭曲到扭曲的源图像510。也就是说,双线性插值基于源图像504获得扭曲的源图像510中的点的值(例如,rgb值)。
[0064]
也就是说,扭曲的源图像510中的点的位置(例如,x、y坐标)可以对应于该点在目标图像502中的位置。还有,扭曲的源图像510中的点的颜色可以基于源图像504中的相邻像素的颜色。扭曲的源图像510可以是2d目标图像的3d重构。
[0065]
在一些实现中,3d对象检测网络518可以估计扭曲的源图像510中的对象514的位置。对象514的位置可以用3d边界框512来注释。为了说明性的目的,图5中的3d边界框512被示为2d边界框。在一个配置中,3d边界框512被投影回当前图像502。可以从投影的3d边界框512产生2d边界框516。不同的权重可以被应用于落在2d边界框内的像素。例如,可以增大权重,以使得落在2d边界框内的像素与具有较低权重的像素相比,对于深度估计的贡献更大。在一个实现中,权重增大的像素与权重减小的像素相比,对于在训练期间使损失最小化的贡献更大。
[0066]
对于半监督式训练执行对于监督式和自监督式训练所讨论的处理。在一些实现中,附加的权重平衡监督式训练处理和自监督式训练处理。在一些实现中,在训练阶段期间,可以执行多遍(passes),每遍可以用不同的参数值(例如,权重)执行。在每遍之后,测量性能(例如,准确性)。可以基于损失的大小来对权重进行排序并进行相应的调整(例如,改进)。
[0067]
像素化可能由监督损失引起。自监督损失减轻像素化。尺度不准确性可能由自监督损失引起。监督损失减轻尺度不准确性。附加的权重可以减小监督损失可能引起的深度图的像素化。附加的权重还可以减小监督深度误差损失可能引起的深度图的尺度不准确性。
[0068]
在一个配置中,当确定像素权重调整时,网络确定有效像素的总数(nvp)。有效像素是指具有对应的地面真实深度信息的像素、或当使用光度损失时、具有有效的重投影值的像素。例如,对于监督式训练,神经网络识别图像中的在地面真实深度图像中具有深度信
息的像素。
[0069]
另外,网络确定具有边界框的有效像素的数量(nbp)。基于以下像素比来确定用于具有边界框的有效像素的权重:((nvp-nbp)/nbp)。例如,如果图像包括100,000个有效像素,并且2000个在边界框内,则用于边界框中的像素的权重将为49(例如,(100000-2000)/2000)。在这个例子中,边界框外部的权重被规范化为1。不同地,边界框内部的权重被确定为所描述的比率(49)(例如,(nvp-nbp)/nbp)。该像素比在根据图像的不同而不同。
[0070]
像素比使得在不属于边界框的区域中仍能够学习,以使得保留场景的结构和几何形状。如果边界框在特定图像中没有被注释,则权重为零,并且不被应用于任何像素。照此,本公开的各方面可以从具有带注释的3d边界框的图像和不带注释的边界框的图像来训练深度网络,从而改进训练数据的鲁棒性。
[0071]
如所描述的,可以从3d边界框信息获得地面真实点。由于权重调整,可以改进神经网络(例如,深度估计神经网络)对第一对象集合的检测。改进的检测可能是以第二对象集合的检测为代价的。也就是说,降低对于第二对象集合的检测准确性改进对于第一对象集合的检测准确性。在一个方面,改进用于3d对象检测的下游任务的模型。
[0072]
图6是例示说明根据本公开的各方面的用于深度估计系统600的硬件实现的例子的示图。深度估计网络600可以是车辆、机器人装置或其他装置的组件。例如,如图6所示,深度估计网络600是车辆628的组件。本公开的各方面不限于是车辆628的组件的深度估计网络600,因为其他类型的代理(诸如公交车、轮船、无人机或机器人)也被设想用于使用深度估计网络600。
[0073]
车辆628可以在自主操作模式、半自主操作模式和手动操作模式中的一种或多种模式下操作。此外,车辆628可以是电动车、混合车辆或其他类型的车辆。
[0074]
深度估计网络600可以用总线660一般性地表示的总线架构来实现。总线660以包括任何数量的互连总线和桥接器,取决于深度估计网络600的特定应用和总体设计约束。总线660将各种电路(包括处理器620、通信模块622、定位模块618、传感器模块602、运动模块626、导航模块626和计算机可读介质616所表示的一个或多个处理器和/或硬件模块)链接在一起。总线660还可以链接本领域中众所周知的、因此不再做任何进一步的描述的各种其他的电路,诸如定时源、外设、电压调节器和功率管理电路。
[0075]
深度估计网络600包括耦合到处理器620的收发器616、传感器模块602、深度估计模块608、通信模块622、定位模块618、运动模块626、导航模块626和计算机可读介质616。收发器616耦合到天线666。收发器616通过一个或多个通信网络(诸如基础设施网络、v2v网络、v2i网络、v2x网络、v2p网络或其他类型的网络)与各种其他的装置通信。
[0076]
深度估计网络600包括耦合到计算机可读介质616的处理器620。处理器620执行处理,包括存储在计算机可读介质616上的提供根据本公开的功能性的软件的执行。所述软件在被处理器620执行时,使深度估计网络600执行对于特定装置(诸如车辆628、或模块602、608、614、616、618、620、622、624、626中的任何一个)描述的各种功能。计算机可读介质616还可以用于存储处理器620在执行所述软件时操纵的数据。
[0077]
传感器模块602可以用于经由不同的传感器(诸如第一传感器606和第二传感器606)获得测量。第一传感器606可以是视觉传感器,诸如立体相机或用于捕捉2d图像的红绿蓝(rgb)相机。第二传感器606可以是测距传感器,诸如光检测和测距(lidar)传感器或无线
电检测和测距(radar)传感器。当然,本公开的各方面不限于前述传感器,因为其他类型的传感器(诸如,举例来说,热、声呐和/或激光器)也被设想用于传感器606、606中的任何一个。
[0078]
第一传感器606和第二传感器606的测量可以被处理器620、传感器模块602、深度估计模块608、通信模块622、定位模块618、运动模块626、导航模块626联合计算机可读介质616处理来实现本文中描述的功能性。在一个配置中,第一传感器606和第二传感器606捕捉的数据可以经由收发器616发送给外部装置。第一传感器606和第二传感器606可以耦合到车辆628,或者可以与车辆628通信。
[0079]
定位模块618可以用于确定车辆628的位置。例如,定位模块618可以使用全球定位系统(gps)来确定车辆628的位置。通信模块622可以用于促进经由收发器616的通信。例如,通信模块622可以被配置为经由不同的无线协议(诸如wifi、长期演进(lte)、6g等)提供通信能力。通信模块622还可以用于与车辆628的不是深度估计网络600的模块的其他组件通信。
[0080]
运动模块626可以用于促进车辆628的运动。作为例子,运动模块626可以控制车轮的移动。作为另一个例子,运动模块626可以与车辆628的一个或多个动力源(诸如发动机和/或蓄电池)通信。当然,本公开的各方面不限于经由车轮来提供运动,而是被设想用于提供运动的其他类型的组件(诸如推进器、踏板、翅片和/或喷气发动机)。
[0081]
深度估计网络600还包括导航模块626,导航模块626用于计划路线或控制车辆628经由运动模块626的运动。在一个配置中,当深度估计模块608识别有危险的代理时,导航模块626采用防御性驾驶模式。当预计(例如,预测)用户输入将引起碰撞时,导航模块626可以超控用户输入。所述模块可以是在处理器620中运行的、驻存/存储在计算机可读介质616中的软件模块、耦合到处理器620的一个或多个硬件模块、或它们的某种组合。
[0082]
深度估计模块608可以与传感器模块602、收发器616、处理器620、通信模块622、定位模块618、运动模块626、导航模块626和计算机可读介质616通信。在一个配置中,深度估计模块608从传感器模块602接收传感器数据。传感器模块602可以从第一传感器606和第二传感器606接收传感器数据。根据本公开的各方面,传感器模块602可以对所述数据进行过滤以移除噪声,对所述数据进行编码,对所述数据进行解码,合并所述数据,提取帧,或者执行其他功能。在替代配置中,深度估计模块608可以直接从第一传感器606和第二传感器606接收传感器数据。
[0083]
在一个配置中,深度估计模块608可以与传感器模块602、收发器616、处理器620、通信模块622、定位模块618、运动模块626、导航模块624、第一传感器606、第二传感器604和计算机可读介质614中的一个或多个通信和/或联合它们工作。深度估计模块608可以被配置为接收与自我车辆相邻的环境的二维(2d)图像。所述环境包括动态对象和静态对象。所述2d图像可以由第一传感器606和第二传感器606捕捉。
[0084]
深度估计模块608可以被配置为基于所述2d图像来产生所述环境的深度图。在一个实现中,对于深度图中的动态对象的深度估计的准确性大于对于深度图中的静态对象的深度估计的准确性。深度估计模块608可以联合视图合成模块(在图6中未示出)(诸如对于图5描述的视图合成模块508)工作,以基于深度图来产生所述环境的三维(3d)估计。另外,联合3d对象检测网络(在图6中未示出)(诸如对于图5描述的3d对象检测网络518)工作,深
度估计模块608可以识别动态对象在3d估计中的位置。最后,联合至少定位模块618、运动模块626、导航模块624工作,深度估计模块608可以基于识别的位置来控制自我车辆的动作。
[0085]
深度估计模块608可以实现参照图3描述的深度网络(诸如深度网络300)、姿势网络(诸如参照图4描述的姿势网络400)、视图合成模块、和/或3d对象检测网络。
[0086]
图7例示说明根据本公开的各方面的用于基于深度估计来识别对象和控制车辆的处理700的流程图。处理700可以由车辆(诸如参照图1描述的车辆100)、深度网络(诸如参照图3描述的深度网络300)、如参照图6描述的深度估计模块608、如对于图4描述的姿势网络400、和/或如参照图5描述的训练流水线500中的一个或多个执行。
[0087]
如图7所示,处理700包括捕捉与自我车辆相邻的环境的二维(2d)图像。所述2d图像可以是如参照图2描述的场景202的目标图像200。所述环境可以包括动态对象和静态对象(方框702)。所述环境可以包括一个或多个动态对象,诸如车辆、行人和/或骑行者。所述环境还可以包括一个或多个静态对象,诸如道路、人行道和/或建筑物。所述2d图像可以经由与自我车辆集成的单眼相机捕捉。
[0088]
处理700还可以包括基于所述2d图像来经由深度估计网络产生所述环境的深度图(方框704)。所述深度图可以是如参照图2描述的场景202的深度图220。在一个实现中,对于深度图中的动态对象的深度估计的准确性大于对于深度图中的静态对象的深度估计的准确性。基于如例如参照图5描述的训练,准确性可以更高。
[0089]
例如,在训练期间,可以调整与对象在2d图像中的位置相对应的每个像素的权重。可以基于地面真实信息和调整的权重来训练深度估计网络(例如,深度网络)。另外,在训练期间,可以基于带注释的地面真实信息来识别动态对象的位置。例如,可以基于识别对象在3d估计中的位置的3d边界框来识别所述位置。在训练期间,3d边界框可以被转换为2d边界框以识别对象在2d图像中的位置。
[0090]
另外,在这个例子中,可以基于包括深度信息的像素的第一数量和与对象在2d图像中的位置相对应的像素的数量来调整权重。可替代地,可以基于光度损失和监督深度误差损失来调整权重。光度损失可以是如参照图5描述的光度损失520。
[0091]
处理700还可以包括基于深度图来产生所述环境的3d估计(方框706)。所述3d估计可以是重构图像(例如,扭曲的源图像),诸如参照图5描述的重构图像510、或如参照图2描述的场景202的3d重构240。处理700还包括识别动态对象在3d估计中的位置(方框708)。最后,处理700包括基于识别的位置来控制自我车辆的动作。
[0092]
基于这些教导,本领域技术人员应意识到本公开的范围意图涵盖本公开的任何方面,不管是独立于本公开的任何其他方面实现,还是与本公开的任何其他方面组合实现。例如,使用所阐述的任何数量的方面,可以实现设备,或者可以实施方法。另外,本公开的范围意图涵盖除了所阐述的、本公开的各方面以外还使用其他结构、功能性、或结构和功能性实施的设备或方法,或者使用与所阐述的、本公开的各方面不同的其他结构、功能性、或结构和功能性实施的设备或方法。应理解本公开的任何方面都可以被权利要求的一个或多个元素实施。
[0093]
词语“示例性的”在本文中用来意指“用作例子、实例或例示说明”。在本文中描述为“示例性的”任何方面都不一定要被解释为较于其他方面是优选的或有利的。
[0094]
尽管本文中描述了特定方面,但是这些方面的许多变化和置换落在本公开的范围
内。尽管提到了优选方面的一些益处和优点,但是本公开的范围并不意图限于特定的益处、用途或目的。不同地,本公开的各方面意图广泛地适用于不同的技术、系统配置、网络和协议,其中一些在附图中和优选方面的以下描述中被作为例子例示说明。详细描述和附图仅仅是本公开的说明,而非限制,本公开的范围由所附权利要求书及其等同形式限定。
[0095]
如本文中所使用的,术语“确定”包含各种各样的动作。例如,“确定”可以包括运算、计算、处理、推导、调查、查找(例如,在表格、数据库或其他数据结构中查找)、查明等。另外,“确定”可以包括接收(例如,接收信息)、访问(例如,访问存储器中的数据)等。此外,“确定”可以包括解析、选择、选定、建立等。
[0096]
如本文中所使用的,提到项列表“中的至少一个”的短语是指这些项的任何组合,包括单个的成员。作为例子,“a、b或c中的至少一个”意图涵盖:a、b、c、a-b、a-c、b-c和a-b-c。
[0097]
结合本公开描述的各种说明性逻辑块、模块和电路可以利用被专门配置为执行本公开中所讨论的功能的处理器来实现或执行。所述处理器可以是被设计为执行本文中描述的功能的神经网络处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列信号(fpga)或其他可编程逻辑器件(pld)、分立的门或晶体管逻辑、分立的硬件组件、或它们的任何组合。可替代地,处理系统可以包括用于实现本文中描述的神经元模型和神经系统的模型一个或多个神经形态处理器。所述处理器可以是微处理器、控制器、微控制器、或如本文中描述的那样专门配置的状态机。处理器还可以被实现为计算装置的组合,例如,dsp和微处理器的组合、多个微处理器、联合dsp核的一个或多个微处理器、或如本文中所描述的其他的特殊的配置。
[0098]
结合本公开描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块、或这二者的组合来实施。软件模块可以驻存在储存器或机器可读介质中,包括随机存取存储器(ram)、只读存储器(rom)、闪存、可擦可编程只读存储器(eprom)、电可擦可编程只读存储器(eeprom)、寄存器、硬盘驱动器、可移动盘、cd-rom或其他光学盘储存器、磁盘储存器或其他磁性存储装置、或可以用于承载或存储指令或数据结构的形式的期望的程序代码并且可以被计算机访问的任何其他介质。软件模块可以包括单个指令或许多指令,并且可以分布在几个不同的代码段上、不同的程序之间、以及跨多个存储介质分布。存储介质可以耦合到处理器,以使得处理器可以从存储介质读取信息和将信息写入到存储介质。在替代方案中,存储介质可以与处理器构成整体。
[0099]
本文中公开的方法包括用于实现所描述的方法的一个或多个步骤或动作。在不脱离权利要求书的范围的情况下,所述方法步骤和/或动作可以彼此交换。换句话说,除非特定次序的步骤或动作被指定,否则在不脱离权利要求书的范围的情况下,可以修改特定步骤和/或动作的次序和/或使用。
[0100]
所描述的功能可以用硬件、软件、固件或它们的任何组合来实现。如果用硬件实现,则示例硬件配置可以包括装置中的处理系统。所述处理系统可以用总线架构来实现。总线可以包括任何数量的互连总线和桥接器,取决于处理系统的特定应用和总体设计约束。总线可以将各种电路(包括处理器、计算机可读介质和总线接口)链接在一起。总线接口可以用于除了别的之外、经由总线将网络适配器连接到处理系统。网络适配器可以用于实现信号处理功能。对于某些方面,用户接口(例如,键区、显示器、鼠标、操纵杆等)也可以连接
到总线。总线还可以链接本领域中众所周知的、因此将不做任何进一步描述的各种其他的电路,诸如定时源、外设、电压调节器、功率管理电路等。
[0101]
所述处理器可以负责管理总线和处理,包括存储在机器可读介质上的软件的执行。软件应被解释为意指指令、数据或它们的任何组合,不管是被称为软件、固件、中间件、伪代码、硬件描述语言,还是其他。
[0102]
在硬件实现中,机器可读介质可以是处理系统的与处理器分开的一部分。然而,如本领域技术人员将容易意识到的,机器可读介质或其任何部分可以在处理系统的外部。举例来说,机器可读介质可以包括传输线、通过数据调制的载波、和/或与装置分开的计算机产品,所有这些都可以被处理器通过总线接口访问。可替代地,或另外,机器可读介质或其任何部分可以被集成到处理器中,诸如对于高速缓存和/或专门的寄存器文件,情况可能如此。尽管所讨论的各种组件可以被描述为具有特定的位置,诸如本地组件,但是它们也可以以各种方式配置,诸如某些组件被配置为分布式计算系统的一部分。
[0103]
机器可读介质可以包括若干软件模块。软件模块可以包括发送模块和接收模块。每个软件模块可以驻存在单个存储装置中,或者跨多个存储装置分布。举例来说,当触发事件发生时,软件模块可以从硬盘驱动器加载到ram中。在软件模块执行期间,处理器可以将指令中的一些加载到高速缓存中以提高访问速度。一个或多个高速缓存线然后可以被加载到特殊目的的寄存器文件中以供处理器执行。当在下面提到软件模块的功能性时,将理解当执行来自该软件模块的指令时,由处理器实现这样的功能性。此外,应意识到本公开的各方面导致对于处理器、计算机、机器、或实现这样的方面的其他系统的功能性的改进。
[0104]
如果用软件实现,则所述功能可以被存储为计算机可读介质上的一个或多个指令或代码,或者被作为计算机可读介质上的一个或多个指令或代码发送。计算机可读介质既包括计算机存储介质,又包括通信介质,所述通信介质包括促进从一个地方到另一个地方的计算机程序的传送的任何存储介质。
[0105]
此外,应意识到用于执行本文中描述的方法和技术的模块和/或其他适当的手段可以被用户终端和/或基站视情况下载和/或以其他方式获得。例如,这样的装置可以耦合到服务器以促进用于执行本文中描述的方法的手段的传送。可替代地,本文中描述的各种方法可以经由存储手段提供,以使得用户终端和/或基站可以在耦合到装置或者将存储手段提供给装置后,获得各种方法。而且,可以利用用于将本文中描述的方法和技术提供给装置的任何其他的合适的技术。
[0106]
要理解的是,权利要求书不限于以上例示说明的精确的配置和组件。在不脱离权利要求书的范围的情况下,可以在以上描述的方法和设备的布置、操作和细节上做出各种修改、改变和变化。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1