CN112904370A - 用于激光雷达感知的多视图深度神经网络 - Google Patents

用于激光雷达感知的多视图深度神经网络 Download PDF

Info

Publication number
CN112904370A
CN112904370A CN202011272919.8A CN202011272919A CN112904370A CN 112904370 A CN112904370 A CN 112904370A CN 202011272919 A CN202011272919 A CN 202011272919A CN 112904370 A CN112904370 A CN 112904370A
Authority
CN
China
Prior art keywords
data
view
classification
lidar
vehicle
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.)
Pending
Application number
CN202011272919.8A
Other languages
English (en)
Inventor
N·斯莫良斯基
R·奥迪家
陈珂
A·波波夫
J·佩瑟尔
I·埃登
T·韦克尔
D·韦尔
R·巴尔加瓦
D·尼斯特
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
Priority claimed from US16/915,346 external-priority patent/US11532168B2/en
Application filed by Nvidia Corp filed Critical Nvidia Corp
Publication of CN112904370A publication Critical patent/CN112904370A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S17/00Systems using the reflection or reradiation of electromagnetic waves other than radio waves, e.g. lidar systems
    • G01S17/88Lidar systems specially adapted for specific applications
    • G01S17/93Lidar systems specially adapted for specific applications for anti-collision purposes
    • G01S17/931Lidar systems specially adapted for specific applications for anti-collision purposes of land vehicles
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S17/00Systems using the reflection or reradiation of electromagnetic waves other than radio waves, e.g. lidar systems
    • G01S17/88Lidar systems specially adapted for specific applications
    • G01S17/89Lidar systems specially adapted for specific applications for mapping or imaging
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S7/00Details of systems according to groups G01S13/00, G01S15/00, G01S17/00
    • G01S7/48Details of systems according to groups G01S13/00, G01S15/00, G01S17/00 of systems according to group G01S17/00
    • G01S7/4802Details of systems according to groups G01S13/00, G01S15/00, G01S17/00 of systems according to group G01S17/00 using analysis of echo signal for target characterisation; Target signature; Target cross-section
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Remote Sensing (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Biophysics (AREA)
  • Software Systems (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Biomedical Technology (AREA)
  • Artificial Intelligence (AREA)
  • Electromagnetism (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Traffic Control Systems (AREA)
  • Image Analysis (AREA)

Abstract

本申请涉及用于激光雷达感知的多视图深度神经网络的技术。深度神经网络(DNN)可以用于从三维(3D)环境的传感器数据中检测对象。例如,多视图感知DNN可以包括多个组分DNN或链接在一起的阶段,其顺序地处理3D环境的不同视图。示例DNN可以包括在第一视图(例如,透视视图)中执行分类分割的第一阶段和在第二视图(例如,俯视)中执行分类分割和/或回归实例几何体的第二阶段。可以对DNN输出进行处理以生成针对3D环境中检测到的对象的2D和/或3D边界框和分类标签。因此,本文所述的技术可以用于检测和分类活动对象和/或环境的部分,并且这些检测和分类可以被提供给自主车辆驱动堆栈,以实现自主车辆的安全规划和控制。

Description

用于激光雷达感知的多视图深度神经网络
相关申请的交叉引用
本申请要求于2019年11月15日提交的第62/936,080号美国临时申请和于2019年11月21日提交的第62/938,852号美国临时申请的权益,通过引用将其全部内容并入本申请。
背景技术
设计在没有监督的情况下安全驾驶车辆的系统是非常困难的。一辆自动驾驶汽车至少应该在功能上相当于一个细心的驾驶员,他利用感知和行动系统,能够在复杂环境中识别和应对移动和静态障碍物,从而避免与沿该车辆的道路行驶的其他物体或结构相撞。因此,对于自主驾驶感知系统来说,检测活动对象(例如汽车、行人等)和环境的其他部分的能力通常是至关重要的。传统的感知方法通常依赖于照相机或激光雷达传感器来检测环境中的物体,并且已经开发了多种使用深度神经网络(DNN)的方法来执行激光雷达和照相机的感知。这类DNN的分类包括在透视图中执行相机图像全景分割的DNN,以及从激光雷达点云执行俯视或“鸟瞰视图”(BEV)对象检测的DNN。然而,这些传统方法有许多缺点。
例如,传统的全景分割DNN通常在透视图中执行图像的分类和实例分割(例如,来自正面相机或激光雷达范围扫描的RBG图像)。图1是具有透视图和从激光雷达范围扫描的全景分段中分割的分类的示例性激光雷达范围扫描的图示。在图1中,每个激光雷达输入(范围扫描)用显示了示例性分段输出(分段分类)的相应的分类掩码示出。为了简单起见,图1中省略了分段实例。图2是具有透视图的照相机图像的示例性全景分割的图示。在图2中,顶部图像是要分割的输入图像,中间图像是显示叠加在输入图像上的分段分类的分类掩码,下部图像是显示叠加在输入图像上的分段实例的实例掩码。
由于某些分类中对象的几何特征(例如,一致的结构),透视视图中的全景分割对于某些分类(如行人和骑车人)通常表现得很好。然而,当评估从被分析视图的角度看不到的特征时,全景分割常常受到挑战。例如,虽然全景分割能够检测到正面图像中的行人,但全景分割DNN通常难以准确预测检测到的对象的3D边界框或BEV二维(2D)边界框。类似地,使用透视图的全景分割DNN通常难以准确地检测出具有从所分析视图的透视图看不到的特征的对象。因此,传统的全景分割DNN在预测对象分类、对象实例、维度和方向方面的准确性有限。
传统的DNN从激光雷达点云的BEV(俯视)投影中执行对象检测,在预测BEV 2D边界框时,通常检测单一分类,包括汽车、卡车、公共汽车、行人和/或骑车人。图3是在激光雷达点云的俯视投影上执行的示例对象检测的图示。执行BEV对象检测的DNN通常难以准确检测行人或自行车,因为这些对象的俯视视图通常与其他对象(如杆、树干或灌木丛)的俯视视图相似。因此,执行BEV对象检测的传统DNN在预测对象分类、尺寸和方向方面的精度有限。解决这个问题的一个可能的解决方案是在3D体素化的体上使用3D卷积。然而,3D卷积在计算上非常昂贵,并且需要在待搜索的体中处理大量的空体素空间,从而导致效率低下。
发明内容
本发明的实施例涉及用于使用深度神经网络(DNN)的自主机器的激光雷达感知。例如,本文描述的系统和方法使用对象检测技术来识别或检测障碍物(例如,汽车、卡车、行人、骑车人等)的实例以及诸如用于自主车辆、半自主车辆、机器人和/或其他对象类型的环境组件的其他对象。与传统系统(例如上述系统)相比,本发明的系统可以包括多个组分DNN或链接在一起的阶段,它们顺序地处理3D环境的不同视图。示例性多视图感知DNN可以包括在第一视图(例如,透视视图)中执行分类分割的第一阶段和在第二视图中执行分类分割和/或回归实例几何体的第二阶段(例如,俯视)。
例如,第一阶段可以从激光雷达范围图像或RGB图像中提取分类数据(例如,置信度图、片段掩码等)。提取的分类数据可以被转换为环境的第二视图,例如,通过使用被提取的分类数据标记相应的3D位置(例如,由激光雷达范围图像的相应像素所识别的),并将标记的3D位置投影到第二视图。在一些实施例中,3D空间中对象的几何数据(例如,高度数据)可以从传感器数据(例如,通过将激光雷达点云投影到俯视视图中的一个或更多个高度图)和/或3D空间的图像(例如,通过将图像投影到世界空间并投影到俯视视图)来获得。提取的分类数据和/或几何数据可以被堆叠并输入到DNN的第二阶段,该阶段可以提取分类数据(例如,分类置信度图)和/或回归关于检测到的对象的各种类型的信息,例如第二视图中的位置、几何体和/或方向。可以对DNN输出进行处理以生成3D环境中检测到的对象的2D和/或3D边界框和分类标签。
因此,本文所描述的技术可以用于检测和分类活动对象和/或环境的部分,并且这些检测和分类可以被提供给自主车辆驱动堆栈,以实现自主车辆的安全规划和控制。与传统方法不同,通过使用多视图感知DNN顺序地处理传感器数据的多个视图,本技术可以保留单独处理每个视图的优点,同时减轻潜在的缺点。使用本文描述的方法,可以以高召回率地检测摩托车、自行车、行人和其他易受伤害道路使用者(VRU)或对象。此外,本公开的实施例可以提供一种简单有效的方法来检测和分类对象,并回归其尺寸和方向,而传统方法难以做到这一点。
附图说明
下面参照附图详细描述了本多视图激光雷达感知系统和方法,其中:
图1是具有透视图和从激光雷达范围扫描的全景分段中分割的分类的示例性激光雷达范围扫描的图示;
图2是透视视角下的照相机图像的示例全景分割的图示;
图3是在激光雷达点云的俯视投影上执行的示例性对象检测的图示;
图4是示出根据本公开的一些实施例的、对象检测系统的示例进程的数据流图;
图5是示出根据本公开的一些实施例的、用于在对象检测系统中对机器学习模型的传感器数据进行预处理的示例进程的数据流图;
图6是根据本公开的一些实施例的、示例性多视图感知机器学习模型的图示;
图7是示出根据本公开的一些实施例的、用于在对象检测系统中生成对象检测的示例后处理进程的数据流图;
图8是根据本公开的一些实施例的、通过示例多视图感知机器学习模型的示例数据流的图示;
图9是示出根据本公开的一些实施例的、用于使用传感器数据的多视图对象检测的方法的流程图;
图10是示出根据本公开的一些实施例的、用于使用激光雷达数据的透视和俯视视图对象检测的方法的流程图;
图11是示出根据本公开的一些实施例的、涉及标签传感器数据的投影的多视图对象检测的方法的流程图;
图12是根据本公开的一些实施例的、用于注释来自不同传感器的传感器数据的示例性技术的图示;
图13是根据本公开的一些实施例的、照相机空间中的汽车和卡车分类的示例注释的图示;
图14是根据本公开的一些实施例的、照相机空间中的行人分类的示例注释的图示;
图15是根据本公开的一些实施例的、激光雷达空间中俯视边界框的示例注释的图示;
图16A是根据本公开的一些实施例的示例性自主车辆的图示;
图16B是根据本公开的一些实施例的、用于图16A的示例性自主车辆的照相机位置和视野的示例;
图16C是根据本公开的一些实施例的、用于图16A的示例性自主车辆的示例性系统架构的框图;
图16D是根据本公开的一些实施例的、用于在基于云的服务器和图16A的示例性自主车辆之间进行通信的系统图;以及
图17是适于用于实现本发明的一些实施例的示例计算设备的框图。
具体实施方式
公开了与使用深度神经网络(DNN)的自主机器的多视图激光雷达感知有关的系统和方法。例如,本文所述的系统和方法使用对象检测技术来识别或检测障碍物(例如,汽车、卡车、行人、骑车人等)的实例以及诸如用于自主车辆、半自主车辆、机器人和/或其他对象类型的环境部分的其他对象。
尽管本公开可以关于示例性自主车辆1600(在本文中也称为“车辆1600”或“自主车辆1600”,其示例在本文中关于图16A-16D来描述)进行描述,但这不意图作为限制性。例如,本文所述的系统和方法可以用于非自主车辆、半自主车辆(例如,在一个或更多个高级驾驶员辅助系统(ADAS)中)、机器人、仓库车辆、越野车辆、飞行船舶、船只和/或其他车辆类型。此外,尽管本公开可以关于自动驾驶描述,但这并不意图作为限制。例如,本文所述的系统和方法可以用于机器人技术(例如,机器人的路径规划)、空中系统(例如,无人机或其他飞行器的路径规划)、航船系统(例如,船或其他水船的路径规划)和/或其他技术领域,例如用于定位、路径规划,和/或其他过程。
在高水平上,DNN可以用于从激光雷达数据和/或捕获三维(3D)环境的其他传感器数据中检测对象。在一些实施例中,DNN可以包括链接在一起的多个组分DNN或阶段,其顺序地处理3D环境的不同视图。示例性多视图感知DNN可以包括在第一视图(例如,透视视图)中执行分类分割的第一阶段和在第二视图中执行分类分割和/或回归实例几何体的第二阶段(例如,俯视(top-down))。
在一些实施例中,DNN的输入可以由激光雷达数据(例如,激光雷达范围(range)图像、激光雷达点云的投影等)和/或来自其他传感器的数据(例如,来自任意数量相机的图像)形成,并且第一阶段可以从输入提取分类数据(例如,分类置信度数据,例如任意数量的分类的置信度图)。置信度图和/或复合分割掩码可以分割(并因此表示)3D空间的第一视图(例如,透视图)。置信度图和/或复合分割可被投影到第二视图(例如,俯视),以生成经转换的分类数据以供后续DNN阶段处理。例如,提取的分类数据可以用于标记相应的3D位置(例如,由激光雷达范围图像识别的),并且被标记的3D位置(例如,被标记的激光雷达范围图像)可以被重新投影到环境的第二视图。
在一些实施例中,3D空间中对象的几何数据(例如,高度数据)可以从激光雷达数据(例如,通过将激光雷达点云投影到俯视视图中的一个或更多个高度图)和/或3D空间的图像(例如,通过将图像投影到世界空间并投影到俯视视图)获得。经转换的分类数据和几何数据可以被堆叠并输入到DNN的第二级,其可以提取分类数据(例如,分类置信度数据,例如任何数量的分类的置信度图)和/或回归关于检测到的对象的各种类型的信息,例如位置、几何体和/或方向。可以对DNN输出进行处理以生成3D环境中检测到的对象的2D和/或3D边界框和分类标签。
通常,多视图感知DNN可以接受激光雷达数据和/或3D环境的其他传感器数据的一些表示以作为输入。在一些实施例中,为了形成对DNN的输入,可以将来自自主对象(例如移动车辆)周围环境的原始激光雷达检测预处理为DNN理解的格式。特别是,可以累积激光雷达数据(例如,从有序或无序的激光雷达点云进行的原始激光雷达检测),将其转换到单个坐标系(例如,以自我角色(ego-actor)为中心),对自主运动进行补偿(例如,到自我角色的最新已知位置),和/或投影以形成激光雷达范围图像。
在某些情况下,形成诸如激光雷达范围图像之类的范围扫描图像可能会导致某些传感器数据丢失。例如,当在自主对象移动时随着时间累积检测时,当从安装在自主对象不同位置的不同传感器(即,从场景的不同视图捕获传感器数据),和/或将传感器数据折叠为分辨率不足以表示相邻传感器数据的范围图像时。在一些实施例中,当反射在范围图像的像素中被分块在一起时,可以在范围图像中表示具有最近范围(range)的反射,并且可以丢弃其他反射。另外或替代地,可以以减少传感器数据丢失和/或限制精度损失的方式选择范围图像的分辨率。例如,可以将范围图像的高度(或垂直分辨率)设置为与捕捉传感器数据的传感器的水平扫描线的数量相对应(例如,对应的激光雷达传感器的每个扫描线的范围图像中的一行像素)。可以基于捕捉传感器数据的传感器的水平分辨率来设置范围图像的宽度(或水平分辨率)。通常,水平分辨率可以是一种设计选择:较低的分辨率可能具有较少的冲突,但可能更容易处理(反之亦然)。
在一些实施例中,可以将激光雷达范围图像馈入多视图感知DNN(例如,DNN的第一阶段)。另外或可替换地,可以将激光雷达范围图像和/或其他传感器数据堆叠到输入张量的相应通道中,并馈送到多视图感知DNN中。在任何情况下,DNN可以包括链接在一起的多个阶段,这些阶段顺序地处理来自多个视图的数据,以预测3D环境中检测到的对象的分类数据和/或对象实例数据。这些输出可以被处理成2D和/或3D边界框和检测到的对象的分类标签。在自主车辆的示例应用中,DNN可以用于预测道路或人行道上每个检测到的对象的一个或更多个边界框(例如,俯视视图中的2D边界框、3D边界框)、每个检测到的对象的分类标签以及划分可驾驶空间、人行道、建筑物、树木、电线杆和其他静态对象的2D掩码环境部分(例如,在俯视的视图中)。在一些实施例中,通过从预测的对象实例数据导出框的高度,可以将俯视视图中的2D边界框调整为3D边界框。
在多视图感知DNN包括多个阶段的链的实施例中,不同的阶段可以一起训练或单独训练。在一些实施例中,可以通过使用可微操作(例如,可微重投影)来实现从第一阶段(第一视图)的输出到第二阶段(第二视图)的输入的转换来训练这些阶段。训练数据可以通过在传感器设置中注释来自多个传感器的数据来获得。由于可以从不同频率的不同传感器获得数据,在一些实施例中,特定传感器(例如,激光雷达传感器)可以用作参考传感器。对于来自参考传感器的每一帧传感器数据(例如,对于每帧激光雷达数据),可以通过识别来自传感器设置中的每个其他传感器的传感器数据帧(在时间上最接近来自参考传感器的传感器数据帧)来管理一组传感器数据。这组传感器数据(例如,时间戳T处的激光雷达数据帧加上从传感器设置中的多个照相机中的每一个在时间戳T处拍摄的图像)可以被称为时间戳T处的一组经校正的传感器数据。对于每组经校正的传感器数据,来自每个传感器的数据可以独立于其他传感器的数据进行标记。在一些实施例中,可以应用对象检测和跟踪来跟踪注释对象随时间从帧到帧的移动。因此,注释跟踪可以用于从帧到帧跟踪对象(例如,使用注释对象的持久标识符)。在一些实施例中,来自特定传感器的传感器数据的对象跟踪和/或检测可以与来自不同传感器的传感器数据针对相同对象的对应对象跟踪和/或检测相链接。同一对象的不同类型传感器数据之间的注释和/或链接可以被手动和/或自动生成,并且可以用于为多视图感知DNN生成训练数据。
因此,本文所述的技术可以用于检测和分类动画对象和/或环境的部分,并且这些检测和分类可以被提供给自主车辆驱动堆栈,以实现自主车辆的安全规划和控制。与传统方法不同,通过使用多视图感知DNN顺序处理传感器数据的多个视图,本技术可以保留单独处理每个视图的优点,同时减轻潜在的缺点。使用本文描述的方法,可以以高召回率地检测摩托车、自行车、行人和其他易受伤害道路使用者(VRU)对象。此外,本公开的实施例可以提供一种简单有效的方法来检测和分类对象,并回归其尺寸和方向,而传统方法难以做到这一点。
示例对象检测系统
参照图4,图4是示出根据本公开的一些实施例的对象检测系统的示例处理的数据流图。应当理解,本文所述的这种安排和其他安排仅作为示例来阐述。其他布置和元件(例如,机器、接口、功能、命令、功能分组等)可以用于所示内容的补充或替代,并且某些元件可以完全省略。此外,本文所描述的许多元件是功能实体,其可以被实现为离散或分布式组件,或与其他组件一起并且以任何适当的组合和位置实。本文中描述的由实体执行的各种功能可以通过硬件、固件和/或软件来执行。例如,各种功能可以由处理器执行存储在存储器中的指令来实现。
在高层次上,过程400可以包括机器学习模型408,其被配置为基于三维(3D)环境的传感器数据402检测对象,例如可懂对象的实例和/或环境的一部分。传感器数据402可以以机器学习模型408理解的格式将404预处理为输入数据406,并且可以将输入数据406馈入机器学习模型408以检测3D环境中的对象416。在一些实施例中,机器学习模型408可以包括链接在一起的多个组分机器学习模型或阶段,它们顺序地处理3D环境的不同视图。机器学习模型408可以预测检测到的对象的分类置信度的表示(例如,分类置信度数据410)和/或对于检测到的对象的对象实例数据的表示(例如,实例回归数据412),其可以在包括边界框的对象检测416中后处理414,闭合多段线或其他边界形状,用于标识检测到的对象的位置、大小和/或方向。对象检测416可以对应于自主车辆周围的障碍物、静态环境组件和/或其他对象,并且可以由自主车辆的控制元件(例如,控制器1636、ADAS系统1638、SOC 1604、软件栈422和/或图16A-16D中的自主车辆1600的其他组件)使用,以帮助自主车辆在一个环境中执行一个或更多个操作(例如,避障、路径规划、地图绘制等)。
通常,可以使用来自任何数量和任何类型的传感器的传感器数据402来执行对象检测,例如但不限于激光雷达传感器、雷达传感器、照相机和/或诸如下面关于图16A-16D中的自主车辆1600描述的那些传感器类型。例如,传感器401可以包括自主对象或自我角色的一个或更多个传感器401,例如图16A-16D所示的自主车辆1600的激光雷达传感器1664–并且传感器401可以用于生成表示自主对象周围3D环境中的对象的传感器数据402。
以激光雷达数据为例,可以使用来自一个或更多个激光雷达传感器(例如,传感器401)的激光雷达数据(例如,传感器数据402)来执行对象检测。一般来说,激光雷达系统可以包括发射激光脉冲的发射器。发射的光波从某些物体和材料反射,并且其中一个激光雷达传感器可以检测这些反射和反射特征,例如方位、方位角、仰角、范围(例如,光束飞行时间)、强度、反射率、信噪比(SNR)等。反射和反射特征可能取决于环境中的物体、速度、材料、传感器安装位置和方向等。与激光雷达传感器相关联的固件可以用于控制激光雷达传感器,以捕获和/或处理传感器数据402,例如来自传感器视野的反射数据。
一般来说,传感器数据402可以包括原始传感器数据、激光雷达点云数据和/或处理成某种其他格式的反射数据。例如,反射数据可以与位置和方向数据(例如,来自GNSS和IMU传感器)组合,以形成表示从环境检测到的反射的点云。点云中的每个检测可以包括检测的三维位置和关于检测的元数据,例如一个或更多个反射特征。激光雷达传感器的一些非限制性示例包括Velodyne HDL/VLS系列和Ouster OS1/OS2系列激光雷达传感器,并且非限制性示例操作(例如,扫描)频率可以>=5Hz。尽管这些实施例将传感器数据402描述为激光雷达数据,但是传感器数据402可以另外或可选地包括来自其他传感器的传感器数据,例如雷达数据(例如,雷达点云)、图像数据(例如,来自安装在自我角色周围的一个或更多个相机的RBG图像)和/或其他类型。
传感器数据402可以被预处理404为机器学习模型408理解的格式。例如,在传感器数据402包括激光雷达数据(和/或例如雷达数据的其他雷达数据)的实施例中,激光雷达数据(和/或其他数据)可以被累积,转换到单一的坐标系(例如,以自我角色/车辆为中心)、自主运动补偿(例如,自我角色/车辆的最新已知位置),和/或被投影仪形成所需大小的投影图像(例如,空间维度)。例如,一个(累积的,自主运动补偿的)激光雷达点云可以被投影成具有透视视图的范围激光雷达范围图像。可以使用任何合适的透视投影(例如球形、圆柱形、针孔等)。在某些情况下,投影类型可能取决于传感器的类型。作为非限制性示例,对于旋转传感器,可以使用球形或圆柱形投影。在一些实施例中,对于飞行时间照相机(例如,闪光激光雷达),可以使用针孔投影。在另一实例中,可以正交投影(累积的、自主运动补偿的)雷达点云,以形成具有期望的地面采样距离的俯视视图像。在任何情况下,投影图像(例如,激光雷达范围图像)和/或其他反射数据可以被存储和/或编码成合适的表示(例如,输入数据406),其可以作为机器学习模型408的输入。
图5是示出根据本公开的一些实施例的用于在对象检测系统中对机器学习模型408的传感器数据402进行预处理404的示例处理的数据流图。传感器数据402可以被累积510(其可以包括转换到单个坐标系)、自主运动补偿520和/或编码530到诸如投影图像(例如,激光雷达范围图像)和/或张量的适当表示中,例如,具有存储不同反射特征的多个通道。
更具体地说,诸如激光雷达数据的传感器数据402可以从多个传感器(例如,多个周围的激光雷达传感器1664中的一些或全部)从自主车辆1600的不同位置累积510,并且可以被转换到单个车辆坐标系(例如,以车辆为中心)。另外或可选地,传感器数据402可以随时间累积510,以增加累积的传感器数据的密度。传感器检测可以在任何期望的时间窗口内累积(例如0.5秒、1秒、2秒等)。可以根据传感器和/或应用程序选择窗口的大小(例如,对于噪音较大的应用,如高速公路场景,可以选择较小的窗口)。这样,机器学习模型408中的每个输入可以从滚动窗口的每个时间窗口(例如,从t窗口大小到当前的持续时间跨越)的累积检测生成。每个要评估的窗口可以按任何合适的步长递增,这可以但不必要与窗口大小相对应。因此,对机器学习模型408的每个连续输入可以基于连续窗口,其可以但不必重叠。
在一些实施例中,自主运动补偿520可以应用于传感器数据402。例如,累积的检测可以被自主运动补偿到最新的已知车辆位置。更具体地说,旧检测的位置可以被传播到移动车辆的最新已知位置,使用车辆的已知运动来估计在期望的时间点(例如,相对于车辆的当前位置)处旧检测的位置。结果可以是针对特定时间片的一组累积的、自主运动补偿的传感器数据402(例如,激光雷达点云)。
在一些实施例中,可以将(累积的、自主运动补偿的)传感器数据402编码为适当的表示,例如投影图像,其可以包括存储诸如反射特征之类的不同特征的多个通道。更具体地说,累积的自主运动补偿检测可以被投影以形成期望大小(例如,空间维度)的投影图像。可以为投影图像选择任何所需的环境视图,例如俯视视图、前视图、透视视图和/或其他视图。在一个示例中,可以投影激光雷达点云(例如,球形、圆柱形、针孔)以形成具有环境透视图的激光雷达范围图像,并且可以将激光雷达范围图像用作机器学习模型408的输入数据406。在一些实施例中,可以生成具有相同或不同视图的图像,其中每个图像被输入到机器学习模型408的单独通道中。作为非限制性示例,可以使用不同的传感器401(无论是相同类型还是不同的传感器)来生成在公共图像空间中具有相同(例如,透视)环境视图的图像数据(例如,激光雷达范围图像、相机图像等),并且可以将来自不同传感器401或传感器模式的图像数据存储在张量的独立通道。这些仅仅意味着作为示例,并且可以在本公开的范围内实现其他变体。
由于图像数据可以被评估以作为机器学习模型408的输入,所以在预测精度和计算需求之间可能存在折衷。这样,可以选择投影图像的期望空间尺寸作为设计选择。另外或可选地,为了减少由于较低的图像分辨率而导致的数据丢失,投影图像的尺寸可以基于捕捉传感器数据402的相应传感器401的特征。作为非限制性示例,可以将激光雷达范围图像的高度(或垂直分辨率)设置为与捕捉传感器数据402的传感器的水平扫描线的数量(例如,对应的激光雷达传感器的每个扫描线的范围图像中的一行像素)相对应,并且激光雷达范围图像的宽度(或水平分辨率)可以基于捕捉传感器数据402的传感器401的水平分辨率来设置。
在一些实施例中,投影图像可以包括多个层,不同层的像素值存储不同的反射特征。在一些实施例中,对于存储表示多次反射的传感器数据的每个像素,可以从反射的反射特征(例如方位、方位角、仰角、范围、强度、反射率、SNR等)计算、确定或以其他方式选择一组特征。在某些情况下,当表示多次反射的传感器数据被组合在投影图像(例如,范围图像)的像素中时,表示其中一次反射(例如,具有最近范围的反射)的传感器数据可以被表示在投影图像中,并且表示其他反射的传感器数据可以被丢弃。例如,在具有将多次反射存储在一起的像素的范围图像中,该像素可以存储与具有最近范围的反射相对应的范围值。另外或可选地,当在一个像素中有多次反射被组合在一起,从而形成一个点塔时,可以通过聚类多次重叠反射的对应反射特征来计算该像素的特定特征(例如,使用标准差、平均值等)。通常,任何给定的像素可以具有多个相关联的特征值,这些特征值可以被存储在张量的相应通道中。在任何情况下,传感器数据402可以被编码530到各种类型的输入数据406中(例如,诸如激光雷达范围图像的投影图像、编码投影图像的张量和相应的反射特征),并且输入数据406可以作为进入机器学习模型408中的输入。
在高层次上,机器学习模型408可以检测诸如障碍物实例、环境的静态部分和/或输入数据406中表示的其他对象(例如,激光雷达范围图像、相机图像和/或堆叠到输入张量的相应通道中的其他传感器数据)。例如,机器学习模型408可以提取表示3D环境中检测到的对象的分类数据(例如,分类置信度数据410)和/或对象实例数据,例如位置、几何体和/或方向数据(例如,实例回归数据412)。分类数据和对象实例数据可以经后处理414以生成分类标签和2D和/或3D边界框、闭合多段线或其它边界形状,以识别检测到的对象实例的位置、几何体和/或方向。
在一些实施例中,机器学习模型408可以使用DNN实现,例如卷积神经网络(CNN)。尽管以使用神经网络(并且具体来说为CNN)实现的机器学习模型408来描述某些实施例,但是这并不意图限制性。例如,并且不限于,机器学习模型408可以包括任何类型的机器学习模型,例如使用线性回归、逻辑回归、决策树、支持向量机(SVM)、朴素贝叶斯、k-最近邻(Knn)、K-均值聚类、随机森林的机器学习模型,降维算法、梯度提升算法、神经网络(例如,自动编码器、卷积、递归、感知器、长/短期记忆(LSTM)、霍普菲尔德、玻尔兹曼、深层置信、反卷积、生成对抗、液态机器等)和/或其他类型的机器学习模型。
在一些实施例中,机器学习模型408可以包括具有用于基于输入数据406预测不同输出的多个头部(或至少部分离散的层流)的公共主干(或层流)。例如,机器学习模型408可以包括但不限于特征提取器(例如,DNN、编码器/解码器等),包括卷积层、池层和/或其他层类型,其中特征提取器的输出被提供为输入到第一头部以用于预测分类数据,以及第二头部以用于预测检测到的物体的位置、几何形状和/或方向。在一些例子中,第一头部和第二头部可以接收并行输入,因此可以从类似的输入数据产生不同的输出。
一般来说,机器学习模型408可以包括特征提取器,其被配置为评估具有3D环境的不同视图的图像。例如,机器学习模型408可以包括链接在一起的多个阶段中的单独特征提取器,以顺序地处理来自3D环境的多个视图的数据。例如,机器学习模型408可以包括第一阶段,具有被配置成从具有环境的第一视图(例如,透视视图)的图像中提取分类数据第一特征提取器,并且第一特征提取器的输出可以转换为环境的第二视图(例如,俯视的视图)并输入到第二特征提取器中,其可以包括公共主干和多个头部,其为检测到的对象提取不同的输出,如分类数据和对象实例数据。另外或可选地,可以生成具有不同视图的多个图像,每个图像可以被馈入到单独的并排特征提取器中,并且可以组合由单独的特征提取器输出的潜在空间张量以形成分类数据和/或对象实例数据。这些架构是指作为示例,并且在本公开的范围内可以预期其他架构。
现在转到图6,图6是根据本公开的一些实施例的示例性多视图感知机器学习模型(例如,图4的机器学习模型408的示例实现)的图示。在图6的示例中,用包括链接在一起用于顺序处理的多个阶段的示例架构来对机器学习模型408说明。在第一阶段中,编码器/解码器605可以从输入数据406中提取类置信度数据610(例如,第一视图中的一个或更多个置信度图,例如透视图),并且可以将分类置信度数据610转换成第二视图,以形成转换后的分类置信度数据630(例如,如俯视视图的第二视图中的一个或更多个置信度图)。该数据可由传感器数据402中表示的对象的几何数据640(例如,表示在与第二视图的两个维度正交的方向上的对象几何尺寸,例如高度)来补充。转换后的分类置信度数据630(例如,俯视视图中的一个或更多个置信度图)和/或几何数据640(例如,一个或更多个高度图)可以被编码645(例如,堆叠到张量的相应通道中)并馈送到第二阶段,该第二阶段包括连接到分类置信头部655的编码器/解码器主干650和实例回归头部660,其可以提取分类置信度数据610(例如,俯视视图中的一个或更多个置信度图)和实例回归数据412(例如,对象实例数据,如位置、几何体和/或方向)。
编码器/解码器605可以使用具有跳跃连接的编码器和解码器组件来实现(例如,类似于特征金字塔网络、U-Net等)。例如,编码器/解码器605可以接受输入数据406,例如激光雷达范围图像和/或RBG图像,并且可以应用各种卷积、池化和/或其他类型的操作来提取任何数量的被支持的分类的分类置信度数据610。在示例实现中,编码器/解码器605可以包括编码(收缩)路径和解码(扩张)路径。沿着收缩路径,每个分辨率可以包括任意数量的层(例如,卷积、扩张卷积、起始块等)和下采样操作(例如,最大池化)。沿着扩张路径,每个分辨率可以包括任意数量的层(例如,反卷积、上采样后卷积和/或其他类型的操作)。在扩张路径中,特征图的每个分辨率可以被上采样并与来自收缩路径的具有相同分辨率的特征图连接(例如,在深度维度)。在该示例中,收缩路径和扩张路径的相应分辨率可以连接跳跃连接,其可以用于添加或连接来自相应分辨率的特征图。
编码器/解码器605的输出可以是任何数量的被支持分类(例如,每个分类一个通道)的分类置信度数据610。被支持分类的示例可以包括车辆(例如,汽车、公共汽车、卡车等)、易受伤害的道路使用者(例如摩托车、自行车、行人等)、环境部分(例如,可驾驶空间、人行道、建筑物、树木、电线杆等)、其子类(例如步行行人)、其某些组合和/或其他。例如,分类置信度数据610可以包括一个或更多个置信度图的表示(例如,每个分类一个)。作为非限制性示例,编码器/解码器605可以输出具有对应于N个分类的N个通道的张量(例如,每个通道一个置信度图)。因此,张量中的每个像素可以存储表示像素是每个通道对应分类的一部分的概率、分数或逻辑的深度方向的像素值。在一些实施例中,深度方向的像素值的和可以被规范化为某个值(例如,1)。在一些实施例中,预测值可以用于为每个分类(通道)生成不同的分类分段掩码,和/或可以被折叠成单个复合分段掩码,其中每个像素包含一个分类标签(例如,由不同的整数表示)。在图6所示的实施例中,编码器/解码器605输出分类置信度数据610(例如,一个或更多个置信度图),然而,在其他实施例中,编码器/解码器605可以另外或可选地输出其他类型的分类数据(例如,存储每个像素的二进制值的N个分类分段掩码,为每个像素存储最有可能的分类标签的复合分段掩码)。
通常,编码器/解码器605的输出(例如,分类置信度数据610或其他分类数据)可以被从环境的第一视图转换为第二视图。例如,由编码器/解码器605提取的分类数据可以用于标记620环境中的对应的3D位置,并且所标记的3D位置可以被投影625到第二视图中。
以特定分类的置信度图为例,置信度图可以具有与输入到编码器/解码器605(例如,激光雷达范围图像)的输入相对应的空间维度,并且置信度图可以包括每个像素的分类值(例如,概率、分数或逻辑)。在一些情况下,分类值可以被映射到由相应的传感器数据402和/或输入数据406识别的已知3D位置。例如,对应的输入激光雷达范围图像可以具有范围扫描像素和激光雷达点云(激光雷达检测)中的对应点之间的已知对应关系,其可以具有已知的3D位置。因此,来自预测置信度图的分类值可以与由输入的激光雷达范围图像中的相应的范围扫描像素表示的激光雷达检测的3D位置相关联。
在另一示例中,假设输入到编码器/解码器605的输入包括由照相机生成的RGB图像的表示,并且编码器/解码器605通过为每个像素生成一个或更多个分类值来对RGB图像的每个像素进行分类。分类值可以与从诸如激光雷达或雷达检测之类的其它传感器数据中识别的3D位置相关联,或者与来自环境的3D表示(例如环境的3D地图)的3D位置相关联。例如,在与输入RGB图像相同的时间片中捕获的激光雷达或雷达数据可以被投影以形成与输入RGB图像具有相同视图的范围图像。在这种情况下,通过识别由范围图像中相应的范围扫描像素表示的传感器检测的3D位置(例如,点云中的点),可以与上一示例类似的方式将来自预测置信度图的分类值与3D位置相关联。在另一示例中,在环境的3D表示中具有已知方向和位置的传感器(例如,由照相机生成的RGB图像)生成的图像数据可以不被投影到世界空间中,以识别与每个像素相对应的对象在世界空间中的3D位置。这些只是几个例子,并且在本公开的范围内可以实现其他变体。
这样,从对应时间片的传感器数据(例如,传感器数据402)或来自环境的3D表示的对应部分的3D位置可以用由编码器/解码器605提取的分类数据(例如,分类值、标签)标记620。被标记的3D位置可以被投影625到环境的第二视图中,例如,通过正交地投影标记的3D位置以形成具有期望的空间尺寸和地面采样距离的投影图像(例如,具有俯视视图的俯视视图像)。在一个示例实现中,可以将语义标记的范围图像转换为俯视的表示。
在某些情况下,投影625被标记的3D位置可以仅仅包括将被标记的3D位置压扁到平面中,或者以其他方式(例如,正交地)将被标记的3D位置投影到投影图像中(例如,通过丢弃被标记点的z值将点云压扁到平面中)。在一些情况下,投影625被标记的3D位置可以包括在投影图像的像素中将多个点组合在一起。因此,当在投影图像(例如,俯视的图像)的像素中将多个点组合在一起时,可以使用任何技术来选择或以其他方式表示一个或更多个点(例如,选择诸如最高点或最低点的一个点)。在某些情况下,可以采用过滤(例如,省略3米或4米以上的点)。投影3D位置所在的所产生的投影图像的每个像素可以存储提取的分类数据,其中3D位置被标记(例如,分类值或标签)。
因此,结果可以是表示在环境的第二视图中提取的分类数据的经转换的分类数据(例如,转换后的置信度图或分割掩码)。一般来说,任何数量的置信度图(例如,存储对应分类中每个像素的分类值的N个置信度)、单个分类分割掩码(例如,存储指示对应类中每个像素的二进制值的N个分类分割掩码)和/或复合分段掩码(例如,对于存储每个像素的最可能分类的标签的单个通道)可以被转换615。如果被转换的分类数据有N个通道,则经转换的分类数据可以有N个对应的通道。在图6所示的实施例中,分类置信度数据610(例如,透视图中的一个或更多个置信度图)可以被转换以形成转换后的分类置信度数据630(例如,俯视视图中的一个或更多个置信度图)。然而,在其他实施例中,其他类型的分类数据(例如,存储每个像素的二进制值的N个类分段掩码、存储每个像素的最可能的分类标签的复合分段掩码)可以另外或可选地被转换615。
通常,经转换的分类数据630可以表示环境的第二视图,因此经转换的分类数据可以揭示由第二视图表示的两个维度中的对象特征(例如,位置、几何体、方向)。在一些实施例中,表示对象特征(例如,与第二视图正交)的几何数据640可以从对应时间片的传感器数据(例如,传感器数据402)生成635。例如,可以对表示环境中检测到的对象的3D位置的传感器数据进行采样或以其他方式处理,以表示特定维度(例如,正交维度)中检测到的对象的特征,例如,通过在特定维度中取传感器数据的一个或更多个切片。以第二视图为俯视视图的激光雷达或雷达点云为例,可以在高维度中获取点云的一个或更多个切片以生成具有检测到的对象的平面表示的几何数据640,例如最小和最大高度图。在这个例子中,这种图的每个像素可以表示俯视视图中的一列。如果表示3D环境中多个对象的传感器数据在单个像素中被组合在一起(例如,点云中的多个点位于由像素表示的列中),则可以使用任何类型的采样或统计度量来表示数据的收集(例如,列中的点)。例如,每个像素可以存储列中所有点的最小高度(例如,最小高度图)、列中所有点的最大高度(例如,最大高度图)、列中所有点的中间高度、列中所有点的平均高度、列中所有点高度的方差,和/或其他。这样,可以生成具有环境中检测到的对象的平面表示的几何数据640(例如,高度数据)的一个或更多个切片635。
在另一示例中,环境中对象的几何数据640可以从传感器(例如,照相机)生成的图像数据(例如,RGB图像)635生成。例如,捕捉图像数据的传感器的已知方向和位置可以用于将图像数据反投影到环境的3D表示中(例如,3D图或一些其他世界空间),并识别与每个像素对应的世界空间中的对象的3D位置。在这种情况下,所识别的3D位置的一个或更多个切片可以用于生成635几何数据640(一个或更多个高度图)。
通常,经转换的分类数据(例如,转换后的分类置信度数据630)和/或几何数据(例如,几何数据640)可以被编码645或以其他方式组织成编码器/解码器主干650的一些合适的表示。例如,在变换后的分类置信度数据630包括N个变换后的置信度图,而几何数据640包括M个高度图的实施例中,对于N个置信度图和M个高度图,转换后的分类置信度数据630和几何数据640可以被编码645到具有N个通道的张量中。这只是一个示例,并且转换的分类数据和/或几何数据的任何适当表示都可以被实现。
图6的机器学习模型408的第二阶段包括编码器/解码器主干650、分类置信头部655和实例回归头部660。第二阶段可以从经转换的分类数据和/或几何数据(例如,具有M+N个通道的张量)的表示中提取特征,并且可以在第二视图中执行分类分割和/或回归实例几何。
编码器/解码器主干650可以使用具有跳跃连接的编码器和解码器组件来实现(例如,类似于特征金字塔网络、U-Net等)。例如,编码器/解码器主干650可以接受变换后的分类置信度数据630和/或几何数据640的表示,并应用各种卷积、池化和/或其它类型的操作来将特征提取到一些潜在空间中。在图6中,使用涉及编码(收缩)路径和示例解码(扩张)路径的示例实现来说明编码器/解码器主干650。沿着收缩路径,每个分辨率可以包括任意数量的层(例如,卷积、扩张卷积、起始块等)和下采样操作(例如,最大池化)。沿着扩张路径,每个分辨率可以包括任意数量的层(例如,反卷积、上采样后卷积和/或其他类型的操作)。在扩张路径中,特征地图的每个分辨率可以被上采样并与来自收缩路径的具有相同分辨率的特征地图连接(例如,在深度维度)。在该示例中,收缩路径和扩张路径的相应分辨率可以与跳跃连接连接,跳跃连接可以用于添加或连接来自相应分辨率的特征图。这样,编码器/解码器主干650可以将特征提取到一些潜在空间张量中,这些潜在空间张量可以被输入到分类置信头部655和实例回归头部660中。
分类置信头部655可以包括任意数量的层655A、655B、655C(例如,卷积、池化、诸如柔性最大值传输函数的分类器和/或其他类型的操作等),其从编码器/解码器主干650的输出预测分类数据。例如,分类置信头部655可以包括用于待检测的每一类对象(例如,车辆、汽车、卡车、易受伤害的道路使用者、行人、自行车、摩托车、可驾驶空间、人行道、建筑物、树木、电线杆、其子类、它们的某些组合等)的通道(例如,层流加上分类器),因此分类置信头部655以任何合适的形式提取分类数据(例如,分类置信度数据410)。例如,分类置信头部655可以预测表示是否存在特定对象(不考虑分类)的推断置信度的置信度图、每个分类的独立置信度图等。在一些实施例中,由分类置信头部655预测的分类置信度数据410可以采用多通道张量的形式,其中每个通道可以被认为是存储每个像素属于与通道对应的分类的分类值(例如,概率、分数或逻辑)的热度图。
实例回归头部660可以包括任意数量的层660A、660B、660C(例如,卷积、池化、诸如柔性最大值传输函数的分类器和/或其他类型的操作等),其从编码器/解码器主干650的输出预测对象实例数据(例如检测到的对象的位置、几何体和/或方向)。实例回归头部660可以包括N个通道(例如,层流加上分类器),其中每个通道回归关于被检测对象实例的特定类型的信息,例如对象的位置(例如,指向对象中心的dx/dy向量)、对象高度、对象宽度、对象方向(例如,旋转角,如正弦和/或余弦)、其某些统计测量值(例如最小值、最大值、平均值、中值、方差等)和/或类似值。作为非限制性示例,实例回归头部660可以包括识别被检测对象中心的x维度、被检测对象中心的y维度、被检测对象的宽度、被检测对象的高度(例如,离地面的位移)的单独尺寸,被检测对象的方向的正弦(例如,2D图像空间中的旋转角)、被检测对象的方向的余弦和/或其他类型的信息。这些类型的对象实例数据仅仅是作为示例,其他类型的对象信息可以附加地或者替代地被回归。实例回归头部660可以包括用于每个分类的单独的回归通道,或者针对所有分类的一组通道。在一些实施例中,由实例回归头部660预测的实例回归数据412可以采用多通道张量的形式,其中每个通道可以包括对特定类型的对象信息(例如特定对象维度)进行回归的浮点数。
因此,机器学习模型408可以预测来自特定输入(例如,输入数据406)的多通道分类数据(例如,分类置信度数据410)和/或多通道对象实例数据(例如,实例回归数据412)。下面将更详细地描述一些可能的训练方法。在操作中,可以对机器学习模型408的输出进行后处理(例如,解码)以生成边界框、闭合多段线或其它边界形状,以识别检测到的对象实例的位置、几何体和/或方向。例如,当机器学习模型408针对环境的特定视图(例如,俯视的视图)预测分类置信度数据410和/或实例回归数据412时,可以相对于该视图识别边界框、闭合多段线或其他边界形状(例如,在与机器学习模型408的第二阶段的输入相同的图像空间中)。在一些实施例中,由于对象实例数据可能是噪声的和/或可能产生多个选项,所以可以使用非最大抑制、基于密度的带噪应用程序的空间聚类(DBSCAN)和/或另一个函数来生成边界形状。
图7是示出根据本公开的一些实施例的用于在对象检测系统中生成对象检测416的示例后处理进程414的数据流图。在该示例中,后处理进程414包括实例解码710和过滤和/或集群720。一般来说,实例解码710可以基于对象实例数据(例如,位置、几何体、和/或方向数据)识别2D和/或3D候选边界框(或其他边界形状),该对象实例数据来自实例回归数据412的相应通道和/或来自该分类的分类数据(例如,类置信度数据410)的相应通道的置信度图或掩码。更具体地说,预测到的置信度图和预测到的对象实例数据可以指定关于检测到的对象实例的信息,例如对象的位置、对象高度、对象宽度、对象方向等。该信息可以用于识别候选对象检测(例如,具有唯一中心点、对象高度、对象宽度、对象方向等的候选对象)。结果可以是每个对象分类的一组二维和/或三维候选边界框(或其他边界形状)。
各种类型的过滤和/或聚类720可以用于从每个对象分类的候选边界框(或其他边界形状)中移除重复和/或噪声。例如,在一些实施例中,可以使用非最大值抑制来移除重复。如果两个或更多个候选边界框具有相关联的置信值,指示候选边界框可以对应于同一对象实例,则可以使用非最大值抑制。在这样的例子中,对于对象实例是最高的置信值可以用于确定将哪个候选边界框用于该对象实例,并且非最大抑制可以用于移除或抑制其他候选。
例如,每个候选边界框(或其他边界形状)可以与对应的置信度/概率值相关联,该对应的置信度/概率值与来自被评估的分类的分类置信度数据410的对应通道的一个或更多个对应像素相关联(例如,使用诸如中心像素的代表像素的置信度/概率值,使用在候选区域上计算的平均值或某个其他合成值等)。因此,可以过滤掉作为对象分类成员的置信度/概率小于某个阈值(例如,50%)的候选边界形状。另外或可选地,对于特定分类具有最高置信度/概率得分的候选边界框(或其他形状)可以被分配实例ID,可以针对该分类中的每一个其他候选来计算诸如求交于并(IoU)之类的度量,而可以过滤掉IoU高于某个阈值的候选对象以删除重复项。可以重复该过程,为具有下一个最高置信度/概率得分的候选者分配实例ID,删除重复项,并重复,直到没有更多的候选者剩余。可以对每个其他分类重复该过程以移除重复的候选对象。
在一些实施例中,可以使用诸如基于密度的带噪应用程序的空间聚类(DBSCAN)的聚类方法来移除重复的候选边界形状。例如,可以将候选边界形状聚类(例如,可以聚类候选边界形状的中心),可以确定每个簇中的候选对象对应于相同的对象实例,并且可以从每个簇中移除重复的候选对象。
因此,可以对提取的分类数据和/或对象实例数据进行解码(例如,通过实例解码710)、过滤和/或聚类(例如,通过过滤和/或聚类720),以识别每个特定分类中检测到的对象的边界框、闭合多段线或其他边界形状(例如,基于来自分类置信度数据410和实例回归数据412的相应通道的数据)。可以基于被评估的特定分类(例如,基于通道和分类标签之间的已知映射)将分类标签应用于每个识别到的边界形状。在某些情况下,可以首先确定2D边界形状,并且可以从提取的对象实例数据(例如,基于对象高度的特定回归通道,基于高度尺寸中最小值和最大值的单独回归通道等)推断每个2D边界形状的第三个维度(例如,高度)。因此,可以为环境中检测到的对象标识2D和/或3D边界形状和分类标签。
综上所述,机器学习模型408可以接受具有诸如激光雷达范围图像的第一视图的传感器数据的表示,对传感器数据的表示执行分割以提取分类数据,将分类数据转换为具有第二视图的表示,并且对执行分段和实例回归以提取分类数据和/或对象实例数据的第二个视图。可以对提取到的分类数据和/或对象实例数据进行后处理以生成分类标签和2D和/或3D边界框、闭合多段线或其他边界形状,以标识投影图像中检测到的对象实例的位置、大小和/或方向。
图8是根据本公开的一些实施例的,通过示例多视图感知机器学习模型的示例数据流的图示。在图8中,将激光雷达范围图像810输入到神经网络的第一阶段(例如,图6的编码器/解码器605),该神经网络分割激光雷达范围图像以生成分段的激光雷达范围图像820。分段的激光雷达范围图像820被转换为俯视的视图830,与高度数据堆叠,并通过神经网络的第二阶段(例如,图6的编码器/解码器主干650、分类置信头部655和实例回归头部660)馈送。注意,分段的激光雷达范围图像820的分类区域(例如,可驾驶空间825)已经被转换为俯视视图830中的相应区域(例如,转换后的可驾驶空间835)。神经网络的第二阶段提取分类数据和对象实例数据,并对其进行后处理,生成被检测对象的边界框。
一旦确定了对象实例的位置、几何体、方向和/或分类标签,则定义对象实例的2D像素坐标可以被转换为3D世界坐标,以供自主车辆在执行一个或更多个操作(例如,避障、车道保持、换道、路径规划、地图绘制等)时与相应的分类标签一同使用。在一些实施例中,不使用DNN的低级激光雷达感知堆栈可以处理传感器数据以检测与机器学习模型408并行的对象(例如,用于冗余)。因此,返回到图4,对象检测416(例如,边界框、闭合多段线或其他边界形状)可以由图16A-16D所示的自主车辆1600的控制组件使用,例如在车辆1600的一个或更多个组件(例如,SoC 1604、CPU 1618、GPU 1620等)上执行的自主驱动软件堆栈422。例如,车辆1600可以使用该信息(例如,障碍物实例)在环境中导航、规划或以其他方式执行一个或更多个操作(例如,避障、车道保持、变道、合并、分离等)。
在一些实施例中,对象检测416可以由自主驱动软件堆栈422的一个或更多个层使用(在本文中也称作“驱动堆栈422”)。驱动堆栈422可以包括传感器管理器(未示出)、感知组件(例如,对应于驱动堆栈422的感知层)、世界模型管理器426、规划组件428(例如,对应于驱动堆栈422的规划层)、控制组件430(例如,对应于驱动堆栈422的控制层)、避障组件432(例如,对应于驱动堆栈422的避障或防撞层)、驱动组件434(例如,对应于驱动堆栈422的驱动层)和/或其他组件,对应于驱动器堆栈422附加和/或替代的层。在一些示例中,过程400可以由感知组件执行,其可以将驱动器堆栈422的层馈送给世界模型管理器,如本文中更详细地描述的那样。
传感器管理器可以从车辆1600的传感器管理和/或提取传感器数据402。例如,并且参考图16C,可以由雷达传感器1660生成(例如,基于特定条件,不断地、间隔地)传感器数据402。传感器管理器可以从不同格式的传感器接收传感器数据402(例如,相同类型的传感器可以以不同格式输出传感器数据),并且可以被配置成将不同格式转换为统一格式(例如,对于相同类型的每个传感器)。结果,自主车辆1600的其他组件、特征和/或功能可以使用统一格式,从而简化传感器数据402的处理。在一些示例中,传感器管理器可以使用统一格式将控制应用回车辆1600的传感器,例如设置帧速率或执行增益控制。传感器管理器还可以用时间戳更新与传感器数据相对应的传感器分组或通信,以帮助通知由自主车辆控制系统的各种组件、特征和功能对传感器数据的处理。
世界模型管理器426可以用于生成、更新和/或定义世界模型。世界模型管理器426可以使用由驱动堆栈422的感知组件生成和接收的信息(例如,检测到的障碍物的位置)。感知组件可以包括障碍物感知器、路径感知器、等待感知器、地图感知器和/或其他感知组件。例如,可以至少部分地基于障碍物感知者、路径感知器、等待感知器和/或地图感知器实时或接近实时地感知的障碍物、路径和等待条件的供给来定义世界模型。世界模型管理器426可以基于来自障碍物接收器、路径接收器、等待接收器、地图接收器和/或自主车辆控制系统的其他组件的新生成和/或接收到的输入(例如,数据)来持续更新世界模型。
世界模型可以用于帮助通知驱动堆栈422的规划组件428、控制组件430、避障组件432和/或驱动组件434。障碍物感知器可以执行障碍物感知,其可以基于车辆1600被允许驾驶或能够驾驶的位置(例如,基于通过避开检测到的障碍物而定义的可驾驶路径的位置),以及车辆1600在不与由车辆1600和/或机器学习模型408的传感器感测到的障碍物(例如,物体,例如结构物、实体、车辆等)相撞的情况下的行驶速度。
路径接收器可以执行路径感知,例如通过感知在特定情况下可用的标称路径。在一些例子中,路径感知器可以进一步考虑车道的变化来感知路径。车道图可以表示车辆1600可用的一条或多条路径,并且可以像高速公路入口匝道上的单个路径一样简单。在一些示例中,车道图可以包括到所需车道的路径和/或可以指示沿高速公路(或其他道路类型)的可用变化,或者可以包括附近车道、车道变化、岔道、转弯、立体交叉、合并和/或其他信息。
等待接收器可以负责根据规则、惯例和/或实际考虑因素来确定车辆1600上的约束。例如,规则、惯例和/或实际考虑因素可能与红绿灯、多向停车、让道、合并、收费站、大门、警察或其他应急人员、道路工人、停靠的公共汽车或其他车辆、单向桥仲裁、渡口等有关。因此,可以利用等待感知器来识别潜在障碍物,并实施一个或更多个控制(例如,减速、停车等),这些控制可能仅依靠障碍物接收器是不可能的。
地图接收器可以包括识别行为的机制,并且在一些示例中,以确定在特定区域应用什么约定的特定示例。例如,地图感知器可以根据表示之前驾驶或旅行的数据确定,在特定的十字路口,在特定的时间之间没有U型转弯,示车道方向的电子标志会随着时间而改变,两个距离很近的交通灯(例如,彼此几乎没有偏移)与不同的道路相关联,在罗得岛州,第一个在红绿灯处左转的汽车违反了法律,因为绿灯亮时,它会在迎面驶来的车辆前转弯,和/或其他信息。地图接收器可以通知车辆1600静态或静止基础设施物体和障碍物。地图接收器还可以为等待接收器和/或路径接收器生成信息,例如,以确定交叉口处的哪个灯必须为绿色,以便车辆1600走特定路径。
在一些示例中,可以将来自地图接收器的信息发送、传输和/或提供给服务器(例如,图16D中服务器1678的地图管理器),并且可以将来自服务器的信息发送、传输和/或提供给地图接收器和/或车辆1600的定位管理器。地图管理器可以包括云地图应用程序,其从车辆1600远程定位,并可以由车辆1600通过一个或更多个网络访问。例如,车辆1600的地图接收器和/或定位管理器可以与地图管理器和/或服务器的一个或更多个其他组件或特征通信,以向地图感知器和/或本地管理器告知1600车辆的过去和现在的驾驶或行程,以及其他车辆的过去和现在的驾驶或行程。地图管理器可以提供地图输出(例如,地图数据),这些输出可以由本地化管理器基于车辆的特定位置1600进行本地化,并且该本地化的地图输出可以由世界模型管理器426用于生成和/或更新世界模型。
规划组件428可以包括路线规划器、车道规划器、行为规划器和行为选择器等组件、特征和/或功能。路线规划器可以使用来自地图接收器、地图管理器和/或定位管理器的在其他信息中的信息来生成规划好的路径,该路径可以包括GNSS航路点(例如,GPS航路点),3D世界坐标(例如,笛卡尔坐标,极坐标等),表示相对于车辆上的原点1600的坐标,等等。这些航路点可以代表车辆1600未来的特定距离,例如城市街区数、公里数、英尺数、英寸数、英里数等,这可以作为车道规划器的对象。
车道规划器可以使用车道图(例如,来自路径感知器的车道图)、车道图中的对象姿势(例如,根据本地化管理器)和/或从路线规划器到未来距离的对象点和方向作为输入。对象点和方向可以被映射到车道图中的最佳匹配驾驶点和方向(例如,基于GNSS和/或罗盘方向)。然后,可以从车道图中的当前边对车道图执行图搜索算法,以找到到对象点的最短路径。
行为规划器可以确定车辆1600的基本行为的可行性,例如停留在车道上或向左或向右改变车道,以便这些可行的行为可以与车道规划器输出的最期望的行为相匹配。例如,如果确定所期望的行为不安全和/或不可用,则可以选择默认行为来代替(例如,默认行为可能是在所期望行为或改变车道不安全时留在车道上)。
控制组件430可以在车辆1600的能力范围内,尽可能接近从规划组件428的行为选择器(例如,基于对象检测416)接收到的轨迹或路径(横向和纵向)。控制组件430可以使用紧密反馈来处理未建模的意外事件或行为和/或导致与理想不符的任何事物(例如,意外延迟)。在一些示例中,控制组件430可以使用将控制作为输入变量的前向预测模型,并且生成可以与期望状态(例如,与规划组件428请求的期望的横向和纵向路径相比较)进行比较的预测。可以确定尽量减少差异的控制措施。
尽管分别示出了规划组件428和控制组件430,但这并不意图限制。例如,在一些实施例中,规划组件428和控制组件430之间的描绘可能没有被精确地定义。因此,归属于规划组件428的至少一些组件、特征和/或功能可以与控制组件430关联,反之亦然。对于驱动器堆栈422的任何单独图示的组件,这也可以成立。
避障组件432可以帮助自主车辆1600避免与物体(例如,移动和静止物体)的碰撞。避障组件432可以包括在避障的“原始级别”的计算机制,并且可以充当车辆1600的“生存大脑”或“爬行动物大脑”。在一些示例中,避障组件432可以独立于车辆1600的组件、特征和/或功能来使用,其需要遵守交通规则和礼貌驾驶。在这些例子中,为了确保车辆1600与任何物体之间不会发生碰撞,避障组件可能会忽略交通法规、道路规则和礼貌的驾驶规范。因此,避障层可以是道路层规则之外的独立层,并且避障层可以确保车辆1600仅从避障角度执行安全操作。另一方面,道路层的规则可以确保车辆遵守交通法律和惯例,遵守合法和常规的通行权(如本文所述)。
在一些示例中,避障组件432可以使用可驾驶路径和/或对象检测416来确定要采取的控制或动作。例如,可驾驶路径可以向避障组件432提供指示,车辆1600可以在不撞击任何物体、结构和/或类似物的情况下操纵,或至少在不存在静态结构的情况下。
在非限制性实施例中,避障组件432可以实现为车辆1600的独立、离散的特征。例如,避障组件432可以单独操作(例如,与驱动堆栈422的规划层、控制层、驱动层和/或其他层并行、在之前和/或之后)。
因此,车辆1600可以使用该信息(例如,作为路径的边缘或轨道)在环境中导航、规划或以其他方式执行一个或更多个操作(例如车道保持、车道变换、合并、分割等)。
现在参照图9-11,本文描述的方法900、1000和1100的每个块包括可以使用硬件、固件和/或软件的任何组合来执行的计算过程。例如,可以由处理器执行存储在存储器中的指令来执行各种功能。所述方法还可以实施为存储在计算机存储介质上的计算机可用指令。这些方法可以由一个独立的应用程序、一个服务或托管服务(独立的或与另一个托管服务结合使用)或另一个产品的插件提供。另外,以示例的方式,关于本文所述的对象检测系统,描述了方法900、1000和1100。然而,这些方法可以另外或可选地由任何一个系统或系统的任何组合来执行,包括但不限于本文所述的系统。
图9是示出根据本发明的一些实施例的用于使用传感器数据的多视图对象检测的方法900的流程图。在块B902,方法900包括根据来自环境中至少一个传感器的传感器数据确定表示环境的第一视图的第一数据。例如,图4的传感器401–例如图16A-16D中的自主车辆1600的激光雷达传感器1664–可以用于生成表示传感器401周围3D环境中的对象的传感器数据402。传感器数据402可以被预处理404以形成期望大小(例如,空间维度)的投影图像。例如,可以投影(累积的、自主运动补偿的)激光雷达点云,以形成具有透视图的激光雷达范围图像。投影图像(例如,激光雷达范围图像)和/或其他反射数据可以被存储和/或编码为机器学习模型408的适当表示(例如,输入数据406)。
在块B904处,方法900包括使用一个或更多个神经网络(NN)提取表示至少基于第一数据的第一视图中的一个或更多个分类的分类数据。例如,图4的输入数据406可以用作机器学习模型408的输入,机器学习模型408可以包括依次处理3D环境的不同视图的链接在一起的多个组分机器学习模型或阶段。在示例性第一阶段中,图6的编码器/解码器605可以在例如透视图的第一视图中从输入数据406中提取分类数据(例如,一个或更多个置信度图、一个或更多个分段掩码)。在图6所示的实施例中,分类置信度数据610可以表示一个或更多个置信度图,其存储表示每个像素是每个图的对应分类的一部分的概率、分数或逻辑的像素值。
在块B906处,方法900包括至少基于将一个或更多个分类从第一视图投影到第二视图来生成表示环境的第二视图中的一个或更多个分类的经转换的分类数据。例如,在图6所示的实施例中,分类数据可以对应于分类置信度数据610(其可以表示例如透视图的第一视图中的一个或更多个置信度图),并且可以将分类置信度数据610转换到第二视图中,以形成转换后的分类置信度数据630(例如,例如俯视视图的第二视图中的一个或更多个置信度图)。
在块B908处,方法900包括使用该述一个或更多个NN生成表示至少基于转换的分类数据在环境中检测到的一个或更多个对象的一个或更多个边界形状的第二数据。例如,在图6所示的实施例中,经转换的分类数据可以对应于转换后的分类置信度数据630。转换后的分类置信度数据630(例如,俯视视图中的一个或更多个置信度图)和/或几何数据640(例如,一个或更多个高度图)可以被编码645(例如,堆叠到张量的相应通道中)并被馈送到机器学习模型408的第二阶段中,其可以包括连接到分类置信头部655和实例回归头部660的编码器/解码器主干650。分类置信头部655和实例回归头部660可以提取分类置信度数据610(例如,俯视视图中的一个或更多个置信度图)和实例回归数据412(例如,对象实例数据,例如位置、几何体和/或方向),其可被后处理(例如,解码)以生成边界框、闭合多段线或其他边界形状,用于标识检测到的对象实例的位置、大小和/或方向。
图10是示出根据本发明的一些实施例的用于使用激光雷达数据进行透视和俯视视图对象检测的方法1000的流程图。在块B1002处,方法1000包括从环境中的一个或更多个激光雷达传感器接收激光雷达数据。例如,与一个或更多个激光雷达传感器(例如,图4的传感器401)相关联的固件可以用于控制激光雷达传感器以捕获和/或处理激光雷达数据,例如一个或更多个激光雷达点云。
在块B1004处,方法1000包括从激光雷达数据生成表示环境透视图的第一数据。例如,在图4的传感器数据402包括激光雷达数据的实施例中,可以将激光雷达数据累积、转换为单个坐标系(例如,围绕与激光雷达传感器相关联的自我角色/车辆为中心)、自主运动补偿(例如,到自我角色/车辆的最新已知位置),和/或投影以形成所需尺寸(例如,空间尺寸)的投影图像。例如,(累积的,自主运动补偿的)激光雷达点云可以从具有透视图的激光雷达范围图像投影。投影图像(例如,激光雷达范围图像)和/或其他反射数据可以被存储和/或编码为机器学习模型408的适当表示(例如,输入数据406)。
在块B1006处,方法1000包括使用一个或更多个神经网络(NN)从第一数据生成分类数据,该分类数据表示透视图中的一个或更多个分类。例如,图4的输入数据406可以用作机器学习模型408的输入,机器学习模型408可以包括顺序地处理3D环境的不同视图的链接在一起的多个组分机器学习模型或阶段。在示例性第一阶段中,图6的编码器/解码器605可以从输入数据406在例如透视图的第一视图中提取分类数据(例如,一个或更多个置信度图、一个或更多个分段掩码)。
在块B1008处,方法1000包括通过使用激光雷达数据将透视视图中的一个或更多个分类投影到俯视视图中来生成表示环境俯视视图中的一个或更多个分类的经转换的分类数据。例如,在图6所示的实施例中,分类数据可以对应于分类置信度数据610(其可以表示第一视图中的一个或更多个置信度图,例如透视图)。在一些情况下,由分类置信度数据610表示的分类值可以与由激光雷达范围图像中的相应范围扫描像素表示的激光雷达检测的对应3D位置相关联,以生成标记的3D位置。标记的3D位置可以被投影625到环境的第二视图中,例如,通过正交地投影标记的3D位置以形成具有期望的空间尺寸和地面采样距离的投影图像(例如,具有俯视视图的俯视视图像)。投影3D位置所在的所产生的投影图像的每个像素可以存储提取的分类数据,其中3D位置被标记(例如,分类值或标签)。
在块B1010处,方法1000包括使用一个或更多个NN生成表示至少基于俯视视图中经转换的分类数据在环境中检测到的一个或更多个对象的一个或更多个边界形状的第二数据。例如,经转换的分类数据(例如,转换后的分类置信度数据630)和/或几何数据(例如,几何数据640)可以被编码645并馈送到图6的机器学习模型408的第二阶段。第二阶段的输出(例如,分类置信度数据410和实例回归数据412)可以被后处理(例如,解码)以生成边界框、闭合多段线或其它边界形状,以识别检测到的对象实例的位置、几何体和/或方向。
图11是示出根据本公开的一些实施例的涉及带标签的传感器数据的投影的多视图对象检测的方法1100的流程图。在块B1102处,方法1100包括使用一个或更多个神经网络(NN)从表示环境的第一视图的图像的图像数据生成表示一个或更多个分类的分类数据。例如,图4的输入数据406(例如,激光雷达范围图像的表示)可以用作机器学习模型408的输入,机器学习模型408可以包括依次处理3D环境的不同视图的链接在一起的多个组分机器学习模型或阶段。在示例性第一阶段中,图6的编码器/解码器605可以从输入数据406在例如透视图的第一视图中提取分类数据(例如,一个或更多个置信度图、一个或更多个分段掩码)。
在块B1104处,方法1100包括将分类数据与从相应传感器数据中识别的对应三维(3D)位置相关联,以生成带标签的传感器数据。例如,可使用由编码器/解码器605提取的分类数据(例如,分类值、标签)对相应时间片的传感器数据(例如,传感器数据402)的3D位置进行标记。在一些实施例中,相应的输入激光雷达范围图像可以具有范围扫描像素和激光雷达点云(激光雷达检测)中可能具有已知的3D位置的对应点之间的已知对应关系。因此,例如,来自预测的置信度图的分类值可以与由输入的激光雷达范围图像中的对应范围扫描像素表示的激光雷达检测的3D位置相关联。
在块B1106处,方法1100包括将带标签的传感器数据投影到环境的第二视图,以生成表示第二视图中的一个或更多个分类的经转换的分类数据。例如,被标记的3D位置可以被投射625到环境的第二视图中,例如,通过正交地投影被标记的3D位置,以形成一个具有所需空间维度和地面采样距离的投影图像(例如,俯视视图的头顶图像)。投影3D位置所在的所产生的投影图像的每个像素可以存储提取的分类数据,其中3D位置被标记(例如,分类值或标签)。
在块B1108处,方法1100包括使用所述一个或更多个神经网络(NN)生成表示至少基于转换的分类数据在环境中检测到的一个或更多个对象的一个或更多个边界形状的第二数据。例如,经转换的分类数据(例如,转换后的分类置信度数据630)和/或几何数据(例如,几何数据640)可以被编码645并馈送到图6的机器学习模型408的第二阶段。第二阶段的输出(例如,分类置信度数据410和实例回归数据412)可以被后处理(例如,解码)以生成边界框、闭合多段线或其它边界形状,以识别检测到的对象实例的位置、几何体和/或方向。
训练对象检测系统的机器学习模型
为了训练对象检测系统的机器学习模型(例如,图4的机器学习模型408),可以使用用于操作本文描述的机器学习模型408的技术从传感器数据生成输入训练数据。可以通过在传感器设置中标注来自多个传感器的数据来获得地面真实训练数据。
例如,可以使用激光雷达传感器和一个或更多个照相机(例如,激光雷达传感器1664、立体照相机1668、广角照相机1670(例如鱼眼照相机)、红外照相机1672、环绕式照相机1674(例如,360度照相机)、图16A-16D的自主车辆1600的远程和/或中程照相机1698等)观察场景,以采集激光雷达数据和图像数据。由于可以从不同频率的不同传感器获得数据,在一些实施例中,特定传感器(例如,激光雷达传感器)可以用作参考传感器。对于来自参考传感器的每一帧传感器数据(例如,对于每帧激光雷达数据),可以通过识别来自传感器设置中的每个其他传感器的传感器数据帧(在时间上最接近来自参考传感器的传感器数据帧)来管理一组传感器数据。这组传感器数据(例如,时间戳T处的激光雷达数据帧加上从传感器设置中的多个照相机中的每一个在时间上最接近T的图像)可以被称为时间戳T处的一组经校正的传感器数据。
通常,如上文更详细地描述的,每一组经修正的传感器数据可以用于生成机器学习模型408的输入训练数据(例如,图6的输入数据406和/或几何数据640)。为了为每一组精确的传感器数据生成地面真实训练数据,可以独立于来自其他传感器的数据对来自每个传感器的数据进行注释和/或标记。例如,可以投影一帧激光雷达数据以形成投影图像,并且可以用2D或3D边界形状和支持的分类标签对投影图像进行注释。另外或可替代地,可以用2D或3D边界形状和支持的分类标签对每个图像(或由来自一组精选传感器数据的组成图像形成的复合图像)进行注释。注释可以手动和/或自动生成,并且用于导出机器学习模型408的相应的地面真实输出(例如,分类数据,例如置信度图或分段掩码、对象实例数据等)。
图12是根据本发明的一些实施例的用于注释来自不同传感器的传感器数据的示例性技术的图示。在图12所示的示例中,可以从激光雷达传感器和一个或更多个照相机捕获传感器数据。通常,传感器数据可以被捕获和管理以产生任何期望频率的训练数据。图12顶部的时间线示出了在该示例中激光雷达数据帧比相机图像更频繁地生成。在这种情况下,可以将激光雷达传感器用作参考传感器,并且可以识别在时间上最靠近每个激光雷达帧的相机图像,从而形成一组经校正的传感器数据(例如,一组经校正的传感器数据1210)。在图12所示的示例中,可以生成频率为每秒一帧的经校正的传感器数据,尽管可以生成具有任何期望频率的经校正的传感器数据。
在图12中,经校正的传感器数据1210包括合成RBG图像1220和激光雷达数据1230的帧。激光雷达数据830的帧中的三角形表示与由三个不同相机生成的三个图像的对应关系,带有编号的三角形边缘表示三个对应的相机台的视野。在该示例中,复合RBG图像1220是通过将三个不同的RGB图像缝合在一起而形成的。复合RBG图像1220和激光雷达数据1230的帧可以用2D或3D边界形状和支持的分类标签独立地进行注释。在图12中,带标签的图像1240和带标签的激光雷达帧1250示出了示例注释(为了简单起见,省略了分类标签)。
一般而言,可以用标签或其他标记对传感器数据(例如,激光雷达数据、RBG图像)进行注释(例如,手动、自动等),以标识传感器数据中相关对象实例的位置、几何体、方向和/或分类。在一些示例中,标签可以在2D或3D绘图程序(例如,注释程序)、计算机辅助设计(CAD)程序、标签程序、其他类型的合适程序中生成,和/或可以手工绘制。在任何示例中,标签可以是人工合成的(例如,从计算机模型或渲染生成的)、真实生成的(例如,根据真实世界的数据设计和生成)、机器自动化的(例如,使用特征分析和学习从数据中提取特征,然后生成标签)、人工注释的(例如,标注者或注释专家,定义标签的位置)和/或它们的组合(例如,人类识别多段线的顶点,机器使用多边形光栅化器生成多边形)。通常,标签可以包括2D和/或3D边界框、闭合多段线或绘制、注释、叠加和/或与传感器数据相关联的其他边界形状。
图13是根据本发明的一些实施例的照相机空间中的汽车和卡车分类的示例注释的图示。例如,边界1310已被标识在卡车周围,并且边界1310已被标记为相应的分类标签1320(例如,卡车)和一个或更多个子分类标签1330(例如,遮挡:前视图,截断:前视图)。图14是根据本发明的一些实施例的照相机空间中的行人分类的示例注释的图示。例如,边界1410已被标识在行人周围,并且边界1410已被标记为相应的分类标签1420(例如,人)和一个或更多个子分类标签1430(例如,遮挡:前视图,截断:底部截断)。图15是根据本发明的一些实施例的激光雷达空间中俯视边界框的示例注释的图示。例如,可以在汽车和卡车周围识别边界(例如,图15中所示的2D边界框)。每个边界可以用相应的类标签进行标记。为了简单起见,图15省略了分类标签。
在一些实施例中,可以应用对象检测和跟踪来跟踪注释对象随时间从帧到帧的移动。因此,注释跟踪可以用于从一帧到另一帧跟踪对象(例如,对注释对象使用持久标识符),并且跟踪的注释可以被更新以微调单个帧中的注释。
在一些实施例中,来自特定传感器的传感器数据的对象跟踪和/或检测可以与来自不同传感器的传感器数据针对相同对象的对应对象跟踪和/或检测相链接。返回到图12,第三列示出了其中可以链接带标签的图像1240和带标签的激光雷达帧1250的示例。例如,来自不同类型传感器数据的注释可以被投影到公共空间(例如,来自带标签的图像1240的注释可以被投影到带标签的激光雷达帧1250的图像空间中,反之亦然,来自带标签的图像1240和带标签的激光雷达帧1250的注释可以被投影到其他一些空间中,等等)。在图12所示的示例中,来自带标签的图像1240和带标签的激光雷达帧1250二者的注释可以被投影到由带标签的帧1260所示的3D空间中。在一些实施例中,来自不同类型的传感器数据和/或不同的分类标签的注释可以以图示不同分类或传感器数据的方式呈现(例如,以不同的颜色、标签等呈现)。来自不同类型传感器数据的相应注释(例如,具有阈值IoU的重叠注释)可以被链接(例如,手动和/或自动)。在一些实施例中,来自不同类型传感器数据的链接注释或对象跟踪可以被用作对象检测和跟踪处理的输入,以跟踪注释对象随时间从帧到帧的移动,并且具有改进的精度。
另外或可选地,链接的传感器数据可以促进识别和/或编辑注释。例如,注释软件可以呈现传感器数据、注释和/或标签的任何视图组合,并且可以接受对现有注释的新注释和/或编辑。作为非限制性示例,带标签的激光雷达帧1270基于与带标签的帧1260所指示的来自带标签的图像1240的注释的对应关系,使用3D软件显示从带标签的激光雷达帧1250扩展到3D的2D俯视的边界框。尽管前面讨论的重点是激光雷达到相机的链接,但是任何类型的传感器数据都可以被链接到任何其他类型的传感器数据(包括来自同一传感器的两个不同类型的传感器数据之间的链接,例如相机到相机的链接)。这些仅仅意味着作为示例,并且可以在本公开的范围内实现其他变体。
通常,每组经修正的传感器数据可以用于生成机器学习模型408的输入训练数据(例如,图6的输入数据406和/或几何数据640),并且注释(例如,边界、封闭区域、分类标签)可以用于生成机器学习模型408的地面真实数据(例如,图6的分类置信度数据610、分类置信度数据410和实例回归数据412)。为了从注释生成地面真实数据,可以使用每个注释的位置、几何体、方向和/或分类来生成与机器学习模型408的输出的视图、大小和维度相匹配的置信度图和/或分段掩码(例如,分类置信度数据610和分类置信度数据410)。作为非限制性示例,对于给定分类和在每个通道中存储不同置信度图的张量的对应维数,可将属于该类的每个被标记的边界形状内的像素的像素值设置为指示正分类的值(例如,1)。该过程可以被重复并且存储在地面真实分类置信度张量的相应通道中。另外或可选地,每个注释的位置、几何体、方向和/或分类可以用于生成与实例回归数据412的视图、大小和维度相匹配的对象实例数据。例如,对于包含注释的每个像素,注释可以用于计算相对于每个像素、对象高度、对象宽度、对象方向(例如,对象所在位置-例如对象中心)的对应位置、几何体和/或方向信息(例如,相对于投影图像的方向的旋转角度)和/或诸如此类。计算出的对象实例数据可以被存储在地面真实实例回归张量的对应通道中。因此,注释可以用于生成地面真实分类分割和/或实例回归数据,其可与作为训练数据集一部分与相应输入训练数据(例如,输入图像、输入张量)一起使用,以训练机器学习模型408。
在机器学习模型408包括多个阶段的链的实施例中,不同阶段可以一起训练或单独训练。在一些实施例中,可以通过使用可微操作(例如,可微重投影)实现从第一阶段(第一视图)的输出到第二阶段(第二视图)的输入的转换(例如,图6的变换615)来一起训练这些阶段。例如,训练输入数据可以被输入到机器学习模型408的第一阶段中,可以使用可微转换来转换615第一阶段的输出,对其解码(例如,使用地面真实集合数据640),并将其馈入机器学习模型408的第二阶段。
在任何情况下,地面真实分类分割和/或实例回归数据可以用于训练机器学习模型408。例如,可以使用一个或更多个损失函数(例如,单个损失函数、每种输出类型的损失函数等)来比较机器学习模型408的输出精度与地面真实值,并且可以更新机器学习模型408的参数(例如,使用后向传递、反向传播,前向传递等),直到准确度达到最佳或可接受的水平。在机器学习模型408包括多个头部的一些实施例中,多个头部可以与公共主干一起共同训练,或者可以单独训练。在涉及具有单独DNN特征提取器的多视图场景的实施例中,DNN特征提取器可以一起协同训练或单独地训练。这些和其他变化也被认为在本公开之内。
在一些实施例中,诸如多分类交叉熵损失的分类损失函数可以用于分类任务。多分类交叉熵损失可以包括对所有分类求和的像素级交叉熵损失。例如,分类损失(例如,对于机器学习模型408的第一和/或第二阶段)可以表示为H(p,y)=-∑iyilog(pi),其中y是地面真实数据(例如,1,其中像素在分类中,否则为0),p是每个维度对应于特定分类的预测深度像素向量,p是每个像素的预测分类数据(例如,像素在给定的分类i中的概率、分数或逻辑),并且可以在所有分类上(例如,在所有深度通道上)对每个像素执行求和。全帧的分类损失可以通过计算每个像素的分类损失并取其平均值来计算。
在一些实施例中,回归损失函数(例如L1或L2损失)可以用于回归任务。例如,回归损失(例如,对于机器学习模型408的第二阶段)可以表示为R(v,t)=|v-t|,其中v是要回归的预测深度方向像素向量,t是对象/地面真实深度方向像素向量,并且可以在所有深度通道上对每像素的回归损失求和。在一些实施例中,回归损失可以仅用于属于对应分类掩码的那些像素(例如,由图6的分类置信头部655预测的或由此导出的)。因此,对于(掩码中的)每个像素,可以在每个深度通道上对回归损失求和,并且可以在所有对象像素上计算平均值,例如,通过归一化(例如,除以)落入对象掩码(例如,对于所有分类)的像素数。
在一些实施例中,总损失可以计算为分类损失(例如,来自机器学习模型408的第一和/或第二阶段)和回归损失(例如,来自机器学习模型408的第二阶段)的和。在一些实施例中,对来自不同任务的损失的贡献可以使用固定权重和/或自动权重来加权。另外或可选地,可以对分类损失加权以抵消训练数据集中存在的分类不平衡。可以在本发明的范围内实现这些和其他变化。
示例自主车辆
图16A是根据本公开的一些实施例的示例性自主车辆1600的图示。自主车辆1600(在本文中也称为“车辆1600”)可以包括但不限于乘用车,例如轿车、卡车、公共汽车、第一响应车辆、穿梭车、电动或机动自行车、摩托车、消防车、警车、救护车、船、建筑车辆、水下航行器、无人机和/或其他类型的飞行器(例如,无人驾驶和/或可容纳一名或多名乘客)。自动驾驶车辆通常按照自动化水平来描述,由美国交通部下属的国家公路交通安全管理局(NHTSA),以及美国汽车工程师学会(SAE)“道路机动车辆驾驶自动化系统相关术语的分类和定义”(标准编号J3016-201806,发布于2018年6月15日,标准编号J3016-201609,发布于2016年9月30日,以及本标准以前和将来的版本)定义。车辆1600可以有能力根据自动驾驶级别的3级至5级中的一个或更多个功能来实现。例如,根据实施例,车辆1600可以具有条件自动化(级别3)、高度自动化(级别4)和/或完全自动化(级别5)。
车辆1600可以包括诸如底盘、车体、车轮(例如2、4、6、8、18个等)、轮胎、车轴和车辆的其他组件。车辆1600可以包括驱动系统1650,例如内燃机、混合动力发电机、全电动发动机和/或其他驱动系统类型。驱动系统1650可以连接至车辆1600的传动系,该传动系可以包括变速器,以使能车辆1600的驱动。可以响应于接收来自油门/加速器1652的信号而控制驱动系统1650。
当驱动系统1650工作时(例如,当车辆运动时),可以使用包括方向盘的转向系统1654来引导车辆1600(例如,沿着期望的路径或路线)。转向系统1654可以接收来自转向执行器1656的信号。方向盘可选为全自动(5级)功能。
制动传感器系统1646可以用于响应来自制动执行器1648和/或制动传感器的信号来操作车辆制动器。
控制器1636可以包括一个或更多个片上系统(SoC)1604(图16C)和/或GPU,可以向车辆1600的一个或更多个组件和/或系统提供信号(例如,代表命令)。例如,控制器可以通过一个或更多个制动作动器1648发送信号来操作车辆制动器,通过一个或更多个转向执行器1656操作转向系统1654,通过一个或更多个油门/加速器1652操作驱动系统1650。控制器1636可以包括一个或更多个车载(例如,集成)计算设备(例如,超级计算机),其处理传感器信号,并输出操作命令(例如,表示命令的信号),以实现自动驾驶和/或协助人类驾驶员驾驶车辆1600。控制器1636可以包括用于自主驾驶功能的第一控制器1636、用于功能安全功能的第二控制器1636、用于人工智能功能(例如,计算机视觉)的第三控制器1636、用于信息娱乐功能的第四控制器1636,用于紧急情况下的冗余的第五控制器1636,和/或其他控制器。在一些示例中,单个控制器1636可以处理上述功能中的两个或多个,两个或多个控制器1636可以处理单个功能和/或其任何组合。
控制器1636可以响应于从一个或更多个传感器接收到的传感器数据(例如,传感器输入),提供用于控制车辆1600的一个或更多个组件和/或系统的信号。传感器数据可以从例如且不限于全球导航卫星系统传感器1658(例如,全球定位系统传感器)、雷达传感器1660、超声波传感器1662、激光雷达传感器1664、惯性测量单元(IMU)传感器1666(例如,加速度计、陀螺仪、磁罗盘、磁强计等)、麦克风1696、立体照相机1668、广角照相机1670(例如鱼眼照相机)、红外照相机1672、全方位车身照相机1674(例如360度照相机)、远程和/或中档照相机1698、速度传感器1644(例如,用于测量车辆1600的速度)、振动传感器1642,转向传感器1640、制动传感器(例如,作为制动传感器系统1646的一部分)和/或其他传感器类型接收传感器数据。
控制器1636中的一个或更多个可以从车辆1600的仪表盘1632接收输入(例如,由输入数据表示),并通过人机界面(HMI)显示器1634、声音报警器、扬声器和/或通过车辆1600的其他组件提供输出(例如,由输出数据、显示数据等表示)。输出可以包括诸如车辆速度、速度、时间、地图数据(例如,图16C的HD地图1622)、位置数据(例如,车辆1600的位置,例如在地图上)、方向、其他车辆的位置(例如,占用网格)、关于对象的信息以及控制器1636感知到的对象的状态等。例如,HMI显示器1634可以显示关于一个或更多个对象的存在的信息(例如,街道标志、警告标志、交通灯改变等),和/或关于车辆已经、正在进行或将要进行的驾驶操作的信息(例如,现在正改变车道,在两英里内驶出34B出口等)。
车辆1600还包括网络接口1624,其可以使用一个或更多个无线天线1626和/或调制解调器通过一个或更多个网络进行通信。例如,网络接口1624可以通过LTE、WCDMA、UMTS、GSM、CDMA2000等进行通信。无线天线1626还可以使用局域网(如蓝牙、蓝牙LE、Z-Wave、ZigBee等),和/或低功耗广域网(LPWAN),如LoRaWAN、SigFox等来实现环境中的对象(例如,车辆、移动设备等)之间的通信。
图16B是根据本公开的一些实施例的图16A的示例性自主车辆1600的照相机位置和视野的示例。照相机和各自的视野是一个示例性实施例,并不意图限制。例如,可以包括附加和/或替代照相机,和/或照相机可以位于车辆1600上的不同位置。
照相机的照相机类型可以包括但不限于可与车辆1600的组件和/或系统一起使用的数码相机。照相机可以在汽车安全完整性等级(ASIL)B和/或其他ASIL下运行。根据实施例,照相机类型可以具有任何图像捕获速率,例如每秒60帧(fps)、1620fps、240fps等。照相机可以使用卷帘快门、全局快门、另一种类型的快门或其组合。在一些示例中,颜色过滤器阵列可以包括红色透明透明(RCCC)颜色过滤器阵列、红色透明蓝色(RCCB)颜色过滤器阵列、红蓝绿色透明(RBGC)颜色过滤器阵列、Foveon X3颜色过滤器阵列、拜耳传感器(RGGB)颜色过滤器阵列、单色传感器颜色过滤器阵列,和/或其他类型的滤色器阵列。在一些实施例中,可以使用诸如具有RCCC、RCCB和/或RBGC滤色器阵列的清晰像素照相机来努力提高光灵敏度。
在一些示例中,一个或更多个照相机可以用于执行高级驾驶员辅助系统(ADAS)功能(例如,作为冗余或故障安全设计的一部分)。例如,可以安装多功能单照相机来提供包括车道偏离警告、交通标志辅助和智能前照灯控制在内的功能。一个或更多个照相机(例如,所有照相机)可以同时记录和提供图像数据(例如,视频)。
一个或更多个照相机可以安装在安装组件中,例如定制设计的(3-D打印)组件,以便切断可能干扰相机图像数据捕获能力的杂散光和来自车内的反射(例如,从挡风玻璃后视镜反射的仪表板反射)。关于后视镜安装总成,后视镜总成可以定制3D打印,以便照相机安装板与后视镜的形状相匹配。在一些示例中,照相机可以集成到后视镜中。对于侧视照相机,照相机也可以集成在驾驶室每个角落的四根立柱内。
视野包括车辆1600前方部分环境的照相机(例如,前向照相机)可以用于全方位视野,以帮助识别前向路径和障碍物,并在一个或更多个控制器1636和/或控制SOC的帮助下帮助识别前向路径和障碍物,提供生成占用网格和/或确定首选车辆路径的关键信息。前向照相机可以用于执行许多与激光雷达相同的ADAS功能,包括紧急制动、行人检测和防撞。前向照相机也可以用于ADAS功能和系统,包括车道偏离警告(“LDW”)、自动巡航控制(“ACC”)和/或交通标志识别等其他功能。
可以在前向配置中使用各种照相机,包括例如包括CMOS(互补金属氧化物半导体)彩色成像器的单目照相机平台。另一示例可以是广角照相机1670,其可以用于感知从外围进入视野的对象(例如,行人、十字路口交通或自行车)。尽管在图16B中仅示出了一个广角照相机,但是在车辆1600上可以有任意数量的广角照相机1670。此外,远程照相机1698(例如,长视角立体相机对)可以用于基于深度的对象检测,尤其是对于尚未被训练的神经网络的对象。远程照相机1698还可以用于对象检测和分类,以及基本对象跟踪。
一个或更多个立体照相机1668也可以包括在正面配置中。立体照相机1668可以包括集成控制单元,该集成控制单元包括可伸缩处理单元,该可扩展处理单元可以提供可编程逻辑(FPGA)和在单个芯片上具有集成CAN或以太网接口的多核微处理器。这样的单元可以用于生成车辆环境的三维地图,包括图像中所有点的距离估计。另一种立体照相机1668可以包括紧凑型立体视觉传感器,其可以包括两个照相机镜头(左右各一个)和图像处理芯片,其可以测量从车辆到对象物体的距离并使用生成的信息(例如,元数据)以激活自动紧急制动和车道偏离警告功能。其它类型的立体照相机1668也可以用于补充或替代本文描述的那些立体照相机。
具有包括车辆1600侧面环境部分的视野的照相机(例如侧视照相机)可以用于全方位视野,提供用于创建和更新占用网格以及生成侧面碰撞警告信息。例如,环绕式照相机1674(例如,图16B中所示的四个环绕式照相机1674)可以被放置在车辆1600上。环绕式照相机1674可以包括广角照相机1670、鱼眼照相机、360度照相机等。例如,四个鱼眼照相机可以被放置在车辆的前部、后部和侧面。在另一种布置中,车辆可以使用三个环绕式照相机1674(例如,左、右和后部),并且可以利用一个或更多个其他照相机(例如,前视照相机)作为第四个环绕视野照相机。
具有包括车辆1600后部的环境的部分是视野的照相机(例如后视照相机)可以用于泊车辅助、环绕视野、后部碰撞警告以及创建和更新占用网格。如本文所述,可以使用各种各样的照相机,包括但不限于也适合作为前向照相机的照相机(例如,远程和/或中程照相机1698、立体照相机1668、红外线照相机1672等)。
图16C是根据本公开的一些实施例的用于图16A的示例性自主车辆1600的示例性系统架构的框图。应当理解,本文所述的这种和其他安排仅作为示例来阐述。其他布置和元件(例如,机器、接口、功能、命令、功能分组等)可以用于所示内容的补充或替代,并且某些元件可以完全省略。此外,本文所描述的许多元件是功能实体,其可以被实现为离散或分布式组件,或与其他组件一起,并且以任何适当的组合和位置实现。本文中描述的由实体执行的各种功能可以由硬件、固件和/或软件来执行。例如,各种功能可以由执行存储在存储器中的指令的处理器来执行。
图16C中的车辆1600的每个组件、特征和系统例示为经由总线1602连接。总线1602可以包括控制器局域网(CAN)数据接口(在本文中也称作“CAN总线”)。CAN可以是车辆1600内的网络,用于帮助控制车辆1600的各种特征和功能,例如启动制动器、加速、制动、转向、挡风玻璃雨刮器等。CAN总线可以配置为具有几十个甚至数百个节点,每个节点都有其自己的唯一标识符(例如,CAN ID)。可以读取CAN总线以查找方向盘角度、行驶速度、发动机每分钟转数(RPM)、按钮位置和/或其他车辆状态指示灯。CAN总线可以兼容ASIL B。
尽管本文中将总线1602描述为CAN总线,但这并不意图限制。例如,也可以使用FlexRay和/或以太网来补充或替代CAN总线。此外,尽管使用一条单线来表示总线1602,但这并不意图限制。例如,可以有任意数量的总线1602,其可以包括一个或更多个CAN总线、一个或更多个FlexRay总线、一个或更多个以太网总线和/或使用不同协议的一个或更多个其他类型的总线。在一些示例中,两个或更多个总线1602可以用于执行不同的功能,和/或可以用于冗余。例如,第一总线1602可以用于碰撞避免功能,第二总线1602可以用于驱动控制。在任何示例中,每条总线1602可以与车辆1600的任何组件通信,并且两个或更多个总线1602可以与相同组件通信。在一些示例中,车辆内的每个SoC 1604、每个控制器1636和/或每台计算机都可以访问相同的输入数据(例如,来自车辆1600的传感器的输入),并且可以连接到公共总线,例如CAN总线。
车辆1600可以包括一个或更多个控制器1636,例如本文中根据图16A描述的控制器1636。控制器1636可以用于各种功能。控制器1636可以耦连到车辆1600的各种其它组件和系统中的任何一个,并且可以用于车辆1600的控制、车辆1600的人工智能、车辆1600的信息娱乐等。
车辆1600可以包括片上系统(SoC)1604。SoC 1604可以包括CPU 1606、GPU 1608、处理器1610、高速缓存1612、加速器1614、数据存储器1616和/或未示出的其他组件和特征。SoC 1604可以用于在各种平台和系统中控制车辆1600。例如,SoC 1604可以与HD图1622组合在系统(例如,车辆1600的系统)中,HD图1622可以通过网络接口1624从一个或更多个服务器(例如,图16D的服务器1678)获得地图刷新和/或更新。
CPU 1606可以包括CPU集群或CPU复合体(在本文中也可以称之为“CCPLEX”)。CPU1606可以包括多个核心和/或L2高速缓存。例如,在一些实施例中,CPU 1606可以包括相干多处理器配置中的八个核心。在一些实施例中,CPU 1606可以包括四个双核集群,其中每个集群具有专用的L2高速缓存(例如,2MB L2高速缓存)。CPU 1606(例如,CCPLEX)可以被配置为支持同步的集群操作启用,使得CPU 1606的集群的任何组合在任何给定时间处于活动状态。
CPU 1606可以实现包括以下一个或更多个特征的电源管理能力:单个硬件块在空闲时可以被自动时钟选通以节省动态功率;当核心由于执行WFI/WFE指令而不主动执行指令时,每个核心时钟可以被选通;每个核心可以被独立地功率选通;当所有核心都被时钟选通或功率选通时,每个核心集群可以被独立地时钟选通;和/或当所有核心都是功率选通时,每个核心集群可以被独立地功率选通。CPU 1606可以进一步实现用于管理功率状态的增强算法,其中指定了允许的功率状态和预期的唤醒时间,并且硬件/微代码确定要为核心、集群和CCPLEX进入的最佳功率状态。处理核心可以支持软件中简化的功率状态输入序列,工作被卸载到微码。
GPU 1608可以包括集成GPU(在本文中也称之为“iGPU”)。GPU 1608可以是可编程的,并且对于并行工作负载可以是有效的。在一些示例中,GPU 1608可以使用增强的张量指令集。GPU 1608可以包括一个或更多个流式微处理器,其中每个流式微处理器可以包括一级缓存(例如,具有至少96KB存储容量的L1高速缓存),并且两个或更多个流式微处理器可以共享L2高速缓存(例如,具有512KB存储容量的L2高速缓存)。在一些实施例中,GPU 1608可以包括至少八个流式微处理器。GPU 1608可以使用计算应用程序编程接口(API)。此外,GPU 1608可使用一个或更多个并行计算平台和/或编程模型(例如,NVIDIA的CUDA)。
GPU 1608可以在汽车和嵌入式用例中进行功率优化以获得最佳性能。例如,GPU1608可以用鳍场效应晶体管(FinFET)制造。然而,这并非意图限制,并且GPU 1608可以使用其它半导体制造工艺来制造。每一个流式微处理器可以包含多个划分成多个块的混合精度处理核心。例如,但不限于,64个PF32核心和32个PF64核心可以被划分为四个处理块。在这样的示例中,可以为每个处理块分配16个FP32核心、8个FP64核心、16个INT32核心、两个用于深度学习矩阵算法的混合精度NVIDIA张量核心、L0指令缓存、线程束调度器、调度单元和/或64KB寄存器文件。此外,流式微处理器可以包括独立的并行整数和浮点数据路径,以通过混合计算和寻址计算来提供工作负载的有效执行。流式微处理器可以包括独立的线程调度能力,以实现更细粒度的同步和并行线程之间的协作。流式微处理器可以包括组合的L1数据高速缓存和共享存储器单元,以便在简化编程的同时提高性能。
GPU 1608可以包括高带宽存储器(HBM)和/或16GB HBM2存储子系统,以在一些示例中提供大约900GB/秒的峰值存储带宽。在一些示例中,作为对HBM存储器的补充或替代,可以使用同步图形随机存取存储器(SGRAM),例如图形双数据速率类型五同步随机存取存储器(GDDR5)。
GPU 1608可以包括包括访问计数器的统一内存技术,以允许更准确地将存储器页迁移到最频繁访问它们的处理器,从而提高处理器之间共享的存储器范围的效率。在一些示例中,地址转换服务(ATS)支持可以用于允许GPU 1608直接访问CPU 1606页表。在这样的例子中,当GPU 1608存储器管理单元(MMU)经历未命中时,地址转换请求可以被发送到CPU1606。作为响应,CPU 1606可以在其页表中查找地址的虚拟到物理映射,并将转换发送回GPU 1608。因此,统一存储器技术可以允许CPU 1606和GPU 1608的存储器的单一统一虚拟地址空间,从而简化GPU 1608的编程和到GPU 1608的应用移植。
另外,GPU 1608可以包括可以保持跟踪GPU 1608对其他处理器的存储器的访问频率的访问计数器。访问计数器可以帮助确保将存储器页移动到访问该页最频繁的处理器的物理存储器中。
SoC 1604可以包括任意数量的高速缓存1612,包括本文描述的那些。例如,高速缓存1612可以包括对CPU 1606和GPU 1608都可用的L3高速缓存(例如,连接了CPU 1606和GPU1608)。高速缓存1612可以包括写回高速缓存,该写回高速缓存可以诸如通过使用高速缓存一致性协议(例如,MEI、MESI、MSI等)来保持跟踪线路的状态。根据实施例,L3高速缓存可以包括4MB或以上,尽管可以使用更小的高速缓存尺寸。
SoC 1604可以包括算术逻辑单元(ALU),其可以用于执行关于车辆1600的各种任务或操作的处理,例如处理DNN。此外,SoC 1604可以包括用于在系统内执行数学运算的浮点单元(FPU)或其他数学协处理器或数字协处理器类型。例如,SoC 104可以包括一个或更多个FPU,其被集成为CPU 1606和/或GPU 1608内的执行单元。
SoC 1604可以包括一个或更多个加速器1614(例如,硬件加速器、软件加速器或其组合)。例如,SoC 1604可以包括硬件加速集群,其可以包括优化的硬件加速器和/或大的片上存储器。大的片上存储器(例如4MB的SRAM)可以使硬件加速集群加速神经网络和其他计算。硬件加速集群可以用于补充GPU 1608和卸载GPU 1608的一些任务(例如,释放GPU 1608的更多周期以执行其他任务)。作为示例,加速器1614可以用于稳定到足以适于加速的对象工作负载(例如,感知、卷积神经网络(CNN))等。如本文所使用的术语“CNN”可以包括所有类型的CNN,包括基于区域的或区域卷积神经网络(RCNN)和快速RCNN(例如,用于对象检测)。
加速器1614(例如,硬件加速集群)可以包括深度学习加速器(DLA)。DLA可以包括一个或更多个张量处理单元(TPU),其可被配置为每秒为深度学习应用程序和推断提供额外的10万亿次操作。TPU可以是被配置和优化为执行图像处理功能(例如,对于CNN、RCNN等)的加速器。DLA可以进一步针对一组特定的神经网络类型和浮点运算以及推断进行优化。DLA的设计可以提供比通用GPU更高的每毫米性能,并且大大超过CPU的性能。TPU可以执行多个功能,包括单实例卷积函数,支持例如针对特征和权重的INT8、INT16和FP16数据类型,以及后处理器功能。
DLA可以针对各种功能中的任何一个对已处理或未处理的数据快速有效地执行神经网络,尤其是CNN,包括例如但不限于:用于使用来自照相机传感器的数据的对象识别和检测的CNN;用于使用来自照相机传感器的数据的距离估计的CNN;用于紧急车辆检测和识别,并使用麦克风的数据进行检测的CNN;用于面部识别和使用照相机传感器的数据识别车主的CNN;和/或用于安全性和/或安全相关事件的CNN。
DLA可以执行GPU 1608的任何功能,并且通过使用例如推断加速器,设计者可以针对DLA或GPU 1608来执行任何功能。例如,设计者可以将CNN的处理和浮点运算集中在DLA上,并将其他功能留给GPU 1608和/或其他加速器1614。
加速器1614(例如,硬件加速集群)可以包括可编程视觉加速器(PVA),其在本文中也可以称为计算机视觉加速器。PVA可以被设计和配置为加速用于高级驾驶员辅助系统(ADAS)、自主驾驶和/或增强现实(AR)和/或虚拟现实(VR)应用的计算机视觉算法。PVA可以在性能和灵活性之间提供平衡。例如,每个PVA可以包括例如且不限于任何数量的精简指令集计算机(RISC)核心、直接存储器存取(DMA)和/或任意数量的向量处理器。
RISC核心可以与图像传感器(例如,本文描述的任何照相机的图像传感器)、图像信号处理器等交互。每个RISC核心可以包括任何数量的存储器。取决于RISC的数量,RISC可以使用任何协议。在一些例子中,RISC核心可以执行实时操作系统(RTOS)。RISC核心可以使用一个或更多个集成电路设备、专用集成电路(ASIC)和/或存储器设备来实现。例如,RISC核心可以包括指令缓存和/或紧密耦连RAM。
DMA可以使PVA的组件能够独立于CPU 1606访问系统存储器。DMA可以支持用于向PVA提供优化的任意数量的特征,包括但不限于支持多维寻址和/或循环寻址。在一些示例中,DMA可以支持多达六个或更多个寻址维度,其可以包括块宽度、块高度、块深度、水平块步进、垂直块步进和/或深度步进。
向量处理器可以是可编程处理器,其可以被设计成高效和灵活地执行计算机视觉算法的编程并提供信号处理能力。在一些示例中,PVA可以包括一个PVA核心和两个向量处理子系统分区。PVA核心可以包括处理器子系统、DMA引擎(例如,两个DMA引擎)和/或其他外围设备。向量处理子系统可以作为PVA的主处理引擎运行,并且可以包括向量处理单元(VPU)、指令缓存和/或向量存储器(例如VMEM)。VPU核心可以包括数字信号处理器,例如单指令、多数据(SIMD)、超长指令字(VLIW)数字信号处理器。SIMD和VLIW的结合可以提高吞吐量和速度。
每个向量处理器可以包括指令高速缓存,并且可以耦连到专用存储器。结果,在一些示例中,每个向量处理器可以被配置为独立于其他向量处理器执行。在其它示例中,包括在特定PVA中的向量处理器可以被配置为采用数据并行性。例如,在一些实施例中,包括在单个PVA中的多个向量处理器可以执行相同的计算机视觉算法,但是在图像的不同区域上。在其它示例中,包括在特定PVA中的向量处理器可以在同一图像上同时执行不同的计算机视觉算法,或者甚至对序列图像或图像的部分执行不同的算法。除了其他方面,任意数量的PVA可以包括在硬件加速度集群中,并且任意数量的向量处理器可以包括在每个PVA中。此外,PVA可以包括额外的纠错码(ECC)存储器,以增强整个系统的安全性。
加速器1614(例如,硬件加速集群)可以包括计算机视觉网络片上和SRAM,用于为加速器1614提供高带宽、低延迟的SRAM。在一些示例中,片上存储器可以包括至少4MBSRAM,所述SRAM由例如且不限于可由PVA和DLA二者访问的八个现场可配置存储器块组成。每对存储器块可以包括高级外围总线(APB)接口、配置电路、控制器和多路复用器。可以使用任何类型的存储器。PVA和DLA可以通过为PVA和DLA提供对存储器的高速访问的主干网访问存储器。主干网可以包括片上计算机视觉网络,其将PVA和DLA互连到存储器(例如,使用APB)。
片上计算机视觉网络可以包括接口,其在传输任何控制信号/地址/数据之前,确定PVA和DLA都提供了准备好的有效信号。这样的接口可以提供用于传输控制信号/地址/数据的独立相位和独立通道,以及用于连续数据传输的突发式通信。这种类型的接口可以符合ISO 26262或IEC 61508标准,但也可使用其他标准和协议。
在一些示例中,SoC 1604可以包括实时光线跟踪硬件加速器,如在2018年8月10日提交的第16/101,232号美国专利申请中所述的。实时光线跟踪硬件加速器可以用于快速有效地确定物体的位置和范围(例如,在世界模型内),以生成实时可视化仿真,用于雷达信号解释,用于声音传播合成和/或分析,用于声纳系统的模拟,用于一般波传播模拟,用于与激光雷达数据进行比较,以实现定位和/或其他功能,和/或用于其他用途。在一些实施例中,一个或更多个树遍历单元(TTU)可以用于执行一个或更多个光线跟踪相关操作。
加速器1614(例如,硬件加速器集群)在自主驾驶方面有着广泛的用途。PVA可以是可编程视觉加速器,可以用于ADAS和自主车辆的关键处理阶段。PVA的功能非常适合在低功耗和低延迟下需要可预测处理的算法域。换言之,PVA在半密集或密集的规则计算上表现良好,甚至在需要低延迟和低功耗的可预测运行时间的小数据集上也是如此。因此,在自主车辆平台的背景下,PVA被设计为运行经典的计算机视觉算法,因为它们在对象检测和整数运算方面效率很高。
例如,根据该技术的一个实施例,PVA用于执行计算机立体视觉。在一些例子中,可以使用基于半全局匹配的算法,尽管这不意图限制。许多3-5级自动驾驶应用程序需要动态运动估计/立体匹配(例如,运动结构、行人识别、车道检测等)。PVA可以对来自两个单目照相机的输入执行计算机立体视觉功能。
在一些例子中,聚乙烯醇可以用于执行密集光流。根据处理原始雷达数据(例如,使用4D快速傅里叶变换)提供经过处理的雷达。在其他示例中,PVA用于飞行时间深度处理,例如,通过处理原始飞行时间数据来提供经过处理的飞行时间数据。
DLA可以用于运行任何类型的网络以增强控制和驾驶安全性,包括例如,为每个对象检测输出置信程度的神经网络。这样的置信度值可以解释为概率,或者提供每个检测相对于其他检测的相对“权重”。这个置信度值使系统能够进一步决定哪些检测应该被视为真正确检测而不是伪正确检测。例如,系统可以为置信度设置阈值,并且仅将超过阈值的检测视为真正检测。在自动紧急制动(AEB)系统中,伪正确检测会导致车辆自动执行紧急制动,这显然是不可取的。因此,只有最可信的检测才应被视为AEB的触发因素。DLA可以运行神经网络来回归置信度值。神经网络可以将至少一些参数子集作为其输入,例如与从神经网络和/或其他传感器(例如,激光雷达传感器1664或雷达传感器1660)获得的车辆1600的方向、距离、对象的3D位置估计相关的边界盒尺寸、获得的地平面估计值(例如从另一个子系统获得),惯性测量单元(IMU)传感器1666输出。
SoC 1604可以包括数据存储1616(例如存储器)。数据存储1616可以是SoC 1604的片上存储器,其可以存储要在GPU和/或DLA上执行的神经网络。在一些实例中,数据存储1616的容量可以足够大,以存储用于冗余和安全的神经网络的多个实例。数据存储1612可以包括L2或L3高速缓存1612。如本文所述,对数据存储1616的引用可以包括对与PVA、DLA和/或其它加速器1614相关联的存储器的引用。
SoC 1604可以包括一个或更多个处理器1610(例如,嵌入式处理器)。处理器1610可以包括启动和电源管理处理器,其可以是处理启动电源和管理功能以及相关安全强制的专用处理器和子系统。启动和电源管理处理器可以是SoC 1604启动序列的一部分,并且可以提供运行时电源管理服务。启动电源和管理处理器可以提供时钟和电压编程、系统低功耗状态转换的帮助、SoC 1604热和温度传感器的管理和/或SoC 1604电源状态的管理。每个温度传感器可以实现为输出频率与温度成比例的环形振荡器,并且SoC 1604可以使用环形振荡器来检测CPU 1606、GPU 1608和/或加速器1614的温度。如果确定温度超过阈值,启动和电源管理处理器可以进入温度故障例行程序,并将SoC 1604置于低功率状态和/或将车辆1600置于司机安全停车模式(例如,将车辆1600带到安全停车点)。
处理器1610还可以包括一组可以用作音频处理引擎的嵌入式处理器。音频处理引擎可以是音频子系统,其使能多个接口上的多通道音频,以及广泛和灵活的音频I/O接口范围。在一些示例中,音频处理引擎是具有带有专用RAM的数字信号处理器的专用处理器核心。
处理器1610可以进一步包括常开处理器引擎,其可以提供必要的硬件特征以支持低功率传感器管理和唤醒用例。常开处理器引擎可以包括处理器核心、紧密耦连的RAM、支持外围设备(例如,定时器和中断控制器)、各种I/O控制器外围设备和路由逻辑。
处理器1610还可以包括安全集群引擎,其包括专用处理器子系统,用于处理汽车应用的安全管理。安全集群引擎可以包括两个或更多个处理器内核、紧密耦连的RAM、支持外围设备(例如,定时器、中断控制器等)和/或路由逻辑。在安全模式下,两个或更多个核心可以在锁步模式下运行,并作为具有比较逻辑的单个核心来检测其操作之间的任何差异。
处理器1610还可以包括实时照相机引擎,其可以包括用于处理实时照相机管理的专用处理器子系统。
处理器1610还可以包括高动态范围信号处理器,其可以包括图像信号处理器,该图像信号处理器是相机处理管线的一部分的硬件引擎。
处理器1610可以包括视频图像合成器,其可以是处理块(例如,在微处理器上实现),其实现视频回放应用程序为播放器窗口生成最终图像所需的视频后处理功能。视频图像合成器可以对广角照相机1670、全方位车身照相机1674和/或舱内监控照相机传感器执行镜头失真校正。优选地,通过在舱内运行的另一个SoC实例,配置神经网络来对运行在舱内另一个SoC事件进行监控,并相应地对正在运行的另一个SoC事件进行响应。舱内系统可以执行唇读来激活蜂窝服务、以及拨打电话、口述电子邮件、更改车辆目的地、激活或更改车辆的信息娱乐系统和设置,或提供语音激活的网络冲浪。某些功能仅在车辆以自动模式运行时才对驾驶员可用,否则将被禁用。
视频图像合成器可以包括用于空间和时间噪声降低的增强的时间噪声抑制。例如,在视频中发生运动的情况下,噪声抑制适当地加权空间信息,减少由相邻帧提供的信息的权重。在图像或图像的一部分不包括运动的情况下,由视频图像合成器执行的时间噪声抑制可以使用来自先前图像的信息来减少当前图像中的噪声。
视频图像合成器还可以被配置为对输入的立体镜头帧执行立体校正。当操作系统桌面正在使用时,视频图像合成器还可以用于用户界面合成,并且不需要GPU 1608来连续渲染新的表面。即使当GPU 1608启动并且正在进行3D渲染时,视频图像合成器也可以用于卸载GPU 1608以提高性能和响应能力。
SoC 1604还可以包括用于接收来自照相机的视频和输入的移动工业处理器接口(MIPI)照相机串行接口、高速接口和/或可以用于照相机和相关像素输入功能的视频输入块。SoC 1604还可以包括可由软件控制的输入/输出控制器,其可以用于接收未提交给特定角色的I/O信号。
SoC 1604还可以包括广泛的外围接口,以实现与外围设备、音频编解码器、电源管理和/或其他设备的通信。SoC 1604可以用于处理来自照相机(例如,通过千兆多媒体串行链路和以太网连接)、传感器(例如,可以通过以太网连接的激光雷达传感器1664、雷达传感器1660等)、来自总线1602的数据(例如车辆1600的速度、方向盘位置等)、来自GNSS传感器1658的数据(例如,通过以太网或CAN总线连接)。SoC 1604可以进一步包括专用的高性能大容量存储控制器,其可以包括其自身的DMA引擎,并且可以用于将CPU 1606从常规数据管理任务中释放出来。
SoC 1604可以是具有跨越自动化等级3-5的灵活架构的端到端平台,从而提供一个综合功能安全架构,其利用并有效利用计算机视觉和ADAS技术来实现多样性和冗余性,提供了一个灵活的平台,可靠的驱动软件堆栈,以及深度学习工具。SoC 1604可以比传统系统更快、更可靠,甚至更节能和更节省空间。例如,当加速器1614与CPU 1606、GPU 1608和数据存储器1616组合时,可为3-5级自主车辆提供快速、高效的平台。
因此,该技术提供了传统系统无法实现的能力和功能。例如,计算机视觉算法可以在CPU上执行,其可以被配置为使用高级编程语言(例如C编程语言)在各种各样的视觉数据上执行各种各样的处理算法。然而,CPU常常不能满足许多计算机视觉应用的性能要求,例如与执行时间和功耗有关的应用程序。特别是许多CPU无法实时执行复杂的对象检测算法,这是车载ADAS应用程序的要求,也是实用的3-5级自主车辆的要求。
与传统系统相比,通过提供CPU复合体、GPU复合体和硬件加速集群,本文所述的技术允许同时和/或顺序地执行多个神经网络,并且允许将结果组合在一起以实现3-5级自主驾驶功能。例如,在DLA或dGPU(例如,GPU 1620)上执行的CNN可以包括文本和单词识别,允许超级计算机读取和理解交通标志,包括神经网络尚未专门训练的标志。DLA可以进一步包括神经网络,该神经网络能够识别、解释和提供符号的语义理解,并将该语义理解传递给运行在CPU复合体上的路径规划模块。
作为另一个例子,多个神经网络可以同时运行,如3级、4级或5级驾驶所需。例如,一个由“警告:闪光灯表示结冰”和电灯组成的警告标志,可以由几个神经网络独立或共同解释。标志本身可由第一个部署的神经网络(例如,已训练的神经网络)识别为交通标志,文本“闪光灯表示结冰”可以由第二个部署的神经网络来解释,当检测到闪光灯,存在结冰情况时,其通知车辆的路径规划软件(优选在CPU复合体上执行)。闪光灯可以通过在多个帧上操作第三个部署的神经网络来识别,通知车辆的路径规划软件存在(或不存在)闪光灯。所有三个神经网络可以同时运行,例如在DLA内和/或在GPU 1608上。
在一些示例中,用于面部识别和车主识别的CNN可以使用来自照相机传感器的数据来识别车辆1600的授权驾驶员和/或所有者的存在。当车主接近驾驶员车门并打开车灯时,常开传感器处理引擎可以用于解锁车辆,并在安全模式下,在车主离开车辆时禁用车辆。以这种方式,SoC 1604提供避免盗窃和/或劫车的安全性。
在另一示例中,用于紧急车辆检测和识别的CNN可以使用来自麦克风1696的数据来检测和识别紧急车辆警报。与使用通用分类器检测警报并手动提取特征的传统的系统不同,SoC 1604使用CNN对环境和城市声音进行分类,以及对视觉数据进行分类。在优选实施例中,在DLA上运行的CNN被训练为识别紧急车辆的相对关闭速度(例如,通过使用多普勒效应)。CNN还可以被训练为识别特定于车辆运行区域的应急车辆,如GNSS传感器1658所识别的那样。因此,例如,当在欧洲运行时,CNN将寻求检测欧洲的警报,而当在美国时,CNN将只寻求识别北美的警报。一旦检测到紧急车辆,控制程序可以用于执行紧急车辆安全例行程序,在超声波传感器1662的帮助下,减慢车辆速度,将车辆靠边停车,和/或使车辆空转,直到紧急车辆通过。
车辆可以包括CPU 1618(例如,离散CPU或dCPU),其可以经由高速互连(例如,PCIe)耦连到SoC 1604。例如,CPU 1618可以包括X86处理器。CPU 1618可以用于执行各种功能中的任何一种,包括仲裁ADAS传感器和SoC 1604之间潜在不一致的结果,和/或监控控制器1636和/或信息娱乐SoC 1630的状态和健康状况。
车辆1600可以包括GPU 1620(例如,离散GPU或dGPU),其可以通过高速互连(例如,NVIDIA的NVLINK)耦连到SoC 1604。GPU 1620可以提供额外的人工智能功能,例如通过执行冗余和/或不同的神经网络,并且可以用于基于来自车辆1600的传感器的输入(例如,传感器数据)来训练和/或更新神经网络。
车辆1600可以进一步包括网络接口1624,其可以包括一个或更多个无线天线1626(例如,用于不同通信协议的一个或更多个无线天线,例如蜂窝天线、蓝牙天线等)。网络接口1624可以用于在因特网上实现与云(例如,与服务器1678和/或其他网络设备)、与其他车辆,和/或与计算设备(例如,乘客的客户端设备)的无线连接。为了与其他车辆通信,可以在两个车辆之间建立直接链路和/或建立间接链路(例如,通过网络和互联网)。可以使用车辆到车辆通信链路提供直接链路。车辆到车辆通信链路可以向车辆1600提供关于车辆1600附近车辆(例如,车辆1600前面、侧面和/或后面的车辆)的信息。此功能可以是车辆1600的协同自适应巡航控制功能的一部分。
网络接口1624可以包括SoC,其提供调制和解调功能,并使控制器1636能够通过无线网络进行通信。网络接口1624可以包括用于从基带到射频的上转换和从射频到基带的下转换的射频前端。频率转换可以通过众所周知的过程来执行,和/或可以使用超外差处理来执行。在一些示例中,射频前端功能可以由单独的芯片提供。网络接口可以包括用于通过LTE、WCDMA、UMTS、GSM、CDMA2000、蓝牙、蓝牙LE、Wi-Fi、Z-Wave、ZigBee、LoRaWAN和/或其他无线协议进行通信的无线功能。
车辆1600可以进一步包括数据存储器1628,其可以包括片外(例如,SoC 1604以外)存储器。数据存储器1628可以包括一个或更多个存储元件,包括RAM、SRAM、DRAM、VRAM、闪存、硬盘和/或可以存储至少一位数据的其他组件和/或设备。
车辆1600还可以包括GNSS传感器1658。GNSS传感器1658(例如,GPS、辅助GPS传感器、差分GPS(DGPS)传感器等),用于协助制图、感知、生成占用网格和/或路径规划功能。可以使用任何数量的GNSS传感器1658,例如但不限于使用带有以太网到串行(RS-232)网桥的USB连接器的GPS。
车辆1600可以进一步包括雷达传感器1660。即使在黑暗和/或恶劣天气条件下,车辆1600也可使用雷达传感器1660进行远程车辆检测。雷达功能安全等级可以是ASIL B。雷达传感器1660可以使用CAN和/或总线1602(例如,以传输雷达传感器1660生成的数据)进行控制和访问对象跟踪数据,在一些示例中,可以访问以太网以访问原始数据。可以使用多种雷达传感器类型。例如,并且不限于,雷达传感器1660可以适合于前、后和侧雷达使用。在一些例子中,使用脉冲多普勒雷达传感器。
雷达传感器1660可以包括不同的配置,例如具有窄视野的远程、具有宽视野的短距离、短距离侧覆盖等。在一些示例中,远程雷达可以用于自适应巡航控制功能。远程雷达系统可以提供由两个或更多个独立扫描实现的广阔视野,例如在250米范围内。雷达传感器1660可以帮助区分静态和移动物体,并可以由ADAS系统用于紧急制动辅助和前向碰撞警告。远程雷达传感器可以包括具有多个(例如,六个或更多)固定雷达天线和高速CAN和FlexRay接口的单站多模式雷达。在有六个天线的例子中,中央的四个天线可以产生聚焦的波束图,设计成以更高的速度记录车辆1600的周围环境,而相邻车道的交通干扰最小。另外两个天线可以扩大视野,使之能够快速检测进入或离开车辆1600车道的车辆。
例如,中程雷达系统可以包括,最远1660米(前)或80米(后)的范围,以及高达42度(前)或1650度(后)的视野。近程雷达系统可以包括但不限于被设计安装在后保险杠的两端的雷达传感器。当安装在后保险杠的两端时,这样的雷达传感器系统可以产生两个波束,持续监测车辆后部和旁边的盲点。
短程雷达系统可以用于ADAS系统中进行盲点检测和/或车道变换辅助。
车辆1600还可以包括超声波传感器1662。超声波传感器1662可以位于车辆1600的前部、后部和/或侧面,可以用于泊车辅助和/或创建和更新占用网格。可以使用多种超声波传感器1662,并且不同的超声波传感器1662可以用于不同的检测范围(例如,2.5m、4m)。超声波传感器1662可以在ASIL B的功能安全级别下工作。
车辆1600可以包括激光雷达传感器1664。激光雷达传感器1664可以用于对象和行人检测、紧急制动、防撞和/或其他功能。激光雷达传感器1664可以是功能安全级ASIL B。在一些示例中,车辆1600可以包括多个激光雷达传感器1664(例如,两个、四个、六个等),它们可以使用以太网(例如,向千兆以太网交换机提供数据)。
在一些示例中,激光雷达传感器1664可以提供360度视场的对象及其距离的列表。例如,商用激光雷达传感器1664可以具有约1600m的广告范围,精度为2cm-3cm,并且支持1600Mbps以太网连接。在一些示例中,可以使用一个或更多个非突出的激光雷达传感器1664。在这些示例中,激光雷达传感器1664可以实现为可嵌入到车辆1600的前部、后部、侧面和/或角落中的小装置。在这种示例中,激光雷达传感器1664可以提供高达120度的水平视野和35度的垂直视野,即使对于低反射率的物体,也具有200米的范围。前置式激光雷达传感器1664可以被配置为用于45度和135度之间的水平视野。
在一些示例中,还可以使用激光雷达技术,例如3D闪光激光雷达。3D闪光激光雷达使用激光脉冲作为传播源,照亮车辆周围最远越200米。闪光激光雷达包括接收器,其在每个像素上记录激光脉冲传播时间和反射光,这反过来对应于从车辆到物体的距离。闪光激光雷达可以使每一次激光闪光产生高精度和无失真的环境图像。在某些示例中,可以部署四个闪光激光雷达传感器,车辆1600的每侧各一个。可用的3D闪光激光雷达系统包括固态3D凝视阵列激光雷达照相机,除了风扇外没有运动组件(例如,非扫描激光雷达设备)。闪光激光雷达设备每帧可以使用5纳秒的I类(眼睛安全)激光脉冲,并可以捕获以三维距离点云和共同登记的强度数据形式的反射激光。通过使用闪光激光雷达,并且由于闪光激光雷达是没有运动组件的固态设备,激光雷达传感器1664可以没那么容易受到运动模糊、振动和/或冲击的影响。
车辆还可以包括IMU传感器1666。在某些示例中,IMU传感器1666可以位于车辆1600后轴的中心。IMU传感器1666可以包括例如但不限于加速度计、磁强计、陀螺仪、磁罗盘和/或其他传感器类型。在一些示例中,例如在六轴应用中,IMU传感器1666可以包括加速计和陀螺仪,而在九轴应用中,IMU传感器1666可以包括加速计、陀螺仪和磁强计。
在一些实施例中,IMU传感器1666可以实现为微型、高性能GPS辅助惯性导航系统(GPS/INS),其结合了微机电系统(MEMS)惯性传感器、高灵敏度GPS接收器和高级卡尔曼滤波算法来提供位置、速度和姿态的估计。因此,在一些示例中,IMU传感器1666可以通过直接观察GPS到IMU传感器1666的速度变化并将其关联起来,从而使车辆1600能够在不需要来自磁传感器的输入的情况下估计航向。在一些示例中,IMU传感器1666和GNSS传感器1658可以组合在单个集成单元中。
车辆可以包括放置在车辆1600内和/或周围的麦克风1696。除了其他方面以外,麦克风1696可以用于紧急车辆检测和识别等。
车辆可以进一步包括任何数量的照相机类型,包括立体照相机1668、广角照相机1670、红外照相机1672、全方位车身照相机1674、远程和/或中程照相机1698和/或其他照相机类型。照相机可以用于捕捉车辆1600的整个外围的图像数据。所使用的照相机类型取决于车辆1600的实施例和要求,并且可以使用照相机类型的任何组合来提供车辆1600周围的必要覆盖范围。此外,照相机的数量可以根据实施例而不同。例如,车辆可以包括六个照相机、七个照相机、十个照相机、十二个照相机和/或其他数量的照相机。作为一个例子,照相机可以支持(但不限于)千兆多媒体串行链路(GMSL)和/或千兆以太网。在本文中参照图16A和图16B更详细地描述每个照相机。
车辆1600还可以包括振动传感器1642。振动传感器1642可以测量车辆组件(如车轴)的振动。例如,振动的变化可以表示路面的变化。在另一示例中,当使用两个或多个振动传感器1642时,振动之间的差异可以用于确定路面的摩擦或滑动(例如,当振动的差异是在动力驱动轴和自由旋转轴之间时)。
车辆1600可以包括ADAS系统1638。在一些示例中,ADAS系统1638可以包括SoC。ADAS系统1638可以包括自动/自适应/自动巡航控制(ACC)、协同自适应巡航控制(CACC)、前向碰撞警告(FCW)、自动紧急制动(AEB)、车道偏离警告(LDW)、车道保持辅助(LKA)、盲点警告(BSW)、后交叉交通警告(RCTW)、碰撞警告系统(CWS),车道中心(LC)和/或其他特征和功能。
ACC系统可以使用雷达传感器1660、激光雷达传感器1664和/或照相机。ACC系统可以包括纵向ACC和/或横向ACC。纵向ACC监控和控制与车辆1600前方车辆的距离,并自动调整车速,以保持与前方车辆的安全距离。横向ACC执行距离保持,并建议车辆1600在必要时改变车道。横向ACC与其他ADAS应用相关,如LCA和CWS。
CACC使用来自其他车辆的信息,这些信息可以通过网络接口1624和/或无线天线1626经由无线链路从其他车辆接收,或通过网络连接(例如,通过因特网)间接接收。直接链路可以由车辆到车辆(V2V)通信链路提供,而间接链路可以是基础设施到车辆(I2V)通信链路。一般来说,V2V通信概念提供了关于前一辆车的信息(例如,车辆1600同一车道上最前方的车辆),而I2V通信概念提供了有关前方交通的信息。CACC系统可以包括I2V和V2V信息源中的一个或两个。考虑到车辆1600前面的车辆信息,CACC可能更可靠,并且它有可能改善交通流的流畅性并减少道路上的拥堵。
FCW系统旨在提醒驾驶员注意危险,以便驾驶员采取纠正措施。FCW系统使用前置照相机和/或雷达传感器1660,其耦连到与驾驶员反馈(例如显示器、扬声器和/或振动组件)电耦连的专用处理器、DSP、FPGA和/或ASIC。FCW系统可以提供警告,如声音、视觉警告、振动和/或快速制动脉冲。
AEB系统检测到与另一辆车或其他物体即将发生的前向碰撞,并且如果驾驶员在指定的时间或距离参数内没有采取纠正措施,则可以自动应用制动。AEB系统可以使用耦连到专用处理器、DSP、FPGA和/或ASIC的前向照相机和/或雷达传感器1660。当AEB系统检测到危险时,通常会首先提醒驾驶员采取纠正措施以避免碰撞,如果驾驶员不采取纠正措施,AEB系统可以自动应用制动,以防止或至少减轻预期碰撞的影响。AEB系统可以包括动态制动支持和/或紧急制动等技术。
LDW系统提供视觉、听觉和/或触觉警告,如方向盘或座椅振动,以在车辆1600越过车道标线时提醒驾驶员。当驾驶员通过激活转向灯指示有意偏离车道时,LDW系统不会激活。LDW系统可以使用耦连到专用处理器、DSP、FPGA和/或ASIC的前向照相机,其电耦连到驾驶员反馈,例如显示器、扬声器和/或振动组件。
LKA系统是LDW系统的变体。如果车辆1600开始离开车道,LKA系统提供转向输入或制动以更正车辆1600。
BSW系统检测并警告驾驶员处于汽车盲点的车辆。BSW系统可以提供视觉、听觉和/或触觉警报,以表明合并或变更车道不安全。当驾驶员使用转向灯时,系统可以提供额外的警告。BSW系统可以使用耦连到专用处理器、DSP、FPGA和/或ASIC的后向照相机和/或雷达传感器1660,其电耦连到驾驶员反馈,例如显示器、扬声器和/或振动组件。
当车辆1600倒车时,当检测到后向照相机范围外的物体时,RCTW系统可以提供视觉、听觉和/或触觉通知。一些RCTW系统包括AEB,以确保应用车辆制动以避免碰撞。RCTW系统可以使用耦连到专用处理器、DSP、FPGA和/或ASIC的一个或更多个后向雷达传感器1660,其电耦连到诸如显示器、扬声器和/或振动组件的驾驶员反馈。
传统的ADAS系统可能容易出现伪正确结果,这可能会使驾驶员感到恼火和分心,但通常不会是灾难性的,因为ADAS系统会提醒驾驶员,并允许驾驶员决定是否存在安全状况并相应地采取行动。然而,在自主车辆1600中,车辆1600自身必须在结果冲突的情况下决定是否注意来自主计算机或辅助计算机(例如,第一控制器1636或第二控制器1636)的结果。例如,在一些实施例中,ADAS系统1638可以是用于向备用计算机合理性模块提供感知信息的备份和/或辅助计算机。备用计算机合理性监控器可以在硬件组件上运行冗余的多样性软件,以检测感知和动态驾驶任务中的故障。可以将来自ADAS系统1638的输出提供给监控MCU。如果主计算机和辅助计算机的输出发生冲突,监控MCU必须确定如何协调冲突以确保安全运行。
在一些示例中,主计算机可以被配置为向监控MCU提供置信度分数,表明主计算机对选定的结果的置信度。如果置信度分数超过阈值,则监控MCU可以跟随主计算机的方向,而不管辅助计算机是否提供冲突或不一致的结果。如果置信度不满足阈值,并且主计算机和辅助计算机显示不同的结果(例如,冲突),则监控MCU可以在计算机之间进行仲裁以确定适当的结果。
监控MCU可以被配置为运行被训练和配置为基于来自主计算机和辅助计算机的输出来确定辅助计算机在哪些情况下提供假警报的神经网络。因此,监控MCU中的神经网络可以学习辅助计算机的输出何时可以信任,何时不能。例如,当辅助计算机是基于雷达的FCW系统时,监控MCU中的神经网络可以学习FCW系统何时识别实际上不是危险的金属物体,例如触发警报的排水格栅或检修孔盖。类似地,当辅助计算机是基于照相机的LDW系统时,监控MCU中的神经网络可以学习在有骑车人或行人的情况下覆盖LDW,并且实际上偏离车道是最安全的操作。在包括在监控MCU上运行的神经网络的实施例中,监控MCU可以包括适于运行具有关联存储器的神经网络的DLA或GPU中的至少一个。在优选实施例中,监控MCU可以包括和/或被包括为SoC 1604的组件。
在其它示例中,ADAS系统1638可以包括使用传统计算机视觉规则执行ADAS功能的辅助计算机。因此,辅助计算机可以使用经典的计算机视觉规则(如果-那么),并且在监控MCU中存在神经网络可以提高可靠性、安全性和性能。例如,不同的实现方式和有意的非同一性使得整个系统具有更强的容错性,特别是对于由软件(或软硬件接口)功能引起的故障。例如,如果在主计算机上运行的软件存在软件缺陷或错误,并且在辅助计算机上运行的不完全相同的软件代码提供了相同的总体结果,则监控MCU可以对总体结果是正确的有更大的信心,而主计算机上的软件或硬件中的错误则不会造成重大错误。
在一些示例中,ADAS系统1638的输出可以被馈入到主计算机的感知块和/或主计算机的动态驾驶任务块。例如,如果ADAS系统1638指示由于正前方的物体而产生的前向碰撞警告,则感知块可在识别对象时使用该信息。在其它示例中,如本文所述,辅助计算机可以具有其自身的神经网络,该神经网络经过训练,从而降低了伪正的风险。
车辆1600还可以包括信息娱乐SoC 1630(例如,车内信息娱乐系统(IVI))。尽管图示并被描述为SoC,但信息娱乐系统可能不是SoC,并且可以包括两个或更多个离散组件。信息娱乐SoC 1630可以包括可以用于向车辆1600提供音频(例如,音乐、个人数字助理、导航指令、新闻、广播等)、视频(例如,电视、电影、流媒体等)、电话(例如,免提通话)、网络连接(例如LTE、Wi-Fi等)、和/或信息服务(例如导航系统、后部驻车辅助、无线电数据系统、车辆相关信息,如燃油油位、行驶总距离、制动器燃油油位、机油油位、车门开/关、空气过滤器信息等)的硬件和软件的组合。例如,信息娱乐SoC 1630可以是收音机、磁盘播放器、导航系统、视频播放器、USB和蓝牙连接、车载电脑、车载娱乐、Wi-Fi、方向盘音频控制、免提语音控制、平视显示器(HUD)、人机界面(HMI)显示器1634、远程通信设备、控制面板(例如,用于控制和/或与各种组件、特征和/或系统交互),和/或其他组件。信息娱乐SoC 1630还可以用于向车辆的用户提供信息(例如,视觉和/或听觉),例如来自ADAS系统1638的信息,自主驾驶信息,例如计划的车辆操纵、轨迹、周围环境信息(例如,交叉口信息、车辆信息、道路信息等),和/或其他信息。
信息娱乐SoC 1630可以包括GPU功能。信息娱乐SoC 1630可以通过总线1602(例如,CAN总线、以太网等)与车辆1600的其他设备、系统和/或组件进行通信。在一些示例中,信息娱乐SoC 1630可以耦连到监控MCU,使得在主控制器1636(例如,车辆1600的主计算机和/或备用计算机)发生故障时,信息娱乐系统的GPU可以执行一些自驾驶功能。在此示例中,如本文所述,信息娱乐SoC 1630可以将车辆1600置于司机至安全停车模式。
车辆1600还可以包括仪表盘1632(例如,数字仪表盘、电子仪表盘、数字仪表盘等)。仪表盘1632可以包括控制器和/或超级计算机(例如,离散控制器或超级计算机)。仪表盘1632可以包括一套仪表,如车速表、燃油油位、机油压力、转速表、里程表、转向指示灯、换档位置指示灯、安全带警示灯、驻车制动警告灯、发动机故障指示灯、安全气囊(SRS)系统信息、照明控制、安全系统控制,导航信息等。在某些示例中,信息可在信息娱乐SoC 1630和仪表盘1632之间显示和/或共享。换句话说,组合仪表1632可以被包括为信息娱乐SoC 1630的一部分,反之亦然。
图16D是根据本公开的一些实施例的用于在基于云的服务器和图16A的示例性自主车辆1600之间进行通信的系统图。系统1676可以包括服务器1678、网络1690和包括车辆1600的车辆。服务器1678可以包括多个GPU 1684(A)-1684(H)(在本文中统称为GPU 1684)、PCIe交换机1682(A)-1682(H)(在本文中统称为PCIe交换机1682)和/或CPU 1680(A)-1680(B)(本文统称为CPU 1680)。GPU 1684、CPU 1680和PCIe交换机可与高速互连互连,例如且不限于由NVIDIA开发的NVLink接口1688和/或PCIe连接1686。在一些示例中,GPU 1684通过NVLink和/或NVSwitch SoC连接,GPU 1684和PCIe交换机1682通过PCIe互连连接。虽然图示了八个GPU 1684、两个CPU 1680和两个PCIe交换机,但这并不意图限制。根据实施例,服务器1678中的每个可以包括任意数量的GPU1684、CPU 1680和/或PCIe交换机。例如,服务器1678可各自包括八个、十六个、三十二个和/或更多个GPU 1684。
服务器1678可以通过网络1690从车辆接收代表图像的图像数据,该图像数据表示诸如最近开始的道路工作的意外或改变的道路状况。服务器1678可以通过网络1690向车辆发送神经网络1692、更新的神经网络1692和/或地图信息1694,包括关于交通和道路状况的信息。地图信息1694的更新可以包括HD地图1622的更新,例如关于建筑场地、坑洞、绕道、洪水和/或其他障碍物的信息。在一些示例中,神经网络1692、更新的神经网络1692和/或地图信息1694可能是由于从环境中的任何数量的车辆接收的数据中表示的新训练和/或经验,和/或基于在数据中心(例如,使用服务器1678和/或其他服务器)执行的训练而产生的。
服务器1678可以用于基于训练数据训练机器学习模型(例如,神经网络)。训练数据可以由车辆生成,和/或可以在模拟中生成(例如,使用游戏引擎)。在一些示例中,训练数据被标记(例如,神经网络受益于监督学习)和/或经过其他预处理,而在其他示例中,训练数据不被标记和/或预处理(例如,在神经网络不需要监督学习的情况下)。可以根据机器学习技术的任何一个或更多个分类来执行训练,包括但不限于诸如:监督训练、半监督训练、无监督训练、自学习、强化学习、联合学习、转移学习、特征学习(包括主成分和聚类分析),多线性子空间学习,流形学习,表示学习(包括备用字典学习),基于规则的机器学习,异常检测,及其任何变体或组合。一旦机器学习模型完成训练,机器学习模型可以被车辆使用(例如,通过网络1690传输到车辆,和/或机器学习模型可以被服务器1678用于远程监控车辆。
在一些示例中,服务器1678可以从车辆接收数据,并将数据应用于实时智能推断的最新实时神经网络。服务器1678可以包括深度学习超级计算机和/或由GPU 1684驱动的专用AI计算机,例如NVIDIA开发的DGX和DGX站机。然而,在一些示例中,服务器1678可以包括仅使用CPU驱动的数据中心的深度学习基础设施。
服务器1678的深度学习基础设施可以有能力快速、实时推断,并且可以使用该能力来评估和验证车辆1600中的处理器、软件和/或相关硬件的健康状况。例如,深度学习基础设施可以接收来自车辆1600的周期性更新,例如车辆1600已在该图像序列中定位的图像和/或对象序列(例如,通过计算机视觉和/或其他机器学习对象分类技术)。深度学习基础设施可以运行自己的神经网络来识别对象,并将其与车辆1600识别的对象进行比较,如果结果不匹配,并且基础设施得出结论认为车辆1600中的AI出现故障,服务器1678可以向车辆1600发送信号,指示车辆1600的故障安全计算机进行控制、通知乘客并完成安全停车操作。
对于推断,服务器1678可以包括GPU 1684和一个或更多个可编程推断加速器(例如,NVIDIA的TensorRT)。GPU驱动的服务器和推断加速的结合可能使实时响应成为可能。在其他示例中,例如性能不太关键的地方,由CPU、FPGA和其他处理器驱动的服务器可以用于推断。
计算设备示例
图17是适于用于实现本发明的一些实施例的示例计算设备1700的框图。计算设备1700可以包括直接或间接耦连以下设备的互连系统1702:存储器1704、一个或更多个中央处理单元(CPU)1706、一个或更多个图形处理单元(GPU)1708、通信接口1710、输入/输出(I/O)端口1712、输入/输出组件1714、电源1716,一个或更多个演示组件1718(例如,显示器)),以及一个或更多个逻辑单元1720。
尽管图17的各个块示出为经由互连系统1702与线路连接,但这并不意图限制,并且仅为清楚起见。例如,在一些实施例中,诸如显示设备的演示组件1718可以被视为I/O组件1714(例如,如果显示器是触摸屏)。作为另一示例,CPU 1706和/或GPU 1708可以包括存储器(例如,除了GPU 1708、CPU 1706和/或其他组件的存储器之外,存储器1704可以代表存储设备)。换句话说,图17的计算设备仅仅是说明性的。不区分“工作站”、“服务器”、“笔记本电脑”、“台式机”、“平板电脑”、“客户端设备”、“移动设备”、“手持设备”、“游戏机”、“电子控制单元(ECU)”、“虚拟现实系统”和/或其他设备或系统类型,全部被预期为在如图17的计算设备的范围内。
互连系统1702可以表示一个或更多个链路或总线,例如地址总线、数据总线、控制总线或其组合。互连系统1702可以包括一个或更多个总线或链路类型,例如工业标准体系结构(ISA)总线、扩展工业标准体系结构(EISA)总线、视频电子标准协会(VESA)总线、外围组件互连(PCI)总线、外围组件互连快速(PCIe)总线,和/或其他类型的总线或链路。在一些实施例中,组件之间存在直接连接。例如,CPU 1706可以直接连接到存储器1704。此外,CPU1706可以直接连接到GPU 1708。在组件之间存在直接或点对点连接的情况下,互连系统1702可以包括用于执行连接的PCIe链路。在这些示例中,PCI总线不需要包括在计算设备1700中。
存储器1704可以包括各种计算机可读介质中的任何一种。计算机可读介质可以是计算设备1700可以访问的任何可用介质。计算机可读介质可以包括易失性和非易失性介质,以及可移动和不可移动介质。作为示例而非限制,计算机可读介质可以包括计算机存储介质和通信介质。
计算机存储介质可以包括易失性和非易失性介质和/或以用于存储诸如计算机可读指令、数据结构、程序模块和/或其他数据类型的任何方法或技术实现的可移动和不可移动介质。例如,存储器1704可以存储计算机可读指令(例如,表示程序和/或程序元素,例如操作系统的)。计算机存储介质可以包括但不限于RAM、ROM、EEPROM、闪存或其他存储技术、CD-ROM、数字多功能磁盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储器或其他磁存储设备,或可以用于存储所需信息并且可以被计算设备1700访问的任何其他介质。用于本文中时,计算机存储介质本身不包括信号。
计算机存储介质可以在诸如载波或其他传输机制的调制数据信号中体现计算机可读指令、数据结构、程序模块和/或其他数据类型,并且包括任何信息传送介质。术语“调制数据信号”可以指具有以这样的方式设置或改变其一个或更多个特征以在信号中编码信息的信号。作为示例而非限制,计算机存储介质可以包括有线介质(例如有线网络或直接有线连接)和无线介质(例如声学、RF、红外和其他无线介质)。上述任何一种的组合也应包括在计算机可读介质的范围内。
CPU 1706可以被配置为执行计算机可读指令中的至少一部分,以控制计算设备1700的一个或更多个组件以执行本文所述的一个或更多个方法和/或进程。CPU 1706每个可以包括能够同时处理多个软件线程的一个或更多个核心(例如,一个、两个、四个、八个、二十八个、七十二个等)。CPU 1706可以包括任何类型的处理器,并且可以根据所实现的计算设备1700的类型而包括不同类型的处理器(例如,用于移动设备的具有较少核心的处理器和用于服务器的具有更多核心的处理器)。例如,根据计算设备1700的类型,处理器可以是使用精简指令集计算(RISC)实现的高级RISC机器(ARM)处理器或使用复杂指令集计算(CISC)实现的x86处理器。除了一个或更多个微处理器或辅助协处理器(例如数学协处理器)之外,计算设备1700还可以包括一个或更多个CPU 1706。
作为对CPU 1706的补充或替代,GPU 1708可以被配置为执行至少一些计算机可读指令,以控制计算设备1700的一个或更多个组件以执行本文所述的一个或更多个方法和/或进程。GPU 1708中的一个或更多个可以是集成GPU(例如,具有CPU 1706中的一个或更多个)和/或GPU 1708中的一个或更多个可以是离散GPU。在实施例中,GPU 1708中的一个或更多个可以是CPU 1706中的一个或更多个的协处理器。GPU 1708可以由计算设备1700用于渲染图形(例如,3D图形)或执行通用计算。例如,GPU 1708可以用于GPU(GPGPU)上的通用计算。GPU 1708可以包括能够同时处理数百或数千个软件线程的数百或数千个核心。GPU1708可以响应于渲染命令(例如,经由主机接口接收到的来自CPU 1706的渲染命令)来生成用于输出图像的像素数据。GPU 1708可以包括图形存储器,例如显示存储器,用于存储像素数据或任何其他合适的数据,例如GPGPU数据。显示存储器可以被包括为存储器1704的部分。GPU 1708可以包括两个或多个并行操作的GPU(例如,经由链路)。链路可以直接连接GPU(例如,使用NVLINK),也可以通过交换机连接GPU(例如,使用NVSwitch)。当组合在一起时,每个GPU 1708可以为输出的不同部分或不同的输出(例如,用于第一图像的第一GPU和用于第二图像的第二GPU)生成像素数据或GPGPU数据。每个GPU可以包括自己的存储器,或者可以与其他GPU共享存储器。
除了CPU 1706和/或GPU 1708,逻辑单元1720可以被配置为执行至少一些计算机可读指令,以控制计算设备1700的一个或更多个组件以执行本文所述的一个或更多个方法和/或进程中的至少部分计算机可读指令。在实施例中,CPU 1706、GPU 1708和/或逻辑单元1720可以离散地或联合地执行方法、进程和/或其部分的任何组合。逻辑单元1720中的一个或更多个可以是CPU 1706和/或GPU 1708中的一个或更多个的一部分和/或集成在CPU1706和/或GPU 1708中的一个或更多个逻辑单元1720可以是分立组件或在CPU 1706和/或GPU 1708外部。在实施例中,逻辑单元1720中的一个或更多个可以是CPU 1706中的一个或更多个和/或GPU 1708中的一个或更多个的协处理器。
逻辑单元1720的示例包括一个或更多个处理核心和/或其组件,例如张量核心(TC)、张量处理单元(TPU)、像素可视核心(PVC)、视觉处理单元(VPU)、图形处理集群(GPC)、纹理处理集群(TPC)、流式多处理器(SM),树遍历单元(TTU)、人工智能加速器(AIA)、深度学习加速器(DLA)、算术逻辑单元(ALU)、专用集成电路(ASIC)、浮点单元(FPU)、输入/输出(I/O)元素、外围组件互连(PCI)或外围组件互连快速(PCIe)元素,等等。
通信接口1710可以包括一个或更多个接收器、发送器和/或收发器,使得计算设备1700能够经由包括有线和/或无线通信的电子通信网络与其他计算设备通信。通信接口1710可以包括组件和功能,以便能够通过诸如无线网络(例如,Wi-Fi、Z-Wave、蓝牙、蓝牙LE、ZigBee等)、有线网络(例如,通过以太网或无限宽带技术进行通信)、低功率广域网(例如,LoRaWAN、SigFox,等等),和/或互联网。
I/O端口1712可以使计算设备1700逻辑地耦连到包括I/O组件1714、演示组件1718和/或其他组件的其他设备,其中一些组件可以内置(例如,集成在)计算设备1700中。示例性的的I/O组件1714包括麦克风、鼠标、键盘、操纵杆、游戏板、游戏控制器、卫星天线、扫描仪、打印机、无线设备等。I/O组件1714可以提供自然用户界面(NUI),其处理由用户生成的空中手势、语音或其他生理输入。在某些情况下,可以将输入传输到适当的网络元件以进行进一步处理。NUI可以实现与计算设备1700的显示相关联的语音识别、手写笔识别、面部识别、生物识别、屏幕上和屏幕附近的手势识别、空中手势、头部和眼睛跟踪以及触摸识别(如下更详细地描述)的任何组合。计算设备1700可以包括用于手势检测和识别的深度照相机,例如立体照相机系统、红外照相机系统、RGB照相机系统、触摸屏技术及其组合。另外,计算设备1700可以包括能够检测运动的加速计或陀螺仪(例如,作为惯性测量单元(IMU)的一部分)。在一些示例中,加速度计或陀螺仪的输出可以由计算设备1700用于渲染沉浸式增强现实或虚拟现实。
电源1716可以包括硬接线电源、电池电源或其组合。电源1716可以向计算设备1700提供电源以使计算设备1700的组件能够工作。
演示组件1718可以包括显示器(例如,监控器、触摸屏、电视屏幕、平视显示器(HUD)、其他显示类型或其组合)、扬声器和/或其他呈现组件。演示组件1718可以从其他组件(例如,GPU 1708、CPU 1706等)接收数据,并输出数据(例如,作为图像、视频、声音等)。
本公开可以在计算机代码或机器可用指令的一般上下文中描述,包括由计算机或其他机器(例如个人数据助理或其他手持设备)执行的程序模块等计算机可执行指令。通常,程序模块包括例程、程序、对象、组件、数据结构等,是指执行特定任务或实现特定抽象数据类型的代码。本公开可以在各种系统配置中实施,包括手持设备、消费电子产品、通用计算机、更专业的计算设备,等等,本公开还可以在分布式计算环境中实施,其中任务由通过通信网络链接的远程处理设备执行。
如本文所用,关于两个或多个元件的“和/或”的叙述应解释为仅指一个元件或元件的组合。例如,“元件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 (20)

1.一种方法,包括:
从传感器数据确定表示环境的第一视图的第一数据;
至少基于所述第一数据,使用一个或更多个神经网络(NN)提取表示所述第一视图中描绘的对象或场景的一个或更多个分类的分类数据;
至少基于将所述一个或更多个分类从所述第一视图投影到所述环境的第二视图,生成表示所述第二视图中的一个或更多个分类的经转换的分类数据;以及
至少基于所述经转换的分类数据,使用所述一个或更多个神经网络生成表示所述环境中检测到的一个或更多个对象的一个或更多个边界形状的第二数据。
2.根据权利要求1所述的方法,其中所述第一视图为透视视图,并且所述第二视图为俯视视图。
3.根据权利要求1所述的方法,其中表示所述环境的所述第一视图的所述第一数据包括激光雷达点云的投影,所述投影表示所述环境的透视图,并且其中将所述一个或更多个分类从所述第一视图投影到所述第二视图包括:使用所述激光雷达点云来将所述一个或更多个分类从所述透视图投影到所述环境的俯视视图。
4.根据权利要求1所述的方法,其中所述第一数据表示所述第一视图的激光雷达范围图像,并且确定所述第一数据包括:将激光雷达点云投影到所述激光雷达范围图像中。
5.根据权利要求1所述的方法,其中所述第一数据表示所述第一视图的激光雷达范围图像,所述激光雷达范围图像具有与捕捉所述传感器数据的激光雷达传感器的多条水平扫描线相对应的像素高度。
6.根据权利要求1所述的方法,其中所述传感器数据包括来自自我角色的一个或更多个激光雷达传感器在一段时间内累积的累积传感器数据,并且所述确定表示环境的第一视图的第一数据包括:
将所述累积传感器数据转换为与所述自我角色在特定时刻的位置相对应的运动补偿传感器数据;以及
将所述运动补偿传感器数据投影到二维(2D)图像空间,以生成表示所述环境的所述第一视图的激光雷达范围图像的所述第一数据。
7.根据权利要求1所述的方法,其中将所述一个或更多个分类从所述第一视图投影到所述第二视图包括:对与所述分类数据相关联的3D位置应用可微变换。
8.根据权利要求1所述的方法,其中所述传感器数据表示激光雷达点云,其中所述经转换的分类数据表示所述第二视图中的一个或更多个置信度图,并且所述方法还包括:
至少基于将所述激光雷达点云投影到所述第二视图来生成表示一个或更多个高度图的第三数据;
形成张量,所述张量包括存储表示所述一个或更多个置信度图的所述经转换的分类数据的一个或更多个通道的第一集合和存储表示所述一个或更多个高度图的所述第三数据的一个或更多个通道的第二集合;以及
使用所述一个或更多个神经网络,从所述张量中提取表示所述第二视图中的一个或更多个第二分类的第二分类数据和表示所述一个或更多个对象的对象实例几何形状的第四数据。
9.根据权利要求1所述的方法,还包括:
解码所述一个或更多个神经网络的输出,以为所述一个或更多个对象生成候选边界形状;
基于对所述候选边界框执行过滤或聚类中的至少一个以从所述候选边界框中移除重复候选对象,来识别表示所述一个或更多个对象的所述一个或更多个边界形状的所述第二数据;以及
基于所述一个或更多个神经网络的所述输出为所述一个或更多个边界形状中的每一个指定分类标签。
10.根据权利要求1所述的方法,其中所述确定表示所述一个或更多个边界形状的所述第二数据包括:
解码所述一个或更多个神经网络的输出,以为所述一个或更多个对象产生候选边界形状;以及
基于对带有噪声的应用程序执行非最大抑制或基于密度的空间聚类中的至少一个以从所述候选边界形状中移除重复候选对象,来识别表示所述一个或更多个对象的所述一个或更多个边界形状的所述第二数据。
11.根据权利要求1所述的方法,其中所述一个或更多个神经网络的输出包括存储每个被检测对象的回归几何数据的张量,其中所述确定表示所述一个或更多个边界形状的所述第二数据包括:从所述回归几何数据为所述一个或更多个对象生成一个或更多个3D边界形状。
12.根据权利要求1所述的方法,还包括:使用训练数据训练所述一个或更多个神经网络,所述训练数据使用用于跟踪对应的传感器数据的两个或更多个帧之间的注释对象的注释跟踪生成。
13.根据权利要求1所述的方法,还包括:使用训练数据训练所述一个或更多个神经网络,所述训练数据使用从两个或更多个传感器的对应的传感器数据为特定对象生成的对象轨迹之间的链接生成。
14.一种方法,包括:
从环境中的一个或更多个激光雷达传感器接收激光雷达数据;
从激光雷达数据生成表示所述环境的透视视图的第一数据;
使用一个或更多个神经网络(NN)从所述第一数据生成分类数据,所述分类数据表示所述透视视图中的一个或更多个分类;
通过使用所述激光雷达数据将所述透视视图中的一个或更多个分类投影到所述环境的俯视视图中,生成表示所述俯视视图中的所述一个或更多个分类的经转换的分类数据;以及
至少基于所述俯视视图中的所述经转换的分类数据,使用所述一个或更多个神经网络生成表示所述环境中检测到的一个或更多个对象的一个或更多个边界形状的第二数据。
15.根据权利要求14所述的方法,其中所述生成表示所述环境的透视视图的第一数据包括:
访问来自自我角色的所述一个或更多个激光雷达传感器在一段时间中累积的累积传感器数据;
将所述累积传感器数据转换为与特定时刻的所述自我角色的位置相对应的运动补偿传感器数据;以及
将所述运动补偿传感器数据投影到二维(2D)图像空间,以生成表示所述环境的所述透视视图的激光雷达范围图像的所述第一数据。
16.根据权利要求14所述的方法,其中所述一个或更多个神经网络包括被配置为评估表示所述透视视图的所述第一数据的第一阶段,以及被配置为评估表示所述俯视视图的所述经转换的分类数据的第二阶段。
17.根据权利要求14所述的方法,其中所述第二数据还表示所述一个或更多个对象的所述一个或更多个边界形状中每一个的分类标签。
18.一种方法,包括:
使用一个或更多个神经网络(NN)从表示环境的第一视图的图像的图像数据生成表示一个或更多个分类的分类数据;
将所述分类数据与从相应传感器数据中识别出的相应三维(3D)位置相关联,以生成经标记的传感器数据;
将所述经标记的传感器数据投影到所述环境的第二视图,以生成表示所述第二视图中的所述一个或更多个分类的经转换的分类数据;以及
至少基于所述经转换的分类数据,使用所述一个或更多个神经网络(NN)生成表示所述环境中检测到的一个或更多个对象的一个或更多个边界形状的第二数据。
19.根据权利要求18所述的方法,其中所述第二数据还表示所述一个或更多个对象的一个或更多个分类标签。
20.根据权利要求18所述的方法,其中,所述生成表示所述一个或更多个边界形状的第二数据包括:基于表示所述第二视图中的一个或更多个第二分类的第二分类数据和表示对象实例几何体的第三数据,为所述对象生成所述一个或更多个边界形状和相关联的分类标签,所述第二分类数据和所述第三数据由所述一个或更多个神经网络提取。
CN202011272919.8A 2019-11-15 2020-11-13 用于激光雷达感知的多视图深度神经网络 Pending CN112904370A (zh)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US201962936080P 2019-11-15 2019-11-15
US62/936,080 2019-11-15
US201962938852P 2019-11-21 2019-11-21
US62/938,852 2019-11-21
US16/915,346 2020-06-29
US16/915,346 US11532168B2 (en) 2019-11-15 2020-06-29 Multi-view deep neural network for LiDAR perception

Publications (1)

Publication Number Publication Date
CN112904370A true CN112904370A (zh) 2021-06-04

Family

ID=76111302

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011272919.8A Pending CN112904370A (zh) 2019-11-15 2020-11-13 用于激光雷达感知的多视图深度神经网络

Country Status (1)

Country Link
CN (1) CN112904370A (zh)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210256724A1 (en) * 2019-12-06 2021-08-19 Mashgin Inc. System and method for identifying items
CN113920490A (zh) * 2021-12-15 2022-01-11 深圳佑驾创新科技有限公司 车辆障碍检测方法、装置及设备
CN113965837A (zh) * 2021-12-21 2022-01-21 华南师范大学 光网络动态频谱分区方法、装置、存储介质和计算机设备
CN114488185A (zh) * 2022-03-01 2022-05-13 山东大学 基于多线激光雷达的机器人导航系统方法及系统
CN114511978A (zh) * 2021-12-27 2022-05-17 浙江华锐捷技术有限公司 一种入侵预警方法、装置、车辆和计算机可读存储介质
CN114881318A (zh) * 2022-04-28 2022-08-09 西安邮电大学 基于生成对抗网络的锂电池健康状态预测方法及系统
CN115168478A (zh) * 2022-09-06 2022-10-11 深圳市明源云科技有限公司 数据类型转换方法、电子设备及可读存储介质
CN115171428A (zh) * 2022-06-24 2022-10-11 重庆长安汽车股份有限公司 一种基于视觉感知的车辆切入预警方法
CN115664908A (zh) * 2022-10-19 2023-01-31 西安电子科技大学 通信信号调制识别的跨层智能对抗方法、系统、介质及设备
EP4140842A1 (en) * 2021-08-26 2023-03-01 Aptiv Technologies Limited Methods and systems for controlling a vehicle
CN115840223A (zh) * 2023-02-15 2023-03-24 成都熵泱科技有限公司 一种可识别目标属性的无人机探测系统及方法
CN118068374A (zh) * 2024-04-19 2024-05-24 北京凯芯微科技有限公司 一种gnss导航芯片工作模式切换方法及装置

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150036870A1 (en) * 2013-07-30 2015-02-05 The Boeing Company Automated graph local constellation (glc) method of correspondence search for registration of 2-d and 3-d data
US20160073080A1 (en) * 2014-09-05 2016-03-10 Qualcomm Incorporated Method and apparatus for efficient depth image transformation
US9286538B1 (en) * 2014-05-01 2016-03-15 Hrl Laboratories, Llc Adaptive 3D to 2D projection for different height slices and extraction of robust morphological features for 3D object recognition
CA2934636A1 (en) * 2015-07-21 2017-01-21 Airbus Ds Electronics And Border Security Gmbh Method for increasing the situational awareness and the location detection of obstacles in the presence of aerosol clouds
CN108171217A (zh) * 2018-01-29 2018-06-15 深圳市唯特视科技有限公司 一种基于点融合网络的三维物体检测方法
US20180314253A1 (en) * 2017-05-01 2018-11-01 Mentor Graphics Development (Deutschland) Gmbh Embedded automotive perception with machine learning classification of sensor data
US20180349746A1 (en) * 2017-05-31 2018-12-06 Uber Technologies, Inc. Top-View Lidar-Based Object Detection
US20180348346A1 (en) * 2017-05-31 2018-12-06 Uber Technologies, Inc. Hybrid-View Lidar-Based Object Detection
CN109284764A (zh) * 2017-07-19 2019-01-29 通用汽车环球科技运作有限责任公司 用于自主车辆中对象分类的系统和方法
CN109814130A (zh) * 2017-11-21 2019-05-28 通用汽车环球科技运作有限责任公司 用于在车辆感知系统中自由空间推断以分开群集对象的系统和方法

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150036870A1 (en) * 2013-07-30 2015-02-05 The Boeing Company Automated graph local constellation (glc) method of correspondence search for registration of 2-d and 3-d data
US9286538B1 (en) * 2014-05-01 2016-03-15 Hrl Laboratories, Llc Adaptive 3D to 2D projection for different height slices and extraction of robust morphological features for 3D object recognition
US20160073080A1 (en) * 2014-09-05 2016-03-10 Qualcomm Incorporated Method and apparatus for efficient depth image transformation
CN106796718A (zh) * 2014-09-05 2017-05-31 高通股份有限公司 用于高效深度图像变换的方法和设备
CA2934636A1 (en) * 2015-07-21 2017-01-21 Airbus Ds Electronics And Border Security Gmbh Method for increasing the situational awareness and the location detection of obstacles in the presence of aerosol clouds
US20180314253A1 (en) * 2017-05-01 2018-11-01 Mentor Graphics Development (Deutschland) Gmbh Embedded automotive perception with machine learning classification of sensor data
US20180349746A1 (en) * 2017-05-31 2018-12-06 Uber Technologies, Inc. Top-View Lidar-Based Object Detection
US20180348346A1 (en) * 2017-05-31 2018-12-06 Uber Technologies, Inc. Hybrid-View Lidar-Based Object Detection
CN109284764A (zh) * 2017-07-19 2019-01-29 通用汽车环球科技运作有限责任公司 用于自主车辆中对象分类的系统和方法
CN109814130A (zh) * 2017-11-21 2019-05-28 通用汽车环球科技运作有限责任公司 用于在车辆感知系统中自由空间推断以分开群集对象的系统和方法
CN108171217A (zh) * 2018-01-29 2018-06-15 深圳市唯特视科技有限公司 一种基于点融合网络的三维物体检测方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
XIAOZHI CHEN 等: "Multi-View 3D Object Detection Network for Autonomous Driving", 30TH IEEE CONFERENCE ON COMPUTER VISION AND PATTERN RECOGNITION (CVPR 2017), pages 6526 - 6534 *
朱庆;李世明;胡翰;钟若飞;吴波;谢林甫;: "面向三维城市建模的多点云数据融合方法综述", 武汉大学学报(信息科学版), no. 12, pages 1964 - 1971 *
黄鸿胜;: "基于深度学习的高效3维车辆检测", 电子世界, no. 03, pages 26 - 27 *

Cited By (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11972618B2 (en) * 2019-12-06 2024-04-30 Mashgin Inc. System and method for identifying items
US20210256724A1 (en) * 2019-12-06 2021-08-19 Mashgin Inc. System and method for identifying items
EP4140842A1 (en) * 2021-08-26 2023-03-01 Aptiv Technologies Limited Methods and systems for controlling a vehicle
CN113920490A (zh) * 2021-12-15 2022-01-11 深圳佑驾创新科技有限公司 车辆障碍检测方法、装置及设备
CN113965837A (zh) * 2021-12-21 2022-01-21 华南师范大学 光网络动态频谱分区方法、装置、存储介质和计算机设备
CN113965837B (zh) * 2021-12-21 2022-02-25 华南师范大学 光网络动态频谱分区方法、装置、存储介质和计算机设备
CN114511978B (zh) * 2021-12-27 2024-02-20 浙江华锐捷技术有限公司 一种入侵预警方法、装置、车辆和计算机可读存储介质
CN114511978A (zh) * 2021-12-27 2022-05-17 浙江华锐捷技术有限公司 一种入侵预警方法、装置、车辆和计算机可读存储介质
CN114488185B (zh) * 2022-03-01 2024-08-16 山东大学 基于多线激光雷达的机器人导航系统方法及系统
CN114488185A (zh) * 2022-03-01 2022-05-13 山东大学 基于多线激光雷达的机器人导航系统方法及系统
CN114881318A (zh) * 2022-04-28 2022-08-09 西安邮电大学 基于生成对抗网络的锂电池健康状态预测方法及系统
CN115171428A (zh) * 2022-06-24 2022-10-11 重庆长安汽车股份有限公司 一种基于视觉感知的车辆切入预警方法
CN115171428B (zh) * 2022-06-24 2023-06-30 重庆长安汽车股份有限公司 一种基于视觉感知的车辆切入预警方法
CN115168478B (zh) * 2022-09-06 2022-11-29 深圳市明源云科技有限公司 数据类型转换方法、电子设备及可读存储介质
CN115168478A (zh) * 2022-09-06 2022-10-11 深圳市明源云科技有限公司 数据类型转换方法、电子设备及可读存储介质
CN115664908B (zh) * 2022-10-19 2024-04-05 西安电子科技大学 通信信号调制识别的跨层智能对抗方法、系统、介质及设备
CN115664908A (zh) * 2022-10-19 2023-01-31 西安电子科技大学 通信信号调制识别的跨层智能对抗方法、系统、介质及设备
CN115840223B (zh) * 2023-02-15 2023-05-09 成都熵泱科技有限公司 一种可识别目标属性的无人机探测系统及方法
CN115840223A (zh) * 2023-02-15 2023-03-24 成都熵泱科技有限公司 一种可识别目标属性的无人机探测系统及方法
CN118068374A (zh) * 2024-04-19 2024-05-24 北京凯芯微科技有限公司 一种gnss导航芯片工作模式切换方法及装置

Similar Documents

Publication Publication Date Title
US12051206B2 (en) Deep neural network for segmentation of road scenes and animate object instances for autonomous driving applications
US12072443B2 (en) Segmentation of lidar range images
CN112825136B (zh) 自主机器应用中使用radar传感器检测障碍物的深度神经网络
US11688181B2 (en) Sensor fusion for autonomous machine applications using machine learning
US11941873B2 (en) Determining drivable free-space for autonomous vehicles
US11769052B2 (en) Distance estimation to objects and free-space boundaries in autonomous machine applications
US11675359B2 (en) Path detection for autonomous machines using deep neural networks
CN112825134B (zh) 自主机器应用中使用radar传感器检测障碍物的深度神经网络
US11531088B2 (en) Deep neural network for detecting obstacle instances using radar sensors in autonomous machine applications
CN113811886A (zh) 自主机器应用中的路口检测和分类
CN113906271A (zh) 用于自主机器应用的使用地图信息增强的地面实况数据的神经网络训练
CN112904370A (zh) 用于激光雷达感知的多视图深度神经网络
CN115315709A (zh) 自主系统中用于行为预测的基于模型的增强学习及应用
US20230213945A1 (en) Obstacle to path assignment for autonomous systems and applications
US12050285B2 (en) Deep neural network for detecting obstacle instances using radar sensors in autonomous machine applications
US12080078B2 (en) Multi-view deep neural network for LiDAR perception
US20240029447A1 (en) Multi-view deep neural network for lidar perception
US20240281988A1 (en) Landmark perception for localization in autonomous systems and applications
US20240280372A1 (en) Machine learning based landmark perception for localization in autonomous systems and applications

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