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

对象速度和/或偏航率检测和跟踪的制作方法

2022-09-11 00:40:25 来源:中国专利 TAG:

对象速度和/或偏航率检测和跟踪
1.相关申请
2.本pct申请要求于2020年5月5日提交的美国专利申请16/866,865的优先权,美国专利申请16/866,865是于2020年1月31日提交的美国专利申请16/779,576的部分接续案,其全部内容通过引用并入本技术。


背景技术:

3.自主车辆可以使用传感器来捕获关于自主车辆穿越的环境的数据。自主车辆使用该传感器数据来检测环境中的对象以避免碰撞。然而,由于自主车辆可能包括两种或更多种不同类型的传感器,并且传感器数据在格式和内容上可能因此有很大差异,因此由两种不同传感器类型生成的检测可能会有所不同。与两种不同传感器类型相关联确定的检测之间的微小差异可能会导致车辆创建的对象表示抖动(即“跳来跳去”)和/或闪烁(即出现和消失)。一些传感器类型,例如深度相机,也可能容易在深度测量中出现较大的错误变化,这可能会进一步使跟踪对象更加复杂。这可能会妨碍安全导航车辆和/或训练机器学习(ml)模型的效率。此外,用于减少差异和/或平滑对象表示或与其相关的数据的技术可能会消耗计算带宽和/或存储器。
附图说明
4.参考附图来描述具体实施方式。在图中,附图标记的最左侧数字识别附图标记首次出现的图。不同图中相同的附图标记表示相似或相同的项目。
5.图1示出了示例场景,其中配置有感知和跟踪组件的自主车辆可以在自主车辆周围的环境中跟踪对象的先前和当前位置、速度和/或航向,并至少部分地基于该跟踪来生成用于控制自主车辆的轨迹。
6.图2示出了包括感知组件和跟踪组件的示例系统的框图。
7.图3示出了包括用于实现本文所讨论的改进的对象跟踪技术的组件的感知架构的至少部分的框图。
8.图4示出了用于至少部分地基于感知管线对象环境表示/对象检测来确定估计的对象检测的示例过程的图示流程图,感知管线对象环境表示/对象检测可以至少部分地基于传感器数据生成。
9.图5示出了用于至少部分地基于由本文讨论的ml模型确定的估计的对象检测来跟踪环境中的对象的示例过程的图示流程图。
10.图6示出了用于生成估计的对象检测的ml模型的示例架构的框图。
11.图7示出了用于训练ml模型以确定与对象相关联的速度和/或偏航率和/或使用ml模型来确定推理时的速度和/或偏航率的示例过程的图示流程图。
具体实施方式
12.用于使用传感器数据跟踪对象的当前和/或先前位置、速度、加速度或航向的技术
可以包括确定是否将从最近接收的(例如,当前)传感器数据生成的当前对象检测与以前接收的传感器数据生成的先前对象检测相关联。换言之,跟踪可以识别在之前的传感器数据中检测到的对象与在当前传感器数据中检测到的对象相同。在一些示例中,跟踪可以附加地或替代地包括关于对象的各种当前和/或先前数据,这些数据可用于自主车辆的规划组件以预测对象的运动/行为并确定用于控制自主车辆的轨迹和/或路径。例如,跟踪可以附加地或替代地包括对象当前和/或先前被占用的环境区域的指示、与对象相关联的对象分类(例如,车辆、超大车辆、步行者、骑自行车的人)、与对象相关联的当前/或先前的航向、对象的当前和/或先前的速度和/或加速度、和/或对象的当前位置和/或速度,尽管任何其他参数都被考虑。
13.在一些示例中,一传感器类型的一个或多个传感器可以与管线(例如,一系列操作;步骤;网络或网络的层;机器学习模型;硬件,例如模数转换器、放大器、现场可编程门阵列(fpga)、专用集成电路(asic和/或类似物)等)相关联,用于确定关于对象的信息,该信息包含在与该传感器类型相关联的相关联的传感器数据中。可以从该类型的一个或多个传感器接收传感器数据,并且管线(在本文中可以称为感知管线)可以至少部分地基于传感器数据来生成环境的表示。为简单起见,管线的共同输出在本文中被称为环境表示。环境表示可以包括一个或多个对象检测并且可以包括一个或多个输出类型。例如,视觉管线302可以至少部分地基于视觉数据310(例如,包括一个或多个rgb图像、热图像的传感器数据)来输出环境表示308。
14.环境表示可以包括对象检测,该对象检测可以包括环境的部分被对象占用的指示和/或可能性、与检测到的对象相关联的感兴趣区域(roi)(例如,边界框、掩模、分割,或环境区域被对象占用的一些其他标识)、对象的对象分类、对象的航向、对象的速度和/或对象的加速度、对象的高度,和/或类似物。环境表示可以附加地或替代地包括传感器数据的体素化表示(这种数据的离散化三维表示)和/或自上而下分割(如在美国专利申请15/963,833中更详细地讨论的,其全部内容并入本文),和/或环境的自上而下表示。请注意,美国专利申请15/963,833可以修改为附加地或替代地包括本文讨论的回归,并且可以通过反向传播与这些附加或替代的回归相关联的损耗来修改。在一些示例中,本文讨论的感兴趣区域可以是三维roi和/或二维roi(例如,roi的自上而下/鸟瞰图)。在一些示例中,附加环境表示可以由与不同传感器类型相关联的感知管线生成。
15.在一些示例中,可以与环境中的同一对象相关联地生成多个对象检测。这些多个对象检测可能由不同的感知管线生成,不同的感知管线可能与不同的传感器类型相关联。例如,激光雷达感知管线可以接收激光雷达数据并确定与对象相关联的对象检测,混合激光雷达-视觉感知管线可以接收激光雷达和视觉数据并生成与同一对象相关联的不同对象检测,视觉感知管线可以从相机接收图像并生成与同一对象相关联的附加对象检测,等等。由于传感器和感知管线之间的差异,由不同管线生成的与同一对象相关联的对象检测可能彼此不同。例如,第一对象检测可以指示与对象相关联的roi,该对象具有与由与同一对象相关联的第二对象检测指示的roi不同的维度。在更极端的情况下,一个管线可能会生成与对象相关联的对象检测,而另一管线可能根本不生成检测。例如,雷达或激光雷达管线可能会检测到对象,但该对象可能会被相机的视野遮挡。
16.在一些示例中,本文讨论的技术可以包括聚合与不同传感器类型相关联的环境表
示的至少部分,并将聚合的数据作为输入提供给经过训练以输出估计的对象检测的ml模型。在一些示例中,聚合的数据可以在多通道图像中被表示,其中不同通道可以与从中生成感知数据的不同传感器类型和/或不同类型的感知数据相关联。例如,聚合的数据可以包括激光雷达、视觉和/或雷达占用网格(例如,具有诸如像素的离散部分的网格,该网格根据与相应传感器数据类型相关联的感知管线指示环境中的对应位置是被占用还是未被占用);与激光雷达、视觉和/或雷达相关联地生成的roi的自上而下表示;与环境的部分相关联的对象分类;环境的部分被占用的概率;检测到的对象的偏航;和/或类似物。参见关于占用图的美国专利申请16/591,518,其全部内容通过引用并入本文。在一些示例中,占用网格可以延伸到最大高度,该最大高度可以对应于自主车辆加上缓冲器的高度。换言之,占用网格可以指示低于最大高度的环境的部分的占用。例如,由于交通信号灯或标志位于街道上方,占用网格不会指示环境的部分被占用,因为此类对象可能位于最大高度之上。
17.在一些示例中,聚合的数据可以附加地或替代地包括来自远程计算设备的数据和/或基于非感知的数据,例如地图数据(例如,道路数据、可驾驶表面位置、目的地)、天气数据、交通通知(例如,拥堵、碰撞、车道修改、施工、速度修改)、安全通知(例如,环境危险位置、灾难位置、路面状况、能见度状况)等。在一些示例中,远程计算设备可以是另一自主车辆、第三方服务、分布式计算设备、远程传感器等。
18.在一些示例中,从不同管线聚合的数据可以另外包括一个或多个先前时间的环境表示的至少部分。例如,与不同传感器类型相关联的感知管线可以被同步以生成相同频率的环境表示(例如,每100毫秒、每500毫秒、每秒)。在感知管线被同步以每500毫秒基本同时输出环境表示的示例中,聚合的数据可以包括上面讨论的0毫秒、-500毫秒、1秒等的数据(即,与最近接收的一组环境表示相对应的一组聚合的数据)。在至少一项示例中,聚合的数据可以包括多通道图像,该多通道图像包括时间步长0毫秒、-100毫秒、-200毫秒、-300毫秒和/或-400毫秒和/或-1秒、-2秒和/或-3秒的聚合数据,尽管可以使用任何合适的时间步长。例如,聚合的数据可以包括从不同管线接收到的针对当前和最后n个时间步长的对象检测,其中n是正整数(例如,1、2、3、4、5、10等)。
19.在一些示例中,除了聚合的数据之外,还可以提供一个或多个先前生成的跟踪作为ml模型的输入(例如,作为聚合的数据的通道)。例如,可以与每个时间步长或以间隔(例如,每隔一个时间步长)相关联地生成跟踪。先前生成的跟踪可以作为通道被包括在多通道图像中。在一些示例中,跟踪可以包括与对象相关联的roi的中心、范围和/或偏航和/或与同对象相关联地生成的其他以前的感兴趣区域相关联的识别符。
20.在一些示例中,可以训练ml模型以输出最终的环境表示,该最终的环境表示可以包括一个或多个估计的对象检测。如上所述,与对象相关联的对象检测可能在维度、位置、甚至不同管线之间的存在方面有所不同。最终环境表示可以包括每个对象的单个估计的对象检测,该估计的对象检测至少部分地基于从不同管线接收的对象检测(例如,作为聚合的数据的部分被接收作为对ml模型的输入)来确定。例如,由ml模型生成的估计的对象检测可以包括识别环境的部分被占用的roi(例如,与对象相关联的区域)、与未来时间相关联的预测roi、与roi相关联的速度、与roi相关联的对象分类(例如,车辆、行人、大型车辆、骑自行车的人)、roi的速度分类(例如,静止的或动态的)、与roi相关的航向(例如,偏航)、和/或航向仓(例如,以0度和180度为中心的两个仓;以0度、90度、180度和270度为中心的四个仓;该
输出还可包括距仓中心的距离),和/或与roi相关联的高度(例如,检测到的对象的高度)。在一些示例中,可以至少部分地基于置信层的输出来生成任何感兴趣区域,例如根据非最大抑制技术。例如,参见美国专利申请no.16/013,764和16/013,729,其全部内容并入本文。
21.在一些示例中,ml模型的输出可以包括其中每个像素存储上述信息的图像。例如,最终环境表示可以包括环境的自上而下表示,例如图像。该图像可以指示上述数据。图像的像素可以指示环境的部分被占用、占用该部分的对象的对象分类、对象的速度等。对象检测可以在最终环境中被指示为被指示为像素的区域(或最终环境的其他离散部分),该像素的区域被指示为被占用和/或与上述数据(例如,对象分类、对象速度、对象航向)相关联。
22.在一些示例中,该技术可以进一步包括确定是否将先前生成的跟踪与最终环境表示的估计的对象检测一个相关联和/或生成新跟踪。在一些示例中,该技术可以包括接收先前的跟踪并且将与先前的跟踪相关联的roi从与先前的跟踪相关联的先前时间帧投影到当前和/或未来时间帧。例如,这可以包括改变roi的位置和/或航向的表示。在附加或替代示例中,投影的roi可以包括由ml模型在先前时间步长输出的预测roi。该技术可以包括确定投影roi与由ml模型生成的任何估计的对象检测的关联度。例如,关联度可以包括确定重叠度(例如,联合交叉(iou))、munkres匹配分数、尺寸比较、特征比较(例如,与相同对象分类相关联的投影的roi是否作为估计的对象检测?与投影的roi相关联的速度与同估计的对象检测相关联地预测的速度之间是否存在很大差异)等。在一些示例中,确定关联度可以编码在评分函数中,该评分函数可以是机器学习的和/或确定性的。例如,iou可以被确定性地确定并连同相对于估计的对象检测roi的投影的roi的位置和尺寸的表示用作ml模型的输入,该ml模型确定关联度的分数。
23.如果关联度达到或超过阈值,则该技术可以包括将先前跟踪与估计的对象检测相关联。然而,如果关联度不满足阈值,则该技术可以包括使用任何其他投影的roi(例如,与估计的对象检测重叠或在阈值距离内的其他roi)测试估计的对象检测和/或如果没有投影的roi与估计的对象检测匹配,则生成与估计的对象检测相关联的新跟踪。在附加的或替代的示例中,先前的跟踪可以与估计的对象检测相关联,或者可以仅基于iou更简单地生成新的跟踪,尽管可以使用附加的或替代的数据来确定估计的对象检测何时与先前对象检测/跟踪相对应。
24.本文讨论的技术可以通过提高车辆的用于预测车辆周围对象的运动和/或行为和/或继续考虑可能暂时被遮挡的对象的能力来提高车辆的安全性。这些技术还可以增加感知系统的操作范围(例如,增加到距离车辆40米、60米或80米)。在至少一些示例中,这些技术可以进一步减少用于确定与对象相关联的跟踪的计算带宽,特别是在不同传感器模态生成不同尺寸的感兴趣区域的情况下,当与传感器模态相关联的深度估计改变时,当对象被过度分割和/或分割不足时。使用多个传感器模态来跟踪对象的其他技术可能需要将来自每个传感器模态的对象检测与先前的跟踪进行比较,而本技术包括将由ml模型确定的估计的对象检测与先前的跟踪进行比较。这些技术可以提高对象检测(例如,对象位置、分割)和/或跟踪的准确性。使用本文讨论的技术生成的轨迹抖动较少,因为底层对象检测更稳定。
25.示例场景
26.图1示出了包括车辆102的示例场景100。在一些情况下,车辆102可以是配置为根
据美国国家公路交通安全管理局发布的5级分类操作的自主车辆,该5级分类描述了能够在整个行程中执行所有安全关键功能的车辆,其中驾驶员(或乘员)不被期望在任何时候控制车辆。然而,在其他示例中,车辆102可以是具有任何其他级别或分类的完全或部分自主车辆。预期本文所讨论的技术可应用于机器人控制以外的领域,例如自主车辆。例如,本文讨论的技术可以应用于采矿、制造、增强现实等。此外,即使车辆102被描绘为陆地车辆,车辆102也可以是航天器、船只和/或类似物。在一些示例中,车辆102可以在模拟中被表示为模拟车辆。为简单起见,本文的讨论不区分模拟车辆和真实世界车辆。因此,对“车辆”的引用可以引用模拟和/或真实世界的车辆。
27.根据本文讨论的技术,车辆102可以从车辆102的传感器104接收传感器数据。例如,传感器104可以包括位置传感器(例如,全球定位系统(gps)传感器)、惯性传感器(例如,加速度传感器、陀螺仪传感器等)、磁场传感器(例如,指南针)、位置/速度/加速度传感器(例如,速度计、驱动系统传感器)、深度位置传感器(例如,激光雷达传感器、雷达传感器、声纳传感器、飞行时间(tof)相机、深度相机、超声波和/或声纳传感器、和/或其他深度感测传感器)、图像传感器(例如,相机)、听觉传感器(例如,麦克风)和/或环境传感器(例如,气压计、湿度计等)。
28.传感器104可以生成传感器数据,该传感器数据可以由与车辆102相关联的计算设备106接收。然而,在其他示例中,传感器104和/或计算设备106中的一些或全部可以与车辆102分离和/或远离车辆102,并且数据捕获、处理、命令和/或控制可以通过一个或多个远程计算设备经由有线和/或无线网络传送到车辆102/从车辆102传送。
29.计算设备106可以包括存储感知组件110、规划组件112、跟踪组件114和/或系统控制器116的存储器108。尽管为了说明性目的在图1中描绘,但应当理解,跟踪组件114可以驻留在与其他组件中的任何一个或多个不同的单独的计算设备中/上(或以其他方式)。一般来说,感知组件110可以确定车辆102周围的环境中有什么,并且规划组件112可以根据从感知组件110接收到的信息来确定如何操作车辆102。例如,规划组件112可以至少部分地基于感知数据和/或其他信息,例如,一张或多张地图、定位信息(例如,车辆102在与感知组件110检测到的地图和/或特征相关的环境中)等来确定轨迹118。轨迹118可包括用于控制器116的指令,用于致动车辆102的驱动组件以实现可导致车辆位置、车辆速度和/或车辆加速度的转向角和/或转向率。例如,轨迹118可以包括目标航向、目标转向角、目标转向率、目标位置、目标速度和/或目标加速度,以供控制器116跟踪。感知组件110、规划组件112和/或跟踪组件114可以包括一个或多个机器学习(ml)模型和/或其他计算机可执行指令。
30.在一些示例中,控制器116可以包括用于致动车辆102的驱动组件以足以跟踪轨迹118的软件和/或硬件。例如,控制器116可以包括一个或多个比例-积分-微分(pid)控制器。
31.在一些示例中,感知组件110可以从传感器104接收传感器数据并确定与车辆102附近的对象相关的数据(例如,与检测对象相关联的对象分类、实例分割、语义分割、二维和/或三维边界框、跟踪)、指定车辆目的地的路线数据、识别道路特征的全局地图数据(例如,可在用于定位自主车辆的不同传感器模态中检测到的特征)、识别在车辆附近检测到的特征的局部地图数据(例如,建筑物、树木、栅栏、消防栓、停车标志的位置和/或尺寸以及在各种传感器模态中可检测的任何其他特征)、跟踪数据(例如,环境表示、对象检测和/或此处讨论的跟踪)等。
32.在一些示例中,感知组件110可以包括硬件和/或软件的管线,其可以包括一个或多个gpu、ml模型、卡尔曼滤波器等。在一些示例中,感知组件110可以监控自主车辆周围尽可能多的环境,这可能受到传感器能力、对象和/或环境遮挡(例如,建筑物、海拔变化、其他对象前面的对象)的限制,和/或诸如雾、雪和/或类似的环境影响。例如,传感器数据可以包括激光雷达和/或雷达数据,感知组件110可以接收该激光雷达和/或雷达数据作为输入。感知组件110可以被配置为检测尽可能多的对象和关于环境的信息以避免未能考虑规划组件112在确定轨迹118时应该考虑的事件或对象行为。
33.由感知组件110确定的对象分类可以区分不同的对象类型,例如客车、行人、骑自行车的人、送货卡车、半卡车、交通标志等。跟踪可以包括历史的、当前的和/或预测的对象位置、速度、加速度和/或航向。由感知组件110产生的数据可以统称为感知数据。一旦感知组件110已经生成感知数据,感知组件110可以将感知数据提供给规划组件112。在一些示例中,感知数据可以包括传感器特定管线(例如,视觉、激光雷达、雷达)和/或混合传感器管线(例如,视觉-激光雷达,雷达-激光雷达)的输出。如本文所讨论的,感知数据可以附加地或替代地包括跟踪、估计的对象检测和/或最终环境表示。
34.规划组件112可以使用从感知组件110接收的感知数据来确定一个或多个轨迹,控制车辆102的运动以穿越路径或路线,和/或以其他方式控制车辆102的操作,尽管可以在各种其他组件中执行任何这样的操作(例如,定位可以由定位组件执行,其可以至少部分地基于感知数据)。例如,规划组件112可以确定从第一位置到第二位置的车辆102的路线;基本上同时并且至少部分地基于感知数据和/或模拟感知数据(其可以进一步包括关于在这样的数据中检测到的对象的预测)生成多个潜在轨迹,用于根据后退水平技术(例如,1微秒、半秒)来控制车辆102的运动以控制车辆穿越该路线(例如,为了避开任何检测到的对象);以及选择潜在轨迹一个作为车辆102的轨迹118,该轨迹118可用于生成驱动控制信号,该驱动控制信号可被传输以驱动车辆102的组件。图1描绘了这样的轨迹118的示例,表示为箭头,其指示航向、速度和/或加速度,尽管轨迹本身可以包括用于控制器116的指令,控制器116又可以启动车辆102的驱动系统。
35.跟踪组件114可以从相应的感知管线(例如,视觉管线、激光雷达管线、混合视觉-激光雷达管线、雷达管线、混合视觉-激光雷达-雷达管线等)接收一个或多个环境表示和/或对象检测,并确定是否将以前生成的跟踪与当前对象检测相关联或生成与当前对象检测相关联的新的跟踪。跟踪组件114可以附加地或替代地确定可以充当不同对象检测的总结的最终环境表示和/或估计的对象检测。在一些示例中,本文讨论的跟踪组件114可以通过将由一种或多种传感器类型(例如,离散的传感器类型,诸如激光雷达、rgb相机、热图像、声纳、雷达;和/或混合传感器类型,例如视觉-激光雷达关联、激光雷达-雷达关联)生成的对象检测和/或环境表示输入到本文讨论的ml模型中来确定估计的对象检测,该ml模型被训练以输出可以包括估计的对象检测的最终环境表示。在一些示例中,如果估计的对象检测与先前跟踪的投影的关联度(例如,联合交叉(iou),至少部分地基于尺寸和/或特征比较的分数)满足或如果超过阈值,则估计的对象检测可以与先前跟踪相关联,而不是基于原始对象检测的确定。如果iou小于阈值,则可以在确定中包括原始对象检测。
36.例如,图1示出了环境的自上而下表示120,其可以是由跟踪组件114的ml模型确定的最终环境表示的部分。自上而下表示120在这种情况下指示对象检测,如图示为估计的
roi 122。自上而下表示120和/或估计的roi 122可能已经由跟踪组件114的ml模型至少部分地基于从一个或多个感知管线接收的对象检测来确定。例如,作为输入提供给ml模型的对象检测可能包括与图像124相关联的三维roi,该三维roi中的一个被指示为roi 126,以及与激光雷达数据128相关联的自上而下的roi(例如,它可以是二维和/或三维的),其中的roi 130被指示。
37.估计的roi 122可以是由ml模型生成的估计的对象检测的部分,该估计的对象检测与由感知管线中的至少一项识别的对象相关联。估计的roi 122被描绘为包括中心132和范围(黑线)。可以至少部分地基于与由ml模型确定的与估计的对象检测相关联的对象分类相关联的锚框来定义范围。在附加或替代示例中,估计的roi可以包括自上而下表示的部分的任何其他识别,例如另一种形式的边界形状或掩模。
38.图1还示出了与跟踪136相关联的先前roi 134,该跟踪136先前由跟踪组件114与一个或多个对象检测相关联地生成。在一些示例中,跟踪136可以与一个或多个先前的对象检测相关联和/或可以指示与其相关的数据,例如速度、加速度、航向、对象分类、唯一识别符、遮挡状态(例如,对象是否当前/先前被一个或多个传感器部分或全部遮挡)。先前的roi 134可以与本文讨论的与其相关联的任何数据(例如,占用地图、自上而下分割、对象分类、对象航向、对象速度和/或加速度)相关联。例如,先前的roi 134可以与对象138和对象分类140“车辆”相关联。出于示例,先前的roi 134可以与同跟踪136相关联的最近对象检测相关联。
39.本文讨论的技术可以包括将先前的roi 134投影到与估计的roi 122相关联的时间,这可以包括基于跟踪136和与之相关联的数据来预测与先前的roi 134相关联的对象的位置、朝向、速度、加速度和/或类似物等。图1以虚线描绘了先前roi 134的这种投影142。在所描绘的示例中,估计的roi 122之间的iou满足或超过关联度阈值,因为估计的roi 122也与车辆相关联和/或投影142和估计的roi 122之间的iou满足或超过iou阈值。
40.无论如何,跟踪可以至少包括先前的roi,其可以包括中心、范围等,并且估计的对象检测可以包括估计的roi 122。在一些示例中,本文讨论的技术可以包括至少部分地基于与跟踪相关联的速度和/或航向来投影先前的roi。如果投影的roi 136与估计的roi 130的iou、中心之间的距离、嵌入之间的距离或munkres匹配满足阈值,则估计的对象检测可以添加到跟踪136。如果不是,则估计的对象检测可以与新的跟踪相关联和/或替代的跟踪组件可以使用原始检测来生成跟踪。
41.示例系统
42.图2图示了实现本文所讨论的技术的示例系统200的框图。在一些情况下,示例系统200可以包括车辆202,其可以代表图1中的车辆102。在一些情况下,车辆202可以是自主车辆,其被配置为根据美国国家公路交通安全管理局发布的5级分类操作,该5级分类描述了能够在整个行程中执行所有安全关键功能的车辆,其中驾驶员(或乘员)不被期望在任何时候控制车辆。然而,在其他示例中,车辆202可以是具有任何其他级别或分类的完全或部分自主车辆。此外,在一些情况下,本文描述的技术也可以由非自主车辆使用。
43.车辆202可以包括车辆计算设备204、传感器206、发射器208、网络接口210和/或驱动组件212。车辆计算设备204可以表示计算设备106,而传感器206可以表示传感器104。系统200可以附加地或替代地包括计算设备214。
44.在一些情况下,传感器206可以代表传感器104并且可以包括激光雷达传感器、雷达传感器、超声波传感器、声纳传感器、位置传感器(例如,全球定位系统(gps)、指南针等)、惯性传感器(例如,惯性测量单元(imu)、加速度计,磁力计,陀螺仪等)、图像传感器(例如,红绿蓝(rgb)、红外(ir)、强度、深度、飞行时间相机等)、麦克风、车轮编码器、环境传感器(例如,温度计、湿度计、光传感器、压力传感器等)等。传感器206可以包括这些或其他类型的传感器中的每一个的多个实例。例如,雷达传感器可以包括位于车辆202的角部、前部、后部、侧面和/或顶部的单独雷达传感器。作为另一个示例,相机可以包括设置在车辆202的外部和/或内部周围的不同位置的多个相机。传感器206可以向车辆计算设备204和/或计算设备214提供输入。
45.如上所述,车辆202还可以包括用于发射光和/或声音的发射器208。该示例中的发射器208可以包括与车辆202的乘客通信的内部听觉和视觉发射器。作为示例而非限制,内部发射器可以包括扬声器、灯、标志、显示屏幕、触摸屏、触觉发射器(例如,振动和/或力反馈)、机械致动器(例如,安全带张紧器、座椅定位器、头枕定位器等)等。该示例中的发射器208还可以包括外部发射器。作为示例而非限制,该示例中的外部发射器包括用于将行驶方向以信号发出的灯或车辆动作的其他指示器(例如,指示灯、标志、光阵列等),以及一个或多个听觉发射器(例如,扬声器、扬声器阵列、喇叭等)以与行人或其他附近的车辆进行听觉通信,行人或其他附近的车辆中的一个或多个包括声束转向技术。
46.车辆202还可以包括网络接口210,其使车辆202与一个或多个其他本地或远程计算设备之间能够通信。例如,网络接口210可以促进与车辆202和/或驱动组件212上的其他本地计算设备的通信。此外,网络接口210可以附加地或替代地允许车辆与附近的其他计算设备(例如,附近的其他车辆、交通信号灯等)进行通信。网络接口210可以附加地或替代地使车辆202能够与计算设备214通信。在一些示例中,计算设备214可以包括分布式计算系统的一个或多个节点(例如,云计算架构)。
47.网络接口210可以包括用于将车辆计算设备204连接到另一个计算设备或网络,例如网络216的物理和/或逻辑接口。例如,网络接口210可以实现基于wi-fi的通信,例如经由通过ieee 200.11标准定义的频率、例如蓝牙的短距离无线频率、蜂窝通信(例如,2g、3g、4g、4g lte、5g等)或使相应的计算设备能够与其他计算设备接合的任何合适的有线或无线通信协议。在一些情况下,车辆计算设备204和/或传感器206可以经由网络216以特定频率、在预定时间段过去之后、近实时地等将传感器数据发送到计算设备214。
48.在一些情况下,车辆202可以包括一个或多个驱动组件212。在一些情况下,车辆202可以具有单个驱动组件212。在一些情况下,驱动组件212可以包括一个或多个传感器,用于检测驱动组件212和/或车辆202周围环境的状况。作为示例而非限制,驱动组件212的传感器可包括一个或多个车轮编码器(例如,旋转编码器),用于感测驱动组件的车轮的旋转、惯性传感器(例如,惯性测量单元、加速度计、陀螺仪、磁力计等),用于测量驱动组件的朝向和加速度、相机或其他图像传感器、超声波传感器,用于声学检测驱动组件周围的对象、激光雷达传感器、雷达传感器等。一些传感器,例如车轮编码器可能是驱动组件212独有的。在一些情况下,驱动组件212上的传感器可能重叠或补充车辆202的相对应系统(例如,传感器206)。
49.驱动组件212可以包括许多车辆系统,包括高压电池、用于驱使车辆的电动机、用
于将来自电池的直流电转换成交流电以供其他车辆系统使用的逆变器、包括转向马达和转向齿条(可能是电动的)的转向系统、包括液压或电动执行器的制动系统、包括液压和/或气动元件的悬挂系统、用于分配制动力以减轻牵引力损耗并保持控制的稳定性控制系统、hvac系统、照明(例如,用于照亮车辆的外部环境的诸如头灯/尾灯等照明)以及一个或多个其他系统(例如,冷却系统、安全系统、车载充电系统、其他电气组件,例如dc/dc转换器、高压接头、高压电缆、充电系统、充电端口等)。另外,驱动组件212可以包括驱动组件控制器,其可以接收和预处理来自传感器的数据并控制各种车辆系统的操作。在一些情况下,驱动组件控制器可以包括一个或多个处理器和与一个或多个处理器通信耦合的存储器。存储器可以存储一个或多个组件以执行驱动组件212的各种功能。此外,驱动组件212还可以包括一个或多个通信连接,其使得相应的驱动组件能够与一个或多个其他本地或远程计算设备通信。
50.车辆计算设备204可以包括处理器218和与一个或多个处理器218通信耦合的存储器220。存储器220可以代表存储器108。计算设备214还可以包括处理器222和/或存储器224。处理器218和/或222可以是能够执行指令以处理数据和执行如本文所述的操作的任何合适的处理器。作为示例而非限制,处理器218和/或222可以包括一个或多个中央处理单元(cpu)、图形处理单元(gpu)、集成电路(例如,专用集成电路(asic))、门阵列(例如,现场可编程门阵列(fpga))和/或处理电子数据以将该电子数据转换为可存储在寄存器和/或存储器中的其他电子数据的任何其他设备或设备的部分。
51.存储器220和/或224可以是非暂时性计算机可读介质的示例。存储器220和/或224可以存储操作系统和一个或多个软件应用程序、指令、程序和/或数据以实现本文描述的方法和归属于各种系统的功能。在各种实施方式中,存储器可以使用任何合适的存储器技术来实施,存储器技术例如静态随机存取存储器(sram)、同步动态ram(sdram)、非易失性/闪存型存储器或能够存储信息的任何其他类型的存储器。这里描述的架构、系统和单独的元素可以包括许多其他逻辑、程序和物理组件,其中在附图中示出的那些仅仅是与这里的讨论相关的示例。
52.在一些情况下,存储器220和/或存储器224可以存储定位组件226、感知组件228、规划组件230、跟踪组件232、地图234和/或系统控制器236。感知组件228可以代表感知组件110,规划组件230可以代表规划组件112,和/或跟踪组件232可以代表跟踪组件114。
53.在至少一项示例中,定位组件226可以包括硬件和/或软件,用于从传感器206接收数据以确定车辆202的位置、速度和/或朝向(例如,x位置、y位置、z位置、滚动、俯仰或偏航中的一个或多个)。例如,定位组件226可以包括和/或请求/接收环境的地图234,并且可以在地图234内连续确定自主车辆的位置、速度和/或朝向。在一些情况下,定位组件226可以利用slam(同时定位和映射)、clams(同时校准、定位和映射)、相对slam、束调整、非线性最小二乘优化等来接收图像数据、激光雷达数据、雷达数据、imu数据、gps数据、车轮编码器数据等,以准确确定自主车辆的位置、姿态和/或速度。在一些情况下,定位组件226可以向车辆202的各种组件提供数据以确定自主车辆的初始位置,以用于生成轨迹和/或用于生成地图数据,如本文所讨论的。在一些示例中,定位组件226可以向跟踪组件232提供车辆202相对于环境的位置和/或朝向和/或与其相关联的传感器数据。
54.在一些情况下,感知组件228可以包括以硬件和/或软件实现的主要感知系统和/
或预测系统。感知组件228可以包括一个或多个感知管线,其可以检测车辆202周围环境中的对象(例如,识别对象存在)、对对象进行分类(例如,确定与检测到的对象相关联的对象类型)、分割传感器数据和/或环境的其他表示(例如,将传感器数据的部分和/或环境的表示识别为与检测到的对象和/或对象类型相关联)、确定与对象相关联的特征(例如,识别与对象相关联的当前、预测和/或先前位置、航向、速度和/或加速度的跟踪)等。由感知组件228确定的数据被称为感知数据。
55.规划组件230可以从定位组件226接收车辆202的位置和/或朝向和/或从感知组件228接收感知数据,并且可以至少部分地基于任何这些数据来确定用于控制车辆202的操作的指令。在一些示例中,确定指令可以包括至少部分地基于与指令相关联的系统相关联的格式来确定指令(例如,用于控制自主车辆的运动的第一指令可以被格式化为系统控制器236和/或驱动组件212可以解析/导致被执行的第一格式的消息和/或信号(例如,模拟、数字、气动、运动学),用于发射器208的第二指令可以根据与其相关联的第二格式被格式化)。
56.跟踪组件232可以在车辆202和/或计算设备214上操作。在一些示例中,跟踪组件232可以在管线中的规划组件230的上游(提供输入)和感知组件228的至少一些组件228的下游(接收输入)。跟踪组件232可以被配置为将跟踪组件232的全部输出、部分输出或无输出传递到规划组件230。在一些示例中,跟踪组件232可以是感知组件228的部分。在一些示例中,跟踪组件232可以包括在此讨论的确定最终环境表示的ml模型,该最终环境表示可以包括估计的对象检测。跟踪组件232可以附加地或替代地包括第一组件,其接收由ml模型生成的估计的对象检测和与传感器类型相关联生成的至少一项“原始”对象检测(例如,ml模型的输入一个)和/或第二组件,其接收估计的对象检测和与跟踪相关联的一个或多个对象检测。无论如何,跟踪组件的第一组件和/或第二组件可以确定是否将估计的对象检测与跟踪相关联或生成与对象检测相关联的新跟踪。跟踪组件232可以附加地或替代地输出一个或多个对象检测的速度、航向和/或其他历史或当前特性,其所有或部分可以是跟踪的至少部分。
57.存储器220和/或224可以附加地或替代地存储映射系统(例如,至少部分地基于传感器数据生成地图)、规划系统、乘车管理系统等。虽然定位组件226、感知组件228、规划组件230、跟踪组件232、地图234和/或系统控制器236被示为存储在存储器220中,这些组件中的任何一个都可以包括处理器可执行指令、机器学习模型(例如,神经网络),和/或硬件和任何这些组件的全部或部分可以存储在存储器224上或被配置为计算设备214的部分。
58.如本文所述,系统200的定位组件226、感知组件228、规划组件230、跟踪组件232和/或其他组件可以包括一个或多个ml模型。例如,定位组件226、感知组件228、规划组件230和/或跟踪组件232可以各自包括不同的ml模型管线。在一些示例中,ml模型可以包括神经网络。示例性神经网络是一种受生物学启发的算法,它通过一系列连接层传递输入数据以产生输出。神经网络中的每一层也可以包括另一个神经网络,或者可以包括任意数量的层(无论是否卷积)。如在本公开的上下文中可以理解的,神经网络可以利用机器学习,机器学习可以指这样的算法的大类,在这样的算法中基于学习的参数而生成输出。
59.尽管在神经网络的上下文中进行了讨论,但可以使用与本公开一致的任何类型的机器学习。例如,机器学习算法可以包括但不限于:回归算法(例如,普通最小二乘回归(olsr)、线性回归、逻辑回归、逐步回归、多元自适应回归样条(mars)、局部估计散点图平滑
(loess)),基于实例的算法(例如,岭回归、最小绝对收缩和选择算子(lasso)、弹性网络、最小角度回归(lars)),决策树算法(例如,分类和回归树(cart)、迭代二分法3(id3)、卡方自动交互检测(chaid)、决策树桩、条件决策树),贝叶斯算法(例如,朴素贝叶斯、高斯朴素贝叶斯、多项朴素贝叶斯、平均单依赖估计器(aode)、贝叶斯信念网络(bnn),贝叶斯网络),聚类算法(例如,k均值、k中值、期望最大化(em)、层次聚类),关联规则学习算法(例如,感知机(perceptron)、反向传播、跳场网络、径向基函数网络(rbfn)),深度学习算法(例如,深度玻尔兹曼机(dbm)、深度信念网络(dbn)、卷积神经网络(cnn)、堆叠自动编码器),降维算法(例如,主成分分析(pca)、主成分回归(pcr)、偏最小二乘回归(plsr)、sammon映射、多维缩放(mds)、投影追踪、线性判别分析(lda)、混合判别分析(mda)、二次判别分析(qda)、灵活判别分析(fda)),集成算法(例如,提升、自举聚合(bagging)、adaboost、堆叠泛化(混合)、梯度提升机(gbm)、梯度提升回归树(gbrt)、随机森林),svm(支持向量机)、监督学习、无监督学习、半监督学习等。架构的其他示例包括神经网络,例如resnet-50、resnet-101、vgg、densenet、pointnet等。在一些示例中,本文讨论的ml模型可以包括pointpillars、second、自上而下的特征层(例如,参见美国专利申请no.15/963,833,其全部内容并入本文)和/或体素网(voxelnet)。架构延迟优化可以包括mobilenetv2、shufflenet、channelnet、peleenet等。在一些示例中,ml模型可以包括诸如pixor之类的残差块。
60.存储器220可以附加地或替代地存储一个或多个系统控制器236,其可以被配置为控制车辆202的转向、推进、制动、安全、发射器、通信和其他系统。这些系统控制器236可以与驱动组件212和/或车辆202的其他组件的相对应系统通信和/或控制相对应系统。例如,规划组件230可以至少部分地基于由感知组件228生成的感知数据来生成指令,并且可以验证感知数据和/或将指令传送到系统控制器236。系统控制器236可以至少部分地基于从规划组件230接收的指令来控制车辆202的操作。
61.应当注意,虽然图2被示为分布式系统,但在备选示例中,车辆202的组件可以与计算设备214相关联和/或计算设备214的组件可以与车辆202相关联。即,车辆202可以执行与计算设备214相关联的功能中的一个或多个,反之亦然。
62.示例系统
63.图3示出了示例感知系统300的框图,该示例感知系统300用于根据从不同感知管线接收的一个或多个对象检测来确定估计的对象检测和/或至少部分地基于估计的对象检测来确定更新的或新的跟踪。示例感知系统300可以包括用于确定感知系统300的周围环境的特征的任意数量的管线。例如,管线可以确定在自主车辆的环境中有什么和/或传感器和/或环境中对象的特性。图3描绘了三个管线:视觉管线302、雷达管线304和激光雷达管线306,但是可以设想任何数量和类型的管线。例如,管线可以与相同类型的传感器(例如,一个或多个相机、一个或多个激光雷达传感器、一个或多个雷达传感器)、视场方向(例如,具有重叠视场的一个或多个相机)、多种类型的传感器(例如,混合视觉-激光雷达管线)、来自其他来源的数据(例如,来自远程计算设备的数据、存储在存储器中的地图数据)等相关联。
64.不管怎样,一个或多个管线中的管线可以被配置为接收传感器数据并确定一个或多个输出。为简单起见,管线的集体输出在本文中被称为环境表示。环境表示可以包括一个或多个对象检测并且可以包括一个或多个输出类型。例如,视觉管线302可以至少部分地基于视觉数据310(例如,包括一个或多个rgb图像、热图像的传感器数据)来输出环境表示
308。由视觉管线302生成的环境表示308可以包括一个或多个对象检测,其中至少一项对象检测包括:
[0065]-与对象相关联的二维roi;
[0066]-与对象相关联的三维roi,例如在美国专利申请no.15/970,838以及16/386,249中更详细描述那些一个,其全部内容通过引用并入本文;
[0067]-如美国专利申请no.15/970,838中所讨论的与对象和/或roi相关联的深度估计(例如,从传感器/车辆到对象的距离的估计);
[0068]-如美国专利申请no.15/970,838中所述的对象的高度;
[0069]-对象分类和/或与对象相关联的可能性,该可能性指示传感器数据与由对象分类(例如,车辆、行人、铰接式车辆、动物、儿童)指定的类型的对象相关联的后验概率
‑‑
在一些示例中,对象分类和/或可能性可能与传感器数据的离散部分(例如,像素)相关联;
[0070]-被分类为行人或动物的对象正在站立、行走或奔跑的指示;
[0071]-状态指示(例如,转向指示、停止指示、警告指示)和/或与车辆、摩托车等相关联的制动器或其他指示灯(例如,前灯、后视镜灯)的位置;
[0072]-视觉嵌入;
[0073]-对象相对于环境的表示(例如,环境的体素化、环境的网格表示)的位置(例如、中心和/或范围);
[0074]-对象的姿态,其可以包括对象的位置和/或航向;
[0075]-占用图314(例如,是否有对象占用像素/体素,实例分割),其可以包括指示为被对象占用的部分;和/或
[0076]-遮挡网格(例如,包括环境的部分被一个或多个视觉传感器的视线遮挡的概率)。
[0077]
在一些示例中,尽管视觉管线可以将摩托车手分类为行人或自行车手,但可以根据本文提出的技术来修改与之相关联的对象分类,以至少部分地基于与摩托车手相关联的跟踪来指示对象是摩托车手。例如,跟踪可以指示摩托车手的移动速度比行人或自行车手的移动速度更快,并且因此对象分类可以被修改。类似地,类别信息可以与跟踪相关联。在这种情况下,与类别相关联的先前类别信息(例如,来自一个或多个先前时间)可用于进一步增加关于来自视觉管线的对象分类输出是否应该被改变的置信度。当然,这样的修改可以是组件的输出,基于组件、子组件或接收感知分类和跟踪信息作为输入的其他算法或以其他方式执行。
[0078]
雷达管线304可以确定环境表示(未示出以节省绘图空间),包括:
[0079]-占用图,其可以包括指示为被对象占用的部分;
[0080]-雷达检测(在一些示例中,可以将其栅格化为环境的表示,例如三维表示或自上而下的表示);
[0081]-遮挡网格(例如,包括环境的部分被一个或多个雷达传感器的视线遮挡的概率),如在美国专利申请no.16/407,139中更详细地讨论,其全部内容通过引用并入本文;
[0082]-与对象相关联的偏航率,如美国专利申请no.16/416,686中更详细讨论的,其全部内容通过引用并入本文;
[0083]-与对象相关联的速度(例如,与对象相关的基于地面的距离率);
[0084]-雷达截面(rcs);和/或
[0085]-roi和/或对象分类。
[0086]
激光雷达管线306可以确定环境表示316,该环境表示316包括:
[0087]-占用图318,其可以包括指示为被对象占用的部分;
[0088]-遮挡网格(例如,包括环境的部分被一个或多个激光雷达传感器的视线遮挡的概率);
[0089]-与对象相关联的roi和/或对象分类;和/或
[0090]-自上而下分割(例如,环境的部分是否被占用的自上而下的指示和/或自上而下的roi(例如,诸如在320处描绘的激光雷达自上而下的roi),如在美国专利申请15/963,833中更详细地讨论的,该专利申请的全部内容并入本文。
[0091]
关于图3所示和讨论的管线仅仅是示例。感知系统300可以包括比在此示出和讨论的那些更多、更少和/或不同的管线。此外,管线可以混合在一起,而不是像所描绘的那样整齐地分开。例如,上面讨论的环境表示中的至少一些可以是两个不同管线的部分的产物。请注意,在所描绘的示例中,由于空间有限以及为了清晰起见而放大了视觉环境表示和激光雷达环境表示,因此未描绘有关雷达环境表示的特定细节,尽管雷达管线和雷达环境表示被附加地或替代地考虑。
[0092]
由不同管线产生的各种环境表示可以聚合成多通道数据结构322。例如,这种聚合可以包括将数据投影到环境的公共表示中,例如体素空间、网格表示或等,其在共同的参考系中和/或具有相同的尺寸。聚合可以附加地或替代地包括确定环境表示的一个或多个部分的自上而下表示,例如从自上而下的角度将三维roi投影到二维roi中和/或至少部分地基于与传感器角度、深度和/或对象分类相关联的二维roi来确定自上而下的二维roi。在一些示例中,多通道数据结构322可以包括多通道图像,其中图像的每个通道可以与不同的管线和/或不同类型的输出(例如,占用图、遮挡网格、roi、对象分类)相关联。例如,图像的第一通道可以包括指示环境的各个部分是否被占用/未被占用的像素,如由视觉管线所确定的,图像的第二通道可以包括指示环境的各个部分是否被占用/未被占用的像素,如由激光雷达管线确定的,第三通道可以包括指示环境的各个部分是否与某个对象分类相关联的像素,等等。
[0093]
多通道数据结构322可以包括一个或多个感知管线的输出和/或从其他源(例如,从自主车辆的存储器、从远程计算设备)接收的数据。例如,多通道数据结构322可以包括环境表示,该环境表示可以包括环境的自上而下的表示(例如,其可以是二维、三维或更高维的)、环境的占用图、环境的被遮挡部分的表示、与对象相关联的roi、与对象相关联的对象分类、传感器数据分割、传感器数据的三维离散表示、与对象相关联的偏航和/或偏航率、与对象相关的速度和/或加速度、与对象相关联的一组范围(例如,尺寸)和/或地面高度估计,如于2019年11月27日提交的美国专利申请no.16/698,055中更详细地讨论的,该申请的全部内容并入本文。
[0094]
如本文所用,对象检测可以是指示对象存在的一个或多个环境表示的部分,例如roi、肯定占用指示、对象分类等。
[0095]
在一些示例中,先前跟踪324和/或先前环境表示326可以是多通道数据结构322的部分或以其他方式被提供作为ml架构328的输入。例如,先前跟踪324和/或先前环境表示326可以与最后第n(其中n是正整数)时间步长相关联,在该时间步长,环境表示由管线生成
和/或跟踪被确定。例如,系统可以被同步或按时间间隔(例如,每10毫秒、每100毫秒、每500毫秒)以确定环境表示和/或跟踪。跟踪和/或环境表示是在先前n个时间步长处确定的。在另外的或替代的示例中,例如在感知系统是半同步或不同步的情况下,先前跟踪324和/或先前环境表示326可以与时间窗口相关联。例如,该数据可以在滚动的基础上在2秒周期、3秒周期、5秒周期和/或适用于应用的任何其他时间窗口上累积。
[0096]
多通道数据结构322可以被提供作为ml架构328的输入,ml架构328可以被训练以确定包括一个或多个估计的对象检测330的最终环境表示。例如,ml架构328可以确定环境的自上而下表示,包括环境的部分被占用的指示、与被占用部分(例如,对象)相关联的roi和/或对象分类、对象的朝向(例如,偏航和/或偏航/航向仓)、与对象相关联的速度(例如,静止/移动指示、横向和/或纵向速度、偏航率)、与对象相关联的高度和/或与未来时间步长相关联的预测roi。在一些示例中,最终环境表示可以是多通道数据结构,例如图像,其中不同的图像通道指示上文讨论的不同值,但是在附加或替代示例中,估计的对象检测330可以以独特的数据结构输出,该独特的数据结构例如与跟踪、张量或其他相关联使用的数据结构。在一些情况下,估计的对象检测可以与最终环境表示的一个或多个部分(例如,像素、区域)相关联,并且在至少一项示例中,一个或多个部分中的每个部分可以指示与对象相关联的速度。在后一示例中,这些技术可以包括至少部分地基于由一个或多个部分指示的速度来确定与对象相关联的最终速度和/或偏航率。
[0097]
最终环境表示和/或其估计的对象检测330可以被提供给跟踪组件332的输入。跟踪组件332可以被训练和/或被配置为确定是否将估计的对象检测与先前跟踪334、新的跟踪相关联,或者将来自管线的一个或多个对象检测和/或估计的对象检测330转发到或有(intingent)跟踪组件。在一些示例中,跟踪组件332可以至少部分地基于本文讨论的确定来将更新的或新的跟踪336输出到规划组件。
[0098]
在一些示例中,或有跟踪组件可以是被配置为从管线接收原始环境表示并从中确定跟踪的跟踪组件。在某些情况下,或有跟踪组件可能需要更多的计算和/或存储器,因为或有跟踪组件使用不同管线之间的更多数据来确定对象检测是否为误报和/或是否将对象检测与以前的跟踪或新的跟踪相关联。
[0099]
示例过程
[0100]
图4示出了用于从由一个或多个感知管线生成的多个对象检测和/或环境表示中确定最终环境表示和/或估计的对象检测的示例过程400的图示流程图。示例过程400可以附加地或替代地至少部分地基于确定将估计的对象检测与先前的跟踪相关联、确定将生成新的跟踪与估计的对象检测相关联,和/或确定将本文讨论的数据转发到或有跟踪组件来跟踪环境中的对象。
[0101]
在操作402,示例过程400可以包括根据本文讨论的任何技术接收与第一传感器类型相关联的第一对象检测和与第二传感器类型相关联的第二对象检测。例如,第一对象检测404可以是从第一管线408接收的第一环境表示406的部分,以及第二对象检测410可以是从第n管线414接收的第n对象环境表示412的部分。
[0102]
尽管图示将对象检测和环境表示描绘为自上而下的roi,但在至少一项示例中,对象检测可以包括基于激光雷达的对象检测、基于雷达的对象检测和/或基于视觉的对象检测。基于激光雷达的对象检测可以包括激光雷达占用图、基于激光雷达的二维或三维roi、
自上而下的分割roi、自上而下的分割图、激光雷达遮挡网格和/或对象分类。基于雷达的对象检测可以包括雷达占用图、基于地面的距离率、rcs、基于雷达的roi和/或对象分类、和/或雷达遮挡网格。基于视觉的对象检测可以包括视觉遮挡网格、实例分割、二维roi(例如,在图像空间中)、三维roi、深度、对象分类、视觉嵌入和/或对象的姿态(例如,位置和/或朝向)。可以使用附加的或替代的对象检测。在一些示例中,上面讨论的一些对象检测组件可以包括混合组件,例如基于雷达的roi、姿态数据或三维roi,其中任何一个都可以是基于激光雷达、基于雷达和/或基于视觉的.
[0103]
在操作416,示例过程400可以包括根据本文讨论的任何技术的接收与环境中的对象相关联的跟踪。例如,跟踪418可以是先前确定的与先前时间步长相关联的跟踪。在所描绘的示例中,跟踪418与已经由第一管线408和第n管线414检测到的对象相关联,如对象检测404和对象检测410所示。跟踪418可以关联来自不同管线的任何对象检测数据和/或可以包括由ml模型从先前时间步长生成的估计的对象检测、至少在时间上回溯到静态设置或由车辆速度设置的时间窗口、被跟踪的对象数量(例如,对象越多,保存数据的时间窗口越小,或者相同或较大时间窗口的对象越多,以便跟踪对象通过遮挡),或它们的组合。跟踪最终指示由两个不同管线生成的两个不同对象检测与同一对象相关联和/或由相同或不同管线生成的两个不同时间的对象检测与同一对象相关联。
[0104]
所描绘的跟踪418关联由ml模型生成的先前估计的对象检测,在所描绘的示例中,其包括与自主车辆周围环境中的同一车辆相关联的四个二维(自上而下)roi(420)、车辆的姿态,以及车辆中心的历史位置,其显示为通过roi的线。估计的对象检测可以附加地或替代地包括对象分类,例如在这种情况下的“车辆”、车辆的历史和/或(以前)预测的速度;每像素占用率(例如,与车辆相关联的像素掩模);车辆的估计高度;和/或类似物。
[0105]
在操作422,示例过程400可以包括根据本文讨论的任何技术将第一对象检测、第二对象检测和/或跟踪输入到ml模型中。在一些示例中,对象检测和/或跟踪可以聚合成多通道数据结构。在一些示例中,一些对象检测的部分可以在操作422之前被投影到体素空间中和/或呈现在二维自上而下视图中。
[0106]
请注意,对象检测可以作为环境表示的部分提供给ml模型。例如,环境表示406包括多个对象检测和未示出的数据,例如对象速度、估计高度等,如上所述。在一些示例中,环境表示可以被聚合并作为输入提供给ml模型。在一些示例中,对象检测可以与环境表示的其余部分隔离并作为输入提供。例如,环境表示可以在公共参考系中或者可以在聚合期间被转换为公共参考系。管线可以被配置为输出肯定的对象检测以及它们在公共参考系中的坐标。例如,这些肯定对象检测可以是与满足或超过阈值置信度的可能性相关联的环境表示的部分。上面讨论的每个和任何对象检测组件可以与回归置信度分数相关联。例如,对象分类可以与置信度分数相关联,roi可以经由非最大抑制技术至少部分地基于与不同像素相关联的置信度分数来确定,占用率可以至少部分地基于与每个像素相关联的并由相应管线的ml模型确定的可能性等等来确定。
[0107]
在操作424,示例过程400可以包括根据本文讨论的任何技术接收估计的对象检测426作为来自ml模型的输出。在一些示例中,ml模型可以被训练以输出最终环境表示428和/或估计的对象检测426。由于最终环境表示428指示环境的部分被占用和/或与对象分类相关联的特性,估计的对象检测426可以是最终环境表示428的部分。可以训练ml模型以输出
与对象相关联的roi(例如,中心和/或范围)、与对象相关联的对象分类、对象的估计姿态(例如,位置和/或朝向)、对象的估计的速度和/或对象的估计的高度。ml模型可以附加地或替代地确定与这些输出中的任何一个相关联的置信度分数。在一些示例中,可以至少部分地基于锚框或与已经被训练的ml模型的对象分类相关联的任何其他规范对象形状来生成roi。
[0108]
在一些示例中,最终环境表示可以包括环境的自上而下表示的多通道图像。多通道图像可以包括离散部分,例如像素,其在不同通道中指示到最近的roi中心的距离、roi的范围、像素与对象相关联的可能性(例如,用于生成roi的非最大抑制)、像素与多个对象分类中的特定对象分类相关联的可能性、朝向、速度和/或估计的高度。
[0109]
在一些示例中,ml模型可以确定与朝向相关联的类别,该类别指示朝向落入的仓(例如,北、南、东、西;任何其他数量和类型的航向仓,例如45
°
仓、90
°
仓、180
°
仓等)和/或与朝向相关的回归(例如,与像素相关联确定的从仓中心的变化度数)。
[0110]
在一些示例中,ml模型可以使用分类算法来确定速度,从而产生输出,诸如,静态或动态的速度,或速度的仓(例如,每小时5、10、15或这样的英里的增量,使得至少在一个示例中,仓可以指示对象以每小时1-10英里的速度移动)。附加地或替代地,ml模型可以使用回归任务来确定速度,或者作为从速度仓的中心的偏移(例如,其中,速度值可以通过从对象被分类在其中的仓的值中添加/减去回归来确定)或作为独立的回归(例如,回归任务直接计算速度)。在一些示例中,速度分仓和/或回归任务可以至少部分地基于作为输入多通道图像的部分的一个或多个先前对象检测和/或跟踪。类似地,ml模型可以使用分类任务(例如,作为高度仓)和/或回归任务(例如,作为与高度仓的偏移或直接回归的高度)来确定估计高度。
[0111]
在一些示例中,训练ml模型可以包括至少部分地基于对象分类、朝向仓、速度仓和/或估计的高度仓与相应的地面实况之间的差异来确定分类损耗(例如,语义标签、用于对象分类的地面实况实例分割和/或地面实况roi;用于朝向仓的地面实况的朝向指示;用于速度仓的地面实况速度;用于高度仓的地面实况高度)。在一些示例中,总分类损耗可以通过对这些损耗求和来确定。在一些示例中,确定分类损耗可以包括确定交叉熵焦点损耗,如在美国专利申请16/013,729中更详细地讨论的,该申请的全部内容通过引用并入本文,尽管其他形式的损耗也是可以考虑的。在一些示例中,确定仓的分类损耗可以至少部分地基于交叉熵或huber损耗。
[0112]
训练ml模型可以附加地或替代地包括至少部分地基于到roi中心的距离之间的差异来确定一个或多个回归损耗;roi的范围,其可以用对数空间表示;估计的朝向或与朝向仓的偏移;估计的速度或与速度仓的偏移;和/或估计的高度或与高度仓的偏移量以及分别与其相关联的相应地面实况。确定回归损耗可包括确定上述一个或多个回归输出中的每一个的l1(或任何其他损耗)损耗,并将这些回归损耗相加以确定总回归损耗。
[0113]
训练ml模型可以附加地或替代地包括通过对总分类损耗和总回归损耗求和来确定总损耗。在一些示例中,可以训练ml模型以输出与每个任务相关联的不确定性。可以至少部分地基于与输出任务相关联的不确定性输出来对为任务确定的损耗进行加权,使得不确定性越大,施加于损耗的权重越大,并且所得损耗越大。这种加权可能在确定总分类损耗和/或总回归损耗之前发生,尽管它可能发生在其他时间。在一些示例中,不确定性可以至
少部分地基于协方差和/或可以是异方差的。
[0114]
在一些示例中,总损耗,无论是否加权,都可以通过ml模型的各种回归和/或分类组件反向传播,这可以包括调整一个或多个组件的一个或多个参数以最小化总损耗。附加地或替代地,总损耗可以通过一个或多个管线或管线的部分反向传播。例如,总损耗可用于调整视觉管线、激光雷达管线等的自上而下分割分量、roi分量、朝向分量、速度分量和/或高度分量的一个或多个参数。
[0115]
在一些示例中,本文讨论的损耗可以代替每个像素的损耗或除了每个像素的损耗之外,确定每个对象检测的损耗。在每个对象检测的基础上确定损耗可以提高ml模型在确定小型对象的估计的对象检测时的准确性。在一些示例中,可以至少部分地基于包括对象轮廓的指示、识别与对象相关联的像素和/或子像素的实例分割等的地面实况来确定损耗。
[0116]
在一些示例中,ml模型可以附加地或替代地输出与估计对象相关联的跟踪的指示。在一些示例中,ml模型可以输出与对象检测相关联的嵌入,以用于确定是生成新跟踪还是将对象检测与以前的跟踪相关联。在一些示例中,嵌入可以至少部分地基于ml模型的其他输出。例如,嵌入可以由接收ml模型的其他输出(例如,roi、对象分类、估计的朝向、估计的速度、估计的高度、估计的方向)的ml模型的组件确定,尽管嵌入可以至少部分地基于一个或多个感知管线的输出而附加地或替代地确定。
[0117]
在另外的或替代的示例中,ml模型可以被配置为针对不同高度仓输出本文讨论的对象检测。例如,多通道输出图像的第一组通道可以包括针对第一高度范围(例如,0.25米到2米)的对象检测,第二组通道可以包括针对第二高度范围(例如,2米到4米),等等。可以使用任何其他高度间隔。
[0118]
在操作432,示例过程400可以包括根据本文讨论的任何技术的至少部分地基于估计的对象检测来确定与对象相关联的更新的跟踪或新的跟踪(432)。在一些示例中,操作432可以附加地或替代地至少部分地基于一个或多个以前的跟踪和/或估计的对象检测。在一些示例中,示例过程400可以包括确定更新当前存储在存储器中的每个先前跟踪。更新跟踪可以包括将估计的对象检测一个与跟踪相关联,指示跟踪与可能部分或完全遮挡的对象相关联(例如,遮挡状态标志可以改变),和/或退出跟踪。退出跟踪可包括指示与跟踪相关联的对象已被遮挡至少阈值时间量,该对象可能不再在视场内,和/或删除该跟踪。一旦所有跟踪都已更新,未与跟踪相关联的任何剩余估计的对象检测可被传递到替代跟踪组件和/或可生成与其相关联的新跟踪。
[0119]
图5图示了用于至少部分地基于由本文讨论的ml模型确定的估计的对象检测来跟踪环境中的对象的示例过程500的图示流程图。示例过程500可以是示例过程400的操作432的至少部分或者可以是独立过程。操作432可以包括根据本文讨论的任何技术的至少部分地基于估计的对象检测432来确定与对象相关联的更新的跟踪或新的跟踪。
[0120]
在操作502,示例过程500可以包括根据本文讨论的任何技术的将与先前时间相关联的先前跟踪的至少部分投影到当前时间。例如,投影先前跟踪的至少部分可以包括至少部分地基于先前跟踪(例如,跟踪418)来确定投影的roi 504。在一些示例中,投影的roi可以至少部分地基于与先前跟踪418相关联的最近的roi。图5通过用黑色阴影填充roi来图示跟踪418的最近的roi。投影的感兴趣区域504以虚线描绘并且可以至少部分地基于与跟踪418相关联的历史速度、朝向和/或位置。在附加或替代示例中,投影的roi可以包括在先前
时间步长由ml模型输出的预测roi。
[0121]
注意,虽然图5示出了投影的roi 504,但是可以投影与估计的对象检测相关联的任何其他可延展属性。例如,对象分类不应该在帧之间改变,但是速度、朝向、高度(例如,由于行人坐着或躲避)、roi位置等可能会改变并且可以至少部分地基于跟踪418和/或与其相关联的数据来预测/投影。例如,跟踪418可以关联由ml模型生成的先前估计的对象检测以及与其关联的任何数据。因此,尽管本文讨论了投影的roi 504,但可以理解,对象分类、预测速度、预测朝向、预测高度、预测位置、预测朝向和/或预测嵌入可以与其相关联。确定投影的roi 504可以包括至少部分地基于与投影的roi 504相关联的嵌入和预测的速度、预测的朝向、预测的高度、预测的位置、预测的朝向,这取决于嵌入的数据是基于什么来确定更新的/预测的嵌入。例如,如果嵌入基于可延展数据,例如速度和位置,则可以更新嵌入,但如果嵌入基于原始传感器数据和/或感知管线数据,则可以使用嵌入而不进行更新。
[0122]
在操作506,示例过程500可以包括根据本文讨论的任何技术的确定估计的对象检测和投影的roi之间的关联度。例如,估计的对象检测可以是由本文讨论的ml模型确定的估计的对象检测426的至少部分。在一些示例中,操作506可以包括至少部分地基于投影的roi 504和估计的对象检测426之间的iou、估计的对象检测426的中心和投影的感兴趣区域504(或以前的roi)之间的欧几里德距离、投影的roi 504和估计的对象检测426之间的munkres匹配等来确定分数。在至少一项示例中,确定关联度可以包括确定与投影的感兴趣区域504相关联的嵌入和与估计的对象检测426相关联的嵌入之间的差异(例如,欧几里得距离)。在一些示例中,嵌入可以考虑对象分类、尺寸和/或对象检测的其他特征。在至少一项示例中,关联度可以包括以下各项的一项或组合,例如iou、中心之间的距离、munkres匹配分数和/或嵌入之间的距离的总和或加权总和。
[0123]
在一些示例中,关联度可以包括iou和嵌入之间的距离的总和或加权总和。在这样的示例中,这样的总和可以首先包括iou,或者(归一化的)距离可以在被计算之后反转,因为高iou表示相似性,但嵌入之间的高距离表示不相似。iou可以通过从1中减去iou来反转。由于iou的范围可能在0和1之间,并且嵌入之间的欧几里德距离可能显著大于1,因此嵌入之间的欧几里德距离可以至少部分地基于学习嵌入空间中嵌入之间的最小距离和最大距离。在附加或替代示例中,iou的logit可以至少部分地基于学习嵌入空间中的嵌入之间的最大距离来确定和缩放。在附加或替代示例中,关联度可以包括至少部分地基于一个或多个关联度确定的分数。例如,可以训练ml模型以接收iou、嵌入之间的距离、跟踪的至少部分和/或估计的对象检测数据的至少部分,以及输出分数,该分数指示估计的对象检测与先前的跟踪相关联的可能性。
[0124]
在操作508,示例过程500可以包括根据本文讨论的任何技术的确定关联度是否满足阈值关联度。满足阈值关联度的关联度指示与估计的对象检测426相关联的对象是/可能是与跟踪418指示的相同的对象。如果关联度满足阈值关联度,示例过程500可以继续到操作510。另一方面,如果在操作506确定的关联度不满足阈值关联度,则示例过程508可以继续到操作442。
[0125]
如果关联度包括iou,则通过找到munkres匹配、通过嵌入之间的距离小于阈值距离、通过中心之间的距离小于阈值距离,和/或通过组合分数满足阈值组合分数,通过满足或超过阈值iou值,关联度可以满足阈值关联度。根据后一个示例,当iou和嵌入之间的距离
被组合以确定分数时,如上所述,阈值组合分数的满足可以通过确定在iou反转时组合分数小于组合分数阈值来实现,并且如果嵌入之间的距离被归一化然后反转则反之亦然。在确定多个关联度(例如,ml模型生成的分数、iou、嵌入之间的距离)的示例中,操作508可以包括规则集,该规则集指定必须满足以传递到操作510的一个或多个关联度阈值(例如,所有关联度必须超过与每个关联度相关联的阈值,至少一项、三个中的两个等等)。
[0126]
在操作510,示例过程500可以包括根据本文讨论的任何技术的将估计的对象检测426与跟踪418相关联作为更新的跟踪430。
[0127]
在操作512,示例过程500可以包括根据本文讨论的任何技术的生成与估计的对象检测相关联的新跟踪和/或将第一对象检测、第二对象检测和/或估计的对象检测提供给替代跟踪组件。生成新跟踪指示估计的对象检测与先前未被任何感知管线检测到和/或不在与其相关联的传感器的视场内的对象相关联。在附加或替代示例中,来自一个或多个管线和/或跟踪418的原始对象检测可以被提供作为替代跟踪组件的输入。在一些示例中,替代跟踪组件可以被配置为至少部分地基于比较来自多个感知管线的对象检测来确定新跟踪或更新以前的跟踪。
[0128]
示例架构
[0129]
图6图示了本文讨论的用于生成估计的对象检测的ml模型的示例架构600的框图。在一些示例中,示例架构600可以与一个对象分类或多个对象分类相关联。换言之,示例架构600可以接收与特定对象分类相关联的对象检测和/或在与特定对象分类相关联的对象检测上被训练,或者示例架构600可以接收各种类型的对象分类的对象检测和/或在各种类型的对象分类的对象检测上被训练。在示例架构600与一个对象分类相关联的示例中,ml模型可以包括与不同对象分类相关联的训练的示例架构600的多个实例。
[0130]
无论如何,示例架构600可以包括第一组层602、第二组层604和/或第三组层606,尽管可以使用附加或替代数量组的层。层可以是ml模型、子网络和/或不同网络的部分。在至少一项示例中,一组层602-606的中的至少一项可以包括一个或多个卷积层,该卷积层可以包括至少部分地基于上述损耗而调整的学习参数,和/或反卷积层(例如,对其输入进行上采样)。在一些示例中,以上讨论的多通道图像可以被提供作为第一组层602、第二组层604和/或第三组层606中的任何一个或多个的输入。如上所述,多通道图像可以包括来自当前和/或先前时间步长的数据。在一些示例中,第一组层602的输出可以被提供作为聚合层608的输入和第二组层604的输入;第二组层604的输出可以被提供作为聚合层608的输入和第三组层606的输入;并且第三组层606的输出可以被提供作为聚合层608的输入。
[0131]
在一些示例中,聚合层608可以将各个层的输出连接或上采样和逐元素求和以形成数据结构。在一些示例中,聚合层608生成的数据结构可以被提供作为分类层610的输入和/或回归层612的输入。分类层610可以包括用于本文讨论的分类任务的一组或多组卷积层或其他组件。在一些示例中,分类任务的输出层可以输出可能性的张量(或其他数据结构),其中字段的离散部分指示环境的相关部分与分类(例如,被占用空间、对象分类、速度仓、朝向仓、高度仓)相关联的可能性。例如,分类层610的第一组层可以确定环境的各个部分是被占用还是未被占用和/或与各个对象分类相关联,分类层610的另一组层可以确定环境是否与估计的高度仓相关联,等等。在一些示例中,该组对象分类层的离散部分可以附加地或替代地包括与示例ml架构600已经在其上训练的每个对象分类相关联的可能性。换言
之,分类输出头部可以输出二进制指示,表明环境的部分是否与类别(例如,高度仓、对象分类、占用)相关联,或者分类输出头部可以输出回归值,可以对回归值应用nms算法来确定分类。回归层612的输出层可以输出正被回归的那些任务的值的字段,例如roi中心偏移、roi范围、速度偏移、朝向偏移、高度偏移等。
[0132]
分类层610和/或回归层612的各种输出可以聚合到估计的对象检测614中。例如,这可以包括从仓值中减去偏移量,至少基于部分地基于应用于分类和/或回归输出的非最大抑制技术来确定roi,至少部分地基于与两个或多个roi相关联的中心偏移量来确定两个或多个roi与铰接对象相关联,并将两个或多个roi分组为单个对象检测、对输出归一化,和/或将输出格式化为公共对象检测格式,例如在发布-订阅网络上传输的消息。在分类输出包括仓且回归输出包括偏移的示例中,例如可用于偏航、偏航率、高度、速度、加速度、对象范围等,分类可指示仓,它可以是值的范围(例如,每小时0到5米,0到10英里),并且(回归的)偏移可以指定要从仓的参考点减去的正值或负值。例如,参考点可以是仓的中心值(例如,指定范围为0到5米的仓中的3米)或仓的末端(例如,指定范围在0到5米之间的仓中的0米或5米)。注意,作为由本文讨论的ml模型输出的数据结构的部分指示的姿态可以包括对象的位置、中心和/或朝向(例如,朝向可以包括偏航)。在一些示例中,姿态可以附加地或替代地包括对象的范围。
[0133]
示例架构
[0134]
图7示出了用于训练ml模型以确定与对象相关联的速度和/或偏航率和/或使用ml模型来确定推理时的速度和/或偏航率的示例过程700的图示流程图。
[0135]
在操作702处,示例过程700可以包括根据本文讨论的任何技术从ml模型接收与对象检测的部分相关联的多个速度。在一些示例中,这样的速度可以包括环境速度(例如,环境中的速度的估计),而在其他示例中,速度可以表示像素速度(例如,像素空间/坐标中的速度)。在生成像素速度的那些示例中,可以执行到环境速度的转换,例如在2019年5月9日提交的标题为“object velocity from images”的美国专利申请16/408,195中详述的,其全部内容通过引用并入本技术。对象检测404可以与一个或多个部分(例如,像素704和像素706)相关联。例如,ml模型可以输出与像素704相关联的速度708和与像素706相关联的速度710。尽管图7描绘了两个像素,但对象检测404可以与更多或更少的像素(或其他离散部分)相关联。在图示示例中,与对象检测404相关联的对象正在执行右转。
[0136]
可以训练ml模型,使得与像素相关联的速度输出可以指示对象的相对应部分的运动的速度。在所描绘的实例中,对象可以是车辆,其能够围绕对象的中心712(或其他旋转点)旋转(例如,通过转动)。在这样的对象直线向前移动的情况下,与对象检测的各部分相关联的输出速度可以基本相同,而在对象正在转动的情况下,速度可以如图7中所描绘的那样变化。
[0137]
在一些示例中,最终环境表示的离散部分可以输出roi,该roi指示由对象占据的环境的一部分的中心、范围和/或其他维度以及与其相关联的置信度。在一些示例中,多个roi可以与同一对象相关联。确定哪些roi可以与同一对象相关联可以包括确定roi之间的对齐度(例如,确定联合交叉(iou))。先前的或基本上同时的操作可以包括确定一组roi中对齐度满足或超过对齐度阈值的一个roi,以便与对象相关联地输出。在至少一些示例中,可以基于例如基于相关联的速度、偏航率或可能包含在跟踪信息中的其他状态信息(其可
以包括对象的运动学和/或动态建模以解释此类转弯)及时向前传播先前检测到的对象来执行这样的对齐。确定要输出的roi可以包括:确定一组roi中的哪个roi与最大置信度分数相关联并且输出与对象相关联的那个roi。该过程至少是非最大抑制技术的一部分。可以使用附加的或替代的技术来选择与对象相关联的要输出的roi。
[0138]
操作702可以包括使用与对象相关联的roi输出来确定与输出roi相关联的像素(或其他离散部分)。例如,像素可以在roi内。可以至少部分地基于这些像素来完成操作702、714、720和/或722。
[0139]
在操作714处,示例过程700可以包括:根据本文讨论的任何技术至少部分地基于多个速度来确定最终速度716和/或偏航率718。在一些示例中,最终速度可以包括纵向分量和横向分量,并且偏航率可以是角速度,尽管可以设想另外的或替代的表示。确定与对象相关联的最终速度和/或偏航率可以包括求解回归(例如,线性回归或其他回归)。作为非限制性示例,可以通过使用以下公式执行线性回归来估计对象的刚体旋转:
[0140][0141]
其中,表示与环境表示(例如,像素704)的离散部分p相关联的速度输出;表示对象的纵向和/或横向速度(即最终速度716)(参考对象的中心712,o);表示对象的偏航率718(角速度);
×
表示交叉乘积算子;而表示与对象检测相关联的roi的中心712的位置和p(与相关联的离散部分的位置)之间的向量。当然,考虑任何其他运动学或动态约束,包括但不限于自行车模型、非刚性变换、耦合系统(例如但不限于铰接对象(例如公共汽车、火车等)),等等。此外,在至少一些示例中,对用于回归的相对应系统的选择可以至少部分地基于检测到的对象分类和/或子分类。
[0142]
在一些示例中,可以包括两个未知分量,横向速度和纵向速度,并且也可以是未知的。在这样的示例中,可以使用至少三个离散部分来形成方程组,该方程组可以求解这三个未知部分以确定最终速度716和/或偏航率718。可以使用更多或更少的离散部分。例如,更少的离散部分可以用于在包括单个未知部分的情况下。在使用来自附加像素的更多速度的示例中,确定最终速度可以包括:根据公式(1)为不同的离散部分确定方程组并确定线性回归以确定最终速度716和/或偏航率718。
[0143]
尽管在对与对象相关联的像素子集执行回归的上下文中进行了描述,但是每个像素具有独立且唯一的速度估计,但本公开并不意味着如此限制。在至少一些示例中,机器学习模型可以直接输出对象的线速度和/或角速度中的一项或多项。在这样的示例中,可以由模型执行对所识别的运动学和/或动态模型的等效回归,而无需明确提供它们。
[0144]
在一些示例中,ml模型可以输出与速度、角速度和/或离散部分相关联的协方差。在这样的示例中并且在使用比与离散部分相关的速度的最小数量更多(例如,当对横向速度、纵向速度和偏航率进行回归时,两个或三个)的情况下,与小于协方差阈值的协方差相关联的一个或多个速度(在位置、分类、速度、角速度和/或由模型输出的其他项中)可以被丢弃/不用于求解估计的速度。在一些示例中,最终(或估计的)速度716和/或偏航率718可以与跟踪相关联,并且在一些示例中,可以替代或补充本文讨论的其他速度检测方法。
[0145]
在一些示例中,操作702和/或714可以在推理时间期间(例如,在车辆上使用期间)完成,并且操作720和/或722(图7中示例过程700的虚线部分)可以作为远程计算设备和/或
车辆上的训练过程的一部分来完成。
[0146]
在操作720处,示例过程700可以包括根据本文讨论的任何技术至少部分地基于每像素速度的地面实况指示来确定每像素损失。例如,操作720可以包括:接收地面实况对象检测,所述地面实况对象检测指示与对象相关联的一组像素(或其他离散部分)和/或与各个像素(或其他离散部分)中的每个像素相关联的速度。与其他技术不同,与各个像素中的每个像素相关联的速度不是与整个对象相关联的速度,而是与对象的各个部分相关联的速度,这可能意味着速度可能不同,就像速度708和710不同一样。在至少一些示例中,这些速度可以不表示环境速度,而是表示指示像素空间中像素的速度的像素速度。这些速度可以从先前由车辆捕获的日志数据和/或从模拟中得出。在使用日志数据的那些示例中,检测到的对象的后续位置可用于确定对象速度(和/或角速度),并且随后使用上述类似算法(可能是相反的)分解以确定图像中基于每个像素的此类线速度和角速度。操作720可以包括:至少部分地基于确定由ml模型与像素相关联地输出的速度与由与相同或附近像素相关联的地面实况指示的速度(例如,与附近像素相关联的速度可以是在两个或更多个最近像素之间内插的速度,或者如果不存在精确匹配,则可以是最近像素的速度)之间的差异来确定损失。例如,确定差异可以包括确定速度之间的幅度和/或方向差异。该差异可用于确定li、l2、huber或其他损失。在一些示例中,可以关联于环境表示的每个像素、估计的对象检测和/或地面实况对象检测来计算这种损失。
[0147]
在操作722处,示例过程700可以包括根据本文讨论的任何技术改变ml模型的一个或多个参数以减少在操作720处确定的损失。在一些示例中,这可以包括减少与单个像素相关联的损失或减少与和估计对象检测的像素相关联的损失总和相关联的损失。
[0148]
示例条款
[0149]
a.一种方法,包括:接收与第一传感器类型相关联的第一对象检测和与第二传感器类型相关联的第二对象检测,第一对象检测和第二对象检测识别自主车辆周围环境中的对象;接收与对象相关联的跟踪,该跟踪识别对象的估计的先前位置、先前感兴趣区域或对象的先前速度中的至少一项;将第一对象检测、第二对象检测和跟踪的至少部分输入到机器学习(ml)模型中;从ml模型接收包括感兴趣区域、对象分类和与对象相关联的姿态的数据结构,该姿态指示与对象相关联的位置或偏航中的至少一项;至少部分地基于数据结构确定与对象相关联的更新的跟踪,更新的跟踪包括跟踪的至少部分、当前位置以及与对象相关联的感兴趣区域或偏航中的至少一项;以及至少部分地基于更新的跟踪来控制自主车辆。
[0150]
b.段落a的方法,其中,数据结构另外包括对象是静态的或动态的指示、环境的自上而下分割、偏航率、与对象相关联的速度或与对象相关联的加速度中的至少一项。
[0151]
c.段落a或b的方法,其中,确定更新的跟踪包括:确定感兴趣区域与先前感兴趣区域的对齐度;以及确定对齐度达到或超过阈值对齐度。
[0152]
d.段落a至c中任一项的方法,其中,第一对象检测和第二对象检测包括与对象相关联的初始估计,并且数据结构包括与对象相关联的一个或多个细化估计。
[0153]
e.段落a至d中任一项的方法,进一步包括:接收与在生成第一对象检测的时间之前的时间相关联的第一先验对象检测;接收与生成第二对象检测的时间之前的时间相关联的第二先验对象检测;以及除了第一对象检测、第二对象检测和跟踪之外,将第一先验对象
检测和第二先验对象检测输入ml模型。
[0154]
f.段落a至e中任一项的方法,其中,输入第一对象检测、第二对象检测和跟踪的至少部分包括:至少部分地基于第一对象检测、第二对象检测和跟踪的至少部分生成多通道图像;以及将多通道图像输入到ml模型中。
[0155]
g.一种系统,包括:一个或多个处理器;以及存储器,其存储处理器可执行指令,当由一个或多个处理器执行时,处理器可执行指令使系统执行以下操作,包括:接收第一输出和第二输出;接收与环境中的对象相关联的跟踪,跟踪识别对象的估计的先前位置、先前感兴趣区域或对象的先前速度中的至少一项;将第一输出、第二输出以及跟踪的至少部分输入到机器学习(ml)模型中;从ml模型接收数据结构,该数据结构包括感兴趣区域、对象分类和与对象相关联的姿态,该姿态指示与对象相关联的位置或偏航中的至少一项;以及至少部分地基于数据结构确定与对象相关联的更新的跟踪,该更新的跟踪包括跟踪的至少部分、当前位置以及与对象相关联的感兴趣区域或偏航中的至少一项。
[0156]
h.段落g的系统,其中,操作还包括至少部分地基于更新的跟踪来控制自主车辆。
[0157]
i.段落g或h的系统,其中,第一输出包括与对象相关联的初始估计,以及数据结构包括与对象相关联的细化估计。
[0158]
j.段落g至i中任一项的系统,其中,数据结构另外包括对象是静态的或动态的指示、环境的自上而下分割、偏航率、与对象相关联的速度或与对象相关联的加速度中的至少一项。
[0159]
k.段落g至j中任一项的系统,其中:第一输出是第一感知管线的输出;第二输出是第二感知管线的输出;第三输出指示与第一输出和第二输出相关联的环境的部分未被占用;以及除了第一输出和第二输出之外,第三输出被提供作为ml模型的输入。
[0160]
l.段落g至k中任一项的系统,其中,确定更新的跟踪包括:确定感兴趣区域与先前感兴趣区域的对齐度;以及确定对齐度达到或超过阈值对齐度。
[0161]
m.段落g至l中任一项的系统,其中,第一输出或第二输出中的至少一项包括以下至少一项:从自上而下的角度对环境的表示;环境的部分被占用的指示;环境中被遮挡部分的表示;与对象相关联的感兴趣区域;与对象相关联的分类;传感器数据分割;传感器数据的三维离散表示;与对象相关联的偏航;与对象相关联的偏航率;地面高度估计;与对象相关联的范围的集合;与对象相关联的速度;或者与对象相关联的加速度。
[0162]
n.段落g至m中任一项的系统,其中,操作还包括:接收与生成第一输出的时间之前的时间相关联的第一先验环境表示,其中,第一先验环境表示与第一感知管线相关联;接收与生成第二输出的时间之前的时间相关联的第二先验环境表示,其中,第一先验环境表示与第一感知管线相关联;以及除了第一输出、第二输出和跟踪之外,将第一先验环境表示和第二先验环境表示输入到所述ml模型中。
[0163]
o.段落g至n中任一项的系统,其中,输入第一输出、第二输出和跟踪的至少部分包括至少部分地基于第一输出、第二输出和跟踪的至少部分生成多通道图像。
[0164]
p.一种非暂时性计算机可读介质,其存储处理器可执行指令,当由一个或多个处理器执行时,处理器可执行指令使一个或多个处理器执行以下操作,包括:接收与第一过程相关联的第一输出和与第二过程相关联的第二输出;接收与环境中的对象相关联的跟踪,该跟踪识别对象的估计的先前位置、先前感兴趣区域或对象的先前速度中的至少一项;将
第一输出、第二输出和跟踪的至少部分输入到机器学习(ml)模型中;从ml模型接收数据结构,该数据结构包括感兴趣区域、对象分类和与对象相关联的姿态,该姿态指示与所述对象相关联的位置或偏航中的至少一项;以及至少部分地基于数据结构确定与对象关联的更新的跟踪,该更新的跟踪包括跟踪的至少部分、当前位置以及与对象相关联的感兴趣区域或偏航中的至少一项。
[0165]
q.段落p的非暂时性计算机可读介质,其中,第一输出包括与对象相关联的初始估计,以及数据结构包括与对象相关联的最终估计。
[0166]
r.段落p或q的非暂时性计算机可读介质,其中,数据结构另外包括对象是静止的或动态的指示、环境的自上而下分割、偏航率、与对象相关联的速度或与对象相关联的加速度中的至少一项。
[0167]
s.段落p至r中任一项的非暂时性计算机可读介质,其中,第一输出或第二输出中的至少一项包括以下至少一项:从自上而下的角度对环境的表示;环境的部分被占用的指示;环境中被遮挡部分的表示;与对象相关联的感兴趣区域;与对象相关联的分类;传感器数据分割;传感器数据的三维离散表示;与对象相关联的偏航;与对象相关联的偏航率;地面高度估计;与对象相关联的范围的集合;与对象相关联的速度;或者与对象相关联的加速度。
[0168]
t.段落p至s中任一项的非暂时性计算机可读介质,其中,输入第一输出、第二输出和跟踪的至少部分包括至少部分地基于第一输出、第二输出和跟踪的至少部分生成多通道图像。
[0169]
u.一种方法,其包括:接收与第一传感器类型相关联的第一对象检测和与第二传感器类型相关联的第二对象检测,第一对象检测和第二对象检测识别自主车辆周围环境中的对象;接收与对象相关联的跟踪,跟踪识别以下各项中的至少一项:对象的估计的先前位置、先前感兴趣区域或对象的先前速度;将第一对象检测、第二对象检测和跟踪的至少部分输入到机器学习(ml)模型中;从ml模型接收与对象相关联的感兴趣区域和与对象相关联的多个速度、与对象的部分相关联的多个速度中的速度;至少部分地基于多个速度确定与对象相关联的估计的速度和估计的偏航率;至少部分地基于感兴趣区域确定与对象相关联的更新的跟踪,更新的跟踪包括跟踪的至少部分以及估计的速度或估计的偏航率中的至少一项;以及至少部分地基于更新的跟踪来控制自主车辆。
[0170]
v.段落u的方法,还包括从ml模型接收以下各项中的至少一项:对象是静态的或动态的指示;环境的自上而下分割;对象的当前位置;或者与对象相关联的加速度。
[0171]
w.段落u或v的方法,其中,确定估计的速度和估计的偏航率包括根据方程组对速度执行回归。
[0172]
x.段落u至w中任一项的方法,还包括:接收指示与像素相关联的地面实况速度的地面实况数据;确定地面实况速度和速度之间的差异;以及改变ml模型的一个或多个参数以减少差异。
[0173]
y.段落u至x中任一项的方法,其中,输入第一对象检测、第二对象检测和跟踪的至少部分包括:至少部分地基于第一对象检测、第二对象检测和跟踪的至少部分生成多通道图像;以及将多通道图像输入到ml模型中。
[0174]
z.段落u至y中任一项的方法,其中,多个速度的速度与图像的像素相关联,并且多
个速度与图像的不同像素相关联。
[0175]
aa.段落u至z中任一项的方法,其中,第一对象检测是第一感知管线的输出;以及第二对象检测是第二感知管线的输出。
[0176]
ab.一种系统,其包括:一个或多个处理器;以及存储器,其存储处理器可执行指令,处理器可执行指令当由一个或多个处理器执行时,使系统执行以下操作,包括:接收与第一传感器类型相关联的第一对象检测和与第二传感器类型相关联的第二对象检测,第一对象检测和第二对象检测识别自主车辆周围环境中的对象;接收与对象相关联的跟踪,跟踪识别以下各项中的至少一项:对象的估计的先前位置、先前感兴趣区域或对象的先前速度;将第一对象检测、第二对象检测和跟踪的至少部分输入到机器学习(ml)模型中;从ml模型接收与对象相关联的感兴趣区域和与对象相关联的多个速度、与对象的部分相关联的多个速度中的速度;至少部分地基于多个速度确定与对象相关联的估计的速度和估计的偏航率;至少部分地基于感兴趣区域确定与对象相关联的更新的跟踪,更新的跟踪包括跟踪的至少部分以及估计的速度或估计的偏航率中的至少一项;以及至少部分地基于更新的跟踪来控制自主车辆。
[0177]
ac.段落ab的系统,其中,操作还包括:从ml模型接收以下各项中的至少一项:对象是静态的或动态的指示;环境的自上而下分割;对象的当前位置;或者与对象相关联的加速度。
[0178]
ad.段落ab或ac中任一项的系统,其中,输入第一对象检测、第二对象检测和跟踪的至少部分包括:至少部分地基于第一对象检测、第二对象检测和跟踪的至少部分生成多通道图像;以及将多通道图像输入到ml模型中。
[0179]
ae.段落ab至ad中任一项的系统,其中,多个速度中的速度与图像的像素相关联,并且多个速度与图像的不同像素相关联。
[0180]
af.段落ab至ae中任一项的系统,其中,第一对象检测是第一感知管线的输出;以及第二对象检测是第二感知管线的输出。
[0181]
ag.段落ab至af中任一项的系统,其中,第一对象检测或第二对象检测中的至少一项包括以下各项中的至少一项:从自上而下的角度对环境的表示;对象的分类、位置、占据的区域或状态的指示;与对象相关联的速度、加速度、偏航或偏航率;传感器数据分割;或者环境中被遮挡部分的表示。
[0182]
ah.段落ab至ag中任一项的系统,其中,多个速度是由ml模型输出的速度集合的子集;速度集合中的每个速度与协方差相关联;以及方法还包括:至少部分地基于确定多个速度与满足或超过阈值协方差的协方差相关联来确定要输出多个速度。
[0183]
ai.一种存储处理器可执行指令的非暂时性计算机可读介质,该处理器可执行指令当由一个或多个处理器执行时,使一个或多个处理器执行以下操作,包括:接收与第一传感器类型相关联的第一对象检测和与第二传感器类型相关联的第二对象检测,第一对象检测和第二对象检测识别自主车辆周围环境中的对象;接收与对象相关联的跟踪,跟踪识别以下各项中的至少一项:对象的估计的先前位置、先前感兴趣区域或对象的先前速度;将第一对象检测、第二对象检测和跟踪的至少部分输入到机器学习(ml)模型中;从ml模型接收与对象相关联的感兴趣区域和与对象相关联的多个速度、与对象的部分相关联的多个速度中的速度;至少部分地基于多个速度确定与对象相关联的估计的速度和估计的偏航率;至
少部分地基于感兴趣区域确定与对象相关联的更新的跟踪,更新的跟踪包括跟踪的至少部分以及估计的速度或估计的偏航率中的至少一项;以及至少部分地基于更新的跟踪来控制自主车辆。
[0184]
aj.段落ai的非暂时性计算机可读介质,其中,操作还包括:从ml模型接收以下各项中的至少一项:对象是静态的或动态的指示;环境的自上而下分割;对象的当前位置;或者与对象相关联的加速度。
[0185]
ak.段落ai或aj中任一项的非暂时性计算机可读介质,其中,输入第一对象检测、第二对象检测和跟踪的至少部分包括:至少部分地基于第一对象检测、第二对象检测和跟踪的至少部分生成多通道图像;以及将多通道图像输入到ml模型中。
[0186]
al.段落ai至ak中任一项的非暂时性计算机可读介质,其中,多个速度中的速度与图像的像素相关联,并且多个速度与图像的不同像素相关联。
[0187]
am.段落ai至al中任一项的非暂时性计算机可读介质,其中,第一对象检测或第二对象检测中的至少一项包括以下各项中的至少一项:从自上而下的角度对环境的表示;对象的分类、位置、占据的区域或状态的指示;与对象相关联的速度、加速度、偏航或偏航率;传感器数据分割;或者环境中被遮挡部分的表示。
[0188]
an.段落ai至am中任一项的非暂时性计算机可读介质,其中,多个速度是由ml模型输出的速度集合的子集;速度集合中的每个速度与协方差相关联;以及方法还包括:至少部分地基于确定多个速度与满足或超过阈值协方差的协方差相关联来确定要输出多个速度。
[0189]
ao.段落w至an中任一项的方法,其中,求解方程组包括至少部分地基于方程组确定线性回归。
[0190]
ap.段落u的方法,其中,第一对象检测和第二对象检测包括与对象相关联的初始估计,并且数据结构包括与对象相关联的一个或多个细化估计。
[0191]
aq.段落u至ap中任一项的方法,其中:第一对象检测是第一感知管线的输出;第二对象检测是第二感知管线的输出;第三输出指示与第一输出和第二输出相关联的环境的部分未被占用;以及除了第一输出和第二输出之外,第三输出被提供作为ml模型的输入。
[0192]
ar.段落u至aq中任一项的方法,其中,第一对象检测或第二对象检测中的至少一项包括以下至少一项:从自上而下的角度对环境的表示;行人或动物正在站立、行走或奔跑的指示;对制动器或其他指示灯的状态或位置中的至少一项的指示;对象是摩托车手的指示;环境的部分被占用的指示;环境中被遮挡部分的表示;与对象相关联的感兴趣区域;与对象相关联的分类;传感器数据分割;传感器数据的三维离散表示;与对象相关联的偏航;与对象相关联的偏航率;地面高度估计;与对象相关联的范围的集合;与对象相关联的速度;或者与对象相关联的加速度。
[0193]
as.段落u至ar中任一项的方法,还包括:接收与生成第一对象检测的时间之前的时间相关联的第一先验环境表示,其中,第一先验环境表示与第一感知管线相关联;接收与生成第二对象检测的时间之前的时间相关联的第二先验环境表示,其中,第一先验环境表示与第一感知管线相关联;以及除了第一输出、第二输出和跟踪之外,将第一先验环境表示和第二先验环境表示输入到ml模型中。
[0194]
at.一种自主车辆,包括段落g-o或ab-ah中任一项的系统。
[0195]
au.一种系统,包括:一个或多个处理器;以及存储器,其存储处理器可执行指令,
当由一个或多个处理器执行时,处理器可执行指令使系统执行操作,包括:段落a-f、u-aa或ao-as中任一项的方法。
[0196]
结论
[0197]
尽管已经以特定于结构特征和/或方法行为的语言描述了主题,但是应当理解,在所附权利要求中定义的主题不一定限于所描述的特定特征或行为。相反,特定特征和行为被公开为实施权利要求的示例形式。
[0198]
本文描述的组件表示可以存储在任何类型的计算机可读介质中并且可以在软件和/或硬件中实现的指令。上述所有方法和过程可以体现在由一个或多个计算机或处理器、硬件或其某种组合执行的软件代码组件和/或计算机可执行指令中,并且通过由一个或多个计算机或处理器、硬件或其某种组合执行的软件代码组件和/或计算机可执行指令完全自动化。一些或所有方法可以替代地体现在专门的计算机硬件中。
[0199]
在此讨论的至少一些过程被图示为逻辑流程图,其每个操作表示可以在硬件、软件或其组合中实现的操作序列。在软件的上下文中,操作表示存储在一个或多个非暂时性计算机可读存储介质上的计算机可执行指令,所述计算机可执行指令当由一个或多个处理器执行时,使计算机或自主车辆执行所记载的操作。通常,计算机可执行指令包括执行特定功能或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等。描述操作的顺序不旨在被解释为限制,并且任何数量的描述的操作可以以任何顺序和/或并行组合以实现过程。
[0200]
除非另有明确说明,诸如“可以”、“能”、“可”或“可能”等条件性语言在上下文中被理解为表示:某些示例包括,而其他示例不包括,某些特征、元素和/或步骤。因此,这种条件性语言通常不旨在暗示某些特征、元素和/或步骤以对于一个或多个示例是必需的任何方式,或者一个或多个示例必须包括用于在有或没有用户输入或提示的情况下做出决定的逻辑,无论在任何特定示例中是否包括或将要执行某些特征、元素和/或步骤。
[0201]
除非另有明确说明,否则诸如短语“x、y或z中的至少一项”之类的合取语言应理解为表示:项目、术语等可以是x、y或z,或其任何组合,包括每个元素的倍数。除非明确描述为单数,否则“一个”表示单数和复数。
[0202]
在此描述和/或在附图中描绘的流程图中的任何常规描述、元素或框应被理解为潜在地表示模块、段或代码部分,其包括用于实现特定逻辑功能的一个或多个计算机可执行指令或例程中的元素。替代实现方式被包括在本文描述的示例的范围内,其中元素或功能可以被删除,或与所示出或讨论的内容乱序地执行,包括基本上同步地、以相反的顺序、具有附加操作或省略操作,这取决于所涉及的功能,如本领域技术人员将理解的。注意,该术语实质上可以表示一个范围。例如,基本同时可以指示两个活动在彼此的时间范围内发生,基本相同的尺寸可以指示两个元素具有在彼此范围内的尺寸等。
[0203]
可以对上述示例进行许多变化和修改,上述示例的元素将被理解为在其他可接受的示例中。所有这样的修改和变化都旨在被包括在本公开的范围内并受所附权利要求保护。
再多了解一些

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

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

相关文献