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

用于自主机器应用的使用地图信息增强的地面实况数据的神经网络训练的制作方法

2022-02-20 00:13:20 来源:中国专利 TAG:

用于自主机器应用的使用地图信息增强的地面实况数据的神经网络训练


背景技术:

1.为了让自主车辆在环境中安全导航,车辆可依赖于与车辆打算运行的区域相对应的高清(hd)地图。由于高清地图具有详细、三维、高精度的性质,事实证明,根据高清地图数据进行导航已被证明对于在高清地图信息可用的环境中进行安全导航是有效的。然而,在某些情况下,高清地图信息不可用、不准确或不最新,和/或可能不能(至少完全)依赖高清地图来帮助在环境中导航。在这种情况下,常规方法利用车辆的车载传感器——例如视觉传感器(例如相机、lidar、radar等)——来检测对象、道路特征(例如车道标记、道路边缘等)、自由空间边界、等待条件信息、路口结构和姿态等。例如,可以利用深度神经网络(dnn)来处理来自车载传感器的传感器数据并计算与上述任何操作相对应的输出。
2.然而,为了取得成功并在自主操作所需的精度水平上执行,dnn需要大量不同的训练数据和训练期间与之对应的地面实况数据(例如,标签、注释等)。地面实况数据可以包括例如识别车道标记或道路边缘的折线、围绕对象或环境特征的边界框和/或其他地面实况数据类型。生成地面实况数据的过程需要大量的手动工作,并且通常是基于dnn产品的成本和开发时间的重要组成部分——例如,用于训练数据实例(例如,图像)的单组地面实况数据可能需要超过20分钟的标记或注释工作。此外,手动标记可能不会产生使dnn尽可能准确地执行的地面实况数据——例如,由于标记或注释过程中的人为错误。因此,在高清地图不可用的情况下,dnn可能无法按安全自主操作所需的准确度执行和/或可能需要大量成本和手动工作来实现。


技术实现要素:

3.本公开的实施例涉及利用地图信息来生成用于训练自主机器应用的神经网络的地面实况数据。公开了使用定位技术来确定对应于高清(hd)地图的信息的系统和方法,所述高清(hd)地图对应于使用自主机器的一个或更多个传感器捕获的训练数据(例如,图像、置信度图、lidar数据、radar数据等)。然后可以利用来自hd地图的信息来生成与训练数据相对应的训练标签、注释或其他地面实况数据,以训练一个或更多个神经网络来执行与自主机器操作(例如,对象检测、等待条件分析、道路结构确定、定位、特征检测等)相对应的计算。
4.与诸如上述那些的常规系统相比,本公开的实施例将hd地图数据与深度神经网络(dnn)的训练相结合以解决hd地图以及dnn的常规训练过程中的缺陷或缺点。例如,准确和最新的高清地图的有限覆盖范围可以通过使用地面实况数据训练的dnn来解决,所述地面实况数据是使用高清地图生成的并且对应于在高清地图准确和最新的区域内捕获的传感器数据。此外,可以使用从高清地图信息自动生成准确的地面实况数据来补救常规dnn训练技术的昂贵且可能不准确的地面实况生成过程。因此,dnn的训练在时间和人工方面的成本可能会大大降低,并且由此产生的可用于辅助自主机器各种操作的dnn可能更加准确和可靠——尤其是在高清地图信息不可用或不是最新的位置。
附图说明
5.下面参考所附附图详细描述利用地图信息来生成用于训练自主机器应用的神经网络的地面实况数据的本系统和方法,其中:
6.图1包括根据本公开的一些实施例的用于将训练数据定位到高清(hd)地图数据以增强或生成用于训练深度神经网络(dnn)的标签的过程的示例数据流程图;
7.图2a描绘了根据本公开的一些实施例的对应于道路特征的自动生成的地面实况标签的示例可视化;
8.图2b描绘了根据本公开的一些实施例的对应于路口检测和分类的自动生成的地面实况标签的示例可视化;
9.图2c描绘了根据本公开的一些实施例的与包括杆、道路标记、车道线、道路边界和人行横道的环境特征相对应的自动生成的地面实况标签的示例可视化;
10.图3描绘了根据本公开的一些实施例的对应于与行驶车道的中心或轨道的偏离的示例直方图;
11.图4是示出根据本公开的一些实施例的用于将训练数据定位到hd地图数据以增强或生成用于训练dnn的标签的方法的流程图;
12.图5a是根据本公开的一些实施例的示例自主车辆的图示;
13.图5b是根据本公开的一些实施例的图5a的示例自主车辆的相机位置和视场的示例;
14.图5c是根据本公开的一些实施例的图5a的示例自主车辆的示例系统架构的框图;
15.图5d是根据本公开的一些实施例的的基于云的服务器和图5a的示例自主车辆之间的通信的系统图;以及
16.图6是适合用于实现本公开的一些实施例的示例计算设备的框图。
具体实施方式
17.公开了与利用地图信息生成地面实况数据以用于训练用于自主机器应用的神经网络相关的系统和方法。虽然本公开可以关于示例自主车辆500(在本文中可替代地称为“车辆500”、“自我车辆500”、“数据收集车辆500”或“动态参与者(actor)500”,其示例相对于图5a

5d进行描述)进行描述,但这不是限制性的。例如,本文描述的系统和方法可以由但不限于非自主车辆、半自主车辆(例如,在一个或更多个自适应驾驶辅助系统(adas)中)、机器人、仓库车辆、越野车、飞船、船只、穿梭车、应急响应车辆、摩托车、电动或机动自行车、飞机、工程车辆、水下航行器、无人机、和/或其他车辆类型使用。此外,虽然本公开可以关于自主驾驶或adas系统进行描述,但这并不旨在进行限制。例如,本文描述的系统和方法可以用于生成用于训练深度神经网络(dnn)的地面实况数据,以在模拟环境、机器人技术(例如,使用室内环境、室外环境、仓库等的地图信息)、航空系统、船舶系统和/或其他技术领域中实现。
18.参考图1,图1包括根据本公开的一些实施例的将训练数据定位到高清(hd)地图数据以增强或生成用于训练深度神经网络(dnn)的标签的过程100的示例数据流程图。尽管可以关于自主车辆500和/或示例计算设备600(图6)来描述过程100,但这并不旨在进行限制。应当理解,本文描述的这种和其他布置仅作为示例提出。除了所示的那些之外或代替所示
的那些,可以使用其他布置和元件(例如,机器、接口、功能、顺序、功能分组等),并且可以完全省略一些元件。此外,本文描述的许多元件是功能实体,其可以被实现为离散或分布式组件或与其他组件结合,并且以任何合适的组合和位置来实现。本文描述为由实体执行的各种功能可以由硬件、固件和/或软件来执行。例如,各种功能可以由执行存储在存储器中的指令的处理器来执行。
19.过程100可以包括从数据收集车辆500(其可以类似于车辆500,或者可以包括非自主或半自主车辆)的一个或更多个传感器生成和/或接收传感器数据102。传感器数据102可在过程100内用于定位、关联和地面实况生成,以及用于深度神经网络(dnn)116的输入数据。传感器数据102可包括但不限于来自任何类型的传感器的传感器数据102,例如但不限于本文关于车辆500和/或其他车辆或对象(例如机器人设备、vr系统、ar系统等,在一些示例中)描述的那些。对于非限制性示例,并参考图5a

