掌桥专利:专业的专利平台
掌桥专利
首页

用于构建机器学习模型的数据的智能选择的系统和方法

文献发布时间:2024-01-17 01:19:37


用于构建机器学习模型的数据的智能选择的系统和方法

相关申请的交叉引用

本专利文件要求于2020年11月23日提交的美国专利申请第17/101,633号的优先权,该专利文件通过引用整体并入本文。

背景技术

对于自主车辆的操作而言,能够预测(predict)或预报(forecast)包括正确地检测自主车辆的环境中的对象轨迹是重要的。对象行为的准确预报使得自主车辆能够实施预期的规划和控制,而不是对其环境作出反应。这导致自主车辆的更自然的驾驶行为以及对于其乘客的改进的舒适性和安全性。

自主车辆从许多传感器收集大量数据,以便执行对象检测和对象行为预测。重要的是获得关于车辆事件的、可以用于开发、评估和/或测试用于车辆控制的系统的真实世界数据。然而,感兴趣的真实世界车辆事件是稀有的并且难以从连续收集的真实世界数据中分离,因为来自驾驶会话(driving sessions)的总真实世界数据集通常包含冗余和/或大量与车辆操作相关的不相关或不太相关的信息。

通常,被动学习方法接受随机选择的训练数据。然而,训练数据的此类随机选择需要昂贵的标记,这可能不会改进机器学习模型的训练(例如,当随机选择的训练数据不包括有用信息时)。在主动学习中,选择“有用”数据用于机器学习模型的后续训练,而不是被动地接受随机选择的数据。与被动学习相比,主动学习可以显著减少训练、测试和/或验证机器学习模型所需的数据量,同时实现与被动学习类似或更好的对象检测(包括分类以及边界框回归)准确度。然而,当前的主动学习方法没有考虑关于自主车辆的环境的信息,在选择数据样本期间自主车辆在该环境中操作和/或将在该环境中操作。

本文件描述了针对解决上述问题和/或其他问题的方法和系统。

发明内容

在各种实施方式中,公开了用于使用主动学习来训练机器学习模型的系统和方法。该系统可以包括处理器和非暂时性计算机可读介质,该非暂时性计算机可读介质包括可以由处理器执行以执行本公开的方法的编程指令。计算机可读介质和编程指令可以可选地包括在计算机程序产品中。

该方法包括从多个传感器接收与自主车辆的周围环境相对应的多个未标记的传感器数据日志。该方法然后包括识别与包括多个已标记的数据日志的训练数据集(和/或诸如验证数据集/测试数据集的其他数据集)相关联的一个或多个趋势,以及使用该一个或多个趋势确定用于给多个未标记的传感器数据日志中的每一者指派重要性得分的函数。训练数据集被用于训练机器学习模型。该方法然后包括使用用于给多个未标记的传感器数据日志中的每一者指派重要性得分的函数,选择多个传感器数据日志中具有大于阈值的重要性得分的子集,以及使用多个传感器数据日志的子集来进一步训练使用训练数据集来训练的机器学习模型以生成更新的模型。

在一些实施方式中,该方法还可以包括识别多个传感器数据日志中的每一者内的边界框和相关联的标记(例如,使用训练数据集来训练的机器学习模型),以及确定使用训练数据集来训练的机器学习模型的置信度得分以用于识别相关联的标记。然后,系统可以使用置信度得分来确定函数。机器学习模型可以是对象检测模型。可选地,可以基于与使用训练数据集来训练的机器学习模型相关联的以下示例特征来确定置信度得分:实际准确度、期望准确度、假阳性率、假阴性率;收敛性(convergence)、输出、统计拟合、识别要解决的问题和/或训练状态。

可替代地和/或另外,该方法还可以包括接收与训练数据集中的多个已标记的数据日志中的每一者相关联的元数据,以及使用元数据来识别一个或多个趋势。元数据可以包括例如数据日志的捕获时间、数据日志的捕获位置、与数据日志的捕获位置或时间处的环境条件有关的信息、或与数据日志的捕获位置或时间处的一个或多个事件有关的信息。

可选地,一个或多个趋势可以用于识别训练数据集的多个已标记的数据日志中的表现不足(underrepresented)的一个或多个特性。此类特性的示例可以包括例如标记类别计数、按时间的标记计数;按位置的标记计数;事件类别计数;按时间的事件类别计数、按位置的事件类别计数、按环境条件的实例计数、或机器学习模型不确定性。

在某些其他实施方式中,该方法还可以包括接收与传感器数据日志相关联的元数据。此类元数据的示例可以包括但不限于数据日志的捕获时间、数据日志的捕获位置、与数据日志的捕获位置或时间处的环境条件有关的信息、或与数据日志的捕获位置或时间处的一个或多个事件有关的信息。可选地,该方法还可以包括使用该函数来通过将得分指派给该数据日志的多个特性中的一者或多者来给该多个未标记的传感器数据日志中的每一者指派该重要性得分。该多个特性可以包括但不限于标记类别计数、按时间的标记计数;按位置的标记计数;事件类别计数;按时间的事件类别计数、按位置的事件类别计数、按环境条件的实例计数、或机器学习模型不确定性。

可选地,系统可以丢弃多个传感器数据日志中具有小于阈值的重要性得分中的一个或多个传感器数据日志。

附图说明

图1图示了根据实施例的用于智能选择数据以训练机器学习模型的示例方法的流程图。

图2A图示了包括未标记图像的示例数据日志,并且图2B图示了包括检测到的(多个)边界框和对应的类别的图2A的图像。

图3A-图3C图示了训练数据集内的示例分布/趋势。

