CN115218888A - 用于更新高清地图的系统和方法 - Google Patents

用于更新高清地图的系统和方法 Download PDF

Info

Publication number
CN115218888A
CN115218888A CN202210403826.7A CN202210403826A CN115218888A CN 115218888 A CN115218888 A CN 115218888A CN 202210403826 A CN202210403826 A CN 202210403826A CN 115218888 A CN115218888 A CN 115218888A
Authority
CN
China
Prior art keywords
vehicle
objects
coordinate system
absolute coordinate
determining
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
CN202210403826.7A
Other languages
English (en)
Inventor
A·阿克巴扎德
R·巴尔加瓦
B·戴迪亚
R·雅各比
J·刘
V·图卡拉尔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nvidia Corp
Original Assignee
Nvidia Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nvidia Corp filed Critical Nvidia Corp
Publication of CN115218888A publication Critical patent/CN115218888A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/38Electronic maps specially adapted for navigation; Updating thereof
    • G01C21/3804Creation or updating of map data
    • G01C21/3859Differential updating map data
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/38Electronic maps specially adapted for navigation; Updating thereof
    • G01C21/3804Creation or updating of map data
    • G01C21/3807Creation or updating of map data characterised by the type of data
    • G01C21/3811Point data, e.g. Point of Interest [POI]
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/26Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
    • G01C21/34Route searching; Route guidance
    • G01C21/36Input/output arrangements for on-board computers
    • G01C21/3667Display of a road map
    • G01C21/3673Labelling using text of road map data items, e.g. road names, POI names
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/38Electronic maps specially adapted for navigation; Updating thereof
    • G01C21/3804Creation or updating of map data
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/38Electronic maps specially adapted for navigation; Updating thereof
    • G01C21/3804Creation or updating of map data
    • G01C21/3807Creation or updating of map data characterised by the type of data
    • G01C21/3815Road data
    • G01C21/3819Road shape data, e.g. outline of a route
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/38Electronic maps specially adapted for navigation; Updating thereof
    • G01C21/3804Creation or updating of map data
    • G01C21/3833Creation or updating of map data characterised by the source of data
    • G01C21/3844Data obtained from position sensors only, e.g. from inertial navigation
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/38Electronic maps specially adapted for navigation; Updating thereof
    • G01C21/3804Creation or updating of map data
    • G01C21/3833Creation or updating of map data characterised by the source of data
    • G01C21/3852Data derived from aerial or satellite images
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • G06T7/73Determining position or orientation of objects or cameras using feature-based methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/50Context or environment of the image
    • G06V20/56Context or environment of the image exterior to a vehicle by using sensors mounted on the vehicle
    • G06V20/58Recognition of moving objects or obstacles, e.g. vehicles or pedestrians; Recognition of traffic objects, e.g. traffic signs, traffic lights or roads
    • G06V20/584Recognition of moving objects or obstacles, e.g. vehicles or pedestrians; Recognition of traffic objects, e.g. traffic signs, traffic lights or roads of vehicle lights or traffic lights
    • GPHYSICS
    • G08SIGNALLING
    • G08GTRAFFIC CONTROL SYSTEMS
    • G08G1/00Traffic control systems for road vehicles
    • G08G1/01Detecting movement of traffic to be counted or controlled
    • G08G1/0104Measuring and analyzing of parameters relative to traffic conditions
    • G08G1/0108Measuring and analyzing of parameters relative to traffic conditions based on the source of data
    • G08G1/0112Measuring and analyzing of parameters relative to traffic conditions based on the source of data from the vehicle, e.g. floating car data [FCD]
    • GPHYSICS
    • G08SIGNALLING
    • G08GTRAFFIC CONTROL SYSTEMS
    • G08G1/00Traffic control systems for road vehicles
    • G08G1/01Detecting movement of traffic to be counted or controlled
    • G08G1/0104Measuring and analyzing of parameters relative to traffic conditions
    • G08G1/0125Traffic data processing
    • G08G1/0129Traffic data processing for creating historical data or processing based on historical data
    • GPHYSICS
    • G08SIGNALLING
    • G08GTRAFFIC CONTROL SYSTEMS
    • G08G1/00Traffic control systems for road vehicles
    • G08G1/01Detecting movement of traffic to be counted or controlled
    • G08G1/04Detecting movement of traffic to be counted or controlled using optical or ultrasonic detectors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/02Services making use of location information
    • H04W4/023Services making use of location information using mutual or relative location information between multiple location based services [LBS] targets or of distance thresholds
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/30Services specially adapted for particular environments, situations or purposes
    • H04W4/40Services specially adapted for particular environments, situations or purposes for vehicles, e.g. vehicle-to-pedestrians [V2P]
    • H04W4/44Services specially adapted for particular environments, situations or purposes for vehicles, e.g. vehicle-to-pedestrians [V2P] for communication between vehicles and infrastructures, e.g. vehicle-to-cloud [V2C] or vehicle-to-home [V2H]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10024Color image
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10028Range image; Depth image; 3D point clouds
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20081Training; Learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20084Artificial neural networks [ANN]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30248Vehicle exterior or interior
    • G06T2207/30252Vehicle exterior; Vicinity of vehicle
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30248Vehicle exterior or interior
    • G06T2207/30252Vehicle exterior; Vicinity of vehicle
    • G06T2207/30261Obstacle
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/80Services using short range communication, e.g. near-field communication [NFC], radio-frequency identification [RFID] or low energy communication