5c,传感器数据102可以包括但不限于由全球导航卫星系统(gnss)传感器558(例如,全球定位系统(gps)传感器、差分gps(dgps)传感器等)、radar传感器560、超声波传感器562、lidar传感器564、惯性测量单元(imu)传感器566(例如加速度计、陀螺仪、磁罗盘、磁力计等)、麦克风596、立体相机568、广角相机570(例如鱼眼相机)、红外相机572、环绕相机574(例如,360度相机)、远程和/或中程相机598、速度传感器544(例如,用于测量数据收集车辆的速度和/或行进距离)和/或其他传感器类型生成的数据。
20.在一些示例中,传感器数据102可以包括由一个或更多个前向传感器、侧视传感器和/或后视传感器生成的传感器数据。该传感器数据102可用于识别、检测、分类和/或跟踪环境内数据收集车辆周围的对象——例如,用于定位、与hd地图104关联、地面实况生成等。在实施例中,可以使用任意数量的传感器来合并多个视场(例如,图5b的远程相机598、前向立体相机568和/或前向广角相机570的视场)和/或感测场(例如,lidar传感器564、radar传感器560等的)。
21.在一些实施例中,传感器数据102可以包括表示图像的图像数据、表示视频的图像数据(例如,视频的快照)和/或表示传感器的感测场的表示的传感器数据(例如,用于lidar传感器的深度图、超声波传感器的值图等)。在传感器数据102包括图像数据的情况下,可以使用任何类型的图像数据格式,例如但不限于,诸如联合图像专家组(jpeg)或亮度/色度(yuv)格式的压缩图像、作为源自压缩视频格式(例如h.264/高级视频编码(avc)或h.265/高效视频编码(hevc))的帧的压缩图像,原始图像(例如源自红色透明蓝色(rccb)、红色透明(rccc)、或其他类型的成像传感器),和/或其他格式。此外,在一些示例中,传感器数据102可以在没有任何预处理(例如,以原始或捕获格式)的情况下在过程100内使用,而在其他示例中,传感器数据102可以经历预处理(例如、噪声平衡、去马赛克、缩放、裁剪、增强、白平衡、色调曲线调整等,例如使用传感器数据预处理器(未示出))。如本文所使用的,传感器数据102可以参考未处理的传感器数据、预处理的传感器数据或其组合。
22.此外,过程100可包括从地图——例如hd地图104(其可以类似于图5c的hd地图522)——生成和/或接收地图数据,其可由数据收集车辆500访问和/或由数据收集车辆500存储。在一些实施例中,hd地图104和/或定位器106可以是hd地图管理器的组件。在一些实施例中,高清地图104可包括厘米级或更精细的精度,使得数据收集车辆500可以依靠高清地图104进行精确的指令、规划和定位。hd地图104可以表示车道、道路边界、道路形状、海
拔、坡度和/或等高线、航向信息、等待条件、静态对象位置和/或其他信息。因此,过程100可以使用来自hd地图104的信息——例如车道的位置和形状——来生成用于训练dnn 116的地面实况数据。虽然在本文中被描述为hd地图104,但这并不旨在限制,并且地图数据可以从精度高于或低于hd地图104的任何类型的地图生成。例如,并且在不脱离本公开的范围的情况下,除了或替代地使用从高清地图104生成的地图数据,还可以使用从导航或gps应用程序生成的地图数据。
23.传感器数据102和地图数据(例如,来自hd地图104)可由定位器106使用以相对于hd地图104定位(例如,对于位置和/或方位(orientation))数据收集车辆500。例如,由基于位置的传感器(例如,gnss传感器558)生成的传感器数据102可用于确定数据收集车辆500在hd地图104上的大致位置。该信息可用于确定hd地图104的区域,其应该被分析以在hd地图104内准确地定位数据收集车辆500。例如,由基于视觉的传感器——例如相机、radar传感器560、超声波传感器562、lidar传感器564和/或其他传感器——生成的传感器数据102可用于识别在使用基于位置的传感器确定的hd地图104的区域内具有已知和准确位置的环境内的特征和/或对象。一旦车辆500第一次被定位在高清地图104内,车辆500随时间的位置和/或方位可以使用相同的定位技术来跟踪——例如,使用基于视觉的传感器来识别在hd地图104中具有已知位置的对象和/或特征——和/或可以使用由车辆500的自我运动传感器(例如,imu传感器566、速度传感器544、转向传感器540跟踪方向盘角度等)生成的传感器数据102进行跟踪。例如,一旦车辆500被初始定位,自我运动传感器可用于准确地跟踪车辆500的位置和/或方位随时间的变化。然而,即使在使用自我运动传感器的情况下,也可以周期性地(例如,每3秒、每10秒等)执行使用基于视觉的传感器的定位技术,以重新校准系统,以在高清地图104内定位车辆500。
24.在一些非限制性实施例中,传感器数据102和/或来自高清地图104的信息可以应用于坐标变换器,以将传感器数据102和/或高清地图104变换到车辆500的坐标系和/或将地图数据从hd地图104变换到传感器数据102的坐标空间(例如,以将3d世界空间地图数据变换到2d图像空间或传感器空间)。为了使坐标变换器108执行本文描述的变换或转移(shift),内在的(例如,光学中心、焦距等)和/或外在的(例如,传感器在车辆500上的位置、旋转、平移等)传感器的参数可用于确定hd地图104上的2d像素位置(或其他图像或传感器空间位置)与2d或3d世界空间位置之间的相关性。
25.例如,坐标变换器108可以相对于车辆500和/或相对于捕获传感器数据102的实例的传感器的视场来定向高清地图104。在一些实施例中,坐标变换器108可以相对于数据收集车辆500和/或其传感器的位置和/或方位转移地图数据的视角。因此,可由地面实况生成器112用来生成地面实况数据的hd地图104的部分可以相对于车辆500(例如,其中数据收集车辆500在中心,在(x,y)坐标为(0,0)处,其中y是从车辆的前部到后部延伸的纵向尺寸,x是垂直于y并从车辆的左侧至右侧延伸的横向尺寸)和/或其传感器(例如,生成对应于高清地图104的传感器数据102的实例的传感器的视场或感测场)转移。在一些实施例中,除了或替代地相对于车辆500和/或其传感器转移视角或坐标系,坐标变换器108还可以针对每种类型的数据将视角转移到相同的视场。例如,在hd地图104可以从环境的自上而下的视角生成数据的情况下,生成传感器数据102的传感器可以从不同的视角这样做——例如正面、侧面、向下倾斜、倾斜向上等。因此,为了从相同的视角生成地面实况数据,坐标变换器108可
以将传感器数据102和/或地图数据调整到相同的视角。在一些非限制性实施例中,传感器数据102和hd地图104中的每一个可以被转移到hd地图104的自上而下视图视角或坐标系、传感器数据102的坐标系或视角,和/或其他视角或坐标系。
26.除了坐标变换器108将高清地图104的坐标系转移或变换到车辆500和/或其传感器的坐标系或替代地,在一些实施例中,坐标变换器108可以将地图数据转移或变换到传感器数据102的坐标系或维度。例如,在训练dnn 116以计算2d图像空间中的输出118的情况下,地图数据可以从2d或3d世界空间坐标变换或转移到2d图像或传感器空间坐标。作为另一个示例,在训练dnn 116以计算3d世界空间中的输出118的情况下,即使输入到dnn 116的传感器数据102表示二维空间中的传感器数据表示,也可能不会将地图数据变换或转移到2d图像空间。因此,dnn 116可以被训练以计算2d或3d世界空间坐标中的输出118,并且因此,为训练dnn 116而生成的地面实况可以对应于2d或3d世界空间坐标系。在至少一些实施例中,地面实况所对应的传感器数据102中的一些(例如,特征、对象等,由其表示)或全部可以由坐标变换器108从2d图像空间或传感器空间转换到2d或3d世界空间,以生成对应于2d或3d世界空间的地面实况。
27.一旦定位器106已执行定位,和/或传感器数据102和/或地图数据已由坐标变换器108变换或转移,相关器110(其可包括或替代地在本文中称为特征确定器110)可以将地图数据与传感器数据102相关联。例如,根据要生成的地面实况数据的类型,相关器可以确定由地图数据表示的特征和/或对象与由传感器数据102表示的特征和/或对象间的相关性。例如,在训练dnn 116以预测车道线、分隔线和/或驾驶表面的其他特征的位置的情况下,表示车道线、分隔线和/或其他特征的地图数据可以与每个传感器数据实例(例如,每个图像或帧)处的传感器数据102相关(例如,类似于图2a的可视化200)。作为另一个示例,在训练dnn 116以生成轨迹的情况下,如本文所述,相关器110可以确定与地面实况轨迹相对应的车道的轨道(例如,中心),使得地面实况生成器112可以生成最终的地面实况轨迹,其更紧密地对应于车道的轨道或以车道的轨道为中心(例如,类似于图2a的可视化200)。作为进一步的示例,在训练dnn 116以生成对应于路口的输出(例如,对应于包围路口的边界形状的边界形状顶点)的情况下,相关器110可以确定与路口相对应的路口的每个特征(例如,交通灯、交通标志、驾驶表面上的标签或标记等),使得地面实况生成器112可以生成包含每个特征的边界形状(例如,类似于图2b的可视化240)。
28.根据dnn 116被训练为计算的输出118和输出118的格式,地面实况生成器112可以使用传感器数据102和/或来自hd地图104的地图数据生成地面实况数据。例如,在训练dnn 116以生成与定义车道的折线的点相对应的输出的情况下,地面实况生成器112可以通过从地图数据确定沿车道标记的点(以某个增量),并将这些点与折线的点相关联,来从地图数据生成地面实况数据。因此,当dnn 116生成对应于折线点的输出118时,可以由训练引擎114(例如,使用一个或更多个损失函数)比较由地面实况生成器112生成的地面实况数据与来自输出118的点,以确定对dnn 116的参数(例如,权重和偏差)的更新。
29.类似地,在dnn 116被训练为预测与路口的边界形状相对应的输出118的情况下,地面实况生成器112可以根据dnn 116的预测的格式生成地面实况边界形状。例如,dnn 116可以被训练以将边界形状坐标输出为2d图像空间中边界形状的两个或更多个顶点的像素位置,因此,地面实况生成器112可以根据这种格式生成地面实况数据——例如,通过生成
与边界形状的两个或更多个顶点的位置相对应的地面实况数据。作为另一个示例,dnn 116可以被训练为输出边界形状坐标作为边界形状的质心的像素位置和2d图像空间中的尺寸(例如,高度和宽度),因此,地面实况生成器112可以根据这种格式生成地面实况数据——例如,通过生成与质心的位置和边界形状的尺寸相对应的地面实况数据。作为进一步的示例,dnn 116可以被训练为将边界形状坐标输出为边界形状的两个或更多个顶点在3d世界空间中的位置,并且因此,地面实况生成器112可以根据这种格式生成地面实况数据——例如,通过生成与边界形状的两个或更多个顶点在3d世界空间中的位置相对应的地面实况数据。
30.在一些实施例中,取决于传感器数据102的任何预处理,地面实况生成器112可以补偿地面实况数据的生成中的预处理。例如,在对传感器数据102的实例(例如,图像、深度图等)进行预处理的情况下——例如,通过调整空间分辨率、翻转、旋转、裁剪、缩放、增强等——地面实况生成器112可能会考虑生成地面实况数据中的这些变化。例如,在一些实施例中,可以以某种方式调整传感器数据102的每个实例。在这样的示例中,地面实况生成器112可以针对地面实况数据的每个实例相应地调整地面实况数据(例如,在由传感器数据102表示的每个图像被裁剪的情况下,地面实况数据的每个实例可以被调整为考虑裁剪)。在其他示例中,传感器数据102的一些实例可以被调整,而其他实例可能不会——例如,以将dnn 116训练为不过度拟合并且准确地计算跨任何传感器数据实例变化的输出118。在这样的示例中,地面实况生成器112可以接收表示对传感器数据102的实例的调整的数据,并且可以在生成地面实况数据时补偿这些调整。例如,如果传感器数据102的第一实例没有改变,则可以正常生成地面实况数据,但是在传感器数据102的第二实例在输入到dnn 116之前被旋转的情况下,地面实况生成器112可以通过类似地旋转地面实况数据以对应于传感器数据102的旋转实例来考虑这个。
31.一旦生成了地面实况数据——在实施例中自动地——地面实况数据可以由训练引擎114用来训练dnn 116。例如,传感器数据102可以被应用到dnn 116,dnn 116可以生成输出118,训练引擎114可以使用一个或更多个损失函数鉴于来自地面实况生成器112的地面实况数据来分析输出118,并且可以使用训练引擎114的计算来更新dnn 116,直到dnn 116收敛到理想或可接受的精度。
32.取决于实施例,dnn 116可以包括任何类型的dnn或机器学习模型。例如但不限于,dnn 116可以包括任何类型的机器学习模型,例如使用线性回归、逻辑回归、决策树、支持向量机(svm)、朴素贝叶斯、k

最近邻(knn),k均值聚类、随机森林、降维算法、梯度提升算法、神经网络(例如,自动编码器、卷积、循环、感知器、长/短期记忆/lstm、霍普菲尔德、玻尔兹曼、深度信念、解卷积、生成对抗、液体状态机等)、车道检测算法、计算机视觉算法的机器学习模型和/或其他类型的机器学习模型。
33.作为示例,例如在dnn 116包括cnn的情况下,dnn 116可以包括任意数量的层。多个层中的一个或更多个层可以包括输入层。输入层可以保存与传感器数据102相关联的值(例如,在后处理之前或之后)。例如,当传感器数据102是图像时,输入层可以将表示图像的原始像素值的值保存为体(例如,宽度、高度和颜色通道(例如,rgb),例如32x32x3)。
34.一个或更多个层可以包括卷积层。卷积层可以计算连接到输入层中局部区域的神经元的输出,每个神经元计算它们的权重与它们在输入体中连接到的小区域之间的点积。
卷积层的结果可能是另一个体,其中一个维度基于应用的滤波器的数量(例如,宽度、高度和滤波器数量,例如32x32x12,如果12是滤波器的数量)。
35.一个或更多个层可以包括整流线性单元(relu)层。例如,relu层可以应用逐元素激活函数,例如max(0,x)、例如阈值设置为零。relu层的结果体可能与relu层的输入的体相同。
36.一个或更多个层可以包括池化层。池化层可以沿着空间维度(例如,高度和宽度)执行下采样操作,这可能导致比池化层的输入更小的体(例如,来自32x32 x12输入体的16x16x12)。
37.一个或更多个层可包括一个或更多个全连接层。全连接层中的每个神经元都可以连接到在前体中的每个神经元。全连接层可以计算类分数,结果体可以是1x1x类数。在一些示例中,cnn可以包括一个或更多个全连接层,使得cnn的一个或更多个层的输出可以作为输入提供给cnn的一个或更多个全连接层。在一些示例中,一个或更多个卷积流可以由dnn 116实现,并且一些或所有卷积流可以包括相应的全连接层。
38.在一些非限制性实施例中,dnn 116可以包括一系列卷积层和最大池化层,用于促进图像特征提取,随后是多尺度膨胀卷积层和上采样层,用于促进全局上下文特征提取。
39.尽管本文关于dnn 116讨论了输入层、卷积层、池化层、relu层和全连接层,但这并不旨在进行限制。例如,可以在dnn 116中使用附加层或替代层,例如归一化层、softmax层和/或其他层类型。
40.在dnn 116包括cnn的实施例中,可以使用cnn的不同顺序和数量的层,这取决于实施例。换言之,dnn 116的层的顺序和数量不限于任何一种架构。
41.此外,某些层可包括参数(例如权重和/或偏差),例如卷积层和全连接层,而其他层可能不包括例如relu层和池化层。在一些示例中,参数可以在训练期间由dnn 116学习。此外,一些层可包括额外的超参数(例如,学习率、步幅、时期等),例如卷积层、全连接层和池化层,而其他层可能不包括,例如relu层。参数和超参数不受限制并且可以根据实施例而不同。
42.现在参考图2a

2c,图2a