图4A图示了包括未标记图像的示例数据日志,并且图4B图示了包括检测到的(多个)边界框和对应的类别的图4A的图像。

图5是图示了示例性自主车辆系统的框图。

图6图示了示例车辆控制器系统。

图7是图示可能的电子系统、子系统、控制器和/或AV的其他组件和/或外部电子设备的各种元件的框图。

具体实施方式

如本文所用,单数形式“一(a)”、“一个(an)”和“该(the)”包括复数指代,除非上下文另外清楚地指明。除非另有定义,否则本文所用的所有技术和科学术语具有与本领域普通技术人员通常理解的相同的含义。如本文所用,术语“包括”是指“包括但不限于”。与本文件相关的附加术语的定义包括在具体实施方式的结尾。

用于自主车辆的控制和导航的各种算法,诸如用于检测图像中的对象的对象检测算法,使用机器学习模型,该机器学习模型使用已标记的数据(例如,训练数据、测试数据、验证数据等)来构建。虽然训练此类模型需要大量的训练数据(即,已标记的图像),但是由于处理、成本和定时约束,使用由自主车辆收集的所有或大部分数据是不可行的。此外,自主车辆的最大训练障碍之一是识别边缘情况,诸如意外的路障、外来动物、不寻常的路标、牵引四轮车的拖车的卡车(对象检测模型可以将其区分为两个或甚至三个单独的车辆)。虽然训练机器学习模型以辨识(recognize)常见的对象和场景是相对直接的,但是教导它辨识道路上的不寻常的条件和对象可能是复杂的并且需要足够的标记数据来考虑这些边缘情况。

然而,在由车辆收集的可用于机器学习算法的几乎无限的(virtuallyunlimited)传感器数据之中选择高质量的已标记的训练示例(和/或验证/测试示例)通常是昂贵的。在主动学习中,选择“有用”数据(例如,错误预测的标记、不确定的预测标记、边缘情况标记、多样化数据等)用于机器学习模型的后续构建(即,训练、验证和测试),而不是被动地接受随机选择的数据。然而,当前的主动学习方法在选择数据样本期间没有考虑关于自主车辆正在其中操作和/或将在其中操作的环境的信息(例如,位置、一天中的时间等)、关于已经存在的训练数据和已标记的信息(和/或验证/测试数据)、关于各种事件的信息(例如,接管(takeover)、车道改变、卡车牵引车辆等)。

本公开的各方面通过使用数据(或信息)驱动的数据选择模型来智能地选择有用的和/或重要的数据样本以供注释和/或用于机器学习模型的训练、测试和/或验证,来改进机器学习模型的构建-包括训练、测试和/或验证。

现在参考图1,流程图图示了用于选择在构建机器学习模型中使用的相关数据的示例方法。该方法可以实时或接近实时地被执行(例如,当记录图像数据时)、在延迟之后被执行(例如,使用先前存储的传感器数据)或在任何合适的时间被执行。该方法可以在驾驶会话中执行预定次数,在驾驶会话中以预定频率反复执行,或者在任何合适的时间执行。可以针对多个同时驾驶会话(例如,针对不同车辆、经由不同车辆系统)同时执行该方法的多个实例。然而,可以在任何合适的时间执行任何合适数量的方法实例。应当注意,虽然该方法描述了训练数据的选择,但是本公开不是如此限制,并且类似的原理可以用于测试数据、验证数据等的选择。

在102,系统可以接收由安装在车辆上的传感器在操作(例如,驾驶)期间收集(例如,记录、获得等)的原始数据日志。接收到的数据日志未被标记。此类原始数据日志的示例可以包括但不限于点云、2D图像、3D图像、音频日志等。数据日志可以包括单个数据点(例如,单个图像、单个点云帧)、数据序列(例如,图像序列、视频、点云帧的突发等)和/或任何其他合适的数据样本。传感器数据的单个“日志”是指由传感器在连续时间段“t”上收集的数据。数据日志可以包括帧中的传感器测量数据或随时间的扫描,诸如周期性地、间歇地、响应于感测事件等。数据日志数据可以被不断地(例如,连续地)、周期性地、随机地、在发生触发事件(例如,驾驶事件、数据值或信号超过阈值等)时和/或利用任何其他合适的时间特性来记录。

在各种实施方式中,每个接收到的数据日志可以包括元数据,诸如但不限于指示数据日志的收集时间的时间戳、与从其收集数据日志的位置相对应的位置信息和/或地图信息、与收集数据日志时的时间和位置处的环境条件(例如,下雨、多云、晴天等)有关的信息、与收集数据日志时的时间和位置处的一个或多个事件(例如,通常是高交通量时间、接近关键的事件、碰撞事件、接管事件等)有关的信息等。可选地,系统可以从其他数据存储(store)(例如,天气数据库、交通数据库、卫星图像数据库等)接收关于数据日志的元数据、将数据日志与适当的元数据相关联。例如,系统可以基于用于收集数据日志的车辆的路线历史和数据日志的时间戳来接收对应于数据日志的位置数据。然后,系统可以查询各种数据库以接收与数据日志有关的天气信息、交通信息、事件信息等。

在104,系统可以检测并标记每个接收到的原始数据日志(例如,点云、相机图像等)中的一个或多个对象和/或事件。例如,示例对象检测模型(例如,卷积神经网络(CNN)、掩码R-CNN等)可以用于检测和标记每个接收到的原始数据日志中的一个或多个对象和/或事件。对象检测模型可以输出包括围绕检测到的对象和/或对象的标记的边界框的图像或点云。边界框指示被认为包含标识的对象的未标记的数据日志的区域。因此,边界框可以被指派指示被认为包含在边界框内的标识的对象的标记。每个检测到的对象可以由其位置(质心或中心点)、边界、标记类别或甚至大小来表示。在实施例中,对象检测器可以输出包括围绕检测到的对象和/或检测到的对象的标记的边界框的图像或点云。

