CN120822167A - 用于自主系统和应用的感知数据融合 - Google Patents
用于自主系统和应用的感知数据融合Info
- Publication number
- CN120822167A CN120822167A CN202510464168.6A CN202510464168A CN120822167A CN 120822167 A CN120822167 A CN 120822167A CN 202510464168 A CN202510464168 A CN 202510464168A CN 120822167 A CN120822167 A CN 120822167A
- Authority
- CN
- China
- Prior art keywords
- data
- objects
- information
- sensor
- environment
- 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
Links
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60W—CONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
- B60W60/00—Drive control systems specially adapted for autonomous road vehicles
- B60W60/001—Planning or execution of driving tasks
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/20—Control system inputs
- G05D1/24—Arrangements for determining position or orientation
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60W—CONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
- B60W40/00—Estimation or calculation of non-directly measurable driving parameters for road vehicle drive control systems not related to the control of a particular sub unit, e.g. by using mathematical models
- B60W40/02—Estimation or calculation of non-directly measurable driving parameters for road vehicle drive control systems not related to the control of a particular sub unit, e.g. by using mathematical models related to ambient conditions
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01S—RADIO 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/00—Systems using the reflection or reradiation of electromagnetic waves other than radio waves, e.g. lidar systems
- G01S17/88—Lidar systems specially adapted for specific applications
- G01S17/93—Lidar systems specially adapted for specific applications for anti-collision purposes
- G01S17/931—Lidar systems specially adapted for specific applications for anti-collision purposes of land vehicles
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/20—Control system inputs
- G05D1/24—Arrangements for determining position or orientation
- G05D1/242—Means based on the reflection of waves generated by the vehicle
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/20—Control system inputs
- G05D1/24—Arrangements for determining position or orientation
- G05D1/243—Means capturing signals occurring naturally from the environment, e.g. ambient optical, acoustic, gravitational or magnetic signals
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/25—Fusion techniques
- G06F18/251—Fusion techniques of input or preprocessed data
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/77—Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
- G06V10/80—Fusion, i.e. combining data from various sources at the sensor level, preprocessing level, feature extraction level or classification level
- G06V10/803—Fusion, i.e. combining data from various sources at the sensor level, preprocessing level, feature extraction level or classification level of input or preprocessed data
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/82—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/50—Context or environment of the image
- G06V20/56—Context or environment of the image exterior to a vehicle by using sensors mounted on the vehicle
- G06V20/58—Recognition of moving objects or obstacles, e.g. vehicles or pedestrians; Recognition of traffic objects, e.g. traffic signs, traffic lights or roads
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60W—CONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
- B60W2420/00—Indexing codes relating to the type of sensors based on the principle of their operation
- B60W2420/40—Photo, light or radio wave sensitive means, e.g. infrared sensors
- B60W2420/403—Image sensing, e.g. optical camera
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60W—CONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
- B60W2420/00—Indexing codes relating to the type of sensors based on the principle of their operation
- B60W2420/40—Photo, light or radio wave sensitive means, e.g. infrared sensors
- B60W2420/408—Radar; Laser, e.g. lidar
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60W—CONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
- B60W2420/00—Indexing codes relating to the type of sensors based on the principle of their operation
- B60W2420/54—Audio sensitive means, e.g. ultrasound
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D2101/00—Details of software or hardware architectures used for the control of position
- G05D2101/10—Details of software or hardware architectures used for the control of position using artificial intelligence [AI] techniques
- G05D2101/15—Details of software or hardware architectures used for the control of position using artificial intelligence [AI] techniques using machine learning, e.g. neural networks
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D2111/00—Details of signals used for control of position, course, altitude or attitude of land, water, air or space vehicles
- G05D2111/10—Optical signals
- G05D2111/14—Non-visible signals, e.g. IR or UV signals
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D2111/00—Details of signals used for control of position, course, altitude or attitude of land, water, air or space vehicles
- G05D2111/20—Acoustic signals, e.g. ultrasonic signals
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D2111/00—Details of signals used for control of position, course, altitude or attitude of land, water, air or space vehicles
- G05D2111/30—Radio signals
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Computation (AREA)
- Multimedia (AREA)
- Automation & Control Theory (AREA)
- Artificial Intelligence (AREA)
- Remote Sensing (AREA)
- Radar, Positioning & Navigation (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- General Health & Medical Sciences (AREA)
- Databases & Information Systems (AREA)
- Computing Systems (AREA)
- Aviation & Aerospace Engineering (AREA)
- Data Mining & Analysis (AREA)
- Mechanical Engineering (AREA)
- Transportation (AREA)
- Evolutionary Biology (AREA)
- Human Computer Interaction (AREA)
- Mathematical Physics (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Life Sciences & Earth Sciences (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Electromagnetism (AREA)
- Image Analysis (AREA)
- Traffic Control Systems (AREA)
Abstract
本发明公开了用于自主系统和应用的感知数据融合,具体公开了用于将使用一个或更多个学习模型生成的第一信息与使用一个或更多个非学习过程生成的第二信息进行融合以生成包括该第一信息和/或该第二信息的一个或更多个经更新版本的第三信息的技术。在一些示例中,该第一信息可以指示与环境中的一个或更多个第一对象相关联的一个或更多个位置,以及该第二信息可以指示与环境中的一个或更多个第二对象相关联的一个或更多个属性。在一些情况下,该学习模型可以至少基于使用机器的一个或更多个第一传感器生成的第一传感器数据生成该第一信息,以及该非学习过程可以至少基于使用机器的一个或更多个第二传感器生成的第二传感器数据生成该第二信息。
Description
背景技术
机器(例如,自主车辆或机器、半自主车辆或机器等)可以使用各种类型的传感器模态(包括但不限于图像传感器、雷达(RADAR)传感器、激光雷达(LiDAR)传感器和超声波传感器)来获得与其周围环境相关联的信息。由于每种传感器类型可以提供独特的优势和/或局限性,因此结合这些传感器模态的优势,同时减轻其各自的局限性,对于在机器的近距离内实现鲁棒的障碍物检测至关重要。类似地,这些机器的感知系统也可以采用各种处理管线(诸如,学习模型、算法处理、概率模型等)来准确地解释周围环境以及做出明智的决策以安全导航。
然而,与不同类型的传感器模态一样,机器感知系统使用的不同处理管线也可具有其自己的优点和/或缺点。例如,所学习模型(例如,机器学习模型)可以为识别未分类对象和准确估计对象形状和大小提供优势,这使得所学习模型在对象可能具有多种多样外观和/或配置的复杂环境中特别有价值。另一方面,经典的(例如,非学习的)方法,诸如算法处理技术,可能在易于理解的场景中表现出色,以及在训练数据有限的边缘情况下保持性能,这使其成为确保一致性能的更可靠选择。
发明内容
本公开的实施例涉及用于自主或半自主系统和应用的感知数据融合。例如,本文描述的系统和方法可以将使用一个或更多个所学习模型(例如,一个或更多个深度神经网络)生成的第一信息与使用一个或更多个非学习过程(例如,一个或更多个算法过程)生成的第二信息进行融合,以生成包括第一信息和/或第二信息的一个或更多个经更新(例如细化的、改进的等)版本的第三信息。即,这些系统和方法可以通过至少基于第二信息细化和/或改进第一信息来组合所学习模型和非学习过程的优势,反之亦然。
与诸如如上所述的常规系统相比,在一些实施例中,本系统能够灵活地组合一个或更多个所学习方法和一个或更多个经典的传感器处理技术,以使用不同传感器模态(例如,图像、RADAR、LiDAR、超声波等)的组合来鲁棒地检测机器近距离内的障碍物。因此,如本文更详细地描述的那样,通过执行这些过程,本系统能够有效地将深度神经网络的优势(诸如它们识别未分类对象和准确地估计对象形状和大小的能力)与经典处理和/或算法方法的优势(包括它们在良好理解的场景中可靠地确保一致的性能同时在边缘情况下保持可接受性能的能力)进行组合。这提供了对常规系统的改进,常规系统需要相互独立地评估这些不同技术的输出,这可能会导致对象检测的不准确和/或最终影响机器做出明智决策的能力。此外,通过融合所学习方法和经典方法生成的信息,本系统可以更准确地感知机器的近场周围环境,包括更精确地定位对象和正确地识别对象的相应属性。
附图说明
下面将参考附图详细描述用于自主或半自主系统和应用的感知数据融合的本系统和方法,其中:
图1是示出根据本公开的一些实施例的用于融合使用所学习的和经典的传感器处理技术生成的不同信息的示例过程的数据流图;
图2是根据本公开的一些实施例的一个或更多个机器可以在其中操作的示例环境的图示;
图3是根据本公开的一些实施例的与示例环境相关联的示例占用表示的图示,该占用表示可以使用一个或更多个所学习技术来生成;
图4是根据本公开的一些实施例的指示与示例环境中的一个或更多个对象相关联的一个或更多个属性的示例对象数据的图示,该环境可以使用一个或更多个处理技术来生成;
图5是根据本公开的一些实施例的与示例环境相关联的示例占用历史表示的图示;
图6是根据本公开的一些实施例的包括示例更新的占用表示的图示;
图7是示出根据本公开的一些实施例的用于训练融合组件的示例过程的数据流图;
图8是示出根据本公开的一些实施例的用于融合使用所学习的和经典的传感器处理技术生成的信息的示例方法的流程图;
图9是示出根据本公开的一些实施例的用于融合使用不同处理技术获得的信息的另一示例方法的流程图;
图10A是根据本公开的一些实施例的示例自主车辆的图示;
图10B是根据本公开的一些实施例的图10A的示例自主车辆的相机位置和视场的示例;
图10C是根据本公开的一些实施例的图10A的示例自主车辆的示例系统架构的框图;
图10D是根据本公开的一些实施例的用于在基于云的服务器与图10A的示例自主车辆之间通信的系统图;
图11是适合用于实现本公开的一些实施例的示例计算设备的框图;以及
图12是适合用于实现本公开的一些实施例的示例数据中心的框图。
具体实施方式
公开了与用于自主或半自主系统和应用的感知数据融合相关的系统和方法。尽管本公开可以关于示例自主或半自主车辆或机器1000(本文中也称为“车辆1000”、“自我车辆1000”、“自我机器1000”或“机器1000”,其示例关于图10A-图10D进行描述)进行描述,但这并不意图是限制性的。例如,本文所述的系统和方法可以由以下项使用但不限于此:非自主车辆或机器、半自主车辆或机器(例如,在一个或更多个自适应驾驶员辅助系统(ADAS)中)、自主车辆或机器、有驾驶员和无驾驶员的机器人或机器人平台、仓库车辆、越野车辆、联接到一个或更多个拖车的车辆、飞船、船、班车、应急响应车辆、摩托车、电动或机动自行车、飞机、工程车辆、水下航行器、无人机和/或其他车辆类型。此外,尽管本公开可以关于自主或半自主系统和应用中的感知数据融合进行描述,但这并不意图是限制性的,本文描述的系统和方法可用于增强现实、虚拟现实、混合现实、机器人、安全和监督、自主或半自主机器应用和/或可以使用对象或特征检测和/或地图创建的任何其他技术空间。
例如,系统可以生成指示与环境中的一个或更多个第一对象相关联的一个或更多个第一位置的第一数据。在一些示例中,系统可以使用一个或更多个所学习模型来生成第一数据。在一些情况下,所学习模型可以包括机器学习模型、深度神经网络(DNN)、卷积神经网络(CNN)、和/或可以被训练以执行对象检测、对象分类、对象跟踪等的任何其他类型的模型。在一些示例中,系统可以至少基于使用机器的一个或更多个第一传感器获得的第一传感器数据来生成第一数据。在一些示例中,第一传感器可以包括一个或更多个图像传感器、一个或更多个RADAR传感器、一个或更多个LiDAR传感器、一个或更多个超声波传感器等。因此,第一传感器数据可以包括图像数据、RADAR数据、LiDAR数据、超声波数据等中的一个或更多个。在一些示例中,第一数据可以是即时(instantaneous)(例如,对应于数据或时间的单个实例等的单次拍摄)数据,其指示在时间实例处与机器周围环境中的第一对象相关联的第一位置。
在一些示例中,第一数据可以包括占用数据。例如,第一数据可以包括从自上而下(例如,头顶、鸟瞰图(BEV)等)的角度与环境相关联的占用表示(例如,密集占用地图、密集占用网格、自上而下密集占用表示等)。该占用表示可以包括一个或更多个点和/或像素,其表示在时间实例处使用第一传感器获得的一个或更多个样本。也就是说,点和/或像素可以指示与环境相关联的各种信息,以及占用表示的每个点/像素可以指示环境中的特定位置的信息。例如,如下文将关于图3更详细地描述的,占用表示的一个或更多个第一点可对应于与第一对象相关联的第一位置,占用表示中的一个或更多个第二点可对应于在该时间实例处环境中的一个或更多个未占用位置,以及占用表示中的一个或更多个第三点可以对应于该时间实例处环境中的一个或更多个被遮挡部分。附加地,在一些情况下,点的一个或更多个值可以对应于或以其他方式指示与一个或更多个样本相关联的高度或置信度中的至少一个。也就是说,占用表示的点或像素的值(例如,颜色、阴影、不透明度等)可以指示在该位置处对象的至少一部分的高度和/或与该点相关联的置信度或确定性(例如,该点是否实际对应于该对象的该部分,该对象的该部分的高度估计的置信度等)。因此,占用表示中的多个点或像素及其相应的值可以共同指示对象的形状、对象的大小、环境的被占用部分、环境的未占用部分、环境的被遮挡部分等。
在一些示例中,系统可以生成指示与环境中的一个或更多个第二对象相关联的一个或更多个第一属性的第二数据。在一些情况下,一个或更多个第二对象可以与一个或更多个第一对象相同,和/或一个或更多个第二对象可以与一个或更多个第一对象不同。该系统可以至少基于使用机器的一个或更多个第二传感器获得的第二传感器数据来生成第二数据。在一些示例中,第二数据可以包括环境中的对象的列表。该对象列表可以包括与第二对象相关联的第一属性。例如,对于对象列表中包括的一个或更多个第二对象,还可以列出与这些对象相对应的第一属性。在一些示例中,可以包括在对象列表中的属性可以包括对象的位置(例如,坐标)、对象的包围形状(例如,包围盒、包围矩形、包围多边形等)、对象的轨迹(例如,速度、加速度和/或方向)、对象的姿态或方向、对象分类(例如,车辆、行人、骑自行车者、动物等)、对象的形状、对象的大小、对象是静态还是动态等中的一个或更多个。
在一些示例中,系统可以使用一个或更多个经典(例如,非学习的)方法(诸如,算法传感器处理、概率处理、阈值处理、特征提取、过滤等)来生成第二数据,这些方法可以是单模态和/或融合的。在一些示例中,第二对象、第二传感器数据和/或第二传感器可以与上述的第一对象、第一传感器数据和/或第一传感器相同或不同。例如,在一些示例中,一个或更多个第二传感器可以包括一个或更多个图像传感器、一个或更多个RADAR传感器、一个或更多个LiDAR传感器、一个或更多个超声波传感器等。在一些示例中,第二数据可以是时间数据,以及可以在至少部分地在该时间实例之前的时间段内跟踪或以其他方式确定第一属性。以此方式,第二传感器数据可以包括在整个时间段内的一个或更多个时间实例处获得的传感器数据的多个实例和/或快照。在一些示例中,该时间段可以在该时间实例之前,在一些情况下,可以包括该时间实例。
在一些示例中,系统可以至少基于第一数据和/或第二数据生成第三数据。如本文所描述的,在一些示例中,系统可以通过使用一个或更多个所学习的模型、一个或更多个经典的(例如,非学习的)方法和/或使用任何其他融合技术将第一数据和第二数据进行融合来生成第三数据。第三数据可以包括或以其他方式表示第一数据和/或第二数据的一个或更多个经更新版本。例如,第三数据和/或经更新版本可以包括第一数据和/或第二数据的一个或更多个细化的和/或改进的版本。在一些情况下,系统可以使用第一数据和/或第二数据的至少一部分来确定经更新版本。也就是说,例如,系统可以至少基于第二数据的一部分(例如,一些或全部)来确定第一数据的经更新版本。同样地,系统可以至少基于第一数据的一部分(例如,一些或全部)来确定第二数据的经更新版本。以此方式,由于系统使用所学习模型确定第一数据以及使用经典方法确定第二数据,因此系统可以有效地将所学习模型和经典方法的优势与第三数据的生成相结合。
为了生成第三数据,在一些示例中,系统可以确定与一个或更多个第二对象相对应的一个或更多个第一对象。例如,第一数据可以指示与第一对象相关联的第一位置,以及第二数据可以指示与第二对象相关联的第一属性。如上文和本文所述,第一属性可以包括与第二对象相关联的位置、包围形状、轨迹、姿态和/或其他信息。至少基于第一数据的第一位置和第一属性的各个特征,系统可以确定例如与第一对象相关联的第一位置,该第一位置对应于第一属性中的各个特征(位置、包围形状、轨迹、姿态等)。以此方式以及以其他方式,系统可以确定一个或更多个第一对象中的第一对象对应于一个或更多个第二对象中的第二对象(例如,通过在第一数据与第二数据之间匹配位置、形状、大小、姿态等)。
在一些示例中,第三数据可以包括第一数据的经更新版本。第一数据的经更新版本可以指示与第一对象相关联的一个或更多个第二位置。在一些示例中,至少基于第二数据的第一属性,第二位置可以比第一位置更准确和/或更精细。也就是说,在一些情况下,系统可以以第二位置更准确/精确地对应于第一对象的实际位置的方式,从第一数据和/或第二数据的选择性部分确定第二位置。
在一些示例中,第一数据的经更新版本可以包括占用表示的经更新版本。该占用表示的经更新版本可以包括至少基于第二数据的一个或更多个第二点和/或像素。例如,占用表示的经更新版本可以基于第二数据中包括的第一属性被细化和/或改进,以及占用表示的经更新版本可以包括第二点和/或像素,其可以相对于第一数据中的占用表示的原始版本被改变或添加。例如,基于第二数据中的对象的包围形状的位置,占用表示的经更新版本中的一个或更多个点/像素可以被修改以指示对象的更精确的位置、大小、形状等。此外,在一些示例中,第一数据和/或占用表示的经更新版本可以指示环境的被遮挡部分是被第一对象中的至少一个还是第二对象中的至少一个占用。换句话说,占用表示可以被更新以指示与环境的被遮挡部分有关的信息,而即时学习的模型可能无法确定这些信息。
在一些示例中,第三数据可以附加地或替代地包括第二数据的经更新版本。第二数据的经更新版本可以指示与第二对象相关联的一个或更多个第二属性。在一些示例中,至少基于第一数据中包括的第一位置,第二属性可比第一属性更准确和/或更精细。也就是说,在一些情况下,系统可以以第二属性更准确/精确地对应于第二对象的实际属性或质量的方式,至少基于第一数据和/或第二数据的选择性部分来确定第二属性。例如,在第二数据的经更新版本中,第一属性中包括的与对象相关联的第一包围形状可以被更新为更小或更大的尺寸、不同的形状等,这些形状更接近地对应于对象的实际尺寸或形状。附加地或替代地,可以在第二数据的经更新版本中更新第一属性中的与对象相关联的第一姿态/方向,以更准确地对应于对象的实际姿态/方向。在一些情况下,第一数据的经更新版本可以包括对象列表的经更新版本。
在一些示例中,作为确定第三数据的一部分,系统可以生成指示与环境中的第一对象相关联的一个或更多个在先(prior)位置的第四数据。第四数据可以表示在整个时间段内与环境相关联的占用历史表示。例如,第四数据可以包括至少表示在一时间段内使用第一传感器获得的一个或更多个在先样本的一个或更多个点(例如,像素),并且至少基于第一属性进行细化/改进。在一些示例中,第四数据中包括的一个或更多个点中的各个点可以指示与第一对象相关联的历史速度信息、与第一对象相关联的历史高度信息、与第一对象相关联的历史置信度信息等。在一些示例中,系统可以至少基于第四数据来确定第三数据。
在一些示例中,该一个或更多个系统(和/或另外的系统)可以训练一个或更多个机器学习模型以融合第一数据和第二数据。也就是说,系统可以训练机器学习模型以组合使用一个或更多个所学习方法和一个或更多个经典传感器处理技术确定的输出,从而鲁棒地检测机器近距离内的障碍物。例如,如这里更详细地描述的,系统可以至少使用由不同类型的处理管线(例如,所学习模型、经典方法等)生成的训练数据和表示与由训练传感器数据表示的对象相关联的参数的实际值的真值数据来训练机器学习模型。此外,在训练期间,系统可以生成并输入与车辆或机器使用机器学习模型时输入到其中的数据类似的数据。
在一些示例中,系统可以使机器至少基于第三数据执行一个或更多个操作。也就是说,在一些情况下,系统可以使机器至少基于第一数据的经更新版本和/或第二数据的经更新版本中的至少一个来执行一个或更多个操作。在一些示例中,一个或更多个操作可以包括:将第三数据提供给机器的规划组件,以更新机器的轨迹。附加地或替代地,系统可以至少基于第三数据更新机器的行为,诸如使机器以低于正常速度的速度运行,使机器增加自身与环境中的其他对象之间的距离等。
本文描述的系统和方法可以由以下项使用但不限于此:非自主车辆或机器、半自主车辆或机器(例如,在一个或更多个自适应驾驶员辅助系统(ADAS)中)、自主车辆或机器、有人驾驶和无人驾驶的机器人或机器人平台、仓库车辆、越野车辆、耦接到一个或更多个拖车的车辆、飞船、船、穿梭车、应急响应车辆、摩托车、电动或机动自行车、飞机、工程车辆、潜艇、无人机和/或其他车辆类型。此外,本文描述的系统和方法可用于多种目的,例如但不限于机器控制、机器运动、机器驾驶、合成数据生成、模型训练、感知、增强现实、虚拟现实、混合现实、机器人、安全和监督、模拟和数字孪生、自主或半自主机器应用、深度学习、环境模拟、对象或行动者模拟和/或数字孪生、数据中心处理、对话式AI、光传输模拟(例如,光线追踪、路径追踪等)、3D资产的协作内容创建、云计算和/或任何其他合适的应用。
所公开的实施例可以包括在各种不同的系统中,例如汽车系统(例如,用于自主或半自主机器的控制系统、用于自主或半自主机器的感知系统)、使用机器人实现的系统、航空系统、医疗系统、划船系统、智能区域监控系统、用于执行深度学习操作的系统、用于执行模拟操作的系统、用于执行数字孪生操作的系统、使用边缘设备实现的系统、实现大语言模型(LLM)的系统、实现一个或更多个视觉语言模型(VLM)的系统、包含一个或更多个虚拟机(VM)的系统、用于执行合成数据生成操作的系统、至少部分地在数据中心中实现的系统、用于执行对话式AI操作的系统、用于执行光传输模拟的系统、用于执行3D资产的协作内容创建的系统、用于执行生成式AI操作的系统、至少部分地使用云计算资源实现的系统和/或其他类型的系统。
参考图1,图1是示出了根据本公开的一些实施例的用于融合使用学习的和经典的传感器处理技术生成的不同信息的示例过程100的数据流图。应当理解,本文描述的这种布置和其他布置仅作为示例阐述。除了所示布置和元素之外或代替所示布置和元素,还可以使用其他布置和元素(例如,机器、接口、功能、顺序、功能分组等),并且可以完全省略某些元素。此外,本文描述的许多元素是功能实体,这些功能实体可以被实现为离散或分布式组件或与其他组件结合实现,并且可以以任何合适的组合和位置实现。本文描述的由实体执行的各种功能可以由硬件、固件和/或软件实施。例如,各种功能可以通过处理器执行存储在存储器中的指令来实施。在一些实施例中,本文描述的系统、方法和过程可以使用与图10A-10D中的示例自主车辆1000、图11的示例计算设备1100、和/或图12的示例数据中心1200的组件、特征和/或功能类似的组件、特征和/或功能来执行。
过程100包括一个或更多个机器学习模型102和一个或更多个处理组件104,它们获得传感器数据106、感知数据108和/或融合感知数据110。然后机器学习模型102和处理组件104可以至少基于传感器数据106、感知数据108和/或融合感知数据110中的一个或更多个来分别生成占用数据112和对象数据114。
在示例中,传感器数据106可以使用机器的一个或更多个传感器116来生成。传感器116可以包括但不限于图像传感器、RADAR传感器、LiDAR传感器、超声波传感器、环境传感器和/或任何其他类型的传感器中的一个或更多个。因此,传感器数据106可以包括但不限于图像数据、RADAR数据、LiDAR数据、超声波数据、环境数据和/或任何其他类型的传感器数据中的一个或更多个。在一些示例中,传感器116可以包括本文所述的第一传感器和第二传感器。此外,传感器数据106可以包括本文所述的第一传感器数据和第二传感器数据。
在一些示例中,一个或更多个感知组件118可以至少基于传感器数据106生成感知数据108。感知组件118可以包括不同传感器模态的一个或更多个对象检测器和/或一个或更多个对象跟踪器。例如,感知组件118可以包括从例如图像数据中检测和/或跟踪对象的第一对象检测器和/或第一对象跟踪器,以及从例如RADAR数据中检测和/或跟踪对象的第二对象检测器和/或第二对象跟踪器。在一些示例中,感知数据108在一些情况下可以包括与环境中的检测到和/或跟踪到的对象相关联的包围形状。因此,在一些示例中,感知数据108可以包括与第一传感器模态相关联的第一感知数据(例如,基于图像数据)、与第二传感器模态相关联的第二感知数据(例如,基于RADAR数据)、与第三传感器模态相关联的第三感知数据(例如,基于超声波数据),等等。
在示例中,一个或更多个对象融合组件120可以生成由机器学习模型102和/或处理组件104获得的融合感知数据110。对象融合组件120可以至少基于感知数据108生成融合感知数据110。例如,如上所述和本文所述,感知数据108可以包括不同传感器模态的感知数据的一个或更多个实例,以及对象融合组件120可以将感知数据的不同实例融合在一起作为融合感知数据110。也就是说,在一些示例中,对象融合组件120可以通过选择性地将每个不同传感器模态的优势(strength)合并到融合感知数据110的单个实例中来改进感知数据108。
在示例中,传感器数据106、感知数据108和/或融合感知数据110可以表示环境中的多个对象。例如,图2是根据本公开的一些实施例的一个或更多个机器(诸如,机器202(例如,车辆))可以在其中操作的示例环境204的图示。在图2的示例中,当在环境204周围导航时,机器202可以使用传感器(例如,一个或更多个传感器116等)来生成传感器数据(例如,传感器数据106等),该传感器数据表示在环境204中的机器202附近的多个对象206(1)-206(4)(也单数地称为“对象206”或复数地称为“多个对象206”)。此外,机器202可以使用一个或更多个组件(例如,感知组件118、对象融合组件120等)来处理传感器数据(例如,传感器数据106等)并生成与对象206相关联的感知信息(例如,感知数据108、融合感知数据110等)。虽然图2的示例示出了对象206(1)包括另一机器,对象206(2)-206(3)包括行人,以及对象206(4)包括交通锥,但在其他示例中,对象206可以包括任何其他类型的对象(例如,骑自行车者、结构、路标、动物、植被等)。此外,虽然图2的示例将传感器数据描述为表示四个对象206,但在其他示例中,机器202可以生成表示任何数量的对象(例如,一个对象、十个对象、五十个对象、一百个对象、一千个对象等)的传感器数据。此外,虽然被描述为检测、跟踪或确定对象的参数,但对象可以扩展到静态对象、动态对象、表面(诸如,驾驶表面)中的起伏/扰动、表面中的空腔或孔洞和/或环境中的特征(道路标记等)。
返回参考图1的示例,过程100可以包括机器学习模型102,其至少基于传感器数据106、感知数据108和/或融合感知数据110中的一个或更多个来生成占用数据112。在一些示例中,机器学习模型102可以包括一个或更多个深度神经网络(DNN),用于处理传感器数据106、感知数据108和/或融合感知数据110以生成占用数据112。在一些示例中,占用数据112可以对应于上述第一数据,该第一数据指示与环境中的一个或更多个第一对象相关联的一个或更多个第一位置。在一些示例中,占用数据112可以是即时(例如,对应于单个数据实例和/或单个时间实例等的单次拍摄)数据,该即时数据指示与机器周围的环境中的第一对象相关联的第一位置-例如,在时间实例处。
在一些示例中,占用数据112可以包括与环境相关联的占用表示(例如,密集占用地图、密集占用网格等)。例如,图3是根据本公开的一些实施例的与示例环境204相关联的示例占用表示302的图示,其可以使用一个或更多个学习技术(例如,机器学习模型102)来生成。在一些示例中,占用表示302可以与自上而下(例如,头顶、鸟瞰等)的视角相关联。占用表示302可以包括表示在时间实例处使用传感器116获得的一个或更多个样本的一个或更多个点和/或像素。也就是说,点和/或像素可以指示与环境相关联的各种信息,占用表示302的每个点/像素可以指示环境中的特定位置的信息。例如,占用表示302的一个或更多个第一点304(1)-304(3)(也单数地称为“第一点304”或复数地称为“多个第一点304”)可以分别对应于对象206(1)-206(3)。附加地,占用表示302的一个或更多个第二点306(1)-306(2)(也单数地称为“第二点306”或复数地称为“多个第二点306”)可以对应于在时间实例处环境中的一个或更多个被遮挡部分。此外,占用表示302的一个或更多个第三点可以对应于在该时间实例处环境的一个或更多个未占用部分,其可以由图3中的空白空间表示,诸如一个或更多个未占用部分308。换句话说,为了便于说明和理解,第三点未被包括在占用表示302中,然而,占用表示302内的空白(例如,白色)空间可以包括一个或更多个第三点,第三点可以具有与第一点304和/或第二点306不同的外观(例如,阴影、颜色等)。
仍然参考图3,在一些情况下,一个或更多个点的一个或更多个值可以对应于或以其他方式指示与样本相关联的高度或置信度中的至少一个。也就是说,占用表示302中的第一点304和/或第二点306中的一个的值(例如,颜色、阴影、不透明度等)可以指示该位置处对象的至少一部分的高度和/或与该点相关联的置信度或确定性(例如,该点是否实际对应于对象的该部分,对象的该部分的高度估计的置信度等)。例如,可以使用一个或更多个第一颜色来表示与对象206(1)相对应的第一点304(1),该第一颜色指示在这些相应的点/位置处与对象206(1)相关联的不同的高度测量值。此外,可以使用一个或更多个第二颜色来表示与对象206(2)相对应的第一点304(2),该第二颜色指示在这些相应的点/位置处与对象206(2)相关联的不同的高度测量值。
返回参考图1的示例,过程100可以包括处理组件104,其使用一个或更多个算法传感器处理和/或其他经典的(例如,非学习的)方法来处理传感器数据106、感知数据108和/或融合感知数据110以便生成对象数据114。在一些示例中,对象数据114可以指示与传感器数据106、感知数据108和/或融合感知数据110中表示的一个或更多个对象相对应的一个或更多个属性。在一些示例中,对象数据114可以包括对象和/或其各自属性的列表。与对象相关联的这些属性可以包括但不限于对象的位置、与对象相关联的包围形状、对象的轨迹、与对象相关联的姿态/方向和/或对象的分类。与占用数据112相反,占用数据112可以是即时的或对应于单个时间或数据实例,而对象数据114可以是时间性的(temporal)并且在时间段内被跟踪。然而,在一些实施例中,占用数据还可以包括时间元素,以便随着时间对结果应用平滑处理,诸如通过使用例如有利于最近数据实例的加权方案组合多个当前和过去的输出。
在一些示例中,指示与对象相关联的属性的对象数据114可以视觉地被表示和/或被表示为列表。作为正在视觉地呈现的对象数据114的示例,图4是根据本公开的一些实施例的指示与示例环境204中的对象206相关联的属性的示例对象数据114的图示,该示例环境可以使用处理组件104采用的一个或更多个处理技术(例如,算法处理)来生成。在图4的示例中,所示的属性可以对应于图2的对象206(1)-206(4)。对象数据114可以包括或以其他方式指示一个或更多个包围形状402(1)-402(4)(也单数地称为“包围形状402”或复数地称为“多个包围形状402”)、一个或更多个轨迹404(1)-404(3)(也单数地称为“轨迹404”或复数地称为“多个轨迹404”)和/或一个或更多个位置406(1)-406(4)(也单数地称为“位置406”或复数地称为“多个位置406”)。包围形状402(1)、轨迹404(1)和位置406(1)可以对应于对象206(1)。类似地,包围形状402(2)和402(3)、轨迹404(2)和404(3)以及位置406(2)和位置406(3)可以分别对应于对象206(2)和206(3)。以及包围形状402(4)和位置406(4)可以对应于对象206(4)。在一些示例中,对象数据114可以进一步指示对象206的分类,诸如通过包围形状402(1)的颜色、阴影、形状等,其中标签指示分类等。
附加地或替代地,对象数据114可以非视觉地表示为对象列表。例如,该列表可以包括与对象206相对应的一个或更多个标识符,以及每个对象的每个标识符可以与一个或更多个列出的属性相关联。对于对象列表中的对象标识符,列出的属性可以包括但不限于对象的位置(例如,坐标)、对象的包围形状(例如,坐标或指示包围形状的大小或周长的其他测量值)、对象的轨迹(例如,速度、加速度和/或方向)、对象的姿态或取向(例如,以度为单位的对象航向)、对象的分类(例如,车辆、行人、骑自行车者、动物等)、对象是静态还是动态的指示等。
返回参考图1中所示的示例过程100,融合组件122可以从机器学习模型102获得占用数据112以及从处理组件104获得对象数据114,并生成更新的占用数据124和/或更新的对象数据126。在一些示例中,融合组件122可以至少基于占用数据112和对象数据114的至少一部分来生成更新的占用数据124。类似地,融合组件122可以至少基于对象数据114和占用数据112的至少一部分来生成更新的对象数据126。此外,在一些示例中,融合组件122可以直接从传感器116和/或感知组件118获得传感器数据106和/或感知数据108,以及还至少基于该数据的一部分来确定更新的占用数据124和/或更新的对象数据126。在示例中,更新的占用数据124可以表示占用数据112的细化和/或改进版本。同样地,更新的对象数据126可以表示对象数据114的细化和/或改进版本。
如上所述,在一些情况下,融合组件122可以使用对象数据114的至少一部分来确定更新的占用数据124。也就是说,例如,融合组件122可以至少基于对象数据114的一部分(例如,一些或全部)来确定更新的占用数据124。例如,融合组件122可以使用来自对象数据114的一个或更多个包围形状来细化占用数据112中包括的点和/或减小被遮挡区域。同样地,融合组件122可以使用占用数据112的至少一部分来确定更新的对象数据126。例如,融合组件122可以使用占用数据112中包括的一个或更多个点来细化对象数据114中的一个或更多个包围形状、姿态、分类等。以此方式,融合组件122可以有效地组合机器学习模型102和处理组件104的优点,同时减小和/或最小化它们的弱点,以生成一个或更多个改进的数据结构,这些数据结构可以传达与周围环境相关联的鲁棒信息,以便机器可以做出更安全和/或更明智的决策。
为了生成更新的占用数据124和/或更新的对象数据126,在一些示例中,融合组件122可以确定占用数据112与对象数据114之间的一个或更多个对应的对象。例如,融合组件122可以识别占用数据112中的与对象数据114中的第二对象相对应的第一对象,识别占用数据112中的与对象数据114中的第四对象相对应的第三对象,等等。例如,参照图2-图4,占用数据112的占用表示302可以包括指示与对象206(1)相关联的位置的第一点304(1),以及对象数据114可以指示包围形状402(1)和/或位置406(1)作为与对象206(1)相关联的属性,以及未示出的可能用于融合过程的其他有用信息。在一些示例中,融合组件122可以处理占用数据112和对象数据114以确定占用数据112(例如,占用表示302)和对象数据114中包括的特征之间的对齐。然后融合组件122可以至少基于该处理来确定第一点304(1)、包围形状402(1)和/或位置406(1)全部对应于对象206(1)。基于该对应关系,融合组件122可以将特征与对象206(1)相关联。在示例中,融合组件122可以重复该过程一次或更多次以确定占用数据中的哪些特征/对象对应于对象数据114中的特征/对象,和/或反之亦然。
此外,在一些示例中,作为生成更新的占用数据124和/或更新的对象数据126的一部分,融合组件122可以生成占用历史数据,该占用历史数据指示与环境中的对象相关联的一个或更多个先前位置。例如,图5是根据本公开的一些实施例的与示例环境204相关联的示例占用历史表示502的图示。占用历史表示502可以指示在整个时间段内与环境204中的对象206相对应的一个或更多个先前(previous)点504(1)-504(3)(也可以单数地或统称为“先前点504”)的各个位置。例如,先前点504(1)可以对应于对象206(1),先前点504(2)可以对应于对象206(2),以及先前点504(3)可以对应于对象206(3)。在一些示例中,先前点504可以从更新的占用数据124和/或更新的对象数据126的先前实例被确定。附加地或替代地,先前点504可以表示在该时间段内使用传感器116获得的一个或更多个在先样本,以及至少基于对象数据114进行细化/改进。在一些示例中,先前点504可以指示与对象206相关联的历史速度信息、与对象206相关联的历史高度信息、历史置信度信息等。
返回参考图1的示例,更新的占用数据124可以包括至少基于对象数据114的相对于占用数据112的一个或更多个附加点和/或像素。附加地或替代地,更新的占用数据124可以包括相对于占用数据112的一个或更多个改进的、改变的和/或细化的点和/或像素。也就是说,占用表示302中包括的原始点的一个或更多个值可以至少基于对象数据114从第一值改变为第二值。例如,基于对象数据114中对象的包围形状的位置,更新的占用数据/表示中的一个或更多个点/像素可以被修改以指示对象的更精确的位置、大小、形状等。
例如,图6是根据本公开的一些实施例的包括示例更新的占用表示602的图示。在一些示例中,可以包括在更新的占用数据124中的更新的占用表示602可以包括与环境204中的对象206相对应的一个或更多个经更新点604(1)-604(4)。此外,在一些示例中,更新的占用表示602可以包括与对象206相关联的包围形状402(1)-402(4)以及轨迹404(1)-404(3)。在一些示例中,来自对象数据114的这些特征可以叠加在更新的占用表示602上。在一些示例中,由于来自对象数据114的特征是时间性的并且随着时间而被跟踪,因此这些特征(例如,包围形状402、轨迹404和其他特征)可以帮助融合组件122平滑处理经更新点604并生成逼真的表示。
此外,更新的占用表示602可以包括原始占用表示302中未包括的一个或更多个特征。例如,机器学习模型102可能无意中错过检测环境中的各个对象,诸如包括交通锥的对象206(4)。因此,占用数据112和/或占用表示302可以省略与这些特征相对应的一个或更多个点。然而,由于融合组件122能够从传感器数据106、感知数据108和/或对象数据114中提取各种特征,诸如与对象206(4)相对应的包围形状402(4),因此融合组件122可以用这些特征中的一个或更多个特征来更新占用表示。此外,在一些情况下,融合组件122可以更新该更新的占用表示602以包括与对象206(4)相对应的经更新点604(4)。在一些示例中,经更新点604(4)可以被包括在传感器数据106和/或感知数据108中。
仍然参考图6,在一些示例中,更新的占用表示602可以更新环境的被遮挡部分(例如,由原始占用表示302的第二点306指示的那些)以指示关于这些区域的更多信息。例如,融合组件122可以生成更新的占用表示602以指示被遮挡部分是否被一个或更多个对象占用。例如,如果对象数据114指示被遮挡部分之一中的包围盒,或者如果传感器数据106和/或感知数据108指示一个或更多个这样的特征,则更新的占用表示602可以指示这些对象/特征的存在和/或位置。
现在返回参考图1的示例,在一些示例中,更新的对象数据126可以指示与对象206相关联的一个或更多个更新的(例如,细化的、改进的等)属性。在一些示例中,更新的对象数据126可以包括更新的对象列表。在一些情况下,这种更新的对象列表可以包括比对象数据114中包括的更多或更少的对象和/或属性(例如,如果占用数据112指示了附加对象则更多对象,如果占用数据112提供了指示先前未知的属性的信息则更多属性等)。附加地或替代地,更新的对象数据126中的更新的对象列表可以包括与对象相关联的一个或更多个更新的属性(例如,更准确地表示对象的更新的包围形状、基于从占用数据112中新检测到的对象的姿态的更新的轨迹等)。在一些示例中,至少基于占用数据112中包括的信息,更新的对象数据126的属性可以比对象数据114的属性更准确和/或更精细。
在一些示例中,过程100包括一个或更多个下游组件128,该下游组件128获得更新的占用数据124和/或更新的对象数据126中的一个或更多个。在一些示例中,下游组件128可以包括机器的一个或更多个系统,诸如被配置为创建、更新和/或终止与车辆周围的对象相关联的路线(track)的跟踪系统。虽然这些只是附加的下游组件128可以包括的内容的几个示例,但在其他示例中,其他下游组件128可以包括利用更新的占用数据124和/或更新的对象数据126来执行操作、任务和动作等的任何其他类型的组件、系统、算法等。
例如,更新的占用数据124和/或更新的对象数据126可以由自主或半自主驾驶软件栈(其可以由下游组件128表示)使用以由机器(和/或其他自我车辆类型)执行一个或更多个操作。例如,驾驶栈可以包括可用于生成、更新和/或定义世界模型的世界模型管理器。该世界模型管理器可以使用由驾驶栈的感知组件生成和从其接收的信息。感知组件可以包括障碍物感知器、路径感知器、等待感知器、地图感知器和/或其他感知组件。例如,世界模型可以至少部分地基于可以由障碍物感知器、路径感知器、等待感知器和/或地图感知器实时或近实时地感知的障碍物、路径和等待条件的可供性(affordance)被定义。世界模型管理器可以基于来自障碍物感知器、路径感知器、等待感知器、地图感知器和/或车辆的其他组件的新生成和/或接收的输入(例如,数据)来持续更新世界模型。例如,世界模型管理器和/或感知组件可以使用更新的占用数据124和/或更新的对象数据126来执行一个或更多个操作。
世界模型可用于帮助通知驾驶栈的规划组件、控制组件、避障组件和/或致动组件。障碍物感知器可以执行障碍物感知,该障碍物感知可以基于车辆被允许驾驶或能够驾驶的位置,以及车辆在不与车辆感测到的(例如,并且在更新的占用数据124和/或更新的对象数据126中表示的)障碍物(例如,对象,诸如结构、实体、车辆等)发生碰撞的情况下可以驾驶的速度。
路径感知器可以执行路径感知,诸如通过感知在特定情况下可用的标称(nominal)路径。在一些示例中,路径感知器可以进一步考虑车道变化以进行路径感知。车道图可以表示车辆可用的一个或更多个路径,以及可以像高速公路入口匝道上的单个路径一样简单。在一些示例中,车道图可以包括到期望车道的路径和/或可以指示高速公路(或其他道路类型)上的可用变化,或者可以包括附近的车道、车道变化、分叉、转弯、三叶式立交桥、合并和/或其他信息。
等待感知器可以负责根据规则、惯例和/或实际考虑来确定对车辆的约束。例如,规则、惯例和/或实际考虑可以与交通信号灯、多路停车、让行、合并、收费站、大门、警察或其他应急人员、道路工作人员、停靠的公共汽车或其他车辆、单向桥梁仲裁、渡轮入口等有关。在一些示例中,等待感知器可以负责确定对车辆的纵向约束,该纵向约束要求车辆等待或减速,直到某个条件成立。在一些示例中,等待条件是由潜在的障碍物引起的,诸如十字路口的交叉口交通,这些障碍物可能无法通过障碍物感知器的直接感测来感知(例如,通过使用来自传感器的传感器数据,因为障碍物可能被传感器的视野遮挡)。因此,等待感知器可以通过解决障碍物的危险来提供情境感知,这些障碍物并不总是通过可以被感知和/或学习的规则和惯例立即可感知的。因此,可以利用等待感知器来识别潜在的障碍物以及实施一个或更多个控制(例如,减速、停车等),这些控制可能无法仅依靠障碍物感知器来实现。
地图感知器可以包括可识别行为的机制,在某些示例中,用于确定在特定地区应用哪些惯例的具体示例。
规划组件可以包括路线规划器、车道规划器、行为规划器和行为选择器以及其他组件、特征和/或功能。路线规划器可以使用来自地图感知器、地图管理器和/或定位管理器的信息以及其他信息来生成可以由GNSS航路点(waypoint)(例如,GPS航路点)组成的规划路径。航路点可以代表车辆未来的特定距离,诸如城市街区的数量、公里/英里的数量、米/英尺的数量等,这些可以用作车道规划器的目标。
车道规划器可以使用车道图(例如,来自路径感知器的车道图,其可以至少部分地使用更新的占用数据124和/或更新的对象数据126生成)、车道图内的对象姿态(例如,根据定位管理器)和/或从路线规划器未来一定距离处的目标点和方向作为输入。目标点和方向可以被映射到车道图中的最佳匹配的可驾驶点和方向(例如,基于GNSS和/或指南针方向)。然后,可以在车道图上从车道图中的当前边开始执行图搜索算法以找到到目标点的最短路径。
行为规划器可以确定车辆的基本行为的可行性,诸如停留在车道上或向左或向右改变车道,以便可行的行为可以与车道规划器输出的最期望的行为相匹配。例如,如果确定期望行为不安全和/或不可用,则可以选择默认行为(例如,默认行为可以是在期望行为或变道不安全时留在车道上)。
控制组件可以尽可能地遵循已从规划组件的行为选择器接收到的以及在车辆的能力内的轨迹或路径(横向和纵向)接近。
避障组件可以帮助车辆避免与对象(例如,移动和静止的对象)碰撞。在一些示例中,避障组件可以独立于需要遵守交通规则和礼貌驾驶的车辆的组件、特征和/或功能被使用。在这些示例中,避障组件可以忽略交通法规、道路规则和礼貌驾驶规范以确保车辆与任何对象之间不会发生碰撞。因此,避障层可以是与道路层规则分离的层,以及避障层可以确保车辆仅从避障的角度执行安全动作。另一方面,道路层的规则可以确保车辆遵守交通法规和惯例,以及遵守合法和常规的通行权。
在一些示例中,过程100可以继续重复使用利用传感器116生成的新的传感器数据106,以便继续确定与机器周围的环境相关联的经更新信息。例如,如果传感器数据106与帧速率相关联,则过程100可以基于帧速率重复。对于第一示例,如果与传感器数据106(和/或其他传感器数据、感知数据等)相关联的帧速率为30帧每秒,则过程100可以每秒重复30次(例如,每帧)。对于第二示例,如果与第一传感器数据106(和/或其他传感器数据、感知数据等)相关联的帧速率再次为30帧每秒,则过程100可以每秒重复15次(例如,每隔一帧)。在一些示例中,如本文使用的时间实例可以对应于以帧速率的一个或更多个帧。例如,时间实例可以对应于一帧传感器数据、两帧传感器数据和三帧传感器数据等。此外,如本文使用的时间段可以对应于一个或更多个时间实例。例如,该时间段可以对应于一个时间实例、两个时间实例、三个时间实例等。
现在参考图7,图7是示出根据本公开的一些实施例的用于训练融合组件122的示例过程700的数据流图。如上所述,融合组件122可以使用一个或更多个经典方法(例如,算法过程)和/或一个或更多个学习模型(例如,机器学习、深度神经网络等)来生成更新的占用数据124和/或更新的对象数据126。因此,过程700可用于训练融合组件122的一个或更多个学习模型。
如图所示,融合组件122可以使用各种输入数据702(例如,训练输入数据)进行训练,这些输入数据可以包括传感器数据106、感知数据108、融合感知数据110、占用数据112和/或对象数据114中的一个或更多个。在一些示例中,输入数据702可以包括传感器数据106、感知数据108、融合感知数据110、占用数据112和/或对象数据114的一个或更多个实际(例如,先前生成和/或存储的)版本。附加地或替代地,输入数据702可以基于传感器数据106、感知数据108、融合感知数据110、占用数据112和/或对象数据114的实际版本。例如,输入数据702可以包括传感器数据106、感知数据108、融合感知数据110、占用数据112和/或对象数据114的一个或更多个经修改版本。
可以使用输入数据702以及对应的真值数据704来训练融合组件122。真值数据704可以包括注释、标签、掩码等。例如,在一些实施例中,真值数据704可以指示与环境内的一个或更多个对象相关联的参数706的实际值。例如,对于对象,参数706可以包括但不限于x坐标位置、y坐标位置、z坐标位置、高度、宽度、长度、x方向速度、y方向速度、取向、分类、点位置、包围形状位置、包围形状大小、对象分类和/或任何其他参数。在一些示例中,真值数据704可以在绘图程序(例如,注释程序)、计算机辅助设计(CAD)程序、标注程序、适合于生成真值数据704的另一类型程序中生成,和/或可以手动绘制。在任何示例中,真值数据704可以是合成产生的(例如,从计算机模型或渲染中生成)、真实产生的(例如,从真实世界数据中设计和产生的)、机器自动化的(例如,使用特征分析以及学习从数据中提取特征,然后生成标签)、人工注释的(例如,定义标签的位置的标注器或注释专家)和/或它们的组合(例如,人工识别折线的顶点,机器使用多边形光栅化器生成多边形)。
训练引擎708可以使用一个更或多个损失函数,其测量由融合组件122生成的融合输出数据710与真值数据704相比的损失(例如,误差)。融合输出数据710可以包括更新的占用数据124和/或更新的对象数据126。在一些示例中,可以使用任何类型的损失函数,诸如交叉熵损失、均方误差、平均绝对误差、平均偏差误差和/或其他损失函数类型。在一些示例中,不同的输出可以具有不同的损失函数。例如,x坐标位置可以包括第一损失,y坐标位置可以包括第二损失,z坐标位置可以包括第三损失,等等。在这些示例中,损失函数可以被组合以形成总损失,以及总损失可以用于训练融合组件122(例如,更新其参数)。在任何示例中,可以执行反向传递计算以递归地计算损失函数相对于训练参数的梯度。在一些示例中,融合组件122的权重和偏差可用于计算这些梯度。
现在参考图8和图9,本文描述的方法800和900的每个框包括可以使用硬件、固件和/或软件的任意组合执行的计算过程。例如,可以通过处理器执行存储在存储器中的指令来实施各种功能。这些方法还可以体现为存储在计算机存储介质上的计算机可用指令。这些方法可以由独立应用程序、服务或托管服务(独立地或与另一托管服务组合)或另一产品的插件提供,仅举几例。此外,方法800和900以示例的方式关于图1进行了描述。然而,这些方法可以附加地或替代地由任何一个系统或任何系统组合执行,包括但不限于本文所述的系统。
首先参考图8,图8是示出根据本公开的一些实施例的用于融合使用学习的和经典的传感器处理技术生成的不同信息的示例方法800的流程图。在框B802处,方法800可以包括:使用一个或更多个神经网络并至少基于使用一个或更多个第一传感器模态的一个或更多个第一传感器生成的第一传感器数据,生成指示与环境中的一个或更多个第一对象相关联的一个或更多个第一位置的第一数据。例如,机器学习模型102可以使用神经网络并至少基于使用机器的第一传感器(例如,传感器116)生成的第一传感器数据(例如,传感器数据106)来生成指示与环境中的第一对象相关联的第一位置的第一数据(例如,占用数据112)。
在框B804处,方法800可以包括:至少基于使用一个或更多个第二传感器模态的一个或更多个第二传感器生成的第二传感器数据,生成指示与环境中的一个或更多个第二对象相关联的一个或更多个第一属性的第二数据。例如,处理组件104可以至少基于使用机器的第二传感器(例如,传感器116)生成的第二传感器数据(例如,传感器数据106),生成指示与环境中的第二对象相关联的第一属性的第二数据(例如,对象数据114)。在一些示例中,第二传感器模态可以与第一传感器模态相同或不同,和/或第一传感器可以与第二传感器相同或不同。
在框B806A处,方法800可以包括:生成包括指示与一个或更多个第一对象相关联的一个或更多个第二位置的第一数据的经更新版本的第三数据。例如,融合组件122可以生成第三数据(例如,更新的占用数据124),该第三数据包括指示与第一对象相关联的第二位置的第一数据(例如,占用数据112)的经更新版本。
替代地或附加地,在框B806B处,方法800可以包括:生成,包括指示与一个或更多个第二对象相关联的一个或更多个第二属性的第二数据的经更新版本的第三数据。例如,融合组件122可以生成第三数据(例如,更新的对象数据126),该第三数据包括指示与第二对象相关联的第二属性的第二数据(例如,对象数据114)的经更新版本。
在框B808,方法800可以包括:至少基于第三数据执行关于机器控制的一个或更多个操作。例如,下游组件128可以包括机器的一个或更多个组件,诸如用于规划机器的轨迹的规划组件、用于确定机器相对于其操作环境的位置的定位组件、用于预测环境中的对象的行为的预测组件等。下游组件128可以使机器至少基于第三数据执行一个或更多个操作。例如,下游组件128可以使机器沿着特定轨迹穿过环境。
现在参考图9,图9是示出根据本公开的一些实施例的用于融合使用不同处理技术获得的信息的另一示例方法900的流程图。在框B902处,方法900可以包括:在时间实例获得与环境中的一个或更多个第一对象相关联的第一信息,该第一信息是至少基于使用一个或更多个第一传感器获得的第一传感器数据生成的。例如,融合组件122可以获得在该时间实例处与环境中的第一对象相关联的第一信息(例如,占用数据112)。附加地,该第一信息(例如,占用数据112)可以至少基于从第一传感器(例如,传感器116)获得的第一传感器数据(例如,传感器数据106)来生成。
在框B904处,方法900可以包括:获得与环境中的一个或更多个第二对象相关联的第二信息,该第二信息是至少基于在至少部分地先于该时间实例的时间段内使用一个或更多个第二传感器获得的第二传感器数据确定的。例如,融合组件122可以获得与环境中的第二对象相关联的第二信息(例如,对象数据114)。此外,该第二信息(例如,对象数据114)可以是至少基于在该时间段内从第二传感器(例如,传感器116)获得的第二传感器数据(例如,传感器数据106)确定的。
在框B906处,方法900可以包括:至少基于第二信息生成第一信息的经更新版本,第一信息的经更新版本至少指示与一个或更多个第一对象相关联的一个或更多个经更新位置。例如,融合组件122可以至少基于第二信息(例如,对象数据114)来生成第一信息(例如,占用数据112)的经更新版本(例如,更新的占用数据124)。附加地,第一信息(例如,占用数据112)的经更新版本(例如,更新的占用数据124)可以至少指示与第一对象相关联的经更新位置。
在框B908处,方法900可以包括:至少基于第一信息生成第二信息的经更新版本,第二信息的经更新版本至少指示与一个或更多个第二对象相关联的一个或更多个经更新属性。例如,融合组件122可以至少基于第一信息(例如,占用数据112)来生成第二信息(例如,对象数据114)的经更新版本(例如,更新的对象数据126)。此外,第二信息(例如,对象数据114)的经更新版本(例如,更新的对象数据126)可以至少指示与第二对象相关联的经更新属性。
示例自主车辆
图10A是根据本公开的一些实施例的示例自主车辆1000的图示。自主车辆1000(可替代地,在本文称为“车辆1000”)可以包括但不限于,客运车辆,如小汽车、卡车、公共汽车、第一响应车辆、摆渡车、电动或机动自行车、摩托车、消防车、警用车辆,救护车、船、施工车辆、水下船只、机器人车辆、无人机、飞机、与拖车相连的车辆(例如,用于拖运货物的半牵引拖车)和/或另一类型的车辆(例如,无人驾驶的和/或容纳一个或更多个乘客的车辆)。自主车辆通常按照美国运输部的一个部门——国家公路交通安全管理局(NHTSA)以及汽车工程师协会(SAE)“Taxonomy and Definitions for Terms Related to Driving AutomationSystems for On-Road Motor Vehicles”(2018年6月15日发布的标准No.J3016-201806,2016年9月30日发布的标准No.J3016-201609,以及该标准的先前和未来的版本)定义的自动化级别进行描述。车辆1000可能够实现符合自主驾驶级别的3级-5级中的一个或更多个的功能。车辆1000可以能够实现自主驾驶级别中的1级-5级中的一个或更多个功能。例如,取决于实施例,车辆1000可能够实现驾驶员进行辅助(1级)、部分自动化(2级)、条件自动化(3级)、高自动化(4级)和/或全自动化(5级)。本文使用的术语“自主”可以包括车辆1000或其他机器的任何和/或所有类型的自主性,例如完全自主、高度自主、有条件自主、部分自主、提供辅助自主、半自主、主要自主或其他指定。
车辆1000可以包括诸如底盘、车身、车轮(例如2个、4个、6个、8个、18个等)、轮胎、车轴之类别的部件以及车辆的其他部件。车辆1000可以包括推进系统1050,例如内燃机、混合动力发电厂、全电动发动机和/或另一种推进系统类型。推进系统1050可以连接到可以包括变速器的车辆1000的传动系以便实现车辆1000的推进。可以响应于接收到来自油门/加速器1052的标志而控制推进系统1050。
可以包括方向盘的转向(steering)系统1054可以用来在推进系统1050操作时(例如在车辆运动时)使车辆1000转向(例如沿着希望的路径或路线)。转向系统1054可以接收来自转向致动器1056的标志。对于全自动(5级)功能而言,方向盘可以是可选的。
制动传感器系统1046可以用来响应于接收到来自制动致动器1048和/或制动传感器的标志而操作车辆制动器。
可以包括一个或更多个片上系统(SoC)1004(图10C)和/或一个或更多个GPU的一个或更多个控制器1036可以向车辆1000的一个或更多个部件和/或系统提供(例如表示命令的)标志。例如,一个或更多个控制器可以发送经由一个或更多个制动致动器1048操作车辆制动器、经由一个或更多个转向致动器1056操作转向系统1054、经由一个或更多个油门/加速器1052操作推进系统1050的标志。一个或更多个控制器1036可以包括一个或更多个板载(例如集成)计算设备(例如超级计算机),所述计算设备处理传感器标志并且输出操作命令(例如表示命令的标志),以实现自主驾驶和/或辅助人类别驾驶员驾驶车辆1000。一个或更多个控制器1036可以包括用于自主驾驶功能的第一控制器1036、用于功能性安全功能的第二控制器1036、用于人工智能功能(例如计算机视觉)的第三控制器1036、用于信息娱乐功能的第四控制器1036、用于紧急情况下的冗余的第五控制器1036和/或其他控制器。在一些示例中,单个控制器1036可以处理上述功能中的两个或更多,两个或更多控制器1036可以处理单个功能,和/或其任意组合。
一个或更多个控制器1036可以响应于接收自一个或更多个传感器的传感器数据(例如传感器输入),提供用于控制车辆1000的一个或更多个部件和/或系统的标志。传感器数据可以接收自例如且不限于全球导航卫星系统(“GNSS”)传感器1058(例如全球定位系统传感器)、RADAR传感器1060、超声传感器1062、LIDAR传感器1064、惯性测量单元(IMU)传感器1066(例如加速度计、陀螺器、磁罗盘、磁力计等)、麦克风1096、立体相机1068、广角相机1070(例如鱼眼相机)、红外相机1072、环绕相机1074(例如360度相机)、远程和/或中程相机1098、速度传感器1044(例如用于测量车辆1000的速率)、振动传感器1042、转向传感器1040、制动传感器(例如作为制动传感器系统1046的部分)和/或其他传感器类型。
控制器1036中的一个或更多个可以接收来自车辆1000的器表组1032的输入(例如由输入数据表示),并且经由人机接口(HMI)显示器1034、听觉标志器、扬声器和/或经由车辆1000的其他部件提供输出(例如输出数据、显示数据等表示的)。这些输出可以包括诸如车辆速度、速率、时间、地图数据(例如图10C的高清晰度(“HD”)地图1022)、位置数据(例如,车辆1000例如在地图上的位置)、方向、其他车辆的位置(例如占用网格)之类别的信息,如控制器1036所感知的关于对象和对象状态的信息等等。例如,HMI显示器1034可以显示关于一个或更多个对象(例如街道指示牌、警示牌、交通灯变化等)的存在性的信息和/或关于车辆已经做出、正在做出或者将会做出的驾驶机动的信息(例如现在变道、两英里后离开34B,等等)。
车辆1000还包括网络接口1024,其可以使用一个或更多个无线天线1026和/或调制解调器通过一个或更多个网络通信。例如,网络接口1024可能够通过长期演进(“LTE”)、宽带码分多址(“WCDMA”)、通用移动通信系统(“UMTS”)、全球移动通信系统(“GSM”)、IMT-CDMA多载波(“CDMA2000”)等通信。一个或更多个无线天线1026也可以使用诸如蓝牙、蓝牙低能耗(“LE”)、Z波、ZigBee等等之类别的一个或更多个局域网和/或诸如LoRaWAN、SigFox等等之类别的一个或更多个低功率广域网(LPWAN)实现环境中的对象(例如车辆、移动设备等等)之间的通信。
图10B为根据本公开一些实施例的用于图10A的示例自主车辆1000的相机位置和视场的示例。相机和各自的视场是一个示例实施例,并不意图是限制性的。例如,可以包括附加的和/或可替换的相机,和/或这些相机可以位于车辆1000上的不同位置。
用于相机的相机类型可以包括但不限于可以适于与车辆800的部件和/或系统一起使用的数字相机。所述相机可以在汽车安全完整性级别(ASIL)B下和/或在另一个ASIL下操作。相机类型可以具有任何图像捕获率,例如60帧每秒(fps)、120fps、240fps等等,这取决于实施例。相机可能够使用滚动快门、全局快门、另一种类型的快门或者其组合。在一些示例中,滤色器阵列可以包括红白白白(RCCC)滤色器阵列、红白白蓝(RCCB)滤色器阵列、红蓝绿白(RBGC)滤色器阵列、Foveon X3滤色器阵列、拜耳传感器(RGGB)滤色器阵列、单色传感器滤色器阵列和/或另一种类型的滤色器阵列。在一些实施例中,诸如具有RCCC、RCCB和/或RBGC滤色器阵列的相机之类别的清晰像素相机可以用在提高光敏感度的努力中。
在一些示例中,所述相机中的一个或更多个可以用来执行高级驾驶辅助系统(ADAS)功能(例如作为冗余或故障安全设计的部分)。例如,可以安装多功能单目相机以提供包括车道偏离警告、交通指示牌辅助和智能前照灯控制在内的功能。所述相机中的一个或更多个(例如全部相机)可以同时记录和提供图像数据(例如视频)。
所述相机中的一个或更多个可以安装在诸如定制设计的(三维(“3D”)打印的)组件之类别的安装组件中,以便切断可能干扰相机的图像数据捕获能力的杂散光和来自汽车内的反射(例如挡风玻璃镜中反射的来自器表板的反射)。关于翼镜安装组件,翼镜组件可以是定制3D打印的,使得相机安装板匹配翼镜的形状。在一些示例中,一个或更多个相机可以集成到翼镜中。对于侧视相机而言,一个或更多个相机也可以集成到驾驶室每个拐角的四根柱子内。
具有包括车辆1000前面的环境部分的视场的相机(例如前置相机)可以用于环视,以帮助识别前向路径和障碍,以及在一个或更多个控制器1036和/或控制SoC的帮助下辅助提供对于生成占用网格和/或确定优选车辆路径至关重要的信息。前置相机可以用来执行许多与LIDAR相同的ADAS功能,包括紧急制动、行人检测和碰撞避免。前置相机也可以用于ADAS功能和系统,包括车道偏离警告(“LDW”)、自主巡航控制(“ACC”),和/或诸如交通指示牌识别之类别的其他功能。
各种各样的相机可以用于前置配置中,包括例如包括互补金属氧化物半导体(“CMOS”)彩色成像器在内的单目相机平台。另一个示例可以是广角相机1070,其可以用来感知从周边进入视场的对象(例如行人、十字路口交通或者自行车)。尽管图10B中图示出仅仅一个广角相机,但是在车辆1000上可以存在任意数量(包括零)的广角相机1070。此外,任意数量的远程相机1098(例如长视立体相机对)可以用于基于深度的对象检测,尤其是用于尚未针对其训练神经网络的对象。远程相机1098也可以用于对象检测和分类以及基本的对象追踪。
任意数量的立体相机1068也可以包括在前置配置中。在至少一个实施例中,一个或更多个立体相机1068可以包括集成控制单元,该单元包括可扩展处理单元,其可以提供在单个芯片上具有集成的控制器局域网(“CAN”)或以太网接口的多核微处理器和可编程逻辑(“FPGA”)。这样的单元可以用来生成车辆环境的3D地图,包括针对图像中的所有点的距离估计。可替代的立体相机1068可以包括紧凑型立体视觉传感器,其可以包括两个相机镜头(左右各一个)以及可以测量从车辆到目标对象的距离并且使用生成的信息(例如元数据)激活自主紧急制动和车道偏离警告功能的图像处理芯片。除了本文所描述的那些之外或者可替代地,可以使用其他类型的立体相机1068。
具有包括车辆1000的侧面的环境部分的视场的相机(例如侧视相机)可以用于环视,提供用来创建和更新占用网格以及生成侧撞击碰撞警告的信息。例如,环绕相机1074(例如如图10B中所示的四个环绕相机1074)可以置于车辆1000上。环绕相机1074可以包括广角相机1070、鱼眼相机、360度相机和/或类别似物。四个示例,四个鱼眼相机可以置于车辆的前面、后面和侧面。在一种可替代的布置中,车辆可以使用三个环绕相机1074(例如左边、右边和后面),并且可以利用一个或更多个其他相机(例如前向相机)作为第四环视相机。
具有包括车辆1000的后面的环境部分的视场的相机(例如后视相机)可以用于辅助停车、环视、后面碰撞警告以及创建和更新占用网格。可以使用各种各样的相机,包括但不限于也适合作为如本文所描述的前置相机(例如远程和/或中程相机1098、立体相机1068、红外相机1072等等)的相机。
图10C为根据本公开一些实施例的用于图10A的示例自主车辆1000的示例系统架构的框图。应当理解,这种布置和本文描述的其他布置仅仅作为示例而被阐述。除了所示的那些之外或者代替它们的是,可以使用其他的布置和元素(例如机器、接口、功能、顺序、功能分组等等),并且一些元素可以完全省略。进一步,许多本文描述的元素是功能实体,其可以实现为分立的或分布式部件或者结合其他部件实现,以及以任何适当的组合和位置实现。本文描述为由实体执行的各个功能可以通过硬件、固件和/或软件实现。例如,各个功能可以通过处理器执行存储在内存中的指令而实现。
图10C中车辆1000的部件、特征和系统中的每一个被图示为经由总线1002连接。总线1002可以包括控制器区域网络(CAN)数据接口(可替代地,本文称为“CAN总线”)。CAN可以是车辆1000内部的网络,用来辅助控制车辆1000的各种特征和功能,例如制动器、加速、制动、转向、挡风玻璃雨刷等等的驾驶。CAN总线可以被配置为具有数十或者甚至数百个节点,每个节点具有其自己的唯一标识符(例如CAN ID)。可以读取CAN总线以找到方向盘角度、地速、每分钟发动机转速(RPM)、按钮位置和/或其他车辆状态指示符。CAN总线可以是ASIL B兼容的。
尽管这里将总线1002描述为CAN总线,但是这并不意图是限制性的。例如,除了CAN总线之外或者可替代地,可以使用FlexRay和/或以太网。此外,尽管用单条线来表示总线1002,但是这并不意图是限制性的。例如,可以存在任意数量的总线1002,其可以包括一个或更多条CAN总线、一个或更多条FlexRay总线、一个或更多条以太网总线和/或一个或更多条使用不同协议的其他类型的总线。在一些示例中,两条或更多总线1002可以用来执行不同的功能,和/或可以用于冗余。例如,第一总线1002可以用于碰撞避免功能,并且第二总线1002可以用于驾驶控制。在任何示例中,每条总线1002可以与车辆1000的任何部件通信,并且两条或更多总线1002可以与相同的部件通信。在一些示例中,车辆内的每个SoC 1004、每个控制器1036和/或每个计算机可以有权访问相同的输入数据(例如来自车辆1000的传感器的输入),并且可以连接到诸如CAN总线之类别的公共总线。
车辆1000可以包括一个或更多个控制器1036,例如本文关于图10A所描述的那些控制器。控制器1036可以用于各种各样的功能。控制器1036可以耦合到车辆1000的任何其他不同的部件和系统,并且可以用于车辆1000的控制、车辆1000的人工智能、用于车辆1000的信息娱乐和/或类别似物。
车辆1000可以包括一个或更多个片上系统(SoC)1004。SoC 1004可以包括CPU1006、GPU 1008、处理器1010、高速缓存1012、加速器1014、数据存储1016和/或未图示出的其他部件和特征。在各种各样的平台和系统中,SoC 1004可以用来控制车辆1000。例如,一个或更多个SoC 1004可以在系统(例如车辆1000的系统)中与HD地图1022结合,所述HD地图可以经由网络接口1024从一个或更多个服务器(例如图10D的一个或更多个服务器1078)获得地图刷新和/或更新。
CPU 1006可以包括CPU簇或者CPU复合体(可替代地,本文称为“CCPLEX”)。CPU1006可以包括多个核和/或L2高速缓存。例如,在一些实施例中,CPU 1006在一致性多处理器配置中可以包括八个核。在一些实施例中,CPU 1006可以包括四个双核簇,其中每个簇具有专用的L2高速缓存(例如2MB L2高速缓存)。CPU 1006(例如CCPLEX)可以被配置为支持同时簇操作,使得CPU 1006的簇的任意组合能够在任何给定时间是活动的。
CPU 1006可以实现包括以下特征中的一个或更多个的功率管理能力:各硬件块在空闲时可以自动进行时钟门控以节省动态功率;由于WFI/WFE指令的执行,每个核时钟可以在该核不主动地执行指令时进行门控;每个核可以独立地进行功率门控;当所有核都进行时钟门控或者功率门控时,可以独立地对每个核簇进行时钟门控;和/或当所有核都进行功率门控时,可以独立地对每个核簇进行功率门控。CPU 1006可以进一步实现用于管理功率状态的增强算法,其中指定允许的功率状态和期望的唤醒时间,并且硬件/微代码为所述核、簇和CCPLEX确定要进入的最佳的功率状态。处理核可以在软件中支持简化的功率状态进入序列,该工作被卸载到微代码。
GPU 1008可以包括集成的GPU(可替代地,本文称为“iGPU”)。GPU 1008可以是可编程的,并且对于并行工作负载而言是高效的。在一些示例中,GPU 1008可以使用增强张量指令集。GPU 1008可以包括一个或更多个流式微处理器,其中每个流式微处理器可以包括L1高速缓存(例如具有至少96KB存储能力的L1高速缓存),并且这些流式微处理器中的两个或更多可以共享L2高速缓存(例如具有512KB存储能力的L2高速缓存)。在一些实施例中,GPU1008可以包括至少八个流式微处理器。GPU 1008可以使用计算应用编程接口(API)。此外,GPU 1008可以使用一个或更多个并行计算平台和/或编程模型(例如NVIDIA的CUDA)。
在汽车和嵌入式使用的情况下,可以对GPU 1008进行功率优化以实现最佳性能。例如,可以在鳍式场效应晶体管(FinFET)上制造GPU 1008。然而,这并不意图是限制性的,并且GPU 1008可以使用其他半导体制造工艺来制造。每个流式微处理器可以合并划分成多个块的若干混合精度处理核。例如且非限制性地,可以将64个PF32核和32个PF64核划分成四个处理块。在这样的示例中,每个处理块可以分配16个FP32核、8个FP64核、16个INT32核、用于深层学习矩阵算术的两个混合精度NVIDIA张量核、L0指令高速缓存、线程束(warp)调度器、分派单元和/或64KB寄存器文件。此外,流式微处理器可以包括独立的并行整数和浮点数据路径,以利用计算和寻址计算的混合提供工作负载的高效执行。流式微处理器可以包括独立线程调度能力,以允许实现并行线程之间的更细粒度的同步和协作。流式微处理器可以包括组合的L1数据高速缓存和共享内存单元,以便在简化编程的同时提高性能。
GPU 1008可以包括在一些示例中提供大约900GB/s的峰值内存带宽的高带宽内存(HBM)和/或16GB HBM2内存子系统。在一些示例中,除了HBM内存之外或者可替代地,可以使用同步图形随机存取存储器(SGRAM),例如第五代图形双倍数据速率同步随机存取存储器(GDDR5)。
GPU 1008可以包括统一内存技术,其包括访问计数器以允许内存页面更精确地迁移到最频繁地访问它们的处理器,从而提高处理器之间共享的内存范围的效率。在一些示例中,地址转换服务(ATS)支持可以用来允许GPU 1008直接访问CPU 1006页表。在这样的示例中,当GPU 1008内存管理单元(MMU)经历遗漏时,可以将地址转换请求传输至CPU 1006。作为响应,CPU 1006可以在其页表中寻找用于地址的虚拟-物理映射,并且将转换传输回GPU 1008。这样,统一内存技术可以允许单个统一虚拟地址空间用于CPU 1006和GPU 1008二者的内存,从而简化了GPU 1008编程和将应用程序移(port)到GPU 1008。
此外,GPU 1008可以包括访问计数器,其可以追踪GPU 1008访问其他处理器的内存的频率。访问计数器可以帮助确保内存页面移至最频繁地访问这些页面的处理器的物理内存。
SoC 1004可以包括任意数量的高速缓存1012,包括本文描述的那些高速缓存。例如,高速缓存1012可以包括CPU 1006和GPU 1008二者可用的L3高速缓存(例如,其连接到CPU 1006和GPU 1008二者)。高速缓存1012可以包括回写高速缓存,其可以例如通过使用高速缓存一致性协议(例如MEI、MESI、MSI等)追踪行的状态。取决于实施例,L3高速缓存可以包括4MB或者更多,但是也可以使用更小的高速缓存大小。
SoC 1004可以包括算术逻辑单元(ALU),所述算术逻辑单元可以在执行关于车辆1000的各种任务或操作中的任何任务或操作(如处理DNN)的处理中被利用。此外,SoC 1004可以包括用于在系统内执行数学运算的浮点单元(FPU)(或其他数学协处理器或数字协处理器类型)。例如,SoC104可以包括集成为CPU 1006和/或GPU 1008内的执行单元的一个或更多个FPU。
SoC 1004可以包括一个或更多个加速器1014(例如硬件加速器、软件加速器或者其组合)。例如,SoC 1004可以包括硬件加速器簇,其可以包括优化的硬件加速器和/或大型片上内存。该大型片上内存(例如4MB SRAM)可以使得硬件加速器簇能够加速神经网络和其他计算。硬件加速器簇可以用来次要GPU 1008,并且卸载GPU 1008的一些任务(例如释放GPU 1008的更多周期以用于执行其他任务)。作为一个示例,加速器1014可以用于足够稳定以易于控制加速的有针对性的工作负载(例如感知、卷积神经网络(CNN)等等)。当在本文中使用时,术语“CNN”可以包括所有类型的CNN,包括基于区域的或者区域卷积神经网络(RCNN)和快速RCNN(例如用于对象检测)。
加速器1014(例如硬件加速器簇)可以包括深度学习加速器(DLA)。DLA可以包括可以被配置成为深度学习应用和推理提供额外的每秒10万亿次操作的一个或更多个张量处理单元(TPU)。TPU可以是被配置为执行图像处理功能(例如用于CNN、RCNN等)且针对执行图像处理功能而优化的加速器。DLA可以进一步针对特定的一组神经网络类型和浮点运算以及推理进行优化。DLA的设计可以比通用GPU提供每毫米更高的性能,并且远远超过CPU的性能。TPU可以执行若干功能,包括单实例卷积函数,支持例如用于特征和权重二者的INT8、INT16和FP16数据类型,以及后处理器功能。
DLA可以在处理的或者未处理的数据上针对各种各样的功能中的任何功能快速且高效地执行神经网络,尤其是CNN,例如且不限于:用于使用来自相机传感器的数据进行对象识别和检测的CNN;用于使用来自相机传感器的数据进行距离估计的CNN;用于使用来自麦克风的数据进行应急车辆检测和识别与检测的CNN;用于使用来自相机传感器的数据进行面部识别和车主识别的CNN;和/或用于安全和/或安全相关事件的CNN。
DLA可以执行GPU 1008的任何功能,并且通过使用推理加速器,例如,设计者可以使DLA或GPU 1008针对任何功能。例如,设计者可以将CNN的处理和浮点运算聚焦在DLA上,并且将其他功能留给GPU 1008和/或其他加速器1014。
加速器1014(例如硬件加速器簇)可以包括可编程视觉加速器(PVA),其在本文中可以可替代地称为计算机视觉加速器。PVA可以被设计和配置为加速用于高级驾驶辅助系统(ADAS)、自主驾驶和/或增强现实(AR)和/或虚拟现实(VR)应用的计算机视觉算法。PVA可以提供性能与灵活性之间的平衡。例如,每个PVA可以包括例如且不限于任意数量的精简指令集计算机(RISC)核、直接内存访问(DMA)和/或任意数量的向量处理器。
RISC核可以与图像传感器(例如本文描述的任何相机的图像传感器)、图像标志处理器和/或类别似物交互。这些RISC核中的每一个可以包括任意数量的内存。取决于实施例,RISC核可以使用若干协议中的任何协议。在一些示例中,RISC核可以执行实时操作系统(RTOS)。RISC核可以使用一个或更多个集成电路设备、专用集成电路(ASIC)和/或存储设备实现。例如,RISC核可以包括指令高速缓存和/或紧密耦合的RAM。
DMA可以使得PVA的部件能够独立于CPU 1006访问系统内存。DMA可以支持用来向PVA提供优化的任意数量的特征,包括但不限于支持多维寻址和/或循环寻址。在一些示例中,DMA可以支持高达六个或更多维度的寻址,其可以包括块宽度、块高度、块深度、水平块步进、竖直块步进和/或深度步进。
向量处理器可以是可编程处理器,其可以被设计为高效且灵活地执行用于计算机视觉算法的编程并且提供标志处理能力。在一些示例中,PVA可以包括PVA核和两个向量处理子系统分区。PVA核可以包括处理器子系统、一个或更多个DMA引擎(例如两个DMA引擎)和/或其他外围设备。向量处理子系统可以作为PVA的主处理引擎而操作,并且可以包括向量处理单元(VPU)、指令高速缓存和/或向量内存(例如VMEM)。VPU核可以包括数字标志处理器,诸如例如单指令多数据(SIMD)、超长指令字(VLIW)数字标志处理器。SIMD和VLIW的组合可以增强吞吐量和速率。
向量处理器中的每一个可以包括指令高速缓存并且可以耦合到专用内存。结果,在一些示例中,向量处理器中的每一个可以被配置为独立于其他向量处理器执行。在其他示例中,包括在特定PVA中的向量处理器可以被配置为采用数据并行化。例如,在一些实施例中,包括在单个PVA中的多个向量处理器可以执行相同的计算机视觉算法,但是在图像的不同区域上执行。在其他示例中,包括在特定PVA中的向量处理器可以在相同的图像上同时执行不同的计算机视觉算法,或者甚至在序列图像或者图像的部分上执行不同的算法。除其他的以外,任意数量的PVA可以包括在硬件加速器簇中,并且任意数量的向量处理器可以包括在这些PVA中的每一个中。此外,PVA可以包括附加的纠错码(ECC)内存,以增强总体系统安全性。
加速器1014(例如硬件加速器簇)可以包括片上计算机视觉网络和SRAM,以提供用于加速器1014的高带宽、低延迟SRAM。在一些示例中,片上内存可以包括由例如且不限于八个现场可配置的内存块组成的至少4MB SRAM,其可以由PVA和DLA二者访问。每对内存块可以包括高级外围总线(APB)接口、配置电路系统、控制器和复用器。可以使用任何类型的内存。PVA和DLA可以经由向PVA和DLA提供高速内存访问的主干(backbone)访问内存。主干可以包括(例如使用APB)将PVA和DLA互连到内存的片上计算机视觉网络。
片上计算机视觉网络可以包括在传输任何控制标志/地址/数据之前确定PVA和DLA二者都提供就绪且有效的标志的接口。这样的接口可以提供用于传输控制标志/地址/数据的单独相位和单独信道,以及用于连续数据传输的突发式通信。这种类型的接口可以符合ISO 26262或者IEC 615010标准,但是也可以使用其他标准和协议。
在一些示例中,SoC 1004可以包括例如在2018年8月10日提交的美国专利申请No.16/101,232中描述的实时光线追踪硬件加速器。该实时光线追踪硬件加速器可以用来快速且高效地确定(例如世界模型内的)对象的位置和范围,以便生成实时可视化仿真,以用于RADAR标志解释、用于声音传播合成和/或分析、用于SONAR系统仿真、用于一般波传播仿真、用于为了定位和/或其他功能的目的与LIDAR数据相比较和/或用于其他用途。在一些实施例中,一个或更多个树遍历单元(TTU)可以用于执行一个或更多个光线跟踪相关操作。
加速器1014(例如硬件加速器簇)具有广泛的自主驾驶用途。PVA可以是可编程视觉加速器,其可以用于ADAS和自主车辆中的关键处理阶段。PVA的能力是需要可预测处理、低功率和低延迟的算法域的良好匹配。换言之,PVA在半密集或者密集规则计算上,甚至在需要具有低延迟和低功率的可预测运行时间的小数据集上都表现良好。因此,在用于自主车辆的平台的背景下,PVA被设计为运行经典计算机视觉算法,因为它们在对象检测和整数数学运算方面很有效。
例如,根据该技术的一个实施例,PVA用来执行计算机立体视觉。在一些示例中,可以使用基于半全局匹配的算法,但是这并不意图是限制性的。许多用于3-5级自主驾驶的应用都需要即时运动估计/立体匹配(例如来自运动的结构、行人识别、车道检测等等)。PVA可以在来自两个单目相机的输入上执行计算机立体视觉功能。
在一些示例中,PVA可以用来执行密集的光流。根据过程原始RADAR数据(例如使用4D快速傅立叶变换)以提供经处理的RADAR。在其他示例中,PVA用于飞行时间深度处理,其例如通过处理原始飞行时间数据以提供经处理的飞行时间数据。
DLA可以用来运行任何类型的网络以增强控制和驾驶安全性,包括例如输出用于每个对象检测的置信度度量的神经网络。这样的置信度值可以解释为概率,或者解释为提供每个检测与其他检测相比的相对“权重”。该置信度值使得系统能够做出关于哪些检测应当被认为是真阳性检测而不是假阳性检测的进一步决定。例如,系统可以为置信度设置阈值,并且仅仅将超过阈值的检测看作真阳性检测。在自动紧急制动(AEB)系统中,假阳性检测会使得车辆自动地执行紧急制动,这显然是不希望的。因此,只有最确信的检测才应当被认为是AEB的触发因素。DLA可以运行用于回归置信度值的神经网络。该神经网络可以将至少一些参数子集作为其输入,例如边界框维度,(例如从另一个子系统)获得的地平面估计,与车辆1000取向、距离相关的惯性测量单元(IMU)传感器1066输出,从神经网络和/或其他传感器(例如LIDAR传感器1064或RADAR传感器1060)获得的对象的3D位置估计等。
SoC 1004可以包括一个或更多个数据存储1016(例如内存)。数据存储1016可以是SoC 1004的片上内存,其可以存储要在GPU和/或DLA上执行的神经网络。在一些示例中,为了冗余和安全,数据存储1016可以容量足够大以存储神经网络的多个实例。数据存储1012可以包括L2或L3高速缓存1012。对数据存储1016的引用可以包括对与如本文所描述的PVA、DLA和/或其他加速器1014关联的内存的引用。
SoC 1004可以包括一个或更多个处理器1010(例如嵌入式处理器)。处理器1010可以包括启动和功率管理处理器,其可以是用于处理启动功率和管理功能以及有关安全实施的专用处理器和子系统。启动和功率管理处理器可以是SoC 1004启动序列的一部分,并且可以提供运行时间功率管理服务。启动功率和管理处理器可以提供时钟和电压编程、辅助系统低功率状态转换、SoC 1004热和温度传感器管理和/或SoC 1004功率状态管理。每个温度传感器可以实现为环形振荡器,其输出频率与温度成比例,并且SoC 1004可以使用环形振荡器检测CPU 1006、GPU 1008和/或加速器1014的温度。如果确定温度超过阈值,那么启动和功率管理处理器可以进入温度故障例程并且将SoC 1004置于较低功率状态和/或将车辆1000置于司机安全停车模式(例如使车辆1000安全停车)。
处理器1010可以还包括可以用作音频处理引擎的一组嵌入式处理器。音频处理引擎可以是一种音频子系统,其允许实现对于通过多个接口的多声道音频的完全硬件支持以及一系列广泛而灵活的音频I/O接口。在一些示例中,音频处理引擎是具有带有专用RAM的数字标志处理器的专用处理器核。
处理器1010可以还包括始终在处理器上的引擎,其可以提供必要的硬件特征以支持低功率传感器管理和唤醒用例。该始终在处理器上的引擎可以包括处理器核、紧密耦合的RAM、支持外围设备(例如定时器和中断控制器)、各种I/O控制器外围设备和路由逻辑。
处理器1010可以还包括安全簇引擎,其包括处理汽车应用的安全管理的专用处理器子系统。安全簇引擎可以包括两个或更多处理器核、紧密耦合的RAM、支持外围设备(例如定时器、中断控制器等等)和/或路由逻辑。在安全模式下,所述两个或更多核可以操作于锁步模式下,并且用作具有检测它们的操作之间的任何差异的比较逻辑的单核。
处理器1010可以还包括实时相机引擎,其可以包括用于处理实时相机管理的专用处理器子系统。
处理器1010可以还包括高动态范围标志处理器,其可以包括图像标志处理器,该图像标志处理器是一种硬件引擎,该硬件引擎是相机处理管线的部分。
处理器1010可以包括可以是(例如微处理器上实现的)处理块的视频图像复合器,其实现视频回放应用程序产生用于播放器窗口的最终图像所需的视频后处理功能。视频图像复合器可以对广角相机1070、环绕相机1074和/或对驾驶室内监测相机传感器执行镜头畸变校正。驾驶室内监测相机传感器优选地由运行在高级SoC的另一个实例上的神经网络监测,被配置为识别驾驶室内事件并且相对应地做出响应。驾驶室内系统可以执行唇读,以激活移动电话服务并拨打电话、口述电子邮件、改变车辆目的地、激活或改变车辆的信息娱乐系统和设置或者提供语音激活的网上冲浪。某些功能仅在车辆操作于自主模式下时对于驾驶员可用,并且在其他情况下被禁用。
视频图像复合器可以包括用于空间和时间降噪的增强时间降噪。例如,在视频中出现运动的情况下,降噪适当地对空间信息加权,降低邻近帧提供的信息的权重。在图像或者图像的部分不包括运动的情况下,视频图像复合器执行的时间降噪可以使用来自先前的图像的信息以降低当前图像中的噪声。
视频图像复合器也可以被配置为对输入立体镜头帧执行立体校正。当操作系统桌面正在使用并且GPU 1008无需连续地渲染(render)新的表面时,视频图像复合器可以进一步用于用户接口组成。甚至在GPU 1008上电并且激活,进行3D渲染时,视频图像复合器可以用来减轻GPU 1008的负担以提高性能和响应能力。
SoC 1004可以还包括用于从相机接收视频和输入的移动行业处理器接口(MIPI)相机串行接口、高速接口和/或可以用于相机和有关像素输入功能的视频输入块。SoC 1004可以还包括可以由软件控制并且可以用于接收未提交到特定角色的I/O标志的输入/输出控制器。
SoC 1004可以还包括大范围的外围设备接口,以使能与外围设备、音频编解码器、功率管理和/或其他设备通信。SoC 1004可以用来处理来自(通过千兆多媒体串行链路和以太网连接的)相机、传感器(例如可以通过以太网连接的LIDAR传感器1064、RADAR传感器1060等等)的数据,来自总线1002的数据(例如车辆1000的速率、方向盘位置等等),来自(通过以太网或CAN总线连接的)GNSS传感器1058的数据。SoC 1004可以还包括专用高性能大容量存储控制器,其可以包括它们自己的DMA引擎,并且其可以用来从日常数据管理任务中释放CPU 1006。
SoC 1004可以是具有灵活架构的端到端平台,该架构跨越自动化3-5级,从而提供利用和高效使用计算机视觉和ADAS技术以实现多样性和冗余、连同深度学习工具一起提供用于灵活可靠驾驶软件堆栈的平台的综合功能安全架构。SoC 1004可以比常规的系统更快、更可靠,甚至更加能量高效和空间高效。例如,当与CPU 1006、GPU 1008和数据存储1016结合时,加速器1014可以提供用于3-5级自主车辆的快速高效平台。
因此该技术提供了不能通过常规系统实现的能力和功能。例如,计算机视觉算法可以在CPU上执行,这些CPU可以使用诸如C编程语言之类别的高级编程语言配置为跨各种各样的视觉数据执行各种各样的处理算法。然而,CPU常常不能满足许多计算机视觉应用的性能要求,诸如与例如执行时间和功耗有关的那些要求。特别地,许多CPU不能实时地执行复杂的对象检测算法,这是车载ADAS应用的要求和实用3-5级自主车辆的要求。
与常规系统形成对比的是,通过提供CPU复合体、GPU复合体和硬件加速器簇,本文描述的技术允许同时和/或顺序地执行多个神经网络,并且将结果组合在一起以实现3-5级自主驾驶功能。例如,在DLA或dGPU(例如GPU 1020)上执行的CNN可以包括文本和单词识别,允许超级计算机读取和理解交通指示牌,包括尚未针对其特别地训练神经网络的指示牌。DLA可以还包括能够识别、解释和提供对指示牌的语义理解,并且将该语义理解传递给运行在CPU复合体上的路径规划模块的神经网络。
作为另一个示例,如3、4或5级驾驶所需的,多个神经网络可以同时运行。例如,由“注意:闪烁的灯指示结冰条件”组成的警告指示牌连同电灯可以由若干神经网络独立地或者共同地进行解释。指示牌本身可以由部署的第一神经网络(例如经过训练的神经网络)识别为交通指示牌,文本“闪烁的灯指示结冰条件”可以由部署的第二神经网络解释,该部署的第二神经网络告知车辆的路径规划软件(优选地在CPU复合体上执行)当检测到闪烁的灯时,存在结冰条件。闪烁的灯可以通过在多个帧上操作部署的第三神经网络而识别,该神经网络告知车辆的路径规划软件闪烁的灯的存在(或不存在)。所有三个神经网络可以例如在DLA内和/或在GPU 1008上同时运行。
在一些示例中,用于面部识别和车主识别的CNN可以使用来自相机传感器的数据识别车辆1000的授权的驾驶员和/或车主的存在。始终在传感器上的处理引擎可以用来在车主接近驾驶员车门时解锁车辆并且打开灯,并且在安全模式下,在车主离开车辆时禁用车辆。按照这种方式,SoC1004提供了防范盗窃和/或劫车的安全性。
在另一个示例中,用于应急车辆检测和识别的CNN可以使用来自麦克风1096的数据来检测并且识别应急车辆警报(siren)。与使用通用分类器检测警报并且手动地提取特征的常规系统形成对比的是,SoC 1004使用CNN以对环境和城市声音分类以及对视觉数据分类。在优选的实施例中,运行在DLA上的CNN被训练为识别应急车辆的相对关闭速率(例如通过使用多普勒效应)。CNN也可以被训练为识别如GNSS传感器1058所识别的特定于车辆在其中操作的局部区域的应急车辆。因此,例如,当在欧盟操作时,CNN将寻求检测欧盟警报,并且当在美国时,CNN将寻求识别仅仅北美的警报。一旦检测到应急车辆,在超声传感器1062的辅助下,控制程序可以用来执行应急车辆安全例程,使车辆放慢速度,开到路边,停下车辆,和/或使车辆空转,直到应急车辆通过。
车辆可以包括可以经由高速互连(例如PCIe)耦合到SoC 1004的CPU 1018(例如分立的CPU或dCPU)。CPU 1018可以包括例如X106处理器。CPU 1018可以用来执行各种各样的功能中的任何功能,包括例如仲裁ADAS传感器与SoC 1004之间潜在地不一致的结果,和/或监测控制器1036和/或信息娱乐SoC 1030的状态和健康状况。
车辆1000可以包括可以经由高速互连(例如NVIDIA的NVLINK)耦合到SoC 1004的GPU 1020(例如分立的GPU或dGPU)。GPU 1020可以例如通过执行冗余的和/或不同的神经网络而提供附加的人工智能功能,并且可以用来至少部分地基于来自车辆1000的传感器的输入(例如传感器数据)来训练和/或更新神经网络。
车辆1000可以还包括网络接口1024,该网络接口可以包括一个或更多个无线天线1026(例如用于不同通信协议的一个或更多个无线天线,例如蜂窝天线、蓝牙天线等等)。网络接口1024可以用来使能通过因特网与云(例如与服务器1078和/或其他网络设备)、与其他车辆和/或与计算设备(例如乘客的客户端设备)的无线连接。为了与其他车辆通信,可以在这两辆车之间建立直接链接,和/或可以建立间接链接(例如跨网络以及通过因特网)。直接链接可以使用车对车通信链路提供。车对车通信链路可以向车辆1000提供关于接近车辆1000的车辆(例如车辆1000前面、侧面和/或后面的车辆)的信息。该功能可以是车辆1000的协作自适应巡航控制功能的部分。
网络接口1024可以包括提供调制和解调功能并且使得控制器1036能够通过无线网络通信的SoC。网络接口1024可以包括用于从基带到射频的上转换以及从射频到基带的下转换的射频前端。频率转换可以通过公知的过程执行,和/或可以使用超外差(super-heterodyne)过程执行。在一些示例中,射频前端功能可以由单独的芯片提供。网络接口可以包括用于通过LTE、WCDMA、UMTS、GSM、CDMA2000、蓝牙、蓝牙LE、Wi-Fi、Z波、ZigBee、LoRaWAN和/或其他无线协议通信的无线功能。
车辆1000可以还包括可包括片外(例如SoC 1004外)存储装置的数据存储1028。数据存储1028可以包括一个或更多个存储元件,包括RAM、SRAM、DRAM、VRAM、闪存、硬盘和/或可以存储至少一个比特的数据的其他部件和/或设备。
车辆1000可以还包括GNSS传感器1058。GNSS传感器1058(例如GPS、辅助GPS传感器、差分GPS(DGPS)传感器等)用于辅助映射、感知、占用网格生成和/或路径规划功能。可以使用任意数量的GNSS传感器1058,包括例如且不限于使用带有以太网到串行(RS-232)网桥的USB连接器的GPS。
车辆1000可以还包括RADAR传感器1060。RADAR传感器1060可以甚至在黑暗和/或恶劣天气条件下也由车辆1000用于远程车辆检测。RADAR功能安全级别可以是ASIL B。RADAR传感器1060可以使用CAN和/或总线1002(例如以传输RADAR传感器1060生成的数据)以用于控制以及访问对象追踪数据,在一些示例中接入以太网以访问原始数据。可以使用各种各样的RADAR传感器类型。例如且非限制性地,RADAR传感器1060可以适合前面、后面和侧面RADAR使用。在一些示例中,使用脉冲多普勒RADAR传感器。
RADAR传感器1060可以包括不同的配置,例如具有窄视场的远程、具有宽视场的短程、短程侧覆盖等等。在一些示例中,远程RADAR可以用于自适应巡航控制功能。远程RADAR系统可以提供通过两个或更多独立扫描实现的广阔视场(例如250m范围内)。RADAR传感器1060可以帮助区分静态对象和运动对象,并且可以由ADAS系统用于紧急制动辅助和前方碰撞警告。远程RADAR传感器可以包括具有多根(例如六根或更多)固定RADAR天线以及高速CAN和FlexRay接口的单站多模RADAR。在具有六根天线的示例中,中央四根天线可以创建聚焦的波束图案,其被设计为在更高速率下以来自邻近车道的最小交通干扰记录车辆1000的周围环境。其他两根天线可以扩展视场,使得快速地检测进入或离开车辆1000的车道的车辆成为可能。
作为一个示例,中程RADAR系统可以包括高达1060m(前面)或80m(后面)的范围以及高达42度(前面)或1050度(后面)的视场。短程RADAR系统可以包括但不限于被设计为安装在后保险杠两端的RADAR传感器。当安装在后保险杠两端时,这样的RADAR传感器系统可以创建持续地监测后方和车辆旁边的视盲点的两个波束。
短程RADAR系统可在ADAS系统中用于视盲点检测和/或变道辅助。
车辆1000可以还包括超声传感器1062。可以置于车辆1000的前面、后面和/或侧面的超声传感器1062可以用于停车辅助和/或创建和更新占用网格。可以使用各种各样的超声传感器1062,并且不同的超声传感器1062可以用于不同的检测范围(例如2.5m、4m)。超声传感器1062可以操作于功能安全级别的ASIL B。
车辆1000可以包括LIDAR传感器1064。LIDAR传感器1064可以用于对象和行人检测、紧急制动、碰撞避免和/或其他功能。LIDAR传感器1064可以为功能安全级别的ASILB。在一些示例中,车辆1000可以包括可以使用以太网(例如以将数据提供给千兆以太网交换机)的多个LIDAR传感器1064(例如两个、四个、六个等等)。
在一些示例中,LIDAR传感器1064可能够对360度视场提供对象列表及其距离。商业上可用的LIDAR传感器1064可以具有例如近似1000m的广告范围,精度为2cm-3cm,支持1000Mbps以太网连接。在一些示例中,可以使用一个或更多个非突出的LIDAR传感器1064。在这样的示例中,LIDAR传感器1064可以实现为可以嵌入到车辆1000的前面、后面、侧面和/或拐角的小设备。在这样的示例中,LIDAR传感器1064可以甚至对于低反射率对象提供高达120度水平的和35度竖直的视场,具有200m的范围。前面安装的LIDAR传感器1064可以被配置用于45度与135度之间的水平视场。
在一些示例中,也可以使用诸如3D闪光LIDAR之类别的LIDAR技术。3D闪光LIDAR使用激光的闪光作为发射源,以照亮高达约200m的车辆周围环境。闪光LIDAR单元包括接受器,该接受器将激光脉冲传输时间和反射光记录在每个像素上,其进而与从车辆到对象的范围相对应。闪光LIDAR可以允许利用每个激光闪光生成周围环境的高度精确且无失真的图像。在一些示例中,可以部署四个闪光LIDAR传感器,车辆1000的每一侧一个。可用的3D闪光LIDAR系统包括没有风扇以外的运动部件(moving part)的固态3D凝视阵列LIDAR相机(例如非扫描LIDAR设备)。闪光LIDAR设备可以使用每帧5纳秒I类别(眼睛安全)激光脉冲,并且可以以3D范围点云和共同寄存的强度数据的形式捕获反射的激光。通过使用闪光LIDAR,并且因为闪光LIDAR是没有运动部件的固态设备,LIDAR传感器1064可以不太容易受到运动模糊、振动和/或震动的影响。
该车辆可以还包括IMU传感器1066。在一些示例中,IMU传感器1066可以位于车辆1000的后轴的中心。IMU传感器1066可以包括例如且不限于加速度计、磁力计、陀螺器、磁罗盘和/或其他传感器类型。在一些示例中,例如在六轴应用中,IMU传感器1066可以包括加速度计和陀螺器,而在九轴应用中,IMU传感器1066可以包括加速度计、陀螺器和磁力计。
在一些实施例中,IMU传感器1066可以实现为微型高性能GPS辅助惯性导航系统(GPS/INS),其结合微机电系统(MEMS)惯性传感器、高灵敏度GPS接收器和高级卡尔曼滤波算法以提供位置、速度和姿态的估计。这样,在一些示例中,IMU传感器1066可以使得车辆1000能够在无需来自磁传感器的输入的情况下通过直接观察从GPS到IMU传感器1066的速度变化并且将其相关来估计方向(heading)。在一些示例中,IMU传感器1066和GNSS传感器1058可以结合到单个集成单元中。
该车辆可以包括置于车辆1000中和/或车辆1000周围的麦克风1096。除别的以外,麦克风1096可以用于应急车辆检测和识别。
该车辆可以还包括任意数量的相机类型,包括立体相机1068、广角相机1070、红外相机1072、环绕相机1074、远程和/或中程相机1098和/或其他相机类型。这些相机可以用来捕获车辆1000整个外围周围的图像数据。使用的相机类型取决于实施例和车辆1000的要求,并且相机类型的任意组合可以用来提供车辆1000周围的必要覆盖。此外,相机的数量可以根据实施例而不同。例如,该车辆可以包括六个相机、七个相机、十个相机、十二个相机和/或另一数量的相机。作为一个示例且非限制性地,这些相机可以支持千兆多媒体串行链路(GMSL)和/或千兆以太网。所述相机中的每一个在本文关于图10A和图10B更详细地进行了描述。
车辆1000可以还包括振动传感器1042。振动传感器1042可以测量车辆的诸如车轴之类别的部件的振动。例如,振动的变化可以指示道路表面的变化。在另一个示例中,当使用两个或更多振动传感器1042时,振动之间的差异可以用来确定道路表面的摩擦或滑移(例如当动力驾驶轴与自由旋转轴之间存在振动差异时)。
车辆1000可以包括ADAS系统1038。在一些示例中,ADAS系统1038可以包括SoC。ADAS系统1038可以包括自主/自适应/自动巡航控制(ACC)、协作自适应巡航控制(CACC)、前方撞车警告(FCW)、自动紧急制动(AEB)、车道偏离警告(LDW)、车道保持辅助(LKA)、视盲点警告(BSW)、后方穿越交通警告(RCTW)、碰撞警告系统(CWS)、车道居中(LC)和/或其他特征和功能。
ACC系统可以使用RADAR传感器1060、LIDAR传感器1064和/或相机。ACC系统可以包括纵向ACC和/或横向ACC。纵向ACC监测并控制到紧接在车辆1000前方的车辆的距离,并且自动地调节车速以维持离前方车辆的安全距离。横向ACC执行距离保持,并且在必要时建议车辆1000改变车道。横向ACC与诸如LCA和CWS之类别的其他ADAS应用程序有关。
CACC使用来自其他车辆的信息,该信息可以经由网络接口1024和/或无线天线1026经由无线链路或者通过网络连接(例如通过因特网)间接地从其他车辆接收。直接链接可以由车对车(V2V)通信链路提供,而间接链接可以是基础设施到车辆(I2V)的通信链路。通常,V2V通信概念提供关于紧接在前的车辆(例如紧接在车辆1000前方且与其处于相同车道的车辆)的信息,而I2V通信概念提供关于前方更远处的交通的信息。CACC系统可以包括I2V和V2V信息源中的任一个或者二者。给定车辆1000前方车辆的信息,CACC可以更加可靠,并且它有可能提高交通流的畅通性且降低道路拥堵。
FCW系统被设计为提醒驾驶员注意危险,使得驾驶员可以采取纠正措施。FCW系统使用耦合到专用处理器、DSP、FPGA和/或ASIC的前置相机和/或RADAR传感器1060,该专用处理器、DSP、FPGA和/或ASIC电耦合至诸如显示器、扬声器和/或振动部件之类别的驾驶员反馈。FCW系统可以提供例如声音、视觉警告、振动和/或快速制动脉冲形式的警告。
AEB系统检测即将发生的与另一车辆或其他对象的前方碰撞,并且可以在驾驶员在指定的时间或距离参数内没有采取纠正措施的情况下自动地应用制动器。AEB系统可以使用耦合到专用处理器、DSP、FPGA和/或ASIC的前置相机和/或RADAR传感器1060。当AEB系统检测到危险时,它典型地首先提醒(alert)驾驶员采取纠正措施以避免碰撞,并且如果驾驶员没有采取纠正措施,那么AEB系统可以自动地应用制动器以努力防止或者至少减轻预测的碰撞的影响。AEB系统可以包括诸如动态制动支持和/或碰撞迫近制动之类别的技术。
LDW系统提供了诸如方向盘或座位振动之类别的视觉、听觉和/或触觉警告,以在车辆1000穿过车道标记时提醒驾驶员。当驾驶员指示有意偏离车道时,通过激活转弯标志,不激活LDW系统。LDW系统可以使用耦合到专用处理器、DSP、FPGA和/或ASIC的前侧朝向相机,该专用处理器、DSP、FPGA和/或ASIC电耦合至诸如显示器、扬声器和/或振动部件之类别的驾驶员反馈。
LKA系统是LDW系统的变型。如果车辆1000开始离开车道,那么LKA系统提供纠正车辆1000的转向输入或制动。
BSW系统检测并向驾驶员警告汽车视盲点中的车辆。BSW系统可以提供视觉、听觉和/或触觉警报以指示合并或改变车道是不安全的。系统可以在驾驶员使用转弯标志时提供附加的警告。BSW系统可以使用耦合到专用处理器、DSP、FPGA和/或ASIC的后侧朝向相机和/或RADAR传感器1060,该专用处理器、DSP、FPGA和/或ASIC电耦合至诸如显示器、扬声器和/或振动部件之类别的驾驶员反馈。
RCTW系统可以在车辆1000倒车时在后置相机范围之外检测到对象时提供视觉、听觉和/或触觉通知。一些RCTW系统包括AEB以确保应用车辆制动器以避免撞车。RCTW系统可以使用耦合到专用处理器、DSP、FPGA和/或ASIC的一个或更多个后置RADAR传感器1060,该专用处理器、DSP、FPGA和/或ASIC电耦合至诸如显示器、扬声器和/或振动部件之类别的驾驶员反馈。
常规的ADAS系统可能易于出现假阳性结果,这可能会让驾驶员烦恼并分散注意力,但是典型地不是灾难性的,因为ADAS系统提醒驾驶员并且允许驾驶员决定安全条件是否真正存在并且相对应地采取行动。然而,在自主车辆1000中,在冲突结果的情况下,车辆1000本身必须决定是否注意(heed)来自主计算机或者辅助计算机(例如第一控制器1036或第二控制器1036)的结果。例如,在一些实施例中,ADAS系统1038可以是用于向备用计算机合理性模块提供感知信息的备用和/或辅助计算机。备用计算机合理性监视器可以在硬件部件上运行冗余多样的软件,以检测感知和动态驾驶任务中的故障。来自ADAS系统1038的输出可以提供给监督MCU。如果来自主计算机和辅助计算机的输出冲突,那么监督MCU必须确定如何协调该冲突以确保安全操作。
在一些示例中,主计算机可以被配置为向监督MCU提供置信度评分,指示主计算机对所选结果的置信度。如果置信度评分超过阈值,那么监督MCU可以遵循主计算机的方向,而不管辅助计算机是否提供冲突或不一致的结果。在置信度评分不满足阈值的情况下并且在主计算机和辅助计算机指示不同的结果(例如冲突)的情况下,监督MCU可以在这些计算机之间进行仲裁以确定适当的结果。
监督MCU可以被配置为运行神经网络,所述神经网络被训练并且被配置为至少部分地基于来自主计算机和辅助计算机的输出,确定辅助计算机提供假警报的条件。因此,监督MCU中的神经网络可以了解何时可以信任辅助计算机的输出以及何时不能。例如,当辅助计算机为基于RADAR的FCW系统时,监督MCU中的神经网络可以了解FCW系统何时正在识别事实上不是危险的金属对象,例如触发警报的排水网格或井盖。类别似地,当辅助计算机是基于相机的LDW系统时,监督MCU中的神经网络可以学习在骑车者或行人在场并且车道偏离实际上是最安全的策略时无视该LDW。在包括运行在监督MCU上的神经网络的实施例中,监督MCU可以包括适合于利用关联的内存运行神经网络的DLA或GPU中的至少一个。在优选的实施例中,监督MCU可以包括SoC 1004的部件和/或作为SoC1004的部件而被包括。
在其他示例中,ADAS系统1038可以包括使用传统计算机视觉规则执行ADAS功能的辅助计算机。这样,辅助计算机可以使用经典的计算机视觉规则(如果-那么),并且在监督MCU中存在神经网络可以提高可靠性、安全性和性能。例如,多样化的实现方式和有意的非完全相同(non-identity)使得整个系统更加容错,对于软件(或者软件-硬件接口)功能造成的故障而言尤其如此。例如,如果在主计算机上运行的软件中存在软件漏洞或错误并且运行在辅助计算机上的非完全相同的软件代码提供相同的总体结果,那么监督MCU可以更加确信总体结果是正确的,并且主计算机上的软件或硬件中的漏洞不造成实质性的错误。
在一些示例中,ADAS系统1038的输出可以馈送至主计算机的感知块和/或主计算机的动态驾驶任务块。例如,如果ADAS系统1038由于对象紧接在前的原因而指示前方碰撞警告,那么感知块可以在识别对象时使用该信息。在其他示例中,辅助计算机可以具有它自己的神经网络,其被训练并且因此如本文所描述的降低假阳性的风险。
车辆1000可以还包括信息娱乐SoC 1030(例如车载信息娱乐系统(IVI))。尽管被图示和描述为SoC,但是信息娱乐系统可以不是SoC,并且可以包括两个或更多分立的部件。信息娱乐SoC 1030可以包括可以用来向车辆1000提供音频(例如音乐、个人数字助理、导航指令、新闻、广播等等)、视频(例如TV、电影、流媒体等等)、电话(例如免提呼叫)、网络连接(例如LTE、WiFi等等)和/或信息服务(例如导航系统,后停车援助,无线电数据系统,诸如燃油水平、覆盖的总距离、制动燃油水平、油位、车门开/关、空气过滤器信息之类别的车辆有关信息,等等)的硬件和软件的组合。例如,信息娱乐SoC 1030可以包括收音机、盘播放器、导航系统、视频播放器、USB和蓝牙连接、车载电脑、车载娱乐、WiFi、方向盘音频控件、免提语音控件、平视显示器(HUD)、HMI显示器1034、远程信息处理设备、控制面板(例如用于控制各种部件、特征和/或系统,和/或与其交互)和/或其他部件。信息娱乐SoC 1030可以进一步用来向车辆的用户提供信息(例如视觉的和/或听觉的),例如来自ADAS系统1038的信息,诸如规划的车辆机动、轨迹、周围环境信息(例如交叉路口信息、车辆信息、道路信息等等)之类别的自主驾驶信息,和/或其他信息。
信息娱乐SoC 1030可以包括GPU功能。信息娱乐SoC 1030可以通过总线1002(例如CAN总线、以太网等)与车辆1000的其他设备、系统和/或部件通信。在一些示例中,信息娱乐SoC 1030可以耦合至监督MCU,使得在主控制器1036(例如车辆1000的主和/或备用计算机)出现故障的情况下,信息娱乐系统的GPU可以执行一些自驾驶功能。在这样的示例中,信息娱乐SoC 1030可以如本文所描述的将车辆1000置于司机安全停车模式。
车辆1000可以还包括器表组1032(例如数字器表板、电子器表组、数字器表面板等等)。器表组1032可以包括控制器和/或超级计算机(例如分立的控制器或超级计算机)。器表组1032可以包括一套器器,例如车速表、燃油水平、油压、转速表、里程表、转弯指示器、换档位置指示器、安全带警告灯、停车制动警告灯、发动机故障灯、安全气囊(SRS)系统信息、照明控件、安全系统控件、导航信息等等。在一些示例中,信息可以被显示和/或在信息娱乐SoC 1030和器表组1032之间共享。换言之,器表组1032可以作为信息娱乐SoC 1030的部分而被包括,或者反之亦然。
图10D为根据本公开一些实施例的基于云的服务器与图10A的示例自主车辆1000之间的通信的系统示意图。系统1076可以包括服务器1078、网络1090以及包括车辆1000在内的车辆。服务器1078可以包括多个GPU 1084(A)-1084(H)(这里统称为GPU 1084)、PCIe交换机1082(A)-1082(H)(这里统称为PCIe交换机1082)和/或CPU 1080(A)-1080(B)(这里统称为CPU 1080)。GPU 1084、CPU 1080和PCIe交换机可以与诸如例如且不限于NVIDIA开发的NVLink接口1088之类别的高速互连和/或PCIe连接1086互连。在一些示例中,GPU 1084经由NVLink和/或NVSwitch SoC连接,并且GPU 1084和PCIe交换机1082经由PCIe互连连接。尽管图示出八个GPU 1084、两个CPU 1080和两个PCIe交换机,但是这并不意图是限制性的。取决于实施例,服务器1078中的每一个可以包括任意数量的GPU 1084、CPU 1080和/或PCIe交换机。例如,服务器1078中的每一个可以包括八个、十六个、三十二个和/或更多GPU 1084。
服务器1078可以通过网络1090并且从车辆接收图像数据,该图像数据表示示出诸如最近开始的道路工程之类别的意外或改变的道路状况的图像。服务器1078可以通过网络1090并且向车辆传输神经网络1092、更新的神经网络1092和/或地图信息1094,包括关于交通和道路状况的信息。对地图信息1094的更新可以包括对于HD地图1022的更新,例如关于建筑工地、坑洼、弯道、洪水或其他障碍物的信息。在一些示例中,神经网络1092、更新的神经网络1092和/或地图信息1094可以已从新的训练和/或从环境中的任意数量的车辆接收的数据中表示和/或基于数据中心处执行的训练(例如使用服务器1078和/或其他服务器)的经验产生。
服务器1078可以用来基于训练数据训练机器学习模型(例如神经网络)。训练数据可以由车辆生成,和/或可以在仿真中生成(例如使用游戏引擎)。在一些示例中,训练数据被标记(例如在神经网络受益于有监督学习的情况下)和/或经历其他预处理,而在其他示例中,训练数据不被标记和/或预处理(例如在神经网络无需有监督学习的情况下)。可以根据任何一类别或更多类别别的机器学习技术来执行训练,包括但不限于诸如以下类别别:监督训练、半监督训练、非监督训练、自学习、强化学习、联合学习、转移学习、特征学习(包括主要组成和聚类别分析)、多线性子空间学习、流形学习、表示学习(包括备用字典学习)、基于规则的机器学习、异常检测及其任何变体或组合。一旦机器学习模型被训练,机器学习模型可以由车辆使用(例如通过网络1090传输至车辆),和/或机器学习模型可以由服务器1078用来远程地监测车辆。
在一些示例中,服务器1078可以接收来自车辆的数据,并且将该数据应用到最新的实时神经网络以用于实时智能推理。服务器1078可以包括由GPU 1084供电的深度学习超级计算机和/或专用AI计算机,例如NVIDIA开发的DGX和DGX站机器。然而,在一些示例中,服务器1078可以包括仅使用CPU供电的数据中心的深度学习基础设施。
服务器1078的深度学习基础设施可能够快速实时推理,并且可以使用该能力来评估并验证车辆1000中的处理器、软件和/或关联硬件的健康状况。例如,深度学习基础设施可以接收来自车辆1000的定期更新,例如图像序列和/或车辆1000已经定位的位于该图像序列中的对象(例如经由计算机视觉和/或其他机器学习对象分类技术)。深度学习基础设施可以运行它自己的神经网络以识别对象并且将它们与车辆1000识别的对象相比较,如果结果不匹配并且该基础设施得出车辆1000中的AI发生故障的结论,那么服务器1078可以向车辆1000传输标志,指示车辆1000的故障保护计算机进行控制,通知乘客,并且完成安全停车操作。
为了推理,服务器1078可以包括GPU 1084和一个或更多个可编程推理加速器(例如NVIDIA的TensorRT)。GPU供电的服务器和推理加速的组合可以使得实时响应成为可能。在其他示例中,例如在性能不那么重要的情况下,CPU、FPGA和其他处理器供电的服务器可以用于推理。
示例计算设备
图11是适合用于实现本公开的一些实施例的示例计算设备1100的框图。计算设备1100可以包括直接或间接耦合以下设备的互连系统1102:存储器1104、一个或更多个中央处理单元(CPU)1106、一个或更多个图形处理单元(GPU)1108、通信接口1110、输入/输出(I/O)端口1112、输入/输出组件1114、电源1116,一个或更多个呈现组件1118(例如,一个或更多个显示器)和一个或更多个逻辑单元1120。在至少一个实施例中,一个或更多个计算设备1100可以包括一个或更多个虚拟机(VM),和/或其任何组件可以包括虚拟组件(例如,虚拟硬件组件)。对于非限制性示例,GPU 1108中的一个或更多个可以包括一个或更多个vGPU,CPU 1106中的一个或更多个可以包括一个或更多个vCPU,和/或逻辑单元1120中的一个或更多个可以包括一个或更多个虚拟逻辑单元。这样,一个或更多个计算设备1100可以包括分立组件(例如,专用于计算设备1100的全GPU)、虚拟组件(例如,专用于计算设备1100的GPU的一部分)、或其组合。
尽管图11的各个方框被示出为利用线路经由互连系统1102连接,但这并不旨在是限制性的并且仅是为了清楚起见。例如,在一些实施例中,呈现组件1118(诸如显示设备)可被认为是I/O组件1114(例如,如果显示器是触摸屏)。作为另一个示例,CPU 1106和/或GPU1108可以包括存储器(例如,存储器1104可以表示除了GPU 1108的存储器、CPU 1106和/或其他组件之外的存储设备)。换言之,图11的计算设备仅是说明性的。在如“工作站”、“服务器”、“膝上型计算机”、“桌面型计算机”、“平板计算机”、“客户端设备”、“移动设备”、“手持式设备”、“游戏控制台”、“电子控制单元(ECU)”、“虚拟现实系统”和/或其他设备或系统类型的此类别类别别之间不做区分,因为所有都被考虑在图11的计算设备的范围内。
互连系统1102可表示一个或更多个链路或总线,诸如地址总线、数据总线、控制总线或其组合。互连系统1102可以包括一个或更多个总线或链路类型,诸如工业标准架构(ISA)总线、扩展工业标准架构(EISA)总线、视频电子标准协会(VESA)总线、外围组件互连(PCI)总线、快速外围组件互连(PCIe)总线和/或另一类型的总线或链路。在一些实施例中,组件之间存在直接连接。作为示例,CPU 1106可直接连接到存储器1104。进一步,CPU 1106可直接连接到GPU 1108。在组件之间存在直接或点对点连接的情况下,互连系统1102可包括PCIe链路以执行连接。在这些示例中,PCI总线不需要被包括在计算设备1100中。
存储器1104可以包括各种计算机可读介质中的任何计算机可读介质。计算机可读介质可以是可由计算设备1100访问的任何可用介质。计算机可读介质可以包括易失性和非易失性介质,以及可移除和不可移除介质。作为示例而非限制,计算机可读介质可包括计算机存储介质和通信介质。
计算机存储介质可以包括以用于存储诸如计算机可读指令、数据结构、程序模块和/或其他数据类型的信息的任何方法或技术实现的易失性和非易失性介质和/或可移动和不可移动介质。例如,存储器1104可以存储计算机可读指令(例如,表示一个或更多个程序和/或一个或更多个程序元件,诸如操作系统)。计算机存储介质可以包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术,CD-ROM、数字通用盘(DVD)或其他光盘存储、磁带盒、磁带、磁盘存储装置或其他磁性存储装置,或可用于存储所要信息且可由计算设备1100存取的任何其他介质。如本文所使用的,计算机存储介质不包括标志本身。
计算机存储介质可将计算机可读指令、数据结构、程序模块和/或其他数据类型体现在诸如载波或其他传输机制之类别的已调制数据标志中,并且包括任何信息传递介质。术语“调制数据标志”可以指代以编码标志中的信息的方式设置或改变其一个或更多个特性的标志。作为示例而非限制,计算机存储介质可包括有线介质(诸如有线网络或直接有线连接)和无线介质(诸如声学、RF、红外和其他无线介质)。以上任何内容的组合也应包含在计算机可读介质的范围内。
CPU 1106可经配置以执行计算机可读指令中的至少一些以控制计算设备1100的一个或更多个组件执行本文中所描述的方法和/或过程中的一个或更多个。CPU 1106可各自包含能够同时处置众多软件线程的一个或更多个核心(例如,一个、两个、四个、八个、二十八个、七十二个等)。CPU 1106可包含任何类型的处理器,且可取决于所实施的计算设备1100的类型而包含不同类型的处理器(例如,针对移动装置具有较少核心的处理器和针对服务器具有较多核心的处理器)。例如,取决于计算设备1100的类型,处理器可以是使用精简指令集计算(RISC)实现的高级RISC机器(ARM)处理器或使用复杂指令集计算(CISC)实现的x86处理器。除了一个或更多个微处理器或次要协处理器(诸如数学协处理器)之外,计算设备1100还可包括一个或更多个CPU 1106。
除一个或更多个CPU 1106以外或替代一个或更多个CPU 1106,一个或更多个GPU1108可被配置成执行计算机可读指令中的至少一些以控制计算设备1100的一个或更多个组件执行本文所描述的方法和/或过程中的一个或更多个。GPU 1108中的一个或更多个可为集成GPU(例如,有CPU 1106中的一个或更多个)和/或GPU 1108中的一个或更多个可为离散GPU。在实施例中,GPU 1108中的一个或更多个可以是CPU 1106中的一个或更多个的协处理器。GPU 1108可由计算设备1100使用以渲染图形(例如,3D图形)或执行通用计算。例如,GPU 1108可用于GPU上的通用计算(GPGPU)。GPU 1108可包含能够同时处置数百或数千软件线程的数百或数千核心。GPU 1108可响应于渲染命令(例如,经由主机接口从CPU 1106接收的渲染命令)而产生输出图像的像素数据。GPU 1108可包含用于存储像素数据或任何其他合适数据(例如,GPGPU数据)的图形存储器(例如,显示存储器)。显示存储器可作为存储器1104的一部分被包括。GPU 1108可包含并行操作(例如,经由链路)的两个或两个以上GPU。链路可以直接连接GPU(例如,使用NVLINK)或可以通过交换机(例如,使用NVSwitch)连接GPU。当组合在一起时,每一GPU 1108可产生用于输出的不同部分或用于不同输出的像素数据或GPGPU数据(例如,用于第一图像的第一GPU和用于第二图像的第二GPU)。每一GPU可包含其自己的存储器,或可与其他GPU共享存储器。
除CPU 1106和/或GPU 1108之外或替代CPU 1106和/或GPU 1108,逻辑单元1120可经配置以执行计算机可读指令中的至少一些以控制计算设备1100的一个或更多个组件执行本文中所描述的方法和/或过程中的一个或更多个。在实施例中,一个或更多个CPU1106、一个或更多个GPU 1108、和/或一个或更多个逻辑单元1120可以离散地或联合地执行方法、过程和/或其部分的任何组合。逻辑单元1120中的一个或更多个可为CPU 1106和/或GPU 1108中的一个或更多个中的一部分和/或集成于CPU 1106和/或GPU 1108中的一个或更多个和/或逻辑单元1120中的一个或更多个可为离散组件或以其他方式在CPU 1106和/或GPU 1108外部。在实施例中,逻辑单元1120中的一个或更多个可以是CPU 1106中的一个或更多个和/或GPU 1108中的一个或更多个的协处理器。
逻辑单元1120的示例包括一个或更多个处理核心和/或其组件,诸如数据处理单元(DPU)、张量核心(TC)、张量处理单元(TPU)、像素视觉核心(PVC)、视觉处理单元(VPU)、图形处理群集(GPC)、纹理处理群集(TPC)、流多处理器(SM)、树横向单元(TTU)、人工智能加速器(AIA)、深度学习加速器(DLA)、算术逻辑单元(ALU)、专用集成电路(ASIC)、浮点单元(FPU)、输入/输出(I/O)元件、外围组件互连(PCI)或快速外围组件互连(PCIe)元件等。
通信接口1110可以包括使计算设备1100能够经由电子通信网络(包括有线和/或无线通信)与其他计算设备通信的一个或更多个接收机、发射机和/或收发机。通信接口1110可包括实现通过多个不同网络中的任一个进行通信的组件和功能,诸如无线网络(例如,Wi-Fi、Z-Wave、蓝牙、蓝牙LE、ZigBee等)、有线网络(例如,通过以太网或无限带通信)、低功率广域网(例如,LoRaWAN、SigFox等)和/或互联网。在一个或更多个实施例中,一个或更多个逻辑单元1120和/或通信接口1110可以包括一个或更多个数据处理单元(DPU),以将通过网络和/或通过互连系统1102接收的数据直接发送到(例如,存储器的)一个或更多个GPU 1108。
I/O端口1112可以使得计算设备1100能够逻辑地耦合到包括I/O组件1114、一个或更多个呈现组件1118和/或其他组件的其他设备,其中一些可以被内置到(例如,集成在)计算设备1100中。说明性I/O组件1114包括麦克风、鼠标、键盘、操纵杆、游戏垫、游戏控制器、碟形卫星天线、扫描器、打印机、无线设备等。I/O组件1114可以提供处理空中姿态、语音或由用户生成的其他生理输入的自然用户界面(NUI)。在一些情况下,可将输入发射到适当的网络元件以供进一步处理。NUI可实现与计算设备1100的显示器相关联的语音识别、指示笔识别、面部识别、生物特征识别、屏幕上和屏幕附近的姿态识别、空中姿态、头部和眼睛跟踪、以及触摸识别(如以下更详细地描述的)的任何组合。计算设备1100可以包括用于手势检测和识别的深度相机,诸如立体相机系统、红外相机系统、RGB相机系统、触摸屏技术和这些的组合。另外,计算设备1100可包含使得能够检测运动的加速度计或陀螺器(例如,作为惯性测量单元(IMU)的部分)。在一些示例中,计算设备1100可以使用加速度计或陀螺器的输出来渲染沉浸式增强现实或虚拟现实。
电源1116可包括硬连线电源、电池电源或其组合。电源1116可向计算设备1100提供电力以使得计算设备1100的组件能够操作。
呈现组件1118可包括显示器(例如,监视器、触摸屏、电视屏幕、平视显示器(HUD)、其他显示器类型或其组合)、扬声器和/或其他呈现组件。呈现组件1118可从其他组件(例如,GPU 1108、CPU 1106等)接收数据,且输出所述数据(例如,作为图像、视频、声音等)。
示例数据中心
图12示出了可在本公开的至少一个实施例中使用的示例数据中心1200。数据中心1200可包括数据中心基础设施层1210、框架层1220、软件层1230和/或应用层1240。
如图12所示,数据中心基础设施层1210可以包括资源协调器1210、分组的计算资源1214和节点计算资源(“节点C.R.s”)1216(1)-1216(N),其中“N”表示任何完整的正整数。在至少一个实施例中,节点C.R.s 1216(1)-1216(N)可包括,但不限于任何数量的中央处理单元(“CPU”)或其他处理器(包括DPU、加速器、现场可编程门阵列(FPGA)、图形处理器或图形处理单元(GPU)等),存储器设备(例如,动态只读存储器),存储设备(例如,固态或磁盘驾驶器),网络输入/输出(“NW I/O”)装置、网络交换机、虚拟机(“VM”)、功率模块和/或冷却模块,等等。在一些实施例中,来自节点C.R.s 1216(1)-1216(N)中的一个或更多个节点C.R.s可对应于具有上述计算资源中的一个或更多个的服务器。此外,在一些实施例中,节点C.R.s 1216(1)-12161(N)可包括一个或更多个虚拟组件,诸如vGPU、vCPU等,和/或节点C.R.s 1216(1)-1216(N)中的一个或更多个可对应于虚拟机(VM)。
在至少一个实施例中,分组的计算资源1214可包括容纳在一个或更多个机架(未示出)内的节点C.R.s 1216的单独分组,或容纳在不同地理位置(也未示出)处的数据中心内的许多机架。分组的计算资源1214内的节点C.R.s 1216的单独分组可包括可被配置或分配来支持一个或更多个工作负荷的分组计算、网络、存储器或存储资源。在至少一个实施例中,包括CPU、GPU和/或其他处理器的若干节点C.R.s 1216可以分组在一个或更多个机架内以提供计算资源来支持一个或更多个工作负荷。一个或更多个机架还可包括任意组合的任意数量的功率模块、冷却模块和/或网络交换机。
资源协调器1222可配置或以其他方式控制一个或更多个节点C.R.s1216(1)-1216(N)和/或分组的计算资源1214。在至少一个实施例中,资源协调器1222可以包括用于数据中心1200的软件设计基础设施(“SDI”)管理实体。资源协调器1222可以包括硬件、软件或其某种组合。
在至少一个实施例中,如图12所示,框架层1220可以包括作业调度器1232、配置管理器1234、资源管理器1236和/或分布式文件系统1238。框架层1220可以包括支持软件层1230的软件1232和/或应用层1240的一个或更多个应用1242的框架。软件1232或应用1242可分别包含基于网络的服务软件或应用,例如由Amazon(亚马逊)网络服务、Google Cloud(谷歌云)和Microsoft Azure提供的那些。框架层1220可以是但不限于可以利用分布式文件系统1238进行大规模数据处理(例如,“大数据”)的免费和开源的软件网络应用框架(如Apache SparkTM(下文称为“Spark”))的类型。在至少一个实施例中,作业调度器1232可以包括Spark驾驶器以促进调度由数据中心1200的不同层支持的工作负荷。配置管理器1234可以能够配置不同层,诸如软件层1230和框架层1220(其包括用于支持大规模数据处理的Spark和分布式文件系统1238)。资源管理器1236可以能够管理被映射到分布式文件系统1238和作业调度器1232或被分配用于支持分布式文件系统1238和作业调度器1232的集群的或分组的计算资源。在至少一个实施例中,集群的或分组的计算资源可包括在数据中心基础设施层1210的分组的计算资源1214。资源管理器1236可与资源协调器1210协调以管理这些被映射或分配的计算资源。
在至少一个实施例中,在软件层1230中包括的软件1232可包括由节点C.R.s 1216(1)-1216(N)、分组的计算资源1214和/或框架层1220的分布式文件系统1238中的至少部分使用的软件。一种或更多种类型的软件可以包括但不限于互联网网页搜索软件、电子邮件病毒扫描软件、数据库软件和流式视频内容软件。
在至少一个实施例中,在应用层1240中包括的应用1242可包括由节点C.R.s 1216(1)-1216(N)、分组的计算资源1214和/或框架层1220的分布式文件系统1238中的至少部分使用的一个或更多个类型的应用。一种或更多种类型的应用可以包括但不限于任何数量的基因组应用、认知计算和机器学习应用,包括训练或推断软件、机器学习框架软件(例如,PyTorch、TensorFlow、Caffe等)和/或结合一个或更多个实施例使用的其他机器学习应用。
在至少一个实施例中,配置管理器1234、资源管理器1236和资源协调器1210中的任一个可基于在任何技术上可行的方式中获取的任何量和类型的数据来实现任何数量和类型的自修改动作。自修改动作可使数据中心1200的数据中心操作者免于做出可能较差的配置决策和可能避免数据中心的未充分利用和/或较差执行部分。
根据本文描述的一个或更多个实施例,数据中心1200可包括工具、服务、软件或其他资源来训练一个或更多个机器学习模型或使用一个或更多个机器学习模型来预测或推断信息。例如,可以通过使用以上相对于数据中心1200描述的软件和/或计算资源根据神经网络架构来计算权重参数来训练一个或更多个机器学习模型。在至少一个实施例中,对应于一个或更多个神经网络的经训练或部署的机器学习模型可用于通过使用通过一种或多种训练技术(诸如但不限于本文所述的那些训练技术)计算的权重参数,使用上文相对于数据中心1200描述的资源来推断或预测信息。
在至少一个实施例中,数据中心1200可使用CPU、专用集成电路(ASIC)、GPU、FPGA和/或其他硬件(或与其对应的虚拟计算资源)来使用上述资源执行训练和/或推断。此外,上文所描述的一或更多个软件和/或硬件资源可被配置为允许用户训练或执行对信息的推断的服务,例如图像识别、语音识别或其他人工智能服务。
示例网络环境
适合用于实现本公开的实施例的网络环境可以包括一个或更多个客户端设备、服务器、网络附加存储(NAS)、其他后端设备和/或其他设备类型。客户端设备、服务器和/或其他设备类型(例如,每个设备)可以在图11的一个或更多个计算设备1100的一个或更多个实例上实现——例如,每个设备可以包括一个或更多个计算设备1100的类别似部件、特征和/或功能。此外,在实现后端设备(例如,服务器、NAS等)的情况下,后端设备可被包括作为数据中心1200的一部分,数据中心1200的示例在本文中关于图12更详细地描述。
网络环境的组件可经由网络彼此通信,所述网络可为有线的、无线的或为两者。网络可以包括多个网络或更多个网络中的一个网络。例如,网络可包括一个或更多个广域网(WAN)、一个或更多个局域网(LAN)、一个或更多个公共网络(诸如互联网和/或公共交换电话网(PSTN))和/或一个或更多个私有网络。在网络包括无线电信网络的情况下,诸如基站、通信塔或者甚至接入点(以及其他组件)的组件可以提供无线连接。
兼容的网络环境可以包括一个或更多个对等网络环境(在这种情况下,服务器可以不被包括在网络环境中)和一个或更多个客户端-服务器网络环境(在这种情况下,一个或更多个服务器可以被包括在网络环境中)。在对等网络环境中,本文针对服务器所描述的功能可在任何数量的客户端设备上实现。
在至少一个实施例中,网络环境可包括一个或更多个基于云的网络环境、分布式计算环境、其组合等。基于云的网络环境可包括框架层、作业调度器、资源管理器和在一个或更多个服务器上实现的分布式文件系统,所述服务器可包括一个或更多个核心网服务器和/或边缘服务器。框架层可包括支持软件层的软件和/或应用层的一个或更多个应用的框架。软件或应用可分别包含基于网络的服务软件或应用。在实施例中,一个或更多个客户端设备可以使用基于网络的服务软件或应用(例如,通过经由一个或更多个应用编程接口(API)访问服务软件和/或应用)。框架层可以是但不限于如可以使用分布式文件系统进行大规模数据处理(例如,“大数据”)的一种免费和开源软件网络应用框架。
基于云的网络环境可提供执行本文描述的计算和/或数据存储功能(或其一个或更多个部分)的任何组合的云计算和/或云存储。这些不同功能中的任何功能可以分布在来自(例如,可以分布在州、地区、国家、全球等的一个或更多个数据中心的)中央或核心服务器的多个位置上。如果与用户(例如,客户端设备)的连接相对靠近边缘服务器,则核心服务器可以将功能的至少一部分指定给边缘服务器。基于云的网络环境可以是私有的(例如,限于单个组织),可以是公共的(例如,对许多组织可用),和/或其组合(例如,混合云环境)。
一个或更多个客户端设备可以包括本文关于图11所描述的一个或更多个示例计算设备1100的组件、特征和功能中的至少一些。作为示例而非限制,客户端设备可被实现为个人计算机(PC),膝上型计算机、移动设备、智能电话、平板计算机、智能手表、可穿戴计算机、个人数字助理(PDA)、MP3播放器、虚拟现实耳机、全球定位系统(GPS)或设备、视频播放器、摄像机、监视设备或系统、车辆、船、飞船、虚拟机、无人机、机器人、手持式通信设备、医院设备、游戏设备或系统、娱乐系统、车辆计算机系统、嵌入式系统控制器、遥控器、电器、消费电子设备、工作站、边缘设备、这些描绘的设备的任何组合或任何其他合适的设备。
本公开可以在由计算机或者诸如个人数字助理或其他手持式设备之类别的其他机器执行的、包括诸如程序模块之类别的计算机可执行指令的机器可使用指令或者计算机代码的一般背景下进行描述。通常,包括例程、程序、对象、组件、数据结构等等的程序模块指的是执行特定任务或者实现特定抽象数据类型的代码。本公开可以在各种各样的系统配置中实践,这些配置包括手持式设备、消费电子器件、通用计算机、更专业的计算设备等等。本公开也可以在其中任务由通过通信网络链接的远程处理设备执行的分布式计算环境中实践。
如在本文中使用的,“和/或”关于两个或更多元件的叙述应当解释为仅指一个元件或者元件组合。例如,“元件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中的至少一个。
本文详细地描述了本公开的主题以满足法定要求。然而,描述本身并非意在限制本公开的范围。相反地,本公开人已经设想到,要求保护的主题也可以以其他的方式具体化,以包括与本文中结合其他当前或未来技术描述的步骤不同的步骤或者相似的步骤的组合。而且,尽管术语“步骤”和/或“框”在本文中可以用来隐含采用的方法的不同元件,但是这些术语不应当被解释为暗示本文公开的各个步骤之中或之间的任何特定顺序,除非明确描述了各步骤的顺序。
示例段落
A.一种方法,包括:使用一个或更多个神经网络并且至少基于使用一个或更多个第一传感器模态的一个或更多个第一传感器生成的第一传感器数据,生成指示与环境中的一个或更多个第一对象相关联的一个或更多个第一位置的第一数据;至少基于使用不同于所述一个或更多个第一传感器模态的一个或更多个第二传感器模态的一个或更多个第二传感器生成的第二传感器数据,生成指示与所述环境中的一个或更多个第二对象相关联的一个或更多个第一属性的第二数据;至少基于所述第一数据的至少第一部分和所述第二数据的至少第二部分生成第三数据,所述第三数据包括以下中的至少一项:指示与所述一个或更多个第一对象相关联的一个或更多个第二位置的所述第一数据的经更新版本;或指示与所述一个或更多个第二对象相关联的一个或更多个第二属性的所述第二数据的经更新版本;以及至少基于所述第三数据执行关于机器的控制的一个或更多个操作。
B.如段落A所述的方法,其中:所述第一数据是指示在时间实例处与所述机器周围的所述环境中的所述一个或更多个第一对象相关联的所述一个或更多个第一位置的即时数据,以及所述第二数据是时间数据,并且所述一个或更多个第一属性在至少部分地先于所述时间实例的时间段内被跟踪。
C.如段落A-B中的任一项所述的方法,其中:所述第一数据进一步指示所述环境的一个或更多个被遮挡部分,以及所述第一数据的所述经更新版本进一步指示所述环境的所述一个或更多个被遮挡部分是否被所述一个或更多个第一对象中的至少一个第一对象或所述一个或更多个第二对象中的至少一个第二对象占据。
D.如段落A-C中的任一项所述的方法,其中:所述一个或更多个第一属性中的属性包括以下中的至少一项:与所述一个或更多个第二对象中的对象相关联的第一包围形状,与所述对象相关联的第一位置,与所述对象相关联的第一姿态,与所述对象相关联的第一轨迹,或与所述对象相关联的第一分类,以及所述一个或更多个第二属性中的属性包括以下中的至少一项:与所述对象相关联的第二包围形状,与所述对象相关联的第二位置,与所述对象相关联的第二姿态,与所述对象相关联的第二轨迹,或与所述对象相关联的第二分类。
E.如段落A-D中的任一项所述的方法,其中所述第一数据是从自上而下的角度对所述环境的密集占用表示,所述密集占用表示包括表示在时间实例处使用所述一个或更多个第一传感器获得的一个或更多个样本的一个或更多个点,其中所述一个或更多个点中的一个或更多个第一点对应于与所述一个或更多个第一对象相关联的所述一个或更多个第一位置,并且所述一个或更多个点中的一个或更多个第二点对应于在所述时间实例处所述环境中的一个或更多个未占用位置。
F.如段落A-E中的任一项所述的方法,其中所述一个或更多个点的一个或更多个值对应于与所述一个或更多个样本相关联的高度或置信度中的至少一个。
G.如段落A-F中的任一项所述的方法,进一步包括:确定所述一个或更多个第一对象中的第一对象对应于所述一个或更多个第二对象中的第二对象,其中生成所述第三数据进一步至少基于与所述第二对象相对应的所述第一对象。
H.如段落A-G中的任一项所述的方法,进一步包括:生成指示与所述环境中的所述一个或更多个第一对象相关联的一个或更多个在先位置的第四数据,所述第四数据包括表示在时间段内使用所述一个或更多个第一传感器获得的以及至少基于所述一个或更多个第一属性细化的一个或更多个在先样本的一个或更多个点;其中生成所述第三数据进一步至少基于所述第四数据。
I.如段落A-H中的任一项所述的方法,其中所述第四数据中包括的所述一个或更多个点中的第一点指示与所述一个或更多个第一对象中的对象相关联的速度。
J.如段落A-I中的任一项所述的方法,进一步包括:使所述机器至少基于所述第一数据的所述经更新版本或所述第二数据的所述经更新版本中的至少一个来执行一个或更多个操作。
K.一种系统,包括:一个或更多个处理器,所述一个或更多个处理器用于:获得指示在时间实例处与环境中的一个或更多个第一对象相关联的一个或更多个位置的第一信息,所述第一信息是使用一个或更多个神经网络并且至少基于使用机器的一个或更多个第一传感器获得的第一传感器数据生成的;获得指示与所述环境中的一个或更多个第二对象相关联的一个或更多个属性的第二信息,所述第二信息是至少基于在至少部分地先于所述时间实例的时间段内使用所述机器的一个或更多个第二传感器获得的第二传感器数据确定的;生成以下中的至少一项:至少基于所述第二信息的所述第一信息的经更新版本,所述第一信息的所述经更新版本至少指示与所述一个或更多个第一对象相关联的一个或更多个经更新位置;或至少基于所述第一信息的所述第二信息的经更新版本,所述第二信息的所述经更新版本至少指示与所述一个或更多个第二对象相关联的一个或更多个经更新属性。
L.如段落K所述的系统,其中所述第一信息与所述时间实例相关联,并且所述第一信息的所述经更新版本是与所述时间实例和所述时间段的至少一部分相关联的时间信息。
M.如段落K-L中的任一项所述的系统,其中:所述第一信息指示在所述时间实例处所述环境的一个或更多个被遮挡部分,以及所述第一信息的所述经更新版本进一步指示所述环境的所述一个或更多个被遮挡部分是否被所述一个或更多个第一对象中的至少一个第一对象或所述一个或更多个第二对象中的至少一个第二对象占据。
N.如段落K-M中的任一项所述的系统,其中:所述一个或更多个经更新属性中的属性包括以下中的至少一项:与所述一个或更多个第二对象中的对象相关联的包围形状,与所述对象相关联的位置,与所述对象相关联的姿态,与所述对象相关联的轨迹,或与所述对象相关联的分类。
O.如段落K-N中的任一项所述的系统,其中:所述第一信息是从自上而下的角度所述环境的密集占用表示,所述密集占用表示包括表示在所述时间实例处使用所述一个或更多个第一传感器获得的一个或更多个样本的一个或更多个点,所述一个或更多个点中的一个或更多个第一点对应于与所述一个或更多个第一对象相关联的所述一个或更多个位置,所述一个或更多个点中的一个或更多个第二点对应于在所述时间实例处所述环境中的一个或更多个未占用位置,以及所述一个或更多个点中的一个或更多个值对应于与所述一个或更多个样本相关联的高度或置信度中的至少一个。
P.如段落K-O中的任一项所述的系统,其中所述一个或更多个处理器进一步用于:生成指示与所述环境中的所述一个或更多个第一对象相关联的一个或更多个在先位置的第三信息,所述第三信息包括表示在所述时间段内使用所述一个或更多个第一传感器获得的以及至少基于所述第二信息细化的一个或更多个在先样本的一个或更多个点,其中生成所述第一信息的所述经更新版本或所述第二信息的所述经更新版本中的至少一个是进一步至少基于所述第三信息。
Q.如段落K-P中的任一项所述的系统,其中所述一个或更多个第一传感器包括以下中的一项或更多项:图像传感器;radar传感器;超声波传感器;或LiDAR传感器。
R.如段落K-Q中的任一项所述的系统,其中所述系统被包括在以下中的至少一项中:用于自主或半自主机器的控制系统;用于自主或半自主机器的感知系统;用于执行模拟操作的系统;用于执行数字孪生操作的系统;用于执行光传输模拟的系统;用于执行3D资产的协作内容创建的系统;用于执行深度学习操作的系统;使用边缘设备实现的系统;使用机器人实现的系统;用于执行对话式AI操作的系统;实现一个或更多个大语言模型LLM的系统;用于生成合成数据的系统;包含一个或更多个虚拟机VM的系统;至少部分地在数据中心中实现的系统;或至少部分地使用云计算资源实现的系统。
S.一种处理器,包括:一个或更多个处理单元,所述一个或更多个处理单元用于:生成与对应于环境的占用表示或关联于在所述环境中检测到的一个或更多个对象的一个或更多个属性中的至少一个相关联的一个或更多个经更新版本,其中所述占用表示是使用一个或更多个神经网络并且至少基于使用一个或更多个第一传感器模态的一个或更多个第一传感器获得的第一传感器数据生成的,以及所述一个或更多个属性是使用一个或更多个算法过程并且至少基于使用不同于所述一个或更多个第一传感器模态的一个或更多个第二传感器模态的一个或更多个第二传感器获得的第二传感器数据确定的。
T.如段落S所述的处理器,其中所述处理器被包括在以下中的至少一项中:用于自主或半自主机器的控制系统;用于自主或半自主机器的感知系统;用于执行模拟操作的系统;用于执行数字孪生操作的系统;用于执行光传输模拟的系统;用于执行3D资产的协作内容创建的系统;用于执行深度学习操作的系统;使用边缘设备实现的系统;使用机器人实现的系统;用于执行对话式AI操作的系统;实现一个或更多个大语言模型LLM的系统;用于生成合成数据的系统;包含一个或更多个虚拟机VM的系统;至少部分地在数据中心中实现的系统;或至少部分地使用云计算资源实现的系统。
Claims (20)
1.一种方法,包括:
使用一个或更多个神经网络并且至少基于使用一个或更多个第一传感器模态的一个或更多个第一传感器生成的第一传感器数据,生成指示与环境中的一个或更多个第一对象相关联的一个或更多个第一位置的第一数据;
至少基于使用不同于所述一个或更多个第一传感器模态的一个或更多个第二传感器模态的一个或更多个第二传感器生成的第二传感器数据,生成指示与所述环境中的一个或更多个第二对象相关联的一个或更多个第一属性的第二数据;
至少基于所述第一数据的至少第一部分和所述第二数据的至少第二部分生成第三数据,所述第三数据包括以下中的至少一项:
指示与所述一个或更多个第一对象相关联的一个或更多个第二位置的所述第一数据的经更新版本;或
指示与所述一个或更多个第二对象相关联的一个或更多个第二属性的所述第二数据的经更新版本;以及
至少基于所述第三数据执行关于机器的控制的一个或更多个操作。
2.如权利要求1所述的方法,其中:
所述第一数据是指示在时间实例处与所述机器周围的所述环境中的所述一个或更多个第一对象相关联的所述一个或更多个第一位置的即时数据,以及
所述第二数据是时间数据,并且所述一个或更多个第一属性在至少部分地先于所述时间实例的时间段内被跟踪。
3.如权利要求1所述的方法,其中:
所述第一数据进一步指示所述环境的一个或更多个被遮挡部分,以及
所述第一数据的所述经更新版本进一步指示所述环境的所述一个或更多个被遮挡部分是否被所述一个或更多个第一对象中的至少一个第一对象或所述一个或更多个第二对象中的至少一个第二对象占据。
4.如权利要求1所述的方法,其中:
所述一个或更多个第一属性中的属性包括以下中的至少一项:
与所述一个或更多个第二对象中的对象相关联的第一包围形状,
与所述对象相关联的第一位置,
与所述对象相关联的第一姿态,
与所述对象相关联的第一轨迹,或
与所述对象相关联的第一分类,以及
所述一个或更多个第二属性中的属性包括以下中的至少一项:
与所述对象相关联的第二包围形状,
与所述对象相关联的第二位置,
与所述对象相关联的第二姿态,
与所述对象相关联的第二轨迹,或
与所述对象相关联的第二分类。
5.如权利要求1所述的方法,其中所述第一数据是从自上而下的角度对所述环境的密集占用表示,所述密集占用表示包括表示在时间实例处使用所述一个或更多个第一传感器获得的一个或更多个样本的一个或更多个点,其中所述一个或更多个点中的一个或更多个第一点对应于与所述一个或更多个第一对象相关联的所述一个或更多个第一位置,并且所述一个或更多个点中的一个或更多个第二点对应于在所述时间实例处所述环境中的一个或更多个未占用位置。
6.如权利要求5所述的方法,其中所述一个或更多个点的一个或更多个值对应于与所述一个或更多个样本相关联的高度或置信度中的至少一个。
7.如权利要求1所述的方法,进一步包括:
确定所述一个或更多个第一对象中的第一对象对应于所述一个或更多个第二对象中的第二对象,
其中生成所述第三数据进一步至少基于与所述第二对象相对应的所述第一对象。
8.如权利要求1所述的方法,进一步包括:
生成指示与所述环境中的所述一个或更多个第一对象相关联的一个或更多个在先位置的第四数据,所述第四数据包括表示在时间段内使用所述一个或更多个第一传感器获得的以及至少基于所述一个或更多个第一属性细化的一个或更多个在先样本的一个或更多个点;
其中生成所述第三数据进一步至少基于所述第四数据。
9.如权利要求8所述的方法,其中所述第四数据中包括的所述一个或更多个点中的第一点指示与所述一个或更多个第一对象中的对象相关联的速度。
10.如权利要求1所述的方法,进一步包括:使所述机器至少基于所述第一数据的所述经更新版本或所述第二数据的所述经更新版本中的至少一个来执行一个或更多个操作。
11.一种系统,包括:
一个或更多个处理器,所述一个或更多个处理器用于:
获得指示在时间实例处与环境中的一个或更多个第一对象相关联的一个或更多个位置的第一信息,所述第一信息是使用一个或更多个神经网络并且至少基于使用机器的一个或更多个第一传感器获得的第一传感器数据生成的;
获得指示与所述环境中的一个或更多个第二对象相关联的一个或更多个属性的第二信息,所述第二信息是至少基于在至少部分地先于所述时间实例的时间段内使用所述机器的一个或更多个第二传感器获得的第二传感器数据确定的;
生成以下中的至少一项:
至少基于所述第二信息的所述第一信息的经更新版本,所述第一信息的所述经更新版本至少指示与所述一个或更多个第一对象相关联的一个或更多个经更新位置;或
至少基于所述第一信息的所述第二信息的经更新版本,所述第二信息的所述经更新版本至少指示与所述一个或更多个第二对象相关联的一个或更多个经更新属性。
12.如权利要求11所述的系统,其中所述第一信息与所述时间实例相关联,并且所述第一信息的所述经更新版本是与所述时间实例和所述时间段的至少一部分相关联的时间信息。
13.如权利要求11所述的系统,其中:
所述第一信息指示在所述时间实例处所述环境的一个或更多个被遮挡部分,以及
所述第一信息的所述经更新版本进一步指示所述环境的所述一个或更多个被遮挡部分是否被所述一个或更多个第一对象中的至少一个第一对象或所述一个或更多个第二对象中的至少一个第二对象占据。
14.如权利要求11所述的系统,其中:
所述一个或更多个经更新属性中的属性包括以下中的至少一项:
与所述一个或更多个第二对象中的对象相关联的包围形状,
与所述对象相关联的位置,
与所述对象相关联的姿态,
与所述对象相关联的轨迹,或
与所述对象相关联的分类。
15.如权利要求11所述的系统,其中:
所述第一信息是从自上而下的角度所述环境的密集占用表示,所述密集占用表示包括表示在所述时间实例处使用所述一个或更多个第一传感器获得的一个或更多个样本的一个或更多个点,
所述一个或更多个点中的一个或更多个第一点对应于与所述一个或更多个第一对象相关联的所述一个或更多个位置,
所述一个或更多个点中的一个或更多个第二点对应于在所述时间实例处所述环境中的一个或更多个未占用位置,以及
所述一个或更多个点中的一个或更多个值对应于与所述一个或更多个样本相关联的高度或置信度中的至少一个。
16.如权利要求11所述的系统,其中所述一个或更多个处理器进一步用于:生成指示与所述环境中的所述一个或更多个第一对象相关联的一个或更多个在先位置的第三信息,所述第三信息包括表示在所述时间段内使用所述一个或更多个第一传感器获得的以及至少基于所述第二信息细化的一个或更多个在先样本的一个或更多个点,其中生成所述第一信息的所述经更新版本或所述第二信息的所述经更新版本中的至少一个是进一步至少基于所述第三信息。
17.如权利要求11所述的系统,其中所述一个或更多个第一传感器包括以下中的一项或更多项:
图像传感器;
雷达传感器;
超声波传感器;或
激光雷达传感器。
18.如权利要求11所述的系统,其中所述系统被包括在以下中的至少一项中:
用于自主或半自主机器的控制系统;
用于自主或半自主机器的感知系统;
用于执行模拟操作的系统;
用于执行数字孪生操作的系统;
用于执行光传输模拟的系统;
用于执行3D资产的协作内容创建的系统;
用于执行深度学习操作的系统;
使用边缘设备实现的系统;
使用机器人实现的系统;
用于执行对话式AI操作的系统;
实现一个或更多个大语言模型LLM的系统;
用于生成合成数据的系统;
包含一个或更多个虚拟机VM的系统;
至少部分地在数据中心中实现的系统;或
至少部分地使用云计算资源实现的系统。
19.一种处理器,包括:
一个或更多个处理单元,所述一个或更多个处理单元用于:生成与对应于环境的占用表示或关联于在所述环境中检测到的一个或更多个对象的一个或更多个属性中的至少一者相关联的一个或更多个经更新版本,其中所述占用表示是使用一个或更多个神经网络并且至少基于使用一个或更多个第一传感器模态的一个或更多个第一传感器获得的第一传感器数据生成的,以及所述一个或更多个属性是使用一个或更多个算法过程并且至少基于使用不同于所述一个或更多个第一传感器模态的一个或更多个第二传感器模态的一个或更多个第二传感器获得的第二传感器数据确定的。
20.如权利要求19所述的处理器,其中所述处理器被包括在以下中的至少一项中:
用于自主或半自主机器的控制系统;
用于自主或半自主机器的感知系统;
用于执行模拟操作的系统;
用于执行数字孪生操作的系统;
用于执行光传输模拟的系统;
用于执行3D资产的协作内容创建的系统;
用于执行深度学习操作的系统;
使用边缘设备实现的系统;
使用机器人实现的系统;
用于执行对话式AI操作的系统;
实现一个或更多个大语言模型LLM的系统;
用于生成合成数据的系统;
包含一个或更多个虚拟机VM的系统;
至少部分地在数据中心中实现的系统;或至少部分地使用云计算资源实现的系统。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US18/634,123 US20250321578A1 (en) | 2024-04-12 | 2024-04-12 | Perception data fusion for autonomous systems and applications |
| US18/634,123 | 2024-04-12 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| CN120822167A true CN120822167A (zh) | 2025-10-21 |
Family
ID=97174723
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN202510464168.6A Pending CN120822167A (zh) | 2024-04-12 | 2025-04-14 | 用于自主系统和应用的感知数据融合 |
Country Status (3)
| Country | Link |
|---|---|
| US (1) | US20250321578A1 (zh) |
| CN (1) | CN120822167A (zh) |
| DE (1) | DE102025114120A1 (zh) |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2016090282A1 (en) * | 2014-12-05 | 2016-06-09 | Cowbyt Technologies Llc | Autonomous navigation system |
Family Cites Families (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US11016492B2 (en) * | 2019-02-28 | 2021-05-25 | Zoox, Inc. | Determining occupancy of occluded regions |
| US11353877B2 (en) * | 2019-12-16 | 2022-06-07 | Zoox, Inc. | Blocked region guidance |
| EP4386510A1 (en) * | 2022-12-12 | 2024-06-19 | Argo AI, LLC | Methods and systems for handling occlusions in operation of autonomous vehicle |
-
2024
- 2024-04-12 US US18/634,123 patent/US20250321578A1/en active Pending
-
2025
- 2025-04-10 DE DE102025114120.7A patent/DE102025114120A1/de active Pending
- 2025-04-14 CN CN202510464168.6A patent/CN120822167A/zh active Pending
Also Published As
| Publication number | Publication date |
|---|---|
| US20250321578A1 (en) | 2025-10-16 |
| DE102025114120A1 (de) | 2025-10-16 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN114631117B (zh) | 用于自主机器应用的传感器融合的方法及系统 | |
| JP7756000B2 (ja) | 自律運転アプリケーションのための3次元交差点構造予測 | |
| CN113496290B (zh) | 使用采用模拟对象增强的图像训练机器学习模型 | |
| US20230213945A1 (en) | Obstacle to path assignment for autonomous systems and applications | |
| CN115701623B (zh) | 自主机器应用中范围图像映射的置信传播 | |
| CN117396926A (zh) | 用于自主机器系统和应用的基于感知的标志检测和解释 | |
| US20240378875A1 (en) | Object detection using sensor fusion for autonomous systems and applications | |
| CN116772874A (zh) | 用于自主系统和应用的使用占用网格进行危险检测 | |
| CN119559596A (zh) | 用于自主和半自主系统及应用的路径标记检测和分类 | |
| CN118154639A (zh) | 用于自主系统及应用的对象跟踪管理 | |
| JP2023133049A (ja) | 自律マシンシステム及びアプリケーションのための認知ベースの駐車支援 | |
| CN117581117A (zh) | 自主机器系统和应用中使用LiDAR数据的动态对象检测 | |
| CN120043541A (zh) | 用于汽车系统和应用的速度限制融合 | |
| CN118119981A (zh) | 用于自主系统和应用的使用机器学习的自由空间检测 | |
| CN117516565A (zh) | 用于在自主系统和应用中导航的车道偏置 | |
| CN119540894A (zh) | 用于自主系统和应用的特征位置识别 | |
| CN120070881A (zh) | 用于自主系统和应用的检测图像中的被遮挡对象 | |
| CN119497280A (zh) | 用于自主系统和应用的场景照明检测 | |
| CN120822167A (zh) | 用于自主系统和应用的感知数据融合 | |
| CN120963715A (zh) | 用于自主系统和应用的车道定位确定 | |
| CN120831096A (zh) | 用于自主系统和应用的超声数据扩充 | |
| CN120496004A (zh) | 用于自主系统和应用的使用语言模型的特征识别 | |
| CN120403670A (zh) | 导航道路图与感知车道图匹配 | |
| CN120020794A (zh) | 使用模拟传感器数据的自主机器和应用的视点自适应感知 | |
| CN119459722A (zh) | 确定自主和半自主系统以及应用中的定位准确度 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PB01 | Publication | ||
| PB01 | Publication | ||
| SE01 | Entry into force of request for substantive examination | ||
| SE01 | Entry into force of request for substantive examination |