2c包括表示使用过程100自动生成地面实况的各种实例的示例可视化。本文描述的可视化仅用于示例目的,并不旨在限制本公开的范围。参考图2a,图2a描绘了根据本公开的一些实施例的对应于道路特征的自动生成的地面实况标签的示例可视化200。可视化200可以表示传感器数据102(例如,图像)的实例和可以使用来自hd地图104的地图数据和/或来自自我运动传感器数据的轨迹信息生成的相应地面实况数据。例如,在将dnn 116训练为预测道路特征(例如,车道轨道或中心、车道分隔线、道路边界等)的情况下,从地图数据生成的地面实况数据可包括可视化200中的每个地面实况标签。在一个或更多个实施例中,地面实况标签可以包括除了自我轨迹202(在此更详细地描述)之外的所有标签。例如,在车辆500被定位到高清地图104之后,坐标变换器108相对于车辆500、其传感器和/或传感器数据102的坐标系或维度空间来定向地图数据,相关器110可以确定每个道路边界204(例如,204a和204b)、每个车道分隔线206(例如,206a

206d)、每个车道轨道210(例如,210a

210c、208)和/或道路的其他特征以及它们相对于传感器数据的实例的相应位置。地面实况生成器112然后可以按照dnn 116被训练为预测输出的格式从对应于这些特征的每个标签生成地面实况数据,如本文所述。
43.作为另一个示例,再次参照图2a,来自hd地图的地图数据可用于增强其他地面实况数据。例如,在使用自我运动传感器自动生成自我轨迹202的情况下,自我轨迹202可以被调整为更紧密地对应于与车辆500的行驶车道相对应的车道轨道208。因此,地面实况生成器112可以生成对应于车道轨道208而不是自我轨迹202的最终地面实况轨迹——或表示其的数据,例如沿着定义最终地面实况轨迹的折线的点。在一些非限制性实施例中,可以使用如在2019年5月10日提交的美国非临时申请第16/409,056号中描述的方法和系统生成自我轨迹,该申请通过引用整体并入本文。例如,并参考图3,因为自我轨迹202可以基于人类驾驶员的驾驶路径生成,所以自我轨迹可能偏离行驶车道的中心或轨道。图3的图表300图示了对应于生成的自我轨迹的偏移量,描绘了偏离行驶车道的中心或轨道超过半米或更多的轨迹。在这些自我轨迹直接用于训练dnn 116以计算车辆的未来轨迹的情况下,部署中的计算轨迹可以类似地包括从行驶车道的轨道或中心的偏移。因此,通过使用地图数据增强自我轨迹以生成更接近地沿着行驶车道中心或轨道的地面实况数据,部署中的车辆的计算轨迹也可更接近地沿着行驶车道的中心或轨道。此外,由于轨迹可包括改变车道、转弯和/或诸如此类,因此对用于生成地面实况的自我轨迹的调整还可以使dnn 116的计算轨迹的转弯、变道和/或其他操作能够从行驶车道的中心或轨道转移到其他行驶车道的中心或轨道。结果,当车辆沿着行驶车道的中心或轨道更接近地穿过驾驶表面时,计算轨迹可以将部署中的车辆置于与周围对象更安全的距离处。
44.现在参考图2b,图2b描绘了根据本公开的一些实施例的对应于路口检测和分类的自动生成的地面实况标签的示例可视化240。例如,dnn 116可以被训练为生成表示对应于路口的边界形状(例如,可视化240的边界形状242)、对应于路口的分类(例如,路口、红绿灯控制的)、到路口的距离和/或与路口对应的其他信息的输出118。因为来自hd地图的地图数据可以表示路口的特征及其位置,所以地图数据可以用于生成地面实况数据。例如,在边界形状242将包含路口的每个特征的情况下——例如,交通灯244、人行横道246a和246b、路口入口线248等——这些特征的位置和存在可以从地图确定数据确定,并且相关器110可以确定包围所有这些的边界形状242的维度、路口的分类和到路口的距离(例如,到路口入口线248中的入口线)。因此,地面实况生成器212可以生成与分类信息、边界形状维度和/或顶点、和/或到路口的距离相对应的地面实况数据。在一些非限制性实施例中,为路口生成的地面实况可以类似于在2020年3月10日提交的美国非临时申请第16/814,351号中生成的地面实况数据,该申请通过引用整体并入本文。
45.现在参考图2c,图2c描绘了根据本公开的一些实施例的与环境的特征(包括杆、道路标记、车道线、道路边界和人行横道)相对应的自动生成的地面实况标签的示例可视化280。例如,可以将dnn 116训练为计算与环境的特征(例如,线、标记、杆等)相对应的输出118。因此,来自hd地图104的地图数据可用于生成可表示杆282、人行横道284、车道标记286、道路标记288和/或环境的其他特征的地面实况数据。因此,在定位、坐标变换和/或关联之后,地面实况生成器112可以生成与dnn 116被训练为计算的环境的每个特征相对应的地面实况数据。在非限制性示例中,生成的地面实况可与2019年7月17日提交的美国非临时申请第16/514,230号中描述的相似,该申请通过引用整体并入本文。
46.现在参考图4,本文描述的方法400的每个框包括可以使用硬件、固件和/或软件的任何组合来执行的计算过程。例如,各种功能可以由执行存储在存储器中的指令的处理器
来执行。方法400还可以体现为存储在计算机存储介质上的计算机可用指令。方法400可以由独立应用、服务或托管服务(独立地或与另一托管服务组合)或另一产品的插件提供,仅举几例。此外,通过示例的方式,关于图1的过程100和图5a

5d的自主车辆500描述了方法400。然而,这些方法可以附加地或替代地由任何一个系统或在任何一个过程或系统和过程的任何组合内执行,包括但不限于本文所述的那些。
47.图4是示出根据本公开的一些实施例的用于将训练数据定位到hd地图数据以增强或生成用于训练dnn的标签的方法400的流程图。在框b402,方法400包括在某时间接收对应于包括动态参与者的位置的区域的hd地图数据。例如,可以生成和/或接收对应于高清地图104的包括数据收集车辆500的区域的地图数据——例如,使用高清地图管理器。
48.在框b404,方法400包括相对于hd地图数据定位动态参与者。例如,定位器106可以在hd地图104内定位数据收集车辆500。
49.在框b406,方法400包括在某时间接收由动态参与者的传感器生成的传感器数据。例如,可以生成和/或接收由数据收集车辆500的传感器生成的传感器数据102的实例。
50.在框b408,方法400包括至少部分地基于hd地图数据和定位,生成对应于传感器数据的地面实况数据。例如,地面实况生成器112可以使用地图数据生成与传感器数据102的实例相对应的地面实况数据。在一些实施例中,这可以包括将高清地图104的坐标系变换或转移到车辆500的坐标系,将地图数据与传感器数据102相关联,和/或本文关于坐标变换器108、相关器110和/或地面实况生成器112描述的其他过程。
51.在框b410,方法400包括使用传感器数据和地面实况数据训练神经网络。例如,可以使用传感器数据102和使用地面实况生成器112生成的地面实况数据来训练dnn 116——例如,使用训练引擎114。
52.示例自主车辆
53.图5a为根据本公开一些实施例的示例自主车辆500的图示。自主车辆500(可替代地,在本文称为“车辆500”)可以包括但不限于乘用车,例如汽车、卡车、公共汽车、急救车、穿梭车、电动或机动自行车、摩托车、消防车、警车、救护车、船、工程车辆、水下船只、无人机和/或其他类型的车辆(例如,无人驾驶和/或可容纳一名或多名乘客)。自主车辆通常按照美国运输部的一个部门——国家公路交通安全管理局(nhtsa)以及汽车工程师协会(sae)“taxonomy and definitions for terms related to driving automation systems for on

road motor vehicles”(2018年6月15日发布的标准no.j3016

201806,2016年9月30日发布的标准no.j3016

201609,以及该标准的先前和未来的版本)定义的自动化级别进行描述。车辆500可能够实现符合自主驾驶级别的3级

5级中的一个或更多个的功能。例如,取决于实施例,车辆500可能够实现条件自动化(3级)、高自动化(4级)和/或全自动化(5级)。
54.车辆500可以包括诸如底盘、车身、车轮(例如2个、4个、6个、8个、18个等)、轮胎、车轴之类的部件以及车辆的其他部件。车辆500可以包括推进系统550,例如内燃机、混合动力发电厂、全电动发动机和/或另一种推进系统类型。推进系统550可以连接到可以包括变速器的车辆500的传动系以便实现车辆500的推进。可以响应于接收到来自油门/加速器552的信号而控制推进系统550。
55.可以包括方向盘的转向(steering)系统554可以用来在推进系统550操作时(例如在车辆运动时)使车辆500转向(例如沿着希望的路径或路线)。转向系统554可以接收来自
转向致动器556的信号。对于全自动(5级)功能而言,方向盘可以是可选的。
56.制动传感器系统546可以用来响应于接收到来自制动致动器548和/或制动传感器的信号而操作车辆制动器。
57.可以包括一个或更多个片上系统(soc)504(图5c)和/或一个或更多个gpu的一个或更多个控制器536可以向车辆500的一个或更多个部件和/或系统提供(例如表示命令的)信号。例如,一个或更多个控制器可以发送经由一个或更多个制动致动器548操作车辆制动器、经由一个或更多个转向致动器556操作转向系统554、经由一个或更多个油门/加速器552操作推进系统550的信号。一个或更多个控制器536可以包括一个或更多个板载(例如集成)计算设备(例如超级计算机),所述计算设备处理传感器信号并且输出操作命令(例如表示命令的信号),以实现自主驾驶和/或辅助人类驾驶员驾驶车辆500。一个或更多个控制器536可以包括用于自主驾驶功能的第一控制器536、用于功能性安全功能的第二控制器536、用于人工智能功能(例如计算机视觉)的第三控制器536、用于信息娱乐功能的第四控制器536、用于紧急情况下的冗余的第五控制器536和/或其他控制器。在一些示例中,单个控制器536可以处理上述功能中的两个或更多,两个或更多控制器536可以处理单个功能,和/或其任意组合。
58.一个或更多个控制器536可以响应于接收自一个或更多个传感器的传感器数据(例如传感器输入),提供用于控制车辆500的一个或更多个部件和/或系统的信号。传感器数据可以接收自例如且不限于全球导航卫星系统传感器558(例如全球定位系统传感器)、radar传感器560、超声传感器562、lidar传感器564、惯性测量单元(imu)传感器566(例如加速度计、陀螺仪、磁罗盘、磁力计等)、麦克风596、立体相机568、广角相机570(例如鱼眼相机)、红外相机572、环绕相机574(例如360度相机)、远程和/或中程相机598、速度传感器544(例如用于测量车辆500的速率)、振动传感器542、转向传感器540、制动传感器(例如作为制动传感器系统546的部分)和/或其他传感器类型。
59.控制器536中的一个或更多个可以接收来自车辆500的仪表组532的输入(例如由输入数据表示),并且经由人机接口(hmi)显示器534、听觉信号器、扬声器和/或经由车辆500的其他部件提供输出(例如输出数据、显示数据等表示的)。这些输出可以包括诸如车辆速度、速率、时间、地图数据(例如图5c的hd地图522)、位置数据(例如,车辆500例如在地图上的位置)、方向、其他车辆的位置(例如占用网格)之类的信息,如控制器536所感知的关于对象和对象状态的信息等等。例如,hmi显示器534可以显示关于一个或更多个对象(例如街道指示牌、警示牌、交通灯变化等)的存在性的信息和/或关于车辆已经做出、正在做出或者将会做出的驾驶机动的信息(例如现在变道、两英里后离开34b,等等)。
60.车辆500进一步包括网络接口524,其可以使用一个或更多个无线天线526和/或调制解调器通过一个或更多个网络通信。例如,网络接口524可能够通过lte、wcdma、umts、gsm、cdma2000等通信。一个或更多个无线天线526也可以使用诸如蓝牙、蓝牙le、z波、zigbee等等之类的一个或更多个局域网和/或诸如lorawan、sigfox等等之类的一个或更多个低功率广域网(lpwan)实现环境中的对象(例如车辆、移动设备等等)之间的通信。
61.图5b为根据本公开一些实施例的用于图5a的示例自主车辆500的相机位置和视场的示例。相机和各自的视场是一个示例实施例,并不意图是限制性的。例如,可以包括附加的和/或可替换的相机,和/或这些相机可以位于车辆500上的不同位置。
62.用于相机的相机类型可以包括但不限于可以适于与车辆500的部件和/或系统一起使用的数字相机。所述相机可以在汽车安全完整性级别(asil)b下和/或在另一个asil下操作。相机类型可以具有任何图像捕获率,例如60帧每秒(fps)、520fps、240fps等等,这取决于实施例。相机可能够使用滚动快门、全局快门、另一种类型的快门或者其组合。在一些示例中,滤色器阵列可以包括红白白白(rccc)滤色器阵列、红白白蓝(rccb)滤色器阵列、红蓝绿白(rbgc)滤色器阵列、foveon x3滤色器阵列、拜耳传感器(rggb)滤色器阵列、单色传感器滤色器阵列和/或另一种类型的滤色器阵列。在一些实施例中,诸如具有rccc、rccb和/或rbgc滤色器阵列的相机之类的清晰像素相机可以用在提高光敏感度的努力中。
63.在一些示例中,所述相机中的一个或更多个可以用来执行高级驾驶员辅助系统(adas)功能(例如作为冗余或故障安全设计的部分)。例如,可以安装多功能单目相机以提供包括车道偏离警告、交通指示牌辅助和智能前照灯控制在内的功能。所述相机中的一个或更多个(例如全部相机)可以同时记录和提供图像数据(例如视频)。
64.所述相机中的一个或更多个可以安装在诸如定制设计的(3

d打印的)组件之类的安装组件中,以便切断可能干扰相机的图像数据捕获能力的杂散光和来自汽车内的反射(例如挡风玻璃镜中反射的来自仪表板的反射)。关于翼镜安装组件,翼镜组件可以是定制3

