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

从图像进行三维位置预测的制作方法

2022-06-25 10:12:48 来源:中国专利 TAG:


1.本说明书涉及预测环境中的对象的位置。


背景技术:

2.环境可以是真实世界的环境,并且对象可以是例如载具或环境中的其他对象。例如,预测可以由自主载具进行。自主载具包括自动驾驶汽车、船只和飞机。自主载具使用各种板载传感器和计算机系统来检测附近的对象,并使用这种检测来做出控制和导航决策。


技术实现要素:
附图说明
3.图1a是为图像中的示例对象生成位置预测的图示。
4.图1b是示例系统的示意图。
5.图2是用于生成位置预测输出的示例过程的流程图。
6.图3示出了为图像序列中描绘的对象生成位置预测的示例。
7.图4是用于生成位置预测输出的另一示例过程的流程图。
8.不同附图中相同的附图标记和名称表示相同的元素。
具体实施方式
9.本说明书描述了实施为一个或多个位置中的一个或多个计算机上的计算机程序的系统,该系统为在一个或多个图像中检测到的对象生成三维位置预测。
10.位置预测被称为“三维”位置预测,因为它结合了对象的深度,即对象距捕获该一个或多个图像的传感器或距另一点的距离。这与仅标识图像中的描绘对象的区域的“二维”位置预测形成对比。
11.确定环境中对象的三维位置对于许多任务而言是重要问题。例如,自主载具使用一个或多个传感器来感测自主载具附近的对象。确定感测对象的三维位置可以帮助自主载具安全地做出全自主驾驶决策或者向人类驾驶员提供半自主驾驶辅助。
12.然而,虽然一些传感器,例如激光雷达传感器,可以准确地测量从传感器到传感器感测的对象的距离,但是一些自主载具可能没有配备这种传感器。即使当载具配备有这样的传感器时,距离测量也可能不是对于给定场景中的所有对象可用,例如,在对象在传感器的范围(range)之外的情况下,如果传感器发生故障,在对象从传感器被遮挡的情况下,或者在传感器由于另一原因不能感测对象的情况下。
13.因此,当自主载具不具有能够准确测量距离的传感器时,或者当来自这种传感器的距离测量不可用时,直接从相机图像(即不依赖于来自其他传感器的测量)确定对象的三维位置,对于自主载具的操作可能是至关重要的。
14.然而,相机图像是对图像中捕获的场景的二维表示。也就是说,相机图像仅提供二
维网格中每个像素的强度值,而不直接包括任何三维信息。因此,直接从相机图像确定对象的三维位置是一个具有挑战性的问题。
15.一些系统试图通过生成给定图像的密集深度图来预测给定图像中描绘的对象的三维位置。密集深度图将预测的深度值分配给给定图像的每个像素,使得给定像素的深度值表示从捕获给定图像的相机到在该给定像素处描绘的场景的部分的预测的三维距离,即深度。这些系统然后直接使用深度图,例如通过确定到对象的三维距离是图像的与对象相对应的区域中的像素的预测的深度值,来估计对象的距离。然而,因为准确地估计图像中每个像素的深度是困难的,所以这些密集深度图是有噪声的,并且产生的对象深度可能是不准确的。
16.本说明书描述了使用初始密集深度估计和从相机图像提取的图像特征两者来准确估计相机图像中检测到的对象的每对象深度的技术。换句话说,本说明书中描述的系统使用“伪激光雷达”特征和图像块(patch)特征的组合来生成三维位置预测,所述“伪激光雷达”特征使用初始深度估计来计算,所述图像块特征直接从相机图像中的像素的强度值来计算。伪激光雷达特征被称为“伪激光雷达”,因为它们是从伪激光雷达表示生成的,该伪激光雷达表示使用图像的初始深度估计将相机图像中的一些或所有像素表示为三维点,类似于将从由激光雷达传感器的测量生成的点云。
17.通过使用组合的特征生成预测,所公开的系统可以仅使用一个或多个相机图像来准确地估计三维位置。更具体地,所公开的系统可以使用图像块特征来增强初始深度估计,从而产生比直接从初始深度估计生成的位置预测更准确的位置预测。
18.在一些情况下,所公开的系统使用单个图像生成伪激光雷达特征。在一些其他情况下,当生成伪激光雷达特征时,所公开的系统结合来自在不同时间拍摄的多个相机图像的信息。通过结合多个相机图像,该系统可以进一步提高三维位置预测的准确性。例如,使用多个相机图像允许所公开的系统考虑这样的事实,即场景的单个2d视图,即在单个图像中描绘的视图,可以由许多貌似真实的3d场景来解释。
19.图1a是为图像104中的示例对象103生成位置预测的图示。从图1a中可以看出,图像104是透视图图像,并且对象103的深度,即对象103与捕获图像103的相机的距离,不能从图像104中直接获得。
20.为了便于说明,示例对象103的各种位置预测被示为鸟瞰(bev)坐标系中的相应边界框。也就是说,尽管上述位置预测指定了对象的三维位置,但是位置预测显示在显示对象深度的二维bev坐标系中,但是不显示对象的高程。
21.更具体地,图1a的示例示出了相对于表示当图像104被捕获时对象103的实际三维位置的地面实况(ground truth)边界框106的传统位置预测105。例如,可以使用传统的单目3d检测技术来生成传统位置预测105,该技术试图直接从图像104生成预测。例如,传统技术可以生成将预测的深度分配给图像的每个像素的深度图,然后使用预测的深度将二维边界框映射到三维边界框。
22.从图1a的示例可以看出,在传统位置预测105和地面实况边界框106之间存在显著的误差。更具体地,该误差可以主要归因于深度误差——虽然传统技术相对准确地预测了对象103的尺寸、形状和取向,但是传统技术没有准确地预测对象103的深度。特别地,因为图像104是环境的二维表示,而对象深度是三维属性,所以传统技术可能难以生成可以从其
准确地估计深度的图像104的表示。例如,从二维图像直接估计图像中每个像素的深度可能容易出错。
23.图1a的示例还示出了使用本说明书中描述的技术生成的同一对象103的位置预测107,例如位置预测107将由将在下面参考图1b更详细地描述的板载系统110生成。从图1a的示例可以看出,在位置预测107和地面实况边界框106之间没有明显的误差。特别地,与传统位置预测105不同,由系统110生成的位置预测107准确地预测了对象的深度。这是因为,如下文更详细描述的,系统110使用图像特征和使用初始深度预测生成的伪激光雷达特征两者来增强图像104的初始深度预测。通过结合这两种类型的特征,系统110生成比初始深度预测显著改善的对象深度预测。因此,位置预测107显著地比传统位置预测105更准确。
24.图1b是示例系统100的示意图。系统100包括板载系统110和训练系统120。
25.板载系统110位于载具102上。图1b中的载具102被示出为汽车,但是板载系统102可以板载位于任何合适的载具类型上。在一些情况下,载具102是自主载具。自主载具可以是完全自主载具,其确定并执行完全自主驾驶决策,以便在环境中导航。自主载具也可以是使用预测来辅助人类驾驶员的半自主载具。例如,如果预测指示人类驾驶员即将与另一载具碰撞,则载具102可以自主地施加制动器。作为另一示例,载具102可以具有高级驾驶员辅助系统(adas),该系统通过检测潜在的不安全情形并警告人类驾驶员或以其他方式响应不安全情形来辅助载具102的人类驾驶员驾驶载具102。作为特定示例,当检测到障碍物时,当载具离开行驶车道时,或者当在人类驾驶员的盲点中检测到对象时,载具120可以警告载具102的驾驶员或者采取自主驾驶动作。
26.板载系统110包括一个或多个传感器子系统130。传感器子系统130包括相机传感器,其通过检测可见光的反射来生成相机图像,并且可以包括其他传感器,例如检测激光的反射的激光雷达系统、检测无线电波的反射的雷达系统等。当载具102在环境中导航时,各种传感器捕捉环境的测量。例如,相机传感器可以在导航期间重复捕获图像。
27.传感器子系统130或载具102的其他组件也可以将来自一个或多个传感器的传感器测量的部分分类为载具102周围环境中的对象的度量。
28.例如,子系统130或其他组件可以对由相机传感器捕获的图像执行对象检测,以标识图像中的描绘对象的区域。子系统130或其他组件可以使用各种二维对象检测技术中的任何一种。
29.作为特定示例,子系统130可以使用对象检测神经网络来处理由相机传感器捕获的图像,以生成包括相应一组边界框的每个图像的对象检测输出,其中给定图像中的每个边界框描绘相应的对象,即包围子系统130已经确定的描绘对象的给定图像的一部分。
30.在一些实施方式中,子系统130然后可以将对象跟踪器应用于图像的时间序列(即根据每个图像被捕获的时间排序的序列)中的边界框,以生成一个或多个对象的对象轨迹片段(tracklet)数据。给定对象的对象轨迹片段数据标识图像序列中的每一个中的描绘所述给定对象的所述给定对象的相应的边界框。也就是说,给定对象的对象轨迹片段数据标识每个图像中的哪个边界框描绘所述给定对象。例如,子系统130可以将基于卡尔曼滤波器的对象跟踪器应用于用于序列中的图像的对象检测输出,以生成对象轨迹片段数据。作为另一示例,子系统130可以将对象跟踪神经网络应用于用于序列中的图像的对象检测输出,以生成对象轨迹片段数据。
31.一旦传感器子系统130生成了对象检测输出,传感器子系统130就可以将图像序列、对象检测输出以及在被使用时的对象轨迹片段数据发送到同样板载在载具102的位置预测系统150。
32.位置预测系统150处理图像、对象检测输出以及在被使用时的对象轨迹片段数据,以针对已经在一个或多个图像中检测到的一个或多个对象中的每一个生成相应的位置预测输出152。
33.当位置预测系统150对多个图像的时间序列进行操作时,给定对象的相应位置预测输出152是表征在该时间序列中特定时间步长(例如,最后时间步长)处,给定对象在三维坐标系中的位置的预测。在一些实施方式中,三维坐标系是以自主载具102的特定位置(例如,在捕获时间序列的相机传感器的位置或在自主载具上的不同的固定位置)为中心的坐标系。例如,预测可以是在图像的时间序列中的最后时间步长处,对象相对于相机的深度的预测。具体而言,深度预测是预测的深度值,其表示在该时间步长处,对象上的指定点(例如对象的中心)与相机的距离。作为另一示例,预测可以是三维坐标系中的三维区域的预测,其对应于在最后时间步长处的对象相对于相机的预测位置。
34.下面根据一些实施例参考图2和3更详细地描述当系统150对图像序列进行操作时生成位置预测输出152。
35.当位置预测系统150对特定时间步长处捕获的单个图像进行操作时,给定对象的相应位置预测输出152是表征在特定时间步长处给定对象在三维坐标系中的位置的预测。例如,预测可以是在特定时间步长处给定对象相对于相机的深度的预测。具体而言,深度预测是预测的深度值,其表示在特定时间步长处对象上的指定点(例如对象的中心)与相机的距离。作为另一示例,预测可以是三维坐标系中的三维区域的预测,其对应于在最后时间步长处给定对象相对于相机的预测位置。
36.下面根据一些实施例参考图4更详细地描述当系统150对单个图像进行操作时生成位置预测输出152。
37.板载系统110还包括规划系统160。规划系统160可以例如通过生成表征载具102未来将采取的路径的规划载具路径,为载具102做出自主或半自主驾驶决策。
38.板载系统100可以将由位置预测系统150生成的位置预测输出152提供给载具102的一个或多个其他板载系统,例如规划系统160和/或用户界面系统165。
39.当规划系统160接收到位置预测输出152时,规划系统160可以使用位置预测输出152来生成规划载具未来轨迹的规划决策,即生成新的规划载具路径。例如,位置预测输出152可以包含环境中给定对象的位置与载具102的当前规划路径相交从而可能导致碰撞的预测。在该示例中,规划系统160可以例如通过自主控制载具的转向,来生成避免潜在碰撞的新的规划载具路径,并使载具102遵循新的规划路径,以及避免潜在碰撞。
40.当用户界面系统165接收到位置预测输出152时,用户界面系统165可以使用位置预测输出152向载具102的驾驶员呈现信息,以辅助驾驶员安全地操作载具102。用户界面系统165可以通过任何适当的方式,例如,通过经由载具102的扬声器系统传输的音频消息,或者通过智能体中的视觉显示系统(例如,载具102的仪表板上的液晶显示器)上显示的警报,来向智能体102的驾驶员呈现信息。在特定示例中,位置预测输出152可以包含特定对象在载具102的阈值距离内从而可能导致碰撞的预测。在该示例中,用户界面系统165可以向载
具102的驾驶员呈现警告消息,其带有调整载具102的轨迹以避免碰撞的指令,或者通知载具102的驾驶员可能与特定的周围智能体碰撞。
41.为了生成位置预测输出152,位置预测系统150可以使用从训练系统120中的模型参数存储装置190获得的训练的参数值195,即由位置预测系统150使用的一组神经网络的训练的模型参数值。
42.训练系统120通常托管在数据中心124内,数据中心124可以是具有一个或多个位置中的数百或数千台计算机的分布式计算系统。
43.训练系统120包括训练数据存储装置170,其存储用于训练位置预测系统(即确定位置预测系统150使用的机器学习模型的训练的参数值195)的训练数据。训练数据存储装置170从现实世界中操作的载具接收原始训练示例。例如,训练数据存储装置170可以从载具102和与训练系统120通信的一个或多个其他智能体接收原始训练示例155。原始训练示例155可以由训练系统120处理以生成新的训练示例。原始训练示例155可以包括对象检测数据,例如,比如对象检测数据142,其可以用作新训练示例的输入。原始训练示例155还可以包括表征在一个或多个未来时间点处载具102周围的环境中的对象的位置的地面实况数据。该数据可用于生成载具附近的一个或多个对象在由对象检测数据表征的时间点处的地面实况位置输出。每个地面实况位置输出表征对应对象的实际三维位置。例如,地面实况位置输出可以标识对应对象相对于相机的深度。作为另一示例,地面实况位置输出可以标识由对应对象占据的三维区域。
44.训练数据存储装置170向也托管在训练系统120中的训练引擎180提供训练示例175。训练引擎180使用训练示例175来更新将由位置预测系统150使用的模型参数,并将更新的模型参数185提供给模型参数存储装置190。一旦位置预测系统150的参数值已经被完全训练,训练系统120可以例如通过有线或无线连接将训练的参数值195发送到位置预测系统150。
45.下面更详细地描述训练位置预测系统150。
46.虽然本说明书描述了在自主载具上生成位置预测,但是更一般地,所描述的技术可以在接收环境中的场景图像的一个或多个计算机的任何系统上实现。
47.作为一个示例,位置预测可以在不同类型的智能体上进行,该智能体具有相机传感器,并且当其在环境中导航时与对象交互。例如,位置预测可以由嵌入在机器人或其他智能体内的一个或多个计算机进行。
48.作为另一示例,位置预测可以由远离智能体并且接收由智能体的相机传感器捕获的图像的一个或多个计算机进行。在这些示例中的一些示例中,一个或多个计算机可以使用位置预测来生成用于控制智能体的控制决策,然后将控制决策提供给智能体以由智能体执行。
49.作为另一示例,位置预测可以在由模拟自主载具和目标智能体导航通过的真实世界环境的计算机模拟中进行。在模拟中生成这些预测可以有助于控制模拟载具并测试模拟中遇到的某些情形的现实性。更一般地,在模拟中生成这些预测可以是在软件被部署在自主载具上之前测试真实世界自主载具的控制软件的一部分、或者是训练稍后将被部署在自主载具上的一个或多个机器学习模型的一部分、或这两者。
50.图2是用于生成对象的位置预测输出的示例过程200的流程图。为了方便起见,过
程200将被描述为由位于一个或多个位置的一个或多个计算机的系统来执行。例如,根据本说明书适当编程的位置预测系统,例如图1b的位置预测系统150,可以执行过程200。
51.在任何给定的时间点,系统可以执行过程200来针对在由载具的相机传感器捕获的图像的时间序列中检测到的一个或多个对象中的每一个生成相应的位置预测。
52.系统获得包括多个图像的图像的时间序列(步骤202)。该序列被称为“时间”序列,因为在一些实施方式中,图像是根据它们被捕获的时间(即时间戳)来排列的。例如,最新近的图像是由相机传感器捕获的图像的时间序列中的最后一个图像,而最不新近的图像是时间序列中的第一个图像。
53.系统针对时间序列中的每个图像生成初始深度估计(步骤204)。时间序列中每个图像的初始深度估计将相应的估计深度值分配给图像中的每个像素。给定像素的相应估计深度值表示在该像素处描绘的场景距捕获图像的相机的预测距离。
54.为了生成给定图像的初始深度估计,系统可以使用深度估计神经网络来处理给定图像。深度估计神经网络可以是例如卷积神经网络,其处理图像以生成为图像的每个像素分配相应的估计深度值的深度图。在一些实施方式中,系统获得预先训练的深度估计神经网络。在一些其他实施方式中,系统联合训练深度估计神经网络和用于生成位置预测的其他神经网络。
55.然后,系统可以针对在图像序列中检测到的一个或多个对象中的每一个执行步骤206-214。
56.系统获得对象的对象轨迹片段数据(步骤206)。对于时间序列中的每个图像,对象的对象轨迹片段数据标识图像中已经被确定为描绘给定对象的区域。例如,每个区域可以是二维边界框。如上参考图1b所述,可以通过应用二维对象检测器来生成轨迹片段数据。
57.系统根据图像的初始深度估计,针对时间序列中的每个图像生成图像中的区域的相应伪激光雷达表示(步骤208)。
58.给定图像中的给定区域的伪激光雷达表示将给定图像中的区域内的每个像素表示为三维坐标系中的点。也就是说,系统使用初始深度估计将给定区域中的二维像素变换到三维坐标系中。
59.具体而言,为了生成给定区域的伪激光雷达表示,系统基于图像的初始深度估计中的像素的估计深度值和相机的属性,将二维区域内的每个像素映射到三维坐标系。
60.作为特定示例,系统可以使用相机的水平和垂直焦距以及对应于相机中心的像素位置来执行映射。在一些实施方式中,给定图像中位置(u,v)处的像素值被映射到三维坐标系中的三维点(x,y,z),如下所示:
61.z=d(u,v),
62.x=(u-c
x
)x z/f
x
,以及
63.y=(v
–cy
)x z/fy,
64.其中d(u,v)是位置(u,v)处的像素的初始深度估计,f
x
是水平焦距,fy是垂直焦距,以及(c
x
,cy)是对应于相机中心的像素位置。
65.可选地,当生成伪激光雷达表示时,系统还可以补偿在捕获图像的时间序列时相机的自我运动。例如,该系统可以如上所述生成初始伪激光雷达表示,然后使用相机在序列中的图像之间的自我运动,将每个初始伪激光雷达表示变换到截至(as of)序列中最后一
个图像的相机的坐标系中。
66.作为特定示例,系统可以首先使用相机的自我运动将每个初始伪激光雷达表示投影到全局坐标系中,然后将该表示从全局坐标系投影到截至最后一个图像的相机的坐标系中。
67.该系统针对每个伪激光雷达表示生成伪激光雷达表示的相应特征(步骤210)。例如,系统可以通过使用生成图像伪激光雷达特征作为输出的伪激光雷达特征提取神经网络处理伪激光雷达表示来生成特征。伪激光雷达特征提取神经网络可以是被配置为处理三维点的集合的任何合适的神经网络,例如任何合适的3d对象检测神经网络的编码器神经网络。例如,神经网络可以是卷积神经网络,其将点排列为图像并处理图像以生成特征。这种神经网络的示例是patchnet,它在ma等人的rethinking pseudo-lidar representation(重新思考伪激光雷达表示),arxiv:2008.04582中有更详细的描述。
68.系统生成时间序列中的特定时间步长处的图像中的区域的图像块特征(步骤212)。例如,在特定时间步长处的图像可以是时间序列中的最后一个图像,即最新近的图像。然而,更一般地,特定时间步长可以是时间序列中的任何时间步长。
69.例如,系统可以使用图像特征提取神经网络处理序列中的特定时间步长处的图像,以生成图像的图像特征。然后,该系统可以选择图像特征中的与该区域内的图像的块相对应的子集作为图像块特征。也就是说,系统可以通过裁剪与该区域相对应的图像特征部分来生成图像块特征。特征提取神经网络可以是例如将图像映射到特征图的卷积编码器神经网络。可以使用的卷积神经网络的一个示例是包括多个残差卷积块的resnet骨干(backbone)神经网络。可以使用的卷积神经网络的另一示例是efficientnet骨干神经网络。
70.该系统从相应的伪激光雷达特征和图像块特征生成表征时间序列中特定时间步长处对象在三维坐标系中的位置的预测(步骤214)。
71.作为特定示例,系统可以组合相应的伪激光雷达特征和图像块特征以生成组合的特征,并使用解码器神经网络处理组合的特征以生成预测。
72.在一些实施方式中,系统通过拼接(concatenate)相应的伪激光雷达特征和图像块特征来生成组合的特征。因此,在这些实施方式中,解码器神经网络的输入是每个区域的相应伪激光雷达特征和时间序列中特定时间步长处的图像的图像块特征的拼接。
73.在一些其他实施方式中,系统首先通过组合序列中图像的相应伪激光雷达特征来生成组合的伪激光雷达特征。例如,系统可以通过前馈神经网络,例如多层感知器(mlp),来处理相应的伪激光雷达特征,或者可以拼接或平均化(average)相应的伪激光雷达特征。该系统然后组合,例如,拼接组合的伪激光雷达特征和图像块特征。因此,在这些实施方式中,解码器神经网络的输入是组合的伪激光雷达特征和时间序列中的图像的图像块特征的拼接。
74.解码器神经网络可以具有允许解码器神经网络将一组特征映射到预测的任何适当的架构。
75.例如,解码器神经网络可以是处理组合的特征以生成预测的多层感知器(mlp)神经网络。当预测是对象的深度估计时,解码器神经网络的输出可以是表示对象的预测深度的单个回归深度值。当预测指定与在特定时间步长处对象的预测位置相对应的三维区域
时,解码器神经网络的输出可以是三维坐标系中定义三维区域的一组坐标(例如三维边界框的坐标)中的每一个的回归值。
76.图3示出了针对包括三个图像304、306和308的图像序列中描绘的对象302生成位置预测152的示例。位置预测的生成可以由位于一个或多个位置的一个或多个计算机的系统(例如图1b的位置预测系统150)来执行。
77.为了生成位置预测,系统将二维对象跟踪器应用于图像304、306和308,以生成对象302的对象轨迹片段数据作为输出。对象轨迹片段数据标识图像304中的边界框314、图像306中的边界框316和图像308中的边界框318。
78.然后,系统从序列中的最后一个图像,即图像318,生成仅包括图像318在边界框318内的部分的图像块328。
79.系统还针对边界框314、316和318中的每个生成相应的伪激光雷达表示330,该伪激光雷达表示330针对每个边界框将边界框内的像素表示为三维点。如上所述,系统可以使用图像304、306和308中的每一个的相应初始深度估计来生成伪激光雷达表示330。
80.系统然后生成图像块328的图像块特征338和伪激光雷达表示330中的每一个的伪激光雷达特征340。
81.系统然后从图像块328的图像块特征338和伪激光雷达表示330中的每一个的伪激光雷达特征340生成对象302的位置预测152。
82.在图3的示例中,系统从特征340生成组合的伪激光雷达特征350,然后将组合的伪激光雷达特征350和图像块特征338拼接以生成组合的特征360。系统然后处理组合的特征360以生成位置预测152。
83.图4是用于生成对象的位置预测输出的另一示例过程400的流程图。为了方便起见,过程400将被描述为由位于一个或多个位置的一个或多个计算机的系统来执行。例如,根据本说明书适当编程的位置预测系统,例如图1b的位置预测系统150,可以执行过程400。
84.在任何给定的时间点,系统可以执行过程400来针对在由载具的相机传感器捕获的图像中检测到的一个或多个对象中的每一个生成相应的位置预测。
85.系统获得由相机传感器捕获的图像(步骤402)。
86.系统生成图像的初始深度估计(步骤404)。图像的初始深度估计将相应的估计深度值分配给图像中的每个像素。给定像素的相应估计深度值表示在该像素处描绘的场景距捕获图像的相机的预测距离。
87.为了生成图像的初始深度估计,系统可以使用深度估计神经网络来处理图像。深度估计神经网络可以是例如卷积神经网络,其处理图像以生成为图像的每个像素分配相应的估计深度值的深度图。在一些实施方式中,系统获得预先训练的深度估计神经网络。在一些其他实施方式中,系统联合训练深度估计神经网络和用于生成位置预测的其他神经网络。
88.然后,系统可以针对在图像序列中检测到的一个或多个对象中的每一个执行步骤406-412。
89.系统获得对象的对象检测数据(步骤406)。对象的对象检测数据标识图像中已被确定为描绘给定对象的二维边界框。对象检测数据可以通过应用二维对象检测器来生成,如上参考图1b所述。
90.系统根据图像的初始深度估计生成图像中二维边界框的伪激光雷达表示(步骤408)。
91.给定图像中给定边界框的伪激光雷达表示将给定图像中边界框内的每个像素表示为三维坐标系中的点。也就是说,系统使用初始深度估计将给定边界框中的二维像素变换到三维坐标系中。
92.具体而言,为了生成给定边界框的伪激光雷达表示,系统基于图像的初始深度估计中的像素的估计深度值和相机的属性,将二维边界框内的每个像素映射到三维坐标系。
93.作为特定示例,系统可以使用相机的水平和垂直焦距以及对应于相机中心的像素位置来执行映射。在一些实施方式中,给定图像中位置(u,v)处的像素值被映射到三维坐标系中的三维点(x,y,z),如下所示:
94.z=d(u,v),
95.x=(u-c
x
)x z/f
x
,以及
96.y=(v
–cy
)x z/fy,
97.其中d(u,v)是位置(u,v)处的像素的初始深度估计,f
x
是水平焦距,fy是垂直焦距,以及(c
x
,cy)是对应于相机中心的像素位置。
98.系统生成伪激光雷达表示的特征(步骤410)。例如,系统可以通过使用生成伪激光雷达特征作为输出的伪激光雷达特征提取神经网络处理伪激光雷达表示来生成特征。伪激光雷达特征提取神经网络可以是被配置为处理三维点的集合的任何合适的神经网络,例如任何合适的3d对象检测神经网络的编码器神经网络。例如,神经网络可以是卷积神经网络,其将点排列为图像并处理图像以生成特征。这种神经网络的示例是patchnet,它在ma等人的rethinking pseudo-lidar representation,arxiv:2008.04582中有更详细的描述。
99.系统生成图像中的二维边界框的图像块特征(步骤412)。
100.例如,系统可以使用图像特征提取神经网络来处理最后一个图像,以生成图像的图像特征。然后,系统可以选择图像特征中的与二维边界框内的图像的块相对应的子集作为图像块特征。也就是说,系统可以通过裁剪对应于边界框的图像特征部分来生成图像块特征。
101.系统从相应的伪激光雷达特征和图像块特征生成表征对象在三维坐标系中的位置的预测(步骤414)。
102.作为特定示例,系统可以组合伪激光雷达特征和图像块特征以生成组合的特征,并使用解码器神经网络处理组合的特征以生成预测。在一些实施方式中,系统通过拼接伪激光雷达特征和图像块特征来生成组合的特征。
103.解码器神经网络可以具有允许解码器神经网络将一组特征映射到预测的任何适当的架构。
104.例如,解码器神经网络可以是处理组合的特征以生成预测的多层感知器(mlp)神经网络。当预测是对象的深度估计时,解码器神经网络的输出可以是表示对象的预测深度的单个回归深度值。当预测指定与对象的预测位置相对应的三维区域时,解码器神经网络的输出可以是三维坐标系中三维区域的坐标(例如三维边界框的坐标)中的每个坐标的回归值。
105.如上所述,在使用上述神经网络,例如在执行过程200或过程400中使用的神经网
络),来(例如在自主载具上)执行推断之前,训练系统在训练数据上训练神经网络。训练数据包括多个训练示例,其中每个训练示例包括(i)环境的一个或多个图像和(ii)图像中的至少一个图像的地面实况数据。
106.具体而言,地面实况数据包括在图像中的至少一个图像中描绘的对象中的一个或多个对象的地面实况三维位置,例如,地面实况每对象深度或地面实况三维边界框。
107.系统将上述神经网络一起训练,即联合训练,以最小化目标函数,该目标函数针对一个或多个对象中的每一个测量由该系统为该对象生成的位置预测和该对象的地面实况位置之间的误差。例如,当位置预测是深度估计时,误差可以是例如深度估计和地面实况深度之间的平方误差。当位置预测是三维边界框时,误差可以是预测的三维边界框和地面实况三维边界框之间的误差,例如边界框的坐标中的每个坐标的平方误差之和。
108.系统可以使用任何适当的机器学习训练技术,例如具有任何适当优化器的梯度下降技术,例如随机梯度下降、adam、rmsprop或adafactor,在目标函数上训练神经网络。
109.本说明书中描述的主题和功能操作的实施例可以在数字电子电路中、在有形体现的计算机软件或固件中、在包括本说明书中公开的结构及其结构等同物的计算机硬件中、或者在它们中的一个或多个的组合中实施。本说明书中描述的主题的实施例可以实施为一个或多个计算机程序,即编码在有形的非暂时性存储介质上的计算机程序指令的一个或多个模块,用于由数据处理设备执行或控制数据处理装置的操作。计算机存储介质可以是机器可读存储设备、机器可读存储基板、随机或串行存取存储设备或它们中的一个或多个的组合。可替换地或附加地,程序指令可以被编码在人工生成的传播信号上,例如机器生成的电、光或电磁信号,其被生成来编码信息以传输到合适的接收器设备,用于由数据处理设备执行。
110.术语“数据处理装置”指的是数据处理硬件,并且包括用于处理数据的各种设备、装置和机器,包括例如可编程处理器、计算机或多个处理器或计算机。装置还可以是或进一步包括现成的或定制的并行处理子系统,例如gpu或另一种专用处理子系统。装置还可以是或进一步包括专用逻辑电路,例如fpga(现场可编程门阵列)或asic(专用集成电路)。除了硬件之外,装置可以可选地包括为计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统或它们中的一个或多个的组合的代码。
111.也可以称为或描述为程序、软件、软件应用、应用程序、模块、软件模块、脚本或代码的计算机程序可以用任何形式的编程语言编写,包括编译或解释语言,或声明性或过程性语言,并且它可以以任何形式部署,包括作为独立程序或作为模块、组件、子例程或适合在计算环境中使用的其他单元。程序可以,但不是必须,对应于文件系统中的文件。程序可以存储在保存其他程序或数据的文件的一部分中,例如存储在标记语言文档中的一个或多个脚本;存储在专用于所讨论的程序的单个文件中;或者存储在多个协同文件中,例如存储一个或多个模块、子程序或代码部分的文件。计算机程序可以被部署为在一个计算机上或位于一个站点或分布在多个站点并通过数据通信网络互连的多个计算机上执行。
112.对于由一个或多个计算机组成的系统来说,被配置为执行特定的操作或动作意味着该系统已经在其上安装了软件、固件、硬件或它们的组合,这些软件、固件、硬件或它们的组合在操作时使得该系统执行该操作或动作。对于一个或多个计算机程序来说,被配置为执行特定操作或动作意味着一个或多个程序包括指令,当由数据处理装置执行时,该指令
使得该装置执行该操作或动作。
113.如在本说明书中所使用的,“引擎”或“软件引擎”指的是提供不同于输入的输出的软件实施的输入/输出系统。引擎可以是编码的功能块,诸如库、平台、软件开发工具包(“sdk”)或对象。每个引擎可以在任何适当类型的计算设备上实施,例如服务器、移动电话、平板计算机、笔记本计算机、音乐播放器、电子书阅读器、膝上型或台式计算机、pda、智能电话或包括一个或多个处理器和计算机可读介质的其他固定或便携式设备。另外,引擎中的两个或更多个可以在相同的计算设备上实施,或者在不同的计算设备上实施。
114.本说明书中描述的过程和逻辑流程可以由执行一个或多个计算机程序的一个或多个可编程计算机来执行,以通过对输入数据进行操作并生成输出来执行功能。这些过程和逻辑流程也可以由专用逻辑电路,例如fpga或asic,或者由专用逻辑电路和一个或多个编程计算机的组合来执行。
115.适于执行计算机程序的计算机可以基于通用或专用微处理器或两者,或者任何其他类型的中央处理单元。通常,中央处理单元将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是用于执行或运行指令的中央处理单元和一个或多个用于存储指令和数据的存储器设备。中央处理单元和存储器可以由专用逻辑电路来补充,或者包含在专用逻辑电路中。通常,计算机还将包括或可操作地耦合到一个或多个用于存储数据的大容量存储设备,例如磁盘、磁光盘或光盘,以从其接收数据或向其传输数据,或两者兼有。然而,计算机不需要有这样的设备。此外,计算机可以嵌入到另一设备中,例如移动电话、个人数字助理(pda)、移动音频或视频播放器、游戏控制台、全球定位系统(gps)接收器或便携式存储设备,例如通用串行总线(usb)闪存驱动器,仅举几例。
116.适于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器设备,包括例如半导体存储器设备,例如eprom、eeprom和闪存设备;磁盘,例如内部硬盘或可移动盘;磁光盘;以及cd-rom和dvd-rom盘。
117.为了提供与用户的交互,本说明书中描述的主题的实施例可以在具有用于向用户显示信息的显示设备(例如crt(阴极射线管)或lcd(液晶显示器)监视器,以及键盘和指点设备(例如鼠标、轨迹球或存在敏感显示器或用户可以向计算机提供输入的其他表面)的计算机上实施。也可以使用其他类型的设备来提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感官反馈,例如视觉反馈、听觉反馈或触觉反馈;并且可以以任何形式接收来自用户的输入,包括声音、语音或触觉输入。此外,计算机可以通过向用户使用的设备发送文档和从用户使用的设备接收文档来与用户交互;例如,通过响应于从用户设备上的网络浏览器接收的请求将网页发送到网络浏览器。此外,计算机可以通过向个人设备(例如,智能电话)发送文本消息或其他形式的消息、运行消息应用以及从用户接收响应消息来与用户交互。
118.本说明书中描述的主题的实施例可以在包括后端组件(例如作为数据服务器)、或者包括中间件组件(例如应用服务器)、或者包括前端组件(例如具有图形用户界面、网络浏览器或用户可以通过其与本说明书中描述的主题的实施方式交互的应用的客户端计算机)、或者一个或多个这样的后端、中间件或前端组件的任意组合的计算系统中实施。系统的组件可以通过任何形式或介质的数字数据通信(例如通信网络)互连。通信网络的示例包括局域网(lan)和广域网(wan),例如因特网。
119.计算系统可以包括客户端和服务器。客户端和服务器通常彼此远离,并且通常通过通信网络进行交互。客户端和服务器的关系是通过运行在相应计算机上并且彼此之间具有客户端-服务器关系的计算机程序产生的。在一些实施例中,服务器将数据(例如,html页面)传输到用户设备,例如,为了向充当客户端的与该设备交互的用户显示数据和从该用户接收用户输入。在用户设备处生成的数据,例如用户交互的结果,可以在服务器处从该设备接收。
120.尽管本说明书包含许多具体的实施细节,但这些不应被解释为对任何发明的范围或对所要求保护的范围的限制,而是对特定发明的特定实施例可能特有的特征的描述。本说明书中在单独实施例的上下文中描述的某些特征也可以在单个实施例中组合实现。相反,在单个实施例的上下文中描述的各种特征也可以在多个实施例中单独实施或者在任何合适的子组合中实施。此外,尽管特征可以在上面被描述为在某些组合中起作用,并且甚至最初被这样要求保护,但是在一些情况下,来自所要求保护的组合的一个或多个特征可以从该组合中删除,并且所要求保护的组合可以指向子组合或子组合的变体。
121.类似地,虽然在附图中以特定顺序描述了操作,但是这不应该被理解为要求以所示的特定顺序或顺序执行这些操作,或者要求执行所有示出的操作,以获得期望的结果。在某些情况下,多任务和并行处理可能是有利的。此外,上述实施例中的各种系统模块和组件的分离不应该被理解为在所有实施例中都需要这种分离,并且应该理解,所描述的程序组件和系统通常可以集成在单个软件产品中或者封装到多个软件产品中。
122.已经描述了主题的特定实施例。其他实施例在所附权利要求的范围内。例如,权利要求中列举的动作可以以不同的顺序执行,并且仍然获得期望的结果。作为一个示例,附图中描述的过程不一定需要所示的特定顺序或依次顺序来实现期望的结果。在某些情况下,多任务和并行处理可能是有利的。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

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

相关文献