该系统还可以识别与每个边界框和/或标识的标记相关联的置信度得分,该置信度得分指示识别的对象存在于由该边界框包围的未标记的原始数据的一部分中的可能性程度或检测到的对象被正确地标记的置信度程度。具体地,对象检测模型为每个边界框产生置信度得分,该置信度得分指示指派给边界框的标记是正确的(即,与标记相关联的对象在边界框中被描绘)的可能性。可以基于对象检测模型对于识别的对象/标记的分类准确度来生成置信度得分。任选地,置信度得分的值可以是约0.0至约1.0。例如,图2A图示了数据日志是包括作为橙色踏板车的对象202的图像200的示例。在分析图像200时,对象检测模型生成围绕橙色踏板车的边界框204,并且基于橙色将其标记为“施工(construction)”,置信度得分为0.6(图2B中所示)。包含汽车的边界框可以具有1.00(或甚至更高)的边界框得分,其指示汽车被检测到且以约100%的准确度正确地标记为“汽车”。

可选地,系统还可以识别将使用数据日志来训练的(多个)机器学习模型(例如,对象检测模型)的一个或多个属性,并且使用识别的属性来确定与预测多个标记中的每一者相关联的机器学习模型的置信度得分。该属性的示例可以包括但不限于实际和/或期望的准确度、假阳性率、假阴性率、收敛性、统计拟合、机器学习模型的输出、使用机器学习模型解决的问题、机器学习模型的训练状态等。

在106,系统可以识别与现有训练数据集(包括已标记的数据)内的数据日志(例如,数据日志内的对象、事件和/或实例的发生、百分比)有关的分布和/或趋势。此类识别可以包括对训练数据集中的各种标记以及与训练数据集中的数据日志相关联的元数据(例如,收集的位置、收集的时间、事件等)的分析。示例性数据分布如图3A-图3C所示。

在某些实施方式中,系统可以使用分布和/或趋势来识别在训练数据中缺失或未被充分表现(adequately represented)的对象类别(即,标记)、对象、事件和/或实例。例如,一些类型的对象(例如,施工车辆、拖车等)可能在训练数据集中缺失和/或不充分表现(inadequately represented);与事件(例如,车辆未在红灯处停止、车道变换事件、接管事件等)相关联的数据日志可能在训练数据集中缺失和/或不充分表现);在某些时间和/或位置(例如,夜间、早晨高峰交通时间、停车场、雨天等)收集的数据日志可能在训练数据集中缺失和/或不充分表现等。图3A图示了训练数据集的示例性标记类别计数分布,并且可以用于识别在训练数据集中表现不足的标记类别(例如,与图3A中的施工301相关的数据日志)。类似地,图3B图示了按照一天中的时间和位置的训练数据集的标记密度,并且可以被分析以识别上午11:30和下午12:30之间的数据日志在训练数据集中表现不足。

在其他示例中,需要被包括在现有训练数据中和/或在现有训练数据中被过度表现并且还可以由系统使用类似原理来识别的某些类型的对象、事件和/或实例。例如,图3C图示了按照一天中的时间每100,000车辆英里接管次数的训练数据集分布(即,事件分布)。从图3C的分布可以推断出,在高峰时间期间存在更多接管事件,并且在训练数据集中需要包括更多接管事件以便改进机器学习模型在高峰时间期间的性能。

在108,系统可以基于步骤104的置信度得分以及步骤106的现有训练数据集趋势/分布,给(来自步骤102的)接收到的数据日志中的每一者指派重要性得分。数据日志的重要性得分指示数据日志是否将对训练机器学习模型有用。如果数据日志例如可以用于对机器学习模型进行初始训练、减少训练时间、提高机器学习模型的准确性、减少过度拟合(即,日志数据具有减少的冗余)等,则数据日志是“有用的”。数据日志对于校正学习和/或积极强化学习可能是有用的。例如,在数据日志内检测到的、指示不正确的检测结果的事件或对象可以被如此标记,使得它们可以被用于调整模型以便为了更好的将来性能(即,模型从错误中进行学习的校正学习)。指示正确检测结果的事件也可能需要被如此标记,使得它们可以用于增强模型而不是校正(即,积极增强学习)。

为了给数据日志指派重要性得分,系统可以首先定义重要性函数,该重要性函数可以用于分析数据日志的各种特征以便确定关于训练机器学习模型的数据日志的重要性得分。重要性函数将用于使用机器学习模式来预测数据日志中的标记的置信度得分与现有训练数据集的趋势/分布进行组合,并且指派指示数据日志是否将改进机器学习模型的训练的重要性得分。

特征的示例可以包括但不限于标记类别计数、按时间和位置的标记计数、事件类别计数、按时间和位置的事件类别计数、按环境条件(例如,雨、光线不足、遮挡等)的实例计数、机器学习模型不确定性、数据日志与各种事件(例如,接管期间的接近/几乎碰撞事件等)的一致性等。定义的函数可以向数据日志的每个特征指派百分位得分或等级,并且组合特征得分以用于确定数据日志的重要性得分。例如,重要性函数可以将置信度得分与(多个)阈值进行比较以确定是否需要针对某个标记类别改进置信度得分,并且可以给具有对象检测的低置信度得分的数据日志指派较高的重要性。类似地,重要性函数可以给包括类别标记、事件标记、在现有数据集中没有被充分表现的环境因素的数据日志指派较高的重要性。

