CN110494863B - 确定自主车辆的可驾驶自由空间 - Google Patents

确定自主车辆的可驾驶自由空间 Download PDF

Info

Publication number
CN110494863B
CN110494863B CN201980000945.4A CN201980000945A CN110494863B CN 110494863 B CN110494863 B CN 110494863B CN 201980000945 A CN201980000945 A CN 201980000945A CN 110494863 B CN110494863 B CN 110494863B
Authority
CN
China
Prior art keywords
boundary
vehicle
image
drivable
sensor data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201980000945.4A
Other languages
English (en)
Other versions
CN110494863A (zh
Inventor
M·兰卡沃特
姚健
张栋
陈家智
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nvidia Corp
Original Assignee
Nvidia Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nvidia Corp filed Critical Nvidia Corp
Publication of CN110494863A publication Critical patent/CN110494863A/zh
Application granted granted Critical
Publication of CN110494863B publication Critical patent/CN110494863B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/82Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course or altitude of land, water, air, or space vehicles, e.g. automatic pilot
    • G05D1/0088Control of position, course or altitude of land, water, air, or space vehicles, e.g. automatic pilot characterized by the autonomous decision making process, e.g. artificial intelligence, predefined behaviours
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course or altitude of land, water, air, or space vehicles, e.g. automatic pilot
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0231Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means
    • G05D1/0246Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using a video camera in combination with image processing means
    • G05D1/227
    • G05D1/249
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/241Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
    • G06F18/2413Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on distances to training or reference patterns
    • G06F18/24133Distances to prototypes
    • G06F18/24143Distances to neighbourhood prototypes, e.g. restricted Coulomb energy networks [RCEN]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/11Region-based segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/50Context or environment of the image
    • G06V20/56Context or environment of the image exterior to a vehicle by using sensors mounted on the vehicle
    • G06V20/58Recognition of moving objects or obstacles, e.g. vehicles or pedestrians; Recognition of traffic objects, e.g. traffic signs, traffic lights or roads
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition
    • G06V30/19Recognition using electronic means
    • G06V30/191Design or setup of recognition systems or techniques; Extraction of features in feature space; Clustering techniques; Blind source separation
    • G06V30/19173Classification techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition
    • G06V30/19Recognition using electronic means
    • G06V30/192Recognition using electronic means using simultaneous comparisons or correlations of the image signals with a plurality of references
    • G06V30/194References adjustable by an adaptive method, e.g. learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30248Vehicle exterior or interior
    • G06T2207/30252Vehicle exterior; Vicinity of vehicle
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/50Context or environment of the image
    • G06V20/56Context or environment of the image exterior to a vehicle by using sensors mounted on the vehicle
    • G06V20/588Recognition of the road, e.g. of lane markings; Recognition of the vehicle driving pattern in relation to the road

Abstract

在各种示例中,可以接收传感器数据,该传感器数据表示位于物理环境中的车辆的传感器的视场。传感器数据可以应用于机器学习模型,该机器学习模型计算与将物理环境中的不可驾驶的空间与可驾驶的自由空间分开的边界相对应的一组边界点和用于与所述边界相对应的该组边界点的边界点的类标签。可以从由传感器数据表示的一组边界点确定物理环境内的位置,并且可以使用位置和类标签通过可驾驶的自由空间内的物理环境来控制车辆。

Description

确定自主车辆的可驾驶自由空间
背景技术
自主驾驶系统可以在无人监督的情况下控制自主车辆(autonomous vehicle),同时达到可接受的安全水平。这可能要求自主驾驶系统能够至少实现细心的人类驾驶员的功能性能,该人类驾驶员利用感知和动作系统,该系统具有识别复杂环境中的移动和静态障碍并对其作出反应的难以置信的能力。为了实现这一点,可以确定无障碍环境的区域(例如,可驾驶的自由空间),因为该信息在规划演习和/或导航决策时可能对自主驾驶系统和/或高级驾驶员辅助系统(ADAS)有用。
一些确定可驾驶的自由空间的传统方法使用了使用深度人工神经网络(DNN)的基于视觉的技术。例如,这些传统方法使用DNN(例如卷积神经网络(CNN))来执行语义分割(例如,图像的逐像素分类)。然而,语义分割可能在计算上是昂贵的,因为分类被分配给图像的每个像素,并且因此可能需要对DNN的输出进行广泛的后处理以使得输出可由自主驾驶系统使用。因此,使用语义分割来确定可驾驶的自由空间的许多传统方法的缺点是它们不能实时运行。在一些传统方法中-例如在进行调整以减少计算费用以允许实时操作的情况下-语义分割的代价是确定可驾驶的自由空间低于维持自主驾驶的可接受安全水平所需的准确度水平。
另外,在其他传统方法中,可以实现可以执行逐列回归的CNN。然而,这些传统方法可以使用完全连接层,其类似于上述语义分割任务,也可能消耗过量的计算资源,从而降低CNN实时运行的能力。此外,即使在使用CNN进行逐列回归的情况下,也未识别在每列中回归的边界或障碍的类型或类别。结果,CNN的输出可能不足以为自主驾驶系统提供信息以实现自主车辆的安全操作。例如,没有CNN提供的一类边界的上下文-例如诸如人类的动态边界,与诸如路缘的静态边界相对-自主驾驶系统可能无法准确地预测以可以安全控制自主车辆的方式的可驾驶的自由空间。在这样的示例中,当确定导航的位置时,自主驾驶系统可以不考虑边界的动态性质(例如,动态边界类可以在移动时减小可驾驶的自由空间)。结果,即使在所确定的可驾驶的自由空间不对应于实际可驾驶的自由空间的情况下(例如,由于一个或多个动态边界类的移动),自主车辆也可以使用所确定的可驾驶的自由空间来导航环境。
发明内容
本公开的实施例涉及确定用于自主车辆的可驾驶的自由空间。更具体地,公开了一种用于识别在物理环境中将可驾驶的自由空间(例如,无障碍空间)与不可驾驶的空间(例如,具有或超出一个或多个障碍的空间)分开的一个或多个边界以供自主车辆在物理环境中导航所使用的系统和方法。
与诸如上述那些的传统系统相比,本公开的系统可以使用有效且精确的机器学习模型-例如卷积神经网络(CNN)-在将物理环境中的可驾驶的自由空间与不可驾驶的空间分开的一个或多个边界上回归。例如,本系统的CNN可以是完全卷积网络,意味着CNN可以不包括任何完全连接层,从而提高系统的效率,同时减少计算资源的消耗。此外,通过在边界上回归(例如,逐列),当前系统可能不需要单独地对图像的每个像素进行分类-如传统分割方法所要求的-从而减少了对CNN的输出执行大量后处理的要求。
与传统方法相比,本系统的CNN可以预测与图像中识别的(多个)边界相对应的每个边界类的标签。结果,本系统可以使用该上下文信息(例如,动态边界、静态边界、车辆、行人、路缘、障碍等)来安全地导航自主车辆通过环境,同时考虑划定可驾驶的自由空间的不同边界类-例如边界类是否可以移动、它们如何移动、它们移动到何处以及/或类似物。
最终,本系统可以实现用于检测可驾驶的自由空间的CNN,与传统方法相比,其在计算上更便宜,更具上下文信息,足以有效地实时运行(例如,每秒30帧或更高),并且足够准确可用于安全地导航自主车辆通过现实世界的物理环境。
附图说明
下面参考附图详细描述用于确定用于自主车辆的可驾驶的自由空间的本系统和方法,其中:
图1A是根据本公开的一些实施例的用于边界识别的数据流程图的图示;
图1B是根据本公开的一些实施例的用于边界识别的示例机器学习模型的图示;
图1C是根据本公开的一些实施例的用于边界识别的示例机器学习模型的另一个图示;
图1D是根据本公开的一些实施例的用于边界识别的机器学习模型的示例输出的图示;
图2是根据本公开的一些实施例的用于确定边界的方法的示例流程图;
图3A是根据本公开的一些实施例的用于机器学习模型的示例训练图像;
图3B是根据本公开的一些实施例的用于机器学习模型的另一示例训练图像;
图4是根据本公开的一些实施例的训练机器学习模型的方法的示例流程图;
图5是根据本公开的一些实施例的用于机器学习模型的另一示例训练图像;
图6是根据本公开的一些实施例的用于检测多个边界的方法的示例流程图;
图7A是根据本公开的一些实施例的示例性自主车辆的图示;
图7B是根据本公开的一些实施例的图7A的示例自主车辆的相机位置和视场的示例;
图7C是根据本公开的一些实施例的图7A的示例自主车辆的示例系统架构的框图;
图7D是根据本公开的一些实施例的用于图7A的示例自主车辆与基于云的(多个)服务器之间的通信的系统图;和
图8是适用于实现本公开的一些实施例的示例计算设备的框图。
具体实施方式
公开了涉及确定用于自主车辆的可驾驶的自由空间的系统和方法。可以关于示例自主车辆700(在本文中可选地称为“车辆700”或“自主车辆700”)来描述本公开,其示例在本文中参考图7A-7D更详细地描述。然而,本公开不限于自主车辆,并且可以用于高级驾驶员辅助系统(ADAS)、机器人、虚拟现实(例如,以确定用于运动者的运动的自由空间)、和/或在其他技术领域。因此,此处关于车辆700的描述仅是示例性目的,并不旨在将本公开限制于任何一个技术领域。
边界点和类标签检测系统
如本文所述,确定可驾驶的自由空间的一些传统方法可依赖于深度神经网络(DNN)来生成逐像素分割信息。然而,用于确定可驾驶的自由空间的分割方法在计算上是昂贵的并且需要大量的后处理以便自主驾驶系统理解并使用DNN输出。
在传统系统中,可以使用逐列回归来确定用于识别可驾驶的自由空间的障碍位置。然而,这些传统系统不考虑构成或划定边界的一个或多个边界类型或类别,从而最小化DNN输出的边界位置的有用性。例如,在没有关于边界类的信息(例如,静态、动态、车辆、障碍、行人等)的情况下,边界的位置可能不是足够有用的信息来安全地确定或响应可驾驶的自由空间(例如,行人、车辆和其他动态对象可能会改变位置,而静态对象可能不会)。另外,这些传统方法使用需要大量计算资源来实现的DNN,并且因此可能无法在实时实现中有效地操作。例如,传统的DNN可以使用多个完全连接层-每个层导致计算资源的消耗-以便在边界上精确地回归。结果,即使在识别边界的情况下,该过程也可能无法实时执行,并且-由于可能无法识别边界类-系统可能无法以允许该系统如需要安全地执行的方式使用输出(例如,因为系统可能没有考虑动态边界类的变量,例如行人、车辆、动物等)。
与这些传统系统相反,本公开的系统可以使用DNN(诸如卷积神经网络(CNN))在确定为将可驾驶的自由空间与不可驾驶的空间分开的一个或多个边界上回归。另外,DNN可以预测与(多个)边界相关联的一个或多个边界类。除了使用相对较小的占用空间、更少处理密集的DNN执行回归之外,通过使用回归而不是分割或分类–例如,通过不包括任何完全连接层,通过包括比传统方法更少的完全连接层,通过使用完全卷积网络等等-本系统的DNN可以能够实时操作(例如,以每秒30帧(fps)或更高),同时还输出准确和可用的信息。例如,DNN的输出可以由自主驾驶软件栈的一个或多个层使用,例如感知层、世界模型管理层、规划层、控制层、致动层和/或另一层。由于输出不仅包括边界的位置,还包括边界类,由于与(多个)边界类相关的一个或多个变量的结果,自主驾驶软件栈的(多个)层可以通过考虑边界的变化而更有效地使用该位置-例如(多个)边界类是静态的还是动态的、人或车辆、路缘或水泥分隔物等。
在一些示例中,DNN的输出可以经历一个或多个平滑过程-诸如空间平滑和/或时间平滑。如本文所述,因为可以使用回归而不是分割,所以可以使用不太复杂和鲁棒的后处理技术,同时实现更准确的结果。例如,空间平滑和/或时间平滑可能需要比用于基于分割的方法的传统后处理技术相对更少的计算资源,并且实现空间平滑和/或时间平滑可能相对较不复杂。
时间平滑可以应用于由DNN输出的边界点位置和边界类标签。可以使用时间平滑来增加结果随时间的一致性。来自一个或多个先前帧(例如,由传感器数据表示的图像帧)的预测边界点位置和/或边界类标签可用于计算当前帧的更新的或平滑的边界点位置和/或边界类标签。结果,当前帧的边界点位置和/或边界类标签可受益于边界点位置和/或边界类标签的先前预测,从而产生更平滑、噪声更小的输出以供自主驾驶软件栈的(多个)层使用。
利用高斯滤波器的空间平滑可以应用于预测的边界点位置。结果,可以消除或平滑边界点位置的突然变化。例如,对于当前帧的列处的预测边界点位置,来自一个或多个相邻列的值(例如,由高斯滤波器半径确定)可用于更新或平滑列的预测的边界点位置。该过程可以用于当前帧的任何数量的列,并且可以产生更平滑、噪声更小的输出以供自主驾驶软件栈的(多个)层使用。
预测的边界点位置可以表示由传感器数据表示的图像内的像素位置。像素位置可以是图像中的二维(2D)坐标(例如,列和行)。2D坐标可以被转换为与车辆的物理环境中的位置相对应的三维(3D)或2D真实世界坐标(例如,全球定位系统(GPS)坐标或其他全球导航卫星系统(GNSS)坐标)。为了精确地确定2D坐标和真实世界坐标之间的关系,可以使用3D到2D投影。例如,可以使用一个或多个固有的(例如,焦距、f、光学中心(uo,vo)、像素纵横比、α、偏斜、s等)和/或外在的(例如,3D旋转、R、平移、t等)相机参数,校准相机或(多个)其他传感器。还可以施加一个或多个约束,例如要求3D点总是位于驾驶表面的地平面上(例如,因为划定可驾驶的自由空间的边界可以是驾驶表面的一部分,或者可以沿着驾驶表面延伸)。在一些示例中,相机的一个或多个参数可以是动态的(例如,由于振动、移动、取向等),并且因此可以动态地更新3D到2D投影。在一些示例中,例如在使用两个或更多个相机的情况下,可以使用立体视觉技术来确定2D点和3D真实世界位置之间的相关性。
在任何示例中,然后可以将真实世界坐标映射到图像中的像素的2D坐标,使得当确定边界点时,真实世界坐标是已知的并且可以由自主驾驶软件栈使用(或更一般地,由自主车辆)。更具体地,可以确定在现实世界环境中从相机中心到边界的距离,并且自主车辆可以使用到每个边界点的距离作为可在其中操作的可驾驶的自由空间。
在训练DNN时,可以生成地面实况数据以用于训练。例如,可以生成注释(例如,通过人、通过机器或其组合)。注释可以包括用于训练图像内的每列的像素的标签。像素可以是该特定列中的第一像素(从图像的底部开始并且移动到图像的顶部-例如,在真实世界环境中从最近到最远离车辆),其对应于将可驾驶的自由空间与不可驾驶的空间分开的边界。注释还可以包括类的指示,其可以由标签的不同颜色、形状和/或其他属性指示。结果,DNN可以学习不仅识别边界点位置,而且还识别每个边界点位置的相关边界类标签。在一些示例中,例如在注释了两个或更多个边界的情况下,可以在与DNN正被训练以检测的边界的数量相对应的图像的每列中的多个像素上存在注释。另外,不同的边界可以包括附加标签,例如可驾驶的(或可通行)或不可驾驶的(或不可通行)。例如,车道或人行道前方的路缘可以是可通行的边界,而紧邻建筑物之前的路缘可以是不可通行的边界。这样,DNN可以学习区分可驾驶边界和不可驾驶边界,使得在紧急情况等中,自主车辆可以确定通行可驾驶边界以避免与对象或边界碰撞。DNN不限于计算可通行和不可通行的边界,并且可以附加地或替代地计算具有任何数量的不同类分配的任何数量的边界。
在训练期间,可以使用一个或多个损失函数来比较DNN的输出或预测与地面实况数据。例如,第一(边界)损失函数可以用于由DNN输出的边界点位置,第二(标签)损失函数可以用于由DNN输出的类标签。在一些示例中,边界损失函数可以包括L1损失函数,并且标签损失函数可以包括交叉熵损失函数。边界损失函数和标签损失函数的加权组合可以用于最终损失计算。在一些示例中,可以在边界损失函数和加权损失函数之间使用权重比(例如,1:10,其中1用于边界,10用于标签)。可以使用自动权重方案,其在用于加权或最终损失的给定目标比时自适应地或自动地调整成本权重。自动加权方案可以持久地、周期性地(例如,每个训练时期一次)和/或以另一个间隔被更新以设置权重。
在训练期间,可以使用一个或多个度量来评估当前系统的性能。例如,可以使用相对间隙、精度、标签准确度、平滑度、加权自由空间精度(WFP)和/或加权自由空间召回(WFR)。相对间隙可以测量地面实况边界曲线和预测边界曲线之间的绝对偏差的平均值。精度可以测量来自地面实况边界曲线的预测边界曲线的过冲量(例如,由DNN确定为可驾驶的自由空间的不可驾驶的空间的量)。标签准确度可以测量与地面实况边界类标签相比预测边界类标签的准确度。平滑度可以测量预测曲线的平滑度(例如,边界曲线的连续边界点之间的差的平均值)。WFP可以包括仅使用过冲的精确计算,使得如果没有过冲,则精度可以是1.0(例如,地面实况和预测之间的接近完美匹配)。WFR可以包括仅使用下冲的精度计算,使得如果没有下冲,则精度可以是1.0(例如,地面实况与预测之间的接近完美匹配)。对于WFP和WFR,在一些示例中,不同边界类标签的权重可以不同,使得一些边界类或类型具有更高的相关权重。例如,行人可能具有比路缘更高的相关权重,因为相对于人的准确性比相对于路缘更准确。
现在参考图1A,图1A是根据本公开的一些实施例的边界识别的过程100的数据流程图的图示。用于边界识别的过程100可以包括从自主车辆700的一个或多个传感器生成和/或接收传感器数据102。传感器数据102可以包括来自车辆700(和/或其他车辆或对象,在一些示例中,诸如机器人设备、VR系统、AR系统等)的任何传感器的传感器数据。参考图7A-7C,传感器数据102可以包括由如下生成的数据,例如但不限于:(多个)全球导航卫星系统(GNSS)传感器758(例如,(多个)全球定位系统传感器)、(多个)RADAR传感器760、(多个)超声波传感器762、(多个)LIDAR传感器764、(多个)惯性测量单元(IMU)传感器766(例如,(多个)加速度计、(多个)陀螺仪、(多个)磁罗盘、(多个)磁力计等等)、(多个)麦克风796、(多个)立体相机768、(多个)广视相机770(例如,(多个)鱼眼相机)、(多个)红外相机772、(多个)环绕相机774(例如,(多个)360度相机)、(多个)远程和/或中程相机798、(多个)速度传感器744(例如,用于测量车辆700的速度)、(多个)振动传感器742、(多个)转向传感器740、(多个)制动传感器(例如,作为制动传感器系统746的一部分)和/或其他传感器类型。
在一些示例中,传感器数据102可以包括当车辆700向前移动时由例如广视相机770、环绕相机774、立体相机768和/或远程或中程相机798的一个或多个前向相机(例如,中心或近中心安装的相机)生成的传感器数据。当车辆700反向移动时,可以使用一个或多个后置相机。在一些示例中,一个或多个侧向相机和/或一个或多个停车相机可用于确定到车辆700侧面和/或紧邻车辆700的可驾驶的自由空间。多于一个相机或其他传感器(例如,LIDAR传感器、RADAR传感器等)可用于合并多个视场(例如,图7B的远程相机798、前向立体相机768和/或前向广视相机770的视场)。在任何示例中,(多个)机器学习模型104使用的传感器数据102可以是被确定为对于确定车辆700的当前行驶方向上的可驾驶的自由空间和不可驾驶空间最有用的传感器数据102。
传感器数据102可包括表示图像的图像数据,表示视频的图像数据(例如,视频的快照),和/或表示传感器的视场的传感器数据(例如,来自(多个)LIDAR传感器764的LIDAR数据、来自(多个)RADAR传感器760的RADAR数据等)。在一些示例中,传感器数据102可以被输入到(多个)机器学习模型104中并且由(多个)机器学习模型104使用以计算边界点106和/或类标签108。在一些其他示例中,传感器数据102可以作为输入提供给传感器数据预处理器(未示出),以产生预处理的传感器数据。然后,除了传感器数据102之外或作为替代,可以将预处理的传感器数据输入到(多个)机器学习模型104中作为输入数据。
在传感器数据102是图像数据的示例中,可以使用许多类型的图像或格式作为输入。例如,诸如以联合图像专家组(JPEG)或亮度/色度(YUV)格式的压缩图像,压缩图像作为源自诸如H.264/高级视频编码(AVC)或H.265/高效视频编码(HEVC)的压缩视频格式的帧,诸如源自红色透传蓝色(RCCB)、红色透传(RCCC)或其他类型的成像传感器的原始图像。注意,可以使用不同的格式和/或分辨率来训练(多个)机器学习模型104而不是用于推理(例如,在自主车辆700中部署(多个)机器学习模型104期间)。
传感器数据预处理器可以使用表示一个或多个图像(或其他数据表示)的传感器数据102,并以多维阵列/矩阵(或者称为张量,或者更具体地,在一些示例中,输入张量)的形式将传感器数据加载到存储器中。阵列大小可以被计算和/或表示为W x H x C,其中W代表像素的图像宽度,H代表像素的高度,C代表颜色通道的数量。在不失一般性的情况下,输入图像分量的其他类型和顺序也是可能的。另外,批量大小B可以在使用批处理时用作维度(例如,另外的第四维度)。批处理可用于训练和/或推理。因此,输入张量可以表示维度W xH x C x B的阵列。维度的任何排序都是可能的,这可以取决于用于实现传感器数据预处理器的特定硬件和软件。可以选择该排序以最大化(多个)机器学习模型104的训练和/或推理性能。
传感器数据预处理器可以采用预处理图像管道(pipeline)来处理由(多个)传感器获取并包括在传感器数据102中的(多个)原始图像,以产生预处理传感器数据,其可以表示到(多个)机器学习模型104的(多个)输入层(例如,图1B的(多个)特征提取器层126)的(多个)输入图像。合适的预处理图像管道的示例可以使用来自传感器的原始RCCB Bayer(拜耳)(例如,1通道)类型的图像并将该图像转换为以固定精度(例如,每通道16位)格式存储的RCB(例如,3通道)平面图像。预处理图像管道可以包括解压缩、降噪、去马赛克、白平衡、直方图计算和/或自适应全局色调映射(例如,以该顺序或以替代顺序)。
在传感器数据预处理器采用降噪的情况下,它可以包括拜耳域中的双边去噪。在传感器数据预处理器采用去马赛克的情况下,它可以包括双线性插值。在传感器数据预处理器采用直方图计算的情况下,其可以涉及计算C通道的直方图,并且在一些示例中可以与解压缩或降噪合并。在传感器数据预处理器采用自适应全局色调映射的情况下,其可以包括执行自适应伽马-对数变换。这可以包括计算直方图,获得中间色调级别和/或利用中间色调级别估计最大亮度。
(多个)机器学习模型104可以使用由传感器数据102表示的一个或多个图像(或其他数据表示)作为输入来生成边界点106(例如,代表图像内的(多个)边界的2D像素位置)和/或类标签108(例如,对应于与(多个)边界相关联的边界类的边界类标签)作为输出。在非限制性示例中,(多个)机器学习模型104可以将由预处理的传感器数据和/或传感器数据102表示的(多个)图像作为输入,并且可以使用传感器数据在边界点106上回归并且生成对应于边界点106的类标签108的预测。
尽管这里关于使用神经网络,特别是卷积神经网络来描述示例,但是作为(多个)机器学习模型104(例如,如本文中关于图1B和1C更详细描述的),这不是限制性的。例如但不限于,这里描述的(多个)机器学习模型104可以包括任何类型的机器学习模型,诸如使用线性回归、逻辑回归、决策树、支持向量机(SVM)、朴素贝叶斯(Bayes)、k-最近邻(Knn)、K均值聚类、随机森林、降维算法、梯度提升算法、神经网络(例如,自动编码器、卷积、循环、感知器、长/短期记忆(LSTM)、霍普菲尔德(Hopfield)、玻尔兹曼(Boltzmann)、深度信念、反卷积、生成对抗,液体状态机等)的(多个)机器学习模型、和/或其他类型的(多个)机器学习模型。
边界点106可以表示由传感器数据表示的图像的点(或像素),其对应于在车辆700的真实世界环境中将可驾驶的自由空间与不可驾驶的空间分开的一个或多个边界。例如,对于每个边界,对于图像的每列可以存在一个边界点106(或者在一些示例中,更多)(例如,作为(多个)机器学习模型104的回归分析的结果),其可以取决于图像的空间宽度(例如,对于1920W×1020H图像,对于一个或多个边界的每个边界可以存在1920个边界点106)。结果,可以基于边界点106在(多个)传感器(例如,(多个)相机)的视场的整个横向维度上在现实世界环境中确定边界。
如本文关于图1D更详细地描述的那样,在一些非限制性示例中,边界点106可以由(多个)机器学习模型104输出为一维阵列(例如,具有一行,并且与图像的空间宽度相对应的多个列)。在这样的示例中,每个单元可以包括0和1之间的值,该值对应于该列的边界点106(或像素)所在的图像的空间高度的百分比(例如,由机器学习模型104输出的边界点106被标准化为图像的高度)。这样,如果图像具有100的空间高度,并且对应于图像的第一列的第一单元中的值是0.5,则可以确定第一列的边界点106在像素50。一维阵列可以是(多个)机器学习模型104的输出,其中(多个)机器学习模型用于在图像内的边界上回归。
在其他示例中,由(多个)机器学习模型104输出的边界点106可以是不同的格式,诸如与列内的实际像素相对应的(多个)值、基于从图像的中心的距离的(多个)值和/或其他格式。在这样的示例中,输出可以不是一维阵列,而是可以是任何维度(例如,对应于图像的空间宽度的多个列和对应于图像的空间宽度的多个行,和/或其他维度)。
对于每个边界点106,类标签108可以表示对应于边界点106的边界类或类型。例如,对于第一边界点106,类标签108可以用于行人,对于第二边界点106,类标签108可以用于车辆,对于第三边界点,类标签108可以用于障碍,等等。可以存在(多个)机器学习模型104被训练以识别和标记的任何数量的类标签108。在一个非限制性示例中,可以存在四个类标签108,其对应于包括车辆、行人、障碍或路缘的四个类别以及包罗万象(catchall)或未识别的类别(例如,不属于任何其他边界类或者不能肯定地置于其他边界类之一的边界类型)。在其他示例中,可以存在少于四个类标签108或多于四个类标签108,和/或类标签108可以是较多或较少颗粒状的。例如,类标签108可以对应于诸如静态或动态的较少颗粒的类,或者对应于例如轿车、运动型多用途车(SUV)、卡车、公共汽车、成人、儿童、路缘、分隔器、护栏等的较多颗粒的类。
如本文关于图1D更详细地描述的那样,在一些非限制性示例中,类标签108可以由(多个)机器学习模型104输出(例如,计算)为二维阵列(例如,具有与(多个)机器学习模型104被训练以识别和标记的类的数量相对应的多个行,以及与图像的空间宽度相对应的多个列)。在这样的示例中,阵列的每列中的每个单元可以包括0到1之间的值(例如,每列的所有值的总和等于1),其对应于与来自相同列的边界点106相对应的类标签108的概率或置信度。
边界点106和/或类标签108可以使用一种或多种后处理技术经历一个或多个后处理操作。例如,边界点106可以经历空间平滑110。空间平滑110可以用高斯滤波器执行,如本文所述,并且可以被应用于由(多个)机器学习模型104预测的边界点106(例如,作为输出)。空间平滑110的目标可以是消除边界点106的相邻组之间的边界的突然变化。考虑到来自相同单个帧的其他边界点106,可以对来自传感器数据的单个帧的边界点106执行空间平滑110。例如,可以通过使用与一个或多个相邻边界点106相对应的信息(例如,值)来对与来自单个帧的边界相对应的一个或多个边界点106进行滤波或平滑(例如,使用高斯滤波器)。这样,当第一边界点106与相邻的第二边界点106明显不同时,空间平滑110可用于在第一和第二边界点106之间产生较不严格或剧烈的过渡。
在一些非限制性示例中,空间平滑110可以使用下面的等式(1)来实现:
其中gauss_filter是高斯滤波器阵列,col.curr是当前列,radiusgauss_filter是高斯滤波器的半径,boundaryspatial是空间平滑后的边界阵列,并且idx是索引(例如,从0到等式(1)中的高斯滤波器阵列的长度)。
作为后处理的另一示例,边界点106和/或类标签108可经历时间平滑112。时间平滑112的目标可以是消除在当前帧与传感器数据的一个或多个先前帧之间的边界点106和/或类标签108中的突然变化。这样,时间平滑112可以考虑一个或多个先前帧的边界点106和/或类标签108来查看当前帧的边界点106和/或类标签108,以平滑边界点106和/或类标签108的值,使得连续帧之间的差异可能不那么剧烈。在一些示例中,先前帧可以每个基于其(多个)先前帧被加权或平滑,并且因此,每个连续帧可以是多个先前帧(例如,所有先前帧)的加权表示。这样,当第一边界点106和/或第一类标签108与先前的第二边界点106和/或第二类标签108明显不同时,时间平滑112可用于在第一和第二边界点106之间的产生较不严格或剧烈的过渡。
在一些非限制性示例中,边界点106的时间平滑112可以使用下面的等式(2)来实现:
boundarysmooth=α*boundaryprev.+(1-α)*boundarycurr. (2)
其中α是0到1之间的实数,boundaryprev.表示前一帧中的边界阵列(例如,边界点106的阵列),boundarycurr.表示当前帧中的边界阵列,boundarysmooth表示在时间平滑112之后的边界阵列。
在一些示例中,α可以被设置为默认值。例如,在一个非限制性示例中,默认值可以是0.5。然而,α的值可以根据实施例而不同。例如,在α为0.5的情况下,边界点106和相邻边界点106之间的加权对于边界点106可以是50%,对于相邻边界点106可以是50%。在其中边界点106将比(多个)相邻边界点106更大程度地加权的示例中,α的值可以更低,例如0.3、0.4等,并且在边界点将比(多个)相邻边界点106更小程度地加权的情况下,α的值可以更高,例如0.6、0.7等。
在一些非限制性示例中,类标签108的时间平滑112可以使用下面的等式(3)来实现:
label_probsmooth=α*label_probprev.+(1-α)*label_probcurr.
(3)
其中α是0到1之间的实数,label_probprev.表示前一帧中的类标签概率阵列(例如,类标签108的预测阵列)label_probcurr.表示当前帧中的类标签概率阵列,label_probsmooth表示时间平滑112之后的类标签概率阵列。
在一些示例中,α可以被设置为默认值。例如,在一个非限制性示例中,默认值可以是0.5。然而,α的值可以根据实施例而不同。例如,在α为0.5的情况下,(多个)先前帧和当前帧之间的加权对于当前帧可以是50%,对于(多个)先前帧可以是50%。在当前帧比(多个)先前帧更大程度地加权的示例中,α的值可以更低,例如0.3、0.4等,并且在当前帧比(多个)先前帧更小程度地加权的示例中,α的值可以更高,例如0.6、0.7等。
可以单独地执行空间平滑110和/或时间平滑112,可以执行两者,并且可以以任何顺序执行空间平滑110和/或时间平滑112。例如,可以仅执行空间平滑110或仅执行时间平滑112。作为另一示例,可以执行空间平滑110和时间平滑112两者。在这样的示例中,可以在时间平滑112之前执行空间平滑110,可以在空间平滑110之前执行时间平滑112,和/或可以同时或并行地执行两者。在一些示例中,可以在时间平滑112之后对输出执行空间平滑110,或者可以在空间平滑110之后对输出执行时间平滑112。
由(多个)机器学习模型104计算的边界点106-在一些示例中的后处理之后-可以从传感器数据的(例如,图像的)2D点或像素位置转换为3D或2D现实世界坐标。在一些示例中,位置确定器114可以基于2D点或像素坐标确定边界的真实世界3D位置。使用固有的相机参数(例如,焦距、f、光学中心(uo,vo)、像素纵横比、α、偏斜、s等)、外在相机参数(例如,3D旋转、R、平移、t等)、和/或相机相对于地平面的高度,可以计算从边界(例如,由边界点106划定的边界)到相机中心的3D距离。可以假设真实世界坐标系和相机坐标系是相同的坐标系。结果,投影矩阵P可以根据下面的等式(4)表示:
P=[K 0]3x4 (4)
其中K是3x3维内在相机矩阵。
为了执行3D到2D投影,对于道路或驾驶表面上的任何点[X,Y,Z],可以在满足下面等式(5)的图像中确定对应像素[u,v]:
其中λ是齐次坐标中的缩放常数,K是3x3维内在相机矩阵。
图像中的像素p可以沿着连接相机中心和像素p的线被映射到无限数量的3D点。这样,为了确定像素p的对应3D位置,根据实施例,可以施加一个或多个约束和/或可以利用立体视觉。在施加约束的示例中,约束可以是3D点总是位于道路或驾驶表面的地平面上。在一些示例中,地平面可以满足下面的等式(6)中所示的关系:
nTx+c=0 (6)
其中x=[XYZ]T,c是与相机中心距离地平面的高度相关的常数(例如,如果相机中心距离地平面1.65米,c=1.65),T为时间,并且,当假设相机与地平面正交时,在相机坐标系中n=[0 -1 0]T
由于可以知道边界上的像素p的位置,因此可以从3D到2D投影方程(7)导出与像素p相对应的3D位置,作为λ和K的函数:
x=[X Y Z]T=λK-1p (7)
其中p=[u v 1]T。使用地平面的等式中的3D点的解得到以下关系,由等式(8)表示如下:
λnTK-1p+c=0 (8)
因此,
结合等式(8)和(9),得到下面的等式(10):
穿过地平面从边界到车辆700的距离可以通过从x减去相机中心在地平面上的投影来确定,如下面的等式(11)所示:
d=||x-C″||2 (11)
其中C”是相机中心在地平面上的投影等于h=[0 1.65 0]T,假设相机距地平面的高度为1.65米。另外,通过考虑从相机中心到地平面的前方(例如,沿z轴)或车辆的前方的距离,可以从边界到车辆700的前方确定距离df。例如,假设相机中心距离地平面的前方2.85米,则距离df可以使用下面的等式(12)来确定:
df=d-2.85 (12)
尽管这里描述了用于确定从车辆700到边界的距离的3D到2D投影的示例,但是这不是限制性的。例如,可以使用从图像坐标确定真实世界坐标的任何方法来确定从车辆700到边界的距离,并且因此确定车辆700在其内部移动的可驾驶的自由空间。作为示例,可以确定3D对象坐标,可以使用建模变换来确定与3D对象坐标相对应的3D真实世界坐标,可以使用视觉变换来基于3D真实世界坐标来确定3D相机坐标。可以使用投影变换来基于3D相机坐标确定2D屏幕坐标,和/或可以使用窗口到视口变换来确定形成2D屏幕坐标的2D图像坐标。通常,可以将真实世界坐标转换为相机坐标,可以将相机坐标转换为底片坐标,并且可以将底片坐标转换为像素坐标。一旦已知像素坐标并且确定边界(例如,确定边界点106),就可以使用从边界点106到真实世界坐标的已知映射来确定真实世界坐标中的边界的位置。
在其他示例中,可利用立体视觉来确定2D和3D坐标之间的相关性,例如使用两个或更多个相机的情况。在这样的示例中,立体视觉技术可以用于使用来自从两个或更多个相机(或其他传感器,例如LIDAR传感器)生成的两个或更多个图像的信息来确定到边界的距离。
边界点106(例如,在后处理之后对应于边界点106的真实世界位置)和类标签108(例如,在后处理之后)可以由自主驾驶软件栈146的一个或多个层使用(在本文中可选地称为“驾驶栈146”)。驾驶栈146可包括传感器管理器(未示出)、(多个)感知组件(例如,对应于驾驶栈146的感知层)、世界模型管理器116、(多个)规划组件118(例如,对应于驾驶栈146的规划层)、(多个)控制组件120(例如,对应于驾驶栈146的控制层)、(多个)障碍避免组件122(例如,对应于驾驶栈146的障碍或防撞层)、(多个)致动组件124(例如,对应于驾驶栈146的致动层)、和/或对应于驾驶栈146的附加和/或替代层的其他组件。在一些示例中,可以由(多个)感知组件执行过程100,(多个)感知组件可以将驾驶栈146的层馈送到世界模型管理器,如本文更详细描述的。
传感器管理器可以管理和/或抽象来自车辆700的传感器的传感器数据102。例如,并且参考图7C,传感器数据102可以由如下(例如,基于某些条件,以一定间隔,不断地)产生:(多个)全球导航卫星系统(GNSS)传感器758、(多个)RADAR传感器760、(多个)超声波传感器762、(多个)LIDAR传感器764、(多个)惯性测量单元(IMU)传感器766、(多个)麦克风796、(多个)立体相机768、(多个)广视相机770、(多个)红外相机772、(多个)环绕相机774、(多个)远程和/或中程相机798、和/或其他传感器类型。
传感器管理器可以以不同格式从传感器接收传感器数据(例如,诸如LIDAR传感器的相同类型的传感器可以输出不同格式的传感器数据),并且可以被配置为将不同格式转换为统一格式(例如,对于每个相同类型的传感器)。结果,自主车辆700的其他组件、特征和/或功能可以使用统一格式,从而简化传感器数据的处理。在一些示例中,传感器管理器可以使用统一格式来将控制应用回到车辆700的传感器,例如设置帧速率或执行增益控制。传感器管理器还可以利用时间戳更新与传感器数据相对应的传感器分组或通信,以帮助通过自主车辆控制系统的各种组件、特征和功能来通知传感器数据的处理。
世界模型管理器116可用于生成、更新和/或定义世界模型。世界模型管理器116可以使用由驾驶栈146的(多个)感知组件生成的信息和从驾驶栈146的(多个)感知组件接收的信息(例如,将可驾驶的自由空间与不可驾驶的空间分开的边界的位置和类标签108)。(多个)感知组件可包括障碍感知器、路径感知器、等待感知器、地图感知器和/或(多个)其他感知组件。例如,可以至少部分地基于可以由障碍感知器、路径感知器、等待感知器和/或地图感知器实时或接近实时地感知的障碍、路径和等待条件的可供性来定义世界模型。世界模型管理器116可以基于来自自主车辆控制系统的障碍感知器、路径感知器、等待感知器、地图感知器和/或其他组件的新生成和/或接收的输入(例如,数据)来连续地更新世界模型。
世界模型可以用于帮助通知驾驶栈146的(多个)规划组件118、(多个)控制组件120、(多个)障碍避免组件122和/或(多个)致动组件124。障碍感知器可以执行的障碍感知,该障碍感知可能基于车辆700被允许驾驶或能够驾驶的地方(例如,基于从边界点106确定的边界的位置和/或基于类标签108),以及车辆700在不与由车辆700的传感器感测的障碍(例如,诸如结构、实体、车辆等的对象)碰撞的情况下能够驾驶多快。
路径感知器可以执行路径感知,例如通过感知在特定情况下可用的标称路径。在一些示例中,路径感知器可以进一步考虑路径感知的车道变化。车道图可以表示车辆700可用的路径或多个路径,并且可以与高速公路入口匝道上的单个路径一样简单。在一些示例中,车道图可以包括到期望车道的路径和/或可以指示沿着高速公路(或其他道路类型)的可用变化,或者可以包括附近车道、车道变换、岔口、转弯、立体式交叉、合并和/或其他信息。
作为规则、惯例和/或实际考虑的结果,等待感知器可以负责确定对车辆700的约束。例如,规则、惯例和/或实际考虑可能与交通灯、多路停车、收益、合并、收费站、大门、警察或其他应急人员、道路工人、停止的公共汽车或其他车辆、单向桥接仲裁、渡口等有关。在一些示例中,等待感知器可以负责确定车辆700上的纵向约束,其要求车辆等待或减速直到某些条件为真。在一些示例中,等待条件来自诸如交叉路口中的交叉口交通的潜在的障碍,例如,其可能无法通过障碍感知器的直接感测察觉(例如,通过使用来自传感器的传感器数据102,因为障碍可能从传感器的视场中被遮挡)。结果,等待感知器可以通过解决通过可以被感知和/或学习的规则和惯例而不总是立即可感知的障碍的危险来提供态势感知。因此,可利用等待感知器来识别潜在障碍并实施可能不仅仅依赖于障碍感知器的一个或多个控制(例如,减速、停止等)。
地图感知器可以包括通过其识别行为的机制,并且在一些示例中,确定在特定地区应用什么约定的具体示例。例如,地图感知器可以从表示先前驾驶或行程的数据确定在某个交叉点在某些小时之间没有U形转弯,显示车道方向性的电子标志根据一天中的时间而变化,那两个近距离交通灯(例如,几乎没有相互偏移)与不同的道路相关联,在罗德岛,等待在交通灯处左转的第一辆车在灯变绿时通过在迎面而来的交通之前转弯而违反法律和/或其他信息。地图感知器可以向车辆700通知静态或固定的基础设施对象和障碍。地图感知器还可以生成等待感知器和/或路径感知器的信息,例如,为车辆700确定交叉路口处的哪个灯是绿色的以采取特定路径。
在一些示例中,来自地图感知器的信息可以被发送、传输和/或提供给(多个)服务器(例如,到图7D的(多个)服务器778的地图管理器),以及来自(多个)服务器的信息被发送、传输和/或提供给车辆700的地图感知器和/或定位管理器。地图管理器可以包括远离车辆700并且可由车辆700通过一个或多个网络访问的云映射应用。例如,车辆700的地图感知器和/或定位管理器可以与地图管理器和/或(多个)服务器的一个或多个其他组件或特征通信,以向地图感知器和/或定位管理器通知车辆700的过去和现在的行驶或行程,以及其他车辆的过去和现在的行驶或行程。地图管理器可以提供可以由定位管理器基于车辆700的特定位置定位的映射输出(例如,地图数据),并且世界模型管理器116可以使用定位的映射输出来生成和/或更新世界模型。
(多个)规划组件118可以包括路线规划器、车道规划器、行为规划器和行为选择器、以及其他组件、特征和/或功能。路线规划器可以使用来自地图感知器、地图管理器和/或定位管理器的信息以及其他信息来生成可以由GNSS航点(例如,GPS航点)组成的计划路径。航点可以表示车辆700的到未来的特定距离,例如多个城市街区、数公里、英尺数、英里数等,可以用作车道规划器的目标。
车道规划器可以使用车道图(例如,来自路径感知器的车道图)、车道图内的对象姿势(例如,根据定位管理器)、和/或到达来自路线规划器的未来的距离的目标点和方向作为输入。目标点和方向可以被映射到车道图中的最佳匹配可驾驶点和方向(例如,基于GNSS和/或罗盘方向)。然后可以从车道图中的当前边缘对车道图执行图搜索算法,以找到到目标点的最短路径。
行为规划器可以确定车辆700的基本行为的可行性,例如停留在车道中或向左或向右改变车道,使得可行行为可以与从车道规划器输出的最期望的行为匹配。例如,如果确定期望的行为不安全和/或不可用,则可以替代地选择默认行为(例如,当期望的行为或改变车道不安全时,默认行为可以保持在车道上)。
(多个)控制组件120可以尽可能密切地并且在车辆700的能力内遵循从(多个)规划组件的行为选择器接收的轨迹或路径(横向和纵向)。在一些示例中。远程操作员可以确定轨迹或路径,并且因此可以代替或扩充行为选择器。在这样的示例中,远程操作员可以提供可以由(多个)控制组件120接收的控制,并且(多个)控制组件可以直接跟随控制,可以在车辆的能力内尽可能紧密地遵循控制,或者可以将控制作为建议并使用驾驶栈146的一个或多个层确定是否应该执行控制或者是否应该执行其他控制。
(多个)控制组件120可以使用紧密反馈来处理未建模的未计划事件或行为和/或导致与理想的差异的任何事件(例如,意外延迟)。在一些示例中,控制组件120可以使用前向预测模型,该前向预测模型将控制作为输入变量,并且产生可以与期望状态进行比较的预测(例如,与由(多个)规划组件118要求的期望的横向和纵向路径进行比较)。可以确定使差异最小化的(多个)控制。
尽管(多个)规划组件126和(多个)控制组件120分开示出,但是这不是限制性的。例如,在一些实施例中,可以不精确地定义计划部件规划组件118和计划部件控制组件120之间的划定。这样,归因于计划部件规划组件118的至少一些组件、特征和/或功能可以与计划部件控制组件120相关联,反之亦然。
(多个)障碍避免组件122可以帮助自主车辆700避免与对象(例如,移动和静止对象)的碰撞。(多个)障碍避免组件122可以包括障碍避免的“原始级别”的计算机制,并且可以充当车辆700的“生存大脑”或“爬虫脑”。在一些示例中,(多个)障碍避免组件122可独立于车辆700的组件、特征和/或功能而使用,其要求遵守交通规则并且礼貌地驾驶。在这样的示例中,(多个)障碍避免组件可以忽略交通法则、道路规则和礼貌驾驶规范,以确保在车辆700和任何对象之间不发生碰撞。这样,障碍避免层可以是与道路层的规则分开的层,并且障碍避免层可以确保车辆700仅从障碍避免的角度来执行安全动作。另一方面,道路层的规则可以确保车辆遵守交通法规和惯例,并且遵守合法和传统的通行权(如本文所述)。
在一些示例中,(多个)边界的位置和类标签108可以由(多个)障碍避免组件122用于确定要采取的控制或动作。例如,可驾驶的自由空间可以向(多个)障碍避免部件122提供车辆700在哪些地方可以不撞击任何对象、结构等等的情况下操纵的指示。作为另一个例子,例如在类标签108包括可通行和不可通行的标签的情况下,或者在第一边界是可通行的而另一边界是不可通行的情况下,(多个)障碍避免组件122可以-例如在紧急情况下-穿过可通行边界进入潜在的不可驾驶空间(例如,人行道、草地区域等),该空间被确定为比在可驾驶的自由空间内继续更安全(例如,由于可疑的碰撞)。
在一些示例中,如本文所述,(多个)障碍避免组件122可以实现为车辆700的单独的离散特征。例如,(多个)障碍避免组件122可以单独操作(例如并行、在之前和/或之后)计划层、控制层、致动层和/或驾驶栈146的其他层。
现在参考图1B,图1B是根据本公开的一些实施例的用于边界识别的示例性机器学习模型104A的图示。机器学习模型104A可以是可以在图1A的过程100中使用的机器学习模型104的一个示例。机器学习模型104A可以包括或称为卷积神经网络,因此可替代地在本文中称为卷积神经网络104A或卷积网络104A。
如本文所述,机器学习模型104A可以使用传感器数据102(和/或预处理的传感器数据)(如图1B中的图像所示)作为输入。传感器数据102可以包括表示由一个或多个相机(例如,本文中关于图7A-7C描述的一个或多个相机)生成的图像数据的图像。例如,传感器数据102可以包括表示(多个)相机的视场的图像数据。更具体地,传感器数据102可以包括由(多个)相机生成的单独图像,其中表示一个或多个单独图像的图像数据可以在卷积网络104A的每次迭代时输入到卷积网络104A中。
传感器数据102可以作为单个图像被输入,或者可以使用例如小型批处理的批处理被输入。例如,两个或更多个图像可以一起用作输入(例如,同时)。两个或更多个图像可以来自同时捕获图像的两个或更多个传感器(例如,两个或更多个相机)。
传感器数据102和/或预处理的传感器数据可以输入到卷积网络104的(多个)特征提取器层126(例如,特征提取器层126A)。(多个)特征提取器层126可包括任何数量的层126,例如层126A-126C。层126中的一个或多个可包括输入层。输入层可以保持与传感器数据102和/或预处理的传感器数据相关联的值。例如,当传感器数据102是(多个)图像时,输入层可以将表示(多个)图像的原始像素值的值保持为体积(例如,宽度W、高度H和颜色通道C(例如RGB),例如32×32×3),和/或批量大小B(例如,在使用批处理的情况)。
一个或多个层126可包括卷积层。卷积层可以计算连接到输入层(例如,输入层)中的局部区域的神经元的输出,每个神经元计算它们的权重与它们在输入体积中连接到的小区域之间的点积。卷积层的结果可以是另一个体积,其中的一个维度基于所应用的滤波器的数量(例如,宽度、高度和滤波器的数量,例如32×32×12,如果12是过滤器数量)。
层126中的一个或多个可以包括整流线性单元(ReLU)层。例如,(多个)ReLU层可以应用元素激活函数,例如max(0,x),阈值处理为零。ReLU层的最终体积可以与ReLU层的输入体积相同。
层126中的一个或多个可包括池化层。池化层可以沿着空间维度(例如,高度和宽度)执行下采样操作,这可以导致比池化层的输入更小的体积(例如,来自32x32x12输入体积的16x16x12)。在一些示例中,卷积网络104A可以不包括任何池化层。在这样的示例中,可以使用步幅卷积层(strided convolution layers)来代替池化层。在一些示例中,(多个)特征提取器层126可以包括交替卷积层和池化层。
层126中的一个或多个可包括完全连接层。(多个)完全连接层中的每个神经元可以连接到先前体积中的每个神经元。完全连接层可以计算类分数,并且得到的体积可以是1×1×类的数量。在一些示例中,(多个)特征提取器层126可以包括完全连接层,而在其他示例中,卷积网络104A的完全连接层可以是与(多个)特征提取器层126分离的完全连接层。在一些示例中,特征提取器126和/或机器学习模型104A可以不使用完全连接层作为一个整体,以努力增加处理时间并减少计算资源需求。在这样的示例中,在不使用完全连接层的情况下,机器学习模型104A可以被称为完全卷积网络。
在一些示例中,层126中的一个或多个可包括(多个)反卷积层。然而,术语反卷积的使用可能具有误导性,并非旨在进行限制。例如,(多个)反卷积层可以替代地称为转置卷积层或分数步幅卷积层。(多个)反卷积层可用于对先前层的输出执行上采样。例如,(多个)反卷积层可以用于上采样到空间分辨率,该空间分辨率等于输入图像(例如,传感器数据102)到卷积网络104B的空间分辨率,或者用于上采样到下一层的输入空间分辨率。
尽管这里关于(多个)特征提取器层126讨论了输入层、卷积层、池化层、ReLU层、反卷积层和完全连接层,但是这不是限制性的。例如,可以在(多个)特征提取器层126中使用附加或替代层126,诸如归一化层、SoftMax层和/或其他层类型。
(多个)特征提取器层126的输出可以是(多个)边界点层128和/或(多个)类标签层130的输入。(多个)边界点层128和/或(多个)类标签层130可以使用这里关于(多个)特征提取器层126描述的一种或更多种层类型。如本文所述,(多个)边界点层128和/或(多个)类标签层130在一些示例中,可以不包括任何完全连接层,以降低处理速度并降低计算资源需求。在这样的示例中,(多个)边界点层128和/或(多个)类标签层130可以被称为完全卷积层。
根据实施例,可以使用卷积网络104A的层126、128和130的不同顺序和数量。例如,对于第一车辆,可以存在层126、128和/或130的第一顺序和数量,而对于第二车辆可以存在层126、128和/或130的不同的顺序和数量;对于第一相机,可能存在与第二相机的层的顺序和数量不同的层126和128和/或130的顺序和数量。换句话说,卷积网络104A的层126、128和/或130的顺序和数量不限于任何一种架构。
另外,层126、128和/或130中的一些可以包括参数(例如,权重和/或偏差)-诸如(多个)特征提取器层126、(多个)边界点层128和/或(多个)类标签层130-而其他可以不是,例如ReLU层和池化层。在一些示例中,参数可以在训练期间由(多个)机器学习模型104A学习。此外,层126、128和/或130中的一些可以包括附加的超参数(例如,学习速率、步幅、时期、内核大小、过滤器的数量、用于池化层的池化的类型等)-诸如(多个)卷积层、(多个)反卷积层和(多个)池化层-而其他层可以不是,例如(多个)ReLU层。可以使用各种激活函数,包括但不限于ReLU、泄漏ReLU、S形、双曲正切(tanh)、指数线性单位(ELU)等。参数、超参数和/或激活函数不是受限制并且可以根据实施例而不同。
在任何示例中,机器学习模型104A的输出可以是边界点106和/或类标签108。在一些示例中,(多个)边界点层128可以输出边界点106以及(多个)类标签层130可以输出类标签108。这样,(多个)特征提取器层126可以被称为第一卷积流,(多个)边界点层128可以被称为第二卷积流,并且/或(多个)类标签层130可以称为第三卷积流。
在一些示例中,例如在由(多个)机器学习模型104回归的两个或更多个边界的情况下,对于每个边界,可以存在(多个)边界点层和/或(多个)类标签层的分开的流(未显示)。例如,对于除第一边界之外的第二边界,可以使用(多个)边界点层的第四卷积流来确定第二边界的边界点106,以及(多个)类标签层130的第五卷积流可用于确定第二边界的相关类标签108。这样,对于每个边界,可以存在关联的(多个)边界点层和/或(多个)类标签层。在这样的示例中,(多个)机器学习模型104可以针对可通行或不可通行的边界来学习附加类或附加参数。例如,将可驾驶的自由空间与不可驾驶的空间分隔开的一些边界可以是可通行的,例如路缘、草地或砾石区域等,而其他边界可以是不可通行的,例如建筑物、车辆、行人等。这样,(多个)机器学习模型104可以被训练以确定与边界类或类型相关联的参数,例如可通行和不可通行的边界类或类型,除了确定类本身或者作为确定类本身的替代(例如,车辆、行人、路缘、障碍等)。
现在参考图1C,图1C是根据本公开的一些实施例的用于边界识别的示例性机器学习模型104B的另一图示。机器学习模型104B可以是用于图1A的过程100的(多个)机器学习模型104的非限制性示例。机器学习模型104B可以是卷积神经网络,因此在本文中可以称为卷积神经网络104B或卷积网络104B。在一些示例中,卷积网络104B可以包括任何数量和类型的不同层,但是一些示例不包括任何完全连接层,以便提高处理速度并降低计算要求以使得过程100能够实时运行(例如,以30fps或更高)。
卷积网络104B可以包括(多个)特征提取器层132、(多个)边界点层134和/或(多个)类标签层136,在一些示例中,其可以分别对应于图1B的(多个)特征提取器层126、(多个)边界点层128、和/或(多个)类标签层130。(多个)特征提取器层132可包括任何数量的层,然而,在一些示例中,特征提取器层132包括十八个或更少层,以便最小化数据储存要求并提高卷积网络104B的处理速度。在一些示例中,(多个)特征提取器层132包括对于其每个层使用3×3卷积的卷积层,除了第一卷积层,在一些示例中,其可以使用7×7卷积核。另外,在一些示例中,(多个)特征提取器层132可以不包括任何跳过连接,这与传统系统不同并且可以增加系统的处理时间和准确性。
在一些示例中,(多个)特征提取器层132可以类似于图8中所示的结构,并且被描述在如下伴随文本:美国临时专利申请号62/631,781,题为“Method for Accurate Real-Time Object Detection and for Determining Confidence of Object DetectionSuitable for Autonomous Vehicles”,在2008年2月18日提交(以下称为'781申请)。然而,在一些示例中,与'781申请的结构中的16相比,本公开的(多个)特征提取器层132可以包括32的网络步幅(例如,输入可以被下采样32而不是16)。通过使用16而不是32作为步幅,卷积网络104B可以在计算上更快,同时不会损失很多(如果有的话)精度。另外,在一些示例中,(多个)特征提取器层132可以使用2×2的应用池大小而不是如'781申请中所公开的3×3。
(多个)特征提取器层132可以连续地向下采样输入图像的空间分辨率,直到到达输出层(例如,从960×544×3输入空间分辨率下采样到(多个)特征提取器层132,到在第一特征提取器层的输出的480x272x64,到在第二特征提取器层的输出的240x136x64,到作为(多个)特征提取器层132的最后一个的输出的30x17x12)。可以训练(多个)特征提取器层132以生成从传感器数据102和/或预处理的传感器数据接收的(多个)输入图像(或其他传感器数据表示)的分层表示,其中每层产生比其前一层更高级别的提取。换句话说,可以减小(多个)特征提取器层132(和/或任何附加或替代层)上的输入分辨率,允许卷积网络104B能够比传统系统更快地处理图像。
(多个)边界点层134和/或(多个)类标签层136可以将(多个)特征提取器层132的输出作为输入。(多个)边界点层134可以用于在边界点106上回归,并且(多个)类标签层136可以用于预测类标签108,其可以对应于由(多个)边界点层132回归的边界点106。(多个)边界点层134和/或(多个)类标签层136可包括任何数量或类型的层,但在一些示例中,边界点层134和/或(多个)类标签层136可包括三层。
例如,对于(多个)边界点层134,第一层Conv.128,可以减少来自(多个)特征提取器层132的输出的特征映射的数量。第二层Deconv.1,可以沿着宽度对来自第一层的输入进行上采样,以便沿着图像的每列获得一个点(例如,基于到机器学习模型104B的输入的空间宽度,并且因此像素的列数,例如传感器数据102)。第三或输出层Conv.1,可以将输出阵列的高度减小到一。
对于类标签层136,第一层Conv.128,可以减少来自(多个)特征提取器层132的输出的特征映射的数量。第二层Deconv.4可以沿着宽度对来自第一层的输入进行上采样,以便沿着图像的每列获得与机器学习模型104B被训练以预测的类的数量相对应的多个类标签预测(例如,在这个例子中,类的数量可以是4)。第三或输出层Conv.4,可以将输出阵列的高度减小到机器学习模型104B被训练以预测的类的数量(例如,四),使得对于每列,输出阵列包括来自边界点层134的输出中的对应列的对应边界点106的每个边界类或类型的置信度或概率。
在一些示例中,参考图1D,(多个)机器学习模型104的输出可包括边界点106和(多个)类标签108。例如,如本文所述,边界点106的输出可包括一维阵列,具有一行138和(1-N)的列140,其对应于到(多个)机器学习模型104的输入图像的空间宽度。例如,如果输入图像具有1080像素的空间宽度维度,则N可以是1080。因此,阵列的每个单元可以包括与边界点106所在的输入图像的空间高度的百分比相对应的值(从0到1)(例如,与将可驾驶的自由空间与不可驾驶的空间分开的、在列中从底部到顶部的第一边界对应的像素)。作为示例,列140(1)可以对应于输入图像中的第一列像素,并且可以具有值0.4(例如,高度的40%)。这样,如果图像的空间高度维度是920像素,则可以将从列140(1)的底部的第368像素(例如,920的40%)识别为输入图像的列140(1)的边界点106。
作为另一示例,如本文所述,类标签108的输出可包括二维阵列,其具有与(多个)机器学习模型104被训练以预测的多个边界类或类型相对应的数量(1-K)的行142。这样,每行可以对应于不同的边界类或类型。数量(1-M)的列144可以对应于到(多个)机器学习模型104的输入图像的空间宽度。例如,如果(多个)机器学习模型104被训练以预测五个类别,那么K可以是5,并且如果输入图像具有1080像素的空间宽度维度,则M可以是1080。
这样,阵列的每个单元可以包括一值(从0到1),该值对应于该边界点阵列属于与行142相关的边界类或类型的边界点阵列中对应列140的边界点106的置信度或概率。作为示例,列144(1)可以对应于边界点阵列的列140(1),并且行142(1)可以对应于行人的类标签108。这样,行142(1)和列144(1)处的单元的值0.7可以对应于边界点阵列的行138、列140(1)的边界点的边界类或类型是行人边界类或类型的置信度或百分比。在该示例中,假设0.7是最高值,确定可以是边界点阵列的行138列140(1)处的边界点106对应于行人。
可以针对输入图像的每列执行该处理或将边界点位置与类标签相关联。结果,并且在一些示例中的后处理之后,驾驶栈146可以确定用于基于输入图像中的边界点106的像素位置和确定与之相关联的类标签108来导航或控制车辆700的一个或多个操作。
现在参考图2,方法200以及本文描述的其他方法的每个方框包括可以使用硬件、固件和/或软件的任何组合来执行的计算过程。例如,各种功能可以由执行在存储器存储中的指令的处理器执行。该方法还可以体现为在计算机储存介质上存储的计算机可用指令。这些方法可以由独立应用、服务或托管服务(独立或与另一托管服务组合)或另一产品的插件提供,仅举几个例子。另外,作为示例,关于图1A的过程100描述了方法200。然而,方法200可以附加地或替代地由任何一个系统或系统的任何组合来执行,包括但不限于这里描述的那些。
图2是根据本公开的一些实施例的用于确定边界的方法200的示例流程图。方框B202处的方法200包括接收传感器数据。例如,可以接收传感器数据102和/或预处理的传感器数据。传感器数据可以由车辆700的一个或多个传感器捕获,并且可以表示(多个)传感器的(多个)视场,或者可以以其他方式表示物理环境的一个或多个方面(例如,用于GPS传感器,传感器数据可以表示物理环境内的坐标或位置)。例如,传感器数据102可以包括表示车辆700的一个或多个相机的(多个)视场的(多个)图像的图像数据。
在方框B204处的方法200包括将传感器数据应用于神经网络。例如,传感器数据和/或预处理的传感器数据可以应用于方框机器学习模型104。如本文所述,方框机器学习模型104可以被训练以计算边界点106和类标签108。
在方框B206处的方法200包括通过神经网络的第一流计算一组点,其对应于将不可驾驶的空间与可驾驶的自由空间分开的边界。例如,(多个)机器学习模型104可以基于传感器数据计算一个或多个边界的边界点106。边界点106可以由(多个)机器学习模型104的第一流(例如,边界点层128)计算。
在方框B208处的方法200包括由神经网络的第二流计算对于该组点的点的类标签。例如,(多个)机器学习模型104可以基于传感器数据计算对应于边界点106的类标签108。类标签108可以由(多个)机器学习模型104的第二流(例如,类标签层130)计算。
在方框B210处的方框200包括确定与该组点相对应的物理环境内的位置。例如,从边界点106确定的点或像素位置可以用于确定对于将可驾驶的自由空间与不可驾驶的空间分开的边界的真实世界环境内的对应位置。
在方框B212处的方法200包括执行用于控制车辆的一个或多个操作。例如,可以执行一个或多个操作以在真实世界环境中控制车辆700。在一些示例中,可以由驾驶栈146使用从边界点106的位置确定的类标签和现实世界位置来确定一个或多个操作(例如,世界模型更新、轨迹、控制、致动等)。
如虚线箭头所示,方法200可以针对每个传感器数据输入重复。
培训(多个)机器学习模型
在一些示例中,(多个)机器学习模型104(例如,(多个)神经网络)可以用包括图像和一个或多个关联的注释、标签或掩码的训练图像(例如,训练图像300A、300B和/或500)来训练。例如,注释可以与图像和训练图像相关联,并且可以用作用于训练(多个)机器学习模型104的地面实况数据。训练图像的注释可以在如下内生成:在一些示例中,绘图程序(例如,注释程序)、计算机辅助设计(CAD)程序、标记程序、适用于生成注释的另一类程序、和/或可以是手绘的。在任何示例中,注释可以是合成生成的(例如,从计算机模型或渲染生成)、真实生成(例如,从真实世界数据设计和生成)、机器自动化(例如,使用特征分析和学习来从数据提取特征然后生成标签)、人类注释(例如,贴标机或注释专家,定义标签的位置)和/或其组合(例如,人类制定一个或多个规则或标签惯例,机器生成注释)。
可以使用一个或多个损失函数将(多个)机器学习模型104的输出与地面实况数据(例如,训练图像)进行比较。例如,可以使用多次迭代利用训练图像训练(多个)机器学习模型104,直到(多个)机器学习模型104的(多个)损失函数的值低于阈值损失值(例如,可接受的损失)。
例如,(多个)机器学习模型104可以对传感器数据102的表示(例如,(多个)图像)和/或预处理的传感器数据执行正向计算,以生成边界点106和类标签108。(多个)损失函数可以用于使用地面实况数据来测量(多个)机器学习模型104的预测中的误差,如本文至少关于图3A-6更详细地描述的。在一些示例中,可以使用交叉熵损失函数(例如,二进制交叉熵)和/或L1损失函数。
在一些示例中,不同的损失函数可以用于边界点106和类标签108。例如,边界点106可以与L1损失函数相关联,由下面的等式(13)的关系表示:
L1 Loss:L(y,x)=|y-fw(x) (13)
其中y是基于注释的地面实况边界点的阵列,||是绝对值函数,并且fw是由(多个)机器学习模型104输出的预测边界点106的阵列(例如,图1D的边界点阵列)。
作为另一示例,类标签108可以与交叉熵损失函数相关联,由下面的等式(14)的关系表示:
其中yi是二进制指示符(1或0),如果i是输入x的类标签,则fi,w是(多个)机器学习模型104预测i是输入x的类标签的概率,log表示对数函数。
在一些示例中,边界点损失函数(例如,L1损失)和类标签损失函数(例如,交叉熵损失)的加权组合可用于计算最终损失。例如,可以使用1:10的权重比(例如,边界点:类标签)。然而,在不脱离本公开的范围的情况下这并不旨在限制可以使用任何其他权重比。在一些示例中,可以使用自动权重方案,其在仅给出加权损失的目标权重比时自适应地或自动地调整成本权重。
例如,边界点成本和相应的成本权重可以分别由Lboundary和wboundary表示,并且类标签成本和相应的成本权重可以分别由Llabel和wlabel表示。在这样的示例中,可以选择权重w,使得满足等式(15)的关系:
其中Kboundary是加权损失的目标比率。结果,由于权重也需要和为1,因此可以导出等式(16)和(17)的以下表达式:
可以周期性地使用该规则,例如每个训练时期一次,以设置权重。这样,可以根据训练数据(例如,地面实况数据)计算规则中的成本,以防止过度拟合训练数据。因此,可以以这样的方式自适应地设置权重:在收敛之后,可以达到加权损失的期望目标比率。
可以执行向后通过计算以相对于训练参数递归地计算损失函数的梯度。在一些示例中,(多个)机器学习模型104的权重和偏差可用于计算这些梯度。在一些示例中,可以使用优化器来对训练参数(例如,权重、偏差等)进行调整。例如,可以使用Adam优化器、随机梯度下降或具有动量项的随机梯度下降中的一个或多个。可以重复训练过程,直到训练的参数收敛到最佳、期望和/或可接受的值。
现在参考图3A,图3A是根据本公开的一些实施例的用于机器学习模型的示例训练图像300A。与图像相关联的注释可以包括沿着图像的每列像素从图像的底部到顶部注释与将可驾驶的自由空间与不可驾驶的空间分开的边界的第一位置相对应的一个点。结果,一旦在每列中识别并标记了一个点,就可以标记完整的边界。注释可以包括相关联的类标签,使得沿着边界的每个点具有相关联的边界类或类型(例如,行人、车辆、路缘、障碍、包罗万象等)。在一些示例中,注释可以包括分段或不连续的边界(例如,只要图像的每列像素的一个像素包括注释),而在其他示例中,注释可以包括连续的边界曲线(例如,分段可被连接以形成连续曲线)。
关于训练图像300A,并且假设(多个)机器学习模型104被训练以预测至少三个类(例如,行人、车辆和/或路缘或障碍),训练图像300A可以包括用于路缘或障碍306类标签的关联的注释312(例如,如路缘或障碍306A和306B所示),用于车辆304类标签的注释310(例如,如车辆304A和304B所示),以及用于行人302类标签的注释308(例如,如行人302A和302B所示)。在一些示例中,注释可以符合边界的形状或轮廓(例如,障碍306的注释312和车辆304的注释310),而在其他示例中,例如边界类或类型是更难以划定的情况下,注释可能不符合边界的形状或轮廓(例如,用于行人302的注释308)。在注释不符合边界的形状或轮廓的情况下,可以使用线分段(例如,曲线分段、直线分段等)。在行人302的示例中,注释308可以包括直线分段,该直线分段从行人302的最底部部分沿着行人的横向尺寸延伸(例如,从最靠近图像底部的点开始,因此最接近在真实世界坐标中的车辆700)。例如,即使在行人302A的腿之间的间隙之后的注释可以最接近地符合行人302A的形状,也可以使用直线注释308来确保安全性和准确性。更具体地,可以进行注释308或其他边界类型的其他类似注释(例如,在一些示例中为车辆),以便防止行人302A的任何部分占据的任何空间被确定为可驾驶的自由空间。特别是对于动态对象,下冲(undershooting)预测的可驾驶的自由空间可能优于过冲(overshooting)。
在一些示例中,例如在道路或驾驶表面延伸到地平线中的情况下,注释和/或训练图像可以被截短或拉伸。例如,可以移除图像顶部的百分比和/或相关联的注释,和/或可以训练(多个)机器学习模型104以忽略或减轻图像的上部拉伸或截断部分的权重。结果驾驶栈146可以不考虑或者可以在较小程度上考虑在更远距离处的确定的边界点106和/或类标签108。
图3B是根据本公开的一些实施例的用于机器学习模型的另一示例训练图像300B。关于训练图像300B,并且假设(多个)机器学习模型104被训练为预测至少三个类(例如,车辆、路缘或障碍以及包罗万象类),训练图像300B可以包括用于路缘或障碍306类标签的关联的注释314(例如,如路缘或障碍306C和306D所示),用于车辆304类标签的注释316(例如,如车辆304C和304D所示),以及用于包罗万象类标签的注释318。在一些示例中,例如在训练图像300B中,可以尝试训练(多个)机器学习模型104以避免边界之间的尖锐或不稳定的变化。结果,可以注释边界点,从而避免尖锐的过渡。关于训练图像300B,车辆304D与路缘或障碍306C之间的边界点以及车辆304D与车辆304C之间的边界点可以具有更平滑的过渡,如图所示。在这样的示例中,在车辆304D和路缘或障碍306C之间过渡的边界的部分(例如,对应于注释318)和在车辆304D和车辆304C之间过渡的边界的部分可以被标记为包罗万象类(或者可以被标记为符合周围车辆304C和304D的动态特性的车辆类)。在任何示例中,通过训练(多个)机器学习模型104以确定边界类型之间的不太尖锐或剧烈的变化,从而确定更平滑的边界输出,将可驾驶的自由空间与不可驾驶的空间分开的边界可以由车辆700更清楚地理解(例如,通过驾驶栈146)。
现在参考图4,这里描述的方法400的每个块包括可以使用硬件、固件和/或软件的任何组合来执行的计算过程。例如,各种功能可以由执行存储在存储器中的指令的处理器执行。该方法还可以体现为存储在计算机存储介质上的计算机可用指令。该方法可以由独立应用、服务或托管服务(独立或与另一托管服务组合)或另一产品的插件提供,仅举几个例子。另外,作为示例,关于图1A的过程100描述了方法400。然而,该方法可以附加地或替代地由任何一个系统或系统的任何组合来执行,包括但不限于这里描述的那些。
图4是根据本公开的一些实施例的训练机器学习模型的方法400的示例流程图。方法400在方框B402包括接收训练图像。例如,可以接收可能已经由车辆(例如,车辆700或另一车辆)生成或者可能已经从虚拟环境生成的训练图像。
方法400在框B404处包括接收表示对应于训练数据的一个或多个注释的注释数据。例如,可以接收注释数据,其表示可以对应于注释边界点的一个或多个边界标签。另外,可以接收表示类标签的注释数据。例如,在注释边界点之前、期间或之后,类标签可以与边界标签的注释相关联。在一些示例中,取决于注释边界标签对应的边界类或类型,可以使用标记程序内的不同工具。在这样的示例中,带注释的边界标签可以表示或者是边界类或类型的上下文或语义表示。类似于训练图像300A和300B可以在视觉上表示注释的结果。
方法400在方框B406包括使用注释作为地面实况数据来训练神经网络。例如,包括相关注释的训练图像可用于训练(多个)机器学习模型104(例如,使用本文描述的损失函数)。
现在参考图5,图5是根据本公开的一些实施例的用于机器学习模型的另一示例训练图像500。训练图像500可以包括用于训练(多个)机器学习模型以预测两个或更多个边界和相关联的类标签的相关注释。例如,第一注释502(至少部分地由分段502A、502B和502C指示)可以对应于第一边界,并且第二注释504(至少部分地由分段504A、504B和504C指示)可以对应于第二边界,可以被生成以与图像相关联。在一些示例中,可以训练(多个)机器学习模型104以从图像的顶部到底部生成附加边界,直到确定不可通行的边界,或者直到图像的空间宽度的阈值量包括不可通行的边界分段(例如,可以是来自两个或更多个不同边界的分段的组合)。在这样的示例中,对于与每个边界相对应的每个训练图像500可以存在附加注释。在其他示例中,可以训练(多个)机器学习模型104以生成设定数量的边界,例如关于图5的两个边界。在任何示例中,边界可以与本文描述的训练图像300A和300B类似地注释,并且训练图像300A和300B可以与训练图像500类似地注释。
训练图像500可以包括第一边界的注释502和第二边界的注释504。假设(多个)机器学习模型104被训练为检测至少四个类和/或参数(例如,车辆、路缘或障碍、可通行、不可通行),第一边界的注释502可包括路缘或屏障516类标签、车辆506类标签、用于不可通行边界类型的类标签或参数(例如,沿着分段502B的车辆506)、和/或用于可通行边界类型的类标签或参数(例如,沿着分段502A的路缘或障碍516)。类似地,关于第二边界,注释504可以包括路缘或障碍514、510、508类标签、车辆512类标签、用于不可通行边界类型的类标签或参数(例如,沿着分段504A和504C的车辆512、路缘或障碍510和508、和/或用于可通行边界类型的类标签或参数(例如,沿着分段504B的路缘或障碍514)。
在一些示例中,取决于可通行的边界的分段的长度(例如,对应于注释504的分段504C),分段可以被注释为不可通行。例如,即使边界的类型(例如,路缘)可以是可通行的,也可以使用周围信息来确定该段是否实际上是可通行的。在该示例中,分段504C可能不是可通行的,或者可能不是安全地可通行的,因为车辆512和障碍510可以紧邻分段504C。这样,段504C可以被注释为不可通行。
在一些示例中,例如在图5的图示中,可以有两个或更多个可驾驶的自由空间。例如,可以存在第一可驾驶的自由空间520和第二可驾驶的自由空间518。在这样的示例中,路缘或障碍516可以包括将第一可驾驶的自由空间520与第二可驾驶的自由空间518分开的边界。在一些示例中,可以在路缘或障碍516的相对侧(例如,与由注释502识别的边界相对)上识别出附加边界(未示出)。在这样的示例中,注释502可以对应于将可驾驶的自由空间与不可驾驶的空间分开的边界,并且附加边界可以将不可驾驶的空间与第二可驾驶的自由空间518分开。
作为另一示例,例如在传感器数据中捕获车道合并的情况下,合并之前的两车道之间的区域可包括不可驾驶的空间。在这样的示例中,注释可以包括在合并之前注释将第一车道的可驾驶的自由空间与两个车道之间的区域的不可驾驶的空间分开的第一边界,以及将区域的不可驾驶的空间与第二车道的可驾驶的自由空间分开的第二边界(例如,车道合并到第一车道中)。这样,(多个)机器学习模型104可以被训练以注释多于一个可驾驶的自由空间和/或其间的不可驾驶的空间。
现在参考图6,这里描述的方法600的每个块包括可以使用硬件、固件和/或软件的任何组合来执行的计算过程。例如,各种功能可以由执行存储在存储器中的指令的处理器执行。该方法还可以体现为存储在计算机存储介质上的计算机可用指令。该方法可以由独立应用、服务或托管服务(独立或与另一托管服务组合)或另一产品的插件提供,仅举几个例子。另外,作为示例,关于图1A的过程100描述了方法600。然而,该方法可以附加地或替代地由任何一个系统或系统的任何组合来执行,包括但不限于这里描述的那些。
图6是根据本公开的一些实施例的用于多边界检测的方法600的示例流程图。方法600在方框B602包括接收传感器数据。例如,可以接收传感器数据102和/或预处理的传感器数据。传感器数据可以由车辆700的一个或多个传感器捕获,并且可以表示(多个)传感器的(多个)视场。例如,传感器数据102可以包括表示车辆700的一个或多个相机的(多个)视场的(多个)图像的图像数据。
方法600在框B604处包括将传感器数据应用于(多个)机器学习模型。例如,传感器数据和/或预处理的传感器数据可以应用于(多个)机器学习模型104。如本文所述,(多个)机器学习模型104可以被训练以计算一个或多个边界的边界点106以及类标签108。
方法600在框B606处包括计算对应于可通行边界的第一组点。例如,第一组边界点可以由(多个)机器学习模型104计算,其对应于可以是可通行边界的第一边界,该第一边界将现实世界环境中的可驾驶的自由空间与不可驾驶的空间分开。在一些示例中,可通行边界点可以对应于单个边界,或者可以对应于第一边界的一部分和第二边界的一部分。
方法600在框B608处包括计算对应于不可通行边界的第二组点。例如,第二组边界点可以由(多个)机器学习模型104计算,其对应于可以是不可通行的边界的第二边界,该第二边界将现实世界环境中的可驾驶的自由空间与不可驾驶的空间分开。在一些示例中,不可通行的边界点可以对应于单个边界,或者可以对应于第一边界的一部分和第二边界的一部分。
在一些示例中,可以并行执行在框B606处计算第一组点并且在框B608处计算第二组点。例如,可以使用一个或多个GPU来与第二组点并行地计算第一组点,以便提高处理速度以使(多个)机器学习模型104能够实时运行。
在方框B610,方法600包括执行用于控制车辆的一个或多个操作。例如,可以执行一个或多个操作以在真实世界环境中控制车辆700。在一些示例中,可以由驾驶栈146使用从边界点106的位置确定的类标签和现实世界位置来确定一个或多个操作(例如,世界模型更新、轨迹、控制、致动等)。可通过和不可通过的标签可用于车辆700确定一个或多个操作,例如在紧急情况下。例如,在紧急情况下,关于图5,车辆700可能需要避免碰撞,并且这样做,知道边界段502A是可通行的而不可通行的边界段502B可能是有用的。在这样的示例中,车辆700可以操纵越过路缘或障碍516以避免例如与车辆、行人或动物的碰撞,但是可以不朝向车辆506操纵以避免不同的碰撞。
如虚线箭头所示,方法600可以针对每个传感器数据输入重复。
评估指标
在一些示例中,可以使用一个或多个评估度量来评估(多个)机器学习模型104的输出和性能。例如,可以使用相对间隙、精度、标签准确度、平滑度、加权自由空间精度(WFP)、加权自由空间召回(WFR)和/或其他度量。相对间隙可以测量地面实况边界曲线yi(例如,地面实况边界点)与预测边界曲线(例如,通过取L1损失范数(|| ||)的总和并用输入图像的空间宽度N(例如,边界点阵列的宽度)和输入图像的空间高度H进行归一化,由(多个)机器学习模型104预测的边界点106)之间的绝对偏差的平均值。在一些非限制性示例中,可以根据下面的等式(18)确定相对间隙:
精度可以测量来自地面实况边界曲线的预测边界曲线的过冲量(例如,由DNN确定为可驾驶的自由空间的不可驾驶的空间的量)。例如,应当避免过冲,因为当存在过冲时,不可驾驶的空间可被认为是可驾驶的自由空间,这可能降低系统的安全性。因此,精度可以是用于确保过冲不存在或在可接受范围内的评估度量。在一些非限制性示例中,可以根据下面的等式(19)确定精度:
其中H是图像的高度,yi是地面实况边界曲线,是预测的边界曲线。
与地面实况边界类标签相比,标签准确度可以测量预测边界类标签的准确度。在一些非限制性示例中,标签准确度可以根据下面的等式(20)来确定:
其中Nclass是边界类或类型的总数,Ni是标记为类i的边界点的总数,1(x)是指标函数,当(标记为类i的边界点的类)等于类i时为1。
平滑度可以测量预测曲线的平滑度(例如,边界曲线的连续边界点之间的差的平均值)。在一些非限制性示例中,可以根据下面的等式(21)确定平滑度:
其中是预测的边界曲线,|| ||是L1范数,N是曲线的宽度(例如,输入图像的空间宽度)。
关于WFP和WFR,这些评估度量可以基于障碍的可驾驶性(例如,可通过的)和不可驾驶性(例如,不可通过的)的概念。例如,诸如行人或车辆的边界类型或障碍可能具有比路缘更高的不可驾驶性。另外,对于WFP和WFR,在一些示例中,不同边界类标签的权重可以不同,使得一些边界类或类型具有更高的相关权重。例如,行人可能具有比路缘更高的相关权重,因为相对于人的准确性比相对于路缘更准确。
WFP可以包括仅使用过冲的精确计算,使得如果没有过冲,则精度可以是1.0(例如,地面实况和预测之间的接近完美匹配)。在一些非限制性实例中,WFP可以根据下面的等式(22)确定:
其中p是边界点(或像素),Φ是所有边界点,OFW是过冲自由空间权重,其根据边界类或类型可能不同,F(p)是p的位移分数,M_OFW(p)是p的最大可能过冲权重,P(p)是p的路径内权重。
WFR可以包括仅使用下冲的精度计算,使得如果没有下冲,则精度可以是1.0(例如,地面实况与预测之间的接近完美匹配)。在一些非限制性示例中,WFR可以根据下面的等式(23)确定:
其中p是边界点(或像素),Φ是所有边界点,UFW是下冲自由空间权重,其根据边界类或类型可能不同,F(p)是p的位移分数,M_UFW(p)是p的最大可能下冲权重,P(p)是p的路径内权重。
示例自主车辆(Autonomous Vechicle)
图7A是根据本公开的一些实施例的示例性自主车辆700的图示。自主车辆700(在本文中可选地称为“车辆700”)可包括乘客交通工具,例如汽车、卡车、公共汽车和/或容纳一个或多个乘客的其他类型的交通工具。自主车辆通常根据自动化水平进行描述,由国家公路交通安全管理局(NHTSA)、美国交通部的一个部门和汽车工程师协会(SAE)定义,“Taxonomy and Definitions for Terms Related to Driving Automation Systems forOn-Road Motor Vehicles”(标准号J3016-201806,发布于2018年6月15日,标准号为J3016-201609,发布于2016年9月30日,以及该标准的先前和未来版本)。车辆700可以具有根据自主驾驶级别的级别3至级别5中的一个或多个的功能。例如,车辆700可以具有条件自动化(级别3),高自动化(级别4)和/或或完全自动化(级别5),取决于实施例。
车辆700可包括诸如底盘、车身、车轮(例如,2、4、6、8、18等)、轮胎、车轴和车辆的其他部件的部件。车辆700可包括推进系统750,例如内燃发动机、混合动力发电设备、全电动发动机和/或其他推进系统类型。推进系统750可以连接到车辆700的传动系统,其可以包括传动装置,以实现车辆700的推进。推进系统750可以响应于接收来自节气门/加速器752的信号而被控制。
当推进系统750运行时(例如,当车辆运动时),可以使用转向系统754(其可以包括方向盘)来使车辆700转向(例如,沿着期望的路径或路线)。转向系统754可以从转向致动器756接收信号。对于完全自动化(等级5)功能,方向盘可以是可选的。
制动传感器系统746可用于响应于接收来自制动致动器748和/或制动传感器的信号而操作车辆制动器。
(多个)控制器736,其可包括一个或多个片上系统(SoC)704(图7C)和/或(多个)GPU,可向车辆700的一个或多个组件和/或系统提供信号(例如,代表命令)。例如,(多个)控制器可以发送信号以经由一个或多个制动致动器748操作车辆制动,以经由一个或多个转向致动器756操作转向系统754,以经由一个或多个节气门/加速器752操作推进系统750。(多个)控制器736可以包括处理传感器信号的一个或多个机载(例如,集成)计算设备(例如,超级计算机),并输出操作命令(例如,表示命令的信号)以使能自动驾驶和/或辅助人类驾驶员驾驶车辆700。(多个)控制器736可包括用于自动驾驶功能的第一控制器736、用于功能安全功能的第二控制器736、用于人工智能功能的第三控制器736(例如,计算机视觉)、用于信息娱乐功能的第四控制器736、用于在紧急情况下冗余的第五控制器736、和/或其他控制器。在一些示例中,单个控制器736可以处理两个或更多个上述功能,两个或更多个控制器736可以处理单个功能,和/或其任何组合。
(多个)控制器736可以响应于从一个或多个传感器接收的传感器数据(例如,传感器输入)向用于控制车辆700的一个或多个部件和/或系统提供信号。传感器数据可以从如下接收,例如但不限于:(多个)全球导航卫星系统传感器758(例如,(多个)全球定位系统传感器)、(多个)RADAR传感器760、(多个)超声波传感器762、(多个)LIDAR传感器764、(多个)惯性测量单元(IMU)传感器766(例如,(多个)加速度计、(多个)陀螺仪、(多个)磁罗盘、(多个)磁力计等)、(多个)麦克风796、(多个)立体相机768、(多个)广视相机770(例如,(多个)鱼眼相机)、(多个)红外相机772、(多个)环绕相机774(例如,(多个)360度相机)、(多个)远程和/或中程相机798、(多个)速度传感器744(例如,用于测量车辆700的速度)、(多个)振动传感器742、(多个)转向传感器740、(多个)制动传感器(例如,作为制动传感器系统746的一部分)和/或其他传感器类型。
一个或多个控制器736可以从车辆700的仪表组732接收输入(例如,由输入数据表示),并且经由人机接口(HMI)显示器734、可听见的信号器、扬声器和/或通过车辆700的其他组件提供输出(例如,由输出数据、显示数据等表示)。输出可以包括诸如车辆速率、速度、时间、地图数据(例如,图7C的HD地图722)的信息、位置数据(例如,诸如在地图上的车辆700的位置)、方向、其他车辆的位置(例如,占用网格)、关于对象的信息和由(多个)控制器736感知的对象的状态等。例如,HMI显示器734可以显示关于一个或多个对象的存在的信息(例如,路牌、警告标志、交通灯改变等)、和/或关于车辆已经进行、正在进行或将要进行的驾驶操纵的信息(例如,现在改变车道,从34B出口驶出两英里等)。
车辆700还包括网络接口724,其可以使用一个或多个无线天线726和/或(多个)调制解调器通过一个或多个网络进行通信。例如,网络接口724可以能够通过LTE、WCDMA、UMTS、GSM、CDMA2000等进行通信。(多个)无线天线726还可以实现环境中的对象之间的通信(例如,车辆、移动设备等),使用如蓝牙、蓝牙LE、Z-Wave、ZigBee等的局域网,和/或如LoRaWAN、SigFox等的低功率广域网(LPWAN)。
图7B是根据本公开的一些实施例的图7A的示例性自主车辆700的相机位置和视场的示例。相机和相应的视场是一个示例实施例,并不旨在限制。例如,可以包括附加和/或替代相机和/或相机可以位于车辆700上的不同位置。
用于(多个)相机的相机类型可以包括但不限于可以适用于车辆700的组件和/或系统的数字相机。(多个)相机可以在汽车安全完整性等级(ASIL)B和/或另一个ASIL下操作。取决于实施例,相机类型可以具有任何图像捕获率,诸如60帧/秒(fps)、720fps、240fps等。相机可能能够使用卷帘门、全局快门、其他类型的快门或其组合。在一些示例中,滤色器阵列可以包括红色透传透传(red clear clear clear)(RCCC)滤色器阵列、红色透传蓝色(red clear clear blue)(RCCB)滤色器阵列、红色蓝绿色透传(red blue green clear)(RBGC)滤色器阵列、Foveon X3滤色器阵列、拜耳传感器(RGGB)滤色器阵列、单色传感器滤色器阵列和/或其他类型的滤色器阵列。在一些实施例中,可以使用清晰像素相机,例如具有RCCC、RCCB和/或RBGC滤色器阵列的相机,以努力增加光灵敏度。
在一些示例中,一个或多个相机可用于执行高级驾驶员辅助系统(ADAS)功能(例如,作为冗余或故障安全设计的一部分)。例如,可以安装多功能单声道相机以提供包括车道偏离警告、交通标志辅助和智能前照灯控制的功能。一个或多个相机(例如,所有相机)可以同时记录和提供图像数据(例如,视频)。
一个或多个相机可以安装在安装组件中,例如定制设计(3-D打印)组件,以便切除车内的杂散光和反射(例如,在挡风玻璃后视镜反射的仪表板的反射),其可能会干扰相机的图像数据捕捉能力。参考侧翼后视镜安装组件,侧翼后视镜组件可以定制3D打印,使得相机安装板与侧翼后视镜的形状相匹配。在一些示例中,(多个)相机可以集成到侧翼后视镜中。对于侧视相机,(多个)相机也可以集成在机舱每个角落的四个支柱内。
具有包括车辆700前方的环境部分(例如,前置相机)的视场的相机可以用于环绕视图,以帮助识别面向前方的路径和障碍,以及在帮助一个或多个控制器736和/或控制SoC下,帮助提供对产生占用网格和/或确定优选车辆路径至关重要的信息。前置相机可用于执行许多与LIDAR相同的ADAS功能,包括紧急制动、行人检测和防撞。前置相机还可以用于ADAS功能和系统,包括车道偏离警告(“LDW”)、自主巡航控制(“ACC”)和/或其他功能,例如交通标志识别。
各种相机可以以前向配置使用,包括例如包括CMOS(互补金属氧化物半导体)彩色成像器的单目相机平台。另一示例可以是(多个)广视相机770,其可以用于感知从周边进入视场的对象(例如,行人、穿过交通或自行车)。尽管图7B中仅示出了一个广视相机,车辆700上可以有任意数量的广视相机770。此外,(多个)远程相机798(例如,长视角立体相机对)可以用于基于深度的对象检测,尤其是对于尚未训练神经网络的对象。(多个)远程相机798还可以用于对象检测和分类,以及基本对象跟踪。
一个或多个立体相机768也可以包括在前向配置中。(多个)立体相机768可以包括集成控制单元,其包括可缩放处理单元,其可以在单个芯片上提供可编程逻辑(FPGA)和具有集成CAN或以太网接口的多核微处理器。这样的单元可以用于生成车辆环境的3-D地图,包括图像中所有点的距离估计。(多个)替代的立体相机768可以包括(多个)紧凑的立体视觉传感器,其可以包括两个相机镜头(左右各一个)以及可以测量从车辆到目标对象的距离并使用生成的信息(例如,元数据)来激活自主紧急制动和车道偏离警告功能的图像处理芯片。除了本文描述的那些之外或者作为另外一种选择,可以使用其他类型的(多个)立体相机768。
具有包括到车辆700的侧面的一部分环境的视场的相机(例如,侧视相机)可以用于环绕视图,提供用于创建和更新占用网格的信息,以及生成侧撞碰撞警告。例如,(多个)环绕相机774(例如,如图7B所示的四个环绕相机774)可以定位在车辆700上。(多个)环绕相机774可以包括(多个)广视相机770、(多个)鱼眼相机、(多个)360度相机和/或类似物。例如,四个鱼眼相机可以定位在车辆的前部、后部和侧面。在替代布置中,车辆可以使用三个环绕相机774(例如,左、右和后),并且可以利用一个或多个其他相机(例如,前向相机)作为第四环绕视图相机。
具有包括到车辆700后部的环境部分的视场的相机(例如,后视相机)可以用于停车辅助、环绕视图、后碰撞警告以及创建和更新占用网格。可以使用各种各样的相机,包括但不限于也适合作为(多个)前置相机的相机(例如,(多个)远程和/或中程相机798、(多个)立体相机768、(多个)红外相机772等),如本文所述。
图7C是根据本公开的一些实施例的图7A的示例性自主车辆700的示例系统架构的框图。应该理解的是,这里描述的这个和其他布置仅作为示例阐述。除了所示的那些之外或代替所示的那些,可以使用其他布置和元件(例如,机器、接口、功能、顺序、功能分组等),并且可以完全省略一些元件。此外,本文描述的许多元件是功能实体,其可以实现为离散或分布式组件或者与其他组件一起实现,并且可以以任何合适的组合和位置实现。这里描述的由实体执行的各种功能可以由硬件、固件和/或软件来执行。例如,各种功能可以由执行存储在存储器中的指令的处理器执行。
图7C中的车辆700的每个部件、特征和系统示出为经由总线702连接。总线702可以包括控制器区域网络(CAN)数据接口(在本文中可选地称为“CAN总线”)。CAN可以是车辆700内部的网络,用于辅助控制车辆700的各种特征和功能,例如制动器的致动、加速、制动、转向、挡风玻璃刮水器等。CAN总线可以被配置为具有数十个甚至数百个节点,每个节点都有自己唯一的标识符(例如,CAN ID)。可以读取CAN总线以找到方向盘角度、地面速度、发动机每分钟转数(RPM)、按钮位置和/或其他车辆状态指示器。CAN总线可能符合ASIL B。
尽管这里将总线702描述为CAN总线,但是这不是限制性的。例如,除CAN总线之外或作为其替代,可以使用FlexRay和/或以太网。另外,尽管使用单条线来表示总线702,但这不是限制性的。例如,可以存在任何数量的总线702,其可以包括一个或多个CAN总线、一个或多个FlexRay总线、一个或多个以太网总线、和/或使用不同协议的一个或多个其他类型的总线。在一些示例中,两个或更多个总线702可以用于执行不同的功能,和/或可以用于冗余。例如,第一总线702可以用于防撞功能,第二总线702可以用于致动控制。在任何示例中,每个总线702可以与车辆700的任何组件通信,并且两个或更多个总线702可以与相同的组件通信。在一些示例中,每个SoC 704、每个控制器736和/或车辆内的每个计算机可以访问相同的输入数据(例如,来自车辆700的传感器的输入),并且可以连接到公共总线,例如CAN总线。
车辆700可以包括一个或多个控制器736,例如本文关于图7A描述的那些控制器。(多个)控制器736可以用于各种功能。(多个)控制器736可以耦合到车辆700的各种其他部件和系统中的任何一个,并且可以用于控制车辆700、车辆700的人工智能、车辆700的信息娱乐和/或类似。
车辆700可以包括(多个)片上系统(SoC)704。(多个)SoC 704可以包括(多个)CPU706、(多个)GPU 708、(多个)处理器710、(多个)高速缓存712、(多个)加速器714、(多个)数据存储716、和/或未示出的其他组件和特征。(多个)SoC 704可用于在各种平台和系统中控制车辆700。例如,(多个)SoC 704可以在系统(例如,车辆700的系统)中与HD地图722组合,HD地图722可以经由网络接口724从一个或多个服务器获得地图刷新和/或更新(例如,图7D的(多个)服务器778)。
(多个)CPU 706可以包括CPU集群或CPU复合体(在本文中可选地称为“CCPLEX”)。(多个)CPU 706可以包括多个核和/或L2高速缓存。例如,在一些实施例中,(多个)CPU 706可以包括相干多处理器配置中的八个核。在一些实施例中,(多个)CPU 706可以包括四个双核集群,其中每个集群具有专用L2高速缓存(例如,2MB L2高速缓存)。(多个)CPU 706(例如,CCPLEX)可以被配置为支持同时群集操作,使得(多个)CPU 706的群集的任何组合在任何给定时间都是活动的。
(多个)CPU 706可以实现包括以下特征中的一个或多个的功率管理能力:各个硬件块可以在空闲时自动时钟门控以节省动态功率;当核心由于执行WFI/WFE指令而没有主动执行指令时,每个核心时钟可以被门控;每个核心可以独立电源门控;当所有内核都是时钟门控或电源门控时,每个核心集群可以独立地进行时钟门控;和/或当所有核心都是电源门控时,每个核心集群可以独立地进行电源门控。(多个)CPU 706还可以实现用于管理功率状态的增强算法,其中指定允许的功率状态和预期的唤醒时间,并且硬件/微代码确定要为核心、集群和CCPLEX输入的最佳功率状态。处理核可以支持在软件中的简化的功率状态输入序列,其中工作被卸载到微代码。
(多个)GPU 708可以包括集成GPU(在本文中可选地称为“iGPU”)。(多个)GPU 708可以是可编程的,并且可以对并行工作负载有效。在一些示例中,(多个)GPU 708可以使用增强张量指令集。(多个)GPU 708可以包括一个或多个流式微处理器,其中每个流式微处理器可以包括L1高速缓存(例如,具有至少96KB存储容量的L1高速缓存),并且两个或更多个流式微处理器可以共享L2高速缓存(例如,具有512KB存储容量的L2高速缓存)。在一些实施例中,(多个)GPU 708可包括至少八个流式微处理器。(多个)GPU 708可以使用(多个)计算应用编程接口(API)。另外,(多个)GPU708可以使用一个或多个并行计算平台和/或编程模型(例如,NVIDIA的CUDA)。
(多个)GPU708可以被功率优化以获得汽车和嵌入式使用情况中的最佳性能。例如,(多个)GPU 708可以在Fin场效应晶体管(FinFET)上制造。然而,这不是限制性的,并且(多个)GPU 708可以使用其他半导体制造工艺来制造。每个流式微处理器可以包括分成多个块的多个混合精度处理核。例如但不限于,可以将64个PF32核和32个PF64核划分为四个处理块。在这样的示例中,每个处理块可以被分配16个FP32核、8个FP64核、16个INT32核、用于深度学习矩阵算术的两个混合精度NVIDIA TENSOR CORE、L0指令高速缓存、线程束(warp)调度器、分配单元、以及/或64KB的寄存器文件。此外,流式微处理器可以包括独立的并行整数和浮点数据路径,以通过混合计算和寻址计算来提供工作负载的有效执行。流式微处理器可以包括独立的线程调度能力,以实现并行线程之间的更细粒度的同步和协作。流式微处理器可以包括组合的L1数据高速缓存和共享存储器单元,以便在简化编程的同时提高性能。
(多个)GPU 708可以包括高带宽存储器(HBM)和/或16GB HBM2存储器子系统,以在一些示例中提供大约900GB/秒的峰值存储器带宽。在一些示例中,除了HBM存储器之外或作为其替代,可以使用同步图形随机存取存储器(SGRAM),例如图形双倍数据速率类型五同步随机存取存储器(GDDR5)。
(多个)GPU 708可以包括统一存储器技术,其包括访问计数器,以允许更准确地将存储器页面迁移到最频繁访问它们的处理器,从而提高处理器之间共享的存储器范围的效率。在一些示例中,地址转换服务(ATS)支持可以用于允许(多个)GPU 708直接访问(多个)CPU706页面表。在这样的示例中,当(多个)GPU 708存储器管理单元(MMU)经历未命中时,可以将地址转换请求发送到(多个)CPU 706。作为响应,(多个)CPU 706可以在其页面表中查看用于地址的虚拟到物理映射并将转换发送回(多个)GPU708。因此,统一存储器技术可以允许单个统一的虚拟地址空间用于(多个)CPU 706和(多个)GPU 708的存储器,从而简化(多个)GPU 708将应用编程和移植到(多个)GPU 708。
另外,(多个)GPU 708可以包括访问计数器,其可以跟踪(多个)GPU 708对其他处理器的存储器的访问频率。访问计数器可以帮助确保将存储器页面移动到最频繁访问页面的处理器的物理存储器。
(多个)SoC 704可以包括任何数量的(多个)高速缓存712,包括本文描述的那些。例如,(多个)高速缓存712可以包括可用于(多个)CPU 706和(多个)GPU 708的L3高速缓存(例如,连接(多个)CPU 706和(多个)GPU708两者)。(多个)高速缓存712可以包括回写高速缓存,其可以跟踪行状态,例如通过使用高速缓存一致性协议(例如,MEI、MESI、MSI等)。取决于实施例,L3高速缓存可以包括4MB或更多,尽管可以使用更小的高速缓存大小。
(多个)SoC 704可以包括一个或多个加速器714(例如,硬件加速器、软件加速器或其组合)。例如,(多个)SoC 704可以包括硬件加速集群,其可以包括优化的硬件加速器和/或大的片上存储器。大的片上存储器(例如,4MB的SRAM)可以使硬件加速集群能够加速神经网络和其他计算。硬件加速集群可用于补充(多个)GPU 708并卸载(多个)GPU 708的一些任务(例如,以释放(多个)GPU 708的更多周期以执行其他任务)。作为示例,(多个)加速器714可以用于目标工作负载(例如,感知、卷积神经网络(CNN)等),其足够稳定以适于加速。这里使用的术语“CNN”可以包括所有类型的CNN,包括基于区域或区域的卷积神经网络(RCNN)和快速RCNN(例如,用于对象检测)。
(多个)加速器714(例如,硬件加速群集)可以包括(多个)深度学习加速器(DLA)。(多个)DLA可以包括一个或多个张量处理单元(Tensor processing unit,TPU),其可以被配置为每秒为深度学习应用和推理提供额外的10万亿次操作。TPU可以是被配置为并且被优化用于执行图像处理功能的加速器(例如,用于CNN、RCNN等)。(多个)DLA还可以针对特定的一组神经网络类型和浮点运算以及推理进行优化。(多个)DLA的设计可以提供比通用GPU更高的每毫米性能,并且远远超过CPU的性能。(多个TPU可以执行若干功能,包括单实例卷积功能,例如支持用于特征和权重的INT8、INT16和FP16数据类型,以及后处理器功能。
对于任何各种功能,(多个)DLA可以快速有效地对处理或未处理的数据执行神经网络,尤其是CNN,包括例如但不限于:用于使用来自相机传感器的数据进行对象识别和检测的CNN;用于使用来自相机传感器的数据进行距离估计的CNN;用于使用来自麦克风的数据进行紧急车辆检测和识别和检测的CNN;用于使用来自相机传感器的数据进行面部识别和车主识别的CNN;和/或用于安全和/或安全相关事件的CNN。
(多个)DLA可以执行(多个)GPU 708的任何功能,并且通过使用推理加速器,例如,设计者可以针对(多个)DLA或(多个)GPU 708用于任何功能。例如,设计者可以将对CNN的处理和浮点运算集中在(多个)DLA上,并将其他功能留给(多个)GPU 708和/或(多个)其他加速器714。
加速器714(例如,硬件加速群集)可以包括(多个)可编程视觉加速器(PVA),其可替代地在本文中称为计算机视觉加速器。(多个)PVA可以被设计和配置为加速用于高级驾驶员辅助系统(ADAS)、自主驾驶和/或增强现实(AR)和/或虚拟现实(VR)应用的计算机视觉算法。(多个)PVA可以在性能和灵活性之间提供平衡。例如,每个PVA可以包括,例如但不限于,任意数量的精简指令集计算机(RISC)核、直接存储器访问(DMA)和/或任何数量的矢量处理器。
RISC核心可以与图像传感器(例如,本文描述的任何相机的图像传感器)、(多个)图像信号处理器等交互。每个RISC核可以包括任何数量的存储器。根据实施例,RISC核可以使用许多协议中的任何协议。在一些示例中,RISC核可以执行实时操作系统(RTOS)。可以使用一个或多个集成电路设备、特殊应用集成电路(ASIC)和/或存储器设备来实现RISC核。例如,RISC核可以包括指令高速缓存和/或紧密耦合的RAM。
DMA可以使(多个)PVA的组件独立于(多个)CPU 706访问系统存储器。DMA可以支持用于向PVA提供优化的任何数量的特征,包括但不限于支持多维寻址和/或循环寻址。在一些示例中,DMA可以支持多达六个或更多维的寻址,其可以包括块宽度、块高度、块深度、水平块步进、垂直块步进和/或深度步进。
矢量处理器可以是可编程处理器,其可以被设计为有效且灵活地执行对于计算机视觉算法的编程并提供信号处理能力。在一些示例中,PVA可以包括PVA核和两个矢量处理子系统分区。PVA核可以包括处理器子系统、(多个)DMA引擎(例如,两个DMA引擎)和/或其他外围设备。矢量处理子系统可以作为PVA的主处理引擎操作,并且可以包括矢量处理单元(VPU)、指令高速缓存和/或矢量存储器(例如,VMEM)。VPU核可以包括数字信号处理器,例如单指令、多数据(SIMD)、超长指令字(VLIW)数字信号处理器。SIMD和VLIW的组合可以提高吞吐量和速度。
每个矢量处理器可以包括指令高速缓存,并且可以耦合到专用存储器。结果,在一些示例中,每个矢量处理器可以被配置为独立于其他矢量处理器执行。在其他示例中,包括在特定PVA中的矢量处理器可以被配置为采用数据并行性。例如,在一些实施例中,包括在单个PVA中的多个矢量处理器可以执行相同的计算机视觉算法,但是在图像的不同区域上。在其他示例中,包括在特定PVA中的矢量处理器可以在同一图像上同时执行不同的计算机视觉算法,或者甚至在顺序图像或图像的部分上执行不同的算法。其中,任何数量的PVA可以包括在硬件加速集群中,并且任何数量的矢量处理器可以包括在每个PVA中。此外,(多个)PVA可以包括附加的纠错码(ECC)存储器,以增强整体系统安全性。
(多个)加速器714(例如,硬件加速群集)可以包括片上计算机视觉网络和SRAM,用于为(多个)加速器714提供高带宽、低延迟的SRAM。在一些示例中,片上存储器可以包括至少4MB的SRAM,其包括例如但不限于八个现场可配置的存储器块,PVA和DLA都可以访问这些存储器块。每对存储器块可以包括高级外围总线(APB)接口、配置电路、控制器和多路复用器。可以使用任何类型的存储器。PVA和DLA可以通过骨干网(backbone)访问存储器,该骨干网为PVA和DLA提供对存储器的高速访问。骨干网可以包括片上计算机视觉网络,其将PVA和DLA互连到存储器(例如,使用APB)。
片上计算机视觉网络可以包括在传输任何控制信号/地址/数据之前确定PVA和DLA都提供就绪和有效信号的接口。这种接口可以提供单独的相位和用于发送控制信号/地址/数据的单独信道,以及用于连续数据传输的突发类型通信。尽管可以使用其他标准和协议,但是这种类型的接口可以符合ISO 26262或IEC 61508标准。
在一些示例中,(多个)SoC 704可以包括实时光线跟踪硬件加速器,诸如在2018年8月10日提交的美国专利申请No.16/101,232中描述的。实时光线跟踪硬件加速器可用于快速有效地确定对象的位置和范围(例如,在世界模型内),以生成实时可视化模拟,用于RADAR信号解释,用于声音传播合成和/或分析,用于模拟SONAR系统,用于一般波传播模拟,用于与LIDAR数据进行比较以用于定位和/或其他功能,和/或用于其他用途。
(多个)加速器714(例如,硬件加速器集群)具有用于自主驾驶的广泛用途。PVA可以是可编程视觉加速器,其可以用于ADAS和自主车辆中的关键处理阶段。PVA的功能非常适合需要可预测处理的算法域,低功耗和低延迟。换句话说,PVA在半密集或密集的常规计算上表现良好,即使在小数据集上也是如此,这些数据集需要具有低延迟和低功率的可预测运行时间。因此,在用于自主车辆的平台的背景下,PVA被设计为运行经典的计算机视觉算法,因为它们在对象检测和对整数数学运算方面是有效的。
例如,根据本技术的一个实施例,PVA用于执行计算机立体视觉。在一些示例中可以使用基于半全局匹配的算法,但是这不是限制性的。用于3-5级自主驾驶的许多应用需要即时的动态估计/立体匹配(例如,来自运动、行人识别、车道检测等的结构)。PVA可以对来自两个单眼相机的输入执行计算机立体视觉功能。
在一些示例中,PVA可用于执行密集的光流。根据处理原始RADAR数据(例如,使用4D快速傅里叶变换)来提供处理的RADAR。在其他示例中,例如,通过处理原始飞行时间数据以提供处理的飞行时间数据,PVA用于飞行时间深度处理。
DLA可用于运行任何类型的网络以增强控制和驾驶安全性,包括例如输出每个对象检测的置信度量的神经网络。这样的置信度值可以被解释为概率,或者与其他检测相比提供每个检测的相对“权重”。该置信度值使系统能够做出关于哪些检测应被视为真正的正确检测而不是误报检测的进一步决定。例如,系统可以设置置信度的阈值,并且仅考虑超过阈值的检测作为真正的正确检测。在自动紧急制动(AEB)系统中,误报检测将导致车辆自动执行紧急制动,这显然是不希望的。因此,只有最自信的检测应被视为AEB的触发因素。DLA可以运行神经网络来回归置信度值。神经网络可以将至少一些参数子集作为其输入,例如边界框尺寸、获得的地平面估计(例如,来自另一子系统)、与车辆700的定向相关的惯性测量单元(IMU)传感器766输出、距离、从神经网络和/或其他传感器(例如,LIDAR传感器764或RADAR传感器760)获得的对象的3D位置估计等。
(多个)SoC 704可以包括(多个)数据存储716(例如,存储器)。(多个)数据存储716可以是(多个)SoC 704的片上存储器,其可以存储要在GPU和/或DLA上执行的神经网络。在一些示例中,(多个)数据存储716可以足够大以存储神经网络的多个实例以用于冗余和安全。(多个)数据存储716可以包括L2或L3(多个)高速缓存712。对(多个)数据存储716的引用可以包括对与PVA、DLA和/或(多个)其他加速器714相关联的存储器的引用,如本文所述。
(多个)SoC 704可以包括一个或多个处理器710(例如,嵌入式处理器)。(多个)处理器710可以包括引导和电源管理处理器,其可以是专用处理器和子系统,以处理引导电源和管理功能以及相关的安全实施。引导和电源管理处理器可以是(多个)SoC 704引导序列的一部分,并且可以提供运行时电源管理服务。引导功率和管理处理器可以提供时钟和电压编程,协助系统低功率状态转换,(多个)SoC 704热量和温度传感器的管理,和/或(多个)SoC704功率状态的管理。每个温度传感器可以实现为其输出频率与温度成比例的环形振荡器,并且(多个)SoC 704可以使用环形振荡器来检测(多个)CPU706、(多个)GPU 708以及(多个)加速器714的温度。如果确定温度超过阈值,则引导和电源管理处理器可以进入温度故障例程并将(多个)SoC 704置于较低功率状态和/或将车辆700置于司机到安全停止模式(例如,使车辆700安全停止)。
(多个)处理器710还可以包括可以用作音频处理引擎的一组嵌入式处理器。音频处理引擎可以是音频子系统,其通过多个接口以及广泛且灵活范围的音频I/O接口实现对多声道音频的全硬件支持。在一些示例中,音频处理引擎是专用处理器核心,其具有带有专用RAM的数字信号处理器。
(多个)处理器710还可以包括始终开启处理器引擎,其可以提供必要的硬件特征以支持低功率传感器管理和唤醒用例。始终开启处理器引擎可以包括处理器核、紧密耦合的RAM、支持外围设备(例如,定时器和中断控制器)、各种I/O控制器外围设备和路由逻辑。
(多个)处理器710还可以包括安全集群引擎,其包括专用处理器子系统以处理汽车应用的安全管理。安全集群引擎可以包括两个或更多个处理器核,紧密耦合的RAM,支持外围设备(例如,定时器、中断控制器等)和/或路由逻辑。在安全模式中,两个或更多个核可以以锁步模式操作并且用作具有比较逻辑的单个核以检测它们的操作之间的任何差异。
(多个)处理器710还可以包括实时相机引擎,其可以包括用于处理实时相机管理的专用处理器子系统。
(多个)处理器710还可以包括高动态范围信号处理器,其可以包括图像信号处理器,该图像信号处理器是作为相机处理流水线的一部分的硬件引擎。
(多个)处理器710可以包括视频图像合成器,其可以是处理块(例如,在微处理器上实现),其实现视频回放应用所需的视频后处理功能以产生用于播放器窗口的最终图像。视频图像合成器可以在(多个)广视相机770、(多个)环绕相机774和/或舱内监控相机传感器上执行镜头失真校正。舱内监控相机传感器优选地由在高级SoC的另一个实例上运行的神经网络监控,被配置为在机舱事件中识别并相应地响应。舱内系统可执行唇读以激活蜂窝服务并拨打电话、指示电子邮件、改变车辆的目的地、激活或改变车辆的信息娱乐系统和设置、或提供语音激活的网上冲浪。仅当车辆在自主模式下操作时,某些功能才可用于驾驶员,否则将被禁用。
视频图像合成器可以包括用于空间和时间噪声降低的增强的时间噪声降低。例如,在视频中发生运动的情况下,降噪适当地对空间信息进行加权,从而减小由相邻帧提供的信息的权重。在图像或图像的一部分不包括运动的情况下,由视频图像合成器执行的时间噪声降低可以使用来自先前图像的信息来减少当前图像中的噪声。
视频图像合成器还可以被配置为对输入立体镜头帧执行立体声校正。当操作系统桌面正在使用时,视频图像合成器还可以用于用户界面组合,并且(多个)GPU 708不需要连续地渲染新表面。即使当(多个)GPU 708通电并且活动进行3D渲染时,视频图像合成器也可以用于卸载(多个)GPU 708以改善性能和响应性。
(多个)SoC 704还可以包括用于接收来自相机的视频和输入的移动工业处理器接口(MIPI)相机串行接口、高速接口和/或可以用于相机和相关像素输入功能的视频输入块。(多个)SoC 704还可以包括(多个)输入/输出控制器,其可以由软件控制并且可以用于接收未提交给特定角色的I/O信号。
(多个)SoC 704还可以包括宽范围的外围接口,以实现与外围设备、音频编解码器、电源管理和/或其他设备的通信。(多个)SoC 704可用于处理来自相机(例如,通过千兆位多媒体串行链路和以太网连接)、传感器(例如,可以通过以太网连接的(多个)LIDAR传感器764、(多个)RADAR传感器760等)的数据,来自总线702的数据(例如,车辆700的速度、方向盘位置等),来自(多个)GNSS传感器758的数据(例如,通过以太网或CAN总线连接)。(多个)SoC 704还可以包括专用高性能大容量存储控制器,其可以包括它们自己的DMA引擎,并且可以用于将(多个)CPU 706从常规数据管理任务中释放出来。
(多个)SoC 704可以是具有跨越自动化级别3-5的灵活架构的端到端平台,从而提供全面的功能安全架构,其利用并有效利用计算机视觉和ADAS技术来实现分集和冗余,提供灵活、可靠的驾驶软件栈的平台,以及深度学习工具。(多个)SoC 704可以比传统系统更快、更可靠、甚至更节能和节省空间。例如,(多个)加速器714当与(多个)CPU 706、(多个)GPU 708和(多个)数据存储716组合时,可以为3-5级自主车辆提供快速有效的平台。
因此,该技术提供了传统系统无法实现的能力和功能。例如,计算机视觉算法可以在CPU上执行,其可以使用诸如C编程语言的高级编程语言来配置,以跨多种视觉数据执行各种处理算法。然而,CPU通常不能满足许多计算机视觉应用的性能要求,例如与执行时间和功耗相关的应用。特别是,许多CPU无法实时执行复杂的对象检测算法,这是车载ADAS应用的要求,也是实际3-5级自主车辆的要求。
与传统系统相比,通过提供CPU复合体,GPU复合体和硬件加速集群,本文描述的技术允许同时和/或顺序地执行多个神经网络,并且将结果组合在一起以启用级别3-5自主驾驶功能。例如,在DLA或dGPU上执行的CNN(例如,(多个)GPU 720)可以包括文本和单词识别,允许超级计算机读取和理解交通标志,包括神经网络尚未具体训练的标志。DLA还可以包括神经网络,其能够识别、解释和提供对符号的语义理解,并且将该语义理解传递给在CPU复合体上运行的路径规划模块。
作为另一个例子,多个神经网络可以同时运行,如3级、4级或5级驾驶所需。例如,由“警告:闪烁的灯指示结冰状况”以及电灯组成的警告标志可以由若干神经网络独立地或共同地解释。标志本身可以通过第一部署的神经网络(例如,已经训练的神经网络)被识别为交通标志,文本“闪烁灯指示结冰状况”可以由第二部署的神经网络解释,其通知车辆的路径规划软件(最好在CPU复合体上执行),当检测到闪烁的灯光时,存在结冰的情况。可以通过在多个帧上操作第三部署的神经网络来识别闪光,从而向车辆的路径规划软件通知闪光灯的存在(或不存在)。所有三个神经网络可以同时运行,例如在DLA内和/或(多个)GPU708上。
在一些示例中,用于面部识别和车主识别的CNN可以使用来自相机传感器的数据来识别车辆700的授权驾驶员和/或所有者的存在。始终开启传感器处理引擎可以用于在车主接近驾驶员车门解锁车辆并打开车灯,并且在安全模式下,当车主离开车辆时禁用车辆。以这种方式,(多个)SoC 704提供防盗和/或劫车的安全性。
在另一示例中,用于紧急车辆检测和识别的CNN可以使用来自麦克风796的数据来检测和识别紧急车辆警报器。与使用通用分类器来检测警报器并手动提取特征的传统系统相比,(多个)SoC 704使用CNN来分类环境和城市声音,以及分类视觉数据。在优选实施例中,训练在DLA上运行的CNN以识别紧急车辆的相对闭合速度(例如,通过使用多普勒效应)。CNN还可以被训练以识别特定于车辆正在操作的局部区域的紧急车辆,如(多个)GNSS传感器758所识别的。因此,例如,当在欧洲操作时,CNN将寻求检测欧洲警报器,而在美国,CNN将寻求仅识别北美警报器。一旦检测到紧急车辆,就可以使用控制程序来执行紧急车辆安全例程,使车辆减速,拉到车辆侧面,停放车辆和/或在超声波传感器762辅助下使车辆怠速直到(多个)紧急车辆通过。
车辆可以包括(多个)CPU 718(例如,(多个)离散的CPU或(多
个)dCPU),其可以经由高速互连(例如,PCIe)耦合到(多个)SoC 704。例如,(多个)CPU 718可以包括X86处理器。(多个)CPU 718可以用于执行各种功能中的任何功能,包括例如,仲裁ADAS传感器和(多个)SoC 704之间可能不一致的结果,和/或监控(多个)控制器736和/或信息娱乐SoC 730的状态和健康。
车辆700可以包括(多个)GPU 720(例如,(多个)离散的GPU或(多个)dGPU),其可以经由高速互连(例如,NVIDIA的NVLINK)耦合到(多个)SoC 704。(多个)GPU 720可以提供额外的人工智能功能,例如通过执行冗余和/或不同的神经网络,并且可以用于基于来自车辆700的传感器的输入(例如,传感器数据)来训练和/或更新神经网络。
车辆700还可以包括网络接口724,其可以包括一个或多个无线天线726(例如,用于不同通信协议的一个或多个无线天线,例如蜂窝天线、蓝牙天线等)。网络接口724可以用于通过因特网与云(例如,与服务器778和/或其他网络设备)、与其他车辆和/或与计算设备(例如,客户端设备)实现无线连接。为了与其他车辆通信,可以在两个车辆之间建立直接链路和/或可以建立间接链路(例如,跨网络和通过因特网)。可以使用车辆到车辆通信链路来提供直接链接。车辆到车辆通信链路可以向车辆700提供关于车辆700附近的车辆的信息(例如,车辆700前方、侧面和/或后方的车辆)。该功能可以是车辆700的协作自适应巡航控制功能的一部分。
网络接口724可以包括提供调制和解调功能的SoC,并使(多个)控制器736能够通过无线网络进行通信。网络接口724可以包括射频前端,用于从基带到射频的上转换,以及从射频到基带的下转换。频率转换可以通过众所周知的过程来执行,和/或可以使用超外差过程来执行。在一些示例中,射频前端功能可以由单独的芯片提供。网络接口可以包括用于通过LTE、WCDMA、UMTS、GSM、CDMA2000、蓝牙、蓝牙LE、Wi-Fi、Z-Wave、ZigBee、LoRaWAN和/或其他无线协议进行通信的无线功能。
车辆700还可以包括(多个)数据存储728,其可以包括片外(例如,(多个)SoC 704外)存储器。(多个)数据存储728可以包括一个或多个存储元件,包括RAM、SRAM、DRAM、VRAM、闪存、硬盘和/或可以存储至少一位数据的其他组件和/或设备。
车辆700还可以包括(多个)GNSS传感器758。(多个)GNSS传感器758(例如,GPS和/或辅助GPS传感器),以辅助映射、感知、占用网格生成和/或路径规划功能。可以使用任何数量的(多个)GNSS传感器758,包括,例如但不限于,使用具有以太网到串行(RS-232)桥的USB连接器的GPS。
车辆700还可以包括(多个)RADAR传感器760。即使在黑暗和/或恶劣天气条件下,车辆700也可以使用(多个)RADAR传感器760进行远程车辆检测。RADAR功能安全级别可以是ASIL B。(多个)RADAR传感器760可以使用CAN和/或总线702(例如,传输由(多个)RADAR传感器760生成的数据)来控制和访问对象跟踪数据,在某些示例中,可以访问以太网来访问原始数据。可以使用各种RADAR传感器类型。例如但不限于,(多个)RADAR传感器760可适用于前、后和侧RADAR使用。在一些示例中,使用(多个)脉冲多普勒RADAR传感器。
(多个)RADAR传感器760可以包括不同的配置,例如具有窄视场的长范围、具有宽视场的短范围、短范围侧覆盖等。在一些示例中,远程RADAR可以用于自适应巡航控制功能。远程RADAR系统可以提供通过两个或更多个独立扫描实现的宽视场,例如在250米范围内。(多个)RADAR传感器760可以帮助区分静态和移动对象,并且可以由ADAS系统用于紧急制动辅助和前向碰撞警告。远程雷达传感器可以包括具有多个(例如,六个或更多个)固定RADAR天线和高速CAN和FlexRay接口的单向多模雷达。在具有六个天线的示例中,中央四个天线可以创建聚焦波束图案,其被设计为以更高的速度记录车辆700的周围环境,并且相邻车道中的交通具有最小的干扰。另外两个天线可以扩展视场,使得可以快速检测进入或离开车辆700车道的车辆。
中程雷达系统可以包括例如高达760米(前方)或80米(后方)的范围,以及高达42度(前方)或750度(后方)的视场。短程雷达系统可以包括但不限于设计成安装在后保险杠两端的雷达传感器。当安装在后保险杠的两端时,这种雷达传感器系统可以产生两个横梁,其持续监控车辆后部和车辆旁边的盲点。
短程RADAR系统可以在ADAS系统中用于盲点检测和/或车道变换辅助。
车辆700还可以包括(多个)超声波传感器762。可以将(多个)超声波传感器762定位在车辆700的前部、后部和/或侧面,可以用于停车辅助和/或创建和更新占用网格。可以使用各种各样的(多个)超声波传感器762,并且不同的(多个)超声波传感器762可以用于不同的检测范围(例如,2.5m、4m)。(多个)超声波传感器762可以在ASIL B的功能安全水平下操作。
车辆700可以包括(多个)LIDAR传感器764。(多个)LIDAR传感器764可以用于对象和行人检测,紧急制动,碰撞避免和/或其他功能。(多个)LIDAR传感器764可以是功能安全级别ASIL B。在一些示例中,车辆700可以包括可以使用以太网的多个LIDAR传感器764(例如,两个、四个、六个等)(例如,用于提供数据到千兆以太网交换机)。
在一些示例中,(多个)LIDAR传感器764可以能够提供对象列表及其360度视场的距离。(多个)商用LIDAR传感器764可以具有大约700m的广告范围,精度为2cm-3cm,并且例如支持700Mbps以太网连接。在一些示例中,可以使用一个或多个非突出的LIDAR传感器764。在这样的示例中,(多个)LIDAR传感器764可以被实现为可以嵌入到车辆700的前部、后部、侧面和/或角落中的小型设备。在这样的示例中,(多个)LIDAR传感器764可提供高达720度的水平和35度垂直视场,即使对于低反射率对象也可提供200米的范围。(多个)前置LIDAR传感器764可以被配置用于45度和135度之间的水平视场。
在一些示例中,还可以使用LIDAR技术,例如3D闪光LIDAR。3D闪光LIDAR使用激光闪光灯作为发射源,照亮车辆周围约200米。闪光激光LIDAR单元包括接收器,其记录每个像素上的激光脉冲传播时间和反射光,其反过来对应于从车辆到对象的范围。闪光LIDAR可以允许每次激光闪光产生高度精确和无失真的周围环境图像。在一些示例中,可以部署四个闪光LIDAR传感器,在车辆700的每一侧一个。可用的3D闪光LIDAR系统包括固态3D凝视阵列LIDAR相机,除了风扇之外没有移动部件(例如,非扫描LIDAR设备)。闪光LIDAR装置可以每帧使用5纳秒级别I(人眼安全)激光脉冲,并且可以以3D范围点云和共同登记的强度数据的形式捕获反射的激光。通过使用闪光LIDAR,并且因为闪LIDAR是没有移动部件的固态设备,所以(多个)LIDAR传感器764可能不太容易受到运动模糊、振动和/或震动的影响。
车辆还可以包括(多个)IMU传感器766。在一些示例中,IMU传感器766可以位于车辆700的后轴的中心。(多个)IMU传感器766可以包括,例如但不限于,(多个)加速度计、(多个)磁力计、(多个)陀螺仪、(多个)磁罗盘和/或其他传感器类型。在一些示例中,例如在六轴应用中,(多个)IMU传感器766可以包括加速计和陀螺仪,而在九轴应用中,(多个)IMU传感器766可以包括加速计、陀螺仪和磁力计。
在一些实施例中,(多个)IMU传感器766可以被实现为微型高性能GPS辅助惯性导航系统(GPS/INS),其结合了微机电系统(MEMS)惯性传感器、高灵敏度GPS接收器和先进的卡尔曼滤波算法,以提供位置、速度和姿态的估计。这样,在一些示例中,(多个)IMU传感器766可以通过直接观察和关联从GPS到(多个)IMU传感器766的速度变化来使车辆700能够估计航向而不需要来自磁传感器的输入。在一些示例中,(多个)IMU传感器766和(多个)GNSS传感器758可以组合在单个集成单元中。
车辆可以包括放置在车辆700中和/或周围的(多个)麦克风796。(多个)麦克风796可以用于紧急车辆检测和识别等。
车辆还可包括任何数量的相机类型,包括(多个)立体相机768、(多个)广视相机770、(多个)红外相机772、(多个)环绕相机774、(多个)远程和/或中程相机798和/或其他相机类型。相机可以用于捕获车辆700的整个周边周围的图像数据。所使用的相机类型取决于车辆700的实施例和要求,并且可以使用相机类型的任何组合来提供围绕该车辆700的必要覆盖。另外,根据实施例,相机的数量可以不同。例如,车辆可包括六个相机、七个相机、十个相机、十二个相机和/或另一数量的相机。作为示例而非限制,相机可以支持千兆位多媒体串行链路(GMSL)和/或千兆位以太网。在此关于图7A和7B更详细地描述了每个相机。
车辆700还可以包括(多个)振动传感器742。(多个)振动传感器742可以测量车辆的部件(例如(多个)轴)的振动。例如,振动的变化可以指示路面的变化。在另一示例中,当使用两个或更多个振动传感器742时,振动之间的差异可用于确定路面的摩擦或滑动(例如,当振动的差异在动力驱动轴和自由旋转轴之间时)。
车辆700可以包括ADAS系统738。在一些示例中,ADAS系统738可以包括SoC。ADAS系统738可包括自主/自适应/自动巡航控制(ACC)、协同自适应巡航控制(CACC)、前方碰撞警告(FCW)、自动紧急制动(AEB)、车道偏离警告(LDW)、车道保持辅助(LKA)、盲点警告(BSW)、后部交叉警告(RCTW)、碰撞警告系统(CWS)、车道居中(LC)和/或其他特征和功能。
ACC系统可以使用(多个)RADAR传感器760、(多个)LIDAR传感器764和/或(多个)相机。ACC系统可包括纵向ACC和/或横向ACC。纵向ACC监控并控制紧邻车辆700前方的车辆距离,并自动调节车速以保持与前方车辆的安全距离。横向ACC执行距离保持,并且建议车辆700在必要时改变车道。横向ACC与例如LCA和CWS的其他ADAS应用相关。
CACC使用来自其他车辆的信息,该信息可以经由网络接口724和/或(多个)无线天线726经由无线链路从其他车辆接收,或者通过网络连接(例如,通过因特网)间接接收。直接链路可以由车辆到车辆(V2V)通信链路提供,而间接链路可以是基础设施到车辆(I2V)通信链路。通常,V2V通信概念提供关于紧接在前的车辆的信息(例如,紧接在车辆700之前和在与车辆700相同的车道中的车辆),而I2V通信概念提供关于更远的交通的信息。CACC系统可以包括I2V和V2V信息源中的任一个或两者。给定车辆700前方车辆的信息,CACC可能更可靠并且它具有改善交通流畅通性和减少道路拥堵的潜力。
FCW系统旨在提醒驾驶员注意危险,以便驾驶员采取纠正措施。FCW系统使用前置相机和/或(多个)RADAR传感器760,其耦合到专用处理器、DSP、FPGA和/或ASIC,其电耦合到例如显示器、扬声器和/或振动组件的驾驶员反馈。FCW系统可以提供警告,例如以声音、视觉警告、振动和/或快速制动脉冲的形式。
AEB系统检测到与其他车辆或其他对象即将发生的前方碰撞,并且如果驾驶员未在指定时间或距离参数内采取纠正措施,则可自动应用制动器。AEB系统可以使用耦合到专用处理器、DSP、FPGA和/或ASIC的(多个)前置相机和/或(多个)RADAR传感器760。当AEB系统检测到危险时,它通常首先警告驾驶员采取纠正措施以避免碰撞,并且如果驾驶员没有采取纠正措施,则AEB系统可以自动应用制动器以努力防止,或至少缓解,预测碰撞的影响。AEB系统可包括诸如动态制动器支持和/或即将发生制动的技术。
LDW系统提供视觉、听觉和/或触觉警告,例如方向盘或座椅振动,以在车辆700穿过车道标记时警告驾驶员。当驾驶员通过激活转向信号指示故意车道偏离时,LDW系统不会激活。LDW系统可以使用前侧面向相机,其耦合到专用处理器、DSP、FPGA和/或ASIC,其电耦合到例如显示器、扬声器和/或振动组件的驾驶员反馈。
LKA系统是LDW系统的变体。如果车辆700开始离开车道,则LKA系统提供转向输入或制动以校正车辆700。
BSW系统检测并警告驾驶员汽车盲点中的车辆。BSW系统可以提供视觉、听觉和/或触觉警报以指示合并或改变车道是不安全的。当驾驶员使用转向信号时,系统可以提供附加警告。BSW系统可以使用(多个)后侧面向相机和/或(多个)RADAR传感器760,其耦合到专用处理器、DSP、FPGA和/或ASIC,其电耦合到例如显示器、扬声器和/或振动组件的驾驶员反馈。
当车辆700正在倒车时,当对象被检测到在后相机范围之外时,RCTW系统可以提供视觉、听觉和/或触觉通知。一些RCTW系统包括AEB,以确保应用车辆制动器以避免碰撞。RCTW系统可以使用一个或多个后置RADAR传感器760,其耦合到专用处理器、DSP、FPGA和/或ASIC,其电耦合到例如显示器、扬声器和/或振动元件的驾驶员反馈。
传统的ADAS系统可能易于产生误报结果,这可能令驾驶员烦恼并分散注意力,但通常不是灾难性的,因为ADAS系统警告驾驶员并允许驾驶员确定安全条件是否真正存在并相应地采取行动。然而,在自主车辆700中,在结果冲突的情况下,车辆700本身必须决定是否注意来自主计算机或辅助计算机(例如,第一控制器736或第二控制器736)的结果。例如,在一些实施例中,ADAS系统738可以是备份和/或辅助计算机,用于向备份计算机合理性模块提供感知信息。备份计算机合理性监控器可以在硬件组件上运行冗余的各种软件,以检测感知和动态驾驶任务中的故障。可以将来自ADAS系统738的输出提供给监督MCU。如果主计算机和辅助计算机的输出发生冲突,则监督MCU必须确定如何协调冲突以确保安全操作。
在一些示例中,主计算机可以被配置为向监督MCU提供置信度分数,指示主计算机对所选结果的置信度。如果置信度得分超过阈值,则监督MCU可以遵循主计算机的指示,而不管辅助计算机是否提供冲突或不一致的结果。在置信度分数不满足阈值并且主要和次要计算机指示不同结果(例如,冲突)的情况下,监督MCU可以在计算机之间进行仲裁以确定适当的结果。
监督MCU可以被配置为运行(多个)神经网络,该(多个)神经网络被训练和配置成基于来自主计算机和辅助计算机的输出来确定辅助计算机提供错误警报的条件。因此,监督MCU中的(多个)神经网络可以了解辅助计算机的输出何时可信任,何时不可信。例如,当辅助计算机是基于RADAR的FCW系统时,监督MCU中的(多个)神经网络可以了解FCW系统何时识别实际上不存在危险的金属对象,例如引发警报的排水栅或井盖。类似地,当辅助计算机是基于相机的LDW系统时,监督MCU中的神经网络可以学习在存在骑自行车者或行人时超越LDW并且车道偏离实际上是最安全的操纵。在包括在监督MCU上运行的(多个)神经网络的实施例中,监督MCU可以包括适合于运行具有相关存储器的(多个)神经网络的DLA或GPU中的至少一个。在优选实施例中,监督MCU可以包括和/或被包括作为(多个)SoC 704的组件。
在其他示例中,ADAS系统738可以包括使用传统的计算机视觉规则执行ADAS功能的辅助计算机。这样,辅助计算机可以使用经典计算机视觉规则(如果-那么),并且监督MCU中(多个)神经网络的存在可以提高可靠性、安全性和性能。例如,多样化的实现和有意的非同一性使整个系统更具容错性,尤其是由软件(或软件-硬件接口)功能引起的故障。例如,如果主计算机上运行的软件中存在软件缺陷或错误,并且在辅助计算机上运行的不相同的软件代码提供相同的总体结果,则监督MCU可能更有信心整体结果是正确,主计算机上的软件或硬件中的缺陷不会导致重大错误。
在一些示例中,ADAS系统738的输出可以被馈送到主计算机的感知块和/或主计算机的动态驱动任务块。例如,如果ADAS系统738由于紧接在前面的对象而指示前向碰撞警告,则感知块可在识别对象时使用该信息。在其他示例中,如本文所述,辅助计算机可以具有其自己的训练的神经网络,从而降低误报的风险。
车辆700还可以包括信息娱乐系统SoC 730(例如,车载信息娱乐系统(IVI))。尽管图示和描述为SoC,但信息娱乐系统可以不是SoC,并且可以包括两个或更多个分立组件。信息娱乐系统SoC 730可以包括硬件和软件的组合,其可以用于提供音频(例如,音乐、个人数字助理、导航指令、新闻、广播等),视频(例如,电视、电影、流媒体等),电话(例如,免提呼叫),网络连接(例如,LTE、Wi-Fi等)和/或信息服务(例如,导航系统、后停车辅助、无线电数据系统、车辆相关信息例如燃料水平、所覆盖的总距离、制动燃料水平、油位、门打开/关闭、空气过滤器信息等)到车辆700。例如,信息娱乐系统SoC 730可以是无线电、磁盘播放器、导航系统、视频播放器、USB和蓝牙连接、车载、车载娱乐、Wi-Fi、方向盘音频控制、免提语音控制、抬头显示器(HUD)、HMI显示器734、远程信息处理设备、控制面板(例如,用于控制和/或与各种组件、特征和/或系统交互)、和/或其他组件。信息娱乐系统SoC 730还可用于向车辆的(多个)用户提供信息(例如,视觉和/或听觉),例如来自ADAS系统738的信息,诸如计划的车辆操纵、轨迹、周围环境信息(例如,交叉口信息、车辆信息、道路信息等)和/或其他信息的自主驾驶信息。
信息娱乐SoC 730可以包括GPU功能。信息娱乐系统SoC 730可以通过总线702(例如,CAN总线、以太网等)与车辆700的其他设备、系统和/或组件通信。在一些示例中,信息娱乐系统SoC 730可以耦合到监督MCU使得信息娱乐系统的GPU可以在(多个)主控制器736(例如,车辆700的主要和/或备用计算机)发生故障的情况下执行一些自驾驶功能。在这样的示例中,信息娱乐系统SoC 730可以将车辆700置于司机安全停止模式,如本文所述。
车辆700还可以包括仪表组732(例如,数字仪表、电子仪表组、数字仪表板等)。仪表组732可以包括控制器和/或超级计算机(例如,离散控制器或超级计算机)。仪表组732可包括一组仪表,例如速度表、燃料水平、油压、转速计、里程表、转向指示器、换档位置指示器、(多个)安全带警告灯、(多个)停车制动警告灯、(多个)发动机–故障灯、安全气囊(SRS)系统信息、照明控制、安全系统控制、导航信息等。在一些示例中,可以在信息娱乐系统SoC730和仪表组732之间显示和/或共享信息。换句话说,仪表组732可以被包括作为信息娱乐系统SoC 730的一部分,反之亦然。
图7D是根据本公开的一些实施例的用于图7A的示例自主车辆700和(多个)基于云的服务器之间的通信的系统图。系统776可以包括(多个)服务器778、(多个)网络790和包括车辆700的车辆。(多个)服务器778可以包括多个GPU 784(A)-784(H)(统称为这里称为GPU784)、PCIe交换机782(A)-782(H)(在此统称为PCIe交换机782)和/或CPU 780(A)-780(B)(在此统称为CPU 780)。GPU 784、CPU 780和PCIe交换机可以与高速互连互连,例如但不限于由NVIDIA开发的NVLink接口788和/或PCIe连接786。在一些示例中,GPU 784是通过NVLink和/或NVSwitch SoC连接,并且GPU 784和PCIe交换机782通过PCIe互连连接。尽管示出了八个GPU 784,两个CPU 780和两个PCIe交换机,但是这不是限制性的。根据实施例,每个服务器778可以包括任何数量的GPU 784、CPU 780和/或PCIe交换机。例如,(多个)服务器778可以各自包括八个、十六个、三十二个和/或更多个GPU 784。
(多个)服务器778可以通过(多个)网络790和从车辆接收表示意外或改变的道路状况的图像的图像数据,例如最近开始的道路工作。(多个)服务器778可以通过(多个)网络790向车辆发送神经网络792、更新的神经网络792、和/或地图信息794,包括关于交通和道路状况的信息。对地图信息794的更新可以包括HD地图722的更新,例如关于建筑工地、坑洼、弯路、洪水和/或其他障碍的信息。在一些示例中,神经网络792、更新的神经网络792和/或地图信息794可能来自在从环境中的任何数量的车辆接收的数据中表示的新训练和/或体验,和/或基于在数据中心执行的训练(例如,使用(多个)服务器778和/或其他服务器)。
(多个)服务器778可用于基于训练数据训练机器学习模型(例如,神经网络)。训练数据可以由车辆生成,和/或可以在模拟中生成(例如,使用游戏引擎)。在一些示例中,训练数据被标记(例如,神经网络受益于监督学习)和/或经历其他预处理,而在其他示例中,训练数据未被标记和/或预处理(例如,神经网络不需要监督学习)。一旦机器学习模型被训练,机器学习模型可以由车辆使用(例如,通过(多个)网络790传输到车辆),和/或机器学习模型可以由(多个)服务器778使用以远程监控车辆。
在一些示例中,(多个)服务器778可以从车辆接收数据并将数据应用于最新的实时神经网络以用于实时智能推理。(多个)服务器778可以包括由(多个)GPU 784供电的深度学习超级计算机和/或专用AI计算机,例如由NVIDIA开发的DGX和DGX站机器。然而,在一些示例中,(多个)服务器778可以包括仅使用CPU供电的数据中心的深度学习基础设施。
(多个)服务器778的深度学习基础设施可以能够进行快速、实时的推理,并且可以使用该能力来评估和验证车辆700中的处理器、软件和/或相关硬件的健康状况。例如,深度学习基础设施可以从车辆700接收周期性更新,诸如图像序列和/或车辆700已经在该图像序列中定位的对象(例如,经由计算机视觉和/或其他机器学习对象分类技术)。深度学习基础设施可以运行其自己的神经网络来识别对象并将它们与车辆700识别的对象进行比较,并且如果结果不匹配并且基础设施断定车辆700中的AI发生故障,则(多个)服务器778可以向车辆700发送信号,指示车辆700的故障安全计算机进行控制,通知乘客,并完成安全停车操纵。
对于推理,(多个)服务器778可以包括(多个)GPU 784和一个或多个可编程推理加速器(例如,NVIDIA的TensorRT 3)。GPU驱动的服务器和推理加速的组合可以使实时响应成为可能。在其他示例中,例如在性能不太重要的情况下,由CPU、FPGA和其他处理器供电的服务器可以用于推理。
示例计算设备
图8是适用于实现本公开的一些实施例的示例计算设备800的框图。计算设备800可以包括直接或间接耦合以下设备的总线802:存储器804、一个或多个中央处理单元(CPU)806、一个或多个图形处理单元(GPU)808、通信接口810、输入/输出(I/O)端口812、输入/输出组件814、电源816、以及一个或多个呈现组件818(例如,(多个)显示器)。
尽管图8的各个方框被示出通过总线802与线路连接,这不是限制性的,仅为了清楚起见。例如,在一些实施例中,诸如显示设备的呈现组件818可以被认为是I/O组件814(例如,如果显示器是触摸屏)。作为另一示例,CPU 806和/或GPU 808可以包括存储器(例如,除了GPU 808、CPU 806和/或其他组件的存储器之外,存储器804可以代表存储设备)。换句话说,图8的计算设备仅仅是说明性的。如“工作站”、“服务器”,“笔记本电脑”、“桌面”、“平板电脑”、“客户端设备”、“移动设备”、“手持设备”、“游戏机”、“电子控制单元(ECU)”、“虚拟现实系统”和/或其他设备或系统类型的类别之间没有区别,都考虑在图8的计算设备的范围内。
总线802可以表示一个或多个总线,例如地址总线、数据总线、控制总线或其组合。总线802可以包括一种或多种总线类型,例如工业标准架构(ISA)总线、扩展工业标准架构(EISA)总线、视频电子标准协会(VESA)总线、外围组件互连(PCI)总线、外围组件互连快速(PCIe)总线和/或其他类型的总线。
存储器804可以包括各种计算机可读介质中的任何一种。计算机可读介质可以是可以由计算设备800访问的任何可用介质。计算机可读介质可以包括易失性和非易失性介质,以及可移动和不可移动介质。作为示例而非限制,计算机可读介质可包括计算机存储介质和通信介质。
计算机存储介质可以包括以用于存储诸如计算机可读指令、数据结构、程序模块和/或其他数据类型之类的信息的任何方法或技术实现的易失性和非易失性介质和/或可移动和不可移动介质。例如,存储器804可以存储计算机可读指令(例如,表示(多个)程序和/或(多个)程序元素,例如操作系统。计算机存储介质可以包括但不限于,RAM、ROM、EEPROM、闪存或其他存储技术、CD-ROM、数字通用光盘(DVD)或其他光盘存储器、磁带盒、磁带、磁盘存储器或其他磁存储设备、或可以用于存储期望的信息并且可以由计算设备800访问的任何其他介质。如本文所使用的,计算机存储介质不包括信号本身。
通信介质可以在诸如载波或其他传输机制的已调制数据信号中体现计算机可读指令、数据结构、程序模块和/或其他数据类型,并且包括任何信息传递介质。术语“已调制数据信号”可以指的是以对信号中的信息进行编码的方式设置或改变其一个或多个特征的信号。作为示例而非限制,通信介质可以包括诸如有线网络或直接有线连接的有线介质,以及诸如声学、RF、红外和其他无线介质的无线介质。上述任何组合也应包括在计算机可读介质的范围内。
(多个)CPU 806可以被配置为执行计算机可读指令以控制计算设备800的一个或多个组件以执行本文描述的方法和/或过程中的一个或多个。每个CPU 806可以包括能够同时处理多个软件线程的一个或多个核(例如,一个、两个、四个、八个、二十八个、七十二个等)。(多个)CPU 806可以包括任何类型的处理器,并且可以包括不同类型的处理器,这取决于所实现的计算设备800的类型(例如,用于移动设备的具有较少核的处理器和具有用于服务器的更多核的处理器)。例如,取决于计算设备800的类型,处理器可以是使用精简指令集计算(RISC)实现的ARM处理器或使用复杂指令集计算(CISC)实现的x86处理器。除了一个或多个微处理器或辅助协处理器(例如数学协处理器)之外,计算设备800还可以包括一个或多个CPU 806。
计算设备800可以使用(多个)GPU 808来渲染图形(例如,3D图形)。(多个)GPU 808可以包括数百或数千个能够同时处理数百或数千个软件线程的核。(多个)GPU 808可以响应于渲染命令(例如,经由主机接口接收来自(多个)CPU 806的渲染命令)生成输出图像的像素数据。(多个)GPU 808可以包括用于存储像素数据的图形存储器,例如显示存储器。显示存储器可以被包括作为存储器804的一部分。(多个)GPU708可以包括并行操作的两个或更多个GPU(例如,经由链路)。当组合在一起时,每个GPU 808可以生成用于输出图像的不同部分或用于不同输出图像的像素数据(例如,用于第一图像的第一GPU和用于第二图像的第二GPU)。每个GPU可以包括其自己的存储器,或者可以与其他GPU共享存储器。
在计算设备800不包括(多个)GPU 808的示例中,(多个)CPU 806可以用于渲染图形。
通信接口810可以包括一个或多个接收器、发送器和/或收发器,其使得计算设备700能够经由电子通信网络与其他计算设备通信,包括有线和/或无线通信。通信接口810可以包括用于实现通过多个不同网络中的任何网络进行通信的组件和功能,例如无线网络(例如,Wi-Fi、Z-Wave、蓝牙、蓝牙LE、ZigBee等)、有线网络(例如,通过以太网通信),低功率广域网(例如,LoRaWAN、SigFox等)和/或因特网。
I/O端口812可以使计算设备800能够逻辑地耦合到包括I/O组件814、(多个)呈现组件818和/或其他组件的其他设备,其中一些组件可以内置于(例如,集成在)计算设备800中。说明性I/O组件814包括麦克风、鼠标、键盘、操纵杆、游戏手柄、游戏控制器、卫星天线、扫描仪、打印机、无线设备等。I/O组件814可以提供处理由用户生成的空中手势、语音或其他生理输入的自然用户界面(NUI)。在某些情况下,可以将输入发送到适当的网络元件以进行进一步处理。NUI可以实现语音识别、手写笔识别、面部识别、生物识别、屏幕上和屏幕附近的手势识别、空中手势、头部和眼睛跟踪以及与计算设备800的显示相关联的触摸识别(如下面更详细描述的)的任何组合。计算设备800可以包括深度相机,诸如立体相机系统、红外相机系统、RGB相机系统、触摸屏技术、以及它们的组合,用于手势检测和识别。另外,计算设备800可以包括能够检测运动的加速度计或陀螺仪(例如,作为惯性测量单元(IMU)的一部分)。在一些示例中,加速度计或陀螺仪的输出可以由计算设备800使用以呈现沉浸式增强现实或虚拟现实。
电源816可以包括硬连线电源、电池电源或其组合。电源816可以向计算设备800提供电力以使计算设备800的组件能够操作。
(多个)呈现组件818可以包括显示器(例如,监控器、触摸屏、电视屏幕、抬头显示器(HUD)、其他显示器类型或其组合)、扬声器和/或其他呈现组件。(多个)呈现组件818可以从其他组件(例如,(多个)GPU 808、(多个)CPU 806等)接收数据,并输出数据(例如,作为图像、视频、声音等)。
本公开可以被描述在计算机代码或机器可用指令的一般上下文中,包括诸如程序模块的计算机可执行指令,由计算机或其他机器(诸如个人数据助理或其他手持设备)执行。通常,包括例程、程序、对象、组件、数据结构等的程序模块指代执行特定任务或实现特定抽象数据类型的代码。本公开可以在各种系统配置中实践,包括手持设备、消费电子产品、通用计算机、更多专业计算设备等。本公开还可以在分布式计算环境中实施,其中任务由通过通信网络链接的远程处理设备执行。
如本文所用,关于两个或更多个元素的“和/或”的叙述应该被解释为仅表示一个元素或元素的组合。例如,“元素A、元素B和/或元素C”可以仅包括元素A,仅包括元素B,仅包括元素C、元素A和元素B、元素A和元素C、元素B和元素C、或元素A、B和C。此外,“元素A或元素B中的至少一个”可以包括元素A的至少一个、元素B的至少一个,或元素A的至少一个和元素B的至少一个。此外,“元素A和元素B的至少一个”可以包括元素A的至少一个、元素B的至少一个、或元素A的至少一个和元素B的至少一个。
这里具体描述了本公开的主题以满足法定要求。然而,描述本身并不旨在限制本公开的范围。相反,发明人已经预期所要求保护的主题还可以以其他方式体现,以包括与本文档中描述的步骤类似的不同步骤或步骤组合,结合其他现有或未来技术。此外,尽管这里可以使用术语“步骤”和/或“块”来表示所采用的方法的不同元素,但是这些术语不应被解释为暗示本文公开的各个步骤之中或之间的任何特定顺序,除非当明确描述了各个步骤的顺序时。

Claims (21)

1.一种用于确定车辆的可驾驶自由空间的方法,包括:
接收由物理环境中的所述车辆的一个或多个传感器生成的传感器数据;
通过神经网络的第一流并且基于所述传感器数据计算表示具有一个或更多个维度的阵列,所述一个或更多个维度的至少一个维度具有对应于图像的空间宽度的多个单元,其中沿着所述至少一个维度的至少一个单元中的至少一个值对应于与各自的边界点相对应的像素的高度;
将所述值转换为一组边界点的像素位置,所述一组边界点与将所述物理环境内的可驾驶的自由空间与所述物理环境内的不可驾驶的空间分开的边界相对应;
至少部分地基于所述像素位置,确定与所述一组边界点相对应的所述物理环境内的真实世界位置;
通过所述神经网络的第二流并且至少部分地基于所述传感器数据,计算表示与所述一组边界点的对象类标签相对应的置信度的数据;以及
至少部分地基于所述真实世界位置和所述对象类标签执行一个或多个操作,以用于通过所述物理环境控制所述车辆。
2.如权利要求1所述的方法,其中,所述一组边界点是第一组边界点,所述传感器数据是第一传感器数据,并且所述方法还包括:
利用与来自在所述第一传感器数据之前捕获的第二传感器数据的第二组边界点相对应的第二值,对与所述第一组边界点相对应的第一值进行加权,以计算第三值,其中确定所述物理环境内的所述真实世界位置至少部分地基于所述第三值。
3.如权利要求1所述的方法,还包括:对于所述一组边界点中的至少一个边界点,将滤波器应用于与所述边界点相对应的第一值以生成更新的第一值,所述滤波器加权与所述边界点的至少一个相邻边界点相对应的第二值,其中确定所述物理环境内的所述位置至少部分地基于所述更新的第一值。
4.如权利要求1所述的方法,其中,所述对象类标签包括行人、路缘、障碍或车辆中的至少一个。
5.如权利要求1所述的方法,其中,所述对象类标签包括可通行和/或不可通行。
6.如权利要求1所述的方法,其中,所述神经网络包括卷积神经网络CNN,并且所述CNN对所述至少一个值进行回归。
7.如权利要求6所述的方法,其中,所述传感器数据包括表示具有所述空间宽度的所述图像的图像数据,并且与所述对象类标签相对应的所述置信度针对所述对象类标签的每个对象类标签和针对所述图像的所述列中的每个列而被计算。
8.如权利要求1所述的方法,其中,所述一组边界点是第一组边界点,所述可驾驶的自由空间是第一可驾驶的自由空间,所述不可驾驶的空间是第一不可驾驶的空间,并且该方法还包括:
由所述神经网络的第三流计算由所述传感器数据表示的第二组边界点,所述第二组边界点与将所述物理环境内的第二可驾驶的自由空间与所述物理环境内的第二不可驾驶的空间分开的第二边界相对应。
9.如权利要求1所述的方法,其中,所述传感器数据表示多个列,并且所述一组边界点包括来自所述多个列中的每列的边界点。
10.如权利要求9所述的方法,其中,来自每列的边界点是单个点,并且所述单个点表示从所述传感器数据表示的所述图像的底部向上的、与所述边界相对应的所述列中的第一点。
11.一种用于确定车辆的可驾驶自由空间的方法,包括:接收表示物理环境的训练图像;接收表示与所述训练图像相对应的一个或多个注释的注释数据,所述一个或多个注释包括:边界标签,所述边界标签横跨所述训练图像的宽度延伸并且对应于所述训练图像的每列像素中的至少一个像素,从所述训练图像的底部到顶部所述至少一个像素对应于至少部分地将可驾驶的自由空间与不可驾驶的空间分开的所述物理环境中的第一边界;和与所述边界标签的一个或多个分段相对应的类标签,每个类标签对应于与一个或多个分段相关联的边界类型;并使用一个或多个注释作为地面实况数据来训练神经网络。
12.如权利要求11所述的方法,其中,所述边界标签的所述一个或多个分段中的分段对应于由所述边界类型定义的形状。
13.如权利要求11所述的方法,其中,所述边界标签的所述一个或多个分段中的分段包括沿着与所述边界类型相对应的所述训练图像的部分延伸的直线。
14.如权利要求11所述的方法,其中,所述神经网络的训练包括为来自所述神经网络的具有所述类标签的第一类标签的输出数据比第二类标签的输出数据分配更高的权重,并且使用所述更高的权重调整所述神经网络。
15.如权利要求11所述的方法,其中:所述神经网络计算与所述类标签相对应的第一输出和与所述训练图像内的所述边界标签的位置相对应的第二输出;并且训练所述神经网络包括使用与所述第一输出相关联的第一损失函数和与所述第二输出相关联的第二损失函数。
16.如权利要求15所述的方法,其中训练所述神经网络包括使用所述第一损失函数和所述第二损失函数的加权组合来计算最终损失。
17.一种用于确定车辆的可驾驶自由空间的方法,包括:
接收表示物理环境中的所述车辆的至少一个传感器的视场的图像的传感器数据;
通过神经网络的层的第一子集并且至少部分地基于所述传感器数据,计算第一组边界点,所述第一组边界点与沿着所述图像的整个宽度延伸并且将所述物理环境内的第一可驾驶的自由空间与所述物理环境内的第一不可驾驶的空间分开的可通行边界相对应;
通过所述神经网络的层的第二子集并且至少部分地基于所述传感器数据,计算第二组边界点,所述第二组边界点与沿着所述图像的整个宽度延伸并且将所述物理环境内的第二可驾驶的自由空间与所述物理环境内的第一不可驾驶的空间或第二不可驾驶的空间中的至少一个分开的不可通行边界相对应;以及
至少部分地基于所述可通行边界和所述不可通行边界,执行一个或多个操作,以用于通过所述物理环境控制所述车辆。
18.如权利要求17所述的方法,其中,通过所述物理环境控制所述车辆包括越过所述可通行边界。
19.如权利要求17所述的方法,其中,所述第一组边界点包括针对所述图像的每个像素列的一个点,并且第二组边界点包括针对所述图像的每个像素列的一个点。
20.如权利要求17所述的方法,其中,所述不可通行边界在所述物理环境中比所述可通行边界更远离所述车辆。
21.如权利要求17所述的方法,其中所述神经网络进一步计算表示所述第一组边界点和所述第二组边界点与多个边界类中的至少一个相对应的置信度的数据,所述多个边界类至少包括可通行类和不可通行类。
CN201980000945.4A 2018-03-15 2019-03-15 确定自主车辆的可驾驶自由空间 Active CN110494863B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201862643665P 2018-03-15 2018-03-15
US62/643,665 2018-03-15
PCT/US2019/022592 WO2019178548A1 (en) 2018-03-15 2019-03-15 Determining drivable free-space for autonomous vehicles

Publications (2)

Publication Number Publication Date
CN110494863A CN110494863A (zh) 2019-11-22
CN110494863B true CN110494863B (zh) 2024-02-09

Family

ID=67905615

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980000945.4A Active CN110494863B (zh) 2018-03-15 2019-03-15 确定自主车辆的可驾驶自由空间

Country Status (4)

Country Link
US (2) US11537139B2 (zh)
CN (1) CN110494863B (zh)
DE (1) DE112019000048T5 (zh)
WO (1) WO2019178548A1 (zh)

Families Citing this family (108)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
BR112020001042A2 (pt) * 2017-07-20 2020-07-21 Nissan Motor Co., Ltd. método de controle de deslocamento de veículo e dispositivo de controle de deslocamento de veículo
CN111247565B (zh) * 2017-09-06 2022-06-03 瑞士再保险有限公司 用于移动远程信息处理装置的电子日志记录和跟踪检测系统及其对应方法
JP6918425B2 (ja) * 2017-11-09 2021-08-11 株式会社Mobility Technologies 撮影画像に含まれる境界線を検出するための装置、方法、及びプログラム
WO2019136375A1 (en) 2018-01-07 2019-07-11 Nvidia Corporation Guiding vehicles through vehicle maneuvers using machine learning models
CN110352153A (zh) 2018-02-02 2019-10-18 辉达公司 自主车辆中用于障碍物躲避的安全程序分析
US11537139B2 (en) 2018-03-15 2022-12-27 Nvidia Corporation Determining drivable free-space for autonomous vehicles
US11080590B2 (en) 2018-03-21 2021-08-03 Nvidia Corporation Stereo depth estimation using deep neural networks
JP7351293B2 (ja) * 2018-03-29 2023-09-27 ソニーグループ株式会社 信号処理装置、および信号処理方法、プログラム、並びに移動体
JP7077726B2 (ja) * 2018-04-02 2022-05-31 株式会社デンソー 車両システム、空間領域推測方法及び空間領域推測装置
US11480971B2 (en) * 2018-05-01 2022-10-25 Honda Motor Co., Ltd. Systems and methods for generating instructions for navigating intersections with autonomous vehicles
DE102018212916A1 (de) * 2018-08-02 2020-02-06 Bayerische Motoren Werke Aktiengesellschaft Bestimmung eines Verlaufs einer Fahrspur
US10839230B2 (en) * 2018-09-06 2020-11-17 Ford Global Technologies, Llc Multi-tier network for task-oriented deep neural network
US11783707B2 (en) 2018-10-09 2023-10-10 Ford Global Technologies, Llc Vehicle path planning
US11110918B2 (en) * 2018-11-02 2021-09-07 Zoox, Inc. Dynamic collision checking
US11610115B2 (en) 2018-11-16 2023-03-21 Nvidia Corporation Learning to generate synthetic datasets for training neural networks
US10823855B2 (en) * 2018-11-19 2020-11-03 Fca Us Llc Traffic recognition and adaptive ground removal based on LIDAR point cloud statistics
US11010907B1 (en) * 2018-11-27 2021-05-18 Zoox, Inc. Bounding box selection
US10936902B1 (en) 2018-11-27 2021-03-02 Zoox, Inc. Training bounding box selection
US11151391B2 (en) * 2018-12-10 2021-10-19 Here Global B.V. Method and apparatus for creating a visual map without dynamic content
US11521010B2 (en) * 2019-01-23 2022-12-06 Motional Ad Llc Automatically choosing data samples for annotation
US10762393B2 (en) * 2019-01-31 2020-09-01 StradVision, Inc. Learning method and learning device for learning automatic labeling device capable of auto-labeling image of base vehicle using images of nearby vehicles, and testing method and testing device using the same
US11520345B2 (en) 2019-02-05 2022-12-06 Nvidia Corporation Path perception diversity and redundancy in autonomous machine applications
KR20200106102A (ko) * 2019-02-21 2020-09-11 현대자동차주식회사 저비용 자율 주행 셔틀 운행 방법 및 장치
CN113811886B (zh) 2019-03-11 2024-03-19 辉达公司 自主机器应用中的路口检测和分类
WO2020185234A1 (en) * 2019-03-14 2020-09-17 Hewlett-Packard Development Company, L.P. Preprocessing sensor data for machine learning
US11704573B2 (en) * 2019-03-25 2023-07-18 Here Global B.V. Method, apparatus, and computer program product for identifying and compensating content contributors
US11169513B2 (en) * 2019-03-29 2021-11-09 Tusimple, Inc. Operational testing of autonomous vehicles
US11157004B2 (en) * 2019-04-01 2021-10-26 GM Global Technology Operations LLC Real-time control system for a vehicle and a method of executing control of the vehicle via the real-time control system
US11161500B1 (en) 2019-05-13 2021-11-02 GM Cruise Holdings, LLC Advanced passenger safety for an autonomous vehicle
DE102019206990B4 (de) * 2019-05-14 2020-12-10 Zf Friedrichshafen Ag Generieren einer Umgebungskarte eines Fahrzeugs
US11080884B2 (en) * 2019-05-15 2021-08-03 Matterport, Inc. Point tracking using a trained network
US11460851B2 (en) 2019-05-24 2022-10-04 Ford Global Technologies, Llc Eccentricity image fusion
US11067786B2 (en) * 2019-06-07 2021-07-20 Leica Microsystems Inc. Artifact regulation methods in deep model training for image transformation
US11521494B2 (en) 2019-06-11 2022-12-06 Ford Global Technologies, Llc Vehicle eccentricity mapping
US11032150B2 (en) * 2019-06-17 2021-06-08 International Business Machines Corporation Automatic prediction of behavior and topology of a network using limited information
KR102246661B1 (ko) * 2019-06-25 2021-05-03 엘지전자 주식회사 음성 인에이블 디바이스 선택 방법 및 장치
US11294385B2 (en) * 2019-06-28 2022-04-05 Robert Bosch Gmbh System and method for generating a representation of an environment
US11662741B2 (en) * 2019-06-28 2023-05-30 Ford Global Technologies, Llc Vehicle visual odometry
US11455806B2 (en) * 2019-07-10 2022-09-27 Deka Products Limited Partnership System and method for free space estimation
US10956776B2 (en) 2019-08-06 2021-03-23 Alibaba Group Holding Limited 2D convolutional accelerator that generates 3D results
US11482015B2 (en) * 2019-08-09 2022-10-25 Otobrite Electronics Inc. Method for recognizing parking space for vehicle and parking assistance system using the method
DE102019129737A1 (de) * 2019-09-30 2021-04-01 Bayerische Motoren Werke Aktiengesellschaft Verfahren zum Klassifizieren einer Umgebung eines Fahrzeugs
US11550324B2 (en) * 2019-09-30 2023-01-10 Zoox, Inc. Parking zone detection for vehicles
EP3806065A1 (en) * 2019-10-11 2021-04-14 Aptiv Technologies Limited Method and system for determining an attribute of an object at a pre-determined time point
WO2021072720A1 (zh) * 2019-10-17 2021-04-22 深圳市大疆创新科技有限公司 获取雷达位置的方法、雷达以及可移动平台
US11514594B2 (en) * 2019-10-30 2022-11-29 Vergence Automation, Inc. Composite imaging systems using a focal plane array with in-pixel analog storage elements
US10839242B1 (en) * 2019-11-12 2020-11-17 Raymond Wu Single-chip solution with smart recognition by feature extraction of embedded image sensor
US11462023B2 (en) * 2019-11-14 2022-10-04 Toyota Research Institute, Inc. Systems and methods for 3D object detection
US11885907B2 (en) * 2019-11-21 2024-01-30 Nvidia Corporation Deep neural network for detecting obstacle instances using radar sensors in autonomous machine applications
US11861485B2 (en) * 2019-11-22 2024-01-02 Baidu Usa Llc Data format transform method to improve AI engine MAC utilization
US11543534B2 (en) * 2019-11-22 2023-01-03 Samsung Electronics Co., Ltd. System and method for three-dimensional object detection
EP3832525A1 (en) * 2019-12-03 2021-06-09 Aptiv Technologies Limited Vehicles, systems, and methods for determining an entry of an occupancy map of a vicinity of a vehicle
WO2021118809A1 (en) * 2019-12-11 2021-06-17 Nvidia Corporation Surface profile estimation and bump detection for autonomous machine applications
US11775867B1 (en) * 2019-12-18 2023-10-03 System Inc. System and methods for evaluating machine learning models
US11741336B2 (en) * 2019-12-19 2023-08-29 Google Llc Generating and/or using training instances that include previously captured robot vision data and drivability labels
KR20210080717A (ko) * 2019-12-20 2021-07-01 주식회사 만도 운전자 보조 장치 및 운전자 보조 방법
US11180165B2 (en) * 2019-12-26 2021-11-23 Baidu Usa Llc Autonomous driving vehicle three-point turn
CN111145277A (zh) * 2019-12-31 2020-05-12 山东浪潮人工智能研究院有限公司 一种深度语义感知与bpg压缩工具的图像压缩方法
DE112020006410T5 (de) * 2019-12-31 2022-10-27 Nvidia Corporation Dreidimensionale kreuzungsstrukturvorhersage für anwendungen zum autonomen fahren
US11687778B2 (en) 2020-01-06 2023-06-27 The Research Foundation For The State University Of New York Fakecatcher: detection of synthetic portrait videos using biological signals
CN111242000A (zh) * 2020-01-09 2020-06-05 电子科技大学 一种结合激光点云转向的道路边沿检测方法
EP4246276A3 (en) * 2020-01-23 2023-11-08 The Toro Company Nonholonomic robot field coverage method
DE102020201369A1 (de) 2020-02-05 2021-08-05 Robert Bosch Gesellschaft mit beschränkter Haftung Verfahren und Vorrichtung zur Bahnplanung für einen autonomen Agenten
CN111338336B (zh) * 2020-02-11 2021-07-13 腾讯科技(深圳)有限公司 一种自动驾驶方法及装置
DE102020201939A1 (de) 2020-02-17 2021-08-19 Robert Bosch Gesellschaft mit beschränkter Haftung Verfahren und Vorrichtung zur Bewertung eines Bildklassifikators
CN111401421A (zh) * 2020-03-06 2020-07-10 上海眼控科技股份有限公司 基于深度学习的图像类别判定方法、电子设备以及介质
EP3882813A1 (en) 2020-03-20 2021-09-22 Aptiv Technologies Limited Method for generating a dynamic occupancy grid
CN111409455A (zh) * 2020-03-26 2020-07-14 北京汽车集团有限公司 车辆的速度控制方法及装置、电子设备、存储介质
US11458994B2 (en) 2020-03-30 2022-10-04 Toyota Research Institute, Inc. Systems and methods for semi-autonomously controlling a vehicle
JP7429143B2 (ja) * 2020-03-30 2024-02-07 本田技研工業株式会社 移動体制御装置、移動体制御方法、およびプログラム
US11535246B2 (en) * 2020-03-30 2022-12-27 Denso Corporation Systems and methods for providing a warning to an occupant of a vehicle
EP3905106A1 (en) 2020-04-27 2021-11-03 Aptiv Technologies Limited Method for determining a drivable area
EP3905105A1 (en) * 2020-04-27 2021-11-03 Aptiv Technologies Limited Method for determining a collision free space
CN111694019A (zh) * 2020-05-13 2020-09-22 华南理工大学 一种基于激光雷达和端到端控制算法的智能行驶教育方法
CN111634233A (zh) * 2020-05-25 2020-09-08 杭州鸿泉物联网技术股份有限公司 一种安全驾驶系统和方法
CN111812674B (zh) * 2020-06-08 2024-04-05 北京经纬恒润科技股份有限公司 激光雷达仿真方法及装置
DE102020117812A1 (de) 2020-07-07 2022-01-13 Bayerische Motoren Werke Aktiengesellschaft Verfahren zum Bereitstellen einer Einrichtung zur Vorhersage von Fehlern beim Verarbeiten von Bilddaten, Einrichtung zum Vorhersagen von Segmentierungsfehlern und Kraftfahrzeug
US20220012506A1 (en) * 2020-07-13 2022-01-13 Wisense Technologies Ltd. System and method of segmenting free space based on electromagnetic waves
KR102427463B1 (ko) * 2020-07-16 2022-08-01 주식회사 비젼그리드 자율주행을 위한 영상추적을 이용한 거리 측정 방법 및 장치
KR20220025585A (ko) * 2020-08-24 2022-03-03 삼성전자주식회사 위치 추정 방법 및 장치
CN114115211A (zh) * 2020-08-26 2022-03-01 深圳市杉川机器人有限公司 一种自移动设备及系统及建立工作区域地图的方法
US11715007B2 (en) * 2020-08-28 2023-08-01 UMNAI Limited Behaviour modeling, verification, and autonomous actions and triggers of ML and AI systems
US11615544B2 (en) 2020-09-15 2023-03-28 Toyota Research Institute, Inc. Systems and methods for end-to-end map building from a video sequence using neural camera models
US11508080B2 (en) 2020-09-15 2022-11-22 Toyota Research Institute, Inc. Systems and methods for generic visual odometry using learned features via neural camera models
US11494927B2 (en) 2020-09-15 2022-11-08 Toyota Research Institute, Inc. Systems and methods for self-supervised depth estimation
US11321862B2 (en) 2020-09-15 2022-05-03 Toyota Research Institute, Inc. Systems and methods for multi-camera modeling with neural camera networks
US11521394B2 (en) * 2020-10-09 2022-12-06 Motional Ad Llc Ground plane estimation using LiDAR semantic network
DE102020128952A1 (de) 2020-11-03 2022-05-05 Bayerische Motoren Werke Aktiengesellschaft Verfahren und Assistenzeinrichtung zur zweistufigen bildbasierten Szenenerkennung und Kraftfahrzeug
DE102020129715A1 (de) 2020-11-11 2022-05-12 Connaught Electronics Ltd. Führen eines Kraftfahrzeugs basierend auf einer Freiraumkarte
EP4001962A1 (en) * 2020-11-23 2022-05-25 Aptiv Technologies Limited Free space determining device, free space determining method and free space determining program
EP4009228A1 (en) * 2020-12-02 2022-06-08 Aptiv Technologies Limited Method for determining a semantic free space
CN112268564B (zh) * 2020-12-25 2021-03-02 中国人民解放军国防科技大学 一种无人机降落空间位置和姿态端到端估计方法
CN112668460A (zh) * 2020-12-25 2021-04-16 北京百度网讯科技有限公司 目标检测方法、电子设备、路侧设备和云控平台
CN112862858A (zh) * 2021-01-14 2021-05-28 浙江大学 一种基于场景运动信息的多目标跟踪方法
DE102021101118A1 (de) 2021-01-20 2022-07-21 Bayerische Motoren Werke Aktiengesellschaft Verfahren zur Fehlervorhersage einer semantischen Segmentierung von Bilddaten, Assistenzeinrichtung und Kraftfahrzeug
CN113052009A (zh) * 2021-03-02 2021-06-29 北京经纬恒润科技股份有限公司 一种车辆防撞方法、模型训练方法及装置
CN113189986B (zh) * 2021-04-16 2023-03-14 中国人民解放军国防科技大学 一种自主机器人的二阶段自适应行为规划方法及系统
DE102021110069A1 (de) 2021-04-21 2022-10-27 Bayerische Motoren Werke Aktiengesellschaft Verfahren, Assistenzeinrichtung und Kraftfahrzeug zum semantischen Segmentieren eines digitalen Bildes und Verfahren zum Bereitstellen eines Korrekturmodells für die semantische Segmentierung
US11703870B2 (en) * 2021-05-11 2023-07-18 Toyota Research Institute, Inc. Method for computing maneuvers drivable space using piecewise semantic aggregation of trajectories
US20230069413A1 (en) * 2021-09-01 2023-03-02 Wipro Limited System and method for providing assistance to vehicle occupants
DE102021211465A1 (de) 2021-10-12 2023-04-13 Robert Bosch Gesellschaft mit beschränkter Haftung Verfahren zum Generieren einer Kartendarstellung für Fahrzeuge mit integrierter Freiflächeninformation
US20230144745A1 (en) * 2021-11-09 2023-05-11 Zoox, Inc. Machine-learned architecture for efficient object attribute and/or intention classification
LU500855B1 (de) * 2021-11-15 2023-05-15 Phoenix Contact E Mobility Gmbh Ladesteckverbinder, Verfahren zur Bestimmung der räumlichen Lage eines Ladesteckverbinders, und Ladestation mit einem Ladesteckverbinder
US20230159054A1 (en) * 2021-11-24 2023-05-25 Motional Ad Llc Encoding homotopy constraints in spatio-temporal grids
CN114663397B (zh) * 2022-03-22 2023-05-23 小米汽车科技有限公司 可行驶区域的检测方法、装置、设备及存储介质
CN114734482B (zh) * 2022-04-06 2024-01-12 深圳市普渡科技有限公司 道路识别功能的测试方法、计算机设备和存储介质
US20230413711A1 (en) * 2022-06-23 2023-12-28 Deere & Company Modifying Vehicle Behavior based on Boundary Type
CN116400605B (zh) * 2023-06-08 2023-08-11 成都航空职业技术学院 一种机器人自动控制方法及系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106599767A (zh) * 2015-10-16 2017-04-26 福特全球技术公司 虚拟环境中的车道边界检测数据生成
CN107169421A (zh) * 2017-04-20 2017-09-15 华南理工大学 一种基于深度卷积神经网络的汽车驾驶场景目标检测方法
CN107609602A (zh) * 2017-09-28 2018-01-19 吉林大学 一种基于卷积神经网络的驾驶场景分类方法

Family Cites Families (155)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US1007269A (en) 1910-11-14 1911-10-31 Matthew Clarke Compound measuring instrument.
US6963661B1 (en) 1999-09-09 2005-11-08 Kabushiki Kaisha Toshiba Obstacle detection system and method therefor
US7852462B2 (en) 2000-05-08 2010-12-14 Automotive Technologies International, Inc. Vehicular component control methods based on blind spot monitoring
AU2003225228A1 (en) 2002-05-03 2003-11-17 Donnelly Corporation Object detection system for vehicle
US7068815B2 (en) 2003-06-13 2006-06-27 Sarnoff Corporation Method and apparatus for ground detection and removal in vision systems
US7409295B2 (en) 2004-08-09 2008-08-05 M/A-Com, Inc. Imminent-collision detection system and process
US8164628B2 (en) 2006-01-04 2012-04-24 Mobileye Technologies Ltd. Estimating distance to an object using a sequence of images recorded by a monocular camera
KR20080051302A (ko) 2006-12-05 2008-06-11 삼성전자주식회사 사용자 단말장치 및 영상표시장치 그리고 그들의 광원 조정방법
EP1930863B1 (en) 2006-12-06 2011-08-03 Mobileye Technologies Limited Detecting and recognizing traffic signs
EP2674324B1 (en) 2007-04-30 2018-12-26 Mobileye Vision Technologies Ltd. Rear obstruction detection
JP4457136B2 (ja) 2007-09-27 2010-04-28 日立オートモティブシステムズ株式会社 走行制御システム
US20090097704A1 (en) 2007-10-10 2009-04-16 Micron Technology, Inc. On-chip camera system for multiple object tracking and identification
JP4462333B2 (ja) 2007-11-13 2010-05-12 株式会社デンソー 走行支援装置
US8379926B2 (en) 2007-12-13 2013-02-19 Clemson University Vision based real time traffic monitoring
US8204542B2 (en) 2008-03-21 2012-06-19 Mediatek Inc. Methods for processing apparatus originated communication request and communication apparatuses utilizing the same
CA2721375C (en) 2008-04-14 2016-11-29 Google Inc. Panning using virtual surfaces
US8570333B2 (en) 2008-12-11 2013-10-29 Nvidia Corporation Method and system for enabling managed code-based application program to access graphics processing unit
DE102009028743B4 (de) 2009-08-20 2011-06-09 Robert Bosch Gmbh Verfahren und Steuergerät zur Entzerrung eines Kamerabildes
US8861842B2 (en) * 2010-02-05 2014-10-14 Sri International Method and apparatus for real-time pedestrian detection for urban driving
KR101717787B1 (ko) 2010-04-29 2017-03-17 엘지전자 주식회사 디스플레이장치 및 그의 음성신호 출력 방법
KR101225626B1 (ko) 2010-07-19 2013-01-24 포항공과대학교 산학협력단 차선 인식 시스템 및 방법
US8587583B2 (en) 2011-01-31 2013-11-19 Microsoft Corporation Three-dimensional environment reconstruction
US9098751B2 (en) 2011-07-27 2015-08-04 Gentex Corporation System and method for periodic lane marker identification and tracking
US10027952B2 (en) 2011-08-04 2018-07-17 Trx Systems, Inc. Mapping and tracking system with features in three-dimensional space
KR101861742B1 (ko) 2011-08-30 2018-05-30 삼성전자주식회사 이종의 가속기들 사이에서 스위칭할 수 있는 데이터 처리 시스템과 그 방법
US8970701B2 (en) 2011-10-21 2015-03-03 Mesa Engineering, Inc. System and method for predicting vehicle location
US9471988B2 (en) 2011-11-02 2016-10-18 Google Inc. Depth-map generation for an input image using an example approximate depth-map associated with an example similar image
GB2506338A (en) 2012-07-30 2014-04-02 Sony Comp Entertainment Europe A method of localisation and mapping
US9225942B2 (en) 2012-10-11 2015-12-29 GM Global Technology Operations LLC Imaging surface modeling for camera modeling and virtual view synthesis
US9489635B1 (en) 2012-11-01 2016-11-08 Google Inc. Methods and systems for vehicle perception feedback to classify data representative of types of objects and to request feedback regarding such classifications
JP6013884B2 (ja) 2012-11-08 2016-10-25 日立オートモティブシステムズ株式会社 物体検出装置及び物体検出方法
DE102013208521B4 (de) 2013-05-08 2022-10-13 Bayerische Motoren Werke Aktiengesellschaft Kollektives Erlernen eines hochgenauen Straßenmodells
CN104424466B (zh) 2013-08-21 2018-05-15 佳能株式会社 对象检测方法、对象检测设备及图像拾取设备
US9098323B2 (en) 2013-09-05 2015-08-04 Nvidia Corporation Simultaneous utilization of a first graphics processing unit (GPU) and a second GPU of a computing platform through a virtual machine (VM) in a shared mode and a dedicated mode respectively
US9373057B1 (en) 2013-11-01 2016-06-21 Google Inc. Training a neural network to detect objects in images
US9742869B2 (en) 2013-12-09 2017-08-22 Nvidia Corporation Approach to adaptive allocation of shared resources in computer systems
EP2950175B1 (de) 2014-05-27 2021-03-31 dSPACE digital signal processing and control engineering GmbH Verfahren und Vorrichtung zum Testen eines Steuergerätes
US9665802B2 (en) * 2014-11-13 2017-05-30 Nec Corporation Object-centric fine-grained image classification
US10262213B2 (en) 2014-12-16 2019-04-16 Here Global B.V. Learning lanes from vehicle probes
US9721471B2 (en) 2014-12-16 2017-08-01 Here Global B.V. Learning lanes from radar data
CN111351495A (zh) 2015-02-10 2020-06-30 御眼视觉技术有限公司 服务器系统、方法及机器可读介质
US9811756B2 (en) * 2015-02-23 2017-11-07 Mitsubishi Electric Research Laboratories, Inc. Method for labeling images of street scenes
US11630800B2 (en) 2015-05-01 2023-04-18 Nvidia Corporation Programmable vision accelerator
WO2016183074A1 (en) 2015-05-10 2016-11-17 Mobileye Vision Technologies Ltd. Road profile along a predicted path
US10366534B2 (en) 2015-06-10 2019-07-30 Microsoft Technology Licensing, Llc Selective surface mesh regeneration for 3-dimensional renderings
US9710714B2 (en) 2015-08-03 2017-07-18 Nokia Technologies Oy Fusion of RGB images and LiDAR data for lane classification
US10282591B2 (en) 2015-08-24 2019-05-07 Qualcomm Incorporated Systems and methods for depth map sampling
US9767565B2 (en) 2015-08-26 2017-09-19 Digitalglobe, Inc. Synthesizing training data for broad area geospatial object detection
US10002471B2 (en) 2015-09-30 2018-06-19 Ants Technology (Hk) Limited Systems and methods for autonomous vehicle navigation
GB2543749A (en) 2015-10-21 2017-05-03 Nokia Technologies Oy 3D scene rendering
US9741125B2 (en) 2015-10-28 2017-08-22 Intel Corporation Method and system of background-foreground segmentation for image processing
US9990766B2 (en) 2015-10-29 2018-06-05 Intelligent Fusion Technology, Inc Method and system for predicting collision probability of space objects via graphics processing unit
DE102015221920A1 (de) 2015-11-09 2017-05-11 Bayerische Motoren Werke Aktiengesellschaft Verfahren, Computerprogrammprodukt, Vorrichtung, und Fahrzeug umfassend die Vorrichtung zum Steuern einer Trajektorienplanung eines Egofahrzeugs
EP3171297A1 (en) 2015-11-18 2017-05-24 CentraleSupélec Joint boundary detection image segmentation and object recognition using deep learning
DE102015225472A1 (de) 2015-12-16 2017-06-22 Robert Bosch Gmbh Verfahren und Vorrichtung zum Erstellen einer Karte
DE102015226762B4 (de) 2015-12-28 2024-04-25 Robert Bosch Gmbh Verfahren zur Korrektur mindestens eines Kollisionsparameters und korrespondierendes integriertes Sicherheitssystem für ein Fahrzeug
US10134278B1 (en) 2016-01-22 2018-11-20 State Farm Mutual Automobile Insurance Company Autonomous vehicle application
US9996771B2 (en) 2016-02-15 2018-06-12 Nvidia Corporation System and method for procedurally synthesizing datasets of objects of interest for training machine-learning models
US9802599B2 (en) 2016-03-08 2017-10-31 Ford Global Technologies, Llc Vehicle lane placement
JP6575818B2 (ja) 2016-03-25 2019-09-18 パナソニックIpマネジメント株式会社 運転支援方法およびそれを利用した運転支援装置、自動運転制御装置、車両、運転支援システム、プログラム
WO2017177128A1 (en) 2016-04-08 2017-10-12 The Trustees Of Columbia University In The City Of New York Systems and methods for deep reinforcement learning using a brain-artificial intelligence interface
US9896096B2 (en) 2016-04-11 2018-02-20 David E. Newman Systems and methods for hazard mitigation
US10032067B2 (en) 2016-05-28 2018-07-24 Samsung Electronics Co., Ltd. System and method for a unified architecture multi-task deep learning machine for object recognition
US10176389B2 (en) 2016-06-09 2019-01-08 International Business Machines Corporation Methods and systems for moving traffic obstacle detection
CN106114507B (zh) 2016-06-21 2018-04-03 百度在线网络技术(北京)有限公司 用于智能车辆的局部轨迹规划方法和装置
WO2017220705A1 (en) 2016-06-24 2017-12-28 Jaguar Land Rover Limited Control system for a vehicle
JP6997106B2 (ja) 2016-06-27 2022-01-17 モービルアイ ビジョン テクノロジーズ リミテッド 車両をナビゲートするためのシステム、方法およびコンピュータプログラム
US10078335B2 (en) 2016-06-28 2018-09-18 Toyota Motor Engineering & Manufacturing North America, Inc. Ray tracing for hidden obstacle detection
US10489972B2 (en) 2016-06-28 2019-11-26 Cognata Ltd. Realistic 3D virtual world creation and simulation for training automated driving systems
US10829116B2 (en) 2016-07-01 2020-11-10 nuTonomy Inc. Affecting functions of a vehicle based on function-related information about its environment
JP7001596B2 (ja) 2016-07-26 2022-02-03 株式会社カネカ 3hh単位含有共重合phaを生産する形質転換体、及び当該phaの製造方法
GB2553782B (en) 2016-09-12 2021-10-20 Niantic Inc Predicting depth from image data using a statistical model
US10127670B2 (en) 2016-09-27 2018-11-13 Xactware Solutions, Inc. Computer vision systems and methods for detecting and modeling features of structures in images
US10289469B2 (en) 2016-10-28 2019-05-14 Nvidia Corporation Reliability enhancement utilizing speculative execution systems and methods
US20180136332A1 (en) 2016-11-15 2018-05-17 Wheego Electric Cars, Inc. Method and system to annotate objects and determine distances to objects in an image
US20180158244A1 (en) 2016-12-02 2018-06-07 Ayotle Virtual sensor configuration
CN110062934B (zh) 2016-12-02 2023-09-01 谷歌有限责任公司 使用神经网络确定图像中的结构和运动
US11761790B2 (en) 2016-12-09 2023-09-19 Tomtom Global Content B.V. Method and system for image-based positioning and mapping for a road network utilizing object detection
KR20180068511A (ko) 2016-12-14 2018-06-22 삼성전자주식회사 영상에 포함된 도로와 관련된 정보를 결정하는 뉴럴 네트워크를 학습시키는 학습 데이터를 생성하는 장치 및 방법
CN111542860A (zh) 2016-12-30 2020-08-14 迪普迈普有限公司 用于自主车辆的高清地图的标志和车道创建
US10380886B2 (en) 2017-05-17 2019-08-13 Cavh Llc Connected automated vehicle highway systems and methods
US10691847B2 (en) 2017-01-13 2020-06-23 Sap Se Real-time damage determination of an asset
US11288595B2 (en) * 2017-02-14 2022-03-29 Groq, Inc. Minimizing memory and processor consumption in creating machine learning models
US10209718B2 (en) 2017-03-14 2019-02-19 Starsky Robotics, Inc. Vehicle sensor system and method of use
US11899669B2 (en) 2017-03-20 2024-02-13 Carnegie Mellon University Searching of data structures in pre-processing data for a machine learning classifier
DE102017205093A1 (de) 2017-03-27 2018-09-27 Conti Temic Microelectronic Gmbh Verfahren und System zur Vorhersage von Sensorsignalen eines Fahrzeugs
US10248890B2 (en) 2017-04-13 2019-04-02 Facebook, Inc. Panoramic camera systems
GB201706129D0 (en) 2017-04-18 2017-05-31 Blue Vision Labs Uk Ltd Distributed device mapping
US10460180B2 (en) * 2017-04-20 2019-10-29 GM Global Technology Operations LLC Systems and methods for visual classification with region proposals
US10328578B2 (en) 2017-04-21 2019-06-25 X Development Llc Methods and systems for detecting, recognizing, and localizing pallets
US10108867B1 (en) * 2017-04-25 2018-10-23 Uber Technologies, Inc. Image-based pedestrian detection
US20180349746A1 (en) 2017-05-31 2018-12-06 Uber Technologies, Inc. Top-View Lidar-Based Object Detection
US10310087B2 (en) 2017-05-31 2019-06-04 Uber Technologies, Inc. Range-view LIDAR-based object detection
US10007269B1 (en) 2017-06-23 2018-06-26 Uber Technologies, Inc. Collision-avoidance system for autonomous-capable vehicle
US11214273B2 (en) 2017-06-23 2022-01-04 Nvidia Corporation Method of using a single controller (ECU) for a fault-tolerant/fail-operational self-driving system
US20180373980A1 (en) * 2017-06-27 2018-12-27 drive.ai Inc. Method for training and refining an artificial intelligence
KR102499398B1 (ko) 2017-08-09 2023-02-13 삼성전자 주식회사 차선 검출 방법 및 장치
US11188794B2 (en) * 2017-08-10 2021-11-30 Intel Corporation Convolutional neural network framework using reverse connections and objectness priors for object detection
US10339669B2 (en) 2017-08-22 2019-07-02 Here Global B.V. Method, apparatus, and system for a vertex-based evaluation of polygon similarity
US11487988B2 (en) 2017-08-31 2022-11-01 Ford Global Technologies, Llc Augmenting real sensor recordings with simulated sensor data
US10282995B2 (en) 2017-09-05 2019-05-07 Starship Technologies Oü Mobile robot having collision avoidance system for crossing a road from a pedestrian pathway
US10546387B2 (en) 2017-09-08 2020-01-28 Qualcomm Incorporated Pose determination with semantic segmentation
KR102026697B1 (ko) 2017-09-21 2019-09-30 엘지전자 주식회사 주행 시스템 및 차량
US10612932B2 (en) 2017-09-29 2020-04-07 Wipro Limited Method and system for correcting a pre-generated navigation path for an autonomous vehicle
US10579897B2 (en) * 2017-10-02 2020-03-03 Xnor.ai Inc. Image based object detection
US10997491B2 (en) 2017-10-04 2021-05-04 Huawei Technologies Co., Ltd. Method of prediction of a state of an object in the environment using an action model of a neural network
US20190120640A1 (en) 2017-10-19 2019-04-25 rideOS Autonomous vehicle routing
US10599546B1 (en) 2017-10-25 2020-03-24 Uatc, Llc Autonomous vehicle testing systems and methods
US20190129831A1 (en) 2017-10-27 2019-05-02 Uber Technologies, Inc. Autonomous Vehicle Simulation Testing Systems and Methods
US10935978B2 (en) 2017-10-30 2021-03-02 Nio Usa, Inc. Vehicle self-localization using particle filters and visual odometry
US10580158B1 (en) 2017-11-03 2020-03-03 Zoox, Inc. Dense depth estimation of image data
CN111587407B (zh) 2017-11-10 2024-01-23 辉达公司 用于安全且可靠的自主车辆的系统和方法
US11061402B2 (en) 2017-11-15 2021-07-13 Uatc, Llc Sparse convolutional neural networks
US11017550B2 (en) 2017-11-15 2021-05-25 Uatc, Llc End-to-end tracking of objects
US11062461B2 (en) 2017-11-16 2021-07-13 Zoox, Inc. Pose determination from contact points
US10762396B2 (en) 2017-12-05 2020-09-01 Utac, Llc Multiple stage image based object detection and recognition
EP3607744A4 (en) 2017-12-08 2020-04-29 Baidu.com Times Technology (Beijing) Co., Ltd. DEPTH DETECTION IN A STEREO CAMERA WITH HARDWARE ACCELERATOR
US20190179979A1 (en) 2017-12-13 2019-06-13 Uber Technologies, Inc. Simulated Sensor Testing
US10629069B2 (en) 2017-12-14 2020-04-21 Here Global B.V. Method and apparatus for providing a localized link-centric metric for directional traffic propagation
US10636219B2 (en) 2017-12-22 2020-04-28 Magic Leap, Inc. Viewpoint dependent brick selection for fast volumetric reconstruction
WO2019136375A1 (en) 2018-01-07 2019-07-11 Nvidia Corporation Guiding vehicles through vehicle maneuvers using machine learning models
US11150663B2 (en) 2018-01-26 2021-10-19 Nvidia Corporation Detection of hazardous driving using machine learning
CN110352153A (zh) 2018-02-02 2019-10-18 辉达公司 自主车辆中用于障碍物躲避的安全程序分析
US11789449B2 (en) 2018-02-09 2023-10-17 Nvidia Corporation Controlling autonomous vehicles using safe arrival times
US20190251442A1 (en) 2018-02-14 2019-08-15 Nvidia Corporation Pruning convolutional neural networks
US10816978B1 (en) 2018-02-22 2020-10-27 Msc.Software Corporation Automated vehicle artificial intelligence training based on simulations
JP6761828B2 (ja) 2018-03-05 2020-09-30 日本電信電話株式会社 柱状物体状態検出装置、柱状物体状態検出方法、柱状物体状態検出処理プログラム
US10157331B1 (en) 2018-03-08 2018-12-18 Capital One Services, Llc Systems and methods for image preprocessing to improve accuracy of object recognition
US11537139B2 (en) 2018-03-15 2022-12-27 Nvidia Corporation Determining drivable free-space for autonomous vehicles
DE112018007287T5 (de) 2018-03-15 2020-12-10 Harman International Industries, Incorporated Fahrzeugsystem und -verfahren zum erfassen von objekten und einer objektentfernung
US10776985B2 (en) 2018-03-17 2020-09-15 Nvidia Corporation Reflection denoising in ray-tracing applications
US11080590B2 (en) 2018-03-21 2021-08-03 Nvidia Corporation Stereo depth estimation using deep neural networks
WO2019191313A1 (en) 2018-03-27 2019-10-03 Nvidia Corporation Remote operation of vehicles using immersive virtual reality environments
US10586456B2 (en) 2018-04-27 2020-03-10 TuSimple System and method for determining car to lane distance
EP3824408B1 (en) 2018-07-17 2024-03-06 NVIDIA Corporation Regression-based line detection for autonomous driving machines
DE102018212916A1 (de) 2018-08-02 2020-02-06 Bayerische Motoren Werke Aktiengesellschaft Bestimmung eines Verlaufs einer Fahrspur
US10885698B2 (en) 2018-08-10 2021-01-05 Nvidia Corporation Method for programmable timeouts of tree traversal mechanisms in hardware
US10942030B2 (en) 2018-08-17 2021-03-09 Lyft, Inc. Road segment similarity determination
US10761535B2 (en) 2018-08-21 2020-09-01 GM Global Technology Operations LLC Intelligent vehicle navigation systems, methods, and control logic for multi-lane separation and trajectory extraction of roadway segments
US10816994B2 (en) 2018-10-10 2020-10-27 Midea Group Co., Ltd. Method and system for providing remote robotic control
US10803314B2 (en) 2018-10-10 2020-10-13 Midea Group Co., Ltd. Method and system for providing remote robotic control
US20190061771A1 (en) 2018-10-29 2019-02-28 GM Global Technology Operations LLC Systems and methods for predicting sensor information
US11494937B2 (en) 2018-11-16 2022-11-08 Uatc, Llc Multi-task multi-sensor fusion for three-dimensional object detection
US11030476B2 (en) 2018-11-29 2021-06-08 Element Ai Inc. System and method for detecting and tracking objects
US11635767B2 (en) 2019-02-13 2023-04-25 Semyon Nisenzon System and method of using multi-resolution camera clusters input data for controlling autonomous vehicles
CN113811886B (zh) 2019-03-11 2024-03-19 辉达公司 自主机器应用中的路口检测和分类
US11579629B2 (en) 2019-03-15 2023-02-14 Nvidia Corporation Temporal information prediction in autonomous machine applications
US10832439B1 (en) 2019-04-19 2020-11-10 Zoox, Inc. Locating entities in a mapped environment
CN113785302A (zh) 2019-04-26 2021-12-10 辉达公司 自主机器应用中的路口姿态检测
CN114008685A (zh) 2019-06-25 2022-02-01 辉达公司 用于自主机器应用的路口区域检测和分类
US10625748B1 (en) 2019-06-28 2020-04-21 Lyft, Inc. Approaches for encoding environmental information
CN114097227A (zh) 2019-07-11 2022-02-25 三星电子株式会社 视频解码方法和设备以及视频编码方法和设备
US10997435B2 (en) 2019-08-08 2021-05-04 Nvidia Corporation Leveraging obstacle and lane detections to determine lane assignments for objects in an environment
DE112020004139T5 (de) 2019-08-31 2022-05-12 Nvidia Corporation Erstellung von karten und lokalisierung für anwendungen im bereich des autonomen fahrens
US11410315B2 (en) 2019-11-16 2022-08-09 Uatc, Llc High quality instance segmentation

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106599767A (zh) * 2015-10-16 2017-04-26 福特全球技术公司 虚拟环境中的车道边界检测数据生成
CN107169421A (zh) * 2017-04-20 2017-09-15 华南理工大学 一种基于深度卷积神经网络的汽车驾驶场景目标检测方法
CN107609602A (zh) * 2017-09-28 2018-01-19 吉林大学 一种基于卷积神经网络的驾驶场景分类方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"Real-time category-based and general obstacle detection for autonomous driving";Noa Garnett等;《2017 IEEE International Conference on Computer Vision Workshops》;第198-205页 *

Also Published As

Publication number Publication date
WO2019178548A1 (en) 2019-09-19
CN110494863A (zh) 2019-11-22
US20190286153A1 (en) 2019-09-19
DE112019000048T5 (de) 2020-01-16
US20230074368A1 (en) 2023-03-09
US11941873B2 (en) 2024-03-26
US11537139B2 (en) 2022-12-27

Similar Documents

Publication Publication Date Title
CN110494863B (zh) 确定自主车辆的可驾驶自由空间
CN113811886B (zh) 自主机器应用中的路口检测和分类
US11675359B2 (en) Path detection for autonomous machines using deep neural networks
CN113168505B (zh) 用于自主驾驶机器的基于回归的线检测
US11676364B2 (en) Real-time detection of lanes and boundaries by autonomous vehicles
US11604967B2 (en) Stereo depth estimation using deep neural networks
US11688181B2 (en) Sensor fusion for autonomous machine applications using machine learning
US11508049B2 (en) Deep neural network processing for sensor blindness detection in autonomous machine applications
CN111133447B (zh) 适于自主驾驶的对象检测和检测置信度的方法和系统
US20210042535A1 (en) Leveraging obstacle and lane detections to determine lane assignments for objects in an environment
CN114902295A (zh) 用于自主驾驶应用的三维路口结构预测
CN113785302A (zh) 自主机器应用中的路口姿态检测
CN114008685A (zh) 用于自主机器应用的路口区域检测和分类
CN112825136A (zh) 自主机器应用中使用radar传感器检测障碍物的深度神经网络
CN113228042A (zh) 自主机器应用中障碍物检测的距离
CN113632095A (zh) 使用适合停车位检测的倾斜多边形进行对象检测
CN112825134A (zh) 自主机器应用中使用radar传感器检测障碍物的深度神经网络
CN114450724A (zh) 用于自主机器应用的多活动者环境中的未来轨迹预测
CN112904370A (zh) 用于激光雷达感知的多视图深度神经网络
CN110618678A (zh) 自主机器应用中的行为引导路径规划
CN112970029A (zh) 用于自主机器应用中传感器视盲检测的深度神经网络处理

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant