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

碰撞避免感知系统的制作方法

2022-06-01 20:32:45 来源:中国专利 TAG:

碰撞避免感知系统
1.相关申请的交叉引用
2.本技术要求于2020年4月14日提交的序列号为16/848,834的美国专利申请的优先权,该申请是2019年10月2日提交的序列号为16/591,518的美国专利申请的部分继续申请。要求所有先前申请的优先权。


背景技术:

3.车辆中的乘客和车辆附近的其他人或物体的安全性是最重要的。这种安全性通常取决于对潜在碰撞的准确检测和安全措施的及时部署。为了安全操作,自主车辆可能包括多个传感器和各种系统以用于检测和跟踪自主车辆周围的事件并且在控制自主车辆时可以将这些事件考虑在内。例如,自主车辆可以检测和跟踪一组相机、lidar传感器、radar等的360度视图内的每个物体以安全地控制自主车辆。
附图说明
4.参考附图来描述详细描述。在附图中,附图标记的一个或多个最左侧数字标识附图标记首次出现的附图。不同图中相同的附图标记表示相似或相同的项目。
5.图1示出了示例场景,其中配置有碰撞避免部件的自主车辆可以生成用于控制自主车辆的轨迹并由碰撞避免部件确定是实施该轨迹还是使自主车辆执行或有轨迹(例如安全停止、制动或硬制动)。
6.图2示出了包括碰撞避免部件的示例系统的框图。
7.图3示出了示例碰撞避免部件的至少一部分的框图。
8.图4示出了通过使用碰撞避免部件来验证轨迹和/或实施或有轨迹而执行的示例过程的图示流程图。
9.图5a示出了针对从不同传感器类型接收的传感器数据确定的示例占用图。
10.图5b-5d示出了可以通过根据不同技术聚合图5a的示例占用图而产生的不同示例数据结构。
11.图6a和6b描绘了本文讨论的ml模型的不同示例架构。
具体实施方式
12.用于碰撞避免的技术可以包括验证、拒绝或替换生成为控制车辆的轨迹的碰撞避免系统。例如,在根据本文讨论的技术验证轨迹时,碰撞避免系统可以通过或以其他方式允许轨迹由车辆实施。然而,在确定轨迹无效时,根据本文讨论的技术,碰撞避免系统可以使车辆启动替代操纵(例如,安全停止操纵、或有轨迹)和/或重新确定新的轨迹。在一些示例中,车辆的规划部件可以至少部分地基于传感器数据、地图数据、定位数据(例如,自主车辆在哪里/自主车辆相对于环境中的物体如何定向,映射位置等)和/或从主要感知部件接收的感知数据(例如,环境中的物件、环境中物体的特征)来确定轨迹。
13.碰撞避免系统可以包括次要感知部件和/或验证部件。例如,碰撞避免系统可以接
收轨迹并且从一个或多个传感器接收与自主车辆周围环境相关联的传感器数据。在一些示例中,虽然主要感知部件可以至少部分地基于所有或几乎所有传感器数据来确定感知数据,但是碰撞避免系统的次要感知部件可以至少部分地基于由主要感知部件使用的传感器数据的子集来确定是否拒绝轨迹。在至少一些示例中,这种次要感知系统可以进一步使用相对于主要系统相似和/或不同的硬件和/或软件。在一些示例中,次要感知系统可以简单地将传感器数据分类为静态物体或动态物体,而不消除物体是何类型的歧义。在额外或可替代示例中,次要感知系统可以包括任何类型的ml模型,被配置为消除物体分类的歧义。例如,次要感知系统可以确定与物体相关联的物体分类(例如,行人、车辆、标牌、骑车者、驾车者、背景/地面)。
14.在一些示例中,次要感知系统可以包括与不同传感器类型相关联的多个机器学习(ml)模型。次要感知系统可以接收与第一传感器类型相关联的第一传感器数据和与第二传感器类型相关联的第二传感器数据。可以训练第一ml模型以至少部分地基于(第一传感器类型的)第一传感器数据来确定第一占用图并且可以训练第二ml模型以至少部分地基于第二传感器数据来确定第二占用图。在额外或可替代示例中,ml模型可以被训练为输出与物体分类相关联的占用图。例如,第一ml模型可以输出与物体分类“行人”相关联的指示环境中被分类为行人的物体所占据的一个或多个部分的第一占用图,与物体分类“车辆”相关联的第二占用图等。额外地或可替代地,ml模型可以被训练为输出与占用指示(例如,环境的一部分被行人、骑车者、驾车者或车辆占用的指示并且其余部分可以被指示为与标签“地面”相关联)相关联的标签。占用图可以包括与环境的一部分相关联的置信度分数,该置信度分数指示环境的该部分被物体占用或预计被物体占用的可能性(例如,后验概率)。在一些示例中,占用图中与环境的该部分相关联的一部分(例如,像素、一些其他离散部分)可以额外地或可替代地指示物体是静态的或动态的。
15.在一些示例中,该技术可以包括训练本文讨论的ml模型,使得由此输出的占用图与相同的参考系和/或维度相关联。例如,每个ml模型输出的占用图可以与30米乘30米的正方形相关联,以自主车辆为中心并定向为环境和/或自主车辆周围物体的自上而下视图。
16.本文讨论的一个或多个ml模型可以额外地或可替代地被训练输出与当前时间和/或一个或多个未来时间相关联的一个或多个占用图。例如,ml模型可以被训练为输出与当前时间相关联的当前占用图以及与未来时间相关联的预测占用图。注意,如本文所使用的,“当前”时间可以与接收到传感器数据的时间相关联,实际上,就与其相关联的当前占用图由ml模型生成的时间而言,该“当前”时间将是过去时间。因此,“当前”时间可以与接收到传感器数据的时间相关联,或者“当前”时间可以与接收到传感器数据的时间之后的时间(即未来时间)相关联。在后者的情况下,当前占用图本身可以是预测占用图。在一些示例中,除了当前(最近的)传感器数据之外,ml模型还可以接收先前传感器数据。
17.举个概括的示例,一组ml模型可以被训练为接收不同传感器数据类型并生成相同数量的占用图,每个占用图可以与相同的相应时间相关联,例如,从当前时间直到未来时间。例如,ml模型可以以从当前时间直至未来时间的间隔确定占用图(例如,参照从接收到最近传感器数据的时间,从0到2秒以500毫秒的间隔确定五个占用图)。
18.这些技术可以额外地或可替代地包括将由不同ml模型生成的占用图聚合至数据结构中。聚合可以包括将与相同时间相关联的占用图聚合成单个占用图。例如,不同的ml模
型可以生成全部与第一未来时间相关联的第一组不同占用图以及全部与第二未来时间相关联的第二组不同占用图。聚合可以包括将第一组聚合成与第一未来时间相关联的第一占用图,并将第二组聚合成与第二未来时间相关联的第二占用图。在一些示例中,聚合与第一时间相关联的占用图可以包括聚合与不同物体分类相关联的占用图,使得与多达所有物体分类相关联的占用出现在一个占用图中。
19.在额外或可替代技术中,阈值可以在占用图被聚合之前被应用到占用图或者在占用图被聚合之后被应用到数据结构。阈值可以是阈值置信度分数(例如阈值后验概率),并且应用阈值可以包括:如果与占用图的一部分相关联的阈值分数达到或超过阈值置信度分数,则将占用图的该部分与环境中的一部分被占用的指示相关联,或者如果置信度分数不达到阈值置信度水平(即,占用图的该部分可能与环境中的该部分未被占用的指示相关联),则反之亦然。
20.在一些情况下,聚合可以包括整体投票技术,其中将一组占用图聚合至数据结构中可以包括至少部分基于与同一时间相关联的一个或多个占用图的对应部分等之间进行多数投票、贝叶斯平均或其他形式的平均(并对平均值应用阈值)、最大后验概率(例如,用与指示最高后验概率的占用图相同的指示填充数据结构的该部分)从而确定利用环境的一部分被(或未被)物体占用的指示填充数据结构的一部分。
21.该技术可以额外地或可替代地包括至少部分地基于与轨迹相关联的速度来确定阈值距离。例如,在给定环境条件的情况下(例如,坡度、与道路和/或道路状况相关联的静态系数),阈值距离可以是在车辆的当前速度和/或由轨迹指定的速度下与车辆相关联的停止距离估计。碰撞避免系统的验证部件可以确定分类为物体的任何传感器数据是否或是否被预测处于距车辆小于阈值距离的距离处或者分类为地面的最远点是否小于阈值距离。在任一情况下,验证部件可以使车辆执行或有轨迹和/或至少部分地基于确定物体或最远检测到的地面在车辆的阈值距离内来重新确定轨迹。如果验证部件确定最近物体处于超过阈值距离的距离处并且分类为地面的最远传感器数据处于超过阈值距离的距离处,则验证部件可以验证轨迹,这可以包括将轨迹传输到一个或多个系统控制器,该一个或多个控制器可以产生用于致动车辆的驱动部件以跟踪轨迹的信号。
22.额外地或替代地,验证部件可以至少部分地基于车辆的当前速度、与轨迹相关联的速度、与物体相关联的速度、车辆的当前姿势和/或确定与物体和/或地面分类相关联的传感器数据是否有效来确定是否验证轨迹或启动替代操纵。例如,该技术可以包括确定车辆的当前速度、转向角、转向速率和/或航向是否与轨迹指示的速度、转向角、转向速率和/或航向相一致(在相应的阈值内)。
23.本文讨论的技术可以通过防止车辆实施无效或有风险的轨迹来提高车辆的安全性。在至少一些示例中,这种技术可以进一步由于以减轻与轨迹生成部件(感知、预测、规划等)相关联的任何系统或子系统中的错误的方式提供冗余而防止碰撞。此外,与以前的技术相比,这些技术可以减少为碰撞避免而消耗的计算带宽、存储器和/或功率的量。碰撞避免系统的精度也可以高于主要感知系统的精度,从而通过过滤掉无效轨迹来降低自主车辆实现的轨迹的总体错误率。
24.示例场景
25.图1示出了包括车辆102的示例场景100。在某些情况下,车辆102可以是自主车辆,
其被构造为根据美国国家公路交通安全管理局发布的5级分类进行操作,该分类描述了一种在驾驶员(或乘员)在任何时候都不希望控制车辆的情况下能够在整个行程中执行所有安全关键功能的车辆。然而,在其他示例中,车辆102可以是具有任何其他级别或分类的完全或部分自主车辆。预期本文所讨论的技术可应用于机器人控制(例如自主车辆)以外的领域。例如,本文讨论的技术可以应用于采矿、制造、增强现实等。此外,即使车辆102被描绘为陆地车辆,车辆102也可以是航天器、船只等。在一些示例中,车辆102可以在模拟中被表示为模拟车辆。为简单起见,本文的讨论不区分模拟车辆和真实世界车辆。因此,对“车辆”的引用可以表示模拟车辆和/或真实世界车辆。
26.根据本文讨论的技术,车辆102可以从车辆102的一个或多个传感器104接收传感器数据。例如,一个或多个传感器104可以包括位置传感器(例如,全球定位系统(gps)传感器)、惯性传感器(例如,加速度计传感器、陀螺仪传感器等)、磁场传感器(例如,指南针)、位置/速度/加速度传感器(例如,速度计、驱动系统传感器)、深度位置传感器(例如,lidar传感器、radar传感器、声纳传感器、飞行时间(tof)相机、深度相机、超声波和/或声纳传感器、和/或其他深度感测传感器)、图像传感器(例如相机)、音频传感器(例如麦克风)和/或环境传感器(例如气压计、湿度计等)。
27.一个或多个传感器104可以生成传感器数据,其可以由与车辆102相关联的一个或多个计算装置106接收。然而,在其他示例中,一个或多个传感器104和/或一个或多个计算装置106中的一些或全部可以与车辆102分离和/或远离车辆102设置并且数据捕获、处理、命令和/或控制可以由一个或多个远程计算装置经由有线和/或无线网络通信到车辆102/从车辆102通信。
28.一个或多个计算装置106可以包括存储感知部件110、规划部件112、碰撞避免部件114和/或一个或多个系统控制器116的存储器108。虽然为了说明性目的在图1中描绘,但应该是应当理解,碰撞避免部件114可以驻留在其他部件中的任何一个或多个以外的单独计算装置中/上(或以其他方式)。在一些示例中,感知部件110可以是除了其他感知部件(诸如可以是碰撞避免部件114的一部分的次要感知部件)以外的主要感知部件。一般而言,感知部件110可以确定车辆102周围环境中有什么且规划部件112可以根据从感知部件110接收的信息来确定如何操作车辆102。例如,规划部件112可以至少部分地基于感知数据和/或其他信息(例如,一个或多个地图、定位信息(例如,车辆102在环境中相对于地图的位置和/或由感知部件110检测到的特征)等来确定轨迹118。轨迹118可包括用于一个或多个控制器116的指令以致动车辆102的驱动部件以执行可导致车辆位置、车辆速度和/或车辆加速度的转向角和/或转向速率。例如,轨迹118可以包括目标航向、目标转向角、目标转向速率、目标位置、目标速度和/或目标加速度以供一个或多个控制器116跟踪。感知部件110、规划部件112和/或碰撞避免部件114可以包括一个或多个机器学习(ml)模型和/或其他计算机可执行指令。
29.在一些示例中,感知部件110可以从一个或多个传感器104接收传感器数据并确定与车辆102附近的物体相关的数据(例如,与检测到的物体相关联的分类、一个或多个实例分割、一个或多个语义分割、二维和/或三维边界框、径迹)、指定车辆目的地的路线数据、识别道路特征的全局地图数据(例如,在用于定位自主车辆的不同传感器模态中可检测的特征),识别在车辆附近检测到的特征的本地地图数据(例如,建筑物、树木、围栏、消防栓、停
车标志的位置和/或尺寸,以及在各种传感器模态中可检测到的任何其他特征)等。由感知部件110确定的物体分类可以区分不同物体类型,例如乘用车辆、行人、骑车者、驾车者、送货卡车、半卡车、交通标志等。径迹可以包括历史、当前和/或预测物体位置、速度、加速度和/或航向。由感知部件110产生的数据可以统称为感知数据。一旦感知部件110已经生成感知数据,则感知部件110可以将感知数据提供至规划部件112。
30.规划部件112可以使用从感知部件110接收的感知数据来确定一个或多个轨迹、控制车辆102的运动以穿过路径或路线、和/或以其他方式控制车辆102的操作,尽管任何这种操作可以在各种其他部件中执行(例如,定位可以由定位部件执行,其可以至少部分地基于感知数据)。例如,规划部件112可以确定车辆102从第一位置到第二位置的路线;基本上同时并且至少部分地基于感知数据和/或模拟感知数据(其可以进一步包括在这种数据中关于所检测到物体的预测)生成用于根据滚动时域技术(例如,1微秒、半秒)控制车辆102的运动的多个潜在轨迹以控制车辆穿过路线(例如,以避开任何检测到的物体);以及选择潜在轨迹中的一个作为车辆102的轨迹118,该轨迹118可用于生成驱动控制信号,该驱动控制信号可被传输到车辆102的驱动部件。图1描绘了这种轨迹118的示例,其表示为指示航向、速度和/或加速度的箭头,尽管轨迹本身可以包括用于一个或多个控制器116的指令,该一个或多个控制器116又可以启动车辆102的驱动系统。
31.在一些示例中,感知部件110可以包括硬件和/或软件的流水线,其可以包括一个或多个gpu、一个或多个ml模型、一个或多个卡尔曼滤波器等。在一些示例中,感知部件110可以监测自主车辆周围尽可能多的环境,这可能受到传感器能力、物体和/或环境遮挡(例如,建筑物、高度变化、其他物体前面的物体),和/或环境影响(例如雾、雪等)的限制。例如,传感器数据可以包括lidar和/或radar数据,感知部件110可以接收其作为输入。感知部件110可以被构造为检测尽可能多的物体和关于环境的信息以避免未能考虑规划部件112在确定轨迹118时应该考虑的事件或物体行为。
32.相反,碰撞避免部件114可以监测可以小于一个或多个传感器104的有效范围内的整个区域的区域120。碰撞避免部件114可以确定传感器数据中与该区域120相关联的子集并至少部分地基于该子集来进行本文讨论的操作。例如,在示例场景中,碰撞避免部件114可以确定包括传感器数据的子集,该传感器数据包括环境中由区域120指示的部分,其可以包括表示122的一部分。虽然,在额外或可替代示例中,碰撞避免部件114可以监测与感知部件110相同的区域。
33.碰撞避免部件114可以监测与区域120相关联的传感器数据以确保轨迹118不会或不可能导致碰撞。在一些示例中,这可以包括接收传感器数据(例如图像124)以及生成环境和其中的物体的自上而下表示,如本文更详细讨论的。碰撞避免部件114可以包括生成环境的自上而下表示的次要感知部件并将表示中的部分分类为被占用或未被占用。在一些示例中,碰撞避免部件114可以额外地或可替代地确定被占用部分是动态还是静态的。
34.碰撞避免部件114可以额外地或可替代地包括验证部件,该验证部件可以确定本文讨论的阈值距离和/或确定是验证还是拒绝轨迹118。验证轨迹118可以包括将轨迹118传输到一个或多个控制器116(例如,验证部件可以包括多路复用器、构造为在从验证部件接收到信号时变换轨迹118的开关的一个或多个晶体管,和/或可以提供允许轨迹118信号传递到一个或多个控制器116的信号的类似部件)。拒绝轨迹118可以包括向规划部件112发送
消息以启动重新确定轨迹和/或启动替代操纵,例如安全停止操纵(例如,紧急制动、靠边和停车)和/或或有轨迹,该或有轨迹是除了轨迹118之外可以从规划部件112接收的和/或存储在存储器108中的轨迹。在一些示例中,碰撞避免部件114可以确定至少部分地基于传感器的定向和/或环境的拓扑和/或传感器数据的有效部分的下限和上限来确定传感器数据的子集的至少一部分是有效还是无效的,如本文更详细讨论的。
35.在一些示例中,一个或多个控制器116可以包括用于致动车辆102的驱动部件以足以跟踪轨迹118的软件和/或硬件。例如,一个或多个控制器116可以包括一个或多个比例-积分-微分(pid)控制器。
36.示例系统
37.图2示出了实现本文所讨论的技术的示例系统200的框图。在一些情况下,示例系统200可以包括车辆202,其可以表示图1中的车辆102。在一些情况下,车辆202可以是自主车辆,其被构造为根据美国国家公路交通安全管理局发布的5级分类进行操作,该分类描述了一种在驾驶员(或乘员)在任何时候都不希望控制车辆的情况下能够在整个行程中执行所有安全关键功能的车辆。然而,在其他示例中,车辆202可以是具有任何其他级别或分类的完全或部分自主车辆。此外,在一些情况下,本文描述的技术也可以由非自主车辆使用。
38.车辆202可以包括一个或多个车辆计算装置204、一个或多个传感器206、一个或多个发射器208、一个或多个网络接口210和/或一个或多个驱动部件212。一个或多个车辆计算装置204可以表示一个或多个计算装置106并且一个或多个传感器206可以表示一个或多个传感器104。系统200可以额外地或可替代地包括一个或多个计算装置214。
39.在一些情况下,一个或多个传感器206可以表示一个或多个传感器104并且可以包括lidar传感器、radar传感器、超声换能器、声纳传感器、位置传感器(例如,全球定位系统(gps)、指南针等)、惯性传感器(例如,惯性测量单元(imu),加速度计,磁力计,陀螺仪等),图像传感器(例如,红绿蓝(rgb),红外(ir),强度,深度,飞行时间相机等)、麦克风、车轮编码器、环境传感器(例如,温度计、湿度计、光传感器、压力传感器等)等。一个或多个传感器206可以包括这些或其他类型传感器中的每个的多个实例。例如,radar传感器可以包括位于车辆202的拐角、前部、后部、侧面和/或顶部的各个radar传感器。作为另一示例,相机可以包括围绕车辆202的外部和/或内部设置在不同位置处的多个相机。一个或多个传感器206可以向一个或多个车辆计算装置204和/或一个或多个计算装置214提供输入。
40.如上所述,车辆202还可以包括用于发射光和/或声音的一个或多个发射器208。该示例中的一个或多个发射器208可以包括与车辆202的乘客通信的一个或多个内部音频和视觉发射器。作为示例而非限制,一个或多个内部发射器可以包括扬声器、灯、标志、显示器屏幕、触摸屏、一个或多个触觉发射器(例如,振动和/或力反馈)、机械致动器(例如,安全带张紧器、座椅定位器、头枕定位器等)等。该示例中的一个或多个发射器208还可以包括一个或多个外部发射器。作为示例而非限制,该示例中的一个或多个外部发射器包括用于向行驶方向发出信号的灯或车辆动作的其他指示器(例如,指示灯、标志、光阵列等),以及一个或多个音频发射器(例如,扬声器、扬声器阵列、喇叭等)以与行人或其他附近车辆进行听觉通信,该一个或多个音频发射器中的一个或多个包括声束转向技术。
41.车辆202还可以包括一个或多个网络接口210,其使车辆202与一个或多个其他本地或远程计算装置之间能够通信。例如,一个或多个网络接口210可以促进与车辆202上的
一个或多个其他本地计算装置和/或一个或多个驱动部件212的通信。此外,一个或多个网络接口210可以额外地或可替代地允许车辆与一个或多个其他附近的计算装置(例如,其他附近的车辆、交通信号灯等)进行通信。一个或多个网络接口210可以额外地或可替代地使车辆202能够与一个或多个计算装置214通信。在一些示例中,一个或多个计算装置214可以包括分布式计算系统的一个或多个节点(例如,云计算架构)。
42.一个或多个网络接口210可以包括用于将一个或多个车辆计算装置204连接到另一计算装置或网络(例如一个或多个网络216)的物理和/或逻辑接口。例如,一个或多个网络接口210可以实现例如经由由ieee 300.11标准定义的频率的基于wi-fi的通信、例如蓝牙的短距离无线频率、蜂窝通信(例如,2g、3g、4g、4g lte、5g等)或使相应的计算装置能够与一个或多个其他计算装置接口的任何合适的有线或无线通信协议。在一些情况下,一个或多个车辆计算装置204和/或一个或多个传感器206可以经由一个或多个网络216将传感器数据以特定频率(在预定时间段过去之后、接近实时地等)发送到一个或多个计算装置214。
43.在一些情况下,车辆202可以包括一个或多个驱动部件212。在一些情况下,车辆202可以具有单个驱动部件212。在一些情况下,一个或多个驱动部件212可以包括一个或多个传感器以检测一个或多个驱动部件212的状况和/或车辆202的周围环境。作为示例而非限制,一个或多个驱动部件212的一个或多个传感器可以包括一个或多个车轮编码器(例如,旋转编码器)以感测驱动部件的轮子的旋转,惯性传感器(例如,惯性测量单元、加速度计、陀螺仪、磁力计等)以测量驱动部件的方向和加速度、相机或其他图像传感器、超声波传感器以声学检测驱动部件周围的物体、lidar传感器、radar传感器等。一些传感器,例如车轮编码器,对于一个或多个驱动部件212可以是唯一的。在某些情况下,一个或多个驱动部件212上的一个或多个传感器可以重叠或补充车辆202的对应系统(例如,一个或多个传感器206)。
44.一个或多个驱动部件212可以包括许多车辆系统,包括高压电池、驱动车辆的马达、将来自电池的直流电流转换成交流电流以供其他车辆系统使用的逆变器、包括转向马达和转向齿条(可以是电动的)的转向系统、包括液压或电动致动器的制动系统、包括液压和/或气动部件的悬挂系统、用于分配制动力以减轻牵引力损失并保持控制的稳定性控制系统、hvac系统、照明(例如,用于照亮车辆的外部周围环境的头灯/尾灯等照明)和一个或多个其他系统(例如,冷却系统、安全系统、车载充电系统、其他电气部件(例如dc/dc转换器、高压接头、高压电缆、充电系统、充电端口等))。另外,一个或多个驱动部件212可以包括驱动部件控制器,其可以接收和预处理来自一个或多个传感器的数据并控制各种车辆系统的操作。在一些情况下,驱动部件控制器可以包括一个或多个处理器以及与一个或多个处理器通信联接的存储器。存储器可以存储一个或多个部件以执行一个或多个驱动部件212的各种功能。此外,一个或多个驱动部件212还可以包括一个或多个通信连接,其使得相应驱动部件能够与一个或多个其他本地或远程计算装置通信。
45.一个或多个车辆计算装置204可以包括一个或多个处理器218和与一个或多个处理器218通信联接的存储器220。存储器220可以表示存储器108。一个或多个计算装置214还可以包括一个或多个处理器222和/或存储器224。一个或多个处理器218和/或222可以是能够执行指令以处理数据和执行如本文所述的操作的任何合适的处理器。作为示例而非限
制,一个或多个处理器218和/或222可以包括一个或多个中央处理单元(cpu)、图形处理单元(gpu)、集成电路(例如,专用集成电路(asic))、门阵列(例如,现场可编程门阵列(fpga))和/或处理电子数据以将该电子数据转换为可存储在寄存器和/或存储器中的任何其他装置或装置的一部分。
46.存储器220和/或224可以是非暂时性计算机可读介质的示例。存储器220和/或224可以存储操作系统和一个或多个软件应用、指令、程序和/或数据以实现本文描述的方法和归属于各种系统的功能。在各种实施例中,存储器可以使用任何合适的存储器技术来实施,例如静态随机存取存储器(sram)、同步动态ram(sdram)、非易失性/闪存型存储器或能够存储信息的任何其他类型的存储器。本文描述的架构、系统和各个元件可以包括许多其他逻辑、程序和物理部件,其中在附图中示出的那些仅仅是与本文讨论相关的示例。
47.在一些情况下,存储器220和/或存储器224可以存储定位部件226、感知部件228、规划部件230、碰撞避免部件232、一个或多个地图234和/或一个或多个系统控制器236。感知部件228可以代表感知部件110,规划部件230可以代表规划部件112,和/或碰撞避免部件232可以代表碰撞避免部件114。
48.在至少一个示例中,定位部件226可以包括硬件和/或软件以从一个或多个传感器206接收数据以确定车辆202的位置、速度和/或方向(例如,x-、y-、z-位置、侧倾、俯仰或偏航中的一个或多个)。例如,定位部件226可以包括和/或请求/接收环境的一个或多个地图234并且可以连续地确定自主车辆在一个或多个地图234内的位置、速度和/或定向。在一些情况下,定位部件226可以利用slam(同时定位和映射)、clams(同时校准、定位和绘图)、相对slam、束调整、非线性最小二乘优化等来接收图像数据、lidar数据、radar数据、imu数据、gps数据、车轮编码器数据等以准确确定自主车辆的位置、姿势和/或速度。在一些情况下,定位部件226可以向车辆202的各种部件提供数据以确定自主车辆的初始位置,以用于生成轨迹和/或用于生成地图数据,如本文所讨论的。在一些示例中,定位部件226可以向碰撞避免部件232提供车辆202相对于环境的位置和/或定向和/或与其相关联的传感器数据。
49.在一些情况下,感知部件228可以包括以硬件和/或软件实现的主要感知系统和/或预测系统。感知部件228可以检测车辆202周围的环境中的一个或多个物体(例如,识别物体存在)、对一个或多个物体进行分类(例如,确定与检测到的物体相关联的物体类型)、分段传感器数据和/或环境的其他表示(例如,将传感器数据的一部分和/或环境的表示识别为与检测到的物体和/或物体类型相关联),确定与物体相关联的特征(例如,识别与物体相关联的当前、预测和/或先前位置、航向、速度和/或加速度的径迹)等。由感知部件228确定的数据被称为感知数据。
50.规划部件230可以从定位部件226接收车辆202的位置和/或定向和/或从感知部件228接收感知数据并且可以至少部分地基于该数据中的任何数据来确定用于控制车辆202的操作的指令。在一些示例中,确定指令可以包括至少部分基于与指令相关联的系统相关联的格式来确定指令(例如,用于控制自主车辆运动的第一指令可以格式化为一个或多个系统控制器236和/或一个或多个驱动部件212可以解析/执行的第一消息和/或信号格式(例如,模拟、数字、气动、运动学),用于一个或多个发射器208的第二指令可以根据与其相关联的第二格式来格式化)。
51.碰撞避免部件232可以在车辆202和/或一个或多个计算装置214上操作。在一些示
例中,碰撞避免部件232可以在流水线中位于规划部件230的下游(接收输出)。碰撞避免部件232可以被配置为取决于本文讨论的确定将规划部件230的输出中的所有、部分或没有任何输出传送到一个或多个系统控制器236用于实施。在一些示例中,碰撞避免部件232可以包括反馈回路以用于向规划部件230提供输入,例如触发重新确定轨迹的标志或消息。
52.存储器220和/或224可以额外地或可替代地存储地图系统(例如,至少部分地基于传感器数据生成地图)、规划系统、乘车管理系统等。尽管定位部件226、感知部件228、规划部件230、一个或多个地图234和/或一个或多个系统控制器236被示为存储在存储器220中,但是这些部件中的任何一个都可以包括处理器可执行指令、一个或多个机器学习模型(例如,神经网络)和/或硬件并且这些部件中的任何部件或一部分可以存储在存储器224上或被配置为一个或多个计算装置214的一部分。
53.如本文所述,定位部件226、感知部件228、规划部件230和/或系统200的其他部件可以包括一个或多个ml模型。例如,定位部件226、感知部件228和/或规划部件230可以各自包括不同的ml模型流水线。在一些示例中,ml模型可以包括神经网络。示例性神经网络是一种受生物学启发的算法,其通过一系列连接层传送输入数据以产生输出。神经网络中的每个层也可以包括另一神经网络或者可以包括任意数量的层(无论是否卷积)。如在本公开的上下文中可以理解的,神经网络可以利用机器学习,机器学习可以指其中基于学习参数生成输出的这种广泛类别的算法。
54.尽管在神经网络的背景下进行了讨论,但可以使用与本公开一致的任何类型的机器学习。例如,机器学习算法可以包括但不限于回归算法(例如,普通最小二乘回归(olsr)、线性回归、逻辑回归、逐步回归、多元适应性回归样条(mars)、局部估计散点图平滑(loess)),基于实例的算法(例如,岭回归,最小绝对收缩和选择算子(lasso),弹性网,最小角度回归(lars)),决策树算法(例如,分类回归树(cart)、迭代二分法3(id3)、卡方自动交互检测(chaid)、决策桩、条件决策树)、贝叶斯算法(例如,朴素贝叶斯、高斯朴素贝叶斯、多项朴素贝叶斯、平均单项估计器(aode)、贝叶斯信念网络(bnn),贝叶斯网络)、聚类算法(例如,k均值,k中值,期望最大化(em),分层聚类)、关联规则学习算法(例如,感知算法,反向传播,hopefiled网络,径向基函数网络(rbfn))、深度学习算法(例如,深度玻尔兹曼机(dbm),深度信念网络(dbn),卷积神经网络(cnn),堆叠式自动编码器)、降维算法(例如,主成分分析(pca)、主成分回归(pcr)、偏最小二乘回归(plsr)、sammon映射、多维标度(mds)、投影追踪、线性判别分析(lda)、混合判别分析(mda)、二次判别分析(qda)、灵活判别分析(fda))、集成算法(例如,提升算法、自展输入引导聚合(bagging)、adaboost、堆叠泛化(blending)、梯度增强机(gbm)、梯度增强回归树(gbrt)、随机森林)、svm(支持向量机)、监督学习、无监督学习、半监督学习等。架构的其他示例包括神经网络,例如resnet-50、resnet-101、vgg、densenet、pointnet等。
55.存储器220可以额外地或可替代地存储一个或多个系统控制器236,其可以被配置为控制车辆202的转向、推进、制动、安全、发射器、通信和其他系统。这些一个或多个系统控制器236可以与一个或多个驱动部件212的对应系统和/或车辆202的其他部件通信和/或控制一个或多个驱动部件212的对应系统和/或车辆202的其他部件。例如,规划部件230可以至少部分地基于由感知部件228生成的感知数据来生成指令,碰撞避免部件232可以验证该指令和/或将该指令传输到一个或多个系统控制器236。一个或多个系统控制器236可以至
少部分地基于从规划部件230和/或碰撞避免部件232接收的指令来控制车辆202的操作。在一些示例中,碰撞避免部件232可以用与替换操纵(例如,安全停止操作、紧急制动、使车辆减速等)相关联的或有轨迹替换由规划部件230生成的指令。
56.应当注意,虽然图2被示为分布式系统,但在替代示例中,车辆202的部件可以与一个或多个计算装置214相关联和/或一个或多个计算装置214的部件可以与车辆202相关联。即,车辆202可以执行与一个或多个计算装置214相关联的功能中的一个或多个且反之亦然。
57.示例架构
58.图3示出了碰撞避免部件的至少一部分的示例架构300。在一些示例中,示例架构300可以包括一个或多个ml模型314(1)-(n),其中n是正整数。在一些示例中,一个或多个ml模型302(1)-(n)的数量可以对应于与接收到的传感器数据相关联的传感器类型的数量,并且一个或多个ml模型302(1)-(n)可以被训练为接收不同类型的传感器数据作为输入。例如,可以训练第一ml模型314(1)以基于可见光图像数据304生成输出,而可以训练第n ml模型302(n)以基于lidar数据306生成输出。例如,图像数据304可以包括从一个或多个相机接收的一个或多个图像。在一些示例中,图像数据304可以包括从具有不同视场的多个相机接收的图像,在至少一个示例中,这些图像可以一起囊括360度视场,尽管可以设想额外的或可替代的视场(例如,更小视场,不连续的总视场,连续的总视场)。注意,虽然图像数据304描绘了由单个传感器生成的图像,但是图像数据304可以额外地或可替代地包括由多个传感器从时间t=0到t=-m生成的图像数据。
59.可以训练额外或可替代的ml模型以至少部分基于与额外或可替代传感器类型相关联的传感器数据(例如radar回波(例如,可以在点云中识别)、热图像(例如,红外图像)、声纳数据等)生成输出。当然,在一些示例中,可以将一种或多种模态输入到单个ml模型中(例如,可以将lidar、radar或相机数据中的任何一种或多种数据以任何一种或多种格式(原始、自上而下等)输入到单个模型中)。在一些示例中,作为输入提供至一个或多个ml模型302(1)-(n)的传感器数据可以与最近时间(即,t=0)和/或一个或多个先前时间相关联。例如,传感器数据的范围可以从最近时间到过去的时间-m,如图3在308处所描绘的。在以上任何示例中,在这种系统中使用的传感器数据可以是与关于感知和预测操作(如本文所述)使用的传感器数据的相同传感器数据、子集或不同传感器数据。在额外或可替代示例中,尽管在图3中描绘并在本文中讨论了ml模型,但是应当理解,可以使用额外或可替代的算法。
60.在至少一个示例中,可以将图像数据作为输入提供至第一ml模型,并且可以将lidar数据和/或radar数据作为输入提供至第二ml模型,尽管在额外或可替代示例中,lidar数据可以被提供至第二ml模型,并且radar数据可以作为输入提供至第三ml模型。在一些示例中,lidar数据可以包括占用二进制指示(例如,lidar点存在于可以与环境的一部分相关联的lidar空间的离散部分处的指示)、lidar点密度(例如,与lidar空间相关联的网格单元中所有lidar点的对数归一化密度)、最大z值(例如,给定网格单元中lidar点的最大高度值)和/或切片最大值z值(例如,每个网格单元相比于n个线性切片(例如,0-0.5米,...,2-2.5米)的最大高度值,其中n是正整数,例如3、5、6、7)。在一些示例中,可以将lidar数据投影到可以以车辆为中心的自上而下参考系中。出于训练的目的,上述特征可以沿着通道维度堆叠。例如,通道维度可以具有宽度w和高度h,并且输入帧中可以包含p个
lidar特征,并且可以存在i个输入帧(其中w、h、p和i可以是正整数)。例如,从当前时间到前一时间-m可以存在多个帧,如上所述。
61.在一些示例中,radar数据可以作为输入提供给本文讨论的ml模型。radar数据可以包括二进制radar占用(例如,radar点存在于可以与环境的一部分相关联的radar空间的离散部分处的指示);radar回波的多普勒速度的x和/或y值,其可以对车辆的运动进行补偿;radar截面(rcs);信噪比(snr);和/或模糊多普勒间隔,尽管可以使用额外的或可替代的radar度量。在一些示例中,如果多个radar回波落入radar空间中的相同网格单元内,则可以从多个回波中选择最大rcs和/或snr值和/或可以选择速度和速度间隔对中的一个。在一些示例中,可以将radar点投影到可以以车辆为中心的自上而下参考系中。本文讨论的radar特征可以沿着通道维度堆叠,类似于上面讨论的lidar数据。
62.在一些示例中,一个或多个ml模型302(1)-(n)可以各自被训练以分别输出一组占用图310(1)-(n)。一组占用图310(n)可以包括一个或多个占用图。在一些示例中,该组占用图310(n)可以至少包括与接收到传感器数据的最近时间或最近时间之后的未来时间相关联的占用图,其中任一个占用图都可以称为当前占用图。在额外或可替代示例中,该组占用图310(n)可包括与未来时间q(正数)关联的占用图和/或从最近时间直到未来时间的一个或多个占用图。例如,由ml模型生成的占用图可以包括与当前(最近或刚刚之后)时间直到时间q相关联以一定间隔采取的占用图
‑‑
例如,从t=0秒至t=2秒以500毫秒为间隔的五个占用图。在一些示例中,可以训练一个或多个ml模型302(1)-(n)以分别输出与相同时间相关联的相同数量的占用图。
63.占用图可以是指示环境的一部分是被占用或未被占用、被占用部分是静态还是动态的和/或置信度分数(例如,该部分被占用/未被占用的可能性/后验概率)的数据结构。在至少一个示例中,占用图可以包括置信度分数字段,尽管图3将占用图描绘为二进制地指示环境的被占用部分为黑色而环境的未被占用部分为白色。例如,占用图的不同像素可以与环境的不同部分相关联,并且每个像素可以指示置信度分数,该置信度分数指示环境的相应部分被占用/未被占用的可能性。
64.在一些示例中,数据结构的离散部分可以与环境的一部分相关联。离散部分可以是例如像素、存储器中的位置等。由ml模型生成的占用图和/或由不同模型生成的占用图可以包括相同参考系,使得两个不同占用图的相同离散部分(例如,相同像素位置、相同相应存储器位置)可以对应于环境的相同部分。在某些示例中,可以学习此占用图对齐
‑‑
传感器数据不需要预先对齐,尽管在某些情况下可以需要预先对齐。举个例子,占用图可以都与环境中以自主车辆为中心的同一30米乘30米区域相关联。在额外或可替代示例中,占用图可以在它们已经由一个或多个ml模型302(1)-(n)生成之后对齐作为后处理步骤。
65.在一些示例中,由不同ml模型生成的该组占用图310可以由聚合部件312聚合成单个数据结构,该数据结构可以包括一组占用图314。聚合部件312可以至少部分地基于与同一时间的相关联的占用图从不同组占用图314确定环境的一部分是否被占用或未被占用和/或动态或静态(在特定时间)的最终估计。例如,与t=0相关联的占用图可以被聚合成单个占用图,与t=0.5相关联的占用图可以聚合成单个占用图等,直到t=q。
66.在一些示例中,该组占用图314可以包括环境的一部分被占用或未被占用的二进制指示。在另一示例中,该组占用图314可以额外地或可替代地包括置信度分数(例如,概率
或可能性)。聚合部件312可以根据本文讨论的任何技术至少部分地基于与同一时间相关联的占用图之间的投票和/或平均技术来聚合一组或多组占用图310(1)-(n)。
67.在至少一个示例中,聚合与同一时间步长相关联的占用图可以包括将聚合函数跨模态维度(例如,跨不同ml模型(1)-(n)的输出)应用于softmax值。聚合函数的功能可以包括平均、优先级池化等。优先级池化可以包括设置与不同物体类型的占用相关联的优先级。例如,与行人物体分类相关联的占用部分可以具有最高优先级,骑车者和/或驾车者可以具有次高优先级,其后是车辆可以具有更低优先级,而背景/地面可以具有最低优先级。如果两个不同ml模型的输出在像素分类上不一致(例如,一个ml模型将像素分类为被行人占用,而另一个ml模型将像素分类为地面),则该技术可以包括挑选与较高优先级相关联的输出,在给定示例中,由于行人物体分类具有比地面更高的优先级,因此这将导致将像素与行人相关联。可以通过确定与该物体类别的softmax值的更大幅值相关联的像素来解决平局问题。
68.在一些示例中,可以将阈值应用于该组占用图314(例如在聚合之后)或应用于一组或多组占用图310(1)-(n)(例如在聚合之前)。例如,将阈值应用于占用图可以包括至少部分地基于确定与占用图部分相关联的置信度分数达到或超过置信度阈值而确定将占用图的一部分与环境中与该部分相关联的部分被占用的指示相关联。相反,占用图的该部分可以至少部分地基于确定置信度分数小于置信度阈值而与环境中的部分未被占用的指示相关联。
69.在聚合之前将阈值应用到一组或多组占用图310(1)-(n)的示例中,由聚合产生的该组占用图314可以包括环境中的相应部分被占用或未被占用的二进制指示。在一些示例中,聚合的置信度分数可以另外与二进制指示相关联。在一些情况下,一个或多个ml模型302(1)-(n)中的不同模型可以至少部分地基于与不同置信度阈值相关联的不同传感器类型而与不同置信度阈值相关联。
70.在聚合之前不应用阈值的另一个示例中,由聚合产生的该组占用图314可以包括置信度分数字段并且将阈值应用于置信度分数可以导致对环境的占用和未占用部分的二进制指示。在一些示例中,应用阈值可以是聚合的一部分(例如,其可以是投票和/或平均技术的一部分)。
71.在一些示例中,可以至少部分地基于目标假阳性率和/或目标假阴性率来设置置信度分数阈值。可以至少部分地基于在测试传感器数据上运行一个或多个ml模型302(1)-(n)来设置置信度分数阈值。
72.示例过程
73.图4示出了用于验证由自主车辆的规划部件输出的轨迹的示例过程400的图示流程图。在一些示例中,示例过程400可以在自主车辆的操作期间由至少碰撞避免部件执行。
74.操作402-406可以由不同的处理流水线执行。例如,可以存在n个处理流水线,其中n是正整数,其可以对应于碰撞避免系统使用的传感器数据类型的数量。各个处理流水线可以包括用于确定如本文所讨论的一组占用图的ml模型和/或一个或多个其他算法。ml模型可以独立于一个或多个其他流水线的一个或多个ml模型进行训练。由于操作402-406可以由至少单个流水线执行,因此为了清楚起见,操作402-406的附图标记省略了出现在附图中的括号数字。
75.在操作402,示例过程400可以包括根据本文讨论的任何技术接收与传感器类型相关联的传感器数据。例如,传感器数据可以包括lidar数据、radar数据、红外图像数据、视觉图像数据、声纳数据等。在一些示例中,不同流水线可以接收不同类型的传感器数据。第一流水线可以接收lidar数据,第n流水线可以接收radar数据,等等。可以理解,在额外或可替代示例中,可以训练ml模型以接收单个数据类型或多个数据类型。
76.在操作404,示例过程400可以包括根据本文讨论的任何技术将传感器数据输入到ml模型中。在一些示例中,操作404可以额外地或可替代地包括预处理传感器数据以去除碰撞避免系统所监测的区域之外的传感器数据,将传感器数据投影到与不同类型的传感器数据相同参考系中、归一化传感器数据的密度、去除高于阈值高度的传感器数据等。
77.在操作406,示例过程400可以包括根据本文讨论的任何技术接收作为来自ml模型的输出的至少一个预测占用图。预测占用图可以包括指示环境的一部分在未来时间被/未被占用的可能性的部分。在一些示例中,操作406可以额外地或可替代地包括接收一个或多个额外占用图。例如,额外占用图可以从未来时间到接收到传感器数据的最近时间以一定间隔(例如,以从2秒到0秒以一定间隔)与时间相关联。额外占用图可以包括当前地图,该当前地图可以与接收到传感器数据的最近时间或其后的时间(例如,其后的250毫秒、其后的500毫秒)相关联。
78.图5a描绘了示例占用图500-504,其中的每个都可以与相同未来时间q相关联并且可以已经从不同流水线被接收。例如,占用图500可以已经从第一流水线被接收,占用图502可能已经从第二流水线被接收,并且占用图504可能已经从第n流水线被接收。占用图506-510是根据不同聚合技术和/或阈值聚合的占用图的示例。占用图500-510各自包括描绘为正方形的多个部分并且每个部分与车辆周围的环境的相应部分相关联。例如,每个占用图500-510包括部分512和部分514。注意,为简单起见,尽管在实践中这些部分可以是不同存储器位置或像素,但由于其位于占用图内的相同相对位置或对应于环境的相同部分,因此仍将其称为相同部分。
79.图5a将置信度分数描绘为不同灰色阴影,其中白色表示置信度分数低于0.39,浅灰色表示置信度分数在0.4和0.59之间,中等灰色表示置信度分数在0.6和0.79之间,深灰色表示置信度分数在0.8到1.0之间。可以理解,这些分数仅是为了示例而给出的,并且置信度分数的范围也仅用于说明的目的-额外或可替代示例可以包括不同类型的分数(例如,百分比、比率)和/或不同范围。换言之,白色指示环境中与其相关联的部分未被占用的高可能性,而深灰色表示环境中与其关联的部分被占用的高可能性。
80.在操作408,示例过程400可以包括根据本文讨论的任何技术将占用图聚合至数据结构中。在一些示例中,聚合可以包括将由不同流水线生成并且与相同时间相关联的占用图聚合成单个占用图。这可以在与时间相关联的不同占用图时每次重复。例如,操作408可以包括将由第一ml模型输出并与第一时间相关联的第一占用图和由第二ml模型输出并与第一时间相关联的第二占用图聚合成第一聚合占用图,并且对于占用图由不同的流水线确定所用的后续时间步度而言依此类推。最终,聚合将来自不同流水线并与同一时间相关联的占用图组合成单个占用图。数据结构可以包括这些聚合的不同时间步度处的占用图。
81.在一些示例中,操作408可以包括整体投票技术(例如主要投票、多数投票、加权投票(例如,在某些流水线在功能上被赋予更多投票的情况下))和/或平均技术(例如简单平
均,加权平均等)。换言之,第一占用图可以指示环境的一部分被占用的可能性为0.9,而第二占用图可以指示该部分被占用的可能性为0.8。该技术可以包括使用投票技术中的可能性来确定是否指示该部分被占用或未被占用和/或对可能性进行平均以将平均可能性与指示该部分被占用或未被占用相关联。
82.在操作410,示例过程400可以包括根据本文讨论的任何技术将阈值应用于数据结构以确定部分是被占用还是未被占用的二进制指示。阈值可以是阈值置信度分数。在聚合之前将阈值应用于占用图的示例中,每个流水线的阈值可以不同。在一些示例中,应用阈值可以包括指示占用图中指示置信度分数低于阈值的任何部分未被占用并且任何达到或超过阈值置信度分数的任何部分被占用或取决于分数的含义(例如,其中0表示环境部分被占用)而反之亦然。在另外的或可替代的示例中,不同的阈值可以与不同的流水线相关联
‑‑
达到或超过0.8的分数可以指示第一流水线的占用,达到或超过0.7的分数可以指示第二流水线的占用等。
83.在一些示例中,操作410可以是操作408的一部分。例如,在操作408包括一致投票技术并且阈值为0.75的示例中,操作410可以包括基于第一占用图和第二占用图都指示达到或超过0.75的可能性来指示上述示例中的部分被占用。
84.可以至少部分地基于目标假阴性率和/或目标假阳性率来设置阈值和/或选择投票技术。例如,一致投票技术可能导致更低假阴性率和更高假阳性率,而多数投票技术可能导致更高假阴性率和更低假阳性率。类似地,更高阈值可能导致更低假阴性率和更高假阳性率,而对于更低阈值则反之亦然。在一些示例中,设置阈值可以包括至少部分基于训练数据集来训练ml模型,该训练数据集可以包括从车辆的实时操作记录的传感器数据和/或模拟传感器数据、由先前训练的ml模型生成的从上而下表示、航拍镜头和/或由人类和/或其他ml模型生成的标签;和/或使用测试数据以不同的阈值操作ml模型,该测试数据可能包括额外传感器数据。假阳性率和/或假阴性率可以针对测试例如通过人工标记和/或与不同阈值相关联的另一个验证过程(例如,与真实数据的差值)来确定。可以选择与目标假阳性率和/或目标假阴性率相关联的阈值。
85.图5b示出了示例占用图506,其可以通过设置阈值和/或选择投票技术以获得保守(低)假阴性率而产生,这可能导致更高的假阳性率。结果,部分512和部分514都可以指示环境中的相应部分被占用。部分512示出了该指示是多么保守,由于只有占用图502的一部分512做出指示表明可能有物体位于环境中与部分512相关联的部分处,但即使这样,置信度也很低,如浅灰色所示。在一些示例中,碰撞避免系统可以被设计成最大化安全性并且可以使用阈值和/或投票技术来聚合占用图以实现假阴性保守的占用图。
86.图5c示出了示例占用图508,其可以通过设置阈值和/或选择投票技术以获得假阴性率和假阳性率之间的平衡而产生。这可以通过降低阈值、选择更不严格的投票技术和/或对由更准确ml模型输出的一些占用图进行更重的加权来实现。注意,部分512现在指示环境中与其相关联的相应部分未被占用而部分514指示环境中的相应部分被占用(例如,由于占用图502和占用图504都指示部分514被占用)。设置阈值和/或选择假阴性率以获得平衡占用图可以平衡安全利益与防止车辆由于假阳性而硬制动。
87.图5d示出了示例占用图510,其可以通过设置阈值和/或选择投票技术以获得保守(低)假阳性率而产生。这可以通过进一步降低阈值、选择更不严格的投票技术和/或对由更
准确ml模型输出的一些占用图进行更重的加权来实现。注意,增加的阈值置信度可以将占用图502和/或占用图504的部分514排除指示占用。占用图510的部分514可以相应地指示环境中与其相关联的部分未被占用。
88.在操作412,示例过程400可以包括根据本文讨论的任何技术至少部分地基于数据结构来控制自主车辆。数据结构可以包括本文讨论的聚合占用图(以其相应时间步度中的每个)。操作412可以包括操作414、416、418和/或420。
89.在操作414,示例过程400可以包括根据本文讨论的任何技术接收轨迹。例如,可以从自主车辆的规划部件接收轨迹。轨迹可以指示当前和/或目标位置、速度、加速度、航向、转向角和/或转向速率。
90.在操作416,示例过程400可以包括根据本文讨论的任何技术确定轨迹是否在数据结构的占用部分的阈值距离内。阈值距离可以是至少部分基于当前和/或目标速度的安全缓冲距离。操作416可以包括确定轨迹是否与小于由构成数据结构的任何聚合占用图所指示的占用部分的阈值距离的位置相关联。换言之,操作416可以包括确定轨迹是否将把自主车辆置于环境的一部分的阈值距离内,该部分被与其相关联的相应占用图预测为在任何相应时间处被占用。如果在操作416,碰撞避免系统确定轨迹不与距占用部分小于阈值距离的位置相关联(即,该位置处于距任何占用部分均达到或超过阈值距离的距离处),示例过程400可以继续到操作418;否则,示例过程400可以继续到操作420。
91.在额外或可替代示例中,操作416可以包括对与数据结构中与轨迹相关联的相应部分相关联的概率求和和/或确定求和概率是否达到或超过阈值分数。阈值分数可以至少部分地基于与轨迹相关联的速度和/或长度(例如,随着轨迹速度和/或长度增加,阈值可以增加)。操作416可以包括确定数据结构的部分中与轨迹相交和/或为轨迹的阈值距离的子集。阈值距离可以至少部分地基于车辆的当前速度和/或与轨迹相关联的速度。对概率求和可以包括对与数据结构的部分中的子集相关联的概率求和。
92.在操作418,示例过程400可以包括根据本文讨论的任何技术验证和/或传输轨迹。例如,验证和/或传输轨迹可以包括使自主车辆执行轨迹(例如,通过将轨迹传输到一个或多个系统控制器)。
93.在操作420,示例过程400可以包括根据本文讨论的任何技术启动或有轨迹和/或重新确定轨迹。例如,操作420可以包括使车辆执行或有轨迹,这可以包括向系统控制器传输指令以使车辆减速、执行安全停止操纵、硬制动等。在一些示例中,规划部件可以确定或有轨迹并将该或有轨迹与该轨迹一起和/或根据碰撞避免部件的请求传送到碰撞避免部件。在额外或可替代示例中,操作420可以包括向规划部件发送请求以确定新轨迹。
94.示例架构和/或训练
95.在一些示例中,一个或多个ml模型302(1)-(n)可以包括编码器-解码器网络,尽管其他架构也是可以设想的。在使用具有卷积层的编码器-解码器网络的示例中,一个或多个编码器层可以使用池化大小为(2、2)的平均池化并且解码器可以包括双线性上采样。在解码器之后,该架构可以包括生成logits的单个线性卷积层,并且最终层可以应用softmax来产生与不同物体分类(例如,行人、骑车者、驾车者、车辆、其他被标记为地面)相关联的最终输出概率。在一些示例中,一个或多个ml模型301(1)-(n)中的一些的架构可以基于由ml模型摄取的传感器数据而变化。例如,图6a描绘了被训练为至少部分基于作为输入的lidar数
据和/或radar数据来确定一个或多个占用图的ml架构的示例,并且图6b描绘了被训练为至少部分地基于图像数据来确定一个或多个占用图的ml架构的示例。
96.例如,图6a描绘了被训练为至少部分地基于lidar数据和/或radar数据来确定占用图的ml模型600可以包括编码器,该编码器包括一组五个框,该组五个框由一对卷积层和其后跟随平均池化层的批量归一化构成。在一些示例中,卷积层可以包括relu激活,但也可以考虑其他激活(例如,sigmoid、双曲正切、leaky relu、参数relu、softmax、swish)。解码器可以包括五个框,其由三个卷积层和批量归一化构成。网络可以额外地或替代地包括从编码器的第四框到解码器的第二框的跳过连接602。
97.继续在一个或多个ml模型302(1)-(n)的架构中的额外或替代变型示例。图6b描绘了被训练为至少部分地基于图像数据来确定占用图的ml模型604可以包括构建在resnet(或其他视觉)主干顶部的编码器-解码器网络。例如,resnet框可以包括三个层,尽管可以使用额外的或可替代的resnet或其他视觉主干部件。在一些示例中,编码器和解码器可以是位于resnet框顶部的四个框,并且在至少一些示例中,架构604可以包括在编码器和解码器之间的正交特征变换层。即使输出是自上而下视图,图像也是透视图。正交特征变换层可以从像素空间转换为自上向下空间。在一些示例中,正交特征变换层可以包括具有relu激活的一系列无偏全连接层,但也可以考虑其他激活(例如,sigmoid、双曲正切、leaky relu、参数relu、softmax、swish)。在图像数据304包括来自不同相机的图像的示例中,架构604可以被构造为通过共享编码器从每个相机视图接收图像,并且该架构可以被训练为学习每个视图的单独正交变换,将投影特征加在一起,并通过单个解码器传递结果。
98.训练ml模型可以包括各自独立训练与不同传感器模态相关联的每个ml模型。这可以包括使用adam优化器。在一些示例中,用于训练ml模型的损失函数可以包括所有输出帧的交叉熵之和,其中每个图像的权重相等。另外或可替代地,可以针对与行人和/或自行车物体分类相关联的损失来提高损失以说明传感器数据中这些分类的出现频率低(例如,与地面和车辆相比)。这可以包括将与那些物体分类相关的损失乘以因子(例如,10,取决于分类是否已经平衡的任何其他数字)。在至少一个示例中,损失∈可以根据以下等式计算:
[0099][0100]
其中f是未来帧数量,g是指示物体分类(例如,地面、行人、车辆、骑车者等)占据环境的相应部分的最终占用图中的一组单元,kc是对分类不平衡的因子(如果正在使用因子),并且和是给定帧f、物体分类c和网格单元g的地面事实和预测值。
[0101]
在一些示例中,最终占用图可以包括占用占用图的相应网格单元的物体分类的指示。在额外或可替代示例中,除了或替代网格单元指示,可以训练一个或多个ml模型以输出与检测到的物体相关联的实例分割和/或感兴趣区域(roi)。例如,roi可以包括边界矩形或任何其他形状以描绘环境中由物体占据的一部分。
[0102]
在额外或可替代示例中,可以将不同传感器类型的传感器数据融合到单个输入中并作为输入提供给一个或多个ml模型。在这样的示例中,可以一起训练一个或多个ml模型。
[0103]
这些架构和/或训练和/或聚合方法可以产生能够至少部分地基于传感器数据(例如,在一个示例中的图像数据、lidar数据和/或radar数据)来确定语义分割的ml模型流水线。ml模型流水线最终可以横跨所有传感器类型生成对环境的通用表示并可以简化自主车
辆感知部件的复杂性。这为根据不同的性能要求选择融合策略提供了灵活性。此外,通过使用相同帧,语义分割任务可以从当前帧进一步扩展到未来帧,从而允许对环境中的物体运动进行短期预测。该框架的多模态、多帧性质为下游决策(例如,通过规划部件)提供了灵活性和稳健性。
[0104]
示例条款
[0105]
a.一种系统,包括:两个或多个传感器;一个或多个处理器;以及存储器,其存储处理器可执行指令,这些指令当由一个或多个处理器执行时使系统执行以下操作,包括:接收与两个或更多个传感器中的至少一个相关联的第一传感器类型相关联的第一传感器数据;接收与两个或更多个传感器中的至少一个相关联的第二传感器类型相关联的第二传感器数据;至少部分地基于第一传感器数据确定第一当前占用图和第一预测占用图,第一预测占用图包括指示其相应部分被占用的可能性的离散化网格;至少部分地基于第二传感器数据确定第二当前占用图和第二预测占用图,其中:第一当前占用图和第二当前占用图指示环境中的一部分在当前时间被占用的第一可能性和第二可能性;以及第一预测占用图和第二预测占用图指示该环境中的该部分在未来时间被占用的第三可能性和第四可能性;将第一当前占用图和第二当前占用图组合至指示环境中的该部分在当前时间被占用还是未被占用的数据结构中;将第一预测占用图和第二预测占用图组合至指示该环境的该部分在未来时间被占用还是未被占用的数据结构中;以及至少部分地基于数据结构控制自主车辆。
[0106]
b.根据段落a所述的系统,其中,操作还包括:至少部分地基于数据结构确定至少与最近物体相关联的第一位置或第一速度中的至少一个;以及接收轨迹,其中控制自主车辆还包括至少部分地基于第一位置或第一速度中的至少一个以及与自主车辆相关联的第二位置或第二速度中的至少一个来确定:控制自主车辆以执行轨迹,或控制自主车辆执行或有轨迹。
[0107]
c.根据段落b所述的系统,其中,控制自主车辆以执行或有轨迹至少部分地基于以下中的至少一个:确定轨迹位于数据结构中被指示为被占用的至少一个部分的阈值距离内,或者至少部分地基于轨迹确定数据结构的部分的概率总和。
[0108]
d.根据段落a至c中任一项所述的系统,其中:确定第一占用图包括将第一传感器数据作为输入提供给第一机器学习(ml)模型并接收作为第一ml模型的输出的第一占用图;以及确定第二占用图包括将第二传感器数据作为输入提供给第二机器学习(ml)模型并且接收作为来自第二ml模型的输出的第二占用图。
[0109]
e.根据段落a至d中任一项所述的系统,其中:第一当前占用图包括与环境的部分相关联的第一置信度分数,该第一置信度分数指示该部分被占用的第一可能性;第二当前占用图包括与环境的该部分环境相关联的第二置信度分数,该第二置信度分数指示该部分被占用的第二可能性;以及至少部分地基于第一置信度分数、第二置信度分数、第一传感器类型或第二传感器类型中的至少一个将第一当前占用图和第二当前占用图组合至数据结构中。
[0110]
f.根据段落a至e中任一项所述的系统,其中,操作还包括:至少部分地基于确定第一置信度分数达到或超过阈值置信度,将第一当前占用图的第一部分关联为指示该部分被占用;以及其中,将第一当前占用图和第二当前占用图组合至数据结构中还包括:至少部分地基于第一部分和与第二当前占用图相关联的指示该部分被占用或未被占用的第二部分
中的至少一个进行投票。
[0111]
g.一种方法,包括:接收与第一传感器类型相关联的第一传感器数据;接收与第二传感器类型相关联的第二传感器数据;至少部分地基于第一传感器数据确定第一占用图,其中第一占用图指示自主车辆周围的环境中的一部分在未来时间被占用还是未被占用,至少部分地基于第二传感器数据确定第二占用图,其中第二占用图指示该部分在未来时间被占用还是未被占用;至少部分地基于第一占用图和第二占用图将第一占用图和第二占用图组合至数据结构中,其中该数据结构指示该环境的该环境在未来时间被占用还是未被占用;以及至少部分地基于数据结构控制自主车辆。
[0112]
h.根据段落g所述的方法,还包括:至少部分地基于数据结构确定至少与最近物体相关联的第一位置或第一速度中的至少一个;以及接收轨迹,其中控制自主车辆还包括至少部分地基于第一位置或第一速度中的至少一个以及与自主车辆相关联的第二位置或第二速度中的至少一个来确定:控制自主车辆执行轨迹,或控制自主车辆执行或有轨迹。
[0113]
i.根据段落h所述的方法,其中,控制自主车辆执行或有轨迹至少部分地基于以下中的一项或多项:确定轨迹处于数据结构中被指示为被占用的至少一个部分的阈值距离内,或者至少部分地基于轨迹确定与数据结构相关联的概率总和。
[0114]
j.根据段落g至i中任一项所述的方法,其中:确定第一占用图包括将第一传感器数据作为输入提供至第一机器学习(ml)模型并接收作为第一ml模型的输出的第一占用图;以及确定第二占用图包括将第二传感器数据作为输入提供给第二机器学习(ml)模型并且接收作为第二ml模型的输出的第二占用图。
[0115]
k.根据段落g至j中任一项所述的方法,其中:第一当前占用图包括与环境的该部分相关联的第一置信度分数,该第一置信度分数指示该部分被占用的第一可能性;第二当前占用图包括与该环境的该部分相关联的第二置信度分数,该第二置信度分数指示该部分被占用的第二可能性;以及将第一当前占用图和第二当前占用图聚合至数据结构中包括:至少部分基于确定第一置信度分数达到或超过阈值置信度,将第一当前占用图的第一部分关联为指示该部分被占用。
[0116]
l.根据段落g至k中任一项所述的方法,其中,将第一当前占用图和第二当前占用图聚合至数据结构中还包括:至少部分地基于第一部分和与第二当前占用图相关联的指示该部分被占用或未被占用的第二部分、第一传感器类型、第二传感器类型、第一置信度分数或第二置信度分数中的至少一个进行投票以将数据结构的第二部分关联为指示该部分被占用。
[0117]
m.根据段落g至l中任一项所述的方法,其中:第一传感器数据和第二传感器数据包括当前传感器数据和先前传感器数据;并且第一占用图至少包括与当前时间相关联的当前占用图和与未来时间相关联的预测占用图。
[0118]
n.一种存储处理器可执行指令的非暂时性计算机可读介质,这些指令在由一个或多个处理器执行时使该一个或多个处理器执行以下操作,包括:从与车辆相关联的一个或多个第一传感器接收第一传感器数据,该一个或多个第一传感器是第一传感器类型;从与车辆相关联的一个或多个第二传感器接收第二传感器数据,该一个或多个第二传感器是第二传感器类型;至少部分地基于第一传感器数据,确定指示车辆周围的环境的一部分在未来时间被占用还是未被占用的第一占用图;至少部分地基于第二传感器数据,确定指示车
辆周围的环境的该部分在未来时间被占用还是未被占用的第二占用图;至少部分地基于第一占用图和第二占用图将第一占用图和第二占用图聚合至数据结构中,其中该数据结构指示环境的该部分在未来时间被占用还是未被占用;以及至少部分地基于数据结构控制自主车辆。
[0119]
o.根据段落n所述的非暂时性计算机可读介质,其中,操作还包括:至少部分地基于数据结构,确定至少与最近物体相关联的第一位置或第一速度中的至少一个;以及接收轨迹,其中控制自主车辆还包括至少部分地基于第一位置或第一速度中的至少一个以及与自主车辆相关联的第二位置或第二速度中的至少一个来确定:控制自主车辆执行轨迹,或控制自主车辆执行或有轨迹。
[0120]
p.根据段落o所述的非暂时性计算机可读介质,其中,控制自主车辆执行或有轨迹至少部分地基于以下一个或多个:确定轨迹位于数据结构中指示为被占用的至少一部分的阈值距离内,或者至少部分地基于轨迹确定与数据结构相关联的概率总和。
[0121]
q.根据段落p所述的非暂时性计算机可读介质,其中:确定第一占用图包括将第一传感器数据作为输入提供给第一机器学习(ml)模型并接收作为来自第一ml模型的输出的第一占用图;以及确定第二占用图包括将第二传感器数据作为输入提供给第二机器学习(ml)模型并且接收作为来自第二ml模型的输出的第二占用图。
[0122]
r.根据段落n至q中任一项所述的非暂时性计算机可读介质,其中:第一当前占用图包括与该环境的部分相关联的第一置信度分数,该第一置信度分数指示该部分被占用的第一可能性;第二当前占用图包括与环境的该部分相关联的第二置信度分数,该第二置信度分数指示该部分被占用的第二可能性;以及将第一当前占用图和第二当前占用图聚合至数据结构中包括:至少部分基于确定第一置信度分数达到或超过阈值置信度,将第一当前占用图的第一部分关联为指示该部分被占用。
[0123]
s.根据段落n至r中任一项所述的非暂时性计算机可读介质,其中,将第一占用图和第二占用图聚合至数据结构中还包括:至少部分地基于第一部分和与第二占用图相关联的指示该部分被占用或未被占用的第二部分、第一传感器类型、第二传感器类型、第一置信度分数或第二置信度分数中的至少一个进行投票以将数据结构的第二部分关联为指示该部分被占用。
[0124]
t.根据段落n至s中任一项所述的非暂时性计算机可读介质,其中:第一传感器数据和第二传感器数据包括当前传感器数据和先前传感器数据;以及第一占用图至少包括与当前时间相关联的当前占用图和与未来时间相关联的预测占用图。
[0125]
虽然上述示例条款是针对一种特定实现方式进行描述的,但应理解,在本文的上下文中,示例条款的内容还可以通过方法、设备、系统、计算机可读介质来实现和/或其他实现。此外,任何示例a-t可以单独实施或与任何其他一个或多个示例a-t组合实施。
[0126]
结论
[0127]
尽管已经以特定于结构特征和/或方法动作的语言描述了主题,但是应当理解,在所附权利要求中定义的主题不一定限于所描述的特定特征或动作。相反,特定特征和动作被公开为实施权利要求的示例形式。
[0128]
本文描述的部件表示可以存储在任何类型的计算机可读介质中并且可以在软件和/或硬件中实现的指令。上述所有方法和过程可以体现在由一台或多台计算机或处理器、
硬件或其某种组合执行的软件代码部件和/或计算机可执行指令中,并且完全自动化。一些或所有方法可以替代地体现在专用计算机硬件中。
[0129]
在此讨论的至少一些过程被图示为逻辑流程图,其每个操作表示可以在硬件、软件或其组合中实现的操作序列。在软件的背景下,操作表示存储在一个或多个非暂时性计算机可读存储介质上的计算机可执行指令,当由一个或多个处理器执行时,使计算机或自主车辆执行所列举的操作。通常,计算机可执行指令包括执行特定功能或实现特定抽象数据类型的例程、程序、物体、部件、数据结构等。描述操作的顺序不旨在被解释为限制,并且任何数量的描述的操作可以以任何顺序和/或并行组合以实现过程。
[0130]
除非另有明确说明,诸如“可以”、“可能”、“能够”或“能”等条件性语言在上下文中被理解为表示某些示例包括,而其他示例不包括某些特征、元件和/或步骤。因此,这种有条件的语言通常不旨在暗示某些特征、元件和/或步骤以任何方式对于一个或多个示例是必需的,或者一个或多个示例必须包括用于在有或没有用户输入或提示的情况下做出决定的逻辑,在任何特定示例中是否包括或将要执行某些特征、元件和/或步骤。
[0131]
除非另有明确说明,否则诸如短语“x、y或z中的至少一个”之类的连词语言应理解为表示项目、术语等可以是x、y或z,或任何组合,其中,包括每个元件的倍数。除非明确描述为单数,否则“一”表示单数和复数。
[0132]
在此描述和/或在附图中描绘的流程图中的任何例程描述、元素或框应被理解为潜在地表示模块、段或代码部分,其包括用于实现特定逻辑功能的一个或多个计算机可执行指令或例程中的元素。替代实现包括在本文描述的示例的范围内,其中元素或功能可以被删除,或与所示出或讨论的内容无序执行,包括基本上同步地、以相反的顺序、具有额外操作或省略操作,这取决于本领域技术人员将理解所涉及的功能。
[0133]
可以对上述示例进行许多变化和修改,其中的元素将被理解为在其他可接受的示例中。所有这样的修改和变化都旨在包括在本公开的范围内并受以下权利要求保护。
再多了解一些

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

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

相关文献