在110,系统可以确定数据日志的重要性得分是否大于阈值。如果数据日志的重要性得分大于(或等于)阈值(110:是),则系统可以使用数据日志来进一步注释(例如,手动标记)和/或构建(即,训练、测试、验证、更新等)机器学习模型(112)。如果数据日志的重要性得分小于阈值(110:否),则系统可以不使用数据日志来更新/训练机器学习模型(114)。可选地,系统可以丢弃其重要性得分小于阈值的数据日志。

例如,参考包括图2A和图2B中所示的图像的数据日志,重要性函数可以给图像指派高重要性得分(即,大于阈值),原因有两个:(1)施工类别(标记类别计数)是重要的,因为施工标记在现有训练数据集中表现不足(图3A中的类别数据分布),并且在图像中存在被分类为施工的对象;(2)对象检测模型对于橙色踏板车的分类是不确定的(对于将其分类为施工,低置信度得分为0.6)。因此,重要性函数将针对特征标记类别计数和置信度得分给数据日志指派高得分。这是因为如果训练数据集包括更多的施工标记和看起来类似施工标记但事实上不是施工标记的更多对象(即,为假阳性施工标记的橙色踏板车),则检测算法将不太可能在将来把橙色对象误认为施工锥。

在图4A和图4B所示的另一示例中,图4A图示了数据日志是包括作为电杆的底座的对象202的图像400的示例。在分析图像400时,对象检测模型生成围绕电杆底座的边界框404,并且将其标记为“施工”(基于类似于施工锥的底座的形状)(图4B中所示),其具有0.6的置信度得分。重要性函数可以给图像指派高重要性得分(即,大于阈值),这是由于两个原因:(1)施工类别(标记类别计数)是重要的,因为施工标记在现有训练数据集中表现不足(图3A中的类别数据分布),并且在图像中存在被分类为施工的对象;(2)对象检测模型对于电杆底座的分类是不确定的(对于将其分类为施工,低置信度得分为0.6)。因此,重要性函数将针对特征标记类别计数和置信度得分给数据日志指派高得分。这是因为如果训练数据集包括更多的施工标记和看起来像施工标记但事实上不是施工标记的更多对象(即,为假阳性施工标记的电杆底座),则检测算法将不太可能在将来把诸如电杆底座的锥形结构误认为施工锥。

可以从自主车辆中的感知模块收集数千个具有标记和置信度得分的数据日志,并将其存储在数据库中。由于在实际系统中存在太多的传感器数据要存储,因此本文公开的主动学习系统通过识别数据库中需要被手动标记并且对于建立机器学习模型是重要的错误注释(即,标记)来帮助减少数据库中存储的数据日志的量。这平衡了数据库中的数据日志的数量和质量,以优化系统性能和成本。此外,可以分析不同种类的检测和标记错误(例如,丢失的对象、不准确的位置)对性能的影响。通过调整机器学习模型的操作参数直到实现期望的训练输出来训练和/或构建机器学习模型。可以通过将训练输出与训练数据的已知特性进行比较来手动地或自动地完成对训练输出是否是期望的确定。当机器学习模型的训练输出在来自训练数据的已知特性的预定误差阈值内时,认为训练或构建了机器学习模型。机器学习模型的示例可以包括但不限于跟踪模型、形状估计模型、对象检测模型、姿态估计模型、分类和标记模型、分割模型、运动规划模型、预报模型、预测模型等。

虽然以上描述涉及选择原始或未标记图像以用于后续标记以及用于训练执行对象检测的机器学习模型,但是本公开不是如此限制的。特别地,本公开的方法和系统可以用于选择任何种类的原始数据,以用于训练许多不同种类的模型,诸如但不限于跟踪模型、运动规划模型、预报模型、预测模型等。例如,考虑用于基于例如行人与斑马线的接近度、身体方位、面部特征等来预测行人是否将穿过斑马线的预测模型,本公开的系统和方法可以用于识别用于选择用于构建预测模型的数据的重要性函数。在此类示例中,重要性函数可以基于特征,诸如关于数据的统计数据(例如,其中人们倾向于闯红灯,因为斑马线太远)、人们使用或不使用斑马线的一天中的时间、交通条件对该斑马线的影响等;以便选择用于构建模型的有用数据。

应当注意,本公开中描述的用于数据日志的智能选择的方法可以在自主车辆上、在不是自主车辆的一部分的远程计算设备处、或其组合执行。

图5是图示包括经由网络510与一个或多个数据存储502和/或一个或多个服务器503通信的自主车辆501的示例性系统500的框图。尽管示出了一个自主车辆,但是多个自主车辆可以通过网络510通信地耦合到彼此和/或通信地耦合到数据存储502和/或服务器503。网络510可以是任何类型的网络,诸如局域网(LAN)、诸如因特网的广域网(WAN)、蜂窝网络、卫星网络或其组合,并且可以是有线或无线的。(多个)数据存储502可以是任何种类的数据存储,诸如但不限于(多个)地图数据存储、(多个)历史信息数据存储、(多个)交通信息数据存储、(多个)用户信息数据存储、(多个)感兴趣点数据存储或任何其他类型的(多个)内容数据存储。(多个)服务器503可以是任何种类的服务器或服务器集群,诸如但不限于Web或云服务器、应用服务器、后端服务器或其组合。

