CN114631117A - 使用机器学习的用于自主机器应用的传感器融合 - Google Patents

使用机器学习的用于自主机器应用的传感器融合 Download PDF

Info

Publication number
CN114631117A
CN114631117A CN202180005884.8A CN202180005884A CN114631117A CN 114631117 A CN114631117 A CN 114631117A CN 202180005884 A CN202180005884 A CN 202180005884A CN 114631117 A CN114631117 A CN 114631117A
Authority
CN
China
Prior art keywords
sensor
data
vehicle
fused
dnn
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
CN202180005884.8A
Other languages
English (en)
Inventor
M·帕克
J·权
M·K·科贾马兹
H-J·徐
B·罗德里格斯·赫尔瓦斯
崔泰银
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 CN114631117A publication Critical patent/CN114631117A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/50Context or environment of the image
    • G06V20/56Context or environment of the image exterior to a vehicle by using sensors mounted on the vehicle
    • G06V20/588Recognition of the road, e.g. of lane markings; Recognition of the vehicle driving pattern in relation to the road
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT 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/00Drive control systems specially adapted for autonomous road vehicles
    • B60W60/001Planning or execution of driving tasks
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT 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/00Drive control systems specially adapted for autonomous road vehicles
    • B60W60/001Planning or execution of driving tasks
    • B60W60/0027Planning or execution of driving tasks using trajectory prediction for other traffic participants
    • B60W60/00272Planning or execution of driving tasks using trajectory prediction for other traffic participants relying on extrapolation of current movement
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S13/00Systems using the reflection or reradiation of radio waves, e.g. radar systems; Analogous systems using reflection or reradiation of waves whose nature or wavelength is irrelevant or unspecified
    • G01S13/86Combinations of radar systems with non-radar systems, e.g. sonar, direction finder
    • G01S13/862Combination of radar systems with sonar systems
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S13/00Systems using the reflection or reradiation of radio waves, e.g. radar systems; Analogous systems using reflection or reradiation of waves whose nature or wavelength is irrelevant or unspecified
    • G01S13/86Combinations of radar systems with non-radar systems, e.g. sonar, direction finder
    • G01S13/865Combination of radar systems with lidar systems
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S13/00Systems using the reflection or reradiation of radio waves, e.g. radar systems; Analogous systems using reflection or reradiation of waves whose nature or wavelength is irrelevant or unspecified
    • G01S13/86Combinations of radar systems with non-radar systems, e.g. sonar, direction finder
    • G01S13/867Combination of radar systems with cameras
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S13/00Systems using the reflection or reradiation of radio waves, e.g. radar systems; Analogous systems using reflection or reradiation of waves whose nature or wavelength is irrelevant or unspecified
    • G01S13/88Radar or analogous systems specially adapted for specific applications
    • G01S13/93Radar or analogous systems specially adapted for specific applications for anti-collision purposes
    • G01S13/931Radar or analogous systems specially adapted for specific applications for anti-collision purposes of land vehicles
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S17/00Systems using the reflection or reradiation of electromagnetic waves other than radio waves, e.g. lidar systems
    • G01S17/88Lidar systems specially adapted for specific applications
    • G01S17/93Lidar systems specially adapted for specific applications for anti-collision purposes
    • G01S17/931Lidar systems specially adapted for specific applications for anti-collision purposes of land vehicles
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/25Fusion techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/292Multi-camera tracking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/50Depth or shape recovery
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/50Depth or shape recovery
    • G06T7/55Depth or shape recovery from multiple images
    • G06T7/593Depth or shape recovery from multiple images from stereo images
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/77Processing 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/80Fusion, i.e. combining data from various sources at the sensor level, preprocessing level, feature extraction level or classification level
    • G06V10/806Fusion, i.e. combining data from various sources at the sensor level, preprocessing level, feature extraction level or classification level of extracted features
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/82Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
    • GPHYSICS
    • 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
    • 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
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT 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
    • B60W2554/00Input parameters relating to objects
    • B60W2554/40Dynamic objects, e.g. animals, windblown objects
    • B60W2554/402Type
    • B60W2554/4029Pedestrians
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT 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
    • B60W2554/00Input parameters relating to objects
    • B60W2554/40Dynamic objects, e.g. animals, windblown objects
    • B60W2554/404Characteristics
    • B60W2554/4044Direction of movement, e.g. backwards
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT 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
    • B60W2556/00Input parameters relating to data
    • B60W2556/35Data fusion
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S13/00Systems using the reflection or reradiation of radio waves, e.g. radar systems; Analogous systems using reflection or reradiation of waves whose nature or wavelength is irrelevant or unspecified
    • G01S13/88Radar or analogous systems specially adapted for specific applications
    • G01S13/93Radar or analogous systems specially adapted for specific applications for anti-collision purposes
    • G01S13/931Radar or analogous systems specially adapted for specific applications for anti-collision purposes of land vehicles
    • G01S2013/9327Sensor installation details
    • G01S2013/93271Sensor installation details in the front of the vehicles
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S15/00Systems using the reflection or reradiation of acoustic waves, e.g. sonar systems
    • G01S15/88Sonar systems specially adapted for specific applications
    • G01S15/93Sonar systems specially adapted for specific applications for anti-collision purposes
    • G01S15/931Sonar systems specially adapted for specific applications for anti-collision purposes of land vehicles
    • G01S2015/937Sonar systems specially adapted for specific applications for anti-collision purposes of land vehicles sensor installation details
    • G01S2015/938Sonar systems specially adapted for specific applications for anti-collision purposes of land vehicles sensor installation details in the bumper area
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/048Activation functions
    • 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/10016Video; Image sequence
    • G06T2207/10021Stereoscopic video; Stereoscopic image sequence
    • 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/20072Graph-based image processing
    • 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/20076Probabilistic image processing
    • 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/20Special algorithmic details
    • G06T2207/20212Image combination
    • G06T2207/20221Image fusion; Image merging
    • 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/30196Human being; Person
    • G06T2207/30201Face
    • 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/30256Lane; Road marking
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/10Image acquisition
    • G06V10/16Image acquisition using multiple overlapping images; Image stitching

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Evolutionary Computation (AREA)
  • Multimedia (AREA)
  • Artificial Intelligence (AREA)
  • Computing Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • General Health & Medical Sciences (AREA)
  • General Engineering & Computer Science (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Computational Linguistics (AREA)
  • Mathematical Physics (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Molecular Biology (AREA)
  • Electromagnetism (AREA)
  • Human Computer Interaction (AREA)
  • Mechanical Engineering (AREA)
  • Transportation (AREA)
  • Automation & Control Theory (AREA)
  • Databases & Information Systems (AREA)
  • Medical Informatics (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Image Analysis (AREA)
  • Traffic Control Systems (AREA)

Abstract

在各个示例中,可以部署多传感器融合机器学习模型——例如深度神经网络(DNN)——来融合来自多个单独机器学习模型的数据。因此,多传感器融合网络可以使用来自多个机器学习模型的输出作为输入来生成融合输出,该融合输出表示来自提供机器学习模型的每个传感器的视场或感觉场的数据,同时考虑学习的源传感器的各个视场的边界或重叠区域之间的关联。通过这种方式,融合的输出可能不太可能包括与环境中的对象或特征有关的重复、不准确或噪声数据,因为可以训练融合网络来解释出现在不同输入表示中的相同对象的多个实例。

Description

使用机器学习的用于自主机器应用的传感器融合
背景技术
安全检测静态和动态物体、障碍物、危险、等待条件、道路标记、标志和/或环境的其他特征的能力对于任何自主或半自主驾驶***来说都是重要的任务。例如,在三维(3D)空间中的环境中检测各种静态和/或动态特征或对象的位置尤其具有挑战性,并且可能会导致数据有噪声或不太准确——尤其关于不同传感器视场之间的边界或重叠区域。
在一些***中,可以部署深度神经网络(DNN)以生成与向DNN提供传感器数据的关联传感器的视场相对应的3D信息。例如,对于出现在图像边界附近的对象或地标,当对象或地标消失并重新出现在传感器的视场中时,这些感知***可能会导致噪声结果——例如,导致检测到和未检测到相同对象或地标之间的快速变化。因此,例如,当跨帧跟踪对象或地标时,结果可能不准确或不精确,并可能导致***性能下降。
为了解决个体DNN的这些潜在缺点,一些常规***采用手工或基于规则的算法将来自多个DNN的输出拼接在一起。然而,在向各个DNN提供传感器数据的相邻传感器之间的视场重叠的情况下,沿边界或重叠区域的融合预测可能不一致或不准确。例如,在具有120度视场的传感器上运行的DNN可以预测距离传感器10米的物体在9米之外,而在具有60度视场的传感器上运行的另一个DNN可以预测该物体在十一米之外。在这样的示例中,尽管各个DNN与对象的实际距离仅相差一米,但输出彼此相差两米,这可能是导致融合输出包括两个独立的重复对象而不是在数据中实际表示的单个对象的足够大的距离差距。然后,底层***可能依赖于存在两个单独对象的这种错误确定,并且错误检测可以通过对象跟踪、规划、控制、避障和/或机器的其他操作传播。
发明内容
本公开的实施例涉及用于自主机器应用的基于机器学习的传感器融合。公开了使用多传感器融合机器学习模型(例如深度神经网络(DNN))来融合来自多个单独机器学习模型的数据的***和方法。例如,可以训练多个机器学习模型以生成可以直接或在后处理之后用作多传感器融合网络的输入的输出。多传感器融合网络作为输入接收到的每个输出可对应于相同类型的表示——例如来自相同视角的光栅化图像(例如,自上而下、以自我为中心的视角)。因此,多传感器融合网络可以使用这些输入来生成融合输出,该融合输出表示来自每种传感器类型的视场或感觉场的数据,同时考虑到源传感器的各个视场的边界或重叠区域之间的学习关联。通过这种方式,融合的输出可能不太可能包括与环境中的对象或特征有关的重复的、不准确的或噪声数据,因为可以训练融合网络来解释出现在不同输入中的相同对象的多个实例。
在一些实施例中,除了使用来自各种源机器学习模型的输出之外或替代地,可以提供各个机器学习模型的内部值——例如,来自各种DNN内部的一个或更多个特征提取器层的输出值——作为多传感器融合网络的输入。在这样的示例中,多传感器融合网络和各个机器学习模型的选择层可以在端到端训练过程中一起训练。因此,由于一个或更多个损失函数而对权重和偏差的更新不仅可以通过多传感器融合网络的层反向传播,还可以通过相应的源机器学习模型的层(例如,特征提取层)反向传播。
为了进一步提高多传感器融合网络的准确度和精度,可以提供一个或更多个附加通道作为多传感器融合网络的输入——例如,在每次迭代中。例如,位置先验通道可用于表示距离估计不确定性——例如,作为概率分布函数(PDF)——在与一个或更多个源传感器的视场或传感器场相对应的一个或更多个像素或点。在一些实施例中,速度图像通道可以用作多传感器融合网络的输入,以表示环境中检测到的对象的相关联速度。例如,不同的传感器或机器学习模型输出可以包括速度信息——例如,在x和/或y方向上——并且对象的相关联速度可用于将对象融合在一起(例如,在速度预测紧密匹配的情况下)或表示两个或更多个对象(例如,在对于位置较近的对象的速度预测大于阈值差的情况下)。此外,基于实例和/或外观的空间和/或时间关联通道可用作多传感器融合网络的附加输入,以帮助识别跨不同输入和/或相似对象外观跨时间步长的相似对象外观——例如,通过使用循环神经网络跨时间跟踪对象。
结果,可以优化向多传感器融合网络提供数据的底层机器学习模型以生成对提高多传感器融合网络的融合输出的准确度有用的输出。附加的输入——例如,位置先验通道、速度图像通道等——可用于进一步提高多传感器融合网络的准确度和精度,尤其对于在相邻传感器视场或感觉场之间的边界或重叠区域。通过降低噪声并提高多传感器融合网络的准确度和精度,依赖多传感器融合网络的这些输出的下游过程——表示静态和动态对象的位置、速度、姿态、外观等或环境中的特征——也可以受益于性能和有效性的提高。
附图说明
下面参考附图详细描述针对自主机器应用的用于基于机器学习的传感器融合的本***和方法,其中:
图1A和图1B是根据本公开的一些实施例的与过程相对应且用于多传感器融合的示例数据流图;
图2A-2E是根据本公开的一些实施例的多传感器融合网络的输入的示例可视化;
图3A-3B是根据本公开的一些实施例的多传感器融合网络的输出的示例可视化;
图4A-4C是根据本公开的一些实施例的自我机器的各种传感器的视场或传感器场以及来自与环境中的感知对象相交的各种传感器的相关光线的示例可视化;
图5是示出了根据本公开的一些实施例的使用多传感器融合网络来使用多个输入通道计算融合输出的方法的流程图;
图6A-6B表示根据本公开的一些实施例的用于训练多传感器融合网络和一个或更多个相关联的源网络的过程的数据流图;
图6C是根据本公开的一些实施例的用于训练多传感器融合网络的地面实况数据的示例;
图7是示出了根据本公开的一些实施例的用于训练多传感器融合网络以使用多个输入通道计算融合输出的方法的流程图;
图8A是根据本公开的一些实施例的示例自主车辆的图示;
图8B是根据本公开的一些实施例的图8A的示例自主车辆的相机位置和视场的示例;
图8C是根据本公开的一些实施例的图8A的示例自主车辆的示例***架构的框图;
图8D是根据本公开的一些实施例的用于在基于云的服务器与图8A的示例自主车辆之间通信的***图;
图9是适合用于实现本公开的一些实施例的示例计算设备的框图;以及
图10是适合用于实现本公开的一些实施例的示例数据中心的框图。
具体实施方式
公开了与针对自主机器应用的基于机器学***台、仓库车辆、越野车辆、与一辆或更多辆拖车相连的车辆、飞行船、船、摆渡车、应急车辆、摩托车、电动或机动自行车、飞机、工程车辆、水下航行器、无人机和/或其他车辆或机器类型。此外,尽管本公开可针对用于自主或半自主机器操作的传感器融合进行描述,但这并非旨在限制,并且本文描述的***和方法可用于增强现实、虚拟现实、混合现实、机器人、安全和监视、自主或半自主机器应用和/或任何其他可以使用传感器融合的技术空间。
参见图1A-1B,图1A-1B是根据本公开的一些实施例的与用于多传感器融合的过程100A和100B(在此统称为“过程100”)相对应的示例数据流图。应当理解,本文所述的这种和其他布置仅作为示例被阐述。除了所示的那些布置和元件之外或代替所示的那些布置和元件,可以使用其他布置和元件(例如,机器、接口、功能、顺序、功能分组等),并且一些元件可以一起省略。进一步,本文描述的许多元件是可被实现为分立或分布式组件,或结合其他组件且在任何合适的组合和位置中实现的功能实体。本文中描述为由实体执行的各个功能可由硬件、固件和/或软件执行。例如,各个功能可通过处理器执行存储在存储器中的指令来执行。在一些实施例中,过程100A和100B可以使用图8A-8D的机器800的组件、特征和/或功能、图9的示例计算设备900和/或图10的示例数据中心1000来执行。
过程100可以包括生成、访问和/或接收来自一个或更多个传感器的传感器数据。作为非限制性示例,可以从车辆(例如,如本文描述的图8A-8D的车辆800)的一个或更多个传感器接收传感器数据。传感器数据可以由车辆800并且在过程100内使用,用于使用对应于相机传感器的相应DNN、RADAR传感器的3D RADAR信号(SRADAR)108(其可单独使用RADAR数据来计算和/或可使用DNN来计算)、超声波传感器的3D超声波信号(SUSS)112(其可单独使用超声波数据来计算和/或可以使用DNN来计算)、LiDAR传感器的3D LiDAR信号(SLiDAR)(未显示)(其可以单独使用LiDAR数据来计算和/或可以使用DNN来计算)来计算二维(2D)和/或三维(3D)信号(S1-Sn)104A-104N,和/或用于使用附加或替代的传感器数据(来自任何传感器模态)和/或对应的DNN来计算其他输出信号。在一些实施例中,传感器数据可用于计算DNN自身内部的输出,例如使用相机信号的DNN的特征输出(F1-Fn)102A-102N、RADAR传感器的RADAR特征输出(FRADAR)106、超声波传感器的超声波特征输出(FUSS)110、LiDAR传感器的LiDAR特征输出(FLiDAR)和/或其他传感器类型的其他特征输出。因此,可以使用任意数量的传感器和使用任意数量的不同传感器模态来计算传感器数据,并且可以直接使用传感器数据(例如,有或没有预处理,例如将原始LiDAR数据转换为点云)和/或可以在DNN或其他类型的机器学习模型处理后使用传感器数据。
在训练期间(本文针对图6A-7更详细进行描述),传感器数据可以使用一个或更多个数据收集车辆来生成,和/或可以被预生成和包括在训练数据集中,所述一个或更多个数据收集车辆生成用于训练DNN(诸如,与特征输出和/或3D信号相关联的(一个或更多个)DNN)的传感器数据。在训练过程中使用的传感器数据可以附加地或替代地使用模拟的传感器数据(例如,使用虚拟环境中的虚拟车辆的一个或更多个虚拟传感器生成的传感器数据)和/或增强的传感器数据(例如,分别使用一个或更多个数据收集车辆生成并使用虚拟数据修改的传感器数据)来生成。一旦在车辆800中被训练和部署,传感器数据就可以由车辆800的一个或更多个传感器生成并由(一个或更多个)DNN处理以计算各种输出信号和/或计算来自各个DNN的一个或更多个特征提取器层的特征输出。
对于非限制示例,传感器数据可以包括来自车辆800的任何传感器的数据,例如并参照图8A-8C,车辆800的任何传感器包括(一个或更多个)RADAR(雷达)传感器860、(一个或更多个)超声波传感器862、一个或更多个LIDAR(激光雷达)传感器864、一个或更多个立体相机868、一个或更多个广角相机870(例如,鱼眼相机)、(一个或更多个)红外相机872、(一个或更多个)环绕相机874(例如,360度相机)、(一个或更多个)远程和/或中程相机878和/或其他传感器类型。作为另一个示例,传感器数据可以包括从虚拟(例如,测试)环境中的虚拟车辆或其他虚拟对象的任何数量的传感器生成的虚拟(例如,模拟或增强)传感器数据。在这样的示例中,虚拟传感器可对应于模拟环境中的虚拟车辆或其他虚拟对象(例如,用于测试、训练和/或验证DNN性能),并且虚拟传感器数据可表示由模拟或虚拟环境内的虚拟传感器捕获的传感器数据。因此,通过使用虚拟传感器数据,本文中描述的(一个或更多个)DNN可在模拟环境中使用模拟或增强的数据来测试、训练和/或验证,这可允许测试现实世界环境之外的更极端的场景,在现实世界环境中此类测试可能是较不安全的。
在一些实施例中,传感器数据可包括表示(一个或更多个)图像的图像数据、表示视频的图像数据(例如,视频的快照)、和/或表示传感器的传感场的表示的传感器数据(例如,LiDAR传感器的深度图、点云、距离图像等,超声波传感器的值图等)。在传感器数据包括图像数据的情况下,可以使用任何类型的图像数据格式,例如但不限于压缩图像(如联合图像专家组(JPEG)或亮度/色度(YUV)格式),作为源自压缩视频格式(如H.264/高级视频编码(AVC)或H.265/高效视频编码(HEVC))的帧的压缩图像,诸如源自红色清晰蓝(RCCB)、红色清晰(RCCC)或其他类型的成像传感器的原始图像,和/或其他格式。另外,在一些示例中,可在过程100内使用传感器数据而无需任何预处理(例如,以原始或捕获格式),而在其他示例中,传感器数据可以经历预处理(例如,噪声平衡、去马赛克、缩放、裁剪、增强、白平衡、色调曲线调整、点云生成、投影图像生成(例如,以生成LiDAR距离图像)等,诸如使用传感器数据预处理器(未示出))。如本文所使用的,传感器数据可以参考未处理的传感器数据、预处理的传感器数据或其组合。
在LiDAR传感器用于生成例如点云的示例中,来自一个或更多个LiDAR传感器的点云可以合并在一起——例如,在执行自我机器800的运动补偿和/或执行数据同步以解决运动相关的LiDAR和时间同步问题之后。类似地,不同传感器类型(例如,RADAR、超声波等)的传感器数据表示(例如,点云、深度图等)的组合也可以在直接使用和/或由一个或更多个机器学习模型处理以计算3D信号之前经历类似的预处理。
对于训练,如本文更详细描述的,传感器数据可包括原始图像(例如,如由一个或更多个图像传感器捕获)、下采样图像、上采样图像、经裁剪或兴趣区(ROI)图像、以其他方式增强的图像和/或其组合。类似地,在传感器数据对应于除图像数据之外的数据的情况下,用于训练的传感器数据可以包括不同的方向、投影、参考点、增强、裁剪、过滤等。在一个或更多个DNN(包括融合DNN 120)的训练期间,可以生成地面实况数据。在一些实施例中,地面实况数据可以以非监督方式自动生成(例如,使用具有至少部分重叠的视场或感觉场的传感器的输出之间的光度一致性损失),例如可以使用注释数据以监督方式生成,和/或可以以半监督方式生成。在注释用于生成地面实况数据的情况下,可以在绘图程序(例如,注释程序)、计算机辅助设计(CAD)程序、加标签程序、适于生成注释的另一类型的程序内生成注释,和/或在一些示例中,可以是手动绘制的。在任何示例中,注释数据可以是合成产生的(例如,从计算机模型或渲染生成),真实产生的(例如,从真实世界数据设计和产生)、机器自动化的(例如,使用特征分析并学习以从数据中提取特征然后生成标签)、人注释的(例如,标签者或注释专家定义标签的位置)和/或其组合(例如,人识别区域的中心或原点和尺寸,机器生成交叉区域的多边形和/或标签)。
在实施例中,每个特征输出或3D信号可以对应于相应的传感器管线或流。例如,第一传感器管线可以包括可以生成图像数据的第一相机,该图像数据可以由第一DNN处理以生成特征输出F1和/或3D信号104A,第二传感器管线可以包括第二相机,该第二相机可以生成可由第二DNN处理以生成特征输出F2和/或3D信号104B的图像数据,第三传感器管线可包括可生成可直接处理的RADAR数据的第一RADAR传感器——例如,使用传感器数据预处理器——和/或可以使用DNN进行处理以生成特征输出FRADAR和/或3D信号108等等。根据实施例,可以使用任何数量的传感器管线。
在过程100使用3D信号的情况下,3D信号可以由每个相应DNN以相同的格式计算,或者可以被转换——例如,使用后处理器——转换成相同的格式。例如,在一些非限制性实施例中,用作融合DNN 120的输入的3D信号可以包括从某个角度生成的光栅化图像(例如,自上而下的鸟瞰图、投影图像,例如距离图像、侧视图图像等),其编码任意数量的输入通道。在自我机器800位于表示的中心的实施例中,光栅化图像——包括使用融合DNN计算的融合输出光栅化图像——可以是以自我为中心的。在其他实施例中,可以从自我机器800的角度生成输入3D信号,并且可以从以自我为中心的角度生成融合输出122。例如,输入通道可以指示环境中对象或特征的形状、方向和/或分类。在这样的示例中,光栅化图像可以包括例如对应于动态参与者的边界形状或长方体,并且可以包括对应于车道标记的线(例如,车道分隔线、道路分隔线、实线、虚线、双线、黄线、白线等)、等待条件(例如,人行横道、停车线等)和/或其他驾驶表面特征、与可驾驶自由空间(例如,自我机器800能够穿越的环境区域)相对应的像素的边界或编码值,和/或其他对象或特征。
在光栅化输入图像(或其他输入表示)中包括的输入通道可以包括但不限于对象或特征位置或占用通道,其可以包括作为通道的对象的起始高度和/或作为通道的对象的结束高度(例如,在生成自上向下视图光栅化图像的地方,像素位置可以表示对应特征或对象的x或y像素位置,其指示相对于自我机器800横向或纵向的位置,以及像素可以用指示对象或特征的高度的一个或更多个高度通道编码)、一个或更多个速度通道(例如,图像的像素可以用x和/或y方向上的速度编码)、对应于一个或更多个对象的方向通道(例如,编码为一个或更多个角度),和/或对应于一个或更多个对象或特征的分类通道,和/或附加或替代通道。此外,这些通道可以针对对应于相应传感器管线的每个不同输入图像进行光栅化。例如,对于包括3D信号104A的相机传感器管线,可以有(一个或更多个)占用通道、(一个或更多个)速度通道、(一个或更多个)分类通道等,并且对于包括3D信号108的RADAR传感器管线,对于每个传感器管线的输入表示,可以有(一个或更多个)占用通道、(一个或更多个)速度通道、(一个或更多个)分类通道等,以此类推。在一些实施例中,融合DNN 120的不同输入信号可以包括不同的通道类型、相同的通道类型或其组合。对于非限制性示例,第一传感器管线可以生成包括(一个或更多个)占用通道和(一个或更多个)速度通道的3D信号104A,而3D信号112可以仅包括(一个或更多个)占用通道。
可被包括在输入2D或3D信号中的不同传感器类型的输入通道的非限制性示例在图1B中示出,其中各种输入信号104、108、112、114、116和/或118可以包括表示所示输入通道类型中的一种或更多种的光栅化图像。3D信号的其他示例,例如3D信号包括光栅化图像的情况,如图2A和图2B中示出。例如,图2A可以表示:来自第一传感器管线的光栅化图像202A,该第一传感器管线包括在自我机器800前面具有视场或感觉场的传感器;以及来自第二传感器管线的第二光栅化图像202B,该第二传感器管线包括在自我机器800后面具有视场或感觉场的传感器。光栅化图像202A和202B可以包括车道线204A、204B等、对象检测206A、206B、206C等(例如,对应于车辆、行人、动物、骑自行车的人、杂物、机器人等)的表示和/或自由空间的指示(例如,像素可以被编码为自由空间或非自由空间)。如关于检测206所示,检测可包括指示检测到的对象的位置、形状和/或方向的边界形状(例如,边界形状中的点指示行进方向或定向位置)。对象检测206、车道线204和/或编码在光栅化图像202中的其他特征或对象还可以包括分类信息、速度信息和/或其他信息。如本文所述,除了图2A-2B中所示的那些之外,附加或替代特征或对象可以被包括在光栅化图像202中,例如等待条件、道路轮廓信息(例如,坑洼、扰动、减速带等),和/或描述周围环境的其他信息。
在一些实施例中,对应于对象或特征的分类信息可以由强度值来表示。例如,如果一个分类对应的强度值x,则两个对象的重叠区域将为x+1,三个对象的重叠区域将为X+2,以此类推。然而,在对象中存在重叠的情况下,对象的边界可以用指示边界的强度值来编码,例如但不限于最大强度值255,其中强度值范围为0-255。结果,可以更容易地识别检测到的对象之间的边界。
不同的输入3D信号可以对应于具有不同视场或感觉场的不同传感器。例如,如图4A-4C以及图8B所示,可以使用各种不同的传感器配置来计算对应于自我机器800的一些或全部环境的3D信号。例如,取决于实施例,视场或感觉场(例如,如图4A-4C所示的视场404A、404B、404C、404D、404E)可以一起构成机器800周围的360度视场,或小于机器800周围的360度视场。此外,在一些实施例中,一个或更多个3D信号以及因此相关联的传感器可以包括机器800周围的360度视场或传感场。例如,旋转LiDAR传感器或360环绕相机可以包括360度视场或感觉场,而相机可以包括30度、60度、120度和/或其他视场(例如,高达360度,例如在环绕相机中)。
在传感器管线对应于不直接计算深度的相机和/或其他传感器类型的情况下,3D信号仍可以包括在光栅化图像或其他输入表示中表示的预测深度值。例如,传感器数据管线中使用的各个DNN可以被训练以使用单个相机图像来预测深度,或者可以被训练以根据具有重叠视场(例如,诸如可以包括如图4A所示的重叠区域406的视场404A和404B)的两个或更多个传感器的输入来预测深度。在一些实施例中,位置先验图像114可以被生成作为融合DNN 120的附加输入,其基于从3D信号的预测深度向融合DNN 120指示对象的预测深度——或指示潜在深度的分布的概率分布函数252(在实施例中被表示为2D高斯表示)。例如,如图2C所示,自我机器800的一个或更多个传感器可以检测对象240A、240B、240C、240D等,如位置先验图像114A中的圆圈所示。在这样的示例中,在对象位置预测基于使用单目相机或位置预测的准确度可能不太理想的其他传感器类型生成的传感器数据的情况下,潜在位置的分布可以被馈送到融合DNN 120以帮助融合DNN 120在融合输出122中生成更准确的预测。因此,对应于每个对象240的椭圆或概率分布函数(PDF)252表示可以指示对象240可以位于的潜在位置(例如,具有对应的置信度值)。对于不同的传感器模态,对应的椭圆或PDF 252可以具有不同的形状。例如,因为相机预测可以沿着射线(例如,图4A的射线402),椭圆或PDF可能在形状上更长和更窄(例如,表示沿射线方向的双峰分布),而RADAR传感器可具有更短但更宽的表示,以解释相应的不准确度或RADAR传感器等。例如,图2D可以示出与RADAR传感器的视场250A内的RADAR传感器预测相对应的不同椭圆或PDF 252。此外,椭圆或PDF的形状可能会有所不同,具体取决于检测位于相应传感器的视场中的哪个位置。例如,参考图2E所示,在视场250B或250C的边缘附近或距传感器更远的椭圆或PDF可能与在视场250的中心或更靠近传感器不同——例如,在边缘,预测可能不如中心准确,因此椭圆或PDF 252的形状可能更大以指示更多可变性。在图2D中针对视场250A示出了类似的表示。
为了生成位置先验图像114——例如图2C的位置先验图像114A或图2E的位置先验图像114B——与使用传感器管线预测的检测对象对应的像素或点(例如,对应于量化的3D位置)可用于检索与相应传感器的视场内的该点或像素相对应的对应学习或确定的椭圆或PDF。例如,图2D可以表示特定传感器的视场250A的椭圆或PDF的子集。尽管图示包括多个椭圆或PDF 252A、252B、252C等,但这并非旨在限制。例如,在一些实施例中,表示视场的每个像素或点可以具有对应的椭圆或PDF 252。在其他实施例中,任何数量的像素或点可以具有对应的椭圆或PDF 252。这些椭圆或PDF 252可以基于特定传感器的历史预测以及这些预测的对应不准确度来学习或确定。这样,当特定传感器在特定点或像素处检测到对象时,可以检索对应的已知椭圆或PDF 252并将其***到位置先验图像114中。
在一些实施例中,如本文所述,代替或除了在每个管线的输入信号中包括一个或更多个通道之外,一个或更多个通道可用于生成单独的输入表示——例如(一个或更多个)速度图像116、(一个或更多个)实例/外观图像118等。例如,使用一个或更多个传感器管线生成的速度信息可用于生成一个或更多个速度图像116和/或一个或更多个实例/外观图像118——例如,时间实例/外观图像和/或空间实例/外观图像。(一个或更多个)速度图像116可以包括对应于x方向、y方向等上的速度的一个或更多个通道。在一些实施例中,如本文所述,可以基于一个或更多个传感器管线的输出来生成(一个或更多个)速度图像116。例如,来自传感器管线的一个或更多个3D信号可以包括速度信息,并且代替或除了在用作融合DNN 120的输入的光栅化图像中编码该信息之外,速度信息可以用于生成对应于(一个或更多个)速度图像116的一个或更多个单独的输入。因此,速度信息可以帮助融合DNN 120确定靠近的对象或特征是相同的对象(例如,相似或相同的速度)还是不同的对象(例如,不同的速度),以及因此如何在融合输出122中表示对象——例如,作为单个对象或作为两个或更多个对象。
作为另一示例,可以使用对应于实例和/或外观空间关联的(一个或更多个)实例/外观图像118。例如,一个或更多个传感器管线可以生成指示特征或对象的描述符的输出。在这样的示例中,可以训练一个或更多个传感器管线中的一个或更多个机器学习模型,以针对对象的每个边界形状/2D长方体/3D长方体生成N维向量——例如,在实施例中,其中N可能等于3。结果,可以为一个或更多个检测到的对象或特征生成N-D向量。因此,可以将使用一个或更多个传感器管线生成的一个或更多个向量相互比较以确定给定帧中存在多少对象实例。在第一向量和第二向量足够相似的情况下(例如,在阈值相似度内),它们可以被确定为对应于相同的对象,并且该信息可以在实例/外观图像118中表示。类似地,实例和/或外观图像可以生成用于对象或特征之间的时间关联。例如,循环神经网络可用于跨帧获取输入向量或实例/外观信息,并生成表示随时间变化的对象实例的实例/外观图像118。在任一示例中,(一个或更多个)实例/外观图像118可以用作融合DNN 120在计算融合输出122时的(一个或更多个)附加输入。例如,实例/外观信息可以帮助融合DNN 120确定靠近的对象或特征是相同对象还是不同对象,以及因此如何在融合输出122中表示对象——例如,作为单个对象或作为两个或更多个对象。
在融合DNN 120的每次迭代中,3D信号104、108、112等、(一个或更多个)位置先验图像114、(一个或更多个)速度图像116和/或(一个或更多个)实例/外观图像118可以作为输入提供给融合DNN 120。融合DNN 120可以处理输入以生成融合输出122——其示例在图3A-3B中示出。融合DNN 120和/或用于生成3D信号的DNN或机器学习模型的一个或更多个可以包括,例如但不限于任何类型的机器学习模型,如使用线性回归、逻辑回归、决策树、支持向量机(SVM)、天然贝叶斯、k最近邻(Knn)、K均值聚类、随机森林、维度减少算法、梯度提升算法、神经网络(例如,自动编码器、卷积、递归、感知器、长/短期记忆(LSTM)、霍普菲尔德、玻尔兹曼、深度置信、解卷积、生成对抗、液态机器等)的(一个或更多个)机器学习模型,和/或其他类型的机器学习模型。
在融合DNN 120和/或用于生成(一个或更多个)3D信号的一个或更多个DNN或机器学习模型包括卷积神经网络(CNN)的实施例中,一个或更多个层可以包括输入层。输入层可保存与各种输入相关联的值。例如,当输入是(一个或更多个)图像(例如,对应于来自3D信号的各种通道的光栅化图像)时,输入层可将表示(一个或更多个)图像的原始像素值的值保存为体积(例如,宽度W、高度H和色彩通道(例如,RGB),诸如32x32x3),和/或批量大小B(例如,在使用批处理的情况下)。
一层或更多层可以包括卷积层。卷积层可以计算连接到输入层(例如,输入层)中的局部区域的神经元的输出,每个神经元计算它们的权重与它们在输入体中所连接到的小区域之间的点积。卷积层的结果可以是另一体积,其中一个维度基于所应用的滤波器的数量(例如,宽度、高度和滤波器的数量,诸如32x32x12,如果12是滤波器的数量)。
一层或更多层可以包括整流线性单元(ReLU)层。ReLU层可以应用逐元件激活函数,例如max(0,x),例如零阈值化。ReLU层的结果体积可以与ReLU层的输入的体积相同。
一层或更多层可以包括池化层。池化层可以沿着空间维度(例如,高度和宽度)执行下采样操作,这可以导致比池化层的输入更小的体积(例如,来自32x32x12输入体积的16x16x12)。在一些示例中,融合DNN 120和/或其他(一个或更多个)DNN可以不包括任何池化层。在这样的示例中,可以使用跨步卷积层来代替池化层。在一些示例中,(一个或更多个)融合DNN 120和/或其他(一个或更多个)DNN(例如,来自图6B的F1、F2等)的特征提取器层可以包括交替的卷积层和池化层,或者可根本不包括池化层。
一层或更多层可包括全连接层。(一个或更多个)全连接层中的每一神经元可连接到先前卷中的每一神经元。全连接层可计算类别得分,且所得的体积可为1x1x类别的数量。在一些示例中,融合DNN 120和/或其他(一个或更多个)DNN作为一个整体可以不使用全连接层,以努力增加处理时间并减少计算资源需求。在这样的示例中,在不使用全连接层的情况下,融合DNN 120和/或其他(一个或更多个)DNN可以被称为全卷积网络。
在一些示例中,一层或更多层可以包括(一个或更多个)去卷积层。然而,术语去卷积的使用可能具有误导性并且不旨在限制。例如,(一个或更多个)去卷积层可以替代地称为转置卷积层或分数步幅卷积层。(一个或更多个)去卷积层可用于对先前层的输出执行上采样。例如,(一个或更多个)去卷积层可用于上采样到与融合DNN 120和/或其他(一个或更多个)DNN的输入(例如3D信号的空间分辨率)的空间分辨率相等的空间分辨率,或用于上采样到下一层的输入空间分辨率。
尽管输入层、卷积层、池化层、ReLU层、去卷积层和全连接层在本文中相对于DNN120来讨论,但这不旨在是限制性的。例如,可以使用附加的或替代的层,诸如归一化层、SoftMax层和/或其他层类型。
可以根据实施例使用融合DNN 120的层的不同顺序和数量。此外,一些层可包括参数(例如,权重和/或偏差),而例如其他层可不包括参数,诸如ReLU层和池化层。在一些示例中,参数可由融合DNN 120在训练期间学习。进一步,一些层可以包括附加的超参数(例如,学习速率、步幅、时期、内核大小、过滤器数量、池化层的池化类型等),诸如(一个或更多个)卷积层、(一个或更多个)去卷积层和(一个或更多个)池化层,而其他层可以不包括,诸如(一个或更多个)ReLU层。可以使用各种激活函数,包括但不限于ReLU、leaky ReLU、sigmoid、双曲正切(tanh)、指数线性单元(ELU)等。参数、超参数和/或激活函数不受限制,并且可以根据实施例而不同。
在一些实施例中,如关于图6B所描述的,用于生成3D信号的一个或更多个DNN可包括可用于生成3D信号104、108、112等的主干T、特征提取器层F和/或头部H。在示例中,并且如本文所述,除了使用从各个输入源生成的3D信号104、108、112等之外或替代地,融合DNN120可以直接获取特征提取器层的输出(例如,图1A中的F1-Fn)作为输入以生成融合输出122。在这样的示例中,各个DNN的特征提取器层可以直接连接到(一个或更多个)融合DNN120的一个或更多个层,使得在训练期间,可以将来自融合DNN 120的反向传播传递到(一个或更多个)个体DNN以一起训练(一个或更多个)个体DNN和融合DNN 120。
融合DNN 120可以使用(一个或更多个)个体DNN的一层或更多层的输出,3D信号104、108、112等,(一个或更多个)位置先验图像114,(一个或更多个)速度图像116和/或实例外观图像118来生成融合输出122。在实施例中,融合输出122可以类似于3D信号——例如,融合输出122可以包括表示或可以用于生成光栅化图像(例如,类似于图3A-3B中所示的那些)的数据。例如,融合输出可以表示自上而下的鸟瞰图像、投影图像,例如距离图像、侧视图图像等,其编码任意数量的输出通道(例如,类似于针对图1A-1B描述的输入通道中的一个或更多个)。在自我机器800位于表示的中心的实施例中,使用融合DNN计算的融合输出光栅化图像可以以自我为中心。融合输出122可以包括一个或更多个输入源的一个或更多个视场或感觉场的融合表示。例如,在图2A的光栅化图像包括面向前方相机的视场并且图2B的光栅化图像包括面向后方相机的视场的情况下,图3A的融合输出300A可以表示图2A的光栅化图像和图2B的光栅化图像两者。图3B可以包括融合输出300B的另一可视化,其包括对象206(包括对象206D)和车道204(包括车道204C和204D)。
图2A、2B和3A的图示仅用于示例目的,而不旨在进行限制。例如,取决于实施例,3D信号可以代表自我车辆800的周围环境的更小和/或更大的部分,并且可以代表任意数量的输入源的融合。此外,一个或更多个3D信号可以包括与一个或更多个其他3D信号的视场或感觉场重叠的视场或感觉场,使得融合DNN 120可以学习使用例如立体相机功能更准确地预测距离。
融合输出122可由自主驾驶软件堆栈(“驱动堆栈”)124使用以执行车辆800(和/或其他自我机器类型)的一个或更多个操作。例如,驱动堆栈124可以包括可以用于生成、更新和/或定义世界模型的世界模型管理器。世界模型管理器可以使用由驱动堆栈124的(一个或更多个)感知组件生成和接收的信息。(一个或更多个)感知组件可以包括障碍物感知器、路径感知器、等待感知器、地图感知器和/或其他(一个或更多个)感知组件。例如,世界模型可以至少部分地基于障碍物、路径和等待条件的可供性来定义,障碍物、路径和等待条件可以由障碍物感知器、路径感知器、等待感知器和/或地图感知器实时或接近实时地感知。世界模型管理器可以基于来自障碍物感知器、路径感知器、等待感知器、地图感知器和/或自我机器800的其他组件的新生成和/或接收的输入(例如,数据)而不断更新世界模型。例如,世界模型管理器和/或感知组件可以使用融合输出122来执行一个或更多个操作。
世界模型可用于帮助通知驱动堆栈124的(一个或更多个)规划组件、(一个或更多个)控制组件、(一个或更多个)避障组件和/或(一个或更多个)致动组件。障碍物感知器可以执行障碍物感知,其可以基于车辆800被允许驾驶或能够驾驶的位置,以及车辆800可以在不与被车辆800感测到(并且例如在融合输出122中表示)的障碍物(例如,诸如结构、实体、车辆等的物体)碰撞的情况下以多快的速度行驶。
路径感知器可以执行路径感知,例如通过感知在特定情况下可用的标称路径。在一些示例中,路径感知器可以进一步考虑路径感知的车道改变。车道图可以表示车辆800可用的一个或更多个路径,并且可以像高速公路入口匝道上的单个路径一样简单。在一些示例中,车道图可以包括到期望车道的路径和/或可以指示沿着高速公路(或其他道路类型)的可用变化,或者可以包括附近的车道、车道变化、分叉、转弯、立交桥、合并和/或其他信息。
由于规则、约定和/或实际考虑,等待感知器可负责确定对车辆800的约束。例如,规则、惯例和/或实际考虑可与交通信号灯、多路停靠点、让路、并道、收费站、大门、警察或其他应急人员、道路工作人员、停靠的公共汽车或其他车辆、单向桥仲裁、渡口等有关。在一些示例中,等待感知器可负责确定对车辆800的纵向约束,该纵向约束要求车辆等待或减速直到某个条件为真。在一些示例中,例如,等待条件由潜在障碍物引起,例如交叉路口的交通,其通过障碍物感知器直接感测而可能无法感知(例如,通过使用来自传感器的传感器数据,因为障碍物可能从传感器的视场中被遮挡)。结果,等待感知器可以通过解决并非总是通过可被感知和/或学习的规则和惯例立即感知的障碍物的危险来提供态势感知。因此,可以利用等待感知器来识别潜在障碍物并实施一个或更多个控制(例如,减速、停止等),这仅依靠障碍物感知器可能是不可能的。
地图感知器可以包括识别行为所通过的机制,并且在一些示例中,用于确定在特定场所应用什么约定的具体示例。
(一个或更多个)规划组件可以包括路线规划器、车道规划器、行为规划器和行为选择器,以及其他组件、特征和/或功能。路线规划器可以使用来自地图感知器、地图管理器和/或定位管理器的信息以及其他信息来生成可以由GNSS航路点(例如,GPS航路点)组成的规划路径。航路点可以代表车辆800到未来的特定距离,例如城市街区的数量、公里/英里的数量、米/英尺的数量等,其可以用作车道规划器的目标。
车道规划器可以使用车道图(例如,来自路径感知器的车道图,其可以至少部分地使用融合输出122来生成)、车道图中的对象姿态(例如,根据本地化管理器),和/或从路线规划器到未来的距离的目标点和方向作为输入。目标点和方向可以映射到车道图中的最佳匹配可驾驶点和方向(例如,基于GNSS和/或罗盘方向)。然后可以从车道图中的当前边在车道图上执行图搜索算法以找到到目标点的最短路径。
行为规划器可以确定车辆800的基本行为的可行性,例如留在车道中或左右变换车道,从而使可行的行为可以与从车道规划器输出的最期望的行为相匹配。例如,如果期望的行为被确定为不安全和/或不可用,则可以改为选择默认行为(例如,当期望的行为或改变车道不安全时,默认行为可以是留在车道中)。
(一个或更多个)控制组件可以尽可能并在车辆800的能力范围内遵循从规划组件的行为选择器接收到的轨迹或路径(横向和纵向)。
(一个或更多个)避障组件可以帮助自主车辆800避免与物体(例如,移动物体和静止物体)的碰撞。在一些示例中,可以独立于需要遵守交通规则和礼貌驾驶的车辆800的组件、特征和/或功能来使用(一个或更多个)避障组件。在这样的示例中,(一个或更多个)避障组件可以忽略交通法规、道路规则和礼貌的驾驶规范,以确保车辆800和任何物体之间不会发生碰撞。因此,避障层可以是独立于道路层规则的层,并且避障层可以确保车辆800仅从避障的角度执行安全动作。另一方面,道路层的规则可以确保车辆遵守交通法规和惯例,并遵守合法和惯例的通行权。
在任何示例中,驱动堆栈124的一个或更多个层、组件、特征和/或功能可以使用融合输出122来生成用于世界模型管理、规划、控制、致动、碰撞或避障等的输出,以帮助自我机器800在环境中导航。
现在参考图5,本文描述的方法500的每个框包括可以使用硬件、固件和/或软件的任何组合来执行的计算过程。例如,可以通过处理器执行存储在存储器中的指令来执行各种功能。方法500也可以体现为存储在计算机存储介质上的计算机可用指令。方法500可以由独立运行的应用程序、服务或托管服务(独立运行的或与另一托管服务组合)或另一产品的插件提供,仅举几例。此外,作为示例,针对图1A-1B的过程100A和100B来描述方法500。然而,该方法500可以附加地或替代地由任何一个***或过程和***的任何组合在任何一个过程内执行,包括但不限于本文描述的那些。
图5是示出了根据本公开的一些实施例的用于使用多传感器融合网络来使用多个输入通道来计算融合输出的方法500的流程图。在框B502,方法500包括接收表示至少第一光栅化图像的第一数据,第一光栅化图像至少部分地基于第一传感器数据生成,第一传感器数据使用第一类型的第一传感器生成。例如,可以使用第一传感器管线来生成第一3D信号104、108、112等。
在框B504,方法500包括接收表示至少第二光栅化图像的第二数据,第二光栅化图像至少部分地基于第二传感器数据生成,第二传感器数据使用第二类型的第二传感器生成。例如,可以使用第二传感器管线来生成第二3D信号104、108、112等。
在框B506,方法500包括使用融合DNN并至少部分地基于第一数据和第二数据来计算表示融合的光栅化图像的第三数据。例如,融合DNN 120可以使用第一3D信号、第二3D信号和/或一个或更多个其他3D信号来计算融合输出122。在一些实施例中,如本文所述,除了使用3D信号作为输入之外或替代地,融合DNN 120可以使用对应于一个或更多个传感器管线的一个或更多个单独DNN的一个或更多个特征提取器层的输出。
在框B508,方法500包括至少部分地基于第三数据使用自主机器来执行一个或更多个操作。例如,自我机器800的驱动堆栈124可以使用融合输出122来执行一个或更多个操作,例如世界模型管理、规划、控制、致动、避障等。
参考图6A-6B,图6A-6B一起表示根据本公开的一些实施例的用于训练多传感器融合网络和一个或更多个相关联的源网络的过程600的数据流图。例如,参考图6B,单独的传感器管线可以包括单独的或源DNN,其包括例如一个或更多个主干层604(例如,(一个或更多个)主干层604A、604B和604N)、一个或更多个特征提取器层606(例如,特征提取器层606A、606B和606N),和/或一个或更多个头部或输出层608(例如,输出头608A、608B和608N)。传感器管线可以包括传感器602(例如,传感器602A、602B和602N),其生成传感器数据——例如本文针对图1A-1B描述的任何传感器数据——其可以使用源DNN进行处理以生成3D信号(例如,3D信号104A、104B和104N)。例如,传感器可以包括相机、LiDAR传感器、RADAR传感器、超声波传感器和/或可用于为各个DNN生成传感器数据的其他传感器类型。使用用于计算对应于源DNN的损失612的一个或更多个损失函数,源DNN输出的3D信号可以与地面实况数据614进行比较。地面实况数据614可以使用地图数据(例如,来自HD地图或其他地图类型,例如用于定位的那些地图)生成,该地图数据可以指示静态特征或对象的位置,例如车道线、等待条件、标志、固定物体和/或类似物。在一些实施例中,可以使用2D或3D地面实况生成管线来生成地面实况614,例如在2021年2月26日提交的美国非临时申请No.17/187,350中描述的,该申请通过引用全文并入本文。地面实况数据614可以包括光栅化图像,包括关于图1A-1B中的3D信号104、108、112等描述的任何通道。例如,源DNN的输出3D信号104可以对应于光栅化图像,或者可以用于生成光栅化图像,并且可以将光栅化图像与地面实况光栅化图像进行比较以计算损失622(例如,损失622A、622B、和622N)。这些损失可用于使用例如反向传播来更新源DNN的参数(例如,权重和偏差),以帮助训练(一个或更多个)DNN,直到它们收敛到可接受的准确度或精度水平。
除了使用地面实况数据614计算损失622之外或替代地,可以在610计算光度一致性损失以比较来自具有至少部分地重叠视场的传感器602的两个或更多个源DNN的输出3D信号104。例如,类似于为立体相机生成视差图,光度一致性损失624(例如,3D信号104A和3D信号104B之间和/或3D信号104B和3D信号104A之间的损失624A,3D信号104N和3D信号104K之间和/或3D信号104K和3D信号104N等之间的损失624B)可以被计算以比较两个或更多个源DNN的输出,以确保至少在重叠(例如,图4A的重叠406)的视场或传感器场的部分的一致性。因此,关于3D信号104A和3D信号104B,坐标转换器618可以将3D信号104A转换为3D信号104B的坐标空间以生成3D信号616A,然后通过比较转换后的3D信号616A与3D信号104B来计算一致性损失624A以确定信号之间的一致性或缺乏一致性。因此,在重叠区域不一致的情况下——例如,转换后的3D信号616A中的对象与3D信号104B中的相同对象(例如,在位置、深度、方向、类别等方面)不同,损失624A可能更高并且对应于3D信号104A和/或3D信号104B的源DNN可能受到惩罚(例如,可以更新参数)。通过使用坐标转换器618将3D信号104B转换成3D信号104A的坐标空间以生成3D信号616B,通过使用坐标转换器618将3D信号104N转换成3D信号104K的坐标空间以生成3D信号616C,通过使用坐标转换器618将3D信号104K转换成3D信号104N的坐标空间来生成3D信号616D等等,可以类似地执行该过程。因此,通过计算损失622和/或损失624,可以训练源DNN直到它们达到可接受的准确度或精确度水平。
与融合DNN 120分开训练(一个或更多个)源DNN的一个好处是训练中使用的传感器数据或模拟传感器数据不需要依赖于输入图像的逼真渲染。例如,因为3D信号104、108、112等可以表示使用各种通道生成的光栅化图像,所以可以在不需要逼真的传感器数据的情况下生成用于训练的光栅化图像——例如,因为融合DNN 120的输入是光栅化图像。
类似地,并且关于图6A和6B,融合DNN 120的融合输出122可以与对应于融合输出的地面实况数据614进行比较以计算损失630。融合输出122的地面实况数据614可以使用类似的技术或数据来生成作为源DNN的地面实况数据614。因此,损失630可用于更新融合DNN120的参数,直到融合DNN 120收敛到可接受的准确度或精度水平。尽管其他输入类型——例如位置先验通道114、(一个或更多个)速度图像116和/或(一个或更多个)实例/外观图像118未在图图6A-6B中示出,但这不旨在进行限制,并且在一些实施例中,这些(一个或更多个)输入通道中的一个或更多个也可以在每次训练迭代时作为输入提供给融合DNN 120。
例如,并且关于图6C,融合输出646可以包括对象648,并且地面实况数据614可以指示作为地面实况对象650的对象的实际位置。在这样的示例中,计算的损失630可以表示这种差异,并且可以更新融合DNN 120的参数。在来自源DNN的3D信号对应于光栅化图像(例如,包括更少或等量的自我机器800的周围环境)的示例中,可以使用3D信号的对应光栅化图像类似地计算损失622。
在一些实施例中,如本文所述,融合DNN 120的输入可以对应于特征输出102——例如,源DNN的特征提取器层606的输出——使得源DNN的层可以对应于用于融合DNN 120的单独的输入干线或层流。在这样的示例中,可以连接源DNN的特征提取器层606的节点和融合DNN 120的层(例如,输入层)的节点之间的连接。这样,可以同时训练融合DNN 120和源DNN,使得为融合DNN 120计算的损失可以反向传播到源DNN。
现在参考图6,本文描述的方法700的每个框包括可以使用硬件、固件和/或软件的任何组合来执行的计算过程。例如,可以通过处理器执行存储在存储器中的指令来执行各种功能。方法700也可以体现为存储在计算机存储介质上的计算机可用指令。方法700可以由独立运行的应用程序、服务或托管服务(独立运行的或与另一托管服务组合)或另一产品的插件提供,仅举几例。此外,作为示例,方法700相对于图6A-6B的过程600被描述。然而,该方法700可以附加地或替代地由任何一个***或过程和***的任何组合在任何一个过程内执行,包括但不限于本文描述的那些。
图7是示出了根据本公开的一些实施例的用于训练多传感器融合网络以使用多个输入通道计算融合输出的方法700的流程图。在框B702,方法700包括通过计算关于个体DNN的输出的一个或更多个损失以及通过计算关于两个或更多个个体DNN的输出的一个或更多个一致性损失来生成多个经训练的DNN。例如,可以使用地面实况数据614训练源DNN以生成损失622,并且可以使用光度一致性损失624来训练源DNN。
在框B704,方法700包括通过计算关于融合输出的一个或更多个损失来生成经训练的融合DNN,融合输出使用多个经训练的DNN的输出来计算。例如,一旦训练,源DNN可以计算输出,并且这些输出可以用作融合DNN 120的输入以训练融合DNN 120。例如,融合DNN120可以计算(一个或更多个)融合输出122和可以将(一个或更多个)融合输出122与地面实况数据614进行比较以计算(一个或更多个)损失630。在一些示例中,融合DNN 120可以额外地或替代地使用模拟或制造的数据(例如,光栅化图像)被训练,而无需使用源DNN的实际输出。
在框B706,方法700包括在自我机器中部署多个经训练的DNN和融合DNN。例如,一旦被训练,融合DNN 120和源DNN可以被部署在自我机器800中。
示例自主车辆
图8A是根据本公开的一些实施例的示例自主车辆800的图示。自主车辆800(可替代地,在本文称为“车辆800”)可以包括但不限于,客运车辆,如小汽车、卡车、公共汽车、第一响应车辆、摆渡车、电动或机动自行车、摩托车、消防车、警用车辆,救护车、船、施工车辆、水下船只、无人机、与拖车相连的车辆和/或另一类型的车辆(例如,无人驾驶的和/或容纳一个或更多个乘客的车辆)。自主车辆通常按照美国运输部的一个部门——国家公路交通安全管理局(NHTSA)以及汽车工程师协会(SAE)“Taxonomy and Definitions for TermsRelated to Driving Automation Systems for On-Road Motor Vehicles”(2018年6月15日发布的标准No.J3016-201806,2016年9月30日发布的标准No.J3016-201609,以及该标准的先前和未来的版本)定义的自动化级别进行描述。车辆800可能够实现符合自主驾驶级别的3级-5级中的一个或更多个的功能。例如,取决于实施例,车辆800可能够实现条件自动化(3级)、高自动化(4级)和/或全自动化(5级)。
车辆800可以包括诸如底盘、车身、车轮(例如2个、4个、6个、8个、18个等)、轮胎、车轴之类的部件以及车辆的其他部件。车辆800可以包括推进***850,例如内燃机、混合动力发电厂、全电动发动机和/或另一种推进***类型。推进***850可以连接到可以包括变速器的车辆800的传动系以便实现车辆800的推进。可以响应于接收到来自油门/加速器852的信号而控制推进***850。
可以包括方向盘的转向(steering)***854可以用来在推进***850操作时(例如在车辆运动时)使车辆800转向(例如沿着希望的路径或路线)。转向***854可以接收来自转向致动器856的信号。对于全自动(5级)功能而言,方向盘可以是可选的。
制动传感器***846可以用来响应于接收到来自制动致动器848和/或制动传感器的信号而操作车辆制动器。
可以包括一个或更多个片上***(SoC)804(图8C)和/或一个或更多个GPU的一个或更多个控制器836可以向车辆800的一个或更多个部件和/或***提供(例如表示命令的)信号。例如,一个或更多个控制器可以发送经由一个或更多个制动致动器848操作车辆制动器、经由一个或更多个转向致动器856操作转向***854、经由一个或更多个油门/加速器852操作推进***850的信号。一个或更多个控制器836可以包括一个或更多个板载(例如集成)计算设备(例如超级计算机),所述计算设备处理传感器信号并且输出操作命令(例如表示命令的信号),以实现自主驾驶和/或辅助人类驾驶员驾驶车辆800。一个或更多个控制器836可以包括用于自主驾驶功能的第一控制器836、用于功能性安全功能的第二控制器836、用于人工智能功能(例如计算机视觉)的第三控制器836、用于信息娱乐功能的第四控制器836、用于紧急情况下的冗余的第五控制器836和/或其他控制器。在一些示例中,单个控制器836可以处理上述功能中的两个或更多,两个或更多控制器836可以处理单个功能,和/或其任意组合。
一个或更多个控制器836可以响应于接收自一个或更多个传感器的传感器数据(例如传感器输入),提供用于控制车辆800的一个或更多个部件和/或***的信号。传感器数据可以接收自例如且不限于全球导航卫星***传感器858(例如全球定位***传感器)、RADAR传感器860、超声传感器862、LIDAR传感器864、惯性测量单元(IMU)传感器866(例如加速度计、陀螺仪、磁罗盘、磁力计等)、麦克风896、立体相机868、广角相机870(例如鱼眼相机)、红外相机872、环绕相机874(例如360度相机)、远程和/或中程相机898、速度传感器844(例如用于测量车辆800的速率)、振动传感器842、转向传感器840、制动传感器(例如作为制动传感器***846的部分)和/或其他传感器类型。
控制器836中的一个或更多个可以接收来自车辆800的仪表组832的输入(例如由输入数据表示),并且经由人机接口(HMI)显示器834、听觉信号器、扬声器和/或经由车辆800的其他部件提供输出(例如输出数据、显示数据等表示的)。这些输出可以包括诸如车辆速度、速率、时间、地图数据(例如图8C的HD地图822)、位置数据(例如,车辆800例如在地图上的位置)、方向、其他车辆的位置(例如占用网格)之类的信息,如控制器836所感知的关于对象和对象状态的信息等等。例如,HMI显示器834可以显示关于一个或更多个对象(例如街道指示牌、警示牌、交通灯变化等)的存在性的信息和/或关于车辆已经做出、正在做出或者将会做出的驾驶机动的信息(例如现在变道、两英里后离开34B,等等)。
车辆800还包括网络接口824,其可以使用一个或更多个无线天线826和/或调制解调器通过一个或更多个网络通信。例如,网络接口824可能够通过LTE、WCDMA、UMTS、GSM、CDMA2000等通信。一个或更多个无线天线826也可以使用诸如蓝牙、蓝牙LE、Z波、ZigBee等等之类的一个或更多个局域网和/或诸如LoRaWAN、SigFox等等之类的一个或更多个低功率广域网(LPWAN)实现环境中的对象(例如车辆、移动设备等等)之间的通信。
图8B为根据本公开一些实施例的用于图8A的示例自主车辆800的相机位置和视场的示例。相机和各自的视场是一个示例实施例,并不意图是限制性的。例如,可以包括附加的和/或可替换的相机,和/或这些相机可以位于车辆800上的不同位置。
用于相机的相机类型可以包括但不限于可以适于与车辆800的部件和/或***一起使用的数字相机。所述相机可以在汽车安全完整性级别(ASIL)B下和/或在另一个ASIL下操作。相机类型可以具有任何图像捕获率,例如60帧每秒(fps)、120fps、240fps等等,这取决于实施例。相机可能够使用滚动快门、全局快门、另一种类型的快门或者其组合。在一些示例中,滤色器阵列可以包括红白白白(RCCC)滤色器阵列、红白白蓝(RCCB)滤色器阵列、红蓝绿白(RBGC)滤色器阵列、Foveon X3滤色器阵列、拜耳传感器(RGGB)滤色器阵列、单色传感器滤色器阵列和/或另一种类型的滤色器阵列。在一些实施例中,诸如具有RCCC、RCCB和/或RBGC滤色器阵列的相机之类的清晰像素相机可以用在提高光敏感度的努力中。
在一些示例中,所述相机中的一个或更多个可以用来执行高级驾驶员辅助***(ADAS)功能(例如作为冗余或故障安全设计的部分)。例如,可以安装多功能单目相机以提供包括车道偏离警告、交通指示牌辅助和智能前照灯控制在内的功能。所述相机中的一个或更多个(例如全部相机)可以同时记录和提供图像数据(例如视频)。
所述相机中的一个或更多个可以安装在诸如定制设计的(3-D打印的)组件之类的安装组件中,以便切断可能干扰相机的图像数据捕获能力的杂散光和来自汽车内的反射(例如挡风玻璃镜中反射的来自仪表板的反射)。关于翼镜安装组件,翼镜组件可以是定制3-D打印的,使得相机安装板匹配翼镜的形状。在一些示例中,一个或更多个相机可以集成到翼镜中。对于侧视相机而言,一个或更多个相机也可以集成到驾驶室每个拐角的四根柱子内。
具有包括车辆800前面的环境部分的视场的相机(例如前置相机)可以用于环视,以帮助识别前向路径和障碍,以及在一个或更多个控制器836和/或控制SoC的帮助下辅助提供对于生成占用网格和/或确定优选车辆路径至关重要的信息。前置相机可以用来执行许多与LIDAR相同的ADAS功能,包括紧急制动、行人检测和碰撞避免。前置相机也可以用于ADAS功能和***,包括车道偏离警告(LDW)、自主巡航控制(ACC),和/或诸如交通指示牌识别之类的其他功能。
各种各样的相机可以用于前置配置中,包括例如包括CMOS(互补金属氧化物半导体)彩色成像仪在内的单目相机平台。另一个示例可以是广角相机870,其可以用来感知从周边进入视场的对象(例如行人、十字路***通或者自行车)。尽管图8B中图示出仅仅一个广角相机,但是在车辆800上可以存在任意数量的广角相机870。此外,远程相机898(例如长视立体相机对)可以用于基于深度的对象检测,尤其是用于尚未针对其训练神经网络的对象。远程相机898也可以用于对象检测和分类以及基本的对象追踪。
一个或更多个立体相机868也可以包括在前置配置中。立体相机868可以包括集成控制单元,该单元包括可扩展处理单元,其可以提供在单个芯片上具有集成的CAN或以太网接口的多核微处理器和可编程逻辑(FPGA)。这样的单元可以用来生成车辆环境的3-D地图,包括针对图像中的所有点的距离估计。可替代的立体相机868可以包括紧凑型立体视觉传感器,其可以包括两个相机镜头(左右各一个)以及可以测量从车辆到目标对象的距离并且使用生成的信息(例如元数据)激活自主紧急制动和车道偏离警告功能的图像处理芯片。除了本文所描述的那些之外或者可替代地,可以使用其他类型的立体相机868。
具有包括车辆800的侧面的环境部分的视场的相机(例如侧视相机)可以用于环视,提供用来创建和更新占用网格以及生成侧撞击碰撞警告的信息。例如,环绕相机874(例如如图8B中所示的四个环绕相机874)可以置于车辆800上。环绕相机874可以包括广角相机870、鱼眼相机、360度相机和/或类似物。四个示例,四个鱼眼相机可以置于车辆的前面、后面和侧面。在一种可替代的布置中,车辆可以使用三个环绕相机874(例如左边、右边和后面),并且可以利用一个或更多个其他相机(例如前向相机)作为第四环视相机。
具有包括车辆800的后面的环境部分的视场的相机(例如后视相机)可以用于辅助停车、环视、后面碰撞警告以及创建和更新占用网格。可以使用各种各样的相机,包括但不限于也适合作为如本文所描述的前置相机(例如远程和/或中程相机898、立体相机868、红外相机872等等)的相机。
图8C为根据本公开一些实施例的用于图8A的示例自主车辆800的示例***架构的框图。应当理解,这种布置和本文描述的其他布置仅仅作为示例而被阐述。除了所示的那些之外或者代替它们的是,可以使用其他的布置和元素(例如机器、接口、功能、顺序、功能分组等等),并且一些元素可以完全省略。进一步,许多本文描述的元素是功能实体,其可以实现为分立的或分布式部件或者结合其他部件实现,以及以任何适当的组合和位置实现。本文描述为由实体执行的各个功能可以通过硬件、固件和/或软件实现。例如,各个功能可以通过处理器执行存储在内存中的指令而实现。
图8C中车辆800的部件、特征和***中的每一个被图示为经由总线802连接。总线802可以包括控制器区域网络(CAN)数据接口(可替代地,本文称为“CAN总线”)。CAN可以是车辆800内部的网络,用来辅助控制车辆800的各种特征和功能,例如制动器、加速、制动、转向、挡风玻璃雨刷等等的驱动。CAN总线可以被配置为具有数十或者甚至数百个节点,每个节点具有其自己的唯一标识符(例如CAN ID)。可以读取CAN总线以找到方向盘角度、地速、每分钟发动机转速(RPM)、按钮位置和/或其他车辆状态指示符。CAN总线可以是ASIL B兼容的。
尽管这里将总线802描述为CAN总线,但是这并不意图是限制性的。例如,除了CAN总线之外或者可替代地,可以使用FlexRay和/或以太网。此外,尽管用单条线来表示总线802,但是这并不意图是限制性的。例如,可以存在任意数量的总线802,其可以包括一条或更多条CAN总线、一条或更多条FlexRay总线、一条或更多条以太网总线和/或一条或更多条使用不同协议的其他类型的总线。在一些示例中,两条或更多总线802可以用来执行不同的功能,和/或可以用于冗余。例如,第一总线802可以用于碰撞避免功能,并且第二总线802可以用于驱动控制。在任何示例中,每条总线802可以与车辆800的任何部件通信,并且两条或更多总线802可以与相同的部件通信。在一些示例中,车辆内的每个SoC 804、每个控制器836和/或每个计算机可以有权访问相同的输入数据(例如来自车辆800的传感器的输入),并且可以连接到诸如CAN总线之类的公共总线。
车辆800可以包括一个或更多个控制器836,例如本文关于图8A所描述的那些控制器。控制器836可以用于各种各样的功能。控制器836可以耦合到车辆800的任何其他不同的部件和***,并且可以用于车辆800的控制、车辆800的人工智能、用于车辆800的信息娱乐和/或类似物。
车辆800可以包括一个或更多个片上***(SoC)804。SoC 804可以包括CPU 806、GPU 808、处理器810、高速缓存812、加速器814、数据存储816和/或未图示出的其他部件和特征。在各种各样的平台和***中,SoC 804可以用来控制车辆800。例如,一个或更多个SoC804可以在***(例如车辆800的***)中与HD地图822结合,所述HD地图可以经由网络接口824从一个或更多个服务器(例如图8D的一个或更多个服务器878)获得地图刷新和/或更新。
CPU 806可以包括CPU簇或者CPU复合体(可替代地,本文称为“CCPLEX”)。CPU 806可以包括多个核和/或L2高速缓存。例如,在一些实施例中,CPU 806在一致性多处理器配置中可以包括八个核。在一些实施例中,CPU 806可以包括四个双核簇,其中每个簇具有专用的L2高速缓存(例如2MB L2高速缓存)。CPU 806(例如CCPLEX)可以被配置为支持同时簇操作,使得CPU 806的簇的任意组合能够在任何给定时间是活动的。
CPU 806可以实现包括以下特征中的一个或更多个的功率管理能力:各硬件块在空闲时可以自动进行时钟门控以节省动态功率;由于WFI/WFE指令的执行,每个核时钟可以在该核不主动地执行指令时进行门控;每个核可以独立地进行功率门控;当所有核都进行时钟门控或者功率门控时,可以独立地对每个核簇进行时钟门控;和/或当所有核都进行功率门控时,可以独立地对每个核簇进行功率门控。CPU 806可以进一步实现用于管理功率状态的增强算法,其中指定允许的功率状态和期望的唤醒时间,并且硬件/微代码为所述核、簇和CCPLEX确定要进入的最佳的功率状态。处理核可以在软件中支持简化的功率状态进入序列,该工作被卸载到微代码。
GPU 808可以包括集成的GPU(可替代地,本文称为“iGPU”)。GPU 808可以是可编程的,并且对于并行工作负载而言是高效的。在一些示例中,GPU 808可以使用增强张量指令集。GPU 808可以包括一个或更多个流式微处理器,其中每个流式微处理器可以包括L1高速缓存(例如具有至少96KB存储能力的L1高速缓存),并且这些流式微处理器中的两个或更多可以共享L2高速缓存(例如具有512KB存储能力的L2高速缓存)。在一些实施例中,GPU 808可以包括至少八个流式微处理器。GPU 808可以使用计算应用编程接口(API)。此外,GPU808可以使用一个或更多个并行计算平台和/或编程模型(例如NVIDIA的CUDA)。
在汽车和嵌入式使用的情况下,可以对GPU 808进行功率优化以实现最佳性能。例如,可以在鳍式场效应晶体管(FinFET)上制造GPU 808。然而,这并不意图是限制性的,并且GPU 808可以使用其他半导体制造工艺来制造。每个流式微处理器可以合并划分成多个块的若干混合精度处理核。例如且非限制性地,可以将64个PF32核和32个PF64核划分成四个处理块。在这样的示例中,每个处理块可以分配16个FP32核、8个FP64核、16个INT32核、用于深层学习矩阵算术的两个混合精度NVIDIA张量核、L0指令高速缓存、线程束(warp)调度器、分派单元和/或64KB寄存器文件。此外,流式微处理器可以包括独立的并行整数和浮点数据路径,以利用计算和寻址计算的混合提供工作负载的高效执行。流式微处理器可以包括独立线程调度能力,以允许实现并行线程之间的更细粒度的同步和协作。流式微处理器可以包括组合的L1数据高速缓存和共享内存单元,以便在简化编程的同时提高性能。
GPU 808可以包括在一些示例中提供大约900GB/s的峰值内存带宽的高带宽内存(HBM)和/或16GB HBM2内存子***。在一些示例中,除了HBM内存之外或者可替代地,可以使用同步图形随机存取存储器(SGRAM),例如第五代图形双倍数据速率同步随机存取存储器(GDDR5)。
GPU 808可以包括统一内存技术,其包括访问计数器以允许内存页面更精确地迁移到最频繁地访问它们的处理器,从而提高处理器之间共享的内存范围的效率。在一些示例中,地址转换服务(ATS)支持可以用来允许GPU 808直接访问CPU 806页表。在这样的示例中,当GPU 808内存管理单元(MMU)经历遗漏时,可以将地址转换请求传输至CPU 806。作为响应,CPU 806可以在其页表中寻找用于地址的虚拟-物理映射,并且将转换传输回GPU808。这样,统一内存技术可以允许单个统一虚拟地址空间用于CPU 806和GPU 808二者的内存,从而简化了GPU 808编程和将应用程序移(port)到GPU 808。
此外,GPU 808可以包括访问计数器,其可以追踪GPU 808访问其他处理器的内存的频率。访问计数器可以帮助确保内存页面移至最频繁地访问这些页面的处理器的物理内存。
SoC 804可以包括任意数量的高速缓存812,包括本文描述的那些高速缓存。例如,高速缓存812可以包括CPU 806和GPU 808二者可用的L3高速缓存(例如,其连接到CPU 806和GPU 808二者)。高速缓存812可以包括回写高速缓存,其可以例如通过使用高速缓存一致性协议(例如MEI、MESI、MSI等)追踪行的状态。取决于实施例,L3高速缓存可以包括4MB或者更多,但是也可以使用更小的高速缓存大小。
SoC 804可以包括算术逻辑单元(ALU),所述算术逻辑单元可以在执行关于车辆800的各种任务或操作中的任何任务或操作(如处理DNN)的处理中被利用。此外,SoC 804可以包括用于在***内执行数学运算的浮点单元(FPU)(或其他数学协处理器或数字协处理器类型)。例如,SoC 104可以包括集成为CPU 806和/或GPU 808内的执行单元的一个或更多个FPU。
SoC 804可以包括一个或更多个加速器814(例如硬件加速器、软件加速器或者其组合)。例如,SoC 804可以包括硬件加速器簇,其可以包括优化的硬件加速器和/或大型片上内存。该大型片上内存(例如4MB SRAM)可以使得硬件加速器簇能够加速神经网络和其他计算。硬件加速器簇可以用来补充GPU 808,并且卸载GPU 808的一些任务(例如释放GPU808的更多周期以用于执行其他任务)。作为一个示例,加速器814可以用于足够稳定以易于控制加速的有针对性的工作负载(例如感知、卷积神经网络(CNN)等等)。当在本文中使用时,术语“CNN”可以包括所有类型的CNN,包括基于区域的或者区域卷积神经网络(RCNN)和快速RCNN(例如用于对象检测)。
加速器814(例如硬件加速器簇)可以包括深度学习加速器(DLA)。DLA可以包括可以被配置成为深度学习应用和推理提供额外的每秒10万亿次操作的一个或更多个张量处理单元(TPU)。TPU可以是被配置为执行图像处理功能(例如用于CNN、RCNN等)且针对执行图像处理功能而优化的加速器。DLA可以进一步针对特定的一组神经网络类型和浮点运算以及推理进行优化。DLA的设计可以比通用GPU提供每毫米更高的性能,并且远远超过CPU的性能。TPU可以执行若干功能,包括单实例卷积函数,支持例如用于特征和权重二者的INT8、INT16和FP16数据类型,以及后处理器功能。
DLA可以在处理的或者未处理的数据上针对各种各样的功能中的任何功能快速且高效地执行神经网络,尤其是CNN,例如且不限于:用于使用来自相机传感器的数据进行对象识别和检测的CNN;用于使用来自相机传感器的数据进行距离估计的CNN;用于使用来自麦克风的数据进行应急车辆检测和识别与检测的CNN;用于使用来自相机传感器的数据进行面部识别和车主识别的CNN;和/或用于安全和/或安全相关事件的CNN。
DLA可以执行GPU 808的任何功能,并且通过使用推理加速器,例如,设计者可以使DLA或GPU 808针对任何功能。例如,设计者可以将CNN的处理和浮点运算聚焦在DLA上,并且将其他功能留给GPU 808和/或其他加速器814。
加速器814(例如硬件加速器簇)可以包括可编程视觉加速器(PVA),其在本文中可以可替代地称为计算机视觉加速器。PVA可以被设计和配置为加速用于高级驾驶员辅助***(ADAS)、自主驾驶和/或增强现实(AR)和/或虚拟现实(VR)应用的计算机视觉算法。PVA可以提供性能与灵活性之间的平衡。例如,每个PVA可以包括例如且不限于任意数量的精简指令集计算机(RISC)核、直接内存访问(DMA)和/或任意数量的向量处理器。
RISC核可以与图像传感器(例如本文描述的任何相机的图像传感器)、图像信号处理器和/或类似物交互。这些RISC核中的每一个可以包括任意数量的内存。取决于实施例,RISC核可以使用若干协议中的任何协议。在一些示例中,RISC核可以执行实时操作***(RTOS)。RISC核可以使用一个或更多个集成电路设备、专用集成电路(ASIC)和/或存储设备实现。例如,RISC核可以包括指令高速缓存和/或紧密耦合的RAM。
DMA可以使得PVA的部件能够独立于CPU 806访问***内存。DMA可以支持用来向PVA提供优化的任意数量的特征,包括但不限于支持多维寻址和/或循环寻址。在一些示例中,DMA可以支持高达六个或更多维度的寻址,其可以包括块宽度、块高度、块深度、水平块步进、竖直块步进和/或深度步进。
向量处理器可以是可编程处理器,其可以被设计为高效且灵活地执行用于计算机视觉算法的编程并且提供信号处理能力。在一些示例中,PVA可以包括PVA核和两个向量处理子***分区。PVA核可以包括处理器子***、一个或更多个DMA引擎(例如两个DMA引擎)和/或其他***设备。向量处理子***可以作为PVA的主处理引擎而操作,并且可以包括向量处理单元(VPU)、指令高速缓存和/或向量内存(例如VMEM)。VPU核可以包括数字信号处理器,诸如例如单指令多数据(SIMD)、超长指令字(VLIW)数字信号处理器。SIMD和VLIW的组合可以增强吞吐量和速率。
向量处理器中的每一个可以包括指令高速缓存并且可以耦合到专用内存。结果,在一些示例中,向量处理器中的每一个可以被配置为独立于其他向量处理器执行。在其他示例中,包括在特定PVA中的向量处理器可以被配置为采用数据并行化。例如,在一些实施例中,包括在单个PVA中的多个向量处理器可以执行相同的计算机视觉算法,但是在图像的不同区域上执行。在其他示例中,包括在特定PVA中的向量处理器可以在相同的图像上同时执行不同的计算机视觉算法,或者甚至在序列图像或者图像的部分上执行不同的算法。除其他的以外,任意数量的PVA可以包括在硬件加速器簇中,并且任意数量的向量处理器可以包括在这些PVA中的每一个中。此外,PVA可以包括附加的纠错码(ECC)内存,以增强总体***安全性。
加速器814(例如硬件加速器簇)可以包括片上计算机视觉网络和SRAM,以提供用于加速器814的高带宽、低延迟SRAM。在一些示例中,片上内存可以包括由例如且不限于八个现场可配置的内存块组成的至少4MB SRAM,其可以由PVA和DLA二者访问。每对内存块可以包括高级***总线(APB)接口、配置电路***、控制器和复用器。可以使用任何类型的内存。PVA和DLA可以经由向PVA和DLA提供高速内存访问的主干(backbone)访问内存。主干可以包括(例如使用APB)将PVA和DLA互连到内存的片上计算机视觉网络。
片上计算机视觉网络可以包括在传输任何控制信号/地址/数据之前确定PVA和DLA二者都提供就绪且有效的信号的接口。这样的接口可以提供用于传输控制信号/地址/数据的单独相位和单独信道,以及用于连续数据传输的突发式通信。这种类型的接口可以符合ISO 26262或者IEC 61508标准,但是也可以使用其他标准和协议。
在一些示例中,SoC 804可以包括例如在2018年8月10日提交的美国专利申请No.16/101,232中描述的实时光线追踪硬件加速器。该实时光线追踪硬件加速器可以用来快速且高效地确定(例如世界模型内的)对象的位置和范围,以便生成实时可视化仿真,以用于RADAR信号解释、用于声音传播合成和/或分析、用于SONAR***仿真、用于一般波传播仿真、用于为了定位和/或其他功能的目的与LIDAR数据相比较和/或用于其他用途。在一些实施例中,一个或更多个树遍历单元(TTU)可以用于执行一个或更多个光线跟踪相关操作。
加速器814(例如硬件加速器簇)具有广泛的自主驾驶用途。PVA可以是可编程视觉加速器,其可以用于ADAS和自主车辆中的关键处理阶段。PVA的能力是需要可预测处理、低功率和低延迟的算法域的良好匹配。换言之,PVA在半密集或者密集规则计算上,甚至在需要具有低延迟和低功率的可预测运行时间的小数据集上都表现良好。因此,在用于自主车辆的平台的背景下,PVA被设计为运行经典计算机视觉算法,因为它们在对象检测和整数数学运算方面很有效。
例如,根据该技术的一个实施例,PVA用来执行计算机立体视觉。在一些示例中,可以使用基于半全局匹配的算法,但是这并不意图是限制性的。许多用于3-5级自主驾驶的应用都需要即时运动估计/立体匹配(例如来自运动的结构、行人识别、车道检测等等)。PVA可以在来自两个单目相机的输入上执行计算机立体视觉功能。
在一些示例中,PVA可以用来执行密集的光流。根据过程原始RADAR数据(例如使用4D快速傅立叶变换)以提供经处理的RADAR。在其他示例中,PVA用于飞行时间深度处理,其例如通过处理原始飞行时间数据以提供经处理的飞行时间数据。
DLA可以用来运行任何类型的网络以增强控制和驾驶安全性,包括例如输出用于每个对象检测的置信度度量的神经网络。这样的置信度值可以解释为概率,或者解释为提供每个检测与其他检测相比的相对“权重”。该置信度值使得***能够做出关于哪些检测应当被认为是真阳性检测而不是假阳性检测的进一步决定。例如,***可以为置信度设置阈值,并且仅仅将超过阈值的检测看作真阳性检测。在自动紧急制动(AEB)***中,假阳性检测会使得车辆自动地执行紧急制动,这显然是不希望的。因此,只有最确信的检测才应当被认为是AEB的触发因素。DLA可以运行用于回归置信度值的神经网络。该神经网络可以将至少一些参数子集作为其输入,例如边界框维度,(例如从另一个子***)获得的地平面估计,与车辆800取向、距离相关的惯性测量单元(IMU)传感器866输出,从神经网络和/或其他传感器(例如LIDAR传感器864或RADAR传感器860)获得的对象的3D位置估计等。
SoC 804可以包括一个或更多个数据存储816(例如内存)。数据存储816可以是SoC804的片上内存,其可以存储要在GPU和/或DLA上执行的神经网络。在一些示例中,为了冗余和安全,数据存储816可以容量足够大以存储神经网络的多个实例。数据存储812可以包括L2或L3高速缓存812。对数据存储816的引用可以包括对与如本文所描述的PVA、DLA和/或其他加速器814关联的内存的引用。
SoC 804可以包括一个或更多个处理器810(例如嵌入式处理器)。处理器810可以包括启动和功率管理处理器,其可以是用于处理启动功率和管理功能以及有关安全实施的专用处理器和子***。启动和功率管理处理器可以是SoC 804启动序列的一部分,并且可以提供运行时间功率管理服务。启动功率和管理处理器可以提供时钟和电压编程、辅助***低功率状态转换、SoC 804热和温度传感器管理和/或SoC 804功率状态管理。每个温度传感器可以实现为环形振荡器,其输出频率与温度成比例,并且SoC 804可以使用环形振荡器检测CPU 806、GPU 808和/或加速器814的温度。如果确定温度超过阈值,那么启动和功率管理处理器可以进入温度故障例程并且将SoC 804置于较低功率状态和/或将车辆800置于司机安全停车模式(例如使车辆800安全停车)。
处理器810可以还包括可以用作音频处理引擎的一组嵌入式处理器。音频处理引擎可以是一种音频子***,其允许实现对于通过多个接口的多声道音频的完全硬件支持以及一系列广泛而灵活的音频I/O接口。在一些示例中,音频处理引擎是具有带有专用RAM的数字信号处理器的专用处理器核。
处理器810可以还包括始终在处理器上的引擎,其可以提供必要的硬件特征以支持低功率传感器管理和唤醒用例。该始终在处理器上的引擎可以包括处理器核、紧密耦合的RAM、支持***设备(例如定时器和中断控制器)、各种I/O控制器***设备和路由逻辑。
处理器810可以还包括安全簇引擎,其包括处理汽车应用的安全管理的专用处理器子***。安全簇引擎可以包括两个或更多处理器核、紧密耦合的RAM、支持***设备(例如定时器、中断控制器等等)和/或路由逻辑。在安全模式下,所述两个或更多核可以操作于锁步模式下,并且用作具有检测它们的操作之间的任何差异的比较逻辑的单核。
处理器810可以还包括实时相机引擎,其可以包括用于处理实时相机管理的专用处理器子***。
处理器810可以还包括高动态范围信号处理器,其可以包括图像信号处理器,该图像信号处理器是一种硬件引擎,该硬件引擎是相机处理管线的部分。
处理器810可以包括可以是(例如微处理器上实现的)处理块的视频图像复合器,其实现视频回放应用程序产生用于播放器窗口的最终图像所需的视频后处理功能。视频图像复合器可以对广角相机870、环绕相机874和/或对驾驶室内监控相机传感器执行镜头畸变校正。驾驶室内监控相机传感器优选地由运行在高级SoC的另一个实例上的神经网络监控,被配置为识别驾驶室内事件并且相对应地做出响应。驾驶室内***可以执行唇读,以激活移动电话服务并拨打电话、口述电子邮件、改变车辆目的地、激活或改变车辆的信息娱乐***和设置或者提供语音激活的网上冲浪。某些功能仅在车辆操作于自主模式下时对于驾驶员可用,并且在其他情况下被禁用。
视频图像复合器可以包括用于空间和时间降噪的增强时间降噪。例如,在视频中出现运动的情况下,降噪适当地对空间信息加权,降低邻近帧提供的信息的权重。在图像或者图像的部分不包括运动的情况下,视频图像复合器执行的时间降噪可以使用来自先前的图像的信息以降低当前图像中的噪声。
视频图像复合器也可以被配置为对输入立体镜头帧执行立体校正。当操作***桌面正在使用并且GPU 808无需连续地渲染(render)新的表面时,视频图像复合器可以进一步用于用户接口组成。甚至在GPU 808上电并且激活,进行3D渲染时,视频图像复合器可以用来减轻GPU 808的负担以提高性能和响应能力。
SoC 804可以还包括用于从相机接收视频和输入的移动行业处理器接口(MIPI)相机串行接口、高速接口和/或可以用于相机和有关像素输入功能的视频输入块。SoC 804可以还包括可以由软件控制并且可以用于接收未提交到特定角色的I/O信号的输入/输出控制器。
SoC 804可以还包括大范围的***设备接口,以使能与***设备、音频编解码器、功率管理和/或其他设备通信。SoC 804可以用来处理来自(通过千兆多媒体串行链路和以太网连接的)相机、传感器(例如可以通过以太网连接的LIDAR传感器864、RADAR传感器860等等)的数据,来自总线802的数据(例如车辆800的速率、方向盘位置等等),来自(通过以太网或CAN总线连接的)GNSS传感器858的数据。SoC 804可以还包括专用高性能大容量存储控制器,其可以包括它们自己的DMA引擎,并且其可以用来从日常数据管理任务中释放CPU806。
SoC 804可以是具有灵活架构的端到端平台,该架构跨越自动化3-5级,从而提供利用和高效使用计算机视觉和ADAS技术以实现多样性和冗余、连同深度学***台的综合功能安全架构。SoC 804可以比常规的***更快、更可靠,甚至更加能量高效和空间高效。例如,当与CPU 806、GPU 808和数据存储816结合时,加速器814可以提供用于3-5级自主车辆的快速高效平台。
因此该技术提供了不能通过常规***实现的能力和功能。例如,计算机视觉算法可以在CPU上执行,这些CPU可以使用诸如C编程语言之类的高级编程语言配置为跨各种各样的视觉数据执行各种各样的处理算法。然而,CPU常常不能满足许多计算机视觉应用的性能要求,诸如与例如执行时间和功耗有关的那些要求。特别地,许多CPU不能实时地执行复杂的对象检测算法,这是车载ADAS应用的要求和实用3-5级自主车辆的要求。
与常规***形成对比的是,通过提供CPU复合体、GPU复合体和硬件加速器簇,本文描述的技术允许同时和/或顺序地执行多个神经网络,并且将结果组合在一起以实现3-5级自主驾驶功能。例如,在DLA或dGPU(例如GPU 820)上执行的CNN可以包括文本和单词识别,允许超级计算机读取和理解交通指示牌,包括尚未针对其特别地训练神经网络的指示牌。DLA可以还包括能够识别、解释和提供对指示牌的语义理解,并且将该语义理解传递给运行在CPU复合体上的路径规划模块的神经网络。
作为另一个示例,如3、4或5级驾驶所需的,多个神经网络可以同时运行。例如,由“注意:闪烁的灯指示结冰条件”组成的警告指示牌连同电灯可以由若干神经网络独立地或者共同地进行解释。指示牌本身可以由部署的第一神经网络(例如经过训练的神经网络)识别为交通指示牌,文本“闪烁的灯指示结冰条件”可以由部署的第二神经网络解释,该部署的第二神经网络告知车辆的路径规划软件(优选地在CPU复合体上执行)当检测到闪烁的灯时,存在结冰条件。闪烁的灯可以通过在多个帧上操作部署的第三神经网络而识别,该神经网络告知车辆的路径规划软件闪烁的灯的存在(或不存在)。所有三个神经网络可以例如在DLA内和/或在GPU 808上同时运行。
在一些示例中,用于面部识别和车主识别的CNN可以使用来自相机传感器的数据识别车辆800的授权的驾驶员和/或车主的存在。始终在传感器上的处理引擎可以用来在车主接近驾驶员车门时解锁车辆并且打开灯,并且在安全模式下,在车主离开车辆时禁用车辆。按照这种方式,SoC 804提供了防范盗窃和/或劫车的安全性。
在另一个示例中,用于应急车辆检测和识别的CNN可以使用来自麦克风896的数据来检测并且识别应急车辆警报(siren)。与使用通用分类器检测警报并且手动地提取特征的常规***形成对比的是,SoC 804使用CNN以对环境和城市声音分类以及对视觉数据分类。在优选的实施例中,运行在DLA上的CNN被训练为识别应急车辆的相对关闭速率(例如通过使用多普勒效应)。CNN也可以被训练为识别如GNSS传感器858所识别的特定于车辆在其中操作的局部区域的应急车辆。因此,例如,当在欧洲操作时,CNN将寻求检测欧洲警报,并且当在美国时,CNN将寻求识别仅仅北美的警报。一旦检测到应急车辆,在超声传感器862的辅助下,控制程序可以用来执行应急车辆安全例程,使车辆放慢速度,开到路边,停下车辆,和/或使车辆空转,直到应急车辆通过。
车辆可以包括可以经由高速互连(例如PCIe)耦合到SoC 804的CPU 818(例如分立的CPU或dCPU)。CPU 818可以包括例如X86处理器。CPU 818可以用来执行各种各样的功能中的任何功能,包括例如仲裁ADAS传感器与SoC 804之间潜在地不一致的结果,和/或监控控制器836和/或信息娱乐SoC 830的状态和健康状况。
车辆800可以包括可以经由高速互连(例如NVIDIA的NVLINK)耦合到SoC 804的GPU820(例如分立的GPU或dGPU)。GPU 820可以例如通过执行冗余的和/或不同的神经网络而提供附加的人工智能功能,并且可以用来至少部分地基于来自车辆800的传感器的输入(例如传感器数据)来训练和/或更新神经网络。
车辆800可以还包括网络接口824,该网络接口可以包括一个或更多个无线天线826(例如用于不同通信协议的一个或更多个无线天线,例如蜂窝天线、蓝牙天线等等)。网络接口824可以用来使能通过因特网与云(例如与服务器878和/或其他网络设备)、与其他车辆和/或与计算设备(例如乘客的客户端设备)的无线连接。为了与其他车辆通信,可以在这两辆车之间建立直接链接,和/或可以建立间接链接(例如跨网络以及通过因特网)。直接链接可以使用车对车通信链路提供。车对车通信链路可以向车辆800提供关于接近车辆800的车辆(例如车辆800前面、侧面和/或后面的车辆)的信息。该功能可以是车辆800的协作自适应巡航控制功能的部分。
网络接口824可以包括提供调制和解调功能并且使得控制器836能够通过无线网络通信的SoC。网络接口824可以包括用于从基带到射频的上转换以及从射频到基带的下转换的射频前端。频率转换可以通过公知的过程执行,和/或可以使用超外差(super-heterodyne)过程执行。在一些示例中,射频前端功能可以由单独的芯片提供。网络接口可以包括用于通过LTE、WCDMA、UMTS、GSM、CDMA2000、蓝牙、蓝牙LE、Wi-Fi、Z波、ZigBee、LoRaWAN和/或其他无线协议通信的无线功能。
车辆800可以还包括可包括片外(例如SoC 804外)存储装置的数据存储828。数据存储828可以包括一个或更多个存储元件,包括RAM、SRAM、DRAM、VRAM、闪存、硬盘和/或可以存储至少一个比特的数据的其他部件和/或设备。
车辆800可以还包括GNSS传感器858。GNSS传感器858(例如GPS、辅助GPS传感器、差分GPS(DGPS)传感器等)用于辅助映射、感知、占用网格生成和/或路径规划功能。可以使用任意数量的GNSS传感器858,包括例如且不限于使用带有以太网到串行(RS-232)网桥的USB连接器的GPS。
车辆800可以还包括RADAR传感器860。RADAR传感器860可以甚至在黑暗和/或恶劣天气条件下也由车辆800用于远程车辆检测。RADAR功能安全级别可以是ASIL B。RADAR传感器860可以使用CAN和/或总线802(例如以传输RADAR传感器860生成的数据)以用于控制以及访问对象追踪数据,在一些示例中接入以太网以访问原始数据。可以使用各种各样的RADAR传感器类型。例如且非限制性地,RADAR传感器860可以适合前面、后面和侧面RADAR使用。在一些示例中,使用脉冲多普勒RADAR传感器。
RADAR传感器860可以包括不同的配置,例如具有窄视场的远程、具有宽视场的短程、短程侧覆盖等等。在一些示例中,远程RADAR可以用于自适应巡航控制功能。远程RADAR***可以提供通过两个或更多独立扫描实现的广阔视场(例如250m范围内)。RADAR传感器860可以帮助区分静态对象和运动对象,并且可以由ADAS***用于紧急制动辅助和前方碰撞警告。远程RADAR传感器可以包括具有多根(例如六根或更多)固定RADAR天线以及高速CAN和FlexRay接口的单站多模RADAR。在具有六根天线的示例中,中央四根天线可以创建聚焦的波束图案,其被设计为在更高速率下以来自邻近车道的最小交通干扰记录车辆800的周围环境。其他两根天线可以扩展视场,使得快速地检测进入或离开车辆800的车道的车辆成为可能。
作为一个示例,中程RADAR***可以包括高达860m(前面)或80m(后面)的范围以及高达42度(前面)或850度(后面)的视场。短程RADAR***可以包括但不限于被设计为安装在后保险杠两端的RADAR传感器。当安装在后保险杠两端时,这样的RADAR传感器***可以创建持续地监控后方和车辆旁边的视盲点的两个波束。
短程RADAR***可以在ADAS***中用于视盲点检测和/或变道辅助。
车辆800可以还包括超声传感器862。可以置于车辆800的前面、后面和/或侧面的超声传感器862可以用于停车辅助和/或创建和更新占用网格。可以使用各种各样的超声传感器862,并且不同的超声传感器862可以用于不同的检测范围(例如2.5m、4m)。超声传感器862可以操作于功能安全级别的ASIL B。
车辆800可以包括LIDAR传感器864。LIDAR传感器864可以用于对象和行人检测、紧急制动、碰撞避免和/或其他功能。LIDAR传感器864可以为功能安全级别的ASIL B。在一些示例中,车辆800可以包括可以使用以太网(例如以将数据提供给千兆以太网交换机)的多个LIDAR传感器864(例如两个、四个、六个等等)。
在一些示例中,LIDAR传感器864可能够对360度视场提供对象列表及其距离。商业上可用的LIDAR传感器864可以具有例如近似800m的广告范围,精度为2cm-3cm,支持800Mbps以太网连接。在一些示例中,可以使用一个或更多个非突出的LIDAR传感器864。在这样的示例中,LIDAR传感器864可以实现为可以嵌入到车辆800的前面、后面、侧面和/或拐角的小设备。在这样的示例中,LIDAR传感器864可以甚至对于低反射率对象提供高达120度水平的和35度竖直的视场,具有200m的范围。前面安装的LIDAR传感器864可以被配置用于45度与135度之间的水平视场。
在一些示例中,也可以使用诸如3D闪光LIDAR之类的LIDAR技术。3D闪光LIDAR使用激光的闪光作为发射源,以照亮高达约200m的车辆周围环境。闪光LIDAR单元包括接受器,该接受器将激光脉冲传输时间和反射光记录在每个像素上,其进而与从车辆到对象的范围相对应。闪光LIDAR可以允许利用每个激光闪光生成周围环境的高度精确且无失真的图像。在一些示例中,可以部署四个闪光LIDAR传感器,车辆800的每一侧一个。可用的3D闪光LIDAR***包括没有风扇以外的运动部件(moving part)的固态3D凝视阵列LIDAR相机(例如非扫描LIDAR设备)。闪光LIDAR设备可以使用每帧5纳秒I类(眼睛安全)激光脉冲,并且可以以3D范围点云和共同寄存的强度数据的形式捕获反射的激光。通过使用闪光LIDAR,并且因为闪光LIDAR是没有运动部件的固态设备,LIDAR传感器864可以不太容易受到运动模糊、振动和/或震动的影响。
该车辆可以还包括IMU传感器866。在一些示例中,IMU传感器866可以位于车辆800的后轴的中心。IMU传感器866可以包括例如且不限于加速度计、磁力计、陀螺仪、磁罗盘和/或其他传感器类型。在一些示例中,例如在六轴应用中,IMU传感器866可以包括加速度计和陀螺仪,而在九轴应用中,IMU传感器866可以包括加速度计、陀螺仪和磁力计。
在一些实施例中,IMU传感器866可以实现为微型高性能GPS辅助惯性导航***(GPS/INS),其结合微机电***(MEMS)惯性传感器、高灵敏度GPS接收器和高级卡尔曼滤波算法以提供位置、速度和姿态的估计。这样,在一些示例中,IMU传感器866可以使得车辆800能够在无需来自磁传感器的输入的情况下通过直接观察从GPS到IMU传感器866的速度变化并且将其相关来估计方向(heading)。在一些示例中,IMU传感器866和GNSS传感器858可以结合到单个集成单元中。
该车辆可以包括置于车辆800中和/或车辆800周围的麦克风896。除别的以外,麦克风896可以用于应急车辆检测和识别。
该车辆可以还包括任意数量的相机类型,包括立体相机868、广角相机870、红外相机872、环绕相机874、远程和/或中程相机898和/或其他相机类型。这些相机可以用来捕获车辆800整个***周围的图像数据。使用的相机类型取决于实施例和车辆800的要求,并且相机类型的任意组合可以用来提供车辆800周围的必要覆盖。此外,相机的数量可以根据实施例而不同。例如,该车辆可以包括六个相机、七个相机、十个相机、十二个相机和/或另一数量的相机。作为一个示例且非限制性地,这些相机可以支持千兆多媒体串行链路(GMSL)和/或千兆以太网。所述相机中的每一个在本文关于图8A和图8B更详细地进行了描述。
车辆800可以还包括振动传感器842。振动传感器842可以测量车辆的诸如车轴之类的部件的振动。例如,振动的变化可以指示道路表面的变化。在另一个示例中,当使用两个或更多振动传感器842时,振动之间的差异可以用来确定道路表面的摩擦或滑移(例如当动力驱动轴与自由旋转轴之间存在振动差异时)。
车辆800可以包括ADAS***838。在一些示例中,ADAS***838可以包括SoC。ADAS***838可以包括自主/自适应/自动巡航控制(ACC)、协作自适应巡航控制(CACC)、前方撞车警告(FCW)、自动紧急制动(AEB)、车道偏离警告(LDW)、车道保持辅助(LKA)、视盲点警告(BSW)、后方穿越交通警告(RCTW)、碰撞警告***(CWS)、车道居中(LC)和/或其他特征和功能。
ACC***可以使用RADAR传感器860、LIDAR传感器864和/或相机。ACC***可以包括纵向ACC和/或横向ACC。纵向ACC监控并控制到紧接在车辆800前方的车辆的距离,并且自动地调节车速以维持离前方车辆的安全距离。横向ACC执行距离保持,并且在必要时建议车辆800改变车道。横向ACC与诸如LCA和CWS之类的其他ADAS应用程序有关。
CACC使用来自其他车辆的信息,该信息可以经由网络接口824和/或无线天线826经由无线链路或者通过网络连接(例如通过因特网)间接地从其他车辆接收。直接链接可以由车对车(V2V)通信链路提供,而间接链接可以是基础设施到车辆(I2V)的通信链路。通常,V2V通信概念提供关于紧接在前的车辆(例如紧接在车辆800前方且与其处于相同车道的车辆)的信息,而I2V通信概念提供关于前方更远处的交通的信息。CACC***可以包括I2V和V2V信息源中的任一个或者二者。给定车辆800前方车辆的信息,CACC可以更加可靠,并且它有可能提高交通流的畅通性且降低道路拥堵。
FCW***被设计为提醒驾驶员注意危险,使得驾驶员可以采取纠正措施。FCW***使用耦合到专用处理器、DSP、FPGA和/或ASIC的前置相机和/或RADAR传感器860,该专用处理器、DSP、FPGA和/或ASIC电耦合至诸如显示器、扬声器和/或振动部件之类的驾驶员反馈。FCW***可以提供例如声音、视觉警告、振动和/或快速制动脉冲形式的警告。
AEB***检测即将发生的与另一车辆或其他对象的前方碰撞,并且可以在驾驶员在指定的时间或距离参数内没有采取纠正措施的情况下自动地应用制动器。AEB***可以使用耦合到专用处理器、DSP、FPGA和/或ASIC的前置相机和/或RADAR传感器860。当AEB***检测到危险时,它典型地首先提醒(alert)驾驶员采取纠正措施以避免碰撞,并且如果驾驶员没有采取纠正措施,那么AEB***可以自动地应用制动器以努力防止或者至少减轻预测的碰撞的影响。AEB***可以包括诸如动态制动支持和/或碰撞迫近制动之类的技术。
LDW***提供了诸如方向盘或座位振动之类的视觉、听觉和/或触觉警告,以在车辆800穿过车道标记时提醒驾驶员。当驾驶员指示有意偏离车道时,通过激活转弯信号,不激活LDW***。LDW***可以使用耦合到专用处理器、DSP、FPGA和/或ASIC的前侧朝向相机,该专用处理器、DSP、FPGA和/或ASIC电耦合至诸如显示器、扬声器和/或振动部件之类的驾驶员反馈。
LKA***是LDW***的变型。如果车辆800开始离开车道,那么LKA***提供纠正车辆800的转向输入或制动。
BSW***检测并向驾驶员警告汽车视盲点中的车辆。BSW***可以提供视觉、听觉和/或触觉警报以指示合并或改变车道是不安全的。***可以在驾驶员使用转弯信号时提供附加的警告。BSW***可以使用耦合到专用处理器、DSP、FPGA和/或ASIC的后侧朝向相机和/或RADAR传感器860,该专用处理器、DSP、FPGA和/或ASIC电耦合至诸如显示器、扬声器和/或振动部件之类的驾驶员反馈。
RCTW***可以在车辆800倒车时在后置相机范围之外检测到对象时提供视觉、听觉和/或触觉通知。一些RCTW***包括AEB以确保应用车辆制动器以避免撞车。RCTW***可以使用耦合到专用处理器、DSP、FPGA和/或ASIC的一个或更多个后置RADAR传感器860,该专用处理器、DSP、FPGA和/或ASIC电耦合至诸如显示器、扬声器和/或振动部件之类的驾驶员反馈。
常规的ADAS***可能易于出现假阳性结果,这可能会让驾驶员烦恼并分散注意力,但是典型地不是灾难性的,因为ADAS***提醒驾驶员并且允许驾驶员决定安全条件是否真正存在并且相对应地采取行动。然而,在自主车辆800中,在冲突结果的情况下,车辆800本身必须决定是否注意(heed)来自主计算机或者辅助计算机(例如第一控制器836或第二控制器836)的结果。例如,在一些实施例中,ADAS***838可以是用于向备用计算机合理性模块提供感知信息的备用和/或辅助计算机。备用计算机合理性监视器可以在硬件部件上运行冗余多样的软件,以检测感知和动态驾驶任务中的故障。来自ADAS***838的输出可以提供给监督MCU。如果来自主计算机和辅助计算机的输出冲突,那么监督MCU必须确定如何协调该冲突以确保安全操作。
在一些示例中,主计算机可以被配置为向监督MCU提供置信度评分,指示主计算机对所选结果的置信度。如果置信度评分超过阈值,那么监督MCU可以遵循主计算机的方向,而不管辅助计算机是否提供冲突或不一致的结果。在置信度评分不满足阈值的情况下并且在主计算机和辅助计算机指示不同的结果(例如冲突)的情况下,监督MCU可以在这些计算机之间进行仲裁以确定适当的结果。
监督MCU可以被配置为运行神经网络,所述神经网络被训练并且被配置为至少部分地基于来自主计算机和辅助计算机的输出,确定辅助计算机提供假警报的条件。因此,监督MCU中的神经网络可以了解何时可以信任辅助计算机的输出以及何时不能。例如,当辅助计算机为基于RADAR的FCW***时,监督MCU中的神经网络可以了解FCW***何时正在识别事实上不是危险的金属对象,例如触发警报的排水栅格或井盖。类似地,当辅助计算机是基于相机的LDW***时,监督MCU中的神经网络可以学习在骑车者或行人在场并且车道偏离实际上是最安全的策略时无视该LDW。在包括运行在监督MCU上的神经网络的实施例中,监督MCU可以包括适合于利用关联的内存运行神经网络的DLA或GPU中的至少一个。在优选的实施例中,监督MCU可以包括SoC 804的部件和/或作为SoC 804的部件而被包括。
在其他示例中,ADAS***838可以包括使用传统计算机视觉规则执行ADAS功能的辅助计算机。这样,辅助计算机可以使用经典的计算机视觉规则(如果-那么),并且在监督MCU中存在神经网络可以提高可靠性、安全性和性能。例如,多样化的实现方式和有意的非完全相同(non-identity)使得整个***更加容错,对于软件(或者软件-硬件接口)功能造成的故障而言尤其如此。例如,如果在主计算机上运行的软件中存在软件漏洞或错误并且运行在辅助计算机上的非完全相同的软件代码提供相同的总体结果,那么监督MCU可以更加确信总体结果是正确的,并且主计算机上的软件或硬件中的漏洞不造成实质性的错误。
在一些示例中,ADAS***838的输出可以馈送至主计算机的感知块和/或主计算机的动态驾驶任务块。例如,如果ADAS***838由于对象紧接在前的原因而指示前方碰撞警告,那么感知块可以在识别对象时使用该信息。在其他示例中,辅助计算机可以具有它自己的神经网络,其被训练并且因此如本文所描述的降低假阳性的风险。
车辆800可以还包括信息娱乐SoC 830(例如车载信息娱乐***(IVI))。尽管被图示和描述为SoC,但是信息娱乐***可以不是SoC,并且可以包括两个或更多分立的部件。信息娱乐SoC 830可以包括可以用来向车辆800提供音频(例如音乐、个人数字助理、导航指令、新闻、广播等等)、视频(例如TV、电影、流媒体等等)、电话(例如免提呼叫)、网络连接(例如LTE、WiFi等等)和/或信息服务(例如导航***,后停车援助,无线电数据***,诸如燃油水平、覆盖的总距离、制动燃油水平、油位、车门开/关、空气过滤器信息之类的车辆有关信息,等等)的硬件和软件的组合。例如,信息娱乐SoC 830可以包括收音机、盘播放器、导航***、视频播放器、USB和蓝牙连接、车载电脑、车载娱乐、WiFi、方向盘音频控件、免提语音控件、平视显示器(HUD)、HMI显示器834、远程信息处理设备、控制面板(例如用于控制各种部件、特征和/或***,和/或与其交互)和/或其他部件。信息娱乐SoC 830可以进一步用来向车辆的用户提供信息(例如视觉的和/或听觉的),例如来自ADAS***838的信息,诸如规划的车辆机动、轨迹、周围环境信息(例如交叉路口信息、车辆信息、道路信息等等)之类的自主驾驶信息,和/或其他信息。
信息娱乐SoC 830可以包括GPU功能。信息娱乐SoC 830可以通过总线802(例如CAN总线、以太网等)与车辆800的其他设备、***和/或部件通信。在一些示例中,信息娱乐SoC830可以耦合至监督MCU,使得在主控制器836(例如车辆800的主和/或备用计算机)出现故障的情况下,信息娱乐***的GPU可以执行一些自驾驶功能。在这样的示例中,信息娱乐SoC830可以如本文所描述的将车辆800置于司机安全停车模式。
车辆800可以还包括仪表组832(例如数字仪表板、电子仪表组、数字仪表面板等等)。仪表组832可以包括控制器和/或超级计算机(例如分立的控制器或超级计算机)。仪表组832可以包括一套仪器,例如车速表、燃油水平、油压、转速表、里程表、转弯指示器、换档位置指示器、安全带警告灯、停车制动警告灯、发动机故障灯、安全气囊(SRS)***信息、照明控件、安全***控件、导航信息等等。在一些示例中,信息可以被显示和/或在信息娱乐SoC 830和仪表组832之间共享。换言之,仪表组832可以作为信息娱乐SoC 830的部分而被包括,或者反之亦然。
图8D为根据本公开一些实施例的基于云的服务器与图8A的示例自主车辆800之间的通信的***示意图。***876可以包括服务器878、网络890以及包括车辆800在内的车辆。服务器878可以包括多个GPU 884(A)-884(H)(这里统称为GPU 884)、PCIe交换机882(A)-882(H)(这里统称为PCIe交换机882)和/或CPU 880(A)-880(B)(这里统称为CPU 880)。GPU884、CPU 880和PCIe交换机可以与诸如例如且不限于NVIDIA开发的NVLink接口888之类的高速互连和/或PCIe连接886互连。在一些示例中,GPU 884经由NVLink和/或NVSwitch SoC连接,并且GPU 884和PCIe交换机882经由PCIe互连连接。尽管图示出八个GPU 884、两个CPU880和两个PCIe交换机,但是这并不意图是限制性的。取决于实施例,服务器878中的每一个可以包括任意数量的GPU 884、CPU 880和/或PCIe交换机。例如,服务器878中的每一个可以包括八个、十六个、三十二个和/或更多GPU 884。
服务器878可以通过网络890并且从车辆接收图像数据,该图像数据表示示出诸如最近开始的道路工程之类的意外或改变的道路状况的图像。服务器878可以通过网络890并且向车辆传输神经网络892、更新的神经网络892和/或地图信息894,包括关于交通和道路状况的信息。对地图信息894的更新可以包括对于HD地图822的更新,例如关于建筑工地、坑洼、弯道、洪水或其他障碍物的信息。在一些示例中,神经网络892、更新的神经网络892和/或地图信息894可以已从新的训练和/或从环境中的任意数量的车辆接收的数据中表示和/或基于数据中心处执行的训练(例如使用服务器878和/或其他服务器)的经验产生。
服务器878可以用来基于训练数据训练机器学习模型(例如神经网络)。训练数据可以由车辆生成,和/或可以在仿真中生成(例如使用游戏引擎)。在一些示例中,训练数据被标记(例如在神经网络受益于有监督学习的情况下)和/或经历其他预处理,而在其他示例中,训练数据不被标记和/或预处理(例如在神经网络无需有监督学习的情况下)。可以根据任何一类或更多类别的机器学习技术来执行训练,包括但不限于诸如以下类别:监督训练、半监督训练、非监督训练、自学习、强化学习、联合学习、转移学习、特征学习(包括主要组成和聚类分析)、多线性子空间学习、流形学习、表示学习(包括备用字典学习)、基于规则的机器学习、异常检测及其任何变体或组合。一旦机器学习模型被训练,机器学习模型可以由车辆使用(例如通过网络890传输至车辆),和/或机器学习模型可以由服务器878用来远程地监控车辆。
在一些示例中,服务器878可以接收来自车辆的数据,并且将该数据应用到最新的实时神经网络以用于实时智能推理。服务器878可以包括由GPU 884供电的深度学习超级计算机和/或专用AI计算机,例如NVIDIA开发的DGX和DGX站机器。然而,在一些示例中,服务器878可以包括仅使用CPU供电的数据中心的深度学习基础设施。
服务器878的深度学习基础设施可能够快速实时推理,并且可以使用该能力来评估并验证车辆800中的处理器、软件和/或关联硬件的健康状况。例如,深度学习基础设施可以接收来自车辆800的定期更新,例如图像序列和/或车辆800已经定位的位于该图像序列中的对象(例如经由计算机视觉和/或其他机器学习对象分类技术)。深度学习基础设施可以运行它自己的神经网络以识别对象并且将它们与车辆800识别的对象相比较,如果结果不匹配并且该基础设施得出车辆800中的AI发生故障的结论,那么服务器878可以向车辆800传输信号,指示车辆800的故障保护计算机进行控制,通知乘客,并且完成安全停车操作。
为了推理,服务器878可以包括GPU 884和一个或更多个可编程推理加速器(例如NVIDIA的TensorRT)。GPU供电的服务器和推理加速的组合可以使得实时响应成为可能。在其他示例中,例如在性能不那么重要的情况下,CPU、FPGA和其他处理器供电的服务器可以用于推理。
示例计算设备
图9是适合用于实现本公开的一些实施例的示例计算设备900的框图。计算设备900可以包括直接或间接耦合以下设备的互连***902:存储器904、一个或更多个中央处理单元(CPU)906、一个或更多个图形处理单元(GPU)908、通信接口910、输入/输出(I/O)端口912、输入/输出组件914、电源916,一个或更多个呈现组件918(例如,(一个或更多个)显示器)和一个或更多个逻辑单元920。在至少一个实施例中,(一个或更多个)计算设备900可以包括一个或更多个虚拟机(VM),和/或其任何组件可以包括虚拟组件(例如,虚拟硬件组件)。对于非限制性示例,GPU 908中的一个或更多个可以包括一个或更多个vGPU,CPU 906中的一个或更多个可以包括一个或更多个vCPU,和/或逻辑单元920中的一个或更多个可以包括一个或更多个虚拟逻辑单元。这样,(一个或更多个)计算设备900可以包括分立组件(例如,专用于计算设备900的全GPU)、虚拟组件(例如,专用于计算设备900的GPU的一部分)、或其组合。
尽管图9的各个方框被示出为利用线路经由互连***902连接,但这并不旨在是限制性的并且仅是为了清楚起见。例如,在一些实施例中,呈现组件918(诸如显示设备)可被认为是I/O组件914(例如,如果显示器是触摸屏)。作为另一个示例,CPU 906和/或GPU 908可以包括存储器(例如,存储器904可以表示除了GPU 908的存储器、CPU 906和/或其他组件之外的存储设备)。换言之,图9的计算设备仅是说明性的。在如“工作站”、“服务器”、“膝上型计算机”、“桌面型计算机”、“平板计算机”、“客户端设备”、“移动设备”、“手持式设备”、“游戏控制台”、“电子控制单元(ECU)”、“虚拟现实***”和/或其他设备或***类型的此类类别之间不做区分,因为所有都被考虑在图9的计算设备的范围内。
互连***902可表示一个或更多个链路或总线,诸如地址总线、数据总线、控制总线或其组合。互连***902可以包括一个或更多个总线或链路类型,诸如工业标准架构(ISA)总线、扩展工业标准架构(EISA)总线、视频电子标准协会(VESA)总线、***组件互连(PCI)总线、快速***组件互连(PCIe)总线和/或另一类型的总线或链路。在一些实施例中,组件之间存在直接连接。作为示例,CPU 906可直接连接到存储器904。进一步,CPU 906可直接连接到GPU 908。在组件之间存在直接或点对点连接的情况下,互连***902可包括PCIe链路以执行连接。在这些示例中,PCI总线不需要被包括在计算设备900中。
存储器904可以包括各种计算机可读介质中的任何计算机可读介质。计算机可读介质可以是可由计算设备900访问的任何可用介质。计算机可读介质可以包括易失性和非易失性介质,以及可移除和不可移除介质。作为示例而非限制,计算机可读介质可包括计算机存储介质和通信介质。
计算机存储介质可以包括以用于存储诸如计算机可读指令、数据结构、程序模块和/或其他数据类型的信息的任何方法或技术实现的易失性和非易失性介质和/或可移动和不可移动介质。例如,存储器904可以存储计算机可读指令(例如,表示(一个或更多个)程序和/或(一个或更多个)程序元件,诸如操作***)。计算机存储介质可以包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术,CD-ROM、数字通用盘(DVD)或其他光盘存储、磁带盒、磁带、磁盘存储装置或其他磁性存储装置,或可用于存储所要信息且可由计算设备900存取的任何其他介质。如本文所使用的,计算机存储介质不包括信号本身。
计算机存储介质可将计算机可读指令、数据结构、程序模块和/或其他数据类型体现在诸如载波或其他传输机制之类的已调制数据信号中,并且包括任何信息传递介质。术语“调制数据信号”可以指代以编码信号中的信息的方式设置或改变其一个或更多个特性的信号。作为示例而非限制,计算机存储介质可包括有线介质(诸如有线网络或直接有线连接)和无线介质(诸如声学、RF、红外和其他无线介质)。以上任何内容的组合也应包含在计算机可读介质的范围内。
CPU 906可经配置以执行计算机可读指令中的至少一些以控制计算设备900的一个或更多个组件执行本文中所描述的方法和/或过程中的一个或更多个。CPU 906可各自包含能够同时处置众多软件线程的一个或更多个核心(例如,一个、两个、四个、八个、二十八个、七十二个等)。CPU 906可包含任何类型的处理器,且可取决于所实施的计算设备900的类型而包含不同类型的处理器(例如,针对移动装置具有较少核心的处理器和针对服务器具有较多核心的处理器)。例如,取决于计算设备900的类型,处理器可以是使用精简指令集计算(RISC)实现的高级RISC机器(ARM)处理器或使用复杂指令集计算(CISC)实现的x86处理器。除了一个或更多个微处理器或补充协处理器(诸如数学协处理器)之外,计算设备900还可包括一个或更多个CPU 906。
除(一个或更多个)CPU 906以外或替代(一个或更多个)CPU 906,(一个或更多个)GPU 908可被配置成执行计算机可读指令中的至少一些以控制计算设备900的一个或更多个组件执行本文所描述的方法和/或过程中的一个或更多个。GPU 908中的一个或更多个可为集成GPU(例如,有CPU 906中的一个或更多个)和/或GPU 908中的一个或更多个可为离散GPU。在实施例中,GPU 908中的一个或更多个可以是CPU 906中的一个或更多个的协处理器。GPU 908可由计算设备900使用以渲染图形(例如,3D图形)或执行通用计算。例如,GPU908可用于GPU上的通用计算(GPGPU)。GPU 908可包含能够同时处置数百或数千软件线程的数百或数千核心。GPU 908可响应于渲染命令(例如,经由主机接口从CPU 906接收的渲染命令)而产生输出图像的像素数据。GPU 908可包含用于存储像素数据或任何其他合适数据(例如,GPGPU数据)的图形存储器(例如,显示存储器)。显示存储器可作为存储器904的一部分被包括。GPU 908可包含并行操作(例如,经由链路)的两个或两个以上GPU。链路可以直接连接GPU(例如,使用NVLINK)或可以通过交换机(例如,使用NVSwitch)连接GPU。当组合在一起时,每一GPU 908可产生用于输出的不同部分或用于不同输出的像素数据或GPGPU数据(例如,用于第一图像的第一GPU和用于第二图像的第二GPU)。每一GPU可包含其自己的存储器,或可与其他GPU共享存储器。
除CPU 906和/或GPU 908之外或替代CPU 906和/或GPU 908,逻辑单元920可经配置以执行计算机可读指令中的至少一些以控制计算设备900的一个或更多个组件执行本文中所描述的方法和/或过程中的一个或更多个。在实施例中,(一个或更多个)CPU 906、(一个或更多个)GPU 908、和/或(一个或更多个)逻辑单元920可以离散地或联合地执行方法、过程和/或其部分的任何组合。逻辑单元920中的一个或更多个可为CPU 906和/或GPU 908中的一个或更多个中的一部分和/或集成于CPU 906和/或GPU 908中的一个或更多个和/或逻辑单元920中的一个或更多个可为离散组件或以其他方式在CPU 906和/或GPU 908外部。在实施例中,逻辑单元920中的一个或更多个可以是CPU 906中的一个或更多个和/或GPU908中的一个或更多个的协处理器。
逻辑单元920的示例包括一个或更多个处理核心和/或其组件,诸如张量核心(TC)、张量处理单元(TPU)、像素视觉核心(PVC)、视觉处理单元(VPU)、数据处理单元(DPU)、图形处理群集(GPC)、纹理处理群集(TPC)、流多处理器(SM)、树横向单元(TTU)、人工智能加速器(AIA)、深度学习加速器(DLA)、算术逻辑单元(ALU)、专用集成电路(ASIC)、浮点单元(FPU)、输入/输出(I/O)元件、***组件互连(PCI)或快速***组件互连(PCIe)元件等。
通信接口910可以包括使计算设备900能够经由电子通信网络(包括有线和/或无线通信)与其他计算设备通信的一个或更多个接收机、发射机和/或收发机。通信接口910可包括实现通过多个不同网络中的任一个进行通信的组件和功能,诸如无线网络(例如,Wi-Fi、Z-Wave、蓝牙、蓝牙LE、ZigBee等)、有线网络(例如,通过以太网或无限带通信)、低功率广域网(例如,LoRaWAN、SigFox等)和/或互联网。
I/O端口912可以使得计算设备900能够逻辑地耦合到包括I/O组件914、(一个或更多个)呈现组件918和/或其他组件的其他设备,其中一些可以被内置到(例如,集成在)计算设备900中。说明性I/O组件914包括麦克风、鼠标、键盘、操纵杆、游戏垫、游戏控制器、碟形卫星天线、扫描仪、打印机、无线设备等。I/O组件914可以提供处理空中姿势、语音或由用户生成的其他生理输入的自然用户界面(NUI)。在一些情况下,可将输入发射到适当的网络元件以供进一步处理。NUI可实现与计算设备900的显示器相关联的语音识别、指示笔识别、面部识别、生物特征识别、屏幕上和屏幕附近的姿势识别、空中姿势、头部和眼睛跟踪、以及触摸识别(如以下更详细地描述的)的任何组合。计算设备900可以包括用于手势检测和识别的深度相机,诸如立体相机***、红外相机***、RGB相机***、触摸屏技术和这些的组合。另外,计算设备900可包含使得能够检测运动的加速度计或陀螺仪(例如,作为惯性测量单元(IMU)的部分)。在一些示例中,计算设备900可以使用加速度计或陀螺仪的输出来渲染沉浸式增强现实或虚拟现实。
电源916可包括硬连线电源、电池电源或其组合。电源916可向计算设备900提供电力以使得计算设备900的组件能够操作。
呈现组件918可包括显示器(例如,监视器、触摸屏、电视屏幕、平视显示器(HUD)、其他显示器类型或其组合)、扬声器和/或其他呈现组件。呈现组件918可从其他组件(例如,GPU908、CPU906等)接收数据,且输出所述数据(例如,作为图像、视频、声音等)。
示例数据中心
图10示出了可在本公开的至少一个实施例中使用的示例数据中心1000。数据中心1000可包括数据中心基础设施层1010、框架层1020、软件层1030和/或应用层1040。
如图10所示,数据中心基础设施层1010可以包括资源协调器1012、分组的计算资源1014和节点计算资源(“节点C.R.s”)1016(1)-1016(N),其中“N”表示任何完整的正整数。在至少一个实施例中,节点C.R.s 1016(1)-1016(N)可包括,但不限于任何数量的中央处理单元(“CPU”)或其他处理器(包括加速器、现场可编程门阵列(FPGA)、图形处理器或图形处理单元(GPU)等),存储器设备(例如,动态只读存储器),存储设备(例如,固态或磁盘驱动器),网络输入/输出(“NW I/O”)装置、网络交换机、虚拟机(“VM”)、功率模块和/或冷却模块,等等。在一些实施例中,来自节点C.R.s 1016(1)-1016(N)中的一个或更多个节点C.R.s可对应于具有上述计算资源中的一个或更多个的服务器。此外,在一些实施例中,节点C.R.s 1016(1)-10161(N)可包括一个或更多个虚拟组件,诸如vGPU、vCPU等,和/或节点C.R.s 1016(1)-1016(N)中的一个或更多个可对应于虚拟机(VM)。
在至少一个实施例中,分组的计算资源1014可包括容纳在一个或更多个机架(未示出)内的节点C.R.s 1016的单独分组,或容纳在不同地理位置(也未示出)处的数据中心内的许多机架。分组的计算资源1014内的节点C.R.s 1016的单独分组可包括可被配置或分配来支持一个或更多个工作负荷的分组计算、网络、存储器或存储资源。在至少一个实施例中,包括CPU、GPU和/或其他处理器的若干节点C.R.s 1016可以分组在一个或更多个机架内以提供计算资源来支持一个或更多个工作负荷。一个或更多个机架还可包括任意组合的任意数量的功率模块、冷却模块和/或网络交换机。
资源协调器1022可配置或以其他方式控制一个或更多个节点C.R.s1016(1)-1016(N)和/或分组的计算资源1014。在至少一个实施例中,资源协调器1022可以包括用于数据中心1000的软件设计基础设施(“SDI”)管理实体。资源协调器1022可以包括硬件、软件或其某种组合。
在至少一个实施例中,如图10所示,框架层1020可以包括作业调度器1032、配置管理器1034、资源管理器1036和/或分布式文件***1038。框架层1020可以包括支持软件层1030的软件1032和/或应用层1040的一个或更多个应用1042的框架。软件1032或应用1042可分别包含基于网络的服务软件或应用,例如由Amazon(亚马逊)网络服务、Google Cloud(谷歌云)和Microsoft Azure提供的那些。框架层1020可以是但不限于可以利用分布式文件***1038进行大规模数据处理(例如,“大数据”)的免费和开源的软件网络应用框架(如Apache SparkTM(下文称为“Spark”))的类型。在至少一个实施例中,作业调度器1032可以包括Spark驱动器以促进调度由数据中心1000的不同层支持的工作负荷。配置管理器1034可以能够配置不同层,诸如软件层1030和框架层1020(其包括用于支持大规模数据处理的Spark和分布式文件***1038)。资源管理器1036可以能够管理被映射到分布式文件***1038和作业调度器1032或被分配用于支持分布式文件***1038和作业调度器1032的集群的或分组的计算资源。在至少一个实施例中,集群的或分组的计算资源可包括在数据中心基础设施层1010的分组的计算资源1014。资源管理器1036可与资源协调器1012协调以管理这些被映射或分配的计算资源。
在至少一个实施例中,在软件层1030中包括的软件1032可包括由节点C.R.s 1016(1)-1016(N)、分组的计算资源1014和/或框架层1020的分布式文件***1038中的至少部分使用的软件。一种或更多种类型的软件可以包括但不限于互联网网页搜索软件、电子邮件病毒扫描软件、数据库软件和流式视频内容软件。
在至少一个实施例中,在应用层1040中包括的应用1042可包括由节点C.R.s 1016(1)-1016(N)、分组的计算资源1014和/或框架层1020的分布式文件***1038中的至少部分使用的一个或更多个类型的应用。一种或更多种类型的应用可以包括但不限于任何数量的基因组应用、认知计算和机器学习应用,包括训练或推断软件、机器学习框架软件(例如,PyTorch、TensorFlow、Caffe等)和/或结合一个或更多个实施例使用的其他机器学习应用。
在至少一个实施例中,配置管理器1034、资源管理器1036和资源协调器1012中的任一个可基于在任何技术上可行的方式中获取的任何量和类型的数据来实现任何数量和类型的自修改动作。自修改动作可使数据中心1000的数据中心操作者免于做出可能较差的配置决策和可能避免数据中心的未充分利用和/或较差执行部分。
根据本文描述的一个或更多个实施例,数据中心1000可包括工具、服务、软件或其他资源来训练一个或更多个机器学习模型或使用一个或更多个机器学习模型来预测或推断信息。例如,可以通过使用以上相对于数据中心1000描述的软件和/或计算资源根据神经网络架构来计算权重参数来训练(一个或更多个)机器学习模型。在至少一个实施例中,对应于一个或更多个神经网络的经训练或部署的机器学习模型可用于通过使用通过一种或多种训练技术(诸如但不限于本文中描述的那些训练技术)计算的权重参数,使用上文相对于数据中心1000描述的资源来推断或预测信息。
在至少一个实施例中,数据中心1000可使用CPU、专用集成电路(ASIC)、GPU、FPGA和/或其他硬件(或与其对应的虚拟计算资源)来使用上述资源执行训练和/或推断。此外,上文所描述的一或更多个软件和/或硬件资源可被配置为允许用户训练或执行对信息的推断的服务,例如图像识别、语音识别或其他人工智能服务。
示例网络环境
适合用于实现本公开的实施例的网络环境可以包括一个或更多个客户端设备、服务器、网络附加存储(NAS)、其他后端设备和/或其他设备类型。客户端设备、服务器和/或其他设备类型(例如,每个设备)可以在图9的(一个或更多个)计算设备900的一个或更多个实例上实现——例如,每个设备可以包括(一个或更多个)计算设备900的类似部件、特征和/或功能。此外,在实现后端设备(例如,服务器、NAS等)的情况下,后端设备可被包括作为数据中心1000的一部分,数据中心1000的示例在本文中关于图10更详细地描述。
网络环境的组件可经由网络彼此通信,所述网络可为有线的、无线的或为两者。网络可以包括多个网络或多个网络中的一个网络。例如,网络可包括一个或更多个广域网(WAN)、一个或更多个局域网(LAN)、一个或更多个公共网络(诸如互联网和/或公共交换电话网(PSTN))和/或一个或更多个私有网络。在网络包括无线电信网络的情况下,诸如基站、通信塔或者甚至接入点(以及其他组件)的组件可以提供无线连接。
兼容的网络环境可以包括一个或更多个对等网络环境(在这种情况下,服务器可以不被包括在网络环境中)和一个或更多个客户端-服务器网络环境(在这种情况下,一个或更多个服务器可以被包括在网络环境中)。在对等网络环境中,本文针对服务器所描述的功能可在任何数量的客户端设备上实现。
在至少一个实施例中,网络环境可包括一个或更多个基于云的网络环境、分布式计算环境、其组合等。基于云的网络环境可包括框架层、作业调度器、资源管理器和在一个或更多个服务器上实现的分布式文件***,所述服务器可包括一个或更多个核心网服务器和/或边缘服务器。框架层可包括支持软件层的软件和/或应用层的一个或更多个应用的框架。软件或应用可分别包含基于网络的服务软件或应用。在实施例中,一个或更多个客户端设备可以使用基于网络的服务软件或应用(例如,通过经由一个或更多个应用编程接口(API)访问服务软件和/或应用)。框架层可以是但不限于如可以使用分布式文件***进行大规模数据处理(例如,“大数据”)的一种免费和开源软件网络应用框架。
基于云的网络环境可提供执行本文描述的计算和/或数据存储功能(或其一个或更多个部分)的任何组合的云计算和/或云存储。这些不同功能中的任何功能可以分布在来自(例如,可以分布在州、地区、国家、全球等的一个或更多个数据中心的)中央或核心服务器的多个位置上。如果与用户(例如,客户端设备)的连接相对靠近边缘服务器,则核心服务器可以将功能的至少一部分指定给边缘服务器。基于云的网络环境可以是私有的(例如,限于单个组织),可以是公共的(例如,对许多组织可用),和/或其组合(例如,混合云环境)。
(一个或更多个)客户端设备可以包括本文关于图9所描述的(一个或更多个)示例计算设备900的组件、特征和功能中的至少一些。作为示例而非限制,客户端设备可被实现为个人计算机(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中的至少一个。
这里详细地描述了本公开的主题以满足法定要求。然而,描述本身并非意在限制本公开的范围。相反地,本公开人已经设想到,要求保护的主题也可以以其他的方式具体化,以包括与本文中结合其他当前或未来技术描述的步骤不同的步骤或者相似的步骤的组合。而且,尽管术语“步骤”和/或“块”在本文中可以用来隐含采用的方法的不同元件,但是这些术语不应当被解释为暗示本文公开的各个步骤之中或之间的任何特定顺序,除非明确描述了各步骤的顺序。
权利要求书(按照条约第19条的修改)
1.一种处理器,包括:一个或更多个电路,用于:接收表示多个深度神经网络(DNN)的多个输出的第一数据,所述多个输出中的至少一个输出对应于相应传感器,所述相应传感器具有的相应视场不同于与自主机器的多个传感器中的一个或更多个其他传感器相对应的视场;通过针对所述多个输出中的每个输出,使用所述第一数据生成多个光栅化图像,所述光栅化图像描绘与一个或更多个对象中的每个对象相对应的对象位置、对象分类、对象速度或对象定向中的至少一个;使用融合DNN并至少部分基于所述多个光栅化图像来计算表示所述多个光栅化图像的融合的第二数据;以及至少部分地基于所述第二数据,使用所述自主机器执行一个或更多个操作。
2.根据权利要求1所述的处理器,其中所述第二数据的计算进一步至少部分地基于第三数据,所述第三数据表示与所述多个输出中的至少一个输出的至少一个点相对应的至少一个概率分布函数,所述至少一个点与检测对象相对应并且所述至少一个概率分布函数与所述检测对象的一个或更多个潜在位置相对应。
3.根据权利要求1所述的处理器,其中所述第二数据的计算进一步至少部分地基于表示一个或更多个速度表示的第三数据,所述一个或更多个速度表示包括与x方向上的速度或y方向上的速度中的至少一个相对应的编码值。
4.根据权利要求1所述的处理器,其中所述第二数据的计算进一步至少部分地基于第三数据,所述第三数据表示与使用所述多个输出确定的对象实例或对象外观中的至少一个相对应的一个或更多个表示。
5.根据权利要求1所述的处理器,其中所述多个光栅化图像的所述融合包括融合的光栅化图像。
6.根据权利要求5所述的处理器,其中所述一个或更多个对象包括车辆、行人、骑自行车的人、驾车者、车道标记、道路边界标记、自由空间边界或等待线中的至少一种。
7.根据权利要求1所述的处理器,其中:所述多个输出中的第一输出与第一视场相对应;所述多个输出中的第二输出与不同于所述第一视场的第二视场相对应;并且所述多个光栅化图像的融合与所述第一视场和所述第二视场二者相对应。
8.根据权利要求7所述的处理器,其中所述第一视场和所述第二视场至少部分地重叠。
9.根据权利要求1所述的处理器,其中所述第一数据进一步表示使用LiDAR传感器、RADAR传感器或超声波传感器生成的一个或更多个附加输出,并且使用另一DNN或不使用另一DNN生成所述一个或更多个附加输出。
10.根据权利要求1所述的处理器,其中:所述多个输出中的第一输出包括对象的第一表示;所述多个输出中的第二输出包括所述对象的第二表示;并且所述多个光栅化图像的融合包括所述对象的融合的表示。
11.根据权利要求1所述的处理器,其中所述处理器被包括在以下至少一个中:用于自主或半自主机器的控制***;用于自主或半自主机器的感知***;用于执行模拟操作的***;用于执行深度学习操作的***;使用边缘设备实现的***;使用机器人实现的***;合并一个或更多个虚拟机(VM)的***;至少部分地在数据中心中实现的***;或至少部分地使用云计算资源实现的***。
12.一种***,包括:一个或更多个处理单元;以及存储有指令的一个或更多个存储器单元,当由所述一个或更多个处理单元执行所述指令时,使所述一个或更多个处理单元执行以下操作,包括:接收表示至少第一光栅化图像的第一数据,所述第一光栅化图像使用第一深度神经网络(DNN)生成并且至少部分地基于使用第一传感器生成的第一传感器数据,所述第一光栅化图像包括至少第一对象;接收表示至少第二光栅化图像的第二数据,所述第二光栅化图像使用第二深度神经网络(DNN)生成并且至少部分地基于使用第二传感器生成的第二传感器数据,所述第二光栅化图像包括至少第二对象;使用融合DNN并至少部分地基于所述第一数据和所述第二数据,计算表示融合的光栅化图像的第三数据,所述融合的光栅化图像包括所述第一对象和所述第二对象两者;以及至少部分地基于所述第三数据,使用自主机器执行一个或更多个操作。
13.根据权利要求12所述的***,其中所述第一传感器和所述第二传感器包括图像传感器、LiDAR传感器、RADAR传感器或超声波传感器中的一个。
14.根据权利要求12所述的***,其中所述第一传感器和所述第二传感器包括至少部分地重叠视场,所述第一光栅化图像包括第三对象的第一表示,所述第二光栅化图像包括所述第三对象的第二表示,并且所述融合的光栅化图像包括所述第三对象的融合的表示。
15.根据权利要求12所述的***,其中所述操作还包括:接收表示至少一个概率分布函数的第四数据,所述至少一个概率分布函数与所述第一光栅化图像或所述第二光栅化图像中的至少一个的至少一个像素相对应,所述至少一个像素与所述第一对象或所述第二对象中的至少一个相对应,并且所述至少一个概率分布函数与检测对象的一个或更多个潜在位置相对应,其中计算所述第三数据进一步至少部分地基于第四数据。
16.根据权利要求12所述的***,其中所述操作还包括:接收表示一个或更多个速度表示的第四数据,所述一个或更多个速度表示包括与x方向上的速度或y方向上的速度中的至少一个相对应的编码值,其中计算所述第三数据进一步至少部分地基于所述第四数据。
17.根据权利要求12所述的***,其中所述***被包括在以下至少一个中:用于自主或半自主机器的控制***;用于自主或半自主机器的感知***;用于执行模拟操作的***;用于执行深度学习操作的***;使用边缘设备实现的***;使用机器人实现的***;合并一个或更多个虚拟机(VM)的***;至少部分地在数据中心中实现的***;或至少部分地使用云计算资源实现的***。
18.一种方法,包括:接收表示至少第一光栅化图像的第一数据,所述第一光栅化图像至少部分地基于第一传感器数据生成,所述第一传感器数据使用第一类型的第一传感器生成,所述第一光栅化图像包括至少第一对象;接收表示至少第二光栅化图像的第二数据,所述第二光栅化图像至少部分地基于第二传感器数据生成,所述第二传感器数据使用不同于所述第一类型的第二类型的第二传感器生成,所述第二光栅化图像包括至少第二对象;使用融合深度神经网络(DNN)并至少部分地基于所述第一数据和所述第二数据,计算表示融合的光栅化图像的第三数据,所述融合的光栅化图像包括所述第一对象和所述第二对象两者;以及使用自主机器并且至少部分地基于所述第三数据,执行一个或更多个操作。
19.根据权利要求18所述的方法,其中所述第一类型和所述第二类型包括图像传感器、LiDAR传感器、RADAR传感器或超声波传感器中的一个。
20.根据权利要求18所述的方法,其中所述第一类型包括图像传感器,并且所述第一光栅化图像是使用深度神经网络(DNN)生成的,并且所述第二类型包括LiDAR传感器、RADAR传感器或超声波传感器中的一个,并且所述第二光栅化图像不使用DNN而生成。

Claims (20)

1.一种处理器,包括:一个或更多个电路,用于:接收表示多个深度神经网络(DNN)的多个输出的第一数据,所述多个输出中的至少一个输出对应于相应传感器,所述相应传感器具有的相应视场不同于与自主机器的多个传感器中的一个或更多个其他传感器相对应的视场;使用融合DNN并至少部分基于所述第一数据来计算表示所述多个输出的融合的第二数据;以及至少部分地基于所述第二数据,使用所述自主机器执行一个或更多个操作。
2.根据权利要求1所述的处理器,其中计算所述第二数据进一步至少部分地基于第三数据,所述第三数据表示与所述多个输出中的至少一个输出的至少一个点相对应的至少一个概率分布函数,所述至少一个点与检测对象相对应并且所述至少一个概率分布函数与所述检测对象的一个或更多个潜在位置相对应。
3.根据权利要求1所述的处理器,其中计算所述第二数据进一步至少部分地基于表示一个或更多个速度表示的第三数据,所述一个或更多个速度表示包括与x方向上的速度或y方向上的速度中的至少一个相对应的编码值。
4.根据权利要求1所述的处理器,其中计算所述第二数据进一步至少部分地基于第三数据,所述第三数据表示与使用所述多个输出确定的对象实例或对象外观中的至少一个相对应的一个或更多个表示。
5.根据权利要求1所述的处理器,其中所述多个输出中的每个输出包括表示一个或更多个对象的光栅化图像,并且融合的输出包括融合的光栅化图像。
6.根据权利要求5所述的处理器,其中所述一个或更多个对象包括车辆、行人、骑自行车的人、驾车者、车道标记、道路边界标记、自由空间边界或等待线中的至少一种。
7.根据权利要求1所述的处理器,其中:所述多个输出中的第一输出与第一视场相对应;所述多个输出中的第二输出与不同于所述第一视场的第二视场相对应;并且所述多个输出的融合与所述第一视场和所述第二视场二者相对应。
8.根据权利要求7所述的处理器,其中所述第一视场和所述第二视场至少部分地重叠。
9.根据权利要求1所述的处理器,其中所述第一数据进一步表示使用LiDAR传感器、RADAR传感器或超声波传感器生成的一个或更多个附加输出,并且使用另一DNN或不使用另一DNN生成所述一个或更多个附加输出。
10.根据权利要求1所述的处理器,其中:所述多个输出中的第一输出包括对象的第一表示;所述多个输出中的第二输出包括所述对象的第二表示;并且所述多个输出的融合包括所述对象的融合的表示。
11.根据权利要求1所述的处理器,其中所述处理器被包括在以下至少一个中:用于自主或半自主机器的控制***;用于自主或半自主机器的感知***;用于执行模拟操作的***;用于执行深度学习操作的***;使用边缘设备实现的***;使用机器人实现的***;合并一个或更多个虚拟机(VM)的***;至少部分地在数据中心中实现的***;或至少部分地使用云计算资源实现的***。
12.一种***,包括:一个或更多个处理单元;以及存储有指令的一个或更多个存储器单元,当由所述一个或更多个处理单元执行所述指令时,使所述一个或更多个处理单元执行以下操作,包括:接收表示至少第一光栅化图像的第一数据,所述第一光栅化图像使用第一深度神经网络(DNN)生成并且至少部分地基于使用第一传感器生成的第一传感器数据,所述第一光栅化图像包括至少第一对象;接收表示至少第二光栅化图像的第二数据,所述第二光栅化图像使用第二深度神经网络(DNN)生成并且至少部分地基于使用第二传感器生成的第二传感器数据,所述第二光栅化图像包括至少第二对象;使用融合DNN并至少部分地基于所述第一数据和所述第二数据,计算表示融合的光栅化图像的第三数据,所述融合的光栅化图像包括所述第一对象和所述第二对象两者;以及至少部分地基于所述第三数据,使用自主机器执行一个或更多个操作。
13.根据权利要求12所述的***,其中所述第一传感器和所述第二传感器包括图像传感器、LiDAR传感器、RADAR传感器或超声波传感器中的一个。
14.根据权利要求12所述的***,其中所述第一传感器和所述第二传感器包括至少部分地重叠视场,所述第一光栅化图像包括第三对象的第一表示,所述第二光栅化图像包括所述第三对象的第二表示,并且所述融合的光栅化图像包括所述第三对象的融合的表示。
15.根据权利要求12所述的***,其中所述操作还包括:接收表示至少一个概率分布函数的第四数据,所述至少一个概率分布函数与所述第一光栅化图像或所述第二光栅化图像中的至少一个的至少一个像素相对应,所述至少一个像素与所述第一对象或所述第二对象中的至少一个相对应,并且所述至少一个概率分布函数与检测对象的一个或更多个潜在位置相对应,其中计算所述第三数据进一步至少部分地基于第四数据。
16.根据权利要求12所述的***,其中所述操作还包括:接收表示一个或更多个速度表示的第四数据,所述一个或更多个速度表示包括与x方向上的速度或y方向上的速度中的至少一个相对应的编码值,其中计算所述第三数据进一步至少部分地基于所述第四数据。
17.根据权利要求12所述的***,其中所述***被包括在以下至少一个中:用于自主或半自主机器的控制***;用于自主或半自主机器的感知***;用于执行模拟操作的***;用于执行深度学习操作的***;使用边缘设备实现的***;使用机器人实现的***;合并一个或更多个虚拟机(VM)的***;至少部分地在数据中心中实现的***;或至少部分地使用云计算资源实现的***。
18.一种方法,包括:接收表示至少第一光栅化图像的第一数据,所述第一光栅化图像至少部分地基于第一传感器数据生成,所述第一传感器数据使用第一类型的第一传感器生成,所述第一光栅化图像包括至少第一对象;接收表示至少第二光栅化图像的第二数据,所述第二光栅化图像至少部分地基于第二传感器数据生成,所述第二传感器数据使用不同于所述第一类型的第二类型的第二传感器生成,所述第二光栅化图像包括至少第二对象;使用融合深度神经网络(DNN)并至少部分地基于所述第一数据和所述第二数据,计算表示融合的光栅化图像的第三数据,所述融合的光栅化图像包括所述第一对象和所述第二对象两者;以及使用自主机器并且至少部分地基于所述第三数据,执行一个或更多个操作。
19.根据权利要求18所述的方法,其中所述第一类型和所述第二类型包括图像传感器、LiDAR传感器、RADAR传感器或超声波传感器中的一个。
20.根据权利要求18所述的方法,其中所述第一类型包括图像传感器,并且所述第一光栅化图像是使用深度神经网络(DNN)生成的,并且所述第二类型包括LiDAR传感器、RADAR传感器或超声波传感器中的一个,并且所述第二光栅化图像不使用DNN而生成。
CN202180005884.8A 2020-06-25 2021-06-21 使用机器学习的用于自主机器应用的传感器融合 Pending CN114631117A (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US202063043794P 2020-06-25 2020-06-25
US63/043,794 2020-06-25
US202063047205P 2020-07-01 2020-07-01
US63/047,205 2020-07-01
PCT/US2021/038262 WO2021262603A1 (en) 2020-06-25 2021-06-21 Sensor fusion for autonomous machine applications using machine learning

Publications (1)

Publication Number Publication Date
CN114631117A true CN114631117A (zh) 2022-06-14

Family

ID=79031098

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202180005884.8A Pending CN114631117A (zh) 2020-06-25 2021-06-21 使用机器学习的用于自主机器应用的传感器融合

Country Status (5)

Country Link
US (2) US11688181B2 (zh)
JP (1) JP2023531330A (zh)
CN (1) CN114631117A (zh)
DE (1) DE112021000135T5 (zh)
WO (1) WO2021262603A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117872333A (zh) * 2024-03-11 2024-04-12 西北工业大学青岛研究院 一种收发分置声纳的布放深度优化方法

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11420630B2 (en) 2019-10-24 2022-08-23 Zoox, Inc. Trajectory modifications based on a collision zone
US11643073B2 (en) * 2019-10-24 2023-05-09 Zoox, Inc. Trajectory modifications based on a collision zone
US11807062B2 (en) * 2019-11-25 2023-11-07 Ford Global Technologies, Llc Collaborative relationship between a vehicle and a UAV
US11443142B2 (en) * 2020-02-14 2022-09-13 Samsung Electronics Co., Ltd. In-storage-based data processing using machine learning
KR20220092738A (ko) * 2020-12-24 2022-07-04 현대자동차주식회사 회피 조향 제어가 개선된 주차 지원 시스템 및 방법
US11810225B2 (en) * 2021-03-30 2023-11-07 Zoox, Inc. Top-down scene generation
US11858514B2 (en) 2021-03-30 2024-01-02 Zoox, Inc. Top-down scene discrimination
US11753045B2 (en) * 2021-06-22 2023-09-12 Waymo Llc Modeling positional uncertainty of moving objects using precomputed polygons
US20220414887A1 (en) * 2021-06-25 2022-12-29 Honda Motor Co., Ltd. Systems and methods for birds eye view segmentation
US20230142674A1 (en) * 2021-07-23 2023-05-11 Zoox, Inc. Radar data analysis and concealed object detection
US12008788B1 (en) * 2021-10-14 2024-06-11 Amazon Technologies, Inc. Evaluating spatial relationships using vision transformers
US20230135234A1 (en) * 2021-10-28 2023-05-04 Nvidia Corporation Using neural networks for 3d surface structure estimation based on real-world data for autonomous systems and applications
US11701996B2 (en) * 2021-11-17 2023-07-18 Motional Ad Llc Deep learning based beam control for autonomous vehicles
US12001175B2 (en) * 2021-12-20 2024-06-04 Gm Cruise Holdings Llc Long tail lidar 3-D object detection improvement with targeted simulation data injection
CN113987255B (zh) * 2021-12-30 2022-04-01 南湖实验室 基于联邦学习与秘密分享的多源密文图像检索方法
JP7328378B2 (ja) * 2022-01-14 2023-08-16 ヤマハ発動機株式会社 水域物体検出システム、船舶および周辺物体検出システム
US20230237783A1 (en) * 2022-01-26 2023-07-27 Ford Global Technologies, Llc Sensor fusion
DE102022105267A1 (de) * 2022-03-07 2023-09-07 Connaught Electronics Ltd. Kombination von Kamerainformationen, die durch wenigstens ein Kamerabild gegeben sind, und weiteren Informationen, die durch Umfeldsensordaten gegeben sind
CN114355378B (zh) * 2022-03-08 2022-06-07 天津云圣智能科技有限责任公司 无人机的自主导航方法、装置、无人机及存储介质
CN114624645B (zh) * 2022-03-10 2022-09-30 扬州宇安电子科技有限公司 一种基于微型天线阵列的小型旋翼无人机雷达侦察***
WO2023191780A1 (en) * 2022-03-30 2023-10-05 Siemens Corporation System and method for controlling autonomous machinery by processing rich context sensor inputs
WO2023244322A2 (en) * 2022-04-26 2023-12-21 Motional Ad Llc Methods and apparatus with hardware logic for pre-processing lidar data
CN114898193A (zh) * 2022-07-11 2022-08-12 之江实验室 基于流形学习的图像特征融合方法、装置及图像分类***
DE102022121109A1 (de) * 2022-08-22 2024-02-22 Valeo Schalter Und Sensoren Gmbh Visuelle Wahrnehmung mit einem Fahrzeug basierend auf einem Kamerabild und einer Ultraschallkarte
DE102023003086A1 (de) 2022-09-15 2024-03-21 Sew-Eurodrive Gmbh & Co Kg Verfahren zum Trainieren eines neuronalen Netzes zur Detektion eines Objekts und Verfahren zur Detektion eines Objekts mittels eines neuronalen Netzes
US11887275B1 (en) * 2022-10-14 2024-01-30 Excelsior S. P. LLC Elevated lookout apparatus and a method for its use
WO2024098374A1 (en) * 2022-11-11 2024-05-16 Nvidia Corporation Refining machine learning models to mitigate adversarial attacks in autonomous systems and applications
GB2624926A (en) * 2022-12-01 2024-06-05 Continental Autonomous Mobility Germany GmbH A computer-implemented method for reducing false positives in a computer vision task and application thereof to motor vehicle exterior monitoring
CN116660916B (zh) * 2023-05-26 2024-02-02 广东省农业科学院设施农业研究所 一种用于果园移动机器人的定位方法、建图方法及电子设备
CN116502069B (zh) * 2023-06-25 2023-09-12 四川大学 一种基于深度学习的触觉时序信号识别方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3433131B1 (en) * 2016-03-23 2023-07-12 Netradyne, Inc. Advanced path prediction
US10885698B2 (en) 2018-08-10 2021-01-05 Nvidia Corporation Method for programmable timeouts of tree traversal mechanisms in hardware
US11393097B2 (en) * 2019-01-08 2022-07-19 Qualcomm Incorporated Using light detection and ranging (LIDAR) to train camera and imaging radar deep learning networks
US11548533B2 (en) * 2019-03-23 2023-01-10 Uatc, Llc Perception and motion prediction for autonomous devices

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117872333A (zh) * 2024-03-11 2024-04-12 西北工业大学青岛研究院 一种收发分置声纳的布放深度优化方法
CN117872333B (zh) * 2024-03-11 2024-05-14 西北工业大学青岛研究院 一种收发分置声纳的布放深度优化方法

Also Published As

Publication number Publication date
WO2021262603A1 (en) 2021-12-30
DE112021000135T5 (de) 2022-06-30
US20230282005A1 (en) 2023-09-07
US20210406560A1 (en) 2021-12-30
JP2023531330A (ja) 2023-07-24
US11688181B2 (en) 2023-06-27

Similar Documents

Publication Publication Date Title
US11688181B2 (en) Sensor fusion for autonomous machine applications using machine learning
US11928822B2 (en) Intersection region detection and classification for autonomous machine applications
US11906660B2 (en) Object detection and classification using LiDAR range images for autonomous machine applications
CN113811886B (zh) 自主机器应用中的路口检测和分类
US11308338B2 (en) Distance to obstacle detection in autonomous machine applications
US11704890B2 (en) Distance to obstacle detection in autonomous machine applications
US20240135173A1 (en) Distance to obstacle detection in autonomous machine applications
US20210201145A1 (en) Three-dimensional intersection structure prediction for autonomous driving applications
US11651215B2 (en) Landmark detection using curve fitting for autonomous driving applications
CN110618678A (zh) 自主机器应用中的行为引导路径规划
CN113906271A (zh) 用于自主机器应用的使用地图信息增强的地面实况数据的神经网络训练
CN114155272A (zh) 自主机器应用中的自适应目标跟踪算法
CN115315709A (zh) 自主***中用于行为预测的基于模型的增强学习及应用
CN115136148A (zh) 投影使用鱼眼镜头捕获的图像用于自主机器应用中的特征检测
CN116051779A (zh) 用于自主***和应用的使用深度神经网络利用点云致密化的3d表面重建
CN114973050A (zh) 自动驾驶应用中深度神经网络感知的地面实况数据生成
CN116051780A (zh) 用于自主***和应用的使用人工智能利用点云致密化的3d表面重建
CN116048060A (zh) 用于自主***和应用的使用神经网络基于真实世界数据的3d表面结构估计
US20230213945A1 (en) Obstacle to path assignment for autonomous systems and applications
CN115909237A (zh) 在自主机器应用程序中使用深度学习的能见度距离估计
CN117581117A (zh) 自主机器***和应用中使用LiDAR数据的动态对象检测
US12026955B2 (en) Assigning obstacles to lanes using neural networks for autonomous machine applications
US20230099494A1 (en) Assigning obstacles to lanes using neural networks for autonomous machine applications
CN118113036A (zh) 使用超声传感器用于自主***及应用的传感器融合
CN117516565A (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