d打印的,使得相机安装板匹配翼镜的形状。在一些示例中,一个或更多个相机可以集成到翼镜中。对于侧视相机而言,一个或更多个相机也可以集成到驾驶室每个拐角的四根柱子内。
65.具有包括车辆500前面的环境部分的视场的相机(例如前置相机)可以用于环视,以帮助识别前向路径和障碍,以及在一个或更多个控制器536和/或控制soc的帮助下辅助提供对于生成占用网格和/或确定优选车辆路径至关重要的信息。前置相机可以用来执行许多与lidar相同的adas功能,包括紧急制动、行人检测和碰撞避免。前置相机也可以用于adas功能和系统,包括车道偏离警告(“ldw”)、自主巡航控制(“acc”),和/或诸如交通指示牌识别之类的其他功能。
66.各种各样的相机可以用于前置配置中,包括例如包括cmos(互补金属氧化物半导体)彩色成像仪在内的单目相机平台。另一个示例可以是广角相机570,其可以用来感知从周边进入视野的对象(例如行人、十字路口交通或者自行车)。尽管图5b中图示出仅仅一个广角相机,但是在车辆500上可以存在任意数量的广角相机570。此外,远程相机598(例如长视立体相机对)可以用于基于深度的对象检测,尤其是用于尚未针对其训练神经网络的对象。远程相机598也可以用于对象检测和分类以及基本的对象跟踪。
67.一个或更多个立体相机568也可以包括在前置配置中。立体相机568可以包括集成控制单元,该单元包括可扩展处理单元,其可以提供在单个芯片上具有集成的can或以太网接口的多核微处理器和可编程逻辑(fpga)。这样的单元可以用来生成车辆环境的3