如图5中所示,自主车辆501可以包括传感器系统511、车载计算设备512、通信接口514和用户接口515。自主车辆501还可以包括包含在车辆中的某些组件(例如,如图5中所示),诸如发动机、车轮、方向盘、变速器等,其可以由车载计算设备512使用各种通信信号和/或命令(诸如加速信号或命令、减速信号或命令、转向信号或命令、制动信号或命令等)来控制。

传感器系统511可以包括一个或多个传感器,该一个或多个传感器耦合到自主车辆501和/或包括在自主车辆501内并且被配置用于感测或测量自主车辆的环境的属性。此类传感器的示例包括但不限于LIDAR系统、无线电检测和测距(RADAR)系统、激光检测和测距(LIDAR)系统、声音导航和测距(SONAR)系统、一个或多个相机(例如,可见光谱相机、红外相机等)、温度传感器、位置传感器(例如,全球定位系统(GPS)等)、位置传感器、燃料传感器、运动传感器(例如,惯性测量单元(IMU)等)、湿度传感器、占用传感器等。传感器数据可以包括描述自主车辆501的周围环境内的对象的定位的信息、关于环境本身的信息、关于自主车辆501的运动的信息、关于自主车辆的路线的信息等。当自主车辆501在表面上行驶(travel)时,传感器中的至少一些可以收集与表面有关的数据。

LIDAR系统可以包括被配置为使用光来感测或检测自主车辆501所位于的环境中的对象的传感器。通常,LIDAR系统是一种结合了光学遥感技术的设备,该光学遥感技术可以通过用光照亮目标(例如,地面)来测量到该目标的距离或该目标的其他属性。作为示例,LIDAR系统可以包括被配置为发射激光脉冲的激光源和/或激光扫描器以及被配置为接收激光脉冲的反射的检测器。例如,LIDAR系统可以包括由旋转镜反射的激光测距仪,并且在一维、二维或更多维中围绕被数字化的场景扫描激光,从而以指定的角度间隔收集距离测量。例如,LIDAR系统可以被配置为发射激光脉冲作为光束,并且扫描该光束以生成二维或三维范围矩阵。在示例中,LIDAR系统可以包括诸如光(例如,激光)源、扫描仪和光学器件、光电检测器和接收器电子器件以及定位和导航系统之类的组件。在示例中,LIDAR系统可以被配置为使用紫外(UV)、可见或红外光来对对象进行成像,并且可以与包括非金属对象的各种各样的目标一起使用。在一个示例中,窄激光束可以用于以高分辨率映射对象的物理特征。可以用单脉冲的宽发散激光束和/或逐点照射视场。

图6图示了用于诸如图5的自主车辆501的车辆601的示例系统架构。车辆601可以包括发动机或马达602和用于测量车辆和/或其环境的各种参数的各种传感器。两种类型的车辆所共有的运行参数传感器包括,例如:位置传感器636,诸如加速度计、陀螺仪和/或惯性测量单元;速度传感器638;和里程表传感器640。车辆601还可以具有时钟642,系统架构使用该时钟来确定操作期间的车辆时间。时钟642可以被编码到车辆车载计算设备612中,其可以是单独的设备,或者多个时钟可以是可用的。

车辆601还可以包括操作来收集关于车辆行驶的环境的信息的各种传感器。这些传感器可以包括,例如:定位传感器660,诸如GPS设备;对象检测传感器,诸如一个或多个相机662;LiDAR传感器系统664;和/或雷达和/或声纳系统666。传感器还可以包括环境传感器668,诸如降水传感器和/或环境温度传感器。对象检测传感器可以使车辆601能够检测在车辆601的给定距离或范围内在任何方向上的对象,而环境传感器收集关于车辆的行驶区域内的环境条件的数据。系统架构还将包括用于捕获环境的图像的一个或多个相机662。

在操作期间,信息从传感器传送(communicated)到车载计算设备612。车载计算设备612分析由传感器捕获的数据,并且可选地基于分析的结果控制车辆的操作。例如,车载计算设备612可以经由制动控制器622控制制动;经由转向控制器624的方向;经由节气门控制器626(在燃气动力车辆中)或电动机速度控制器628(诸如电动车辆中的电流水平控制器)的速度和加速度;差动齿轮控制器630(在具有变速器的车辆中);和/或其他控制器,诸如辅助设备控制器614。

地理定位信息可以从定位传感器620传送到车载计算设备612,其然后可以访问对应于位置信息的环境的地图以确定环境的已知固定特征,诸如街道、建筑物、停车标志和/或停/走信号。来自相机662的捕获的图像和/或从诸如LiDAR系统664的传感器捕获的对象检测信息从这些传感器被传送到车载计算设备612。对象检测信息和/或捕获的图像可以由车载计算设备612处理以检测接近车辆601的对象。另外或可替代地,车辆601可以将任何数据发送到远程服务器系统503(图5)以进行处理。用于基于传感器数据和/或捕获的图像进行对象检测的任何已知或将已知的技术可以用于在本文件中公开的实施例中。

车载计算设备612可以获得、检索和/或创建提供关于自主车辆601的周围环境的详细信息的地图数据。车载计算设备612还可以基于例如三维位置数据(例如,来自GPS的数据)、三维定向数据、预测的位置等来确定AV在环境中的位置、方位、姿态等(定位)。例如,车载计算设备612可以接收GPS数据以确定AV的纬度、经度和/或海拔位置。其他位置传感器或系统,诸如基于激光的定位系统、惯性辅助GPS或基于相机的定位,也可以用于识别车辆的位置。车辆的位置可以包括绝对地理位置,诸如纬度、经度和海拔,以及相对位置信息,诸如相对于紧邻其周围的其他汽车的位置,其通常可以以比绝对地理位置更少的噪声来确定。地图数据可以提供关于以下的信息:不同道路、路段、车道段、建筑物或其他项目的标识和位置;交通车道的位置、边界和方向(例如,特定道路内的停车车道、转弯车道、自行车道或其他车道的位置和方向)以及与交通车道相关联的元数据;交通控制数据(例如,标志、交通灯或其他交通控制设备的位置和指令);和/或提供辅助车载计算设备612分析自主车辆601的周围环境的信息的任何其他地图数据。地图数据还可以包括用于确定在冲突区域或空间中的对象和/或车辆的通行权的信息和/或规则。

