可左右滑动选省市

一种用于自动驾驶的用于训练神经网络对象检测模型的用于确定锚框的方法

更新时间:2024-09-24
一种用于自动驾驶的用于训练神经网络对象检测模型的用于确定锚框的方法 专利申请类型:实用新型专利;
源自:美国高价值专利检索信息库;

专利名称:一种用于自动驾驶的用于训练神经网络对象检测模型的用于确定锚框的方法

专利类型:实用新型专利

专利申请号:CN202010537509.5

专利申请(专利权)人:百度(美国)有限责任公司
权利人地址:美国加利福尼亚州桑尼维尔波尔多道1195

专利发明(设计)人:蔡家伟,崔泰恩,郭玉亮,陈光,张伟德

专利摘要:涉及一种用于自动驾驶的用于确定训练神经网络对象检测模型用锚框的方法。在一个实施例中,基于一组边界框候选项的各自的维度(例如,宽度和高度),将一组边界框候选项绘制到2D空间上。基于边界框候选项在2D空间上的分布密度,对边界框候选项进行聚类。对于边界框候选项的聚类中的每一个,确定锚框表示对应的聚类。基于表示聚类的锚框,训练神经网络模型。所述神经网络模型被用于基于由自动驾驶车辆的传感器(例如,相机、LIDAR和/或RADAR)捕获的图像和/或点云检测或识别对象。

主权利要求:
1.一种用于自动驾驶的用于确定训练神经网络对象检测模型用锚框的方法,所述方法包括:基于多个边界框的各自的维度,在二维(2D)空间中绘制所述多个边界框;
基于所述多个边界框在所述2D空间上的分布密度,将所述多个边界框聚类为所述边界框的一个或多个聚类;
对于所述边界框的所述聚类中的每一个,确定锚框以表示对应的聚类;
确定分配给所述锚框的所述边界框的分布是否满足预定的条件;
响应于确定所述预定的条件没有被满足,调整所述锚框中的至少一个锚框在所述2D空间上的维度;以及使用所述锚框训练用于检测对象的神经网络模型,其中所述神经网络模型被用于基于由自动驾驶车辆的传感器捕获的图像或点云中的至少一个来检测对象。
2.如权利要求1所述的方法,其中所述2D空间的X轴表示边界框的宽度,以及所述2D空间的Y轴表示所述边界框的高度。
3.如权利要求1所述的方法,其中对所述边界框进行聚类以及确定锚框以表示所述聚类中的每一个包括:对于所述边界框中的每一个,计算所述边界框与所述锚框中的每一个锚框之间的匹配度;以及将所述边界框分配给所述锚框中的具有最大重叠面积的一个锚框。
4.如权利要求3所述的方法,还包括:
迭代地对每一个边界框与每一个锚框之间的匹配度进行计算,以及将每一个边界框分配给所述锚框中的一个锚框,直到满足所述预定的条件。
5.如权利要求4所述的方法,其中所述预定的条件要求分配给所述锚框中的每一个锚框的边界框的数量大于预定的阈值。
6.如权利要求4所述的方法,其中所述预定的条件要求所述锚框中的每一个锚框落入所述边界框在所述2D空间上的密集区内。
7.如权利要求4所述的方法,其中所述预定的条件要求所述边界框中的分配给特定锚框的每一个边界框的纵横比在预定的范围内。
8.如权利要求3所述的方法,其中所述边界框和每一个锚框之间的所述匹配度是基于所述边界框和每一个锚框之间的重叠面积确定的。
9.如权利要求8所述的方法,其中计算所述边界框和每一个锚框之间的匹配度包括计算所述边界框和每一个锚框之间的交并(IOU)比以表示所述匹配度。
10.一种用于自动驾驶的用于确定训练神经网络对象检测模型用锚框的装置,所述装置包括:绘制装置,被配置为基于多个边界框的各自的维度,在二维(2D)空间中绘制所述多个边界框;
聚类装置,被配置为基于所述多个边界框在所述2D空间上的分布密度,将所述多个边界框聚类为所述边界框的一个或多个聚类,并且进一步被配置为确定分配给所述锚框的所述边界框的分布是否满足预定的条件,以及响应于确定所述预定的条件没有被满足,调整所述锚框中的至少一个锚框在所述2D空间上的维度;
锚框确定装置,被配置为对于所述边界框的所述聚类中的每一个,确定锚框以表示对应的聚类;以及训练装置,被配置为使用所述锚框训练用于检测对象的神经网络模型,其中所述神经网络模型被用于基于由自动驾驶车辆的传感器捕获的图像或点云中的至少一个来检测对象。
11.如权利要求10所述的装置,其中所述2D空间的X轴表示边界框的宽度,以及所述2D空间的Y轴表示所述边界框的高度。
12.如权利要求10所述的装置,其中所述聚类装置进一步被配置为:对于所述边界框中的每一个,计算所述边界框与所述锚框中的每一个锚框之间的匹配度;以及将所述边界框分配给所述锚框中的具有最大重叠面积的一个锚框。
13.如权利要求12所述的装置,其中所述聚类装置进一步被配置为:迭代地对每一个边界框与每一个锚框之间的匹配度进行计算,以及将每一个边界框分配给所述锚框中的一个锚框,直到满足所述预定的条件。
14.如权利要求13所述的装置,其中所述预定的条件要求分配给所述锚框中的每一个锚框的边界框的数量大于预定的阈值。
15.如权利要求13所述的装置,其中所述预定的条件要求所述锚框中的每一个锚框落入所述边界框在所述2D空间上的密集区内。
16.如权利要求13所述的装置,其中所述预定的条件要求所述边界框中的分配给特定锚框的每一个边界框的纵横比在预定的范围内。
17.如权利要求12所述的装置,其中所述边界框和每一个锚框之间的所述匹配度是基于所述边界框和每一个锚框之间的重叠面积确定的。
18.如权利要求17所述的装置,其中所述聚类装置进一步被配置为:计算所述边界框和每一个锚框之间的交并(IOU)比以表示所述匹配度。
19.一种非暂时性机器可读介质,其中存储有指令,当由处理器执行时,所述指令使得所述处理器执行根据权利要求1‑9中任一项所述的方法。
20.一种数据处理系统,包括:
处理器;以及
连接到所述处理器用于存储指令的存储器,当由所述处理器执行时,所述指令使得所述处理器执行根据权利要求1‑9中任一项所述的方法。 说明书 : 一种用于自动驾驶的用于训练神经网络对象检测模型的用于
确定锚框的方法技术领域[0001] 本公开的实施例一般涉及操作自动车辆。更具体地,本公开的实施例涉及训练用于自动驾驶的神经网络对象检测模型。背景技术[0002] 以自动模式(例如,无人驾驶)操作的车辆可以免除乘坐者,尤其是驾驶员的一些驾驶相关责任。当在自动模式下操作时,车辆可以使用车载传感器导航到各种位置,从而允许车辆以最小的人机交互或者在一些没有任何乘客的情况下行驶。[0003] 运动规划和控制是自动驾驶中的关键操作。在自动驾驶中,重要的是检测自动驾驶车辆(ADV)周围的对象,以便为ADV规划轨迹以导航通过该驾驶环境。最近,已经使用人工智能(AI)进行对象检测。使用深度神经网络的对象检测模型通常利用锚框(AnchorBox)的概念,锚框被预定义为具有确定的大小和形状。[0004] 神经网络通过回归锚框上的变化估计对象边界框(BoundingBox),而不是直接估计对象边界框的宽度和高度。结果,良好的锚框选择等同于提供边界框估计上的良好的先验,并且因此神经网络更容易学习和产生更高的对象检测性能。然而,缺乏识别和选择用于神经网络对象检测的适当或良好的锚框的有效方式。发明内容[0005] 为解决以上技术问题,本公开的一个方面提供了一种用于自动驾驶的用于确定训练神经网络对象检测模型用锚框的方法,所述方法包括:基于多个边界框的各自的维度,在二维(2D)空间中绘制所述多个边界框;基于所述多个边界框在所述2D空间上的分布密度,将所述多个边界框聚类为所述边界框的一个或多个聚类;对于所述边界框的所述聚类中的每一个,确定锚框以表示对应的聚类;以及使用所述锚框训练用于检测对象的神经网络模型,其中所述神经网络模型被用于基于由自动驾驶车辆的传感器捕获的图像或点云中的至少一个来检测对象。[0006] 此外,本公开的另一个方面提供了一种用于自动驾驶的用于确定训练神经网络对象检测模型用锚框的装置,所述装置包括:绘制装置,被配置为基于多个边界框的各自的维度,在二维(2D)空间中绘制所述多个边界框;聚类装置,被配置为基于所述多个边界框在所述2D空间上的分布密度,将所述多个边界框聚类为所述边界框的一个或多个聚类;锚框确定装置,被配置为对于所述边界框的所述聚类中的每一个,确定锚框以表示对应的聚类;以及训练装置,被配置为使用所述锚框训练用于检测对象的神经网络模型,其中所述神经网络模型被用于基于由自动驾驶车辆的传感器捕获的图像或点云中的至少一个来检测对象。[0007] 此外,本公开的另一个方面提供了一种非暂时性机器可读介质,其中存储有指令,当由处理器执行时,所述指令使得所述处理器执行上文所述的用于自动驾驶的用于确定训练神经网络对象检测模型用锚框的方法。[0008] 此外,本公开的另一个方面提供了一种数据处理系统,包括:处理器;以及连接到所述处理器用于存储指令的存储器,当由所述处理器执行时,所述指令使得所述处理器执行上文所述的用于自动驾驶的用于确定训练神经网络对象检测模型用锚框的方法。附图说明[0009] 本公开的实施例通过示例的方式示出并且不限于附图中的图,在附图中相同的附图标记表示相似的元件。[0010] 图1是示出根据一个实施例的神经网络训练系统的框图。[0011] 图2A示出根据一个实施例的具有用于训练神经网络的不同边界框的图像的示例。[0012] 图2B示出表示根据一个实施例的神经网络的训练过程的输出的数据结构。[0013] 图3是示出根据一个实施例的锚框选择系统的框图。[0014] 图4示出根据一个实施例的具有分布在其上的边界框的二维空间。[0015] 图5A和5B是示出根据某些实施例的用于选择锚框的过程的示例的流程图。[0016] 图6是示出根据一个实施例的自动驾驶车辆的框图。[0017] 图7是示出根据一个实施例的自动驾驶车辆的示例的框图。[0018] 图8是示出根据一个实施例的与自动驾驶车辆一起使用的感知和规划系统的示例的框图。具体实施方式[0019] 将参考以下讨论的细节描述本公开的各个实施例和方面,并且附图将示出各个实施例。以下描述和附图是本公开的说明并且不应被解释为限制本公开。描述了许多具体细节以提供对本公开的各种实施例的全面理解。然而,在某些情况下,为了提供对本公开的实施例的简要讨论,没有描述公知或常规的细节。[0020] 说明书中对“一个实施例”或“实施例”的引用意味着结合该实施例描述的特别特征、结构或特性可包括在本公开的至少一个实施例中。在说明书中的各个地方出现的短语“在一个实施例中”不一定都指同一实施例。[0021] 根据一些实施例,为了从一组边界框候选项中选择良好的锚框,当选择边界框候选项时,将边界框候选项用作训练用于对象检测的神经网络模型的训练集。将边界框候选项绘制到具有以宽度作为x轴并且以高度作为y轴的二维(2D)空间中。首先,基于表示边界框候选项的点的密度来选择表示一个或多个锚框的一个或多个点。然后通过基于边界框候选项与锚框中的每一个的关系分配边界框候选项,对边界框候选项进行聚类(Cluster)。迭代地调整至少一个锚框的位置,并且考虑到锚框的边界框候选项的分布满足预定的条件,在所述预定的条件下,锚框成为用于训练神经网络的最终锚框。结果,可以训练神经网络以使用更好的用于对象检测的锚框,而不必搜索用于检测对象的不必要的更大搜索空间,从而提高了实时对象检测效率。[0022] 根据一个实施例,基于一组边界框候选项的各自的维度(例如,宽度和高度),将一组边界框候选项绘制到2D空间上。基于边界框候选项在2D空间上的分布密度,对边界框候选项进行聚类。对于边界框候选项的聚类中的每一个,确定锚框以表示对应的聚类。基于表示聚类的锚框,训练神经网络模型。所述神经网络模型被用于基于由自动驾驶车辆的传感器(例如,相机、LIDAR和/或RADAR)捕获的图像和/或点云检测或识别对象。[0023] 在一个实施例中,2D空间的X轴表示边界框的宽度,而2D空间的Y轴表示边界框的高度。当对边界框候选项进行聚类时,对于边界框候选项中的每一个,计算边界框候选项与锚框中的每一个锚框之间的匹配度。然后,将该边界框候选项分配给具有最高匹配度的锚框或与其相关联。在一个实施例中,基于边界框候选项和锚框之间的重叠面积确定边界框候选项和锚框之间的匹配度。在特殊的实施例中,基于边界框候选项的面积与锚框的面积之间的交并(intersection‑over‑union,IOU)比来计算匹配度。[0024] 根据一个实施例,迭代地执行边界框候选项的聚类的过程,并且在每次迭代期间,调整至少一个锚框的位置,并且重新计算每一个边界框候选项与每一个锚框之间的匹配度,直到分配给锚框的边界框候选项的分布满足预定的条件。如果与锚框中的每一个相关联的边界框的数量大于预定的阈值,则满足所述预定的条件。当与锚框中的每一个相关联的边界框候选项的数量之间的差小于预定的阈值(例如,边界框候选项的数量相似)时,则满足所述预定的条件。当锚框中的每一个落入边界框候选项的密集区内时,则满足所述预定的条件。当聚类内的边界框候选项的纵横比相似时,则满足所述预定的条件。[0025] 图1是示出根据一个实施例的神经网络对象检测训练系统的框图。参考图1,系统100是神经网络(NN)训练系统,其包括作为神经网络模型训练的对象检测模型101。由自动驾驶车辆的一个或多个传感器捕获的包括一个或多个已知对象的一组图像被用于训练对象检测模型101,以基于已知参考边界框和从一组候选边界框中选择的一组锚框检测和识别对象。[0026] 在示例中,图像102被馈送到对象检测模型101,其中图像102包括已知对象。此外,已知参考边界框103(也称为地面实况边界框),其已被配置为覆盖并且匹配由图像102捕捉的对象用于检测对象的目的。一组锚框104被用作训练点,以训练NN模型101以检测和识别对象。在训练期间的每个迭代的输出105包括基于对应的锚框104和参考边界框103(Cx0、Cy0)的预测边界框。输出105包括指示预测边界框(Cx,Cy)的中心和预测边界框(Cx,Cy)与参考边界框103之间的偏移(Δx,Δy)的信息,以及预测边界框检测对象的概率。[0027] 使用损失函数106计算损失,其中损失表示地面实况和对应的锚框之间的误差。在一个实施例中,损失函数106可以由下式表示:[0028] Loss=(Cx0‑Cx)^2+(Cy0–Cy)^2[0029] 考虑到所有锚框104,可以通过对每一个锚框的单独的损失求和,计算每次迭代的总损失。然后,将损失反馈到模型101,并且执行另一迭代,直到满足预定的条件,诸如总损失低于预定的阈值或者迭代的次数达到预定的最大迭代次数。[0030] 为了说明的目的,现在参考图2A,图像200被用来训练诸如NN模型101的NN模型。通常,图像200将被分割为多个单元,并且模型将搜索每个单元以检测其中是否检测到对象。因此,模型必须搜索图像200内的所有空间,这可能花费很长时间和计算资源完成。根据一个实施例,如果定义并利用一组锚框引导模型以执行对象的搜索,则可以大大减少搜索空间,并且可以显著提高搜索的速度和准确度。[0031] 在该示例中,参考图1和2,为了训练的目的,对象201(例如,车辆)是已知的,并且提供地面实况边界框202以覆盖对象。这意味着如果在地面实况边界框202内执行搜索,则可以快速地识别对象201。为了训练NN模型,利用一组边界框候选项203‑205训练NN模型的权重和偏移。尽管仅存在三个边界框候选项,但可利用更多候选项。NN模型的输出105包括基于地面实况框202和边界框候选项203‑205,描述边界框候选项203‑205中的每一个的精度的信息。[0032] 在一个实施例中,NN模型的输出包括中心、偏移和对于由图2B所示的NN模型确定的对于预测边界框中的每一个检测对象的概率。参考图2B,在该示例中,NN模型的输出包括对于边界框候选项251中的每一个,检测对象的概率252、预测框253和254的中心以及偏移255和256。使用损失函数106计算损失,并且基于该损失来调整NN模型的权重和偏移,并且迭代地执行训练,直到如上所述出现预定的条件。[0033] 返回参考图1,如上所述,锚框104的大小和形状是重要的,因为这些参数将定义模型101将如何鉴于对应的地面实况103来搜索和检测图像102中的对象。在一个实施例中,锚框104是通过锚框选择模块或系统107使用一组一个或多个选择规则109而从一组边界框候选项108中识别出和选择的。选择锚框104,以表示大部分边界框候选项,例如,具有类似的大小和形状以及纵横比等的边界框候选项。[0034] 图3是示出根据一个实施例的锚框选择系统的示例的框图。参考图3,系统300被配置为对一组边界框候选项进行聚类,并且识别和选择锚框(或聚类代表)以表示这些聚类中的每一个。在一个实施例中,锚框选择模块107包括绘制模块301、边界框聚类模块302和锚框确定模块303。绘制模块301被配置为基于一组边界框候选项108的各自的维度(例如,宽度和高度),将一组边界框候选项108绘制到2D空间上。聚类模块302被配置为基于边界框候选项在2D空间上的分布密度,将边界框候选项聚类为一个或多个聚类。对于边界框候选项的聚类中的每一个,锚框确定模块303确定锚框以表示对应的聚类。然后,可以基于表示聚类的锚框训练神经网络模型。所述神经网络模型被用于基于由自动驾驶车辆的传感器(例如,相机、LIDAR和/或RADAR)捕获的图像和/或点云来检测或识别对象。[0035] 在一个实施例中,现在参考图4,2D空间的X轴表示边界框的宽度,而2D空间的Y轴表示边界框的高度。在2D空间中示出的每个点表示具有与其在2D空间上的坐标(x,y)对应的宽度和高度的边界框候选项。当对边界框候选项进行聚类时,对于边界框候选项中的每一个,计算所述边界框候选项与所述锚框中的每一个锚框之间的匹配度(也称为相似度得分)。匹配度指的是锚框与边界框候选项之间在大小和形状上的相似度。然后,将候选边界框分配给具有最高匹配度的锚框或与其相关联。在一个实施例中,基于边界框候选项与锚框之间的重叠区域确定边界框候选项和锚框之间的匹配度。在特定实施例中,基于边界框候选项的区域与锚框的区域之间的交并(IOU)比计算匹配度。[0036] 在该示例中,基于边界框候选项的种群密度(PopulationDensity),选择诸如锚框401‑403的一组锚框。对于锚框401‑403中的每一个,计算锚框与每一个边界框候选项之间的匹配度。将每一个边界框候选项分配给所述锚框中的具有最高匹配度的每一个锚框。在该示例中,存在698个被分配给锚框401的边界框候选项、1957个被分配给锚框402的边界框候选项、以及2018个被分配给锚框403的边界框候选项。[0037] 根据一个实施例,迭代地执行聚类边界框候选项的过程,并且在每次迭代期间,调整至少一个锚框的位置,并且重新计算每一个边界框候选项与每一个锚框之间的匹配度,直到分配给锚框的边界框候选项的分布满足预定的条件。如果与所述锚框中的每一个锚框相关联的边界框的数量大于预定的阈值,则满足所述预定的条件。当与所述锚框中的每一个锚框相关联的边界框候选项的数量之间的差小于预定的阈值(例如,边界框候选项的数量相似)时,则满足所述预定的条件。当所述锚框中的每一个锚框落入边界框候选项的密集区内时,则满足所述预定的条件。当聚类内的边界框候选项的纵横比相似时,则满足所述预定的条件。最后,选择一组最终锚框用于训练如上所述的NN模型。[0038] 图5A是示出根据一个实施例的用于确定锚框的过程的示例的流程图。过程500可以由可包括软件、硬件或其组合的处理逻辑执行。例如,过程500可由图3的系统300执行。参照图5A,在框501处,处理逻辑将一组边界框确定为不同维度(例如,大小和形状)的一组训练边界框候选项。在框502处,基于边界框的各自的维度将边界框绘制到2D空间上。2D空间的X轴表示边界框的宽度而2D空间的Y轴表示边界框的高度。在框503处,基于边界框在2D空间上的分布种群密度,将边界框聚类为一个或多个边界框聚类。在框504处,对于边界框的聚类中的每一个,处理逻辑确定锚框以表示对应的聚类。在框505处,使用所述锚框训练用于检测对象的NN模型,其中所述NN模型被用于在自动驾驶期间检测对象。[0039] 图5B是示出根据另一实施例的用于确定锚框的过程的示例的流程图。处理550可以由可包括软件、硬件或其组合的处理逻辑执行。参照图5B,在框551处,处理逻辑基于在2D空间上绘制的边界框的分布确定初始的一组锚框。在框552处,处理逻辑计算每一个边界框候选项与每一个锚框之间的IOU比。在框553处,将每一个边界框候选项分配给所述锚框中的具有最高IOU比的一个锚框。在框554处,确定当前的一组锚框是否满足预定的条件。如果所述预定的条件没有被满足,则在框555处,调整所述锚框中的至少一个锚框的位置,以及迭代地执行框551‑554的以上操作,直到满足所述预定的条件。[0040] 图6是示出根据本公开的一个实施例的自动驾驶车辆的框图。参考图6,自动驾驶车辆601可以通过网络通信地连接到一个或多个服务器,该网络可以是任何类型的有线或无线的网络,比如局域网(LAN),诸如因特网之类的广域网(WAN),蜂窝网络,卫星网络,或其组合。服务器103‑104可以是任何类型的服务器或服务器集群,诸如Web或云服务器、应用服务器、后端服务器或其组合。服务器103‑104可以是数据分析服务器、内容服务器、交通信息服务器、地图和兴趣点(MPOI)服务器或位置服务器等。[0041] 自动驾驶车辆是指能够被配置为处于自动模式的车辆,在自动模式中,车辆在驾驶员很少或没有输入的情况下导航通过环境。这种自动驾驶车辆可包括具有一个或多个传感器的传感器系统,所述传感器被配置为检测关于车辆操作环境的信息。车辆及其相关联的控制器使用检测的信息导航通过环境。自动驾驶车辆601可以以手动模式、全自动模式或部分自动模式操作。[0042] 在一个实施例中,自动驾驶车辆601包括但不限于感知和规划系统610、车辆控制系统611、无线通信系统612、用户接口系统613、信息娱乐系统114和传感器系统615。自动驾驶车辆601还可包括普通车辆中包括的某些常见组件,例如引擎、车轮、方向盘、变速器等,这些组件可以被车辆控制系统611和/或感知和规划系统610使用各种通信信号和/或命令来控制,例如加速信号或命令、减速信号或命令、转向信号或命令、制动信号或命令等。[0043] 组件610‑615可以经由互连、总线、网络或其组合彼此通信地连接。例如,组件610‑615可以经由控制器局域网(CAN)总线彼此通信地连接。CAN总线是一种车辆总线标准,其被设计为允许微控制器和设备在没有主机的应用中彼此通信。它是基于消息的协议,最初被设计用于汽车内的多路电线,但是也用于许多其它环境中。[0044] 现在参考图7,在一个实施例中,传感器系统615包括但不限于一个或多个相机711、全球定位系统(GPS)单元712、惯性测量单元(IMU)713、雷达单元714以及光检测和范围(LIDAR)单元715。GPS系统712可包括可操作以提供关于自动车辆的位置的信息的收发器。IMU单元713可以基于惯性加速度感测自动驾驶车辆的位置和方向变化。雷达单元714可以表示使用无线电信号感测自动驾驶车辆的局部环境内的对象的系统。在一些实施例中,除了感测对象之外,雷达单元714还可以感测对象的速度和/或前进方向。LIDAR单元715可以使用激光感测自动驾驶车辆所处的环境中的对象。LIDAR单元715可包括一个或多个激光源、激光扫描器以及一个或多个检测器,以及其他系统组件。相机711可包括一个或多个设备以捕获自动驾驶车辆周围的环境的图像。相机711可以是静态相机和/或摄影机。相机可以是机械可移动的,例如通过将相机安装在旋转和/或倾斜的平台上。[0045] 传感器系统615还可包括其他传感器,例如声纳传感器、红外传感器、转向传感器、油门传感器、制动传感器和音频传感器(例如麦克风)。音频传感器可以被配置为捕获来自自动驾驶车辆周围的环境的声音。转向传感器可以被配置为感测方向盘、车辆的车轮或其组合的转向角。油门传感器和制动传感器分别感测车辆的油门位置和制动位置。在一些情况下,油门传感器和制动传感器可以集成为集成的油门/制动传感器。[0046] 在一个实施例中,车辆控制系统611包括但不限于转向单元701、油门单元702(也称为加速单元)和制动单元703。转向单元701用于调节车辆的方向或前进方向。油门单元702用于控制电动机或发动机的速度,进而控制车辆的速度和加速度。制动单元703通过提供摩擦力以使车辆的车轮或轮胎变慢使车辆减速。注意,图7所示的组件可以用硬件、软件或其组合实现。[0047] 返回参考图6,无线通信系统612允许在自动驾驶车辆601和外部系统(诸如设备、传感器、其他车辆等)之间的通信。例如,无线通信系统612可以直接或经由通信网络与一个或多个设备无线通信。无线通信系统612可以使用任何蜂窝通信网络或无线局域网(WLAN),例如使用WiFi与另一组件或系统通信。无线通信系统612可以例如使用红外链路、蓝牙等直接与设备(例如,乘客的移动设备、显示设备、车辆601内的扬声器)通信。用户接口系统613可以是在车辆601内实现的外围设备的一部分,包括例如键盘、触摸屏显示器设备、麦克风和扬声器等。[0048] 自动驾驶车辆601的一些或全部功能可以由感知和规划系统610控制或管理,尤其是当在自动驾驶模式下操作时。感知和规划系统610包括必要的硬件(例如,处理器、存储器、存储设备)和软件(例如,操作系统、规划和路由程序),以从传感器系统615、控制系统611、无线通信系统612和/或用户接口系统613接收信息,处理所接收的信息,规划从起点到目的地点的路线或路径,然后基于规划和控制信息驾驶车辆601。可替换地,感知和规划系统610可以与车辆控制系统611集成。[0049] 例如,作为乘客的用户可以例如经由用户接口指定行程的起始位置和目的地。感知和规划系统610获取行程相关数据。例如,感知和规划系统610可以从MPOI服务器获取位置和路线信息。位置服务器提供位置服务,以及MPOI服务器提供地图服务和某些位置的POI。可替换地,这种位置和MPOI信息可本地缓存在感知和规划系统610的永久存储设备中。[0050] 当自动驾驶车辆601沿着路线移动时,感知和规划系统610还可以从交通信息系统或服务器(TIS)获得实时交通信息。注意,服务器可以由第三方实体操作。可替换地,服务器的功能可以与感知和规划系统610集成。感知和规划系统610可基于实时交通信息、MPOI信息和位置信息,以及由传感器系统615检测或感测的实时局部环境数据(例如,障碍物、对象、附近车辆),规划最佳路线,并例如经由控制系统611根据规划路线驱动车辆601,以安全且高效地到达指定目的地。[0051] 图8是示出根据一个实施例的与自动驾驶车辆一起使用的感知和规划系统的示例的框图。系统800可以被实现为图6的自动驾驶车辆601的一部分,包括但不限于感知和规划系统610、控制系统611和传感器系统615。参考图8,感知和规划系统610包括但不限于定位模块801、感知模块802、预测模块803、决策模块804、规划模块805、控制模块806和路由模块807。[0052] 模块801‑807中的一些或全部可以用软件、硬件或其组合实现。例如,这些模块可以安装在永久存储设备852中,加载到存储器851中,以及由一个或多个处理器(未示出)执行。注意,这些模块中的一些或全部可以通信地连接到图7的车辆控制系统611的一些或全部模块或与之集成。模块801‑807中的一些可以被集成在一起作为集成模块。[0053] 定位模块801确定自动驾驶车辆300的当前位置(例如,利用GPS单元712)并管理与用户的行程或路线相关的任何数据。定位模块801(也称为地图和路线模块)管理与用户的行程或路线有关的任何数据。例如,用户可以经由用户接口登录并指定行程的起始位置和目的地。定位模块801与自动驾驶车辆300的其他组件,诸如地图和路线信息811通信,以获得与行程有关的数据。例如,定位模块801可以从位置服务器和地图与POI(MPOI)服务器获得位置和路线信息。位置服务器提供位置服务,以及MPOI服务器提供地图服务和某些位置的POI,它们可作为地图和路线信息811的一部分被缓存。当自动驾驶车辆300沿着路线移动时,定位模块801还可以从交通信息系统或服务器获得实时交通信息。[0054] 基于由传感器系统615提供的传感器数据和由定位模块801获得的定位信息,由感知模块802确定对周围环境的感知。感知信息可以表示普通驾驶员将感知到的驾驶员正在驾驶的车辆周围的情况。感知可包括车道配置、交通灯信号、例如以对象形式的另一车辆、行人、建筑物、人行横道或其它交通相关标志(例如,停止标志、让步标志)等的相对位置。车道配置包括描述一个或多个车道的信息,例如车道的形状(例如,直的或弯曲的)、车道的宽度、道路中的车道数量、单向或双向车道、合并或分离车道、驶出车道等。[0055] 感知模块802可包括计算机视觉系统或计算机视觉系统的功能,以处理和分析由一个或多个相机捕获的图像,以便识别自动驾驶车辆的环境中的对象和/或特征。对象可包括交通信号、车行道边界、其他车辆、行人和/或障碍物等。计算机视觉系统可使用对象识别算法、视频跟踪和其它计算机视觉技术。在一些实施例中,计算机视觉系统可以映射环境、跟踪对象、以及估计对象的速度等。感知模块802还可以基于由诸如雷达和/或LIDAR的其他传感器提供的其他传感器数据检测对象。[0056] 对于每个对象,预测模块803预测对象在该情况下作出什么行为。根据一组地图/路线信息811和交通规则812,基于在该时间点感知驾驶环境的感知数据执行预测。例如,如果对象是在相反方向上的车辆并且当前驾驶环境包括十字路口,则预测模块803将预测车辆是否可能直行或者转弯。如果感知数据指示交叉路口没有交通灯,则预测模块803可以预测车辆在进入交叉路口之前可能必须完全停止。如果感知数据指示车辆当前处于仅左转弯车道或仅右转弯车道,则预测模块803可预测车辆将更可能分别进行左转弯或右转弯。[0057] 对于每个对象,决策模块804作出关于如何处理该对象的决策。例如,对于特定对象(例如,在交叉路线中的另一车辆)以及描述该对象的元数据(例如,速度、方向、转向角),决策模块804决定如何遇到该对象(例如,超车、让行、停止、通过)。决策模块804可根据可存储于永久存储设备852中的一组规则,诸如交通规则或驾驶规则812,来作出此些决策。[0058] 路由模块807被配置为提供从起点到目的地点的一条或多条路由或路径。对于例如从用户接收到的从起始位置到目的地位置的给定行程,路由模块807获得路线和地图信息811并且确定从起始位置用以达到目的地位置的所有可能的路线或路径。路由模块807可以以地形图的形式,为其确定的从起始位置用以到达目的地位置的每条路线生成参考线。参考线是指没有受到诸如其它车辆、障碍物或交通状况等其他事物的任何干扰的理想路线或路径。也就是说,如果在道路上没有其它车辆、行人或障碍物,则ADV应该精确地或紧密地跟随参考线。然后,地形图被提供给决策模块804和/或规划模块805。决策模块804和/或规划模块805根据由其它模块提供的其它数据,诸如来自定位模块801的交通状况、由感知模块802感知的驾驶环境和由预测模块303预测的交通状况,检查所有可能的路线,以选择和修改最佳路线中的一个。依据在该时间点的特定驾驶环境,用于控制ADV的实际路径或路线可以接近或不同于由路由模块807提供的参考线。[0059] 基于对于每个感知到的对象的决策,规划模块805使用由路由模块807提供的参考线作为基础,规划用于自动驾驶车辆的路径或路线以及驾驶参数(例如,距离、速度和/或转向角)。也就是说,对于给定对象,决策模块804决定对该对象做什么,而规划模块805确定如何做。例如,对于给定对象,决策模块804可以决定经过该对象,而规划模块805可以确定是在该对象的左侧还是右侧经过。规划和控制数据由规划模块805生成,包括描述车辆300在下一个移动周期(例如,下一个路线/路径段)中将如何移动的信息。例如,规划和控制数据可指示车辆300以30英里每小时(mph)的速度移动10米,然后以25mph的速度改变到右车道。[0060] 基于规划和控制数据,控制模块806通过根据由规划和控制数据限定的路线或路径向车辆控制系统611发送适当的命令或信号,来控制和驾驶自动车辆。规划和控制数据包括足够的信息以在沿着路径或路线在不同时间点使用适当的车辆设置或驾驶参数(例如,油门、制动、转向命令)将车辆从路线或路径的第一点驾驶到第二点。[0061] 在一个实施例中,在多个规划周期(也称为驾驶周期,诸如在100毫秒(ms)的每个时间间隔内)内执行规划阶段。对于每个规划周期或驾驶周期,将基于规划和控制数据发出一个或多个控制命令。也就是说,对于每100ms,规划模块805规划下一个路线段或路径段,例如包括目标位置和ADV到达目标位置所需的时间。可替换地,规划模块805可进一步规定具体速度、方向和/或转向角度等。在一个实施例中,规划模块805为下一预定的时间段,诸如5秒,规划路线段或路径段。对于每个规划周期,规划模块805基于在先前周期规划的目标位置来规划用于当前周期(例如,下一个的5秒)的目标位置。然后控制模块806基于当前周期的规划和控制数据生成一个或多个控制命令(例如,油门、制动、转向控制命令)。[0062] 注意,决策模块804和规划模块805可以集成为集成模块。决策模块804/规划模块805可包括导航系统或导航系统的功能,以确定用于自动驾驶车辆的驾驶路径。例如,导航系统可以确定一系列速度和方向航向,以导致自动驾驶车辆沿着基本上避开感知的障碍物的路径的移动,同时总体上使自动驾驶车辆沿着通向最终目的地的基于道路的路径前进。目的地可以根据经由用户接口系统613的用户输入来设置。导航系统可以在自动驾驶车辆操作时动态地更新驾驶路径。导航系统可以整合来自GPS系统的数据和一个或多个地图,以便确定用于自动驾驶车辆的驾驶路径。[0063] 根据一个实施例,感知模块302可包括NN模型,以基于从诸如相机、LIDAR和/或RADAR设备的各种传感器获得的传感器数据(例如,图像和/或点云)检测对象。NN模型可以使用一组锚框训练,该组锚框是使用上述技术中的技术中的至少一些选择的。[0064] 注意,如上所示和所述的一些或所有组件可以用软件、硬件或其组合来实现。例如,这样的组件可以被实现为安装并存储在永久存储设备中的软件,该软件可以由处理器(未示出)加载并执行在存储器中以执行贯穿本申请所描述的过程或操作。可替换地,这些组件可被实现为编程或嵌入到专用硬件中的可执行代码,所述专用硬件诸如集成电路(例如,专用IC或ASIC)、数字信号处理器(DSP)或现场可编程门阵列(FPGA),可执行代码可经由对应的驾驶员和/或来自应用的操作系统访问。此外,这些组件可以被实现为处理器或处理器内核中的特定硬件逻辑,作为软件组件经由一个或多个特定指令可访问的指令集的一部分。[0065] 已经在对计算机存储器内的数据位的操作的算法和符号表示方面呈现了前述详细描述的一些部分。这些算法描述和表示是数据处理领域的技术人员用来最有效地将他们的工作实质传达给本领域的其他技术人员的方式。算法在这里并且通常被认为是导致期望结果的自相容操作序列。这些操作是需要对物理量进行物理操纵的那些操作。[0066] 然而,应当记住的是,所有这些和类似的术语都与适当的物理量相关联,并且仅仅是应用于这些量的方便的标记。除非特别声明,否则从以上讨论中显而易见的是,应当理解的是,在整个说明书中,使用诸如所附权利要求书中所阐述的术语的讨论指的是计算机系统或类似电子计算设备的动作和处理,所述计算机系统或类似电子计算设备将计算机系统的寄存器和存储器内表示为物理(电子)量的数据操纵和变换成计算机系统存储器或寄存器或其它这样的信息存储、传输或显示设备内的类似地表示为物理量的其它数据。[0067] 本公开的实施例还涉及用于执行本文的操作的装置。这种计算机程序存储在非瞬态计算机可读介质中。机器可读介质包括用于以机器(例如,计算机)可读的形式存储信息的任何机制。例如,机器可读(例如,计算机可读)介质包括机器(例如,计算机)可读存储介质(例如,只读存储器(“ROM”)、随机存取存储器(“RAM”)、磁盘存储介质、光存储介质、闪存设备)。[0068] 在前述附图中描述的过程或方法可以由包括硬件(例如,电路、专用逻辑等)、软件(例如,体现在非暂时性计算机可读介质上)或两者的组合的处理逻辑来执行。尽管以上根据一些顺序操作描述了过程或方法,但是应当理解的是,可以以不同的顺序执行所述的一些操作。此外,一些操作可以并行地而不是顺序地执行。[0069] 本公开的实施例不是参考任何特别编程语言描述的。将了解,可使用各种编程语言实施如本文所述的本公开的实施例的教示。[0070] 在前述说明书中,已经参考本公开的具体示例性实施例描述了本公开的实施例。显然,在不背离如所附权利要求书中所阐述的本公开的更宽的精神和范围的情况下,可以对其进行各种修改。因此,说明书和附图应被认为是说明性的而不是限制性的。

专利地区:美国

专利申请日期:2020-06-12

专利公开日期:2024-07-26

专利公告号:CN112149487B


以上信息来自国家知识产权局,如信息有误请联系我方更正!
电话咨询
读内容
搜本页
回顶部