d地图,包括针对图像中的所有点的距离估计。可替代的立体相机568可以包括紧凑型立体视觉传感器,其可以包括两个相机镜头(左右各一个)以及可以测量从车辆到目标对象的距离并且使用生成的信息(例如元数据)激活自主紧急制动和车道偏离警告功能的图像处理芯片。除了本文所描述的那些之外或者可替代地,可以使用其他类型的立体相机568。
68.具有包括车辆500的侧面的环境部分的视场的相机(例如侧视相机)可以用于环视,提供用来创建和更新占用网格以及生成侧撞击碰撞警告的信息。例如,环绕相机574(例
504可以在系统(例如车辆500的系统)中与hd地图522结合,所述hd地图可以经由网络接口524从一个或更多个服务器(例如图5d的一个或更多个服务器578)获得地图刷新和/或更新。
75.cpu 506可以包括cpu簇或cpu复合体(替代地,本文称为“ccplex”)。cpu 506可以包括多个核和/或l2高速缓存。例如,在一些实施例中,cpu 506在一致性多处理器配置中可以包括八个核。在一些实施例中,cpu 506可包括四个双核簇,其中每个簇具有专用的l2高速缓存(例如2mb l2高速缓存)。cpu 506(例如ccplex)可以被配置为支持同时簇操作,使得cpu 506的簇的任意组合能够在任何给定时间是活动的。
76.cpu 506可以实现包括以下特征中的一个或更多个的功率管理能力:各硬件块在空闲时可以自动进行时钟门控以节省动态功率;由于wfi/wfe指令的执行,每个核时钟可以在该核不主动地执行指令时进行门控;每个核可以独立地进行功率门控;当所有核都进行时钟门控或者功率门控时,可以独立地对每个核簇进行时钟门控;和/或当所有核都进行功率门控时,可以独立地对每个核簇进行功率门控。cpu 506可以进一步实现用于管理功率状态的增强算法,其中指定允许的功率状态和期望的唤醒时间,并且硬件/微代码为所述核、簇和ccplex确定要进入的最佳的功率状态。处理核可以在软件中支持简化的功率状态进入序列,该工作被卸载到微代码。
77.gpu 508可以包括集成的gpu(可替代地,本文称为“igpu”)。gpu 508可以是可编程的,并且对于并行工作负载而言是高效的。在一些示例中,gpu 508可以使用增强张量指令集。gpu 508可以包括一个或更多个流式微处理器,其中每个流式微处理器可以包括l1高速缓存(例如具有至少96kb存储能力的l1高速缓存),并且这些流式微处理器中的两个或更多可以共享l2高速缓存(例如具有512kb存储能力的l2高速缓存)。在一些实施例中,gpu 508可以包括至少八个流式微处理器。gpu 508可以使用计算应用编程接口(api)。此外,gpu 508可以使用一个或更多个并行计算平台和/或编程模型(例如nvidia的cuda)。
78.在汽车和嵌入式使用的情况下,可以对gpu 508进行功率优化以实现最佳性能。例如,可以在鳍式场效应晶体管(finfet)上制造gpu 508。然而,这并不意图是限制性的,并且gpu 508可以使用其他半导体制造工艺来制造。每个流式微处理器可以合并划分成多个块的若干混合精度处理核。例如且非限制性地,可以将64个pf32核和32个pf64核划分成四个处理块。在这样的示例中,每个处理块可以分配16个fp32核、8个fp64核、16个int32核、用于深层学习矩阵算术的两个混合精度nvidia张量核、l0指令高速缓存、线程束(warp)调度器、分派单元和/或64kb寄存器文件。此外,流式微处理器可以包括独立的并行整数和浮点数据路径,以利用计算和寻址计算的混合提供工作负载的高效执行。流式微处理器可以包括独立线程调度能力,以允许实现并行线程之间的更细粒度的同步和协作。流式微处理器可以包括组合的l1数据高速缓存和共享内存单元,以便在简化编程的同时提高性能。
79.gpu 508可以包括在一些示例中提供大约900gb/s的峰值内存带宽的高带宽内存(hbm)和/或16gb hbm2内存子系统。在一些示例中,除了hbm内存之外或者可替代地,可以使用同步图形随机存取存储器(sgram),例如第五代图形双倍数据速率同步随机存取存储器(gddr5)。
80.gpu 508可以包括统一内存技术,其包括访问计数器以允许内存页面更精确地迁移到最频繁地访问它们的处理器,从而提高处理器之间共享的内存范围的效率。在一些示
例中,地址转换服务(ats)支持可以用来允许gpu 508直接访问cpu 506页表。在这样的示例中,当gpu 508内存管理单元(mmu)经历遗漏时,可以将地址转换请求传输至cpu 506。作为响应,cpu 506可以在其页表中寻找用于地址的虚拟

物理映射,并且将转换传输回gpu 508。这样,统一内存技术可以允许单个统一虚拟地址空间用于cpu 506和gpu 508二者的内存,从而简化了gpu 508编程和将应用程序移(port)到gpu 508。
81.此外,gpu 508可以包括访问计数器,其可以跟踪gpu 508访问其他处理器的内存的频率。访问计数器可以帮助确保内存页面移至最频繁地访问这些页面的处理器的物理内存。
82.soc 504可以包括任意数量的高速缓存512,包括本文描述的那些高速缓存。例如,高速缓存512可以包括cpu 506和gpu 508二者可用的l3高速缓存(例如,其连接到cpu 506和gpu 508二者)。高速缓存512可以包括回写高速缓存,其可以例如通过使用高速缓存一致性协议(例如mei、mesi、msi等)跟踪行的状态。取决于实施例,l3高速缓存可以包括4mb或者更多,但是也可以使用更小的高速缓存大小。
83.soc 504可包括一个或更多个算术逻辑单元(alu),其可用于执行关于车辆500的各种任务或操作中的任一个的处理,例如处理dnn。此外,soc 504可以包括浮点单元(fpu)或其他数学协处理器或数字协处理器类型,用于在系统内执行数学运算。例如,soc 504可以包括一个或更多个集成为cpu 506和/或gpu 508内的执行单元的fpu。
84.soc 504可以包括一个或更多个加速器514(例如硬件加速器、软件加速器或者其组合)。例如,soc 504可以包括硬件加速簇,其可以包括优化的硬件加速器和/或大型片上内存。该大型片上内存(例如4mb sram)可以使得硬件加速簇能够加速神经网络和其他计算。硬件加速簇可以用来补充gpu 508,并且卸载gpu 508的一些任务(例如释放gpu 508的更多周期以用于执行其他任务)。作为一个示例,加速器514可以用于足够稳定以易于控制加速的有针对性的工作负载(例如感知、卷积神经网络(cnn)等等)。当在本文中使用时,术语“cnn”可以包括所有类型的cnn,包括基于区域的或者区域卷积神经网络(rcnn)和快速rcnn(例如用于对象检测)。
85.加速器514(例如硬件加速簇)可以包括深度学习加速器(dla)。dla可以包括可以被配置成为深度学习应用和推理提供额外的每秒10万亿次操作的一个或更多个张量处理单元(tpu)。tpu可以是被配置为执行图像处理功能(例如用于cnn、rcnn等)且针对执行图像处理功能而优化的加速器。dla可以进一步针对特定的一组神经网络类型和浮点运算以及推理进行优化。dla的设计可以比通用gpu提供每毫米更高的性能,并且远远超过cpu的性能。tpu可以执行若干功能,包括单实例卷积函数,支持例如用于特征和权重二者的int8、int16和fp16数据类型,以及后处理器功能。
86.dla可以在处理的或者未处理的数据上针对各种各样的功能中的任何功能快速且高效地执行神经网络,尤其是cnn,例如且不限于:用于使用来自相机传感器的数据进行对象识别和检测的cnn;用于使用来自相机传感器的数据进行距离估计的cnn;用于使用来自麦克风的数据进行应急车辆检测和识别与检测的cnn;用于使用来自相机传感器的数据进行面部识别和车主识别的cnn;和/或用于安全和/或安全相关事件的cnn。
87.dla可以执行gpu 508的任何功能,并且通过使用推理加速器,例如,设计者可以使dla或gpu 508针对任何功能。例如,设计者可以将cnn的处理和浮点运算聚焦在dla上,并且
将其他功能留给gpu 508和/或其他加速器514。
88.加速器514(例如硬件加速簇)可以包括可编程视觉加速器(pva),其在本文中可以可替代地称为计算机视觉加速器。pva可以被设计和配置为加速用于高级驾驶员辅助系统(adas)、自主驾驶和/或增强现实(ar)和/或虚拟现实(vr)应用的计算机视觉算法。pva可以提供性能与灵活性之间的平衡。例如,每个pva可以包括例如且不限于任意数量的精简指令集计算机(risc)核、直接内存访问(dma)和/或任意数量的向量处理器。
89.risc核可以与图像传感器(例如本文描述的任何相机的图像传感器)、图像信号处理器和/或类似物交互。这些risc核中的每一个可以包括任意数量的内存。取决于实施例,risc核可以使用若干协议中的任何协议。在一些示例中,risc核可以执行实时操作系统(rtos)。risc核可以使用一个或更多个集成电路设备、专用集成电路(asic)和/或存储设备实现。例如,risc核可以包括指令高速缓存和/或紧密耦合的ram。
90.dma可以使得pva的部件能够独立于cpu 506访问系统内存。dma可以支持用来向pva提供优化的任意数量的特征,包括但不限于支持多维寻址和/或循环寻址。在一些示例中,dma可以支持高达六个或更多维度的寻址,其可以包括块宽度、块高度、块深度、水平块步进、竖直块步进和/或深度步进。
91.向量处理器可以是可编程处理器,其可以被设计为高效且灵活地执行用于计算机视觉算法的编程并且提供信号处理能力。在一些示例中,pva可以包括pva核和两个向量处理子系统分区。pva核可以包括处理器子系统、一个或更多个dma引擎(例如两个dma引擎)和/或其他外围设备。向量处理子系统可以作为pva的主处理引擎而操作,并且可以包括向量处理单元(vpu)、指令高速缓存和/或向量内存(例如vmem)。vpu核可以包括数字信号处理器,诸如例如单指令多数据(simd)、超长指令字(vliw)数字信号处理器。simd和vliw的组合可以增强吞吐量和速率。
92.向量处理器中的每一个可以包括指令高速缓存并且可以耦合到专用内存。结果,在一些示例中,向量处理器中的每一个可以被配置为独立于其他向量处理器执行。在其他示例中,包括在特定pva中的向量处理器可以被配置为采用数据并行化。例如,在一些实施例中,包括在单个pva中的多个向量处理器可以执行相同的计算机视觉算法,但是在图像的不同区域上执行。在其他示例中,包括在特定pva中的向量处理器可以在相同的图像上同时执行不同的计算机视觉算法,或者甚至在序列图像或者图像的部分上执行不同的算法。除其他的以外,任意数量的pva可以包括在硬件加速簇中,并且任意数量的向量处理器可以包括在这些pva中的每一个中。此外,pva可以包括附加的纠错码(ecc)内存,以增强总体系统安全性。
93.加速器514(例如硬件加速簇)可以包括片上计算机视觉网络和sram,以提供用于加速器514的高带宽、低延迟sram。在一些示例中,片上内存可以包括由例如且不限于八个现场可配置的内存块组成的至少4mb sram,其可以由pva和dla二者访问。每对内存块可以包括高级外围总线(apb)接口、配置电路系统、控制器和复用器。可以使用任何类型的内存。pva和dla可以经由向pva和dla提供高速内存访问的主干(backbone)访问内存。主干可以包括(例如使用apb)将pva和dla互连到内存的片上计算机视觉网络。
94.片上计算机视觉网络可以包括在传输任何控制信号/地址/数据之前确定pva和dla二者都提供就绪且有效的信号的接口。这样的接口可以提供用于传输控制信号/地址/
数据的单独相位和单独信道,以及用于连续数据传输的突发式通信。这种类型的接口可以符合iso 26262或者iec 61508标准,但是也可以使用其他标准和协议。
95.在一些示例中,soc 504可以包括例如在2018年8月10日提交的美国专利申请no.16/101,232中描述的实时光线追踪硬件加速器。该实时光线追踪硬件加速器可以用来快速且高效地确定(例如世界模型内的)对象的位置和范围,以便生成实时可视化仿真,以用于radar信号解释、用于声音传播合成和/或分析、用于sonar系统仿真、用于一般波传播仿真、用于为了定位和/或其他功能的目的与lidar数据相比较和/或用于其他用途。在一些实施例中,一个或更多个树遍历单元(ttu)可用于执行一个或更多个光线追踪相关操作。
96.加速器514(例如硬件加速器簇)具有广泛的自主驾驶用途。pva可以是可编程视觉加速器,其可以用于adas和自主车辆中的关键处理阶段。pva的能力是需要可预测处理、低功率和低延迟的算法域的良好匹配。换言之,pva在半密集或者密集规则计算上,甚至在需要具有低延迟和低功率的可预测运行时间的小数据集上都表现良好。因此,在用于自主车辆的平台的背景下,pva被设计为运行经典计算机视觉算法,因为它们在对象检测和整数数学运算方面很有效。
97.例如,根据该技术的一个实施例,pva用来执行计算机立体视觉。在一些示例中,可以使用基于半全局匹配的算法,但是这并不意图是限制性的。许多用于3

5级自主驾驶的应用都需要即时运动估计/立体匹配(例如来自运动的结构、行人识别、车道检测等等)。pva可以在来自两个单目相机的输入上执行计算机立体视觉功能。
98.在一些示例中,pva可以用来执行密集的光流。根据过程原始radar数据(例如使用4d快速傅立叶变换)以提供经处理的radar。在其他示例中,pva用于飞行时间深度处理,其例如通过处理原始飞行时间数据以提供经处理的飞行时间数据。
99.dla可以用来运行任何类型的网络以增强控制和驾驶安全性,包括例如输出用于每个对象检测的置信度度量的神经网络。这样的置信度值可以解释为概率,或者解释为提供每个检测与其他检测相比的相对“权重”。该置信度值使得系统能够做出关于哪些检测应当被认为是真阳性检测而不是假阳性检测的进一步决策。例如,系统可以为置信度设置阈值,并且仅仅将超过阈值的检测看作真阳性检测。在自动紧急制动(aeb)系统中,假阳性检测会使得车辆自动地执行紧急制动,这显然是不希望的。因此,只有最确信的检测才应当被认为是aeb的触发因素。dla可以运行用于回归置信度值的神经网络。该神经网络可以将至少一些参数子集作为其输入,例如边界框维度,(例如从另一个子系统)获得的地平面估计,与车辆500方位、距离相关的惯性测量单元(imu)传感器566输出,从神经网络和/或其他传感器(例如lidar传感器564或radar传感器560)获得的对象的3d位置估计等。
100.soc 504可以包括一个或更多个数据存储516(例如内存)。数据存储516可以是soc 504的片上内存,其可以存储要在gpu和/或dla上执行的神经网络。在一些示例中,为了冗余和安全,数据存储516可以容量足够大以存储神经网络的多个实例。数据存储512可以包括l2或l3高速缓存512。对数据存储516的引用可以包括对与如本文所描述的pva、dla和/或其他加速器514关联的内存的引用。
101.soc 504可以包括一个或更多个处理器510(例如嵌入式处理器)。处理器510可以包括启动和功率管理处理器,其可以是用于处理启动功率和管理功能以及有关安全实施的专用处理器和子系统。启动和功率管理处理器可以是soc 504启动序列的一部分,并且可以
提供运行时间功率管理服务。启动功率和管理处理器可以提供时钟和电压编程、辅助系统低功率状态转换、soc 504热和温度传感器管理和/或soc 504功率状态管理。每个温度传感器可以实现为环形振荡器,其输出频率与温度成比例,并且soc 504可以使用环形振荡器检测cpu 506、gpu 508和/或加速器514的温度。如果确定温度超过阈值,那么启动和功率管理处理器可以进入温度故障例程并且将soc 504置于较低功率状态和/或将车辆500置于司机安全停车模式(例如使车辆500安全停车)。
102.处理器510可以进一步包括可以用作音频处理引擎的一组嵌入式处理器。音频处理引擎可以是一种音频子系统,其允许实现对于通过多个接口的多声道音频的完全硬件支持以及一系列广泛而灵活的音频i/o接口。在一些示例中,音频处理引擎是具有带有专用ram的数字信号处理器的专用处理器核。
103.处理器510可以进一步包括始终在处理器上的引擎,其可以提供必要的硬件特征以支持低功率传感器管理和唤醒用例。该始终在处理器上的引擎可以包括处理器核、紧密耦合的ram、支持外围设备(例如定时器和中断控制器)、各种i/o控制器外围设备和路由逻辑。
104.处理器510可以进一步包括安全簇引擎,其包括处理汽车应用的安全管理的专用处理器子系统。安全簇引擎可以包括两个或更多处理器核、紧密耦合的ram、支持外围设备(例如定时器、中断控制器等等)和/或路由逻辑。在安全模式下,所述两个或更多核可以操作于锁步模式下,并且用作具有检测它们的操作之间的任何差异的比较逻辑的单核。
105.处理器510可以进一步包括实时相机引擎,其可以包括用于处理实时相机管理的专用处理器子系统。
106.处理器510可以进一步包括高动态范围信号处理器,其可以包括图像信号处理器,该图像信号处理器是一种硬件引擎,该硬件引擎是相机处理管线的部分。
107.处理器510可包括可以是(例如微处理器上实现的)处理块的视频图像复合器,其实现视频回放应用程序产生用于播放器窗口的最终图像所需的视频后处理功能。视频图像复合器可以对广角相机570、环绕相机574和/或对驾驶室内监控相机传感器执行镜头畸变校正。驾驶室内监控相机传感器优选地由运行在高级soc的另一实例上的神经网络监控,被配置为识别驾驶室内事件并且相对应地做出响应。驾驶室内系统可以执行唇读,以激活移动电话服务并拨打电话、口述电子邮件、改变车辆目的地、激活或改变车辆的信息娱乐系统和设置或者提供语音激活的网上冲浪。某些功能仅在车辆操作于自主模式下时对于驾驶员可用,并且在其他情况下被禁用。
108.视频图像复合器可以包括用于空间和时间降噪的增强时间降噪。例如,在视频中出现运动的情况下,降噪适当地对空间信息加权,降低邻近帧提供的信息的权重。在图像或者图像的部分不包括运动的情况下,视频图像复合器执行的时间降噪可以使用来自先前的图像的信息以降低当前图像中的噪声。
109.视频图像复合器也可以被配置为对输入立体镜头帧执行立体校正。当操作系统桌面正在使用并且gpu 508无需连续地渲染(render)新的表面时,视频图像复合器可以进一步用于用户接口组成。甚至在gpu 508上电并且激活,进行3d渲染时,视频图像复合器可以用来减轻gpu 508的负担以提高性能和响应能力。
110.soc 504可以进一步包括用于从相机接收视频和输入的移动行业处理器接口
(mipi)相机串行接口、高速接口和/或可以用于相机和有关像素输入功能的视频输入块。soc 504可以进一步包括可以由软件控制并且可以用于接收未提交到特定角色的i/o信号的输入/输出控制器。
111.soc 504可以进一步包括大范围的外围设备接口,以使能与外围设备、音频编解码器、功率管理和/或其他设备通信。soc 504可以用来处理来自(通过千兆多媒体串行链路和以太网连接的)相机、传感器(例如可以通过以太网连接的lidar传感器564、radar传感器560等等)的数据,来自总线502的数据(例如车辆500的速率、方向盘位置等等),来自(通过以太网或can总线连接的)gnss传感器558的数据。soc 504可以进一步包括专用高性能大容量存储控制器,其可以包括它们自己的dma引擎,并且其可以用来从日常数据管理任务中释放cpu 506。
112.soc 504可以是具有灵活架构的端到端平台,该架构跨越自动化3

5级,从而提供利用和高效使用计算机视觉和adas技术以实现多样性和冗余、连同深度学习工具一起提供用于灵活可靠驾驶软件堆栈的平台的综合功能安全架构。soc 504可以比常规的系统更快、更可靠,甚至更加能量高效和空间高效。例如,当与cpu 506、gpu 508和数据存储516结合时,加速器514可以提供用于3

5级自主车辆的快速高效平台。
113.因此该技术提供了不能通过常规系统实现的能力和功能。例如,计算机视觉算法可以在cpu上执行,这些cpu可以使用诸如c编程语言之类的高级编程语言配置为跨各种各样的视觉数据执行各种各样的处理算法。然而,cpu常常不能满足许多计算机视觉应用的性能要求,诸如与例如执行时间和功耗有关的那些要求。特别地,许多cpu不能实时地执行复杂的对象检测算法,这是车载adas应用的要求和实用3

5级自主车辆的要求。
114.与常规系统形成对比的是,通过提供cpu复合体、gpu复合体和硬件加速簇,本文描述的技术允许同时和/或顺序地执行多个神经网络,并且将结果组合在一起以实现3

5级自主驾驶功能。例如,在dla或dgpu(例如gpu 520)上执行的cnn可以包括文本和单词识别,允许超级计算机读取和理解交通指示牌,包括尚未针对其特别地训练神经网络的指示牌。dla可以进一步包括能够识别、解释和提供对指示牌的语义理解,并且将该语义理解传递给运行在cpu复合体上的路径规划模块的神经网络。
115.作为另一个示例,如3、4或5级驾驶所需的,多个神经网络可以同时运行。例如,由“注意:闪烁的灯指示结冰条件”组成的警告指示牌连同电灯可以由若干神经网络独立地或者共同地进行解释。指示牌本身可以由部署的第一神经网络(例如经过训练的神经网络)识别为交通指示牌,文本“闪烁的灯指示结冰条件”可以由部署的第二神经网络解释,该部署的第二神经网络告知车辆的路径规划软件(优选地在cpu复合体上执行)当检测到闪烁的灯时,存在结冰条件。闪烁的灯可以通过在多个帧上操作部署的第三神经网络而识别,该神经网络告知车辆的路径规划软件闪烁的灯的存在(或不存在)。所有三个神经网络可以例如在dla内和/或在gpu 508上同时运行。
116.在一些示例中,用于面部识别和车主识别的cnn可以使用来自相机传感器的数据识别车辆500的授权的驾驶员和/或车主的存在。始终在传感器上的处理引擎可以用来在车主接近驾驶员车门时解锁车辆并且打开灯,并且在安全模式下,在车主离开车辆时禁用车辆。按照这种方式,soc 504提供了防范盗窃和/或劫车的安全性。
117.在另一个示例中,用于应急车辆检测和识别的cnn可以使用来自麦克风596的数据
来检测并且识别应急车辆警报(siren)。与使用通用分类器检测警报并且手动地提取特征的常规系统形成对比的是,soc 504使用cnn以对环境和城市声音分类以及对视觉数据分类。在优选的实施例中,运行在dla上的cnn被训练为识别应急车辆的相对关闭速率(例如通过使用多普勒效应)。cnn也可以被训练为识别如gnss传感器558所识别的特定于车辆在其中操作的局部区域的应急车辆。因此,例如,当在欧洲操作时,cnn将寻求检测欧洲警报,并且当在美国时,cnn将寻求识别仅仅北美的警报。一旦检测到应急车辆,在超声传感器562的辅助下,控制程序可以用来执行应急车辆安全例程,使车辆放慢速度,开到路边,停下车辆,和/或使车辆空转,直到应急车辆通过。
118.车辆可以包括可以经由高速互连(例如pcie)耦合到soc 504的cpu 518(例如分立的cpu或dcpu)。cpu 518可以包括例如x86处理器。cpu 518可以用来执行各种各样的功能中的任何功能,包括例如仲裁adas传感器与soc 504之间潜在地不一致的结果,和/或监控控制器536和/或信息娱乐soc 530的状态和健康状况。
119.车辆500可以包括可以经由高速互连(例如nvidia的nvlink)耦合到soc 504的gpu 520(例如分立的gpu或dgpu)。gpu 520可以例如通过执行冗余的和/或不同的神经网络而提供附加的人工智能功能,并且可以用来基于来自车辆500的传感器的输入(例如传感器数据)来训练和/或更新神经网络。
120.车辆500可以进一步包括网络接口524,该网络接口可以包括一个或更多个无线天线526(例如用于不同通信协议的一个或更多个无线天线,例如蜂窝天线、蓝牙天线等等)。网络接口524可以用来使能通过因特网与云(例如与服务器578和/或其他网络设备)、与其他车辆和/或与计算设备(例如乘客的客户端设备)的无线连接。为了与其他车辆通信,可以在这两辆车之间建立直接链接,和/或可以建立间接链接(例如跨网络以及通过因特网)。直接链接可以使用车对车通信链路提供。车对车通信链路可以向车辆500提供关于接近车辆500的车辆(例如车辆500前面、侧面和/或后面的车辆)的信息。该功能可以是车辆500的协作自适应巡航控制功能的部分。
121.网络接口524可以包括提供调制和解调功能并且使得控制器536能够通过无线网络通信的soc。网络接口524可以包括用于从基带到射频的上转换以及从射频到基带的下转换的射频前端。频率转换可以通过公知的过程执行,和/或可以使用超外差(super

heterodyne)过程执行。在一些示例中,射频前端功能可以由单独的芯片提供。网络接口可以包括用于通过lte、wcdma、umts、gsm、cdma2000、蓝牙、蓝牙le、wi

fi、z波、zigbee、lorawan和/或其他无线协议通信的无线功能。
122.车辆500可以进一步包括可包括片外(例如soc 504外)存储装置的数据存储528。数据存储528可以包括一个或更多个存储元件,包括ram、sram、dram、vram、闪存、硬盘和/或可以存储至少一个比特的数据的其他部件和/或设备。
123.车辆500可以进一步包括gnss传感器558。gnss传感器558(例如gps和/或辅助gps传感器)用于辅助映射、感知、占用网格生成和/或路径规划功能。可以使用任意数量的gnss传感器558,包括例如且不限于使用带有以太网到串行(rs

232)网桥的usb连接器的gps。
124.车辆500可以进一步包括radar传感器560。radar传感器560可以甚至在黑暗和/或恶劣天气条件下也由车辆500用于远程车辆检测。radar功能安全级别可以是asil b。radar传感器560可以使用can和/或总线502(例如以传输radar传感器560生成的数据)以用于控
制以及访问对象跟踪数据,在一些示例中接入以太网以访问原始数据。可以使用各种各样的radar传感器类型。例如且非限制性地,radar传感器560可以适合前面、后面和侧面radar使用。在一些示例中,使用脉冲多普勒radar传感器。
125.radar传感器560可以包括不同的配置,例如具有窄视场的远程、具有宽视场的短程、短程侧覆盖等等。在一些示例中,远程radar可以用于自适应巡航控制功能。远程radar系统可以提供通过两个或更多独立浏览实现的广阔视场(例如250m范围内)。radar传感器560可以帮助区分静态对象和运动对象,并且可以由adas系统用于紧急制动辅助和前方碰撞警告。远程radar传感器可以包括具有多根(例如六根或更多)固定radar天线以及高速can和flexray接口的单站多模radar。在具有六根天线的示例中,中央四根天线可以创建聚焦的波束图案,其被设计为在更高速率下以来自邻近车道的最小交通干扰记录车辆500的周围环境。其他两根天线可以扩展视场,使得快速地检测进入或离开车辆500的车道的车辆成为可能。
126.作为一个示例,中程radar系统可以包括高达560m(前面)或80m(后面)的范围以及高达42度(前面)或550度(后面)的视场。短程radar系统可以包括但不限于被设计为安装在后保险杠两端的radar传感器。当安装在后保险杠两端时,这样的radar传感器系统可以创建持续地监控后方和车辆旁边的盲点的两个波束。
127.短程radar系统可以在adas系统中用于盲点检测和/或变道辅助。
128.车辆500可以进一步包括超声传感器562。可以置于车辆500的前面、后面和/或侧面的超声传感器562可以用于停车辅助和/或创建和更新占用网格。可以使用各种各样的超声传感器562,并且不同的超声传感器562可以用于不同的检测范围(例如2.5m、4m)。超声传感器562可以操作于功能安全级别的asil b。
129.车辆500可以包括lidar传感器564。lidar传感器564可以用于对象和行人检测、紧急制动、碰撞避免和/或其他功能。lidar传感器564可以为功能安全级别的asil b。在一些示例中,车辆500可以包括可以使用以太网(例如以将数据提供给千兆以太网交换机)的多个lidar传感器564(例如两个、四个、六个等等)。
130.在一些示例中,lidar传感器564可能够对360度视场提供对象列表及其距离。商业上可用的lidar传感器564可以具有例如近似500m的广告范围,精度为2cm

3cm,支持500mbps以太网连接。在一些示例中,可以使用一个或更多个非突出的lidar传感器564。在这样的示例中,lidar传感器564可以实现为可以嵌入到车辆500的前面、后面、侧面和/或拐角的小设备。在这样的示例中,lidar传感器564可以甚至对于低反射率对象提供高达520度水平的和35度竖直的视场,具有200m的范围。前面安装的lidar传感器564可以被配置用于45度与135度之间的水平视场。
131.在一些示例中,也可以使用诸如3d闪光lidar之类的lidar技术。3d闪光lidar使用激光的闪光作为发射源,以照亮高达约200m的车辆周围环境。闪光lidar单元包括接受器,该接受器将激光脉冲传输时间和反射光记录在每个像素上,其进而与从车辆到对象的范围相对应。闪光lidar可以允许利用每个激光闪光生成周围环境的高度精确且无失真的图像。在一些示例中,可以部署四个闪光lidar传感器,车辆500的每一侧一个。可用的3d闪光lidar系统包括没有风扇以外的运动部件(moving part)的固态3d凝视阵列lidar相机(例如非浏览lidar设备)。闪光lidar设备可以使用每帧5纳秒i类(眼睛安全)激光脉冲,并且可
以以3d范围点云和共同寄存的强度数据的形式捕获反射的激光。通过使用闪光lidar,并且因为闪光lidar是没有运动部件的固态设备,lidar传感器564可以不太容易受到运动模糊、振动和/或震动的影响。
132.该车辆可以进一步包括imu传感器566。在一些示例中,imu传感器566可以位于车辆500的后轴的中心。imu传感器566可以包括例如且不限于加速度计、磁力计、陀螺仪、磁罗盘和/或其他传感器类型。在一些示例中,例如在六轴应用中,imu传感器566可以包括加速度计和陀螺仪,而在九轴应用中,imu传感器566可以包括加速度计、陀螺仪和磁力计。
133.在一些实施例中,imu传感器566可以实现为微型高性能gps辅助惯性导航系统(gps/ins),其结合微机电系统(mems)惯性传感器、高灵敏度gps接收器和高级卡尔曼滤波算法以提供位置、速度和姿态的估计。这样,在一些示例中,imu传感器566可以使得车辆500能够在无需来自磁传感器的输入的情况下通过直接观察从gps到imu传感器566的速度变化并且将其相关来估计方向(heading)。在一些示例中,imu传感器566和gnss传感器558可以结合到单个集成单元中。
134.该车辆可以包括置于车辆500中和/或车辆500周围的麦克风596。除别的以外,麦克风596可以用于应急车辆检测和识别。
135.该车辆可以进一步包括任意数量的相机类型,包括立体相机568、广角相机570、红外相机572、环绕相机574、远程和/或中程相机598和/或其他相机类型。这些相机可以用来捕获车辆500整个外围周围的图像数据。使用的相机类型取决于实施例和车辆500的要求,并且相机类型的任意组合可以用来提供车辆500周围的必要覆盖。此外,相机的数量可以根据实施例而不同。例如,该车辆可以包括六个相机、七个相机、十个相机、十二个相机和/或另一数量的相机。作为一个示例且非限制性地,这些相机可以支持千兆多媒体串行链路(gmsl)和/或千兆以太网。所述相机中的每一个在本文关于图5a和图5b更详细地进行了描述。
136.车辆500可以进一步包括振动传感器542。振动传感器542可以测量车辆的诸如车轴之类的部件的振动。例如,振动的变化可以指示道路表面的变化。在另一个示例中,当使用两个或更多振动传感器542时,振动之间的差异可以用来确定道路表面的摩擦或滑移(例如当动力驱动轴与自由旋转轴之间存在振动差异时)。
137.车辆500可以包括adas系统538。在一些示例中,adas系统538可以包括soc。adas系统538可以包括自主/自适应/自动巡航控制(acc)、协作自适应巡航控制(cacc)、前方撞车警告(fcw)、自动紧急制动(aeb)、车道偏离警告(ldw)、车道保持辅助(lka)、盲点警告(bsw)、后方穿越交通警告(rctw)、碰撞警告系统(cws)、车道居中(lc)和/或其他特征和功能。
138.acc系统可以使用radar传感器560、lidar传感器564和/或相机。acc系统可包括纵向acc和/或横向acc。纵向acc监控并控制到紧接在车辆500前方的车辆的距离,并且自动地调节车速以维持离前方车辆的安全距离。横向acc执行距离保持,并且在必要时建议车辆500改变车道。横向acc与诸如lca和cws之类的其他adas应用程序有关。
139.cacc使用来自其他车辆的信息,该信息可以经由网络接口524和/或无线天线526经由无线链路或者通过网络连接(例如通过因特网)间接地从其他车辆接收。直接链接可以由车对车(v2v)通信链路提供,而间接链接可以是基础设施到车辆(i2v)的通信链路。通常,
v2v通信概念提供关于紧接在前的车辆(例如紧接在车辆500前方且与其处于相同车道的车辆)的信息,而i2v通信概念提供关于前方更远处的交通的信息。cacc系统可以包括i2v和v2v信息源中的任一个或者二者。给定车辆500前方车辆的信息,cacc可以更加可靠,并且它有可能提高交通流的畅通性且降低道路拥堵。
140.fcw系统被设计为提醒驾驶员注意危险,使得驾驶员可以采取纠正措施。fcw系统使用耦合到专用处理器、dsp、fpga和/或asic的前置相机和/或radar传感器560,该专用处理器、dsp、fpga和/或asic电耦合至诸如显示器、扬声器和/或振动部件之类的驾驶员反馈。fcw系统可以提供例如声音、视觉警告、振动和/或快速制动脉冲形式的警告。
141.aeb系统检测即将发生的与另一车辆或其他对象的前方碰撞,并且可以在驾驶员在指定的时间或距离参数内没有采取纠正措施的情况下自动地应用制动器。aeb系统可以使用耦合到专用处理器、dsp、fpga和/或asic的前置相机和/或radar传感器560。当aeb系统检测到危险时,它典型地首先提醒(alert)驾驶员采取纠正措施以避免碰撞,并且如果驾驶员没有采取纠正措施,那么aeb系统可以自动地应用制动器以努力防止或者至少减轻预测的碰撞的影响。aeb系统可以包括诸如动态制动支持和/或碰撞迫近制动之类的技术。
142.ldw系统提供了诸如方向盘或座位振动之类的视觉、听觉和/或触觉警告,以在车辆500穿过车道标记时提醒驾驶员。当驾驶员指示有意偏离车道时,通过激活转弯信号,不激活ldw系统。ldw系统可以使用耦合到专用处理器、dsp、fpga和/或asic的前侧朝向相机,该专用处理器、dsp、fpga和/或asic电耦合至诸如显示器、扬声器和/或振动部件之类的驾驶员反馈。
143.lka系统是ldw系统的变型。如果车辆500开始离开车道,那么lka系统提供纠正车辆500的转向输入或制动。
144.bsw系统检测并向驾驶员警告汽车盲点中的车辆。bsw系统可以提供视觉、听觉和/或触觉警报以指示合并或改变车道是不安全的。系统可以在驾驶员使用转弯信号时提供附加的警告。bsw系统可以使用耦合到专用处理器、dsp、fpga和/或asic的后侧朝向相机和/或radar传感器560,该专用处理器、dsp、fpga和/或asic电耦合至诸如显示器、扬声器和/或振动部件之类的驾驶员反馈。
145.rctw系统可以在车辆500倒车时在后置相机范围之外检测到对象时提供视觉、听觉和/或触觉通知。一些rctw系统包括aeb以确保应用车辆制动器以避免撞车。rctw系统可以使用耦合到专用处理器、dsp、fpga和/或asic的一个或更多个后置radar传感器560,该专用处理器、dsp、fpga和/或asic电耦合至诸如显示器、扬声器和/或振动部件之类的驾驶员反馈。
146.常规的adas系统可能易于出现假阳性结果,这可能会让驾驶员烦恼并分散注意力,但是典型地不是灾难性的,因为adas系统提醒驾驶员并且允许驾驶员决定安全条件是否真正存在并且相对应地采取行动。然而,在自主车辆500中,在冲突结果的情况下,车辆500本身必须决定是否注意(heed)来自主计算机或者辅助计算机(例如第一控制器536或第二控制器536)的结果。例如,在一些实施例中,adas系统538可以是用于向备用计算机合理性模块提供感知信息的备用和/或辅助计算机。备用计算机合理性监视器可以在硬件部件上运行冗余多样的软件,以检测感知和动态驾驶任务中的故障。来自adas系统538的输出可以提供给监督mcu。如果来自主计算机和辅助计算机的输出冲突,那么监督mcu必须确定如
何协调该冲突以确保安全操作。
147.在一些示例中,主计算机可以被配置为向监督mcu提供置信度评分,指示主计算机对所选结果的置信度。如果置信度评分超过阈值,那么监督mcu可以遵循主计算机的方向,而不管辅助计算机是否提供冲突或不一致的结果。在置信度评分不满足阈值的情况下并且在主计算机和辅助计算机指示不同的结果(例如冲突)的情况下,监督mcu可以在这些计算机之间进行仲裁以确定适当的结果。
148.监督mcu可以被配置为运行神经网络,所述神经网络被训练并且被配置为基于来自主计算机和辅助计算机的输出,确定辅助计算机提供假警报的条件。因此,监督mcu中的神经网络可以了解何时可以信任辅助计算机的输出以及何时不能。例如,当辅助计算机为基于radar的fcw系统时,监督mcu中的神经网络可以了解fcw系统何时正在识别事实上不是危险的金属对象,例如触发警报的排水栅格或井盖。类似地,当辅助计算机是基于相机的ldw系统时,监督mcu中的神经网络可以学习在骑车者或行人在场并且车道偏离实际上是最安全的策略时无视该ldw。在包括运行在监督mcu上的神经网络的实施例中,监督mcu可以包括适合于利用关联的内存运行神经网络的dla或gpu中的至少一个。在优选的实施例中,监督mcu可以包括soc 504的部件和/或作为soc 504的部件而被包括。
149.在其他示例中,adas系统538可以包括使用传统计算机视觉规则执行adas功能的辅助计算机。这样,辅助计算机可以使用经典的计算机视觉规则(如果

那么),并且在监督mcu中存在神经网络可以提高可靠性、安全性和性能。例如,多样化的实现方式和有意的非完全相同(non

identity)使得整个系统更加容错,对于软件(或者软件

硬件接口)功能造成的故障而言尤其如此。例如,如果在主计算机上运行的软件中存在软件漏洞或错误并且运行在辅助计算机上的非完全相同的软件代码提供相同的总体结果,那么监督mcu可以更加确信总体结果是正确的,并且主计算机上的软件或硬件中的漏洞不造成实质性的错误。
150.在一些示例中,adas系统538的输出可以馈送至主计算机的感知块和/或主计算机的动态驾驶任务块。例如,如果adas系统538由于对象紧接在前的原因而指示前方碰撞警告,那么感知块可以在识别对象时使用该信息。在其他示例中,辅助计算机可以具有它自己的神经网络,其被训练并且因此如本文所描述的降低假阳性的风险。
151.车辆500可以进一步包括信息娱乐soc 530(例如车载信息娱乐系统(ivi))。尽管被图示和描述为soc,但是信息娱乐系统可以不是soc,并且可以包括两个或更多分立的部件。信息娱乐soc 530可以包括可以用来向车辆500提供音频(例如音乐、个人数字助理、导航指令、新闻、广播等等)、视频(例如tv、电影、流媒体等等)、电话(例如免提呼叫)、网络连接(例如lte、wi

fi等等)和/或信息服务(例如导航系统,后停车援助,无线电数据系统,诸如燃油水平、覆盖的总距离、制动燃油水平、油位、车门开/关、空气过滤器信息之类的车辆有关信息,等等)的硬件和软件的组合。例如,信息娱乐soc 530可以包括收音机、盘播放器、导航系统、视频播放器、usb和蓝牙连接、车载电脑、车载娱乐、wi

fi、方向盘音频控件、免提语音控件、平视显示器(hud)、hmi显示器534、远程信息处理设备、控制面板(例如用于控制各种部件、特征和/或系统,和/或与其交互)和/或其他部件。信息娱乐soc 530可以进一步用来向车辆的用户提供信息(例如视觉的和/或听觉的),例如来自adas系统538的信息,诸如规划的车辆机动、轨迹、周围环境信息(例如交叉路口信息、车辆信息、道路信息等等)之类的自主驾驶信息,和/或其他信息。
152.信息娱乐soc 530可以包括gpu功能。信息娱乐soc 530可以通过总线502(例如can总线、以太网等)与车辆500的其他设备、系统和/或部件通信。在一些示例中,信息娱乐soc 530可以耦合至监督mcu,使得在主控制器536(例如车辆500的主和/或备用计算机)出现故障的情况下,信息娱乐系统的gpu可以执行一些自驾驶功能。在这样的示例中,信息娱乐soc 530可以如本文所描述的将车辆500置于司机安全停车模式。
153.车辆500可以进一步包括仪表组532(例如数字仪表板、电子仪表组、数字仪表面板等等)。仪表组532可以包括控制器和/或超级计算机(例如分立的控制器或超级计算机)。仪表组532可以包括一套仪器,例如车速表、燃油水平、油压、转速表、里程表、转弯指示器、换档位置指示器、安全带警告灯、停车制动警告灯、发动机故障灯、安全气囊(srs)系统信息、照明控件、安全系统控件、导航信息等等。在一些示例中,信息可以被显示和/或在信息娱乐soc 530和仪表组532之间共享。换言之,仪表组532可以作为信息娱乐soc 530的部分而被包括,或者反之亦然。
154.图5d为根据本公开一些实施例的基于云的服务器与图5a的示例自主车辆500之间的通信的系统示意图。系统576可以包括服务器578、网络590以及包括车辆500在内的车辆。服务器578可以包括多个gpu 584(a)

584(h)(这里统称为gpu 584)、pcie交换机582(a)

582(h)(这里统称为pcie交换机582)和/或cpu 580(a)

580(b)(这里统称为cpu 580)。gpu 584、cpu 580和pcie交换机可以与诸如例如且不限于nvidia开发的nvlink接口588之类的高速互连和/或pcie连接586互连。在一些示例中,gpu 584经由nvlink和/或nvswitch soc连接,并且gpu 584和pcie交换机582经由pcie互连连接。尽管图示出八个gpu 584、两个cpu 580和两个pcie交换机,但是这并不意图是限制性的。取决于实施例,服务器578中的每一个可以包括任意数量的gpu 584、cpu 580和/或pcie交换机。例如,服务器578中的每一个可以包括八个、十六个、三十二个和/或更多gpu 584。
155.服务器578可以通过网络590并且从车辆接收图像数据,该图像数据表示示出诸如最近开始的道路工程之类的意外或改变的道路状况的图像。服务器578可以通过网络590并且向车辆传输神经网络592、更新的神经网络592和/或地图信息594,包括关于交通和道路状况的信息。对地图信息594的更新可以包括对于hd地图522的更新,例如关于建筑工地、坑洼、弯道、洪水或其他障碍物的信息。在一些示例中,神经网络592、更新的神经网络592和/或地图信息594可以已从新的训练和/或从环境中的任意数量的车辆接收的数据中表示和/或基于数据中心处执行的训练(例如使用服务器578和/或其他服务器)的经验产生。
156.服务器578可以用来基于训练数据训练机器学习模型(例如神经网络)。训练数据可以由车辆生成,和/或可以在仿真中生成(例如使用游戏引擎)。在一些示例中,训练数据被标记(例如在神经网络受益于有监督学习的情况下)和/或经历其他预处理,而在其他示例中,训练数据不被标记和/或预处理(例如在神经网络无需有监督学习的情况下)。训练可以根据任何一类或更多类机器学习技术来执行,包括但不限于以下类:监督训练、半监督训练、无监督训练、自学习、强化学习、联合学习、迁移学习、特征学习(包括主成分和聚类分析)、多线性子空间学习、流形学习、表示学习(包括备用字典学习)、基于规则的机器学习、异常检测及其任何变体或组合。一旦机器学习模型被训练,机器学习模型可以由车辆使用(例如通过网络590传输至车辆),和/或机器学习模型可以由服务器578用来远程地监控车辆。
157.在一些示例中,服务器578可以接收来自车辆的数据,并且将该数据应用到最新的实时神经网络以用于实时智能推理。服务器578可以包括由gpu 584供电的深度学习超级计算机和/或专用ai计算机,例如nvidia开发的dgx和dgx站机器。然而,在一些示例中,服务器578可以包括仅使用cpu供电的数据中心的深度学习基础设施。
158.服务器578的深度学习基础设施可能够快速实时推理,并且可以使用该能力来评估并验证车辆500中的处理器、软件和/或关联硬件的健康状况。例如,深度学习基础设施可以接收来自车辆500的定期更新,例如图像序列和/或车辆500已经定位的位于该图像序列中的对象(例如经由计算机视觉和/或其他机器学习对象分类技术)。深度学习基础设施可以运行它自己的神经网络以识别对象并且将它们与车辆500识别的对象相比较,如果结果不匹配并且该基础设施得出车辆500中的ai发生故障的结论,那么服务器578可以向车辆500传输信号,指示车辆500的故障保护计算机进行控制,通知乘客,并且完成安全停车操作。
159.为了推理,服务器578可以包括gpu 584和一个或更多个可编程推理加速器(例如nvidia的tensorrt 3)。gpu供电的服务器和推理加速的组合可以使得实时响应成为可能。在其他示例中,例如在性能不那么重要的情况下,cpu、fpga和其他处理器供电的服务器可以用于推理。
160.示例计算设备
161.图6为适合用于实现本公开一些实施例的示例计算设备600的框图。计算设备600可以包括直接或间接耦合下列设备的总线602:内存604,一个或更多个中央处理单元(cpu)606,一个或更多个图形处理单元(gpu)608,通信接口610,输入/输出(i/o)端口612,输入/输出组件614,电源616,和一个或更多个呈现组件618(例如显示器)。
162.尽管图6的各个框被示为经由具有线路的总线602连接,但是这并不意图是限制性的,并且仅仅为了清楚起见。例如,在一些实施例中,诸如显示设备之类的呈现组件618可以被认为是i/o组件614(例如如果显示器为触摸屏)。作为另一个示例,cpu 606和/或gpu 608可以包括内存(例如,内存604可以表示除了gpu 608、cpu 606和/或其他组件的内存以外的存储设备)。换言之,图6的计算设备仅仅是说明性的。在诸如“工作站”、“服务器”、“膝上型电脑”、“台式机”、“平板电脑”、“客户端设备”、“移动设备”、“手持式设备”、“游戏控制台”、“电子控制单元(ecu)”、“虚拟现实系统”和/或其他设备或系统类型之类的类别之间不进行区分,因为所有这些都被考虑在图6的计算设备的范围内。
163.总线602可以表示一条或更多条总线,例如地址总线、数据总线、控制总线或者其组合。总线602可以包括一种或更多种总线类型,例如行业标准架构(isa)总线、扩展行业标准架构(eisa)总线、视频电子标准协会(vesa)总线、外围组件互连(pci)总线、外围组件互连快速(pcie)总线,和/或另一种类型的总线。
164.内存604可以包括各种各样的计算机可读介质中的任何介质。计算机可读介质可以是可以由计算设备600访问的任何可用介质。计算机可读介质可以包括易失性和非易失性介质以及可移除和不可移除介质。举例而言且非限制性地,计算机可读介质可以包括计算机存储介质和通信介质。
165.计算机存储介质可以包括易失性和非易失性介质和/或可移除和不可移除介质,其以用于存储诸如计算机可读指令、数据结构、程序模块和/或其他数据类型之类的信息的
任何方法或技术实现。例如,内存604可以存储计算机可读指令(例如其表示程序和/或程序元素,例如操作系统)。计算机存储介质可以包括但不限于ram、rom、eeprom、闪存或者其他存储技术、cd

rom、数字多功能盘(dvd)或其他光盘存储装置、磁带盒、磁带、磁盘存储装置或其他磁存储设备,或者可以用来存储期望的信息且可以由计算设备600访问的任何其他介质。当在本文使用时,计算机存储介质并不包括信号本身。
166.通信介质可以在诸如载波之类的调制数据信号或其他传输机制中包含计算机可读指令、数据结构、程序模块和/或其他数据类型,并且包括任何信息输送介质。术语“调制数据信号”可以指这样的信号,该信号使它的特性中的一个或更多个以这样的将信息编码到该信号中的方式设置或改变。举例而言且非限制性地,通信介质可以包括诸如有线网络或直接有线连接之类的有线介质,以及诸如声音、rf、红外和其他无线介质之类的无线介质。任何以上所述的组合也应当包含在计算机可读介质的范围内。
167.cpu 606可以被配置为执行计算机可读指令以便控制计算设备600的一个或更多个组件执行本文描述的方法和/或过程中的一个或更多个。cpu 606中的每一个可以包括能够同时处理大量软件线程的一个或更多个核(例如一个、两个、四个、八个、二十八个、七十二个等等)。cpu 606可以包括任何类型的处理器,并且可以包括不同类型的处理器,这取决于实现的计算设备600的类型(例如具有用于移动设备的较少核的处理器以及具有用于服务器的更多核的处理器)。例如,取决于计算设备600的类型,处理器可以是使用精简指令集计算(risc)实现的arm处理器或者使用复杂指令集计算(cisc)实现的x86处理器。除了一个或更多个微处理器或者诸如数学协处理器之类的补充协处理器之外,计算设备600还可以包括一个或更多个cpu 606。
168.计算设备600可以使用gpu 608来渲染图形(例如,3d图形)。gpu 608可以包括能够同时处理数百或数千个软件线程的数百或数千个核。gpu 608可以响应于渲染命令(例如经由主机接口接收的来自cpu 606的渲染命令)而生成用于输出图像的像素数据。gpu 608可以包括诸如显示内存之类的用于存储像素数据的图形内存。显示内存可以作为内存604的部分而被包括。gpu 708可以包括(例如经由链路)并行操作的两个或更多gpu。当组合在一起时,每个gpu 608可以生成用于输出图像的不同部分或者用于不同输出图像的像素数据(例如,第一gpu用于第一图像,第二gpu用于第二图像)。每个gpu可以包括它自己的内存,或者可以与其他gpu共享内存。
169.在计算设备600不包括gpu 608的示例中,cpu 606可以用于渲染图形。
170.通信接口610可以包括一个或更多个接收器、发送器和/或收发器,其使得计算设备700能够经由电子通信网络与其他计算设备通信,包括有线和/或无线通信。通信接口610可以包括使能通过若干不同网络中的任何网络进行通信的组件和功能,所述网络例如无线网络(例如wi

fi、z波、蓝牙、蓝牙le、zigbee等等)、有线网络(例如通过以太网通信)、低功率广域网(例如lorawan、sigfox等等)和/或因特网。
171.i/o端口612可以使得计算设备600能够逻辑地耦合到包括i/o组件614、呈现组件618和/或其他组件在内的其他设备,其中一些可以内置到(例如集成到)计算设备600中。说明性i/o组件614包括麦克风、鼠标、键盘、操纵杆、游戏垫、游戏控制器、碟形卫星天线、浏览仪、打印机、无线设备等等。i/o组件614可以提供处理用户生成的空中手势、语音或其他生理输入的自然用户接口(nui)。在一些实例中,输入可以传输至适当的网络元件以便进一步
处理。nui可以实现语音识别、手写笔识别、面部识别、生物特征识别、屏幕上和邻近屏幕的手势识别、空中手势、头部和眼睛跟踪以及与计算设备600的显示器关联的触摸识别(如下文更详细地描述的)的任意组合。计算设备600可以包括诸如立体相机系统之类的深度相机、红外相机系统、rgb相机系统、触摸屏技术以及这些的组合,以用于手势检测和识别。此外,计算设备600可以包括使能运动检测的加速度计或陀螺仪(例如作为惯性测量单元(imu)的部分)。在一些示例中,加速度计或陀螺仪的输出可以由计算设备600用来渲染沉浸式增强现实或者虚拟现实。
172.电源616可以包括硬接线电源、电池电源或者其组合。电源616可以向计算设备600供电以使得计算设备600的组件能够操作。
173.呈现组件618可以包括显示器(例如监视器、触摸屏、电视屏幕、平视显示器(hud)、其他显示器类型或者其组合)、扬声器和/或其他呈现组件。呈现组件618可以接收来自其他组件(例如gpu 608、cpu 606等等)的数据,并且输出该数据(例如作为图像、视频、声音等等)。
174.本公开可以在由计算机或者诸如个人数字助理或其他手持式设备之类的其他机器执行的、包括诸如程序模块之类的计算机可执行指令的机器可使用指令或者计算机代码的通用上下文中进行描述。通常,包括例程、程序、对象、组件、数据结构等等的程序模块指的是执行特定任务或者实现特定抽象数据类型的代码。本公开可以在各种各样的系统配置中实践,这些配置包括手持式设备、消费电子器件、通用计算机、更专业的计算设备等等。本公开也可以在其中任务由通过通信网络链接的远程处理设备执行的分布式计算环境中实践。
175.如在本文中使用的,“和/或”关于两个或更多元素的叙述应当解释为仅指一个元素或者元素组合。例如,“元素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中的至少一个。
176.本文详细地描述了本公开的主题以满足法定要求。然而,描述本身并非意在限制本公开的范围。相反地,本发明人已经设想到,要求保护的主题也可以以其他的方式具体化,以包括与本文中结合其他当前或未来技术描述的步骤不同的步骤或者相似的步骤的组合。而且,尽管术语“步骤”和/或“块”在本文中可以用来隐含采用的方法的不同元素,但是这些术语不应当被解释为暗示本文公开的各个步骤之中或之间的任何特定顺序,除非明确描述了各步骤的顺序。
再多了解一些

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

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

相关文献