在某些实施例中,地图数据还可以包括与车辆沿着一个或多个车道行驶的共同样式相对应的参考路径信息,使得对象的运动被约束到参考路径(例如,对象通常行驶在其上的交通车道内的定位)。此类参考路径可以是预定义的,诸如交通车道的中心线。可选地,可以基于一段时间内的车辆或其他对象的历史观察(例如,用于直线行驶、车道合流、转弯等的参考路径)来生成参考路径。

在某些实施例中,车载计算设备612还可以包括和/或可以接收关于用户的行程或路线的信息、关于路线的实时交通信息等。

车载计算设备612可以包括生成自主车辆从起始位置到目的地位置的导航路线的路线控制器631和/或可以与其通信。路线控制器631可以访问地图数据存储以识别车辆可以行驶以从起始位置到达目的地位置的可能路线和路段。路线控制器631可以对可能的路线进行评分,并且识别到达目的地的优选路线。例如,路线控制器631可以生成使路线期间所行驶的欧几里德距离或其他成本函数最小化的导航路线,并且还可以访问可能影响在特定路线上行驶将花费的时间量的交通信息和/或估计。取决于实施方式,路线控制器631可以使用各种路线选择方法,诸如Dijkstra算法、Bellman-Ford算法或其他算法来生成一个或多个路线。路线控制器631还可以使用交通信息来生成反映路线的预期状况(例如,当前星期几或当前时间等)的导航路线,使得针对高峰时间期间的行驶而生成的路线可以不同于针对深夜行驶而生成的路线。路线控制器631还可以生成到目的地的多于一条的导航路线,并且将这些导航路线中的多于一条的导航路线发送给用户,以供用户从各种可能的路线中进行选择。

在各种实施方式中,车载计算设备612可以确定自主车辆601的周围环境的感知信息。基于由一个或多个传感器提供的传感器数据和获得的定位信息,车载计算设备612可以确定自主车辆601的周围环境的感知信息。感知信息可以表示普通驾驶员在车辆的周围环境中将感知到什么。感知数据可以包括与自主车辆601的环境中的一个或多个对象有关的信息。例如,车载计算设备612可以处理传感器数据(例如,LIDAR或RADAR数据、相机图像等),以便识别自主车辆601的环境中的对象和/或特征。对象可以包括交通信号、道路边界、其他车辆、行人和/或障碍物等。车载计算设备612可以使用任何现在或以后已知的对象识别或检测算法、视频跟踪算法和计算机视觉算法(例如,在多个时间段上逐帧迭代地跟踪对象)来确定感知。在实施例中,车载计算设备512可以包括检测和标记对象的对象检测器。

在一些实施例中,车载计算设备612还可以针对环境中的一个或多个识别的对象确定对象的当前状态。状态信息可以包括但不限于,对于每个对象:当前定位;当前速度和/或加速度、当前行进方向(heading);当前姿态;当前形状、大小或占用面积(footprint);类型(例如,车辆相对于行人相对于(vs.)自行车相对于静态对象或障碍);和/或其他状态信息。如下面更详细地讨论的,车载计算设备612还可以识别在任何给定时间正被对象占据的车道。

车载计算设备612可以执行一个或多个预测和/或预报操作。例如,车载计算设备612可以预测一个或多个对象的未来定位、轨迹和/或动作。例如,车载计算设备612可以至少部分地基于感知信息(例如,包括如下文所讨论地确定的估计形状和姿态的每个对象的状态数据)、定位信息、传感器数据和/或描述对象的过去和/或当前状态、自主车辆601、周围环境和/或它们的(多个)关系的任何其他数据来预测对象的未来定位、轨迹和/或动作。例如,如果对象是车辆并且当前驾驶环境包括十字路口,则车载计算设备612可以预测对象是否将可能笔直向前移动或转弯。如果感知数据指示十字路口没有交通灯,则车载计算设备612还可以预测车辆是否可能必须在进入十字路口之前完全停止。

车载计算设备612的预测和/或预报操作还可以用于通过跟踪图像帧序列中的帧之间的先前检测和/或分类的对象来减少需要执行从头(de novo)对象识别的数据样本(例如,图像)的数量。在一些示例中,对象跟踪可以经由点跟踪来执行,诸如通过确定性方法(例如,利用基于对象的对象类别的参数约束)或统计方法(例如,卡尔曼滤波)。在一些其他示例中,可以经由核心滤波及核心追踪来执行对象追踪,诸如使用基于模板的方法或多视图外观方法。可选地,对象跟踪可以经由剪影跟踪(silhouette tracking)来执行,诸如使用形状匹配、边缘匹配和/或轮廓跟踪(contour tracking)。然而,可以使用运动分析来确定对象跟踪和轨迹预测和/或确定,或者经由任何合适的方法或技术来适当地执行对象跟踪和轨迹预测和/或确定。

在各种实施例中,车载计算设备612可以确定自主车辆的运动规划。例如,车载计算设备612可以基于感知数据和/或预测数据来确定自主车辆的运动规划。具体地,给定关于邻近对象的未来定位的预测和其他感知数据,车载计算设备612可以确定相对于在自主车辆的未来定位处的对象最佳地导航自主车辆的自主车辆601的运动规划。

在一个或多个实施例中,车载计算设备612可以接收预测并且做出关于如何处置自主车辆601的环境中的对象的决定。例如,对于特定对象(例如,具有给定速度、方向、转向角等的车辆),车载计算设备612基于例如交通状况、地图数据、自主车辆的状态等来决定是否超车、让车、停车和/或通行。此外,车载计算设备612还规划自主车辆601在给定路线上行驶的路径以及驾驶参数(例如,距离、速度和/或转向角度)。也就是说,对于给定对象,车载计算设备612决定对该对象做什么且确定如何做。例如,对于给定对象,车载计算设备612可以决定通过(pass)对象并且可以确定是在对象的左侧还是右侧通过(包括诸如速度的运动参数)。车载计算设备612还可以评估检测的对象与自主车辆601之间的碰撞的风险。如果风险超过可接受的阈值,则可以确定如果自主车辆遵循定义的车辆轨迹和/或实施在预定义的时间段(例如,N毫秒)中执行的一个或多个动态生成的紧急操纵,则是否能够避免碰撞。如果碰撞可以被避免,则车载计算设备612可以执行一个或多个控制指令以执行谨慎的操纵(例如,适度地减速、加速、变道或急转弯(swerve))。相反,如果碰撞不能被避免,则车载计算设备612可以执行一个或多个控制指令以用于执行紧急操纵(例如,制动和/或改变行进方向)。

例如,如果车载计算设备612基于对象轨迹预报确定对象可能违反与自主车辆的通行权协定,则车载计算设备612可以确定避免在冲突的空间中与此类对象碰撞的自主车辆的运动规划。

如上所述,生成关于自主车辆的移动的规划和控制数据以用于执行。车载计算设备612可以例如经由制动控制器控制制动;经由转向控制器控制方向;经由节气门控制器(在燃气动力车辆中)或电动机速度控制器(诸如电动车辆中的电流水平控制器),差动齿轮控制器(在具有变速器的车辆中),和/或其他控制器控制速度和加速度。

在本文件中讨论的各种实施例中,描述可以陈述车辆或包括在车辆中(例如,在车载计算系统中)的控制器可以实施使得车辆和/或控制器做出决定并且使用该决定来控制车辆的操作的编程指令。然而,实施例不限于该布置,因为在各种实施例中,分析、决策制定和/或操作控制可以完全或部分地由与车辆的车载计算设备和/或车辆控制系统进行电子通信的其他计算设备来处理。此类其他计算设备的示例包括与乘坐在车辆中的人相关联的电子设备(诸如智能电话),以及经由无线通信网络与车辆进行电子通信的远程服务器。任何此类设备的处理器可以执行下面将讨论的操作。

返回参考图5,通信接口514可以被配置为允许自主车辆501与外部系统之间的通信,该外部系统例如是外部设备、传感器、其他车辆、服务器、数据存储、数据库等。通信接口514可以利用任何现在或以后已知的协议、保护方案、编码、格式、封装等,诸如但不限于Wi-Fi、红外链路、蓝牙等。用户接口系统515可以是在车辆501内实施的外围设备的一部分,包括例如键盘、触摸屏显示器设备、麦克风和扬声器等。

图7描绘了可以包括在系统的任何电子组件中的内部硬件的示例,诸如AV的内部处理系统、外部监视和报告系统或远程服务器。电气总线700用作互连硬件的其他所示组件的信息高速公路。处理器705是系统的中央处理设备,其被配置为执行编程指令所需的计算和逻辑操作。如在本文件和权利要求中所使用的,术语“处理器”和“处理设备”可以指共同执行操作集合的单个处理器或处理器集合中的任何数量的处理器,诸如中央处理单元(CPU)、图形处理单元(GPU)、远程服务器或这些的组合。只读存储器(ROM)、随机存取存储器(RAM)、闪存、硬盘驱动器和能够存储电子数据的其他设备构成了存储器设备725的示例。存储器设备可以包括单个设备或设备的群集(collection),数据和/或指令跨单个设备或设备的群集而被存储。本公开的各种实施例可以包括包含编程指令的计算机可读介质,该编程指令被配置为使一个或多个处理器和/或计算设备执行在之前附图的上下文中描述的功能。

可选的显示接口730可以允许来自总线700的信息以视觉、图形或字母数字格式显示在显示设备735上,诸如显示在车辆的仪表板内显示系统上。还可以提供音频接口和音频输出(诸如扬声器)。与外部设备的通信可以使用各种通信设备740来进行,诸如无线天线、射频识别(RFID)标记和/或短距离或近场通信收发器,其中的每一者可以可选地经由一个或多个通信系统与设备的其他组件通信地连接。(多个)通信设备740可以被配置为通信地连接到通信网络,诸如因特网、局域网或蜂窝电话数据网络。

硬件还可以包括用户接口传感器745,其允许从诸如键盘或小键盘、操纵杆、触摸屏、触摸板、遥控器、定点设备和/或麦克风的输入设备750接收数据。还可以从可以捕获视频和/或静止图像的相机720接收数字图像帧。系统还可以从诸如加速度计、陀螺仪或惯性测量单元的运动和/或位置传感器770接收数据。该系统还可以从诸如本文件中较早描述的LiDAR系统760接收数据。