Landscapes

  • Engineering & Computer Science (AREA)
  • Remote Sensing (AREA)
  • Radar, Positioning & Navigation (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Theoretical Computer Science (AREA)
  • Chemical & Material Sciences (AREA)
  • Analytical Chemistry (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Multimedia (AREA)
  • Traffic Control Systems (AREA)
  • Instructional Devices (AREA)
  • Navigation (AREA)
  • Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)

Abstract

用于基于车辆确定HD地图更新信息的系统和方法。配备传感器的车辆可以确定各种检测到的对象相对于车辆的位置。车辆还可以确定参考对象相对于车辆的位置,其中参考对象在绝对坐标系中的位置也是已知的。然后可以根据参考对象的绝对位置和其他对象相对于参考对象的位置来确定各种检测对象的绝对坐标。然后可以将新确定的检测对象的绝对位置传输到HD地图服务以进行更新。

Description

用于更新高清地图的系统和方法
背景技术
本公开的实施例总体上涉及车辆。更具体地,本公开的实施例涉及基于车辆的高清地图更新。
发明内容
现代自主车辆通常采用高清(HD)地图来辅助各种驾驶功能,例如自主导航、路径规划和避障。这种HD地图通常将各种道路相关特征的位置描述到导航所需的厘米级准确度。
然而,采用HD地图的车辆面临重大挑战。随着由于施工、自然现象等原因导致的道路状况和对象的变化(通常是零星的),必须定期或频繁地更新HD地图。将HD地图更新到厘米级准确度传统上需要使用高精度定位系统,例如全球导航卫星系统(GNSS)接收器,这些系统昂贵且笨重,不适合在消费者购买的车辆中使用。因此,HD地图更新需要配备GNSS接收器的特殊车辆,这带来了巨大的成本,而且由于成本的原因,其有限的部署自然会限制更新的覆盖范围和频率。
作为替代,一些HD地图更新服务接受对象的相对坐标。车辆可以确定对象相对于车辆本身的位置或坐标,并且地图更新服务可以使用确定的车辆位置将这些相对坐标转换成绝对系统中的坐标,例如世界大地测量系统1984(WGS84)。遗憾的是,此类地图更新服务并未广泛接受相对坐标。
因此,本文描述了用于使用绝对坐标而不是相对坐标来更新HD地图的系统和方法。绝对坐标由车辆计算的相对坐标确定,这些绝对坐标被发送到HD地图更新服务,在那里它们比相对坐标更容易被接受。车辆可以使用各种车载服务确定对象的相对位置,并且可以检索相对位置也已知的参考对象的绝对位置。然后可以从参考对象的绝对位置和这些其他对象相对于参考对象的计算位置来确定任何检测到的对象的绝对坐标。然后可以将新确定的检测对象的绝对位置传输到HD地图服务以进行更新。
车辆可以使用任何类型的任何合适的传感器输入来确定对象的相对位置。在本公开的一些实施例中,配备有相机或其他传感器的自主车辆可以根据传感器数据确定对象的相对位置。例如,配备相机的车辆可以捕获在其视场内的对象的图像,并且可以从这些图像中确定这些对象相对于车辆的位置。对象位置也可以从其他传感器确定,例如光检测和测距(LiDAR)数据、超声波或其他接近传感器等。
车辆还可以使用任何合适的方法或方法来确定对象的相对位置。作为一个示例,车辆可以确定对象相对位置的多个不同估计,然后可以以某种合适的方式对这些估计进行平均以确定位置值。例如,单个车辆可能多次经过一个对象,每次都会确定该对象的相对位置的估计。作为另一示例,多辆车辆可以经过同一对象,每个车辆确定该对象的位置估计。无论以何种方式确定对象的多个位置估计,然后可以以某种方式对多个估计进行平均以确定对象的单个位置值。因此,可以确定更准确的位置信息,并且可以考虑对象随时间的任何移动。
本公开的一些实施例还采用不同于HD地图绝对坐标系的局部绝对坐标系。因此,车辆可以首先确定该局部绝对坐标系中的对象位置,然后将局部绝对坐标位置发送到HD地图服务,或者将局部绝对坐标转换为HD地图绝对坐标并将这些转换后的坐标发送给HD地图服务。例如,车辆可以维护局部路边地图,在该地图中放置检测到的对象,其中该路边地图使用绝对坐标系,该绝对坐标系可能与远程HD地图使用的坐标系相同,也可能不同。也就是说,车辆可以根据它们所确定的相对坐标和参考对象在道路坐标系内的位置来确定在该绝对道路坐标系中检测到的对象的坐标。放置在道路坐标系中的对象可以传输到HD地图服务,例如通过将它们在道路坐标系中的位置转换为HD地图的全球坐标系,然后将转换后的坐标发送到HD地图服务。
还可以注意到,可以采用本公开的实施例的系统和方法来确认或修改已知的对象位置。也就是说,可以确定对象的绝对位置并将其与已经建立的对象位置进行比较。如果新确定的位置与已建立的位置相差过大(例如,超过阈值),则可以以任何方式修改已建立的位置。随着时间的推移,连续的修订可以更精确地定位对象。这也可以帮助解释可能随时间移动的路边对象,例如被新建筑移动的灯柱、倒下的树枝等。
因此,本公开的实施例提出了用于根据可能处于运动的车辆确定对象的绝对坐标的系统和方法。对象相对于车辆的位置由车辆在移动时确定,并且这些相对位置使用由车辆检测到的并且其绝对坐标已知的一个或更多个参考对象转换为绝对坐标。然后可以将计算的绝对坐标传送到例如HD地图服务以更新HD地图。
附图说明
结合附图考虑以下详细描述时,本公开的上述和其他目的和优点将显而易见,其中相同的附图标记始终指代相同的部分,其中:
图1概念性地示出了根据本公开的实施例的用于基于车辆的HD地图更新的示例性系统和方法;
图2示出了根据本公开的实施例的用于自主车辆的示例性HD语义地图;
图3是根据本公开的实施例的与自主车辆一起使用的示例语义地图绘制系统的框图;
图4A是根据本公开的一些实施例的示例自主车辆的图示;
图4B为根据本公开一些实施例的用于图4A的示例自主车辆的相机位置和视场的示例;
图4C为根据本公开一些实施例的用于图4A的示例自主车辆的示例系统架构的框图;
图4D为根据本公开一些实施例的图4A的基于云的服务器与示例自主车辆之间的通信的系统图;
图5为适合用于实现本公开一些实施例的示例计算设备的框图;
图6示出了本公开实施例的机器学习模型的训练和部署;以及
图7是示出根据本公开的实施例的基于车辆的HD地图更新的示例性过程的流程图。
具体实施方式
在一个实施例中,本公开涉及用于基于车辆确定HD地图更新信息的系统和方法。配备传感器的车辆可以确定各种检测到的对象相对于车辆的位置。车辆还可以确定参考对象相对于车辆的位置,其中参考对象在绝对坐标系中的位置也是已知的。然后可以根据参考对象的绝对位置和其他对象相对于参考对象的位置来确定各种检测对象的绝对坐标。然后可以将新确定的检测对象的绝对位置传输到HD地图服务以进行更新。
图1概念性地示出了根据本公开的实施例的用于基于车辆的HD地图更新的示例性系统和方法。车辆100可以是配备有传感器的车辆,例如下文进一步描述的自主车辆400,传感器包括相机,以及一个或更多个处理器。处理器被编程以执行许多功能,包括构建和维护语义地图,以及自动驾驶功能,例如使用语义地图进行路线和路径规划、控制车辆进行导航以及检测和避开对象。下面进一步描述车辆导航和其他功能中语义地图的构建和使用。
在操作中,车辆100可以捕获对象的图像,并确定它们相对于车辆100的位置。更具体地,当对象150在车辆的前置相机的视野110内时,可以是停车标志的对象130可以由车辆的前置相机捕获。类似地,当另一对象150在车辆100的侧面相机的视野120内时,另一对象150(例如路灯)可以被车辆100的侧面相机捕获。在本公开的一些实施例中,捕获的图像可以是可见光图像,尽管在本公开的替代实施例中,相机可以捕获任何其他光波长的图像。
车辆100可以根据这些捕获的图像以及其他传感器(如果需要的话)确定这些对象130、150的位置和形状。位置信息可以以用于确定一个或更多个捕获的图像中的对象相对于捕获图像的一个或更多个相机的位置的任何合适的方式来确定。这样的位置确定方法包括确定相对于车辆100的距离和方位。距离确定可以通过任何合适的方法来完成,例如通过测距系统,该测距系统根据从那些对象反射的信号的飞行时间确定对象的距离。这样的系统可以采用任何信号,例如LiDAR光束、雷达信号、超声波、无线电信号等。距离确定也可以通过捕获的图像来完成,例如通过单目或立体图像捕获系统,该系统采用对由一个或更多个相机拍摄的图像内的对象进行三角测量。同样,方位确定可以通过任何合适的方法来完成,例如通过单目或立体图像捕获系统,其根据一个或更多个相机的捕获图像内的参考点来确定对象相对方位。
一旦确定了诸如对象130、150的对象的相对位置,车辆100就可以确定它们的绝对位置。特别地,车辆100可维护语义地图,该语义地图在其地图层中的一个或更多个内包括其绝对位置已知的至少一个参考对象的位置。此外,车辆100在捕获每个图像时确定其自身的绝对位置,例如通过车载全球定位系统(GPS)。然后可以根据对象130、150的相对位置、一个或更多个参考对象的绝对位置以及通过例如其GPS确定的车辆100的绝对位置来确定对象130、150的绝对位置。
作为示例,车辆100可以通过GPS确定其位置,并且还可以在其语义地图中存储参考对象的绝对位置,例如它最近经过的停车标志160。然后可以使用捕获停车标志160和路灯150的一个或更多个图像来确定路灯150相对于停车标志160的位置。可以以任何方式确定这些对象150、160之间的这种相对距离,并且包括根据从捕获的图像确定的这些对象和车辆100之间的相对距离以及捕获每个图像时车辆100的GPS确定的位置确定该相对距离。类似地,这些对象150、160之间的相对距离可以从在其视野内包含对象150和160两者的捕获图像(或者其合成图像在其中包含对象150、160两者的多个此类捕获图像)来确定。
一旦确定了对象相对于参考对象160的位置,它们的绝对位置也可以根据参考对象160的绝对位置来确定。以这种方式,任何对象的绝对位置都可以由车辆100确定。特别是、诸如街道边界110(其可以是任何边界,诸如人行道边界、人行道、车道标记等)、人行横道标记140或其他道路标记之类的对象,或可由相机或任何其他传感器检测到的任何其他对象,它们的形状和位置可以由本公开的实施例确定。
车辆100可以维护本地存储的语义地图,例如路边地图,用于例如导航。检测到的对象、它们的位置、形状和分类可以存储在该路边地图的适当层中。此外,在不同时间,存储或放置在路边地图中的对象可以被传输到其他地图服务以更新它们的HD地图。以这种方式,车辆100可以用任何检测到的对象的准确绝对位置信息来更新本地存储或以其他方式存储的任何HD地图。车辆100语义地图可以通过与HD地图服务同步来维护,即定期或在其他时间下载HD地图特征并将它们放置在它们的路边地图中。例如,车辆100可以下载位于其GPS位置的指定距离内的特征。特征的检索可以在任何时间发生,例如以预定间隔、在车辆启动时、一旦车辆已经行驶了预定距离等。
根据本公开的一些实施例,现在注意力转向语义地图和可以使用这种地图的示例性自主车辆(AV)。HD语义地图及其厘米级精度对于AV生成环境的实时知识和机器学习驱动的决策能力非常有用。在剖析其功能时,语义地图通常包括三个主要层:几何层、车道几何层和语义特征和地图先验层。
几何层或基础层可以被描述为更复杂的导航系统。这一层可能包括路段、交叉口和互连。车道几何层可能包含有关存在多少车道、道路行驶方向以及道路如何相互连接的数据。几何层通常也是AV或任何具有地图功能的车辆在语义地图上定位自身的地方。
车道几何层或中间层通常需要高精度。车道几何层可以存储有助于定义车辆路径的特征,达到厘米级准确度。该中间层包含诸如单个车道标记、街道级别规则(例如让路、慢速或警告)和相邻汽车的接近度等特征。尽管几何层处理如何从A点到达B点,车道几何层处理详细的路径规划,以便安全到达目的地。
语义特征和地图先验层或最上层可以分成两部分。该层的语义特征部分可能包含与环境中的静态或基本静态对象相对应的特征,包括交通信号灯、人行横道和道路标志,这些特征与车道几何和几何层提供的信息一起,为AV提供更多上下文了解其环境,以便做出准确的导航决策。该层的地图先验部分可以解决人们预期某个观察到的行为的相关概率的域。例如,这可能包括儿童在上午7点至上午8点和下午3点至下午4:30在邻近中学附近穿过特定街道的可能性。地图先验可以编码到地图的软件中。在一些实施例中,地图先验可以代表AV有效解释人类导航行为所必需的更细微的决策能力。
举例说明深度学习策略的卷积神经网络(CNN)通常与语义地图绘制一起使用。在一些实施例中,AV上的相机可以在AV运行时实时产生RGB图像。CNN通过应用较小的矩阵或内核来解析RGB图像的像素矩阵,以生成卷积矩阵。内核的连续层可以提取CNN或其他神经网络的连续部分使用的图像特征,以对图像中的对象进行分类或识别。
AV通常采用某些传感器来与语义地图一起使用。这些可能包括GPS传感器、惯性测量单元(IMU)、LiDAR系统、可见光相机等。可以使用这些传感器中的任何一个或更多个来生成AV环境的3-D表示。此外,为了不断更新和改进语义地图,在路上使用多个AV的迭代过程通常是有用的。这样的配置可以采用远程服务器,该远程服务器维护中央HD语义地图并且每个AV通过诸如安全网络的通信介质不断地与该远程服务器通信,以便存储和更新语义地图。可替代地或另外地,每个AV上的本地硬盘驱动器可以存储和维护语义地图。
图2说明了在自主车辆(AV)中用于各种功能(例如导航和路线规划)的HD语义地图的功能。在示例性实施例中,几何层,也称为基础层,可以被描绘为可以在其上构建HD语义地图的其他层的道路、车道和交叉口。在示例性实施例中,基础层可以包括地图的更多基本方面,这可以包含诸如墙壁203和障碍物204之类的特征。在示例性实施例中,车道几何或中间层可以解决车道标记和街道水平规则,其可以包括自行车道206、车道箭头207和车道宽度208。在示例性实施例中,语义特征和地图先验——或最上层——可以包括交通灯200、人行横道201、停车线202和电线杆205以及其他信息,例如AV规划到达目的地的最佳路径时使用的风险或障碍的概率(例如,行人过马路的当地可能性)。例如,如果这个交叉点靠近学校或狗公园,最上层,特别是地图先验,可以在绘制路径时考虑特定于这些位置的概率。
图3是根据本公开的实施例的与自主车辆一起使用的示例语义地图绘制系统的框图。在示例性实施例中,相机300和LiDAR 307(如果采用)分别创建RGB图像301和点云306。在一些实施例中,RGB图像可以是具有相应权重或位的像素矩阵,其确定它们显示的颜色的数量,点云是空间中由例如从对象反射的LiDAR的激光产生的数据点集合。神经网络,例如卷积神经网络(CNN),可用于提取RGB图像的特征,如上所述,生成包含逐像素标签的语义分割302。在一些实施例中,然后可以通过CNN或其他神经网络识别特征,以执行语义地图绘制305,其中所识别对象的位置和确定的形状(通过例如点云306或RGB图像301)被放置在适当的语义地图层。这可以产生2.5D语义网格地图304,或更新的本地或路边HD地图,神经网络和其他过程可以使用这些地图来规划车辆路径303。
语义地图绘制305可用于如上所述更新本地存储的AV的路边地图,和/或可被传输用于更新远程存储的HD地图。在后一个示例中,多个AV可以传输它们的语义地图绘制305以更新远程存储的HD地图。以这种方式,中央HD地图可以由在行驶时检测和确定各种道路特征的多个AV实时维护和更新。
图4A是根据本公开的一些实施例的示例自主车辆400的图示。自主车辆400(在本文中也称为“车辆400”)可包括但不限于乘用车,例如汽车、卡车、公共汽车、急救车、穿梭车、电动或机动自行车、摩托车、消防车、警车、救护车、船、工程车辆、水下航行器、无人机、机器人(例如工厂机器人或个人助理机器人)、机器人平台和/或其他类型的车辆(例如,无人驾驶和/或容纳一个或更多个乘客)。自主车辆通常按照美国运输部的一个部门——国家公路交通安全管理局(NHTSA)以及汽车工程师协会(SAE)“Taxonomy and Definitions forTerms Related to Driving Automation Systems for On-Road Motor Vehicles”(2018年6月15日发布的标准No.J3016-201806,2016年9月30日发布的标准No.J3016-201609,以及该标准的先前和未来的版本)定义的自动化级别进行描述。车辆400可能够实现符合自主驾驶级别的3级-5级中的一个或更多个的功能。例如,取决于实施例,车辆400可能够实现条件自动化(3级)、高自动化(4级)和/或全自动化(5级)。
车辆400可以包括诸如底盘、车身、车轮(例如2个、4个、6个、8个、18个等)、轮胎、车轴之类的组件以及车辆的其他组件。车辆400可以包括推进系统450,例如内燃机、混合动力发电厂、全电动发动机和/或另一种推进系统类型。推进系统450可以连接到可以包括变速器的车辆400的传动系以便实现车辆400的推进。可以响应于接收到来自油门/加速器452的信号而控制推进系统450。
可以包括方向盘的转向(steering)系统454可以用来在推进系统450操作时(例如在车辆运动时)使车辆400转向(例如沿着希望的路径或路线)。转向系统454可以接收来自转向执行器456的信号。对于全自动(5级)功能而言,方向盘可以是可选的。
制动传感器系统446可以用来响应于接收到来自制动执行器448和/或制动传感器的信号而操作车辆制动器。
可以包括一个或更多个CPU,一个或更多个片上系统(SoC)404(图4C)和/或一个或更多个GPU的一个或更多个控制器436可以向车辆400的一个或更多个组件和/或系统提供(例如表示命令的)信号。例如,一个或更多个控制器可以发送经由一个或更多个制动执行器448操作车辆制动器、经由一个或更多个转向执行器456操作转向系统454、和/或经由一个或更多个油门/加速器452操作推进系统450的信号。一个或更多个控制器436可以包括一个或更多个板载(例如集成)计算设备(例如超级计算机),所述计算设备处理传感器信号并且输出操作命令(例如表示命令的信号),以实现自主驾驶和/或辅助人类驾驶员驾驶车辆400。一个或更多个控制器436可以包括用于自主驾驶功能的第一控制器436、用于功能性安全功能的第二控制器436、用于人工智能功能(例如计算机视觉)的第三控制器436、用于信息娱乐功能的第四控制器436、用于紧急情况下的冗余的第五控制器436和/或其他控制器。在一些示例中,单个控制器436可以处理上述功能中的两个或更多,两个或更多控制器436可以处理单个功能,和/或其任意组合。
一个或更多个控制器436可以响应于接收自一个或更多个传感器的传感器数据(例如传感器输入),提供用于控制车辆400的一个或更多个组件和/或系统的信号。传感器数据可以接收自例如且不限于全球导航卫星系统传感器458(例如全球定位系统传感器)、RADAR传感器460、超声传感器462、LIDAR传感器464、惯性测量单元(IMU)传感器466(例如加速度计、陀螺仪、磁罗盘、磁力计等)、麦克风496、立体相机468、广角相机470(例如鱼眼相机)、红外相机472、环绕相机474(例如360度相机)、远程和/或中程相机498、速度传感器444(例如用于测量车辆400的速率)、振动传感器442、转向传感器440、制动传感器(例如作为制动传感器系统446的部分)和/或其他传感器类型。
控制器436中的一个或更多个可以接收来自车辆400的仪表组432的输入(例如由输入数据表示),并且经由人机接口(HMI)显示器434、听觉信号器、扬声器和/或经由车辆400的其他组件提供输出(例如输出数据、显示数据等表示的)。这些输出可以包括诸如车辆速度、速率、时间、地图数据(例如图4C的HD地图422)、位置数据(例如,车辆400例如在地图上的位置)、方向、其他车辆的位置(例如占用网格)之类的信息,如控制器436所感知的关于对象和对象状态的信息等等。例如,HMI显示器434可以显示关于一个或更多个对象(例如街道指示牌、警示牌、交通灯变化等)的存在性的信息和/或关于车辆已经做出、正在做出或者将会做出的驾驶机动的信息(例如现在变道、两英里后离开34B,等等)。
车辆400进一步包括网络接口424,其可以使用一个或更多个无线天线426和/或调制解调器通过一个或更多个网络通信。例如,网络接口424可能够通过LTE、WCDMA、UMTS、GSM、CDMA2000等通信。一个或更多个无线天线426也可以使用诸如蓝牙、蓝牙LE、Z波、ZigBee等等之类的一个或更多个局域网和/或诸如LoRaWAN、SigFox等等之类的一个或更多个低功率广域网(LPWAN)实现环境中的对象(例如车辆、移动设备等等)之间的通信。
图4B为根据本公开一些实施例的用于图4A的示例自主车辆400的相机位置和视场的示例。相机和各自的视场是一个示例实施例,并不意图是限制性的。例如,可以包括附加的和/或可替换的相机,和/或这些相机可以位于车辆400上的不同位置。
用于相机的相机类型可以包括但不限于可以适于与车辆400的组件和/或系统一起使用的数字相机。所述相机可以在汽车安全完整性级别(ASIL)B下和/或在另一个ASIL下操作。相机类型可以具有任何图像捕获率,例如60帧每秒(fps)、120fps、240fps等等,这取决于实施例。相机可能够使用滚动快门、全局快门、另一种类型的快门或者其组合。在一些示例中,滤色器阵列可以包括红白白白(RCCC)滤色器阵列、红白白蓝(RCCB)滤色器阵列、红蓝绿白(RBGC)滤色器阵列、Foveon X3滤色器阵列、拜耳传感器(RGGB)滤色器阵列、单色传感器滤色器阵列和/或另一种类型的滤色器阵列。在一些实施例中,诸如具有RCCC、RCCB和/或RBGC滤色器阵列的相机之类的清晰像素相机可以用在提高光敏感度的努力中。
在一些示例中,所述相机中的一个或更多个可以用来执行高级驾驶员辅助系统(ADAS)功能(例如作为冗余或故障安全设计的部分)。例如,可以安装多功能单目相机以提供包括车道偏离警告、交通指示牌辅助和智能前照灯控制在内的功能。所述相机中的一个或更多个(例如全部相机)可以同时记录和提供图像数据(例如视频)。
所述相机中的一个或更多个可以安装在诸如定制设计的(3-D打印的)组件之类的安装组件中,以便切断可能干扰相机的图像数据捕获能力的杂散光和来自汽车内的反射(例如挡风玻璃镜中反射的来自仪表板的反射)。关于翼镜安装组件,翼镜组件可以是定制3-D打印的,使得相机安装板匹配翼镜的形状。在一些示例中,一个或更多个相机可以集成到翼镜中。对于侧视相机而言,一个或更多个相机也可以集成到驾驶室每个拐角的四根柱子内。
具有包括车辆400前面的环境部分的视场的相机(例如前置相机)可以用于环视,以帮助识别前向路径和障碍,以及在一个或更多个控制器436和/或控制SoC的帮助下辅助提供对于生成占用网格和/或确定优选车辆路径至关重要的信息。前置相机可以用来执行许多与LIDAR相同的ADAS功能,包括紧急制动、行人检测和碰撞避免。前置相机也可以用于ADAS功能和系统,包括车道偏离警告(“LDW”)、自主巡航控制(“ACC”),和/或诸如交通指示牌识别之类的其他功能。
各种各样的相机可以用于前置配置中,包括例如包括CMOS(互补金属氧化物半导体)彩色成像仪在内的单目相机平台。另一个示例可以是广角相机470,其可以用来感知从周边进入视野的对象(例如行人、十字路口交通或者自行车)。尽管图4B中图示出仅仅一个广角相机,但是在车辆400上可以存在任意数量的广角相机470。此外,远程相机498(例如长视立体相机对)可以用于基于深度的对象检测,尤其是用于尚未针对其训练神经网络的对象。远程相机498也可以用于对象检测和分类以及基本的对象跟踪。
一个或更多个立体相机468也可以包括在前置配置中。立体相机468可以包括集成控制单元,该单元包括可扩展处理单元,其可以提供在单个芯片上具有集成的CAN或以太网接口的多核微处理器和可编程逻辑(,例如,FPGA)。这样的单元可以用来生成车辆环境的3-D地图,包括针对图像中的所有点的距离估计。可替代的立体相机468可以包括紧凑型立体视觉传感器,其可以包括两个相机镜头(左右各一个)以及可以测量从车辆到目标对象的距离并且使用生成的信息(例如元数据)激活自主紧急制动和车道偏离警告功能的图像处理芯片。除了本文所描述的那些之外或者可替代地,可以使用其他类型的立体相机468。
具有包括车辆400的侧面的环境部分的视场的相机(例如侧视相机)可以用于环视,提供用来创建和更新占用网格以及生成侧撞击碰撞警告的信息。例如,环绕相机474(例如如图4B中所示的四个环绕相机474)可以置于车辆400周围。环绕相机474可以包括广角相机470、鱼眼相机、360度相机和/或类似物。例如,四个鱼眼相机可以置于车辆的前面、后面和侧面。在一种可替代的布置中,车辆可以使用三个环绕相机474(例如左边、右边和后面),并且可以利用一个或更多个其他相机(例如前向相机)作为第四环视相机。
具有包括车辆400的后面的环境部分的视场的相机(例如后视相机)可以用于辅助停车、环视、后面碰撞警告以及创建和更新占用网格。可以使用各种各样的相机,包括但不限于也适合作为如本文所描述的前置相机(例如远程和/或中程相机498、立体相机468、红外相机472等等)的相机。
具有包括车辆400的内部或舱室的部分的视野的相机可用于监控舱室中的驾驶员、乘客或对象的一个或更多个状态。可以使用任何类型的相机,包括但不限于一个或更多个舱室相机441,其可以是本文所述的任何类型的相机,并且可以放置在车辆400上或内的任何位置,以提供舱室或其内部的视图。例如,一个或更多个舱室相机441可以放置在车辆400仪表板、后视镜、侧视镜、座椅或车门的某些部分之内或之上,并且被定向为获捉任何驾驶员、乘客或任何其他对象或车辆400的一部分的图像。
图4C为根据本公开一些实施例的用于图4A的示例自主车辆400的示例系统架构的框图。应当理解,这种布置和本文描述的其他布置仅仅作为示例而被阐述。除了所示的那些之外或者代替它们的是,可以使用其他的布置和元素(例如机器、接口、功能、顺序、功能分组等等),并且一些元素可以完全省略。进一步,许多本文描述的元素是功能实体,其可以实现为分立的或分布式组件或者结合其他组件实现,以及以任何适当的组合和位置实现。本文描述为由实体执行的各个功能可以通过硬件、固件和/或软件实现。例如,各个功能可以通过处理器执行存储在存储器中的指令而实现。
图4C中车辆400的组件、特征和系统中的每一个被图示为经由总线402连接。总线402可以包括控制器区域网络(CAN)数据接口(可替代地,本文称为“CAN总线”)。CAN可以是车辆400内部的网络,用来辅助控制车辆400的各种特征和功能,例如制动器、加速、制动、转向、挡风玻璃雨刷等等的驱动。CAN总线可以被配置为具有数十或者甚至数百个节点,每个节点具有其自己的唯一标识符(例如CAN ID)。可以读取CAN总线以找到方向盘角度、地速、每分钟发动机转速(RPM)、按钮位置和/或其他车辆状态指示符。CAN总线可以是ASIL B兼容的。
尽管这里将总线402描述为CAN总线,但是这并不意图是限制性的。例如,除了CAN总线之外或者可替代地,可以使用FlexRay和/或以太网。此外,尽管用单条线来表示总线402,但是这并不意图是限制性的。例如,可以存在任意数量的总线402,其可以包括一条或更多条CAN总线、一条或更多条FlexRay总线、一条或更多条以太网总线和/或一条或更多条使用不同协议的其他类型的总线。在一些示例中,两条或更多总线402可以用来执行不同的功能,和/或可以用于冗余。例如,第一总线402可以用于碰撞避免功能,并且第二总线402可以用于驱动控制。在任何示例中,每条总线402可以与车辆400的任何组件通信,并且两条或更多总线402可以与相同的组件通信。在一些示例中,车辆内的每个SoC 404、每个控制器436和/或每个计算机可以有权访问相同的输入数据(例如来自车辆400的传感器的输入),并且可以连接到诸如CAN总线之类的公共总线。
车辆400可以包括一个或更多个控制器436,例如本文关于图4A所描述的那些控制器。控制器436可以用于各种各样的功能。控制器436可以耦合到车辆400的任何其他不同的组件和系统,并且可以用于车辆400的控制、车辆400的人工智能、用于车辆400的信息娱乐和/或类似物。
车辆400可以包括一个或更多个片上系统(SoC)404。SoC 404可以包括CPU 406、GPU 408、处理器410、高速缓存412、加速器414、数据存储415和/或未图示出的其他组件和特征。在各种各样的平台和系统中,SoC 404可以用来控制车辆400。例如,一个或更多个SoC404可以在系统(例如车辆400的系统)中与HD地图422结合,所述HD地图可以经由网络接口424从一个或更多个服务器(例如图4D的一个或更多个服务器478)获得地图刷新和/或更新。
CPU 406可以包括CPU集群或者CPU复合体(可替代地,本文称为“CCPLEX”)。CPU406可以包括多个核和/或L2高速缓存。例如,在一些实施例中,CPU 406在一致性多处理器配置中可以包括八个核。在一些实施例中,CPU 406可以包括四个双核集群,其中每个集群具有专用的L2高速缓存(例如2MB L2高速缓存)。CPU 406(例如CCPLEX)可以被配置为支持同时集群操作,使得CPU 406的集群的任意组合能够在任何给定时间是活动的。
CPU 406可以实现包括以下特征中的一个或更多个的功率管理能力:各硬件块在空闲时可以自动进行时钟门控以节省动态功率;由于WFI/WFE指令的执行,每个核时钟可以在该核不主动地执行指令时进行门控;每个核可以独立地进行功率门控;当所有核都进行时钟门控或者功率门控时,可以独立地对每个核集群进行时钟门控;以及/或当所有核都进行功率门控时,可以独立地对每个核集群进行功率门控。CPU 406可以进一步实现用于管理功率状态的增强算法,其中指定允许的功率状态和期望的唤醒时间,并且硬件/微代码为所述核、集群和CCPLEX确定要进入的最佳的功率状态。处理核可以在软件中支持简化的功率状态进入序列,该工作被卸载到微代码。
GPU 408可以包括集成的GPU(可替代地,本文称为“iGPU”)。GPU 408可以是可编程的,并且对于并行工作负载而言是高效的。在一些示例中,GPU 408可以使用增强张量指令集。GPU 408可以包括一个或更多个流式微处理器,其中每个流式微处理器可以包括L1高速缓存(例如具有至少96KB存储能力的L1高速缓存),并且这些流式微处理器中的两个或更多可以共享L2高速缓存(例如具有512KB存储能力的L2高速缓存)。在一些实施例中,GPU 408可以包括至少八个流式微处理器。GPU 408可以使用基于计算机的应用编程接口(API)。此外,GPU 408可以使用一个或更多个并行计算平台和/或编程模型(例如NVIDIA的CUDA)。
在汽车和嵌入式使用的情况下,可以对GPU 408进行功率优化以实现最佳性能。例如,可以在鳍式场效应晶体管(FinFET)上制造GPU 408。然而,这并不意图是限制性的,并且GPU 408可以使用其他半导体制造工艺来制造。每个流式微处理器可以合并划分成多个块的若干混合精度处理核。例如且非限制性地,可以将64个PF32核和32个PF64核划分成四个处理块。在这样的示例中,每个处理块可以分配16个FP32核、8个FP64核、16个INT32核、用于深层学习矩阵算术的两个混合精度NVIDIA张量核、L0指令高速缓存、线程束(warp)调度器、分派单元和/或64KB寄存器文件。此外,流式微处理器可以包括独立的并行整数和浮点数据路径,以利用计算和寻址计算的混合提供工作负载的高效执行。流式微处理器可以包括独立线程调度能力,以允许实现并行线程之间的更细粒度的同步和协作。流式微处理器可以包括组合的L1数据高速缓存和共享存储器单元,以便在简化编程的同时提高性能。
GPU 408可以包括在一些示例中提供大约900GB/s的峰值存储器带宽的高带宽存储器(HBM)和/或16GB HBM2存储器子系统。在一些示例中,除了HBM存储器之外或者可替代地,可以使用同步图形随机存取存储器(SGRAM),例如第五代图形双倍数据速率同步随机存取存储器(GDDR5)。
GPU 408可以包括统一存储器技术,其包括访问计数器以允许存储器页面更精确地迁移到最频繁地访问它们的处理器,从而提高处理器之间共享的存储器范围的效率。在一些示例中,地址转换服务(ATS)支持可以用来允许GPU 408直接访问CPU 406页表。在这样的示例中,当GPU 408存储器管理单元(MMU)经历遗漏时,可以将地址转换请求传输至CPU406。作为响应,CPU 406可以在其页表中寻找用于地址的虚拟-物理映射,并且将转换传输回GPU 408。这样,统一存储器技术可以允许单个统一虚拟地址空间用于CPU 406和GPU 408二者的存储器,从而简化了GPU 408编程和将应用程序移植(port)到GPU 408。
此外,GPU 408可以包括访问计数器,其可以跟踪GPU 408访问其他处理器的存储器的频率。访问计数器可以帮助确保存储器页面移至最频繁地访问这些页面的处理器的物理存储器。
SoC 404可以包括任意数量的高速缓存412,包括本文描述的那些高速缓存。例如,高速缓存412可以包括CPU 406和GPU 408二者可用的L3高速缓存(例如,其连接到CPU 406和GPU 408二者)。高速缓存412可以包括回写高速缓存,其可以例如通过使用高速缓存一致性协议(例如MEI、MESI、MSI等)跟踪行的状态。取决于实施例,L3高速缓存可以包括4MB或者更多,但是也可以使用更小的高速缓存大小。
SoC 404可以包括算术逻辑单元(ALU),其可以用于执行关于车辆400的各种任务或操作中的任一个的处理——例如处理DNN。此外,SoC 404可以包括浮点单元(FPU)——或其他数学协处理器或数字协处理器类型——用于在系统内执行数学运算。例如,SoC 104可以包括集成为CPU 406和/或GPU 408内的执行单元的一个或更多个FPU。
SoC 404可以包括一个或更多个加速器414(例如硬件加速器、软件加速器或者其组合)。例如,SoC 404可以包括硬件加速集群,其可以包括优化的硬件加速器和/或大型片上存储器。该大型片上存储器(例如4MB SRAM)可以使得硬件加速集群能够加速神经网络和其他计算。硬件加速集群可以用来补充GPU 408,并且卸载GPU 408的一些任务(例如释放GPU 408的更多周期以用于执行其他任务)。作为一个示例,加速器414可以用于足够稳定以易于控制加速的有针对性的工作负载(例如感知、卷积神经网络(CNN)等等)。当在本文中使用时,术语“CNN”可以包括所有类型的CNN,包括基于区域的或者区域卷积神经网络(RCNN)和快速RCNN(例如用于对象检测)。
加速器414(例如硬件加速集群)可以包括深度学习加速器(DLA)。DLA可以包括可以被配置成为深度学习应用和推理提供额外的每秒10万亿次操作的一个或更多个张量处理单元(TPU)。TPU可以是被配置为执行图像处理功能(例如用于CNN、RCNN等)且针对执行图像处理功能而优化的加速器。DLA可以进一步针对特定的一组神经网络类型和浮点运算以及推理进行优化。DLA的设计可以比通用GPU提供每毫米更高的性能,并且远远超过CPU的性能。TPU可以执行若干功能,包括单实例卷积函数,支持例如用于特征和权重二者的INT8、INT16和FP16数据类型,以及后处理器功能。
DLA可以在处理的或者未处理的数据上针对各种各样的功能中的任何功能快速且高效地执行神经网络,尤其是CNN,例如且不限于:用于使用来自相机传感器的数据进行对象识别和检测的CNN;用于使用来自相机传感器的数据进行距离估计的CNN;用于使用来自麦克风的数据进行应急车辆检测和识别与检测的CNN;用于使用来自相机传感器的数据进行面部识别和车主识别的CNN;以及/或用于安全和/或安全相关事件的CNN。
DLA可以执行GPU 408的任何功能,并且通过使用推理加速器,例如,设计者可以使DLA或GPU 408针对任何功能。例如,设计者可以将CNN的处理和浮点运算聚焦在DLA上,并且将其他功能留给GPU 408和/或其他加速器414。
加速器414(例如硬件加速集群)可以包括可编程视觉加速器(PVA),其在本文中可以可替代地称为计算机视觉加速器。PVA可以被设计和配置为加速用于高级驾驶员辅助系统(ADAS)、自主驾驶和/或增强现实(AR)和/或虚拟现实(VR)应用的计算机视觉算法。PVA可以提供性能与灵活性之间的平衡。例如,每个PVA可以包括例如且不限于任意数量的精简指令集计算机(RISC)核、直接存储器访问(DMA)和/或任意数量的向量处理器。
RISC核可以与图像传感器(例如本文描述的任何相机的图像传感器)、图像信号处理器和/或类似物交互。这些RISC核中的每一个可以包括任意数量的存储器。取决于实施例,RISC核可以使用若干协议中的任何协议。在一些示例中,RISC核可以执行实时操作系统(RTOS)。RISC核可以使用一个或更多个集成电路设备、专用集成电路(ASIC)和/或存储设备实现。例如,RISC核可以包括指令高速缓存和/或紧密耦合的RAM。
DMA可以使得PVA的组件能够独立于CPU 406访问系统存储器。DMA可以支持用来向PVA提供优化的任意数量的特征,包括但不限于支持多维寻址和/或循环寻址。在一些示例中,DMA可以支持高达六个或更多维度的寻址,其可以包括块宽度、块高度、块深度、水平块步进、竖直块步进和/或深度步进。
向量处理器可以是可编程处理器,其可以被设计为高效且灵活地执行用于计算机视觉算法的编程并且提供信号处理能力。在一些示例中,PVA可以包括PVA核和两个向量处理子系统分区。PVA核可以包括处理器子系统、一个或更多个DMA引擎(例如两个DMA引擎)和/或其他外围设备。向量处理子系统可以作为PVA的主处理引擎而操作,并且可以包括向量处理单元(VPU)、指令高速缓存和/或向量存储器(例如VMEM)。VPU核可以包括数字信号处理器,诸如例如单指令多数据(SIMD)、超长指令字(VLIW)数字信号处理器。SIMD和VLIW的组合可以增强吞吐量和速率。
向量处理器中的每一个可以包括指令高速缓存并且可以耦合到专用存储器。结果,在一些示例中,向量处理器中的每一个可以被配置为独立于其他向量处理器执行。在其他示例中,包括在特定PVA中的向量处理器可以被配置为采用数据并行化。例如,在一些实施例中,包括在单个PVA中的多个向量处理器可以执行相同的计算机视觉算法,但是在图像的不同区域上执行。在其他示例中,包括在特定PVA中的向量处理器可以在相同的图像上同时执行不同的计算机视觉算法,或者甚至在序列图像或者图像的部分上执行不同的算法。除其他的以外,任意数量的PVA可以包括在硬件加速集群中,并且任意数量的向量处理器可以包括在这些PVA中的每一个中。此外,PVA可以包括附加的纠错码(ECC)存储器,以增强总体系统安全性。
加速器414(例如硬件加速集群)可以包括片上计算机视觉网络和SRAM,以提供用于加速器414的高带宽、低延迟SRAM。在一些示例中,片上存储器可以包括由例如且不限于八个现场可配置的存储器块组成的至少4MB SRAM,其可以由PVA和DLA二者访问。每对存储器块可以包括高级外围总线(APB)接口、配置电路系统、控制器和复用器。可以使用任何类型的存储器。PVA和DLA可以经由向PVA和DLA提供高速存储器访问的主干(backbone)访问存储器。主干可以包括(例如使用APB)将PVA和DLA互连到存储器的片上计算机视觉网络。
片上计算机视觉网络可以包括在传输任何控制信号/地址/数据之前确定PVA和DLA二者都提供就绪且有效的信号的接口。这样的接口可以提供用于传输控制信号/地址/数据的单独相位和单独信道,以及用于连续数据传输的突发式通信。这种类型的接口可以符合ISO 26262或者IEC 61508标准,但是也可以使用其他标准和协议。
在一些示例中,SoC 404可以包括例如在2018年8月10日提交的美国专利申请No.16/101,232中描述的实时光线追踪硬件加速器。该实时光线追踪硬件加速器可以用来快速且高效地确定(例如世界模型内的)对象的位置和范围,以便生成实时可视化仿真,以用于RADAR信号解释、用于声音传播合成和/或分析、用于SONAR系统仿真、用于一般波传播仿真、用于为了定位和/或其他功能的目的与LIDAR数据相比较和/或用于其他用途。在一些实施例中,一个或更多个树遍历单元(TTU)可用于执行一个或更多个光线追踪相关操作。
加速器414(例如硬件加速器集群)具有广泛的自主驾驶用途。PVA可以是可编程视觉加速器,其可以用于ADAS和自主车辆中的关键处理阶段。PVA的能力是需要可预测处理、低功率和低延迟的算法域的良好匹配。换言之,PVA在半密集或者密集规则计算上,甚至在需要具有低延迟和低功率的可预测运行时间的小数据集上都表现良好。因此,在用于自主车辆的平台的背景下,PVA被设计为运行经典计算机视觉算法,因为它们在对象检测和整数数学运算方面很有效。
例如,根据该技术的一个实施例,PVA用来执行计算机立体视觉。在一些示例中,可以使用基于半全局匹配的算法,但是这并不意图是限制性的。许多用于3-5级自主驾驶的应用都需要即时运动估计/立体匹配(例如来自运动的结构、行人识别、车道检测等等)。PVA可以在来自两个单目相机的输入上执行计算机立体视觉功能。
在一些示例中,PVA可以用来执行密集的光流。例如,PVA可用于处理原始RADAR数据(例如,使用4D快速傅立叶变换)以在发射下一个RADAR脉冲之前提供处理后的RADAR信号。在其他示例中,PVA用于飞行时间深度处理,其例如通过处理原始飞行时间数据以提供经处理的飞行时间数据。
DLA可以用来运行任何类型的网络以增强控制和驾驶安全性,包括例如输出用于每个对象检测的置信度度量的神经网络。这样的置信度值可以解释为概率,或者解释为提供每个检测与其他检测相比的相对“权重”。该置信度值使得系统能够做出关于哪些检测应当被认为是真阳性检测而不是假阳性检测的进一步决策。例如,系统可以为置信度设置阈值,并且仅仅将超过阈值的检测看作真阳性检测。在自动紧急制动(AEB)系统中,假阳性检测会使得车辆自动地执行紧急制动,这显然是不希望的。因此,只有最确信的检测才应当被认为是AEB的触发因素。DLA可以运行用于回归置信度值的神经网络。该神经网络可以将至少一些参数子集作为其输入,例如边界框维度,(例如从另一个子系统)获得的地平面估计,与车辆400取向、距离相关的惯性测量单元(IMU)传感器466输出,从神经网络和/或其他传感器(例如LIDAR传感器464或RADAR传感器460)获得的对象的3D位置估计等。
SoC 404可以包括一个或更多个数据存储416(例如存储器)。数据存储416可以是SoC 404的片上存储器,其可以存储要在GPU和/或DLA上执行的神经网络。在一些示例中,为了冗余和安全,数据存储416可以容量足够大以存储神经网络的多个实例。数据存储412可以包括L2或L3高速缓存412。对数据存储416的引用可以包括对与如本文所描述的PVA、DLA和/或其他加速器414关联的存储器的引用。
SoC 404可以包括一个或更多个处理器410(例如嵌入式处理器)。处理器410可以包括启动和功率管理处理器,其可以是用于处理启动功率和管理功能以及有关安全实施的专用处理器和子系统。启动和功率管理处理器可以是SoC 404启动序列的一部分,并且可以提供运行时间功率管理服务。启动功率和管理处理器可以提供时钟和电压编程、辅助系统低功率状态转换、SoC 404热和温度传感器管理和/或SoC 404功率状态管理。每个温度传感器可以实现为环形振荡器,其输出频率与温度成比例,并且SoC 404可以使用环形振荡器检测CPU 406、GPU 408和/或加速器414的温度。如果确定温度超过阈值,那么启动和功率管理处理器可以进入温度故障例程并且将SoC 404置于较低功率状态和/或将车辆400置于司机安全停车模式(例如使车辆400安全停车)。
处理器410可以进一步包括可以用作音频处理引擎的一组嵌入式处理器。音频处理引擎可以是一种音频子系统,其允许实现对于通过多个接口的多声道音频的完全硬件支持以及一系列广泛而灵活的音频I/O接口。在一些示例中,音频处理引擎是具有带有专用RAM的数字信号处理器的专用处理器核。
处理器410可以进一步包括始终在处理器上的引擎,其可以提供必要的硬件特征以支持低功率传感器管理和唤醒用例。该始终在处理器上的引擎可以包括处理器核、紧密耦合的RAM、支持外围设备(例如定时器和中断控制器)、各种I/O控制器外围设备和路由逻辑。
处理器410可以进一步包括安全集群引擎,其包括处理汽车应用的安全管理的专用处理器子系统。安全集群引擎可以包括两个或更多处理器核、紧密耦合的RAM、支持外围设备(例如定时器、中断控制器等等)和/或路由逻辑。在安全模式下,所述两个或更多核可以操作于锁步模式下,并且用作具有检测它们的操作之间的任何差异的比较逻辑的单核。
处理器410可以进一步包括实时相机引擎,其可以包括用于处理实时相机管理的专用处理器子系统。
处理器410可以进一步包括高动态范围信号处理器,其可以包括图像信号处理器,该图像信号处理器是一种硬件引擎,该硬件引擎是相机处理管线的部分。
处理器410可以包括可以是(例如微处理器上实现的)处理块的视频图像复合器,其实现视频回放应用程序生成用于播放器窗口的最终图像所需的视频后处理功能。视频图像复合器可以对广角相机470、环绕相机474和/或对驾驶室内监控相机传感器执行镜头畸变校正。驾驶室内监控相机传感器优选地由运行在高级SoC的另一个实例上的神经网络监控,被配置为识别驾驶室内事件并且相对应地做出响应。驾驶室内系统可以执行唇读,以激活移动电话服务并拨打电话、口述电子邮件、改变车辆目的地、激活或改变车辆的信息娱乐系统和设置或者提供语音激活的网上冲浪。某些功能仅在车辆操作于自主模式下时对于驾驶员可用,并且在其他情况下被禁用。
视频图像复合器可以包括用于空间和时间降噪的增强时间降噪。例如,在视频中出现运动的情况下,降噪适当地对空间信息加权,降低邻近帧提供的信息的权重。在图像或者图像的部分不包括运动的情况下,视频图像复合器执行的时间降噪可以使用来自先前的图像的信息以降低当前图像中的噪声。
视频图像复合器也可以被配置为对输入立体镜头帧执行立体校正。当操作系统桌面正在使用并且GPU 408无需连续地渲染(render)新的表面时,视频图像复合器可以进一步用于用户接口组成。甚至在GPU 408上电并且激活,主动执行3D渲染时,视频图像复合器可以用来减轻GPU 408的负担以提高性能和响应能力。
SoC 404可以进一步包括用于从相机接收视频和输入的移动行业处理器接口(MIPI)相机串行接口、高速接口和/或可以用于相机和有关像素输入功能的视频输入块。SoC 404可以进一步包括可以由软件控制并且可以用于接收未提交到特定角色的I/O信号的输入/输出控制器。
SoC 404可以进一步包括大范围的外围设备接口,以使能与外围设备、音频编解码器、功率管理和/或其他设备通信。SoC 404可以用来处理来自(通过千兆多媒体串行链路和以太网连接的)相机、传感器(例如可以通过以太网连接的LIDAR传感器464、RADAR传感器460等等)的数据,来自总线402的数据(例如车辆400的速率、方向盘位置等等),来自(通过以太网或CAN总线连接的)GNSS传感器458的数据。SoC 404可以进一步包括专用高性能大容量存储控制器,其可以包括它们自己的DMA引擎,并且其可以用来从日常数据管理任务中释放CPU 406。
SoC 404可以是具有灵活架构的端到端平台,该架构跨越自动化3-5级,从而提供利用和高效使用计算机视觉和ADAS技术以实现多样性和冗余、连同深度学习工具一起提供用于灵活可靠驾驶软件堆栈的平台的综合功能安全架构。SoC 404可以比常规的系统更快、更可靠,甚至更加能量高效和空间高效。例如,当与CPU 406、GPU 408和数据存储45结合时,加速器414可以提供用于3-5级自主车辆的快速高效平台。
因此该技术提供了不能通过常规系统实现的能力和功能。例如,计算机视觉算法可以在CPU上执行,这些CPU可以使用诸如C编程语言之类的高级编程语言配置为跨各种各样的视觉数据执行各种各样的处理算法。然而,CPU常常不能满足许多计算机视觉应用的性能要求,诸如与例如执行时间和功耗有关的那些要求。特别地,许多CPU不能实时地执行复杂的对象检测算法,这是车载ADAS应用的要求和实用3-5级自主车辆的要求。
与常规系统形成对比的是,通过提供CPU复合体、GPU复合体和硬件加速集群,本文描述的技术允许同时和/或顺序地执行多个神经网络,并且将结果组合在一起以实现3-5级自主驾驶功能。例如,在DLA或dGPU(例如GPU 420)上执行的CNN可以包括文本和单词识别,允许超级计算机读取和理解交通指示牌,包括尚未针对其特别地训练神经网络的指示牌。DLA可以进一步包括能够识别、解释和提供对指示牌的语义理解,并且将该语义理解传递给运行在CPU复合体上的路径规划模块的神经网络。
作为另一个示例,如3、4或5级驾驶所需的,多个神经网络可以同时运行。例如,由“注意:闪烁的灯指示结冰条件”组成的警告指示牌连同电灯可以由若干神经网络独立地或者共同地进行解释。指示牌本身可以由部署的第一神经网络(例如经过训练的神经网络)识别为交通指示牌,文本“闪烁的灯指示结冰条件”可以由部署的第二神经网络解释,该部署的第二神经网络告知车辆的路径规划软件(优选地在CPU复合体上执行)当检测到闪烁的灯时,存在结冰条件。闪烁的灯可以通过在多个帧上操作部署的第三神经网络而识别,该神经网络告知车辆的路径规划软件闪烁的灯的存在(或不存在)。所有三个神经网络可以例如在DLA内和/或在GPU 408上同时运行。
在一些示例中,用于面部识别和车主识别的CNN可以使用来自相机传感器的数据识别车辆400的授权的驾驶员和/或车主的存在。始终在传感器上的处理引擎可以用来在车主接近驾驶员车门时解锁车辆并且打开灯,并且在安全模式下,在车主离开车辆时禁用车辆。按照这种方式,SoC 404提供了防范盗窃和/或劫车的安全性。
在另一个示例中,用于应急车辆检测和识别的CNN可以使用来自麦克风496的数据来检测并且识别应急车辆警报(siren)。与使用通用分类器检测警报并且手动地提取特征的常规系统形成对比的是,SoC 404使用CNN以对环境和城市声音分类以及对视觉数据分类。在优选的实施例中,运行在DLA上的CNN被训练为识别应急车辆的相对关闭速率(例如通过使用多普勒效应)。CNN也可以被训练为识别如GNSS传感器458所识别的特定于车辆在其中操作的局部区域的应急车辆。因此,例如,当在欧洲操作时,CNN将寻求检测欧洲警报,并且当在美国时,CNN将寻求识别仅仅北美的警报。一旦检测到应急车辆,在超声传感器462的辅助下,控制程序可以用来执行应急车辆安全例程,使车辆放慢速度,开到路边,停下车辆,和/或使车辆空转,直到应急车辆通过。
车辆可以包括可以经由高速互连(例如PCIe)耦合到SoC 404的CPU 418(例如分立的CPU或dCPU)。CPU 418可以包括例如X86处理器。CPU 418可以用来执行各种各样的功能中的任何功能,包括例如仲裁ADAS传感器与SoC 404之间潜在地不一致的结果,和/或监控控制器436和/或信息娱乐SoC 430的状态和健康状况。
车辆400可以包括可以经由高速互连(例如NVIDIA的NVLINK)耦合到SoC 404的GPU420(例如分立的GPU或dGPU)。GPU 420可以例如通过执行冗余的和/或不同的神经网络而提供附加的人工智能功能,并且可以用来基于来自车辆400的传感器的输入(例如传感器数据)来训练和/或更新神经网络。
车辆400可以进一步包括网络接口424,该网络接口可以包括一个或更多个无线天线426(例如用于不同通信协议的一个或更多个无线天线,例如蜂窝天线、蓝牙天线等等)。网络接口424可以用来使能通过因特网与云(例如与服务器478和/或其他网络设备)、与其他车辆和/或与计算设备(例如乘客的客户端设备)的无线连接。为了与其他车辆通信,可以在这两辆车之间建立直接链接,和/或可以建立间接链接(例如跨网络以及通过因特网)。直接链接可以使用车对车通信链路提供。车对车通信链路可以向车辆400提供关于接近车辆400的车辆(例如车辆400前面、侧面和/或后面的车辆)的信息。该功能可以是车辆400的协作自适应巡航控制功能的部分。
网络接口424可以包括提供调制和解调功能并且使得控制器436能够通过无线网络通信的SoC。网络接口424可以包括用于从基带到射频的上转换以及从射频到基带的下转换的射频前端。频率转换可以通过公知的过程执行,和/或可以使用超外差(super-heterodyne)过程执行。在一些示例中,射频前端功能可以由单独的芯片提供。网络接口可以包括用于通过LTE、WCDMA、UMTS、GSM、CDMA2000、蓝牙、蓝牙LE、Wi-Fi、Z波、ZigBee、LoRaWAN和/或其他无线协议通信的无线功能。车辆400可以进一步包括可包括片外(例如SoC 404外)存储装置的数据存储428。数据存储428可以包括一个或更多个存储元件,包括RAM、SRAM、DRAM、VRAM、闪存、硬盘和/或可以存储至少一个比特的数据的其他组件和/或设备。
车辆400可以进一步包括GNSS传感器458(例如GPS和/或辅助GPS传感器),用于辅助映射、感知、占用网格生成和/或路径规划功能。可以使用任意数量的GNSS传感器458,包括例如且不限于使用带有以太网到串行(RS-232)网桥的USB连接器的GPS。
车辆400可以进一步包括RADAR传感器460。RADAR传感器460可以甚至在黑暗和/或恶劣天气条件下也由车辆400用于远程车辆检测。RADAR功能安全级别可以是ASIL B。RADAR传感器460可以使用CAN和/或总线402(例如以传输RADAR传感器460生成的数据)以用于控制以及访问对象跟踪数据,在一些示例中接入以太网以访问原始数据。可以使用各种各样的RADAR传感器类型。例如且非限制性地,RADAR传感器460可以适合前面、后面和侧面RADAR使用。在一些示例中,使用脉冲多普勒RADAR传感器。
RADAR传感器460可以包括不同的配置,例如具有窄视场的远程、具有宽视场的短程、短程侧覆盖等等。在一些示例中,远程RADAR可以用于自适应巡航控制功能。远程RADAR系统可以提供通过两个或更多独立扫描实现的广阔视场(例如250m范围内)。RADAR传感器460可以帮助区分静态对象和运动对象,并且可以由ADAS系统用于紧急制动辅助和前方碰撞警告。远程RADAR传感器可以包括具有多根(例如六根或更多)固定RADAR天线以及高速CAN和FlexRay接口的单站多模RADAR。在具有六根天线的示例中,中央四根天线可以创建聚焦的波束图案,其被设计为在更高速率下以来自邻近车道的最小交通干扰记录车辆400的周围环境。其他两根天线可以扩展视场,使得快速地检测进入或离开车辆400的车道的车辆成为可能。
作为一个示例,中程RADAR系统可以包括高达460m(前面)或80m(后面)的范围以及高达42度(前面)或450度(后面)的视场。短程RADAR系统可以包括但不限于被设计为安装在后保险杠两端的RADAR传感器。当安装在后保险杠两端时,这样的RADAR传感器系统可以创建持续地监控后方和车辆旁边的盲点的两个波束。
短程RADAR系统可以在ADAS系统中用于盲点检测和/或变道辅助。
车辆400可以进一步包括超声传感器462。可以置于车辆400的前面、后面和/或侧面的超声传感器462可以用于停车辅助和/或创建和更新占用网格。可以使用各种各样的超声传感器462,并且不同的超声传感器462可以用于不同的检测范围(例如2.5m、4m)。超声传感器462可以操作于功能安全级别的ASIL B。
车辆400可以包括LIDAR传感器464。LIDAR传感器464可以用于对象和行人检测、紧急制动、碰撞避免和/或其他功能。LIDAR传感器464可以为功能安全级别的ASIL B。在一些示例中,车辆400可以包括可以使用以太网(例如以将数据提供给千兆以太网交换机)的多个LIDAR传感器464(例如两个、四个、六个等等)。
在一些示例中,LIDAR传感器464可能够对360度视场提供对象列表及其距离。商业上可用的LIDAR传感器464可以具有例如近似100m的广告范围,精度为2cm-3cm,支持100Mbps以太网连接。在一些示例中,可以使用一个或更多个非突出的LIDAR传感器464。在这样的示例中,LIDAR传感器464可以实现为可以嵌入到车辆400的前面、后面、侧面和/或拐角的小设备。在这样的示例中,LIDAR传感器464可以甚至对于低反射率对象提供高达120度水平的和35度竖直的视场,具有200m的范围。前面安装的LIDAR传感器464可以被配置用于45度与135度之间的水平视场。
在一些示例中,也可以使用诸如3D闪光LIDAR之类的LIDAR技术。3D闪光LIDAR使用激光的闪光作为发射源,以照亮高达约200m的车辆周围环境。闪光LIDAR单元包括接受器,该接受器将激光脉冲传输时间和反射光记录在每个像素上,其进而与从车辆到对象的范围相对应。闪光LIDAR可以允许利用每个激光闪光生成周围环境的高度精确且无失真的图像。在一些示例中,可以部署四个闪光LIDAR传感器,车辆400的每一侧一个。可用的3D闪光LIDAR系统包括没有风扇以外的运动组件(moving part)的固态3D凝视阵列LIDAR相机(例如非扫描LIDAR设备)。闪光LIDAR设备可以使用每帧5纳秒I类(眼睛安全)激光脉冲,并且可以以3D范围点云和共同寄存的强度数据的形式捕获反射的激光。通过使用闪光LIDAR,并且因为闪光LIDAR是没有运动组件的固态设备,LIDAR传感器464可以不太容易受到运动模糊、振动和/或震动的影响。
该车辆可以进一步包括IMU传感器466。在一些示例中,IMU传感器466可以位于车辆400的后轴的中心。IMU传感器466可以包括例如且不限于加速度计、磁力计、陀螺仪、磁罗盘和/或其他传感器类型。在一些示例中,例如在六轴应用中,IMU传感器466可以包括加速度计和陀螺仪,而在九轴应用中,IMU传感器466可以包括加速度计、陀螺仪和磁力计。
在一些实施例中,IMU传感器466可以实现为微型高性能GPS辅助惯性导航系统(GPS/INS),其结合微机电系统(MEMS)惯性传感器、高灵敏度GPS接收器和高级卡尔曼滤波算法以提供位置、速度和姿态的估计。这样,在一些示例中,IMU传感器466可以使得车辆400能够在无需来自磁传感器的输入的情况下通过直接观察从GPS到IMU传感器466的速度变化并且将其相关来估计方向(heading)。在一些示例中,IMU传感器466和GNSS传感器458可以结合到单个集成单元中。
该车辆可以包括置于车辆400中和/或车辆400周围的麦克风496。除别的以外,麦克风496可以用于应急车辆检测和识别。
该车辆可以进一步包括任意数量的相机类型,包括立体相机468、广角相机470、红外相机472、环绕相机474、远程和/或中程相机498和/或其他相机类型。这些相机可以用来捕获车辆400整个外围周围的图像数据。使用的相机类型取决于实施例和车辆400的要求,并且相机类型的任意组合可以用来提供车辆400周围的必要覆盖。此外,相机的数量可以根据实施例而不同。例如,该车辆可以包括六个相机、七个相机、十个相机、十二个相机和/或另一数量的相机。作为一个示例且非限制性地,这些相机可以支持千兆多媒体串行链路(GMSL)和/或千兆以太网。所述相机中的每一个在本文关于图4A和图4B更详细地进行了描述。
车辆400可以进一步包括振动传感器442。振动传感器442可以测量车辆的诸如车轴之类的组件的振动。例如,振动的变化可以指示道路表面的变化。在另一个示例中,当使用两个或更多振动传感器442时,振动之间的差异可以用来确定道路表面的摩擦或滑移(例如当动力驱动轴与自由旋转轴之间存在振动差异时)。
车辆400可以包括ADAS系统438。在一些示例中,ADAS系统438可以包括SoC。ADAS系统438可以包括自主/自适应/自动巡航控制(ACC)、协作自适应巡航控制(CACC)、前方撞车警告(FCW)、自动紧急制动(AEB)、车道偏离警告(LDW)、车道保持辅助(LKA)、盲点警告(BSW)、后方穿越交通警告(RCTW)、碰撞警告系统(CWS)、车道居中(LC)和/或其他特征和功能。
ACC系统可以使用RADAR传感器460、LIDAR传感器464和/或相机。ACC系统可以包括纵向ACC和/或横向ACC。纵向ACC监控并控制到紧接在车辆400前方的车辆的距离,并且自动地调节车速以维持离前方车辆的安全距离。横向ACC执行距离保持,并且在必要时建议车辆400改变车道。横向ACC与诸如LC和CWS之类的其他ADAS应用程序有关。
CACC使用来自其他车辆的信息,该信息可以经由网络接口424和/或无线天线426经由无线链路或者通过网络连接(例如通过因特网)间接地从其他车辆接收。直接链接可以由车对车(V2V)通信链路提供,而间接链接可以是基础设施到车辆(I2V)的通信链路。通常,V2V通信概念提供关于紧接在前的车辆(例如紧接在车辆400前方且与其处于相同车道的车辆)的信息,而I2V通信概念提供关于前方更远处的交通的信息。CACC系统可以包括I2V和V2V信息源中的任一个或者二者。给定车辆400前方车辆的信息,CACC可以更加可靠,并且它有可能提高交通流的畅通性且降低道路拥堵。
FCW系统被设计为提醒驾驶员注意危险,使得驾驶员可以采取纠正措施。FCW系统使用耦合到专用处理器、DSP、FPGA和/或ASIC的前置相机和/或RADAR传感器460,该专用处理器、DSP、FPGA和/或ASIC电耦合至诸如显示器、扬声器和/或振动组件之类的驾驶员反馈。FCW系统可以提供例如声音、视觉警告、振动和/或快速制动脉冲形式的警告。
AEB系统检测即将发生的与另一车辆或其他对象的前方碰撞,并且可以在驾驶员在指定的时间或距离参数内没有采取纠正措施的情况下自动地应用制动器。AEB系统可以使用耦合到专用处理器、DSP、FPGA和/或ASIC的前置相机和/或RADAR传感器460。当AEB系统检测到危险时,它典型地首先提醒(alert)驾驶员采取纠正措施以避免碰撞,并且如果驾驶员没有采取纠正措施,那么AEB系统可以自动地应用制动器以努力防止或者至少减轻预测的碰撞的影响。AEB系统可以包括诸如动态制动支持和/或碰撞迫近制动之类的技术。
LDW系统提供了诸如方向盘或座位振动之类的视觉、听觉和/或触觉警告,以在车辆400穿过车道标记时提醒驾驶员。当驾驶员指示有意偏离车道时,通过激活转弯信号,不激活LDW系统。LDW系统可以使用耦合到专用处理器、DSP、FPGA和/或ASIC的前侧朝向相机,该专用处理器、DSP、FPGA和/或ASIC电耦合至诸如显示器、扬声器和/或振动组件之类的驾驶员反馈。
LKA系统是LDW系统的变型。如果车辆400开始离开车道,那么LKA系统提供纠正车辆400的转向输入或制动。
BSW系统检测并向驾驶员警告汽车盲点中的车辆。BSW系统可以提供视觉、听觉和/或触觉警报以指示合并或改变车道是不安全的。系统可以在驾驶员使用转弯信号时提供附加的警告。BSW系统可以使用耦合到专用处理器、DSP、FPGA和/或ASIC的后侧朝向相机和/或RADAR传感器460,该专用处理器、DSP、FPGA和/或ASIC电耦合至诸如显示器、扬声器和/或振动组件之类的驾驶员反馈。
RCTW系统可以在车辆400倒车时在后置相机范围之外检测到对象时提供视觉、听觉和/或触觉通知。一些RCTW系统包括AEB以确保应用车辆制动器以避免撞车。RCTW系统可以使用耦合到专用处理器、DSP、FPGA和/或ASIC的一个或更多个后置RADAR传感器460,该专用处理器、DSP、FPGA和/或ASIC电耦合至诸如显示器、扬声器和/或振动组件之类的驾驶员反馈。
常规的ADAS系统可能易于出现假阳性结果,这可能会让驾驶员烦恼并分散注意力,但是典型地不是灾难性的,因为ADAS系统提醒驾驶员并且允许驾驶员决定安全条件是否真正存在并且相对应地采取行动。然而,在自主车辆400中,在冲突结果的情况下,车辆400本身必须决定是否注意(heed)来自主计算机或者辅助计算机(例如第一控制器436或第二控制器436)的结果。例如,在一些实施例中,ADAS系统438可以是用于向备用计算机合理性模块提供感知信息的备用和/或辅助计算机。备用计算机合理性监视器可以在硬件组件上运行冗余多样的软件,以检测感知和动态驾驶任务中的故障。来自ADAS系统438的输出可以提供给监督MCU。如果来自主计算机和辅助计算机的输出冲突,那么监督MCU必须确定如何协调该冲突以确保安全操作。
在一些示例中,主计算机可以被配置为向监督MCU提供置信度评分,指示主计算机对所选结果的置信度。如果置信度评分超过阈值,那么监督MCU可以遵循主计算机的方向,而不管辅助计算机是否提供冲突或不一致的结果。在置信度评分不满足阈值的情况下并且在主计算机和辅助计算机指示不同的结果(例如冲突)的情况下,监督MCU可以在这些计算机之间进行仲裁以确定适当的结果。
监督MCU可以被配置为运行神经网络,所述神经网络被训练并且被配置为基于来自主计算机和辅助计算机的输出,确定辅助计算机提供假警报的条件。因此,监督MCU中的神经网络可以了解何时可以信任辅助计算机的输出以及何时不能。例如,当辅助计算机为基于RADAR的FCW系统时,监督MCU中的神经网络可以了解FCW系统何时正在识别事实上不是危险的金属对象,例如触发警报的排水栅格或井盖。类似地,当辅助计算机是基于相机的LDW系统时,监督MCU中的神经网络可以学习在骑车者或行人在场并且车道偏离实际上是最安全的策略时无视该LDW。在包括运行在监督MCU上的神经网络的实施例中,监督MCU可以包括适合于利用关联的存储器运行神经网络的DLA或GPU中的至少一个。在优选的实施例中,监督MCU可以包括SoC 404的组件和/或作为SoC 404的组件而被包括。
在其他示例中,ADAS系统438可以包括使用传统计算机视觉规则执行ADAS功能的辅助计算机。这样,辅助计算机可以使用经典的计算机视觉规则(如果-那么),并且在监督MCU中存在神经网络可以提高可靠性、安全性和性能。例如,多样化的实现方式和有意的非完全相同(non-identity)使得整个系统更加容错,对于软件(或者软件-硬件接口)功能造成的故障而言尤其如此。例如,如果在主计算机上运行的软件中存在软件漏洞或错误并且运行在辅助计算机上的非完全相同的软件代码提供相同的总体结果,那么监督MCU可以更加确信总体结果是正确的,并且由主计算机使用的软件或硬件中的漏洞不造成实质性的错误。
在一些示例中,ADAS系统438的输出可以馈送至主计算机的感知块和/或主计算机的动态驾驶任务块。例如,如果ADAS系统438由于对象紧接在前的原因而指示前方碰撞警告,那么感知块可以在识别对象时使用该信息。在其他示例中,辅助计算机可以具有它自己的神经网络,其被训练并且因此如本文所描述的降低假阳性的风险。
车辆400可以进一步包括信息娱乐SoC 430(例如车载信息娱乐系统(IVI))。尽管被图示和描述为SoC,但是信息娱乐系统可以不是SoC,并且可以包括两个或更多分立的组件。信息娱乐SoC 430可以包括可以用来向车辆400提供音频(例如音乐、个人数字助理、导航指令、新闻、广播等等)、视频(例如TV、电影、流媒体等等)、电话(例如免提呼叫)、网络连接(例如LTE、WiFi等等)和/或信息服务(例如导航系统,后停车援助,无线电数据系统,诸如燃油水平、覆盖的总距离、制动燃油水平、油位、车门开/关、空气过滤器信息之类的车辆有关信息,等等)的硬件和软件的组合。例如,信息娱乐SoC 430可以包括收音机、盘播放器、导航系统、视频播放器、USB和蓝牙连接、车载电脑、车载娱乐、WiFi、方向盘音频控件、免提语音控件、平视显示器(HUD)、HMI显示器434、远程信息处理设备、控制面板(例如用于控制各种组件、特征和/或系统,和/或与其交互)和/或其他组件。信息娱乐SoC 430可以进一步用来向车辆的用户提供信息(例如视觉的和/或听觉的),例如来自ADAS系统438的信息,诸如规划的车辆机动、轨迹、周围环境信息(例如交叉路口信息、车辆信息、道路信息等等)之类的自主驾驶信息,和/或其他信息。
信息娱乐SoC 430可以包括GPU功能。信息娱乐SoC 430可以通过总线402(例如CAN总线、以太网等)与车辆400的其他设备、系统和/或组件通信。在一些示例中,信息娱乐SoC430可以耦合至监督MCU,使得在主控制器436(例如车辆400的主和/或备用计算机)出现故障的情况下,信息娱乐系统的GPU可以执行一些自驾驶功能。在这样的示例中,信息娱乐SoC430可以如本文所描述的将车辆400置于司机安全停车模式。
车辆400可以进一步包括仪表组432(例如数字仪表板、电子仪表组、数字仪表面板等等)。仪表组432可以包括控制器和/或超级计算机(例如分立的控制器或超级计算机)。仪表组432可以包括一套仪器,例如车速表、燃油水平、油压、转速表、里程表、转弯指示器、换档位置指示器、安全带警告灯、停车制动警告灯、发动机故障灯、安全气囊(SRS)系统信息、照明控件、安全系统控件、导航信息等等。在一些示例中,信息可以被显示和/或在信息娱乐SoC 430和仪表组432之间共享。换言之,仪表组432可以作为信息娱乐SoC 430的部分而被包括,或者反之亦然。
图4D为根据本公开一些实施例的基于云的服务器与图4A的示例自主车辆400之间的通信的系统示意图。系统476可以包括服务器478、网络490以及包括车辆400在内的车辆。服务器478可以包括多个GPU 484(A)-1284(H)(这里统称为GPU 484)、PCIe交换机482(A)-482(H)(这里统称为PCIe交换机482)和/或CPU 480(A)-480(B)(这里统称为CPU 480)。GPU484、CPU 480和PCIe交换机可以与诸如例如且不限于NVIDIA开发的NVLink接口488之类的高速互连和/或PCIe连接486互连。在一些示例中,GPU 484经由NVLink和/或NVSwitch SoC连接,并且GPU 484和PCIe交换机482经由PCIe互连连接。尽管图示出八个GPU 484、两个CPU480和两个PCIe交换机,但是这并不意图是限制性的。取决于实施例,服务器478中的每一个可以包括任意数量的GPU 484、CPU 480和/或PCIe交换机。例如,服务器478中的每一个可以包括八个、十六个、三十二个和/或更多GPU 484。
服务器478可以通过网络490并且从车辆接收图像数据,该图像数据表示示出诸如最近开始的道路工程之类的意外或改变的道路状况的图像。服务器478可以通过网络490并且向车辆传输神经网络492、更新的神经网络492和/或地图信息494,包括关于交通和道路状况的信息。对地图信息494的更新可以包括对于HD地图422的更新,如本文所描述的,诸如检测到的对象的绝对坐标、关于建筑工地、坑洼、弯道、洪水或其他障碍物的信息。在一些示例中,神经网络492、更新的神经网络492和/或地图信息494可以已从新的训练和/或从环境中的任意数量的车辆接收的数据中表示和/或基于数据中心处执行的训练(例如使用服务器478和/或其他服务器)的经验生成。
服务器478可以用来基于训练数据训练机器学习模型(例如神经网络)。训练数据可以由车辆生成,和/或可以在仿真中生成(例如使用游戏引擎)。在一些示例中,训练数据被标记(例如在神经网络受益于有监督学习的情况下)和/或经历其他预处理,而在其他示例中,训练数据不被标记和/或预处理(例如在神经网络无需有监督学习的情况下)。训练可以根据任何一类或更多类机器学习技术进行,包括但不限于以下类:监督训练、半监督训练、无监督训练、自学习、强化学习、联合学习、迁移学习、特征学习(包括主组件和集群分析)、多线性子空间学习、流形学习、表示学习(包括备用字典学习)、基于规则的机器学习、异常检测及其任何变体或组合。一旦机器学习模型被训练,机器学习模型可以由车辆使用(例如通过网络490传输至车辆),和/或机器学习模型可以由服务器478用来远程地监控车辆。
在一些示例中,服务器478可以接收来自车辆的数据,并且将该数据应用到最新的实时神经网络以用于实时智能推理。服务器478可以包括由GPU 484供电的深度学习超级计算机和/或专用AI计算机,例如NVIDIA开发的DGX和DGX站机器。然而,在一些示例中,服务器478可以包括仅使用CPU供电的数据中心的深度学习基础设施。
服务器478的深度学习基础设施可能够快速实时推理,并且可以使用该能力来评估并验证车辆400中的处理器、软件和/或关联硬件的健康状况。例如,深度学习基础设施可以接收来自车辆400的定期更新,例如图像序列和/或车辆400已经定位的位于该图像序列中的对象(例如经由计算机视觉和/或其他机器学习对象分类技术)。深度学习基础设施可以运行它自己的神经网络以识别对象并且将它们与车辆400识别的对象相比较,如果结果不匹配并且该基础设施得出车辆400中的AI发生故障的结论,那么服务器478可以向车辆400传输信号,指示车辆400的故障保护计算机进行控制,通知乘客,并且完成安全停车操作。
为了推理,服务器478可以包括GPU 484和一个或更多个可编程推理加速器(例如NVIDIA的TensorRT 3)。GPU供电的服务器和推理加速的组合可以使得实时响应成为可能。在其他示例中,例如在性能不那么重要的情况下,CPU、FPGA和其他处理器供电的服务器可以用于推理。
图5为适合用于实现本公开一些实施例的示例计算设备500的框图。计算设备500可以包括直接或间接耦合下列设备的互连系统502:存储器504,一个或更多个中央处理单元(CPU)506,一个或更多个图形处理单元(GPU)508,通信接口510,I/O端口512,输入/输出组件514,电源516,一个或更多个呈现组件518(例如显示器),以及一个或更多个逻辑单元520。
尽管图5的各个框被示为经由具有线路的互连系统502连接,但是这并不意图是限制性的,并且仅仅为了清楚起见。例如,在一些实施例中,诸如显示设备之类的呈现组件518可以被认为是I/O组件514(例如如果显示器为触摸屏)。作为另一个示例,CPU 506和/或GPU508可以包括存储器(例如,存储器504可以表示除了GPU 508、CPU 506和/或其他组件的存储器以外的存储设备)。换言之,图5的计算设备仅仅是说明性的。在诸如“工作站”、“服务器”、“膝上型电脑”、“台式机”、“平板电脑”、“客户端设备”、“移动设备”、“手持式设备”、“游戏控制台”、“电子控制单元(ECU)”、“虚拟现实系统”、“增强现实系统”和/或其他设备或系统类型之类的类别之间不进行区分,因为所有这些都被考虑在图5的计算设备的范围内。
互连系统502可以表示一条或更多条链路或总线,例如地址总线、数据总线、控制总线或者其组合。互连系统502可以包括一种或更多种总线类型,例如行业标准架构(ISA)总线、扩展行业标准架构(EISA)总线、视频电子标准协会(VESA)总线、外围组件互连(PCI)总线、外围组件互连快速(PCIe)总线,和/或另一种类型的总线或链路。在一些实施例中,组件之间存在直接连接。作为示例,CPU 506可以直接连接到存储器504。此外,CPU 506可以直接连接到GPU 508。在组件之间存在直接或点对点连接的情况下,互连系统502可以包括PCIe链路以执行连接。在这些示例中,计算设备500中不需要包括PCI总线。
存储器504可以包括各种各样的计算机可读介质中的任何介质。计算机可读介质可以是可以由计算设备500访问的任何可用介质。计算机可读介质可以包括易失性和非易失性介质以及可移除和不可移除介质。举例而言且非限制性地,计算机可读介质可以包括计算机存储介质和通信介质。
计算机存储介质可以包括易失性和非易失性介质和/或可移除和不可移除介质,其以用于存储诸如计算机可读指令、数据结构、程序模块和/或其他数据类型之类的信息的任何方法或技术实现。例如,存储器504可以存储计算机可读指令(例如其表示程序和/或程序元素,例如操作系统)。
计算机存储介质可以包括但不限于RAM、ROM、EEPROM、闪存或者其他存储技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储装置、磁带盒、磁带、磁盘存储装置或其他磁存储设备,或者可以用来存储期望的信息且可以由计算设备500访问的任何其他介质。当在本文使用时,计算机存储介质并不包括信号本身。
计算机存储介质可以在诸如载波之类的调制数据信号或其他传输机制中包含计算机可读指令、数据结构、程序模块和/或其他数据类型,并且包括任何信息输送介质。术语“调制数据信号”可以指这样的信号,该信号使它的特性中的一个或更多个以这样的将信息编码到该信号中的方式设置或改变。举例而言且非限制性地,计算机存储介质可以包括诸如有线网络或直接有线连接之类的有线介质,以及诸如声音、RF、红外和其他无线介质之类的无线介质。任何以上所述的组合也应当包含在计算机可读介质的范围内。
CPU 506可以被配置为执行至少一些计算机可读指令以便控制计算设备500的一个或更多个组件执行本文描述的方法和/或过程中的一个或更多个。CPU 506中的每一个可以包括能够同时处理大量软件线程的一个或更多个核(例如一个、两个、四个、八个、二十八个、七十二个等等)。CPU 506可以包括任何类型的处理器,并且可以包括不同类型的处理器,这取决于实现的计算设备500的类型(例如具有用于移动设备的较少核的处理器以及具有用于服务器的更多核的处理器)。例如,取决于计算设备500的类型,处理器可以是使用精简指令集计算(RISC)实现的高级RISC机器(ARM)处理器或者使用复杂指令集计算(CISC)实现的x86处理器。除了一个或更多个微处理器或者诸如数学协处理器之类的补充协处理器之外,计算设备500还可以包括一个或更多个CPU 506。
除了或替代CPU 506,GPU 508可以被配置为执行至少一些计算机可读指令以控制计算设备500的一个或更多个组件来执行本文描述的一种或更多种方法和/或过程。一个或更多个GPU 508可以是集成GPU(例如,具有一个或更多个CPU 506和/或一个或更多个GPU508可以是分立的GPU。在实施例中,一个或更多个GPU 508可以是一个或更多个CPU 506的协处理器。计算设备500可以使用GPU 508来渲染图形(例如,3D图形)或执行通用计算。例如,GPU 508可用于GPU上的通用计算(GPGPU)。GPU 508可以包括能够同时处理成百上千个软件线程的成百上千个核心。GPU 508可以响应于渲染命令(例如,通过主机接口从CPU 506接收的渲染命令)生成用于输出图像的像素数据。GPU 508可以包括图形存储器,例如显示存储器,用于存储像素数据或任何其他合适的数据,例如GPGPU数据。显示存储器可以被包括作为存储器504的一部分。GPU 508可以包括并行操作(例如,经由链路)的两个或更多个GPU。链路可以直接连接GPU(例如,使用NVLINK),也可以通过交换机(例如,使用NVSwitch)连接GPU。当组合在一起时,每个GPU 508可以为输出的不同部分或不同的输出(例如,用于第一图像的第一GPU和用于第二图像的第二GPU)生成像素数据或GPGPU数据。每个GPU可包括自己的存储器,也可与其他GPU共享存储器。
除了或替代CPU 506和/或GPU 508,逻辑单元520可以被配置为执行至少一些计算机可读指令以控制计算设备500的一个或更多个组件来执行本文所述的一种或更多种方法和/或过程。在实施例中,CPU 506、GPU 508和/或逻辑单元520可以分立地或联合地执行方法、过程和/或其部分的任何组合。一个或更多个逻辑单元520可以是CPU 506和/或GPU 508中的一个或更多个的一部分和/或与CPU 506和/或GPU 508中的一个或更多个集成,和/或一个或更多个逻辑单元520可以是分立的组件或以其他方式在CPU 506和/或GPU 508的外部。在实施例中,一个或更多个逻辑单元520可以是一个或更多个CPU 506和/或一个或更多个GPU 508的协处理器。
逻辑单元520的示例包括一个或更多个处理核心和/或其组件,例如张量核心(TC)、张量处理单元(TPU)、像素视觉核心(PVC)、视觉处理单元(VPU)、图形处理集群(GPC)、纹理处理集群(TPC)、流式多处理器(SM)、树遍历单元(TTU)、人工智能加速器(AIA)、深度学习加速器(DLA)、算术逻辑单元(ALU))、专用集成电路(ASIC)、浮点单元(FPU)、I/O元件、外围组件互连(PCI)或外围组件互连快速(PCIe)元件等。
通信接口510可以包括一个或更多个接收器、发送器和/或收发器,其使得计算设备500能够经由电子通信网络与其他计算设备通信,包括有线和/或无线通信。通信接口510可以包括使能通过若干不同网络中的任何网络进行通信的组件和功能,所述网络例如无线网络(例如Wi-Fi、Z波、蓝牙、蓝牙LE、ZigBee等等)、有线网络(例如通过以太网或无限带宽通信)、低功率广域网(例如LoRaWAN、SigFox等等)和/或因特网。
I/O端口512可以使得计算设备500能够逻辑地耦合到包括I/O组件514、呈现组件518和/或其他组件在内的其他设备,其中一些可以内置到(例如集成到)计算设备500中。说明性I/O组件514包括麦克风、鼠标、键盘、操纵杆、游戏垫、游戏控制器、碟形卫星天线、扫描仪、打印机、无线设备等等。I/O组件514可以提供处理用户生成的空中手势、语音或其他生理输入的自然用户接口(NUI)。在一些实例中,输入可以传输至适当的网络元件以便进一步处理。NUI可以实现语音识别、手写笔识别、面部识别、生物特征识别、屏幕上和邻近屏幕的手势识别、空中手势、头部和眼睛跟踪以及与计算设备500的显示器关联的触摸识别(如下文更详细地描述的)的任意组合。计算设备500可以包括诸如立体相机系统之类的深度相机、红外相机系统、RGB相机系统、触摸屏技术以及这些的组合,以用于手势检测和识别。此外,计算设备500可以包括使能运动检测的加速度计或陀螺仪(例如作为惯性测量单元(IMU)的部分)。在一些示例中,加速度计或陀螺仪的输出可以由计算设备500用来渲染沉浸式增强现实或者虚拟现实。
电源516可以包括硬接线电源、电池电源或者其组合。电源516可以向计算设备500供电以使得计算设备500的组件能够操作。
呈现组件518可以包括显示器(例如监视器、触摸屏、电视屏幕、平视显示器(HUD)、其他显示器类型或者其组合)、扬声器和/或其他呈现组件。呈现组件518可以接收来自其他组件(例如GPU 508、CPU 506等等)的数据,并且输出该数据(例如作为图像、视频、声音等等)。
本公开可以在由计算机或者诸如个人数字助理或其他手持式设备之类的其他机器执行的、包括诸如程序模块之类的计算机可执行指令的机器可使用指令或者计算机代码的一般背景下进行描述。通常,包括例程、程序、对象、组件、数据结构等等的程序模块指的是执行特定任务或者实现特定抽象数据类型的代码。本公开可以在各种各样的系统配置中实践,这些配置包括手持式设备、消费电子器件、通用计算机、更专业的计算设备等等。本公开也可以在其中任务由通过通信网络链接的远程处理设备执行的分布式计算环境中实践。
图6图示了本公开实施例的机器学习模型的训练和部署。在至少一个实施例中,机器学习模型可以包括诸如CNN的神经网络。使用训练数据集602来训练未经训练的神经网络606,在本公开的一些实施例中,训练数据集602可以是假设各种头部姿势的对象的一组图像。在至少一个实施例中,训练框架604是PyTorch框架,而在其他实施例中,训练框架604是TensorFlow、Boost、Caffe、Microsoft Cognitive Toolkit/CNTK、MXNet、Chainer、Keras、Deeplearning4j或其他训练框架。训练框架604使用本文描述的处理资源来训练未经训练的神经网络606,以生成经训练的神经网络608。在至少一个实施例中,可以随机选择初始权重或通过使用深度置信网络进行预训练来选择初始权重。训练可以以监督、部分监督或无监督的方式进行。
在至少一个实施例中,例如当使用回归分类器时,可以使用监督学习来训练未经训练的神经网络606,其中训练数据集602包括与期望输出配对的输入,或者其中训练数据集602包括具有已知输出的输入并且神经网络的输出是手动分级的。在至少一个实施例中,未经训练的神经网络606以监督方式进行训练。训练框架604处理来自训练数据集602的输入并将结果输出与一组预期或期望输出进行比较。在至少一个实施例中,误差然后通过未经训练的神经网络606传播回来。训练框架604调整控制未经训练的神经网络606的权重。训练框架604可以包括用于监控未经训练的神经网络606如何向模型收敛的工具,模型例如为经训练的神经网络608,适合于基于已知的输入数据,例如新数据612,生成正确的答案,例如在结果614中。在至少一个实施例中,训练框架604重复训练未经训练的神经网络606,同时调整权重以细化使用损失函数和调整过程(例如随机梯度下降)的未经训练的神经网络606的输出。在至少一个实施例中,训练框架604训练未经训练的神经网络606,直到未经训练的神经网络606达到期望的准确度。然后可以部署经训练的神经网络608以实现任意数量的机器学习操作。
在至少一个实施例中,未经训练的神经网络606可以使用无监督学习来训练,其中未经训练的神经网络606尝试使用未标记的数据来训练自己。在至少一个实施例中,无监督学习训练数据集602可以包括没有任何关联输出数据或“地面实况”数据的输入数据。未经训练的神经网络606可以学习训练数据集602内的分组,并且可以确定各个输入如何与未经训练的数据集602相关。在至少一个实施例中,可以使用无监督训练来生成自组织图,这是一种能够执行对减少新数据612的维数有用的操作的经训练的神经网络网络608。无监督训练也可以用于执行异常检测,这允许识别新数据集612中偏离新数据集612的正常或现有模式的数据点。
在至少一个实施例中,可以使用半监督学习,这是一种其中训练数据集602包括标记和未标记数据的混合的技术。训练框架604因此可以用于执行增量学习,例如通过迁移学习技术。这种增量学习使经训练的神经网络608能够适应新数据612,而不会忘记在初始训练期间灌输在网络中的知识。
图7是示出根据本公开的实施例的基于车辆的HD地图更新的示例性过程的流程图。这里,自主车辆400可以在其各种传感器的视野中捕获一个或更多个对象的图像(步骤700),如图1所示。图像可能是来自可见光相机或任何其他传感器的图像,包括LiDAR系统等传感器。然后确定这些对象的相对坐标或这些对象相对于车辆400的位置(步骤710)。对象相对位置的确定可以以任何方式完成,例如通过从彼此分开已知距离捕获的多个图像进行三角测量。作为示例,多个不同的相机可以同时捕获同一对象的图像,其中对象的相对位置可以通过使用捕获的图像和相机之间的已知距离的三角测量来确定。作为另一个示例,单个相机可以捕获同一对象的多个图像,其中GPS传感器或其他位置检测系统在每个捕获的图像时确定车辆400的位置。然后可以使用捕获的图像和两个图像之间的车辆400位置的差异来执行三角测量。作为另一个示例,可以使用任何测距系统、单视觉或立体视觉系统如上确定位置。
车辆400还确定至少一个参考对象的绝对坐标(步骤720)。特别地,车辆400可以确定对象的绝对坐标,对象的相对坐标也可以被确定。例如,车辆400可以选择在其传感器之一的视野内的对象,该对象也是包含在其路边地图或HD地图中的对象,车辆400可以访问HD地图并且HD地图可以用于放置对象在其路边地图内。因此,可以如上所述检测和识别对象,将它们的形状和相对位置与对应的语义地图对象进行比较以确定是否存在匹配。匹配对象因此可以被确定为已经存在于语义地图上的对象,其绝对坐标是已知的。可以以任何方式确定检测到的对象和语义地图对象之间的匹配,例如通过将对象位置和大小/形状与任何指定的一个或更多个度量进行比较。例如,被分类为相同对象类型并且彼此在预定阈值距离内的对象可以被认为是相同对象。类似地,尺寸匹配在任何一个或更多个预定尺寸公差内并且彼此相距在预定阈值距离内的对象可以被认为是相同的对象。
当检测到的对象被认为与已经存储在车辆400的语义地图中或车辆400可以访问的一些其他语义地图中的对象匹配时,例如由车辆400可以与之进行电子通信的远程服务维护的语义地图,检索该对象的绝对坐标。该对象然后可以充当参考对象,其绝对坐标可以用于确定其他检测到的对象的绝对坐标。也就是说,车辆400然后可以根据参考对象的绝对坐标、车辆400的绝对坐标(例如,GPS坐标)和检测到的对象相对于车辆400的确定位置来计算其他检测到的对象的绝对坐标(步骤730)。
车辆400然后可以用计算的任何检测到的对象的绝对坐标来更新其路边地图(步骤740)。也就是说,检测到的对象可以放置在车辆400的语义路边地图的一个或更多个适当层中。以这种方式,可以观察到本公开的实施例允许车辆400用形状、绝对坐标以及当车辆400穿过任何路径时实时检测到的对象的分类或身份来更新它们的路边地图。
此外,车辆400可以传输输入到其路边地图中的任何对象的绝对坐标,以用于更新远程HD地图。也就是说,车辆400可以在任何期望的时间将关于任何检测到的对象的信息发送到远程HD地图服务,从而可以更新远程HD地图以包括这些对象。因此,车辆400可以检查以确定它是否应该将更新传输到这样的远程服务(步骤750)。如果不是,则该过程可以返回到步骤700,并且车辆可以继续检测对象并将其计算的信息输入其路边地图。如果车辆400改为确定它应该发送其更新,则车辆400可以将绝对坐标和任何其他所需信息——例如对应的对象形状/轮廓和标识/分类——发送到远程HD地图服务(步骤760)。
注意,多个车辆400可以将更新信息发送到远程HD地图服务。也就是说,HD地图可以由多个不同的远程车辆400连续更新。还应注意,车辆400可以检测和确定任何对象的绝对坐标,包括已经存在于车辆400的语义地图或远程HD地图中的对象。车辆400因此可以确定某些对象具有不同于它们的车载或路边地图中已经存在的绝对坐标值。例如,这可能发生在对象已被诸如通过构造移动时,或者可能由不准确导致,例如由于卫星信号接收条件差而导致的GPS读数不准确。车辆400可以以任何方式处理这种位置差异。作为一个示例,车辆400可以简单地将对象更新到它们新确定的位置,可以将对象的位置修改为旧坐标和新坐标的任何平均值,可以选择旧坐标直到新坐标被对象的另一次经过确认,如果检测到GPS读数不佳等不准确性,则可以丢弃新坐标。在新位置处多次检测对象同样可以确定对象已经移动,丢弃旧坐标并用新确定的坐标替换。
类似地,远程HD地图服务可以接收与该对象的现有存储坐标不同的对象坐标。地图服务可以以任何方式处理此类差异。作为一个示例,任何对象的绝对坐标可以被累积或存储为该对象的接收坐标的记录,并且该对象的位置可以被确定为累积位置值的某个平均值。例如,对象的位置可以被确定为从多个不同车辆400接收的预定数量的最近样本的算术平均值,或者在最近的预定时间段内(例如,在过去24小时、过去一周等)内接收到的样本的算术平均值。只有当新接收的位置值相差大于某个预定量时,对象或特征位置也可以被更新或修改。也就是说,在一些实施例中,与已经存储的值过于相似的接收到的测量值可以被丢弃。本公开的实施例设想以任何方式从多个不同接收到的位置值确定位置,这可以采用任何平均或估计过程。
还应注意,本地或车辆400路边地图的坐标系可能与远程HD地图服务的坐标系不同,即使两者都是绝对坐标系并且任一者可用于更新另一个。本公开的实施例考虑使用已知变换等以已知方式在这些坐标系之间进行转换。车辆400和远程HD地图服务之一或两者可以适当地执行坐标变换。
出于解释的目的,前述描述使用特定的命名法来提供对本公开的透彻理解。然而,对于本领域技术人员来说显而易见的是,实践本公开的方法和系统不需要具体细节。因此,本发明的特定实施例的前述描述是出于说明和描述的目的而呈现的。它们并不旨在穷举或将本发明限制为所公开的精确形式。鉴于上述教导,许多修改和变化是可能的。例如,可以使用任何传感器、相机或其他方式来检测对象。对象绝对坐标可以以任何方式确定,并且可以存储在任何语义地图层中。此外,可以以任何方式修改或更新语义地图位置,从而以任何方式解决对象位置之间的差异。对实施例进行选择和描述是为了最好地解释本发明的原理及其实际应用,从而使本领域的其他技术人员能够最好地利用本公开的方法和系统以及以及具有适合预期的特定用途的各种修改的各种实施例。此外,所公开或以其他方式公开的各种实施例的不同特征可以混合和匹配或以其他方式组合,以便创建本公开所设想的进一步实施例。

Claims (20)

1.一种确定对象在对应于自我机器的环境中的位置的方法,该方法包括:
确定第一对象在绝对坐标系中的位置;
接收一个或更多个第二对象相对于所述第一对象的位置的位置信息;以及
使用并行处理电路,根据所述一个或更多个第二对象相对于所述第一对象的位置的所述位置信息和所述第一对象在所述绝对坐标系中的位置,确定所述一个或更多个第二对象在所述绝对坐标系中的位置。
2.根据权利要求1所述的方法,其中,所述一个或更多个第二对象的位置是使用所述一个或更多个第二对象的至少一个图像来确定的。
3.根据权利要求2所述的方法,其中,所述至少一个图像是使用对应于所述自我机器的相机捕获的至少一个图像。
4.根据权利要求1所述的方法:
其中,接收所述一个或更多个第二对象的位置信息还包括从一个或更多个自我机器接收每个第二对象相对于所述第一对象的位置的位置的多个估计,该方法还包括根据每个第二对象的位置的所述多个估计来确定所述一个或更多个第二对象相对于所述第一对象的位置;以及
其中,确定所述一个或更多个第二对象的位置还包括根据所述一个或更多个第二对象相对于所述第一对象所确定的位置,以及根据所述第一对象在所述绝对坐标系中的位置来确定所述一个或更多个第二对象在所述绝对坐标系中的位置。
5.根据权利要求1所述的方法,其中,所述绝对坐标系是第一绝对坐标系,所述方法还包括至少部分地根据所述一个或更多个第二对象在所述第一绝对坐标系中所确定的位置来确定所述一个或更多个第二对象在第二绝对坐标系中的位置,以及发送所述一个或更多个第二对象在所述第二绝对坐标系中的位置。
6.根据权利要求1所述的方法,还包括发送所述一个或更多个第二对象在所述绝对坐标系中的位置。
7.根据权利要求1所述的方法,还包括接收所述一个或更多个第二对象的更新的位置信息,以及根据所述更新的位置信息修正所述一个或更多个第二对象在所述绝对坐标系中的位置。
8.一种在对应于自我机器的环境中确定对象在绝对坐标系中的位置的方法,该方法包括:
确定第一对象在绝对坐标系中的位置;
使用对应于自我机器的并行处理电路,在所述自我机器运动时确定第二对象相对于第一对象的位置;
使用所述车辆的所述并行处理电路,根据所述第二对象相对于所述第一对象的位置和所述第一对象在所述绝对坐标系中的位置,确定所述第二对象在所述绝对坐标系中的位置;以及
发送所述第二对象在所述绝对坐标系中的位置。
9.根据权利要求8所述的方法,其中,确定所述第二对象的位置还包括根据所述第一对象和所述第二对象的一个或更多个图像确定所述第二对象相对于所述第一对象的位置。
10.根据权利要求8所述的方法,其中,确定所述第二对象的位置还包括确定所述第一对象相对于所述自我机器的位置,确定所述第二对象相对于所述自我机器的位置,以及根据所述第一对象相对于所述车辆的位置和所述第二对象相对于所述自我机器的位置来确定所述第二对象相对于所述第一对象的位置。
11.一种处理器,包括:
一个或更多个处理单元,其用于:确定第一对象在对应于自我机器的环境中的绝对坐标系中的位置,接收所述环境中的一个或更多个第二对象相对于所述第一对象的位置的位置信息,以及至少部分地基于所述第一对象在所述绝对坐标系中的位置以及所述一个或更多个第二对象相对于所述第一对象的位置的所述位置信息来确定所述一个或更多个第二对象在所述绝对坐标系中的位置。
12.根据权利要求11所述的处理器,其中,所述一个或更多个第二对象的位置是使用所述一个或更多个第二对象的至少一个图像来确定的。
13.根据权利要求12所述的处理器,其中,所述至少一个图像是使用对应于所述自我机器的相机捕获的至少一个图像。
14.根据权利要求11所述的处理器:
其中所述一个或更多个处理单元用于通过从一个或更多个自我机器接收每个第二对象相对于所述第一对象的位置的位置的多个估计来接收所述一个或更多个第二对象的位置信息,
其中所述一个或更多个处理单元还用于根据每个第二对象的位置的所述多个估计来确定所述一个或更多个第二对象相对于所述第一对象的位置;以及
其中所述一个或更多个处理单元用于通过根据所述一个或更多个第二对象相对于所述第一对象所确定的位置以及根据所述第一对象在所述绝对坐标系中的位置确定所述一个或更多个第二对象在所述绝对坐标系中的位置来确定所述一个或更多个第二对象的位置。
15.根据权利要求11所述的处理器,其中,所述绝对坐标系是第一绝对坐标系,并且其中所述一个或更多个处理单元进一步用于至少部分地根据所述一个或更多个第二对象在所述第一绝对坐标系中所确定的位置来确定所述一个或更多个第二对象在第二绝对坐标系中的位置,并用于发送所述一个或更多个第二对象在所述第二绝对坐标系中的位置。
16.根据权利要求11所述的处理器,其中,所述一个或更多个处理单元进一步用于发送所述一个或更多个第二对象在所述绝对坐标系中的位置。
17.根据权利要求11所述的处理器,其中,所述一个或更多个处理单元进一步用于接收所述一个或更多个第二对象的更新的位置信息,并根据所述更新的位置信息来修正所述一个或更多个第二对象在绝对坐标系中的位置。
18.一种处理器,包括:
一个或更多个处理单元,其用于:确定第一对象在对应于自我机器的环境中的绝对坐标系中的位置,确定在所述自我机器运动时所述环境中的第二对象相对于第一对象的位置,基于所述第二对象相对于所述第一对象的位置和所述第一对象在所述绝对坐标系中的位置来确定所述第二对象在所述绝对坐标系中的位置,以及发送所述第二对象在所述绝对坐标系中的位置。
19.根据权利要求18所述的处理器,其中,所述一个或更多个处理单元进一步用于通过根据所述第一对象和所述第二对象的一个或更多个图像确定所述第二对象相对于所述第一对象的位置来确定所述第二对象的位置。
20.根据权利要求18所述的处理器,其中,所述一个或更多个处理单元通过确定所述第一对象相对于所述自我机器的位置,确定所述第二对象相对于所述自我机器的位置,以及根据第一对象相对于所述车辆的位置和所述第二对象相对于所述自我机器的位置确定所述第二对象相对于所述第一对象的位置来确定所述第二对象的位置。
CN202210403826.7A 2021-04-19 2022-04-18 用于更新高清地图的系统和方法 Pending CN115218888A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/234,397 US20220333950A1 (en) 2021-04-19 2021-04-19 System and methods for updating high definition maps
US17/234,397 2021-04-19

Publications (1)

Publication Number Publication Date
CN115218888A true CN115218888A (zh) 2022-10-21

Family

ID=83447474

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210403826.7A Pending CN115218888A (zh) 2021-04-19 2022-04-18 用于更新高清地图的系统和方法

Country Status (4)

Country Link
US (1) US20220333950A1 (zh)
JP (1) JP2022165372A (zh)
CN (1) CN115218888A (zh)
DE (1) DE102022107848A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11821738B2 (en) * 2021-11-03 2023-11-21 Gm Cruise Holdings Llc Methodology for establishing time of response to map discrepancy detection event

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080243378A1 (en) * 2007-02-21 2008-10-02 Tele Atlas North America, Inc. System and method for vehicle navigation and piloting including absolute and relative coordinates
JP7167876B2 (ja) * 2018-08-31 2022-11-09 株式会社デンソー 地図生成システム、サーバ、方法

Also Published As

Publication number Publication date
DE102022107848A1 (de) 2022-10-20
US20220333950A1 (en) 2022-10-20
JP2022165372A (ja) 2022-10-31

Similar Documents

Publication Publication Date Title
US11755025B2 (en) Guiding vehicles through vehicle maneuvers using machine learning models
US11897471B2 (en) Intersection detection and classification in autonomous machine applications
US11520345B2 (en) Path perception diversity and redundancy in autonomous machine applications
US11885907B2 (en) Deep neural network for detecting obstacle instances using radar sensors in autonomous machine applications
US11531088B2 (en) Deep neural network for detecting obstacle instances using radar sensors in autonomous machine applications
US10997435B2 (en) Leveraging obstacle and lane detections to determine lane assignments for objects in an environment
EP3832341A1 (en) Deep neural network for detecting obstacle instances using radar sensors in autonomous machine applications
US11884294B2 (en) Lane change planning and control in autonomous machine applications
CN113632095A (zh) 使用适合停车位检测的倾斜多边形进行对象检测
CN111133448A (zh) 使用安全到达时间控制自动驾驶车辆
CN113767389A (zh) 从用于自主机器应用的经变换的真实世界传感器数据模拟逼真的测试数据
CN112989907A (zh) 使用空间模型的基于神经网络的注视方向确定
CN113906271A (zh) 用于自主机器应用的使用地图信息增强的地面实况数据的神经网络训练
CN113968215A (zh) 用于人行横道风险评估和方向警告的系统和方法
CN112989914A (zh) 具有自适应加权输入的注视确定机器学习系统
CN114270294A (zh) 使用眩光作为输入的注视确定
CN115718302A (zh) 使用LiDAR数据进行的用于自主机器应用的对象跟踪
CN115136148A (zh) 投影使用鱼眼镜头捕获的图像用于自主机器应用中的特征检测
US20230049567A1 (en) Deep neural network for detecting obstacle instances using radar sensors in autonomous machine applications
CN114450724A (zh) 用于自主机器应用的多活动者环境中的未来轨迹预测
CN115701623A (zh) 自主机器应用中范围图像映射的置信传播
CN117581117A (zh) 自主机器系统和应用中使用LiDAR数据的动态对象检测
CN115218888A (zh) 用于更新高清地图的系统和方法
US20230213945A1 (en) Obstacle to path assignment for autonomous systems and applications
US20240043040A1 (en) Lane biasing for navigating 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