以上公开的特征和功能以及可替代方案可以被组合到许多其他不同的系统或应用中。各种组件可以以硬件或软件或嵌入式软件来实施。本领域技术人员可以做出各种目前未预见或未预期的替代、修改、变化或改进,其中的每一者也意图由所公开的实施例涵盖。

与以上提供的公开内容相关的术语包括:

“自动化设备”或“机器人设备”是指包括处理器、编程指令以及一个或多个物理硬件组件的电子设备,该物理硬件组件响应于来自处理器的命令,可以在最少或没有人为干预的情况下移动。通过此类移动,机器人设备可以执行一个或多个自动功能或功能集。此类操作、功能或任务的示例可以包括但不限于操作轮子或推进器以实现驱动、飞行或其他运输动作,操作机器人升降机以用于装载、卸载、医疗相关过程、施工相关过程等。示例自动化设备可以包括但不限于自主车辆、无人机和其他自主机器人设备。

术语“车辆”是指能够运载一个或多个人类乘员和/或货物并且由任何形式的能量提供动力的任何移动形式的运输工具。术语“交通工具”包括但不限于汽车、卡车、货车、火车、自主车辆、飞行器、无人机等。“自主车辆”是具有处理器、编程指令和可由处理器控制而不需要人类操作者的传动系组件的车辆。自主车辆可以是完全自主的,因为其对于大多数或所有驾驶条件和功能不需要人类操作者,或者它可以是半自主的,因为在某些条件下或对于某些操作可能需要操作人员,或者操作人员可以超控车辆的自主系统并且可以取得对车辆的控制。自主车辆还包括其中自主系统增强车辆的人类操作的车辆,诸如具有驾驶员辅助转向、速度控制、制动、停车和其他系统的车辆。

术语“机器学习模型”或“模型”是指算法例程和参数的集合,其可以基于输入特征集合来预测真实世界过程的(多个)输出(例如,对象轨迹的预测、患者的诊断或治疗、基于用户搜索查询的适当推荐等),而无需被明确地编程。软件例程的结构(例如,子例程的数量和它们之间的关系)和/或参数的值可以在训练过程中确定,该训练过程可以使用正在被建模的真实世界过程的实际结果。此类系统或模型被理解为必然根植于计算机技术中,并且实际上,在没有计算技术的情况下不能被实施或甚至存在。虽然机器学习系统利用各种类型的统计分析,但是机器学习系统由于无需显式编程并且根植于计算机技术而学习的能力而与统计分析相区分。

典型的机器学习流水线可以包括从样本数据集(被称为“训练集”)构建机器学习模型、针对一个或多个附加样本数据集(被称为“验证集”和/或“测试集”)对模型进行评估以决定是否保持模型并且对模型有多好进行基准测试,并且在“生产”中使用模型以针对由应用服务捕获的实况输入数据做出预测或决定。

术语“边界框”是指表示对象的位置的矩形框。边界框可以在数据中由对应于该框的第一角(诸如右上角)的x和y轴坐标[x

“电子设备”或“计算设备”是指包括处理器和存储器的设备。每个设备可以具有其自己的处理器和/或存储器,或者处理器和/或存储器可以与其他设备共享,如在虚拟机或容器布置中。存储器将包含或接收编程指令,当由处理器执行时,编程指令使电子设备根据编程指令执行一个或多个操作。

术语“存储器”、“存储器设备”、“数据存储”、“数据存储设施”等每个都指代非暂时性设备,在其上存储计算机可读数据、编程指令或两者。除非另外具体说明,否则术语“存储器”、“存储器设备”、“数据存储”、“数据存储设施”等既定包含单个设备实施例、其中多个存储器设备一起或共同存储数据或指令的集合的实施例,以及此类设备内的个别部分(sectors)。

术语“处理器”和“处理设备”是指被配置为执行编程指令的电子设备的硬件组件。除非另外特别说明,单数术语“处理器”或“处理设备”意图包括单个处理设备实施例和多个处理设备一起或共同执行处理的实施例。

在本文件中,术语“通信链路”和“通信路径”意指有线或无线路径,第一设备经由该有线或无线路径向一个或多个其他设备发送通信信号和/或从一个或多个其他设备接收通信信号。如果设备能够经由通信链路发送和/或接收数据,则设备是“通信地连接的”或“通信地耦合的”。“电子通信”是指在两个或多个电子设备之间经由一个或多个信号的数据传输,无论是通过有线网络还是无线网络,并且无论是直接还是经由一个或多个中间设备间接。

在本文件中,当使用诸如“第一”和“第二”的相对顺序术语来修饰名词时,此类使用仅意图将一个项目与另一个项目区分开,并且不意图要求按顺序的排序,除非具体地陈述。

另外,相对位置的术语,诸如“垂直”和“水平”,或者“前”和“后”,当使用时,意图彼此相对,并且不必是绝对的,并且仅指根据设备的方位与这些术语相关联的设备的一个可能位置。当本文使用术语“前”、“后”和“侧”来指代车辆的区域时,它们指代相对于车辆的默认行驶区域的车辆区域。例如,汽车的“前”是与车辆尾灯相比更靠近车辆前灯的区域,而汽车的“后”是与车辆前灯相比更靠近车辆尾灯的区域。此外,术语“前”和“后”不必限于面向前的或面向后的区域,而是还包括分别比后更靠近前部的侧面区域,反之亦然。车辆的“侧”意图表示位于车辆的最前和最后之间的面向侧面的部分。

相关技术
  • 用于构建机器学习模型的特征选取方法、装置以及设备
  • 使用区块链在针对机器学习的分散模型构建中商业化数据的系统和方法
  • 用于机器学习模型的动态数据选择
技术分类

06120116131214