CN113767389A - 从用于自主机器应用的经变换的真实世界传感器数据模拟逼真的测试数据 - Google Patents

从用于自主机器应用的经变换的真实世界传感器数据模拟逼真的测试数据 Download PDF

Info

Publication number
CN113767389A
CN113767389A CN202080032512.XA CN202080032512A CN113767389A CN 113767389 A CN113767389 A CN 113767389A CN 202080032512 A CN202080032512 A CN 202080032512A CN 113767389 A CN113767389 A CN 113767389A
Authority
CN
China
Prior art keywords
vehicle
state information
sensor data
instance
instances
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.)
Granted
Application number
CN202080032512.XA
Other languages
English (en)
Other versions
CN113767389B (zh
Inventor
J·洪
U·穆勒
B·菲尔纳
杨宗义
J·道
D·尼斯特
R·G·L·瓦伦蒂
R·阿维夫
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 CN113767389A publication Critical patent/CN113767389A/zh
Application granted granted Critical
Publication of CN113767389B publication Critical patent/CN113767389B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/10Geometric CAD
    • G06F30/15Vehicle, aircraft or watercraft design
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01MTESTING STATIC OR DYNAMIC BALANCE OF MACHINES OR STRUCTURES; TESTING OF STRUCTURES OR APPARATUS, NOT OTHERWISE PROVIDED FOR
    • G01M17/00Testing of vehicles
    • G01M17/007Wheeled or endless-tracked vehicles
    • 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
    • B60W30/00Purposes of road vehicle drive control systems not related to the control of a particular sub-unit, e.g. of systems using conjoint control of vehicle sub-units
    • B60W30/08Active safety systems predicting or avoiding probable or impending collision or attempting to minimise its consequences
    • 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
    • B60W30/00Purposes of road vehicle drive control systems not related to the control of a particular sub-unit, e.g. of systems using conjoint control of vehicle sub-units
    • B60W30/10Path keeping
    • B60W30/12Lane keeping
    • 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
    • B60W30/00Purposes of road vehicle drive control systems not related to the control of a particular sub-unit, e.g. of systems using conjoint control of vehicle sub-units
    • B60W30/14Adaptive cruise control
    • B60W30/143Speed control
    • 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
    • B60W50/00Details of control systems for road vehicle drive control not related to the control of a particular sub-unit, e.g. process diagnostic or vehicle driver interfaces
    • B60W50/04Monitoring the functioning of the control system
    • 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
    • B60W50/00Details of control systems for road vehicle drive control not related to the control of a particular sub-unit, e.g. process diagnostic or vehicle driver interfaces
    • B60W50/04Monitoring the functioning of the control system
    • B60W50/045Monitoring control system parameters
    • 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/0011Planning or execution of driving tasks involving control alternatives for a single driving scenario, e.g. planning several paths to avoid obstacles
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01MTESTING STATIC OR DYNAMIC BALANCE OF MACHINES OR STRUCTURES; TESTING OF STRUCTURES OR APPARATUS, NOT OTHERWISE PROVIDED FOR
    • G01M17/00Testing of vehicles
    • G01M17/007Wheeled or endless-tracked vehicles
    • G01M17/06Steering behaviour; Rolling behaviour
    • 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
    • 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
    • G01S7/00Details of systems according to groups G01S13/00, G01S15/00, G01S17/00
    • G01S7/02Details of systems according to groups G01S13/00, G01S15/00, G01S17/00 of systems according to group G01S13/00
    • G01S7/41Details of systems according to groups G01S13/00, G01S15/00, G01S17/00 of systems according to group G01S13/00 using analysis of echo signal for target characterisation; Target signature; Target cross-section
    • G01S7/417Details of systems according to groups G01S13/00, G01S15/00, G01S17/00 of systems according to group G01S13/00 using analysis of echo signal for target characterisation; Target signature; Target cross-section involving the use of neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3664Environments for testing or debugging software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/23Clustering techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation
    • G06F30/27Design optimisation, verification or simulation using machine learning, e.g. artificial intelligence, neural networks, support vector machines [SVM] or training a model
    • 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
    • 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/774Generating sets of training patterns; Bootstrap methods, e.g. bagging or boosting
    • 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
    • G07CHECKING-DEVICES
    • G07CTIME OR ATTENDANCE REGISTERS; REGISTERING OR INDICATING THE WORKING OF MACHINES; GENERATING RANDOM NUMBERS; VOTING OR LOTTERY APPARATUS; ARRANGEMENTS, SYSTEMS OR APPARATUS FOR CHECKING NOT PROVIDED FOR ELSEWHERE
    • G07C5/00Registering or indicating the working of vehicles
    • G07C5/08Registering or indicating performance data other than driving, working, idle, or waiting time, with or without registering driving, working, idle or waiting time
    • 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
    • B60W50/00Details of control systems for road vehicle drive control not related to the control of a particular sub-unit, e.g. process diagnostic or vehicle driver interfaces
    • B60W2050/0001Details of the control system
    • B60W2050/0019Control system elements or transfer functions
    • B60W2050/0028Mathematical models, e.g. for simulation
    • 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
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S17/00Systems using the reflection or reradiation of electromagnetic waves other than radio waves, e.g. lidar systems
    • G01S17/88Lidar systems specially adapted for specific applications
    • G01S17/89Lidar systems specially adapted for specific applications for mapping or imaging
    • G01S17/8943D imaging with simultaneous measurement of time-of-flight at a 2D array of receiver pixels, e.g. time-of-flight cameras or flash lidar
    • 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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3696Methods or tools to render software testable
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/81Threshold

Landscapes

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

Abstract

在各种示例中,可以利用现实世界中记录的传感器数据来生成变换后的传感器数据,以测试车辆的一项或更多项功能,例如AEB、CMW、LDW、ALC或ACC系统的功能。由传感器记录的传感器数据可以被增强、变换或以其他方式更新,以表示与由用于测试车辆功能的模拟测试简档定义的状态信息相对应的传感器数据。一旦生成了测试数据,测试数据就可以由车辆的系统处理以确定系统关于任何数量的测试标准的功效。因此,可以从真实世界记录的传感器数据生成包含传感器数据的附加或替代实例的测试集,以在各种测试场景中测试车辆,包括在真实世界中进行测试可能有危险的场景。

Description

从用于自主机器应用的经变换的真实世界传感器数据模拟逼 真的测试数据
背景技术
自主驾驶系统和高级驾驶员辅助系统(ADAS)可以利用各种传感器来执行各种任务,例如车道保持、车道改变、车道分配、相机校准、转弯、停车、路径规划和定位。例如,为了使自主和ADAS系统独立且高效地运行,可以实时或接近实时地了解车辆周围环境。这种理解可以包括关于环境中的对象、障碍物、车道和/或路口相对于各种分界(例如车道、道路边界、路口等)的位置的信息。车辆在做出决定时可以使用周围环境的信息,例如何时和/或在何处制动、在何处停车以及停车多长时间、何时以及是否改变车道、驾驶多快等。
例如,ADAS系统可以采用自动紧急制动(AEB)系统(和/或碰撞缓解警告(CMW)系统)通过在各种情况下自动激活制动器和/或提供制动器应该被激活的指示来帮助车辆安全地在环境中导航,以避免潜在的碰撞。例如,AEB系统在触发时可以配置为执行诸如预充电制动、减速和/或使车辆停止等任务。在自主或半自主车辆的环境中,关于对象和/或车道的位置和属性的信息可证明对AEB系统在做出与其相关的避障和/或控制决策(例如在哪里停车、何时刹车、从哪里开始刹车等)时很有价值。由于AEB系统的安全关键性质,这些系统必须经过严格测试以验证部署中的安全操作。例如,可以执行测试以确定当车辆以各种速度中的任何一种朝向对象行驶时AEB系统是否在正确的时间或位置准确地触发制动器。然而,在真实世界环境中测试车辆的AEB系统可证明是危险的,而模拟真实世界环境进行测试可能既耗时又昂贵,同时仍无法产生准确可靠的结果。
例如,一些常规的AEB和/或CMW系统可以通过使用在车辆在测试轨道上行驶时记录的传感器数据的重放来测试。测试轨道可以包括目标(诸如气球、泡沫和/或纸板切口),用于表示对象(诸如车辆、行人、道路标志等)。当车辆驶向目标时可以记录传感器数据,并且该传感器数据可以用于测试AEB系统的准确性、可靠性和安全性。然而,为了准确、充分地测试AEB系统的可操作性,必须在不同的操作条件下收集大量传感器数据。使用现场测试收集如此庞大而多样的传感器数据集可能非常耗时且成本高昂,最终可能无法准确反映AEB系统的真实世界性能,例如,因为测试对象可能看起来与实际对象不同以及由传感器与实际对象不同地注册(例如,泡沫、纸板或对象切口可能无法像相应的真实世界对象那样为图像数据、LIDAR数据和/或SONAR数据提供相同的反射和/或外观特性)。
在一些其他常规的AEB和/或CMW系统中,可以使用在虚拟环境中使用完全合成生成的传感器数据创建的模拟来执行测试。此类常规系统允许合成地生成大量传感器数据;然而,合成生成的传感器数据本质上可能不如在真实世界环境中收集的传感器数据可靠。因此,AEB系统在真实世界中的性能可能无法准确反映在对合成地生成的传感器数据执行的测试中。因此,这些常规系统无法提供对AEB和/或CMW系统的性能的准确评估,和/或可能会基于合成测试数据而错误地证明是可靠的,但在真实环境中部署或测试时,其运行不安全。
发明内容
本公开的实施例涉及针对自主机器应用从经变换的真实世界传感器数据模拟逼真的测试数据。公开了系统和方法,其利用从车辆上的传感器捕获的真实世界传感器数据来生成对应于所需车辆状态的经变换或更新的测试数据,以便测试车辆的功能,例如自动紧急制动(AEB)系统、碰撞缓解警告(CMW)系统、自动车道偏离警告(ALDW或LDW)系统、自动变道(ALC)系统和/或自适应巡航控制(ACC)系统的功能。
与诸如上述那些的常规系统相比,本公开的系统和方法可以利用来自在真实世界中运行的车辆的在真实世界对象上记录的传感器数据来生成用于测试自主机器(例如自主或半自主车辆)的各种功能的测试数据。例如,可以通过增强、变换和/或更新记录的传感器数据的实例来生成测试数据,这些传感器数据对应于在某些模拟点处与车辆的期望状态信息非常相似的实际状态信息。模拟点和相应的期望状态信息可以与基于车辆的物理模型、用于测试自主车辆的功能的期望初始速度和/或其他标准生成或确定的模拟简档(profile)相关联。在一些示例中,可以使用一个或更多个变换(例如视口变换)来变换被选择以对应于简档的模拟点的记录的传感器数据的实例,以生成对应的经更新实例。在实施例中,例如在所记录的传感器数据的实例具有与模拟点的期望状态信息在阈值相似度内的实际状态信息的情况下,所记录的实例可以在无需变换、增强等的情况下被使用。一旦从记录的传感器数据生成了测试数据集,该测试集就可以用于测试车辆的一个或更多个功能,并且可以直接或间接地(例如,通过解码)使用测试结果来确定自主机器应用的准确性。
变换真实世界传感器数据以生成用于测试车辆功能的测试数据的结果是,可以节省宝贵的时间和计算资源,否则这些资源在常规系统中将用于记录和处理额外的真实世界数据。因此,与常规系统相比,基于模拟简档变换真实世界传感器数据以生成测试数据的过程可能成本相对较低、计算强度较低且可扩展性更强,因为该系统可增加测试数据量(其更准确、更可靠,更接近地相似于真实世界传感器数据),无需使用模拟或虚拟数据,也不需要在真实世界的分阶段测试情况下记录大量传感器数据。此外,测试数据可以在车辆从靠近对象的位置向后行驶时被捕获,从而允许使用测试数据来模拟与对象的近距离相遇,同时最大化数据收集的安全性(例如,常规系统需要向对象行驶并试图在对象前面停下来,这可能是危险的)。
附图说明
下面参考所附附图详细描述用于基于模拟简档变换真实世界传感器数据以生成用于自主机器应用的测试数据的本系统和方法,其中:
图1是示出根据本公开的一些实施例的用于生成用于测试自主机器的一个或更多个功能的测试数据的示例过程的示例数据流程图;
图2描绘了根据本公开的一些实施例的基于比较车辆的实际和期望状态信息来确定传感器数据的最接近实例的示例图示;
图3A描绘了根据本公开的一些实施例的由车辆的传感器生成的记录图像的示例图示;
图3B描绘了根据本公开的一些实施例的通过变换图3A的记录图像生成的经更新图像的示例图示;
图4-5包括示出根据本公开的一些实施例的用于测试车辆的功能的示例过程的流程图;
图6A是根据本公开的一些实施例的示例自主车辆的图示;
图6B是根据本公开的一些实施例的图6A的示例自主车辆的相机位置和视野的示例;
图6C是根据本公开的一些实施例的图6A的示例自主车辆的示例系统架构的框图;
图6D是根据本公开的一些实施例的基于云的服务器和图6A的示例自主车辆之间的通信的系统图;以及
图7是适合用于实现本公开的一些实施例的示例计算设备的框图。
具体实施方式
公开了与基于模拟简档变换真实世界传感器数据以生成用于自主机器应用的测试数据相关的系统和方法。虽然本公开可以关于示例自主车辆600(在本文中可替代地称为“车辆600”或“自我车辆600”,其示例关于图6A-6D进行描述)来描述,这并非旨在进行限制。例如,本文描述的系统和方法可以由但不限于非自主车辆、半自主车辆(例如,在一个或更多个自适应驾驶员辅助系统(ADAS)中)、机器人、仓库车辆、越野车辆、飞行船只、船只、穿梭车、应急车辆、摩托车、电动或机动自行车、飞机、工程车辆、水下航行器、无人机和/或其他车辆类型使用。此外,尽管本文主要描述了关于AEB系统的测试,但这并非旨在进行限制,并且可以测试车辆的任何系统,例如但不限于自动紧急制动(AEB)、碰撞缓解警告(CMW)、自适应巡航控制(ACC)、盲点监控(BSM)、交叉交通警告(CTW)等。此外,虽然本公开可以通过对车辆应用进行测试来描述,但这并不旨在是限制,并且本文描述的系统和方法可用于增强现实、虚拟现实、机器人、安全和监视、自主或半自主机器应用和/或任何其他技术空间,其中从记录的传感器数据生成附加传感器数据对于测试相应车辆或参与者类型的各种功能和/或过程可能有用。
当前的系统和方法提供了变换、增强或以其他方式更新记录的传感器数据以模拟不同情况(例如不同的车辆速度、不同的车辆取向、不同的周围行动者速度等)的技术。此外,因为传感器数据可以被更新,因此原始传感器数据可以在真实世界环境和/或使用真实对象的测试轨道上生成。例如,车辆可以缓慢而安全的速度驶向和/或远离真实世界对象,并且可以增强或变换所生成的传感器数据以模拟不太安全的驾驶场景,例如,车辆正在以高速朝向对象行驶。AEB、CMW、ACC和/或与车辆相关联的其他系统的性能然后可以使用经变换或更新的传感器数据进行测试。
为了生成经变换的传感器数据,在数据收集期间生成的传感器数据可以标记有关联的状态信息,例如位置、速度和/或姿态或取向信息(在本文中统称为“状态信息”)。在测试期间,可以生成模拟简档或轨迹以确定用于测试车辆系统或其功能的条件。模拟简档可以包括任意数量的点,并且每个点可以与期望状态信息相关联。在一些示例中,可以基于期望的速度和距离(例如,自我车辆的启动速度和到领头对象或车辆的距离)来生成模拟简档,用于测试车辆的AEB系统。可以执行特定点的实际状态信息与来自传感器数据的状态信息之间的比较,并且针对该点,可以选择具有与所需状态信息最接近地相似的关联状态信息(并且对应于空间中的先前位置,在实施例中)的传感器数据的实例。与模拟简档的每个点最接近的所记录的传感器数据的(先前)实例随后可用于生成经变换的传感器数据以测试AEB系统的性能。在一些实施例中,为了从记录的传感器数据生成经变换的传感器数据,可以基于捕获传感器数据的传感器的内在和/或外在参数来执行每个像素的视口变换。在一些实施例中,除了更新传感器数据之外或替代地,与模拟简档上给定点的期望状态信息最接近地相似的状态信息相关联的所记录的传感器数据的实例可以用作该点的传感器数据实例。
因此,可以利用来自在真实世界环境中记录的传感器数据的实况感知来生成经变换的传感器数据,以在不同的状态条件下测试车辆。这可以允许增加车辆系统的测试数据量,同时生成比常规方法更准确、更可靠且更接近真实世界传感器数据的测试数据,例如,使用假对象生成测试数据或在来自模拟测试环境的合成数据上生成测试数据。结果,减少了生成测试数据或执行测试所需的时间量,以及生成和模拟虚拟测试环境和/或真实世界测试环境的费用。
经变换的测试数据生成系统
记录的传感器数据(例如,图像数据、LIDAR数据、RADAR数据等)可以使用位于或以其他方式布置在自主或半自主车辆上的传感器(例如,相机、RADAR传感器、LIDAR传感器等)来接收和/或生成。记录的传感器数据可以包括在车辆朝向、远离、邻近或以其他方式相对于一个或更多个对象移动时记录为各种实例的传感器数据。其他传感器(例如,GNSS、惯性测量单元(IMU)、速度传感器、转向传感器等)可用于在传感器数据的各个实例中的每一个处接收和/或生成车辆的状态信息。传感器数据的每个实例因此可以表示传感器的感测场以及车辆和/或对象的关联状态信息。在一些示例中,状态信息可以是车辆的实际状态信息,例如位置、速度、加速度、取向、姿态等。
为了测试AEB系统,可以使用各种测试条件来确定AEB系统的性能如何。这些不同的测试条件可以由为测试AEB系统而生成的模拟简档或轨迹表示。在一些实施例中,模拟简档可以包括任意数量的点,并且每个点可以具有关联的(或期望的)状态信息。期望状态信息可以包括针对特定测试用例场景的车辆的想要或期望的速度、位置、加速度、取向和/或姿态。在一些示例中,期望状态信息可以基于车辆的期望初始速度和/或到环境的另一对象的期望距离来确定。
在一些实施例中,可以生成模拟简档以对应于传感器的特定频率,因为不同的传感器可具有不同的频率,例如,相机可具有30Hz的频率,IMU传感器可具有100-200Hz的频率,RADAR传感器可具有15-30Hz的频率等)。因此,沿着简档的每个点都可与特定的传感器相关联(例如,相机,然后是RADAR,然后是IMU,然后是IMU,然后是IMU,然后是相机,然后是RADAR,然后是IMU,等等)。因此,在记录的传感器数据表示从具有不同频率的多个不同传感器类型中的任一个生成的实际状态信息的情况下,模拟简档可以对应于在每个点具有某采样频率的一个或更多个传感器。此外,在一些实施例中,可以用更多或更少的点来生成模拟简档以模拟特定传感器的更低或更高采样频率的效果,和/或模拟传感器的丢弃(例如,模拟简档的某部分上的更少点,以模拟一个或更多个传感器故障)。因此,模拟简档可以捕获传感器的丢弃、传感器数据中的噪声、传感器数据生成的定时抖动和/或可以允许进一步使测试场景多样化的其他方面。
一旦生成简档,并且期望状态信息为系统所知,则可以选择在每个点具有最接近地相似于期望状态信息的实际状态信息的传感器数据的实例,以与相应点相关联。传感器数据的这个实例可以被称为传感器数据的最接近实例,并且可以被用作(有或没有更新)该点的传感器数据。在传感器数据将被变换或增强的情况下,每个点的最接近实例可以被变换以与期望状态信息对齐。在一些实施例中,可以使用缩放操作来变换最接近实例。在其他示例中,视口变换可以被应用于最接近实例的每个像素以更新传感器数据,使得传感器数据(现在被称为经变换或经更新的传感器数据)与期望状态信息更紧密地对齐。在执行视口变换的实施例中,可以使用平面假设。
以此方式,可以以高效且准确的方式自动生成更接近地相似于真实世界数据的测试数据,以在各种场景中测试车辆的功能。因此,通过利用和修改有限数量的记录的传感器数据,可以生成更大的准确且可靠的测试数据池,同时节省在虚假或模拟对象上和/或在虚拟环境中生成测试数据的费用和时间。
参考图1,图1是示出根据本公开的一些实施例的用于生成用于测试自主机器的各种功能的测试数据的示例过程100的示例数据流程图。应当理解,本文描述的这种和其他布置仅作为示例提出,并且可以在不脱离本公开的范围的情况下调整部件和/或过程的顺序。此外,可以实现除了本文描述的那些之外的附加的或替代的组件和/或过程。在一些实施例中,过程100内使用的特征、功能和/或组件可以类似于自主车辆600(图6A-6D)和/或示例计算设备700(图7)的特征、功能和/或组件。此外,在一些实施例中,在不脱离本公开的范围的情况下,可以在过程100内使用除了本文描述的那些之外的附加和/或替代特征、功能和/或组件。
过程100可以包括从一个或更多个传感器生成和/或接收记录的数据102。作为非限制性示例,记录的传感器数据102可以从车辆(例如,图6A-6C的和本文所述的车辆600)的一个或更多个传感器接收。记录的传感器数据102可由车辆使用,并且在过程100内使用,以使用通过基于模拟简档变换、增强或以其他方式更新真实世界传感器数据而生成的测试数据来测试车辆的一个或更多个系统的功能。例如,记录的传感器数据102可以包括但不限于在车辆朝向、远离、邻近或以其他方式相对于一个或更多个对象移动时在各种实例下记录的传感器数据。作为另一个示例,记录的传感器数据102可以包括从虚拟车辆或其他虚拟对象的任意数量的传感器生成的虚拟传感器数据。在这样的示例中,虚拟传感器可以对应于模拟环境中的虚拟车辆或其他虚拟对象(例如,用于测试、训练和/或验证神经网络性能),并且虚拟传感器数据可以表示通过模拟或虚拟环境中的虚拟传感器捕获的传感器数据。
记录的传感器数据102可以包括记录的实例102A(例如,传感器数据的记录的实例,例如图像、深度图、点云等)和由在真实世界中导航的车辆的一个或更多个传感器记录的相应记录的状态信息102B。记录的实例102A可以包括但不限于来自车辆600的任何传感器的图像数据,包括例如并参考图6A-6C,立体相机668、广角相机670(例如鱼眼相机)、红外相机672、环绕相机674(例如360度相机)和/或远程和/或中程相机678。在一些实施例中,记录的实例102A可以由其他传感器类型生成,例如但不限于RADAR传感器660、超声波传感器662、LIDAR传感器664等。
在一些实施例中,记录的实例102A可以对应于表示图像的图像数据、表示视频的图像数据(例如,视频的快照)和/或表示传感器的感测场的表示的传感器数据(例如,LIDAR传感器的深度图或点云、超声波传感器的值图等)。对于对应于图像数据的记录的实例102A,可以使用任何类型的图像数据格式,例如但不限于,压缩图像(诸如联合图像专家组(JPEG)或亮度/色度(YUV)格式,作为源自压缩视频格式的帧的压缩图像(例如H.264/高级视频编码(AVC)或H.265/高效视频编码(HEVC)),原始图像(例如源自红色透明蓝色(RCCB)、红色透明(RCCC))或其他类型的成像传感器)和/或其他格式。此外,在一些示例中,记录的实例102A可以在没有任何预处理的情况下(例如,以原始或捕获的格式)在过程100内使用,而在其他示例中,记录的实例102A可以经历预处理(例如,噪声平衡、去马赛克、缩放、裁剪、增强、白平衡、色调曲线调整等,例如使用传感器数据预处理器(未示出))。如本文所使用的,记录的实例102A可以参考未处理的图像数据、预处理的图像数据或其组合。记录的实例102A可以包括原始图像(例如,如由一个或更多个图像传感器捕获的)、下采样图像、上采样图像、裁剪的图像或感兴趣区域(ROI)图像、以其他方式增强的图像和/或其组合。
记录的状态信息102B可以包括但不限于来自车辆600的任何传感器的状态信息数据,包括例如并参考图6A-6C,转向传感器640、速度传感器644、制动传感器系统646、油门/加速器652、GNSS传感器658、IMU传感器666和/或能够在各种实例下生成、获取和/或记录车辆的状态信息的任何其他传感器类型。例如,记录的状态信息102B可以包括但不限于表示与记录的传感器数据102的记录的实例102A的捕获相对应的时间实例处的车辆状态的数据。因此,当车辆600正在朝向、远离、邻近或以其他方式相对于对象移动时,可以使用各种传感器记录状态信息,并且状态信息可以与(例如,记录的实例102A可以被标记,例如,作为元数据)相应的记录的实例相关联。在一些示例中,记录的状态信息102B可以包括车辆600(和/或环境中其他检测到的对象)的实际状态信息,例如位置、速度、加速度、姿态(例如,取向)和/或其他状态信息。以此方式,记录的传感器数据102的记录的实例102A中的每一个可表示传感器的感测场,并且可具有相关联的记录的状态信息102B,该记录的状态信息102B可在过程100内使用以生成记录的传感器数据102的经变换或经更新的实例110。
过程100可以包括接收一个或更多个输入(例如汽车物理模型116、期望速度118、到一个或更多个对象的距离、要测试的功能、要测试的系统、和/或其他输入)并生成一个或更多个输出的模拟简档生成器104。例如,使用一个或更多个输入,模拟简档生成器104可以生成包括模拟点104A和与其对应的期望状态信息104B的模拟简档。每个模拟点104A处的期望状态信息104B可以包括车辆600的期望速度、位置、加速度(例如,角度、标量等)、取向、姿态和/或其他状态信息(例如,如使用汽车物理模型116确定的)中的一个或更多个,用于模拟简档的基础测试条件或场景。
模拟简档可以用于关于在模拟简档中模拟的一些测试条件以及关于记录的实例102A和/或经更新的实例110来测试车辆功能(或系统)112。例如,为了确定车辆功能112如何执行,可以使用各种测试条件。可以为用于测试车辆功能(或系统)112(例如,AEB、ACC或CMW系统的功能)的每个测试条件生成模拟简档(例如,车辆600的轨迹)。模拟点104A在连接时可以表示车辆600通过环境(例如,记录的实例102A中表示的环境)的期望轨迹。然而,记录的实例102A可能不直接对应于每个模拟点104A的期望状态信息104B,因此可以利用变换器108来将最接近实例106(例如,具有最接近地相似于期望状态信息104B的关联的记录的状态信息102B的记录的实例102A)变换或以其他方式更新为经更新的实例110,其更接近地相似于捕获最接近实例106的传感器的感测场(例如,视野),如果传感器已经捕获了记录的传感器数据102的实例,则车辆600的状态对应于期望状态信息104B。
如本文所述,在一些示例中,期望状态信息104B和/或模拟点104A可以基于汽车物理模型116(例如,从车辆制造商接收的)、车辆600的期望速度118、到环境中一个或更多个对象的距离、道路形状或其他道路信息(例如,表面材料或摩擦系数、倾斜度、曲率等)、天气信息等来确定。汽车物理模型116可包括关于车辆的一个或更多个传感器的信息,例如传感器的位置、取向、功能、技术规范等。汽车物理模型116还可以包括关于一种或更多种车辆功能的信息,例如车辆支持的最大加速或减速速率、AEB系统的触发功能、CMW系统的警告触发、环境条件对车辆的各种功能的影响、轮胎尺寸、轮胎磨损和撕裂(例如,摩擦系数)等。在一些示例中,汽车物理模型116还可以包括车辆信息,例如质量、乘客的惯性数、总重量要求等。汽车物理模型116可用于生成测试条件的模拟简档,例如以确定模拟简档中的点(例如,当车辆600与对象有一定距离时),其中车辆必须触发AEB系统才能及时完全停止。在这样的示例中,如果当车辆600应该确定激活AEB时记录的实例102A不反映期望状态信息104B,则记录的实例102A对于测试AEB系统的准确性可能不是那么有用。结果,记录的实例102A(例如最接近实例106)可以被选择和变换以生成经更新的实例110,其对应于车辆600应该激活AEB系统的空间或时间的期望点。如果在执行测试时车辆600没有在适当的时间激活AEB,则可以诊断并补救问题。因此,模拟点104A和它们各自的期望状态信息104B可以从汽车物理模型116导出。
在其他示例中,期望速度118可用于生成测试条件的模拟简档。期望速度118可以是车辆的期望初始速度并且可以用于确定需要模拟实例或数据以测试车辆功能112的模拟点104A。模拟点104A可以是模拟的车辆位置,要为其生成用于测试的经更新的实例110。车辆的期望初始速度可用于在定义车辆轨迹的模拟点104A中的每个点处确定用于测试条件(例如,所需的初始车速)的车辆的期望状态信息104B(例如,期望位置、取向、速度、加速度)。
模拟简档(例如,与其对应的期望状态信息104B)可以被用来确定记录的实例102A以选择用于模拟点104A中的每一个的变换。在一些示例中,可以基于记录的状态信息102B和期望的状态信息104B之间的比较来确定最接近实例106。因此,最接近实例106可以表示与期望状态信息104B具有最小偏差的记录的实例102A。该计算可以包括计算由记录的状态信息102B和期望状态信息104B表示的各种状态标准之间的差异(例如,速度的差异、方向或姿态的差异、位置的差异、加速度的差异等)。
例如,可以计算每个状态标准的百分比差,并且可以选择具有最小组合百分比差的记录的实例102A作为最接近实例106。在一些示例中,可以对各种状态标准进行加权,使得具有更小的位置差异可能比速度差异更重要,或者具有更小的方向差异可能比具有更小的位置差异更重要,等等。在这样的示例中,各种状态标准的差异可以被不同地加权,并且记录的状态信息102B和期望状态信息104B之间的计算的差异可以作为权重的因子。在又一示例中,需要对记录的传感器数据102进行最大变换的各种状态标准可以被加权为比需要较少变换的状态标准更重要。在这样的示例中,姿态的变化可以比速度或位置的变化更难以计算经更新的实例110,因此最接近实例106可以通过更重地加权姿态的差异来确定。在一些示例中,针对生成记录的传感器数据的不同传感器,加权可能不同。
在一些示例中,最接近实例106可以对应于来自期望状态信息104B的位置之前的位置,使得足够的传感器数据(例如,表示足够感测场的传感器数据)可用于准确地执行变换。然而,在其他示例中,可以在期望状态信息104B的位置之前或之后的位置处选择最接近实例106。在任何示例中,最接近实例106可以基于一些标准来选择并且可以用于生成经更新的实例110,以用于与对应于期望状态信息104B的模拟点104A相关联。一旦确定,最接近实例106可以与它们各自的模拟点104A相关联,并且可以用作(有或没有增强、变换等)该模拟点的传感器数据的测试或经更新的实例。
作为确定最接近实例106的示例,并参考图2的可视化200,当车辆从实际状态212A移动到实际状态212D(具有中间实际状态212B-212C)时,记录的传感器数据210可以表示车辆的记录轨迹或实际简档。在车辆在对应于期望状态222A-222E的模拟点处从期望状态220A移动到期望状态222E(具有中间期望状态222B-222D)时,期望的传感器数据220可以表示车辆的期望轨迹或模拟简档。实际和期望状态信息可以分别包括在每个记录实例和期望实例处的车辆位置、方向、速度、加速度、姿态等。作为非限制性示例,记录的传感器数据210可以对应于车辆的传感器,其以传感器的帧速率并且在车辆以高于对应于期望传感器数据220的期望模拟速度的速度向对象移动时捕获传感器数据。在这样的示例中,记录的传感器数据210可以包括比模拟较慢速度所需的期望传感器数据更少的记录实例或图像。
对于每个期望状态222A-222E,可以基于实际状态212A-212D来确定或选择与记录的实例最接近(最相似)的实例。例如,基于与对应于状态222A的模拟点处的期望状态信息最接近地相似的实际状态212A的记录状态信息,可以将期望状态222A的最接近实例确定为实际状态212A处的记录实例。实际状态212A可能在距离、取向、速度和/或其组合方面最接近于期望状态222A,并且期望状态222A可以在实际状态212A之前。类似地,基于每个期望状态的期望状态信息与每个记录状态的实际记录状态信息的比较,期望状态222B、222C、222D和222E的最接近实例可以分别确定为实际状态212A、212B、212C和212C。在一些示例中,期望状态信息可与实际状态信息精确对应或可在某个预定义的阈值相似度内,这样变换可能不是必需的,例如,最接近实例可以用作经更新的实例,而无需变换、增强、或以其他方式更新。例如,在期望位置的阈值距离内具有对应记录位置的最接近实例可用作经更新的实例以应用于车辆功能112。在一些实施例中,一个或更多个记录实例可不用作任何期望点的最接近实例,例如记录的实例包括比模拟简档所需的更多的实例的情况下。
在其他示例中,虽然未示出,但是可以以较慢的车辆速度记录该记录的传感器数据210,使得车辆传感器记录更多的记录的实例或图像。在一些实施例中,为了有更多记录的传感器数据可用,车辆在传感器数据捕获期间可以非常缓慢地行驶,以便拥有一组更稳健的记录传感器数据,从中选择最接近实例。
当最接近实例106被选择或确定时,过程100可以包括使用变换器108变换最接近实例106以便生成与在每个模拟点104A处的期望状态信息104B更紧密地对齐的经更新的实例110。变换器108可以被配置为基于期望状态信息104B和记录的状态信息102B之间的差异来增加或变换每个模拟点104A的最接近实例106,例如,以模拟传感器数据(例如,经更新的实例110),使传感器数据相似于就好像从车辆的期望状态中捕获的一样。
在一些实施例中,变换器108可以基于捕获最接近实例106的传感器的内在和/或外在参数将变换功能应用于最接近实例106。在非限制性示例中,变换功能可以包括视口变换,该视口变换可以变换最接近实例106的一些或所有像素以更准确地反映期望状态信息104B。在这样的示例中,例如在使用图像传感器的情况下,可以使用平坦表面假设来估计像素距记录传感器的距离。在其他示例中,例如在使用LIDAR传感器、RADAR传感器和/或其他传感器类型的情况下,可以不使用平坦地面假设。
在一些实施例中,不是应用变换功能,而是变换器108可以使用放大操作(例如,拉近、拉远)来变换最接近实例106、裁剪操作、旋转操作和/或其他操作。例如,如果最接近实例106位于期望位置后面的位置,则变换器108可以稍微拉近最接近实例106以补偿记录的车辆的向前运动。类似地,如果最接近实例106位于期望位置前方的位置,则变换器108可以稍微拉远最接近实例106以补偿记录的车辆的向后运动。在其他示例中,变换器108可以减慢或加快记录的传感器数据102的回放速度以确定经更新的实例110,而无需任何变换、缩放、裁剪、旋转或其他。
作为说明性示例,并且参考图3A和图3B,可以使用变换器108变换记录的图像300以生成经更新的图像320。例如,记录的图像300可以在车辆302朝着电线杆304和货车306移动时由车辆传感器记录(例如,在道路上发生故障时,如果驾驶员没有激活制动器或者在系统尚未开始减速并且避障功能开始启动的自主应用中,则需要AEB系统在车辆302接近时激活)。记录传感器可以是位于车辆302上的前置摄像头。可以通过对记录的图像300的一些或所有像素应用变换来对记录的图像300应用视口变换。可以看出,经更新的图像320表示车辆比记录的图像300中更靠近货车306和电线杆304。然而,执行视口变换,而不是简单的缩放操作,货车306和电线杆304的透视已经改变为更准确地反映传感器在所需状态下的感测场。在某些实例中,视口变换或其他变换类型可以调整对象的外观,但是,因为传感器数据的大部分实例更准确地反映了处于期望状态的感测场,所以得到的经更新的实例110仍然提供更准确的测试数据。
再次参考图1,经更新的实例110可以根据模拟简档被应用于车辆功能112,以生成指示车辆功能112针对期望测试场景的性能的测试结果114。车辆功能112可以包括待测试车辆的任何功能和/或任何系统,例如但不限于AEB系统、CMW系统、ACC系统等。经更新的实例110可以应用于车辆功能112以确定车辆功能112是否以预期的、可接受的和/或安全的方式执行。在一些示例中,在测试车辆功能112之后,可以生成测试结果114,其指示车辆功能(或系统)112在包括经更新实例110的测试集上的性能。例如,车辆功能112是AEB系统的测试结果114可以包括AEB系统是否被正确触发、AEB系统何时被触发、AEB系统是否在正确的时间和/或与对象的距离被触发、制动器何时/何地/是否预充电、车辆何时开始减速或停止等的指示。在一些示例中,测试结果114可以指示车辆功能112是否被正确地触发或激活。在一些其他示例中,测试结果114可以进一步模拟车辆功能112控制车辆导航的效果。在这样的示例中,汽车物理模型116可以用于定义测试场景的模拟简档,并且准确地生成测试结果114(例如,在物理模型116指示车辆的停止力的情况下,基于处理经更新的实例110,可以利用该信息来确定车辆是否会从车辆功能112被激活的点起及时停止)。此外,可以使用其他标准,例如本文所述的标准,包括道路状况、车辆状况、天气等。
现在参考图4和图5,本文描述的方法400和500的每个框包括可以使用硬件、固件和/或软件的任何组合来执行的计算过程。例如,各种功能可以由执行存储在存储器中的指令的处理器来执行。方法400和500还可以体现为存储在计算机存储介质上的计算机可用指令。这些方法可以由独立应用程序、服务或托管服务(独立地或与另一托管服务组合)或另一产品的插件提供,仅举几例。此外,方法400和500通过示例的方式关于图1的过程和车辆600被描述。然而,这些方法400和500可以附加地或替代地由任何一个系统或在任何一个过程内或由系统和过程的任何组合执行,包括但不限于本文所述的那些。
图4是根据本公开的一些实施例的示出用于测试车辆的功能的方法400的流程图。在框B402,方法400包括:接收表示车辆的传感器的感测场的多个实例的第一传感器数据和表示在感测场的实例中的每个实例处对应于车辆的状态信息的第二传感器数据。例如,可以接收、访问和/或生成表示车辆600的传感器的感测场的多个实例的记录的实例102A,以及表示在记录的实例102A中的每个实例处对应于车辆600的状态信息的记录的状态信息102B。
在框B404,方法400包括:生成用于测试车辆功能的模拟简档,模拟简档包括在沿着模拟简档的多个点处的车辆的期望状态信息。例如,可以生成用于测试车辆600的车辆功能112的模拟简档。模拟简档可以包括沿着模拟简档的模拟点104A处的车辆的期望状态信息104B。
在框B406,方法400包括:针对多个点中的一个点,至少部分地基于状态信息与该点的相应期望状态信息的比较,确定多个实例中的最接近实例。例如,对于模拟点104A中的每个点,可以至少部分地基于记录的状态信息102A和模拟点104A的相应期望状态信息104B的比较来确定记录的实例102A的最接近实例106。
在框B408,方法400包括:计算最接近实例的变换以生成对应于相应期望状态信息的经更新实例。例如,变换器108可以计算最接近实例106的变换以生成对应于相应期望状态信息104B的经更新的实例110。
在框B410,方法400包括:至少部分地基于经更新的实例来执行功能的测试。例如,车辆功能112的测试可以至少部分地基于经更新的实例110来执行以生成测试结果114。车辆功能112的测试可以包括加载以下项中的任何或所有项到模拟系统和/或执行以下任何或所有项:经更新的实例110、传感器数据、记录的实例102A和状态信息102B、模拟简档、模拟点104A和期望状态信息104B,用于在模拟环境中执行功能测试。
现在参考图5,图5是根据本公开的一些实施例的示出用于测试车辆功能的方法500的流程图。在框B502,方法500包括:接收表示车辆的传感器的感测场的多个实例的第一传感器数据和表示在感测场的实例中的每个实例处对应于车辆的状态信息的第二传感器数据。例如,可以接收、访问和/或生成表示车辆600的传感器的感测场的多个实例的记录的实例102A,以及表示在记录实例102A的每个实例处对应于车辆600的状态信息的记录的状态信息102B。
在框B504,方法500包括:生成用于测试车辆功能的模拟简档,模拟简档包括在沿着模拟简档的多个点处的车辆的期望状态信息。例如,可以生成用于测试车辆600的车辆功能112的模拟简档。模拟简档可以包括沿着模拟简档的模拟点104A处的车辆的期望状态信息104B。
在框B506,方法500包括:针对各点中的每个点,确定多个实例中具有与该点的相应期望状态信息最相似的相应状态信息的实例。例如,针对模拟点104A中的每个点,可以确定记录的实例102A的最接近实例106,该最接近实例具有与该点的相应期望状态信息104B最相似的相应记录状态信息102B。
在框B508,方法500包括:至少部分地基于该确定从多个实例生成实例集。例如,可以从最接近实例106和/或由变换器108至少部分地基于最接近实例106生成的实例中选择经更新的实例110,例如,没有变换或其他操作。
在框B510,方法500包括:至少部分地基于该实例集来执行功能的测试。例如,可以至少部分地基于经更新的实例110来执行车辆功能112的测试以生成测试结果114。
示例自主车辆
图6A为根据本公开一些实施例的示例自主车辆600的图示。自主车辆600(可替代地,在本文称为“车辆600”)可以包括但不限于乘用车,例如汽车、卡车、公共汽车、急救车、穿梭车、电动或机动自行车、摩托车、消防车、警车、救护车、船、工程车辆、水下船只、无人机和/或其他类型的车辆(例如,无人驾驶和/或可容纳一名或多名乘客)。自主车辆通常按照美国运输部的一个部门——国家公路交通安全管理局(NHTSA)以及汽车工程师协会(SAE)“Taxonomy and Definitions for Terms Related to Driving Automation Systems forOn-Road Motor Vehicles”(2018年6月15日发布的标准No.J3016-201806,2016年9月30日发布的标准No.J3016-201609,以及该标准的先前和未来的版本)定义的自动化级别进行描述。车辆600可能够实现符合自主驾驶级别的3级-5级中的一个或更多个的功能。例如,取决于实施例,车辆600可能够实现条件自动化(3级)、高自动化(4级)和/或全自动化(5级)。
车辆600可以包括诸如底盘、车身、车轮(例如2个、4个、6个、8个、18个等)、轮胎、车轴之类的部件以及车辆的其他部件。车辆600可以包括推进系统650,例如内燃机、混合动力发电厂、全电动发动机和/或另一种推进系统类型。推进系统650可以连接到可以包括变速器的车辆600的传动系以便实现车辆600的推进。可以响应于接收到来自油门/加速器652的信号而控制推进系统650。
可以包括方向盘的转向(steering)系统654可以用来在推进系统650操作时(例如在车辆运动时)使车辆600转向(例如沿着希望的路径或路线)。转向系统654可以接收来自转向致动器656的信号。对于全自动(5级)功能而言,方向盘可以是可选的。
制动传感器系统646可以用来响应于接收到来自制动致动器648和/或制动传感器的信号而操作车辆制动器。
可以包括一个或更多个片上系统(SoC)604(图6C)和/或一个或更多个GPU的一个或更多个控制器636可以向车辆600的一个或更多个部件和/或系统提供(例如表示命令的)信号。例如,一个或更多个控制器可以发送经由一个或更多个制动致动器648操作车辆制动器、经由一个或更多个转向致动器656操作转向系统654、经由一个或更多个油门/加速器652操作推进系统650的信号。一个或更多个控制器636可以包括一个或更多个板载(例如集成)计算设备(例如超级计算机),所述计算设备处理传感器信号并且输出操作命令(例如表示命令的信号),以实现自主驾驶和/或辅助人类驾驶员驾驶车辆600。一个或更多个控制器636可以包括用于自主驾驶功能的第一控制器636、用于功能性安全功能的第二控制器636、用于人工智能功能(例如计算机视觉)的第三控制器636、用于信息娱乐功能的第四控制器636、用于紧急情况下的冗余的第五控制器636和/或其他控制器。在一些示例中,单个控制器636可以处理上述功能中的两个或更多,两个或更多控制器636可以处理单个功能,和/或其任意组合。
一个或更多个控制器636可以响应于接收自一个或更多个传感器的传感器数据(例如传感器输入),提供用于控制车辆600的一个或更多个部件和/或系统的信号。传感器数据可以接收自例如且不限于全球导航卫星系统传感器658(例如全球定位系统传感器)、RADAR传感器660、超声传感器662、LIDAR传感器664、惯性测量单元(IMU)传感器666(例如加速度计、陀螺仪、磁罗盘、磁力计等)、麦克风696、立体相机668、广角相机670(例如鱼眼相机)、红外相机672、环绕相机674(例如360度相机)、远程和/或中程相机698、速度传感器644(例如用于测量车辆600的速率)、振动传感器642、转向传感器640、制动传感器(例如作为制动传感器系统646的部分)和/或其他传感器类型。
控制器636中的一个或更多个可以接收来自车辆600的仪表组632的输入(例如由输入数据表示),并且经由人机接口(HMI)显示器634、听觉信号器、扬声器和/或经由车辆600的其他部件提供输出(例如输出数据、显示数据等表示的)。这些输出可以包括诸如车辆速度、速率、时间、地图数据(例如图6C的HD地图622)、位置数据(例如,车辆600例如在地图上的位置)、方向、其他车辆的位置(例如占用网格)之类的信息,如控制器636所感知的关于对象和对象状态的信息等等。例如,HMI显示器634可以显示关于一个或更多个对象(例如街道指示牌、警示牌、交通灯变化等)的存在性的信息和/或关于车辆已经做出、正在做出或者将会做出的驾驶机动的信息(例如现在变道、两英里后离开34B,等等)。
车辆600进一步包括网络接口624,其可以使用一个或更多个无线天线626和/或调制解调器通过一个或更多个网络通信。例如,网络接口624可能够通过LTE、WCDMA、UMTS、GSM、CDMA2000等通信。一个或更多个无线天线626也可以使用诸如蓝牙、蓝牙LE、Z波、ZigBee等等之类的一个或更多个局域网和/或诸如LoRaWAN、SigFox等等之类的一个或更多个低功率广域网(LPWAN)实现环境中的对象(例如车辆、移动设备等等)之间的通信。
图6B为根据本公开一些实施例的用于图6A的示例自主车辆600的相机位置和视场的示例。相机和各自的视场是一个示例实施例,并不意图是限制性的。例如,可以包括附加的和/或可替换的相机,和/或这些相机可以位于车辆600上的不同位置。
用于相机的相机类型可以包括但不限于可以适于与车辆600的部件和/或系统一起使用的数字相机。所述相机可以在汽车安全完整性级别(ASIL)B下和/或在另一个ASIL下操作。相机类型可以具有任何图像捕获率,例如60帧每秒(fps)、620fps、240fps等等,这取决于实施例。相机可能够使用滚动快门、全局快门、另一种类型的快门或者其组合。在一些示例中,滤色器阵列可以包括红白白白(RCCC)滤色器阵列、红白白蓝(RCCB)滤色器阵列、红蓝绿白(RBGC)滤色器阵列、Foveon X3滤色器阵列、拜耳传感器(RGGB)滤色器阵列、单色传感器滤色器阵列和/或另一种类型的滤色器阵列。在一些实施例中,诸如具有RCCC、RCCB和/或RBGC滤色器阵列的相机之类的清晰像素相机可以用在提高光敏感度的努力中。
在一些示例中,所述相机中的一个或更多个可以用来执行高级驾驶员辅助系统(ADAS)功能(例如作为冗余或故障安全设计的部分)。例如,可以安装多功能单目相机以提供包括车道偏离警告、交通指示牌辅助和智能前照灯控制在内的功能。所述相机中的一个或更多个(例如全部相机)可以同时记录和提供图像数据(例如视频)。
所述相机中的一个或更多个可以安装在诸如定制设计的(3-D打印的)组件之类的安装组件中,以便切断可能干扰相机的图像数据捕获能力的杂散光和来自汽车内的反射(例如挡风玻璃镜中反射的来自仪表板的反射)。关于翼镜安装组件,翼镜组件可以是定制3-D打印的,使得相机安装板匹配翼镜的形状。在一些示例中,一个或更多个相机可以集成到翼镜中。对于侧视相机而言,一个或更多个相机也可以集成到驾驶室每个拐角的四根柱子内。
具有包括车辆600前面的环境部分的视场的相机(例如前置相机)可以用于环视,以帮助识别前向路径和障碍,以及在一个或更多个控制器636和/或控制SoC的帮助下辅助提供对于生成占用网格和/或确定优选车辆路径至关重要的信息。前置相机可以用来执行许多与LIDAR相同的ADAS功能,包括紧急制动、行人检测和碰撞避免。前置相机也可以用于ADAS功能和系统,包括车道偏离警告(“LDW”)、自主巡航控制(“ACC”),和/或诸如交通指示牌识别之类的其他功能。
各种各样的相机可以用于前置配置中,包括例如包括CMOS(互补金属氧化物半导体)彩色成像仪在内的单目相机平台。另一个示例可以是广角相机670,其可以用来感知从周边进入视野的对象(例如行人、十字路口交通或者自行车)。尽管图6B中图示出仅仅一个广角相机,但是在车辆600上可以存在任意数量的广角相机670。此外,远程相机698(例如长视立体相机对)可以用于基于深度的对象检测,尤其是用于尚未针对其训练神经网络的对象。远程相机698也可以用于对象检测和分类以及基本的对象跟踪。
一个或更多个立体相机668也可以包括在前置配置中。立体相机668可以包括集成控制单元,该单元包括可扩展处理单元,其可以提供在单个芯片上具有集成的CAN或以太网接口的多核微处理器和可编程逻辑(FPGA)。这样的单元可以用来生成车辆环境的3-D地图,包括针对图像中的所有点的距离估计。可替代的立体相机668可以包括紧凑型立体视觉传感器,其可以包括两个相机镜头(左右各一个)以及可以测量从车辆到目标对象的距离并且使用生成的信息(例如元数据)激活自主紧急制动和车道偏离警告功能的图像处理芯片。除了本文所描述的那些之外或者可替代地,可以使用其他类型的立体相机668。
具有包括车辆600的侧面的环境部分的视场的相机(例如侧视相机)可以用于环视,提供用来创建和更新占用网格以及生成侧撞击碰撞警告的信息。例如,环绕相机674(例如如图6B中所示的四个环绕相机674)可以置于车辆600上。环绕相机674可以包括广角相机670、鱼眼相机、360度相机和/或类似物。四个示例,四个鱼眼相机可以置于车辆的前面、后面和侧面。在一种可替代的布置中,车辆可以使用三个环绕相机674(例如左边、右边和后面),并且可以利用一个或更多个其他相机(例如前向相机)作为第四环视相机。
具有包括车辆600后面的环境部分的视场的相机(例如后视相机)可以用于辅助停车、环视、后面碰撞警告以及创建和更新占用网格。可以使用各种各样的相机,包括但不限于也适合作为如本文所描述的前置相机(例如远程和/或中程相机698、立体相机668、红外相机672等等)的相机。
图6C为根据本公开一些实施例的用于图6A的示例自主车辆600的示例系统架构的框图。应当理解,这种布置和本文描述的其他布置仅仅作为示例而被阐述。除了所示的那些之外或者代替它们的是,可以使用其他的布置和元素(例如机器、接口、功能、顺序、功能分组等等),并且一些元素可以完全省略。进一步,许多本文描述的元素是功能实体,其可以实现为分立的或分布式部件或者结合其他部件实现,以及以任何适当的组合和位置实现。本文描述为由实体执行的各个功能可以通过硬件、固件和/或软件实现。例如,各个功能可以通过处理器执行存储在内存中的指令而实现。
图6C中车辆600的部件、特征和系统中的每一个被图示为经由总线602连接。总线602可以包括控制器区域网络(CAN)数据接口(可替代地,本文称为“CAN总线”)。CAN可以是车辆600内部的网络,用来辅助控制车辆600的各种特征和功能,例如制动器、加速、制动、转向、挡风玻璃雨刷等等的驱动。CAN总线可以被配置为具有数十或者甚至数百个节点,每个节点具有其自己的唯一标识符(例如CAN ID)。可以读取CAN总线以找到方向盘角度、地速、每分钟发动机转速(RPM)、按钮位置和/或其他车辆状态指示符。CAN总线可以是ASIL B兼容的。
尽管这里将总线602描述为CAN总线,但是这并不意图是限制性的。例如,除了CAN总线之外或者可替代地,可以使用FlexRay和/或以太网。此外,尽管用单条线来表示总线602,但是这并不意图是限制性的。例如,可以存在任意数量的总线602,其可以包括一条或更多条CAN总线、一条或更多条FlexRay总线、一条或更多条以太网总线和/或一条或更多条使用不同协议的其他类型的总线。在一些示例中,两条或更多总线602可以用来执行不同的功能,和/或可以用于冗余。例如,第一总线602可以用于碰撞避免功能,并且第二总线602可以用于驱动控制。在任何示例中,每条总线602可以与车辆600的任何部件通信,并且两条或更多总线602可以与相同的部件通信。在一些示例中,车辆内的每个SoC 604、每个控制器636和/或每个计算机可以有权访问相同的输入数据(例如来自车辆600的传感器的输入),并且可以连接到诸如CAN总线之类的公共总线。
车辆600可以包括一个或更多个控制器636,例如本文关于图6A所描述的那些控制器。控制器636可以用于各种各样的功能。控制器636可以耦合到车辆600的任何其他不同的部件和系统,并且可以用于车辆600的控制、车辆600的人工智能、用于车辆600的信息娱乐和/或类似物。
车辆600可以包括一个或更多个片上系统(SoC)604。SoC 604可以包括CPU 606、GPU 608、处理器610、高速缓存612、加速器614、数据存储616和/或未图示出的其他部件和特征。在各种各样的平台和系统中,SoC 604可以用来控制车辆600。例如,一个或更多个SoC604可以在系统(例如车辆600的系统)中与HD地图622结合,所述HD地图可以经由网络接口624从一个或更多个服务器(例如图6D的一个或更多个服务器678)获得地图刷新和/或更新。
CPU 606可以包括CPU簇或CPU复合体(替代地,本文称为“CCPLEX”)。CPU 606可以包括多个核和/或L2高速缓存。例如,在一些实施例中,CPU 606在一致性多处理器配置中可以包括八个核。在一些实施例中,CPU 606可包括四个双核簇,其中每个簇具有专用的L2高速缓存(例如2MB L2高速缓存)。CPU 606(例如CCPLEX)可以被配置为支持同时簇操作,使得CPU 606的簇的任意组合能够在任何给定时间是活动的。
CPU 606可以实现包括以下特征中的一个或更多个的功率管理能力:各硬件块在空闲时可以自动进行时钟门控以节省动态功率;由于WFI/WFE指令的执行,每个核时钟可以在该核不主动地执行指令时进行门控;每个核可以独立地进行功率门控;当所有核都进行时钟门控或者功率门控时,可以独立地对每个核簇进行时钟门控;和/或当所有核都进行功率门控时,可以独立地对每个核簇进行功率门控。CPU 606可以进一步实现用于管理功率状态的增强算法,其中指定允许的功率状态和期望的唤醒时间,并且硬件/微代码为所述核、簇和CCPLEX确定要进入的最佳的功率状态。处理核可以在软件中支持简化的功率状态进入序列,该工作被卸载到微代码。
GPU 608可以包括集成的GPU(可替代地,本文称为“iGPU”)。GPU608可以是可编程的,并且对于并行工作负载而言是高效的。在一些示例中,GPU 608可以使用增强张量指令集。GPU 608可以包括一个或更多个流式微处理器,其中每个流式微处理器可以包括L1高速缓存(例如具有至少96KB存储能力的L1高速缓存),并且这些流式微处理器中的两个或更多可以共享L2高速缓存(例如具有512KB存储能力的L2高速缓存)。在一些实施例中,GPU 608可以包括至少八个流式微处理器。GPU 608可以使用计算应用编程接口(API)。此外,GPU608可以使用一个或更多个并行计算平台和/或编程模型(例如NVIDIA的CUDA)。
在汽车和嵌入式使用的情况下,可以对GPU 608进行功率优化以实现最佳性能。例如,可以在鳍式场效应晶体管(FinFET)上制造GPU 608。然而,这并不意图是限制性的,并且GPU 608可以使用其他半导体制造工艺来制造。每个流式微处理器可以合并划分成多个块的若干混合精度处理核。例如且非限制性地,可以将64个PF32核和32个PF64核划分成四个处理块。在这样的示例中,每个处理块可以分配16个FP32核、8个FP64核、16个INT32核、用于深层学习矩阵算术的两个混合精度NVIDIA张量核、L0指令高速缓存、线程束(warp)调度器、分派单元和/或64KB寄存器文件。此外,流式微处理器可以包括独立的并行整数和浮点数据路径,以利用计算和寻址计算的混合提供工作负载的高效执行。流式微处理器可以包括独立线程调度能力,以允许实现并行线程之间的更细粒度的同步和协作。流式微处理器可以包括组合的L1数据高速缓存和共享内存单元,以便在简化编程的同时提高性能。
GPU 608可以包括在一些示例中提供大约900GB/s的峰值内存带宽的高带宽内存(HBM)和/或16GB HBM2内存子系统。在一些示例中,除了HBM内存之外或者可替代地,可以使用同步图形随机存取存储器(SGRAM),例如第五代图形双倍数据速率同步随机存取存储器(GDDR5)。
GPU 608可以包括统一内存技术,其包括访问计数器以允许内存页面更精确地迁移到最频繁地访问它们的处理器,从而提高处理器之间共享的内存范围的效率。在一些示例中,地址转换服务(ATS)支持可以用来允许GPU 608直接访问CPU 606页表。在这样的示例中,当GPU 608内存管理单元(MMU)经历遗漏时,可以将地址转换请求传输至CPU 606。作为响应,CPU 606可以在其页表中寻找用于地址的虚拟-物理映射,并且将转换传输回GPU608。这样,统一内存技术可以允许单个统一虚拟地址空间用于CPU 606和GPU 608二者的内存,从而简化了GPU 608编程和将应用程序移(port)到GPU 608。
此外,GPU 608可以包括访问计数器,其可以跟踪GPU 608访问其他处理器的内存的频率。访问计数器可以帮助确保内存页面移至最频繁地访问这些页面的处理器的物理内存。
SoC 604可以包括任意数量的高速缓存612,包括本文描述的那些高速缓存。例如,高速缓存612可以包括CPU 606和GPU 608二者可用的L3高速缓存(例如,其连接到CPU 606和GPU 608二者)。高速缓存612可以包括回写高速缓存,其可以例如通过使用高速缓存一致性协议(例如MEI、MESI、MSI等)跟踪行的状态。取决于实施例,L3高速缓存可以包括4MB或者更多,但是也可以使用更小的高速缓存大小。
SoC 604可包括一个或更多个算术逻辑单元(ALU),其可用于执行关于车辆600的各种任务或操作中的任一个的处理,例如处理DNN。此外,SoC 604可以包括浮点单元(FPU)或其他数学协处理器或数字协处理器类型,用于在系统内执行数学运算。例如,SoC 104可以包括集成为CPU 606和/或GPU 608内的执行单元的一个或更多个FPU。
SoC 604可以包括一个或更多个加速器614(例如硬件加速器、软件加速器或者其组合)。例如,SoC 604可以包括硬件加速簇,其可以包括优化的硬件加速器和/或大型片上内存。该大型片上内存(例如4MB SRAM)可以使得硬件加速簇能够加速神经网络和其他计算。硬件加速簇可以用来补充GPU 608,并且卸载GPU 608的一些任务(例如释放GPU 608的更多周期以用于执行其他任务)。作为一个示例,加速器614可以用于足够稳定以易于控制加速的有针对性的工作负载(例如感知、卷积神经网络(CNN)等等)。当在本文中使用时,术语“CNN”可以包括所有类型的CNN,包括基于区域的或者区域卷积神经网络(RCNN)和快速RCNN(例如用于对象检测)。
加速器614(例如硬件加速簇)可以包括深度学习加速器(DLA)。DLA可以包括可以被配置成为深度学习应用和推理提供额外的每秒10万亿次操作的一个或更多个张量处理单元(TPU)。TPU可以是被配置为执行图像处理功能(例如用于CNN、RCNN等)且针对执行图像处理功能而优化的加速器。DLA可以进一步针对特定的一组神经网络类型和浮点运算以及推理进行优化。DLA的设计可以比通用GPU提供每毫米更高的性能,并且远远超过CPU的性能。TPU可以执行若干功能,包括单实例卷积函数,支持例如用于特征和权重二者的INT8、INT16和FP16数据类型,以及后处理器功能。
DLA可以在处理的或者未处理的数据上针对各种各样的功能中的任何功能快速且高效地执行神经网络,尤其是CNN,例如且不限于:用于使用来自相机传感器的数据进行对象识别和检测的CNN;用于使用来自相机传感器的数据进行距离估计的CNN;用于使用来自麦克风的数据进行应急车辆检测和识别与检测的CNN;用于使用来自相机传感器的数据进行面部识别和车主识别的CNN;和/或用于安全和/或安全相关事件的CNN。
DLA可以执行GPU 608的任何功能,并且通过使用推理加速器,例如,设计者可以使DLA或GPU 608针对任何功能。例如,设计者可以将CNN的处理和浮点运算聚焦在DLA上,并且将其他功能留给GPU 608和/或其他加速器614。
加速器614(例如硬件加速簇)可以包括可编程视觉加速器(PVA),其在本文中可以可替代地称为计算机视觉加速器。PVA可以被设计和配置为加速用于高级驾驶员辅助系统(ADAS)、自主驾驶和/或增强现实(AR)和/或虚拟现实(VR)应用的计算机视觉算法。PVA可以提供性能与灵活性之间的平衡。例如,每个PVA可以包括例如且不限于任意数量的精简指令集计算机(RISC)核、直接内存访问(DMA)和/或任意数量的向量处理器。
RISC核可以与图像传感器(例如本文描述的任何相机的图像传感器)、图像信号处理器和/或类似物交互。这些RISC核中的每一个可以包括任意数量的内存。取决于实施例,RISC核可以使用若干协议中的任何协议。在一些示例中,RISC核可以执行实时操作系统(RTOS)。RISC核可以使用一个或更多个集成电路设备、专用集成电路(ASIC)和/或存储设备实现。例如,RISC核可以包括指令高速缓存和/或紧密耦合的RAM。
DMA可以使得PVA的部件能够独立于CPU 606访问系统内存。DMA可以支持用来向PVA提供优化的任意数量的特征,包括但不限于支持多维寻址和/或循环寻址。在一些示例中,DMA可以支持高达六个或更多维度的寻址,其可以包括块宽度、块高度、块深度、水平块步进、竖直块步进和/或深度步进。
向量处理器可以是可编程处理器,其可以被设计为高效且灵活地执行用于计算机视觉算法的编程并且提供信号处理能力。在一些示例中,PVA可以包括PVA核和两个向量处理子系统分区。PVA核可以包括处理器子系统、一个或更多个DMA引擎(例如两个DMA引擎)和/或其他外围设备。向量处理子系统可以作为PVA的主处理引擎而操作,并且可以包括向量处理单元(VPU)、指令高速缓存和/或向量内存(例如VMEM)。VPU核可以包括数字信号处理器,诸如例如单指令多数据(SIMD)、超长指令字(VLIW)数字信号处理器。SIMD和VLIW的组合可以增强吞吐量和速率。
向量处理器中的每一个可以包括指令高速缓存并且可以耦合到专用内存。结果,在一些示例中,向量处理器中的每一个可以被配置为独立于其他向量处理器执行。在其他示例中,包括在特定PVA中的向量处理器可以被配置为采用数据并行化。例如,在一些实施例中,包括在单个PVA中的多个向量处理器可以执行相同的计算机视觉算法,但是在图像的不同区域上执行。在其他示例中,包括在特定PVA中的向量处理器可以在相同的图像上同时执行不同的计算机视觉算法,或者甚至在序列图像或者图像的部分上执行不同的算法。除其他的以外,任意数量的PVA可以包括在硬件加速簇中,并且任意数量的向量处理器可以包括在这些PVA中的每一个中。此外,PVA可以包括附加的纠错码(ECC)内存,以增强总体系统安全性。
加速器614(例如硬件加速簇)可以包括片上计算机视觉网络和SRAM,以提供用于加速器614的高带宽、低延迟SRAM。在一些示例中,片上内存可以包括由例如且不限于八个现场可配置的内存块组成的至少4MB SRAM,其可以由PVA和DLA二者访问。每对内存块可以包括高级外围总线(APB)接口、配置电路系统、控制器和复用器。可以使用任何类型的内存。PVA和DLA可以经由向PVA和DLA提供高速内存访问的主干(backbone)访问内存。主干可以包括(例如使用APB)将PVA和DLA互连到内存的片上计算机视觉网络。
片上计算机视觉网络可以包括在传输任何控制信号/地址/数据之前确定PVA和DLA二者都提供就绪且有效的信号的接口。这样的接口可以提供用于传输控制信号/地址/数据的单独相位和单独信道,以及用于连续数据传输的突发式通信。这种类型的接口可以符合ISO 26262或者IEC 61508标准,但是也可以使用其他标准和协议。
在一些示例中,SoC 604可以包括例如在2018年8月10日提交的美国专利申请No.16/101,232中描述的实时光线追踪硬件加速器。该实时光线追踪硬件加速器可以用来快速且高效地确定(例如世界模型内的)对象的位置和范围,以便生成实时可视化仿真,以用于RADAR信号解释、用于声音传播合成和/或分析、用于SONAR系统仿真、用于一般波传播仿真、用于为了定位和/或其他功能的目的与LIDAR数据相比较和/或用于其他用途。在一些实施例中,一个或更多个树遍历单元(TTU)可用于执行一个或更多个光线追踪相关操作。
加速器614(例如硬件加速器簇)具有广泛的自主驾驶用途。PVA可以是可编程视觉加速器,其可以用于ADAS和自主车辆中的关键处理阶段。PVA的能力是需要可预测处理、低功率和低延迟的算法域的良好匹配。换言之,PVA在半密集或者密集规则计算上,甚至在需要具有低延迟和低功率的可预测运行时间的小数据集上都表现良好。因此,在用于自主车辆的平台的背景下,PVA被设计为运行经典计算机视觉算法,因为它们在对象检测和整数数学运算方面很有效。
例如,根据该技术的一个实施例,PVA用来执行计算机立体视觉。在一些示例中,可以使用基于半全局匹配的算法,但是这并不意图是限制性的。许多用于3-6级自主驾驶的应用都需要即时运动估计/立体匹配(例如来自运动的结构、行人识别、车道检测等等)。PVA可以在来自两个单目相机的输入上执行计算机立体视觉功能。
在一些示例中,PVA可以用来执行密集的光流。根据过程原始RADAR数据(例如使用4D快速傅立叶变换)以提供经处理的RADAR。在其他示例中,PVA用于飞行时间深度处理,其例如通过处理原始飞行时间数据以提供经处理的飞行时间数据。
DLA可以用来运行任何类型的网络以增强控制和驾驶安全性,包括例如输出用于每个对象检测的置信度度量的神经网络。这样的置信度值可以解释为概率,或者解释为提供每个检测与其他检测相比的相对“权重”。该置信度值使得系统能够做出关于哪些检测应当被认为是真阳性检测而不是假阳性检测的进一步决策。例如,系统可以为置信度设置阈值,并且仅仅将超过阈值的检测看作真阳性检测。在自动紧急制动(AEB)系统中,假阳性检测会使得车辆自动地执行紧急制动,这显然是不希望的。因此,只有最确信的检测才应当被认为是AEB的触发因素。DLA可以运行用于回归置信度值的神经网络。该神经网络可以将至少一些参数子集作为其输入,例如边界框维度,(例如从另一个子系统)获得的地平面估计,与车辆600取向、距离相关的惯性测量单元(IMU)传感器666输出,从神经网络和/或其他传感器(例如LIDAR传感器664或RADAR传感器660)获得的对象的3D位置估计等。
SoC 604可以包括一个或更多个数据存储616(例如内存)。数据存储616可以是SoC604的片上内存,其可以存储要在GPU和/或DLA上执行的神经网络。在一些示例中,为了冗余和安全,数据存储616可以容量足够大以存储神经网络的多个实例。数据存储612可以包括L2或L3高速缓存612。对数据存储616的引用可以包括对与如本文所描述的PVA、DLA和/或其他加速器614关联的内存的引用。
SoC 604可以包括一个或更多个处理器610(例如嵌入式处理器)。处理器610可以包括启动和功率管理处理器,其可以是用于处理启动功率和管理功能以及有关安全实施的专用处理器和子系统。启动和功率管理处理器可以是SoC 604启动序列的一部分,并且可以提供运行时间功率管理服务。启动功率和管理处理器可以提供时钟和电压编程、辅助系统低功率状态转换、SoC 604热和温度传感器管理和/或SoC 604功率状态管理。每个温度传感器可以实现为环形振荡器,其输出频率与温度成比例,并且SoC604可以使用环形振荡器检测CPU 606、GPU 608和/或加速器614的温度。如果确定温度超过阈值,那么启动和功率管理处理器可以进入温度故障例程并且将SoC 604置于较低功率状态和/或将车辆600置于司机安全停车模式(例如使车辆600安全停车)。
处理器610可以进一步包括可以用作音频处理引擎的一组嵌入式处理器。音频处理引擎可以是一种音频子系统,其允许实现对于通过多个接口的多声道音频的完全硬件支持以及一系列广泛而灵活的音频I/O接口。在一些示例中,音频处理引擎是具有带有专用RAM的数字信号处理器的专用处理器核。
处理器610可以进一步包括始终在处理器上的引擎,其可以提供必要的硬件特征以支持低功率传感器管理和唤醒用例。该始终在处理器上的引擎可以包括处理器核、紧密耦合的RAM、支持外围设备(例如定时器和中断控制器)、各种I/O控制器外围设备和路由逻辑。
处理器610可以进一步包括安全簇引擎,其包括处理汽车应用的安全管理的专用处理器子系统。安全簇引擎可以包括两个或更多处理器核、紧密耦合的RAM、支持外围设备(例如定时器、中断控制器等等)和/或路由逻辑。在安全模式下,所述两个或更多核可以操作于锁步模式下,并且用作具有检测它们的操作之间的任何差异的比较逻辑的单核。
处理器610可以进一步包括实时相机引擎,其可以包括用于处理实时相机管理的专用处理器子系统。
处理器610可以进一步包括高动态范围信号处理器,其可以包括图像信号处理器,该图像信号处理器是一种硬件引擎,该硬件引擎是相机处理管线的部分。
处理器610可以包括可以是(例如微处理器上实现的)处理块的视频图像复合器,其实现视频回放应用程序产生用于播放器窗口的最终图像所需的视频后处理功能。视频图像复合器可以对广角相机670、环绕相机674和/或对驾驶室内监控相机传感器执行镜头畸变校正。驾驶室内监控相机传感器优选地由运行在高级SoC的另一个实例上的神经网络监控,被配置为识别驾驶室内事件并且相对应地做出响应。驾驶室内系统可以执行唇读,以激活移动电话服务并拨打电话、口述电子邮件、改变车辆目的地、激活或改变车辆的信息娱乐系统和设置或者提供语音激活的网上冲浪。某些功能仅在车辆操作于自主模式下时对于驾驶员可用,并且在其他情况下被禁用。
视频图像复合器可以包括用于空间和时间降噪的增强时间降噪。例如,在视频中出现运动的情况下,降噪适当地对空间信息加权,降低邻近帧提供的信息的权重。在图像或者图像的部分不包括运动的情况下,视频图像复合器执行的时间降噪可以使用来自先前的图像的信息以降低当前图像中的噪声。
视频图像复合器也可以被配置为对输入立体镜头帧执行立体校正。当操作系统桌面正在使用并且GPU 608无需连续地渲染(render)新的表面时,视频图像复合器可以进一步用于用户接口组成。甚至在GPU 608上电并且激活,进行3D渲染时,视频图像复合器可以用来减轻GPU 608的负担以提高性能和响应能力。
SoC 604可以进一步包括用于从相机接收视频和输入的移动行业处理器接口(MIPI)相机串行接口、高速接口和/或可以用于相机和有关像素输入功能的视频输入块。SoC 604可以进一步包括可以由软件控制并且可以用于接收未提交到特定角色的I/O信号的输入/输出控制器。
SoC 604可以进一步包括大范围的外围设备接口,以使能与外围设备、音频编解码器、功率管理和/或其他设备通信。SoC 604可以用来处理来自(通过千兆多媒体串行链路和以太网连接的)相机、传感器(例如可以通过以太网连接的LIDAR传感器664、RADAR传感器660等等)的数据,来自总线602的数据(例如车辆600的速率、方向盘位置等等),来自(通过以太网或CAN总线连接的)GNSS传感器658的数据。SoC 604可以进一步包括专用高性能大容量存储控制器,其可以包括它们自己的DMA引擎,并且其可以用来从日常数据管理任务中释放CPU 606。
SoC 604可以是具有灵活架构的端到端平台,该架构跨越自动化3-6级,从而提供利用和高效使用计算机视觉和ADAS技术以实现多样性和冗余、连同深度学习工具一起提供用于灵活可靠驾驶软件堆栈的平台的综合功能安全架构。SoC 604可以比常规的系统更快、更可靠,甚至更加能量高效和空间高效。例如,当与CPU 606、GPU 608和数据存储616结合时,加速器614可以提供用于3-5级自主车辆的快速高效平台。
因此该技术提供了不能通过常规系统实现的能力和功能。例如,计算机视觉算法可以在CPU上执行,这些CPU可以使用诸如C编程语言之类的高级编程语言配置为跨各种各样的视觉数据执行各种各样的处理算法。然而,CPU常常不能满足许多计算机视觉应用的性能要求,诸如与例如执行时间和功耗有关的那些要求。特别地,许多CPU不能实时地执行复杂的对象检测算法,这是车载ADAS应用的要求和实用3-5级自主车辆的要求。
与常规系统形成对比的是,通过提供CPU复合体、GPU复合体和硬件加速簇,本文描述的技术允许同时和/或顺序地执行多个神经网络,并且将结果组合在一起以实现3-5级自主驾驶功能。例如,在DLA或dGPU(例如GPU 620)上执行的CNN可以包括文本和单词识别,允许超级计算机读取和理解交通指示牌,包括尚未针对其特别地训练神经网络的指示牌。DLA可以进一步包括能够识别、解释和提供对指示牌的语义理解,并且将该语义理解传递给运行在CPU复合体上的路径规划模块的神经网络。
作为另一个示例,如3、4或5级驾驶所需的,多个神经网络可以同时运行。例如,由“注意:闪烁的灯指示结冰条件”组成的警告指示牌连同电灯可以由若干神经网络独立地或者共同地进行解释。指示牌本身可以由部署的第一神经网络(例如经过训练的神经网络)识别为交通指示牌,文本“闪烁的灯指示结冰条件”可以由部署的第二神经网络解释,该部署的第二神经网络告知车辆的路径规划软件(优选地在CPU复合体上执行)当检测到闪烁的灯时,存在结冰条件。闪烁的灯可以通过在多个帧上操作部署的第三神经网络而识别,该神经网络告知车辆的路径规划软件闪烁的灯的存在(或不存在)。所有三个神经网络可以例如在DLA内和/或在GPU 608上同时运行。
在一些示例中,用于面部识别和车主识别的CNN可以使用来自相机传感器的数据识别车辆600的授权的驾驶员和/或车主的存在。始终在传感器上的处理引擎可以用来在车主接近驾驶员车门时解锁车辆并且打开灯,并且在安全模式下,在车主离开车辆时禁用车辆。按照这种方式,SoC 604提供了防范盗窃和/或劫车的安全性。
在另一个示例中,用于应急车辆检测和识别的CNN可以使用来自麦克风696的数据来检测并且识别应急车辆警报(siren)。与使用通用分类器检测警报并且手动地提取特征的常规系统形成对比的是,SoC 604使用CNN以对环境和城市声音分类以及对视觉数据分类。在优选的实施例中,运行在DLA上的CNN被训练为识别应急车辆的相对关闭速率(例如通过使用多普勒效应)。CNN也可以被训练为识别如GNSS传感器658所识别的特定于车辆在其中操作的局部区域的应急车辆。因此,例如,当在欧洲操作时,CNN将寻求检测欧洲警报,并且当在美国时,CNN将寻求识别仅仅北美的警报。一旦检测到应急车辆,在超声传感器662的辅助下,控制程序可以用来执行应急车辆安全例程,使车辆放慢速度,开到路边,停下车辆,和/或使车辆空转,直到应急车辆通过。
车辆可以包括可以经由高速互连(例如PCIe)耦合到SoC 604的CPU618(例如分立的CPU或dCPU)。CPU 618可以包括例如X86处理器。CPU618可以用来执行各种各样的功能中的任何功能,包括例如仲裁ADAS传感器与SoC 604之间潜在地不一致的结果,和/或监控控制器636和/或信息娱乐SoC 630的状态和健康状况。
车辆600可以包括可以经由高速互连(例如NVIDIA的NVLINK)耦合到SoC 604的GPU620(例如分立的GPU或dGPU)。GPU 620可以例如通过执行冗余的和/或不同的神经网络而提供附加的人工智能功能,并且可以用来基于来自车辆600的传感器的输入(例如传感器数据)来训练和/或更新神经网络。
车辆600可以进一步包括网络接口624,该网络接口可以包括一个或更多个无线天线626(例如用于不同通信协议的一个或更多个无线天线,例如蜂窝天线、蓝牙天线等等)。网络接口624可以用来使能通过因特网与云(例如与服务器678和/或其他网络设备)、与其他车辆和/或与计算设备(例如乘客的客户端设备)的无线连接。为了与其他车辆通信,可以在这两辆车之间建立直接链接,和/或可以建立间接链接(例如跨网络以及通过因特网)。直接链接可以使用车对车通信链路提供。车对车通信链路可以向车辆600提供关于接近车辆600的车辆(例如车辆600前面、侧面和/或后面的车辆)的信息。该功能可以是车辆600的协作自适应巡航控制功能的部分。
网络接口624可以包括提供调制和解调功能并且使得控制器636能够通过无线网络通信的SoC。网络接口624可以包括用于从基带到射频的上转换以及从射频到基带的下转换的射频前端。频率转换可以通过公知的过程执行,和/或可以使用超外差(super-heterodyne)过程执行。在一些示例中,射频前端功能可以由单独的芯片提供。网络接口可以包括用于通过LTE、WCDMA、UMTS、GSM、CDMA2000、蓝牙、蓝牙LE、Wi-Fi、Z波、ZigBee、LoRaWAN和/或其他无线协议通信的无线功能。
车辆600可以进一步包括可包括片外(例如SoC 604外)存储装置的数据存储628。数据存储628可以包括一个或更多个存储元件,包括RAM、SRAM、DRAM、VRAM、闪存、硬盘和/或可以存储至少一个比特的数据的其他部件和/或设备。
车辆600可以进一步包括GNSS传感器658。GNSS传感器658(例如GPS、辅助GPS传感器、差分GPS(DGPS)传感器等)用于辅助映射、感知、占用网格生成和/或路径规划功能。可以使用任意数量的GNSS传感器658,包括例如且不限于使用带有以太网到串行(RS-232)网桥的USB连接器的GPS。
车辆600可以进一步包括RADAR传感器660。RADAR传感器660可以甚至在黑暗和/或恶劣天气条件下也由车辆600用于远程车辆检测。RADAR功能安全级别可以是ASIL B。RADAR传感器660可以使用CAN和/或总线602(例如以传输RADAR传感器660生成的数据)以用于控制以及访问对象跟踪数据,在一些示例中接入以太网以访问原始数据。可以使用各种各样的RADAR传感器类型。例如且非限制性地,RADAR传感器660可以适合前面、后面和侧面RADAR使用。在一些示例中,使用脉冲多普勒RADAR传感器。
RADAR传感器660可以包括不同的配置,例如具有窄视场的远程、具有宽视场的短程、短程侧覆盖等等。在一些示例中,远程RADAR可以用于自适应巡航控制功能。远程RADAR系统可以提供通过两个或更多独立浏览实现的广阔视场(例如250m范围内)。RADAR传感器660可以帮助区分静态对象和运动对象,并且可以由ADAS系统用于紧急制动辅助和前方碰撞警告。远程RADAR传感器可以包括具有多根(例如六根或更多)固定RADAR天线以及高速CAN和FlexRay接口的单站多模RADAR。在具有六根天线的示例中,中央四根天线可以创建聚焦的波束图案,其被设计为在更高速率下以来自邻近车道的最小交通干扰记录车辆600的周围环境。其他两根天线可以扩展视场,使得快速地检测进入或离开车辆600的车道的车辆成为可能。
作为一个示例,中程RADAR系统可以包括高达660m(前面)或80m(后面)的范围以及高达42度(前面)或650度(后面)的视场。短程RADAR系统可以包括但不限于被设计为安装在后保险杠两端的RADAR传感器。当安装在后保险杠两端时,这样的RADAR传感器系统可以创建持续地监控后方和车辆旁边的盲点的两个波束。
短程RADAR系统可以在ADAS系统中用于盲点检测和/或变道辅助。
车辆600可以进一步包括超声传感器662。可以置于车辆600的前面、后面和/或侧面的超声传感器662可以用于停车辅助和/或创建和更新占用网格。可以使用各种各样的超声传感器662,并且不同的超声传感器662可以用于不同的检测范围(例如2.5m、4m)。超声传感器662可以操作于功能安全级别的ASIL B。
车辆600可以包括LIDAR传感器664。LIDAR传感器664可以用于对象和行人检测、紧急制动、碰撞避免和/或其他功能。LIDAR传感器664可以为功能安全级别的ASIL B。在一些示例中,车辆600可以包括可以使用以太网(例如以将数据提供给千兆以太网交换机)的多个LIDAR传感器664(例如两个、四个、六个等等)。
在一些示例中,LIDAR传感器664可能够对360度视场提供对象列表及其距离。商业上可用的LIDAR传感器664可以具有例如近似600m的广告范围,精度为2cm-3cm,支持600Mbps以太网连接。在一些示例中,可以使用一个或更多个非突出的LIDAR传感器664。在这样的示例中,LIDAR传感器664可以实现为可以嵌入到车辆600的前面、后面、侧面和/或拐角的小设备。在这样的示例中,LIDAR传感器664可以甚至对于低反射率对象提供高达620度水平的和35度竖直的视场,具有200m的范围。前面安装的LIDAR传感器664可以被配置用于45度与135度之间的水平视场。
在一些示例中,也可以使用诸如3D闪光LIDAR之类的LIDAR技术。3D闪光LIDAR使用激光的闪光作为发射源,以照亮高达约200m的车辆周围环境。闪光LIDAR单元包括接受器,该接受器将激光脉冲传输时间和反射光记录在每个像素上,其进而与从车辆到对象的范围相对应。闪光LIDAR可以允许利用每个激光闪光生成周围环境的高度精确且无失真的图像。在一些示例中,可以部署四个闪光LIDAR传感器,车辆600的每一侧一个。可用的3D闪光LIDAR系统包括没有风扇以外的运动部件(moving part)的固态3D凝视阵列LIDAR相机(例如非浏览LIDAR设备)。闪光LIDAR设备可以使用每帧5纳秒I类(眼睛安全)激光脉冲,并且可以以3D范围点云和共同寄存的强度数据的形式捕获反射的激光。通过使用闪光LIDAR,并且因为闪光LIDAR是没有运动部件的固态设备,LIDAR传感器664可以不太容易受到运动模糊、振动和/或震动的影响。
该车辆可以进一步包括IMU传感器666。在一些示例中,IMU传感器666可以位于车辆600的后轴的中心。IMU传感器666可以包括例如且不限于加速度计、磁力计、陀螺仪、磁罗盘和/或其他传感器类型。在一些示例中,例如在六轴应用中,IMU传感器666可以包括加速度计和陀螺仪,而在九轴应用中,IMU传感器666可以包括加速度计、陀螺仪和磁力计。
在一些实施例中,IMU传感器666可以实现为微型高性能GPS辅助惯性导航系统(GPS/INS),其结合微机电系统(MEMS)惯性传感器、高灵敏度GPS接收器和高级卡尔曼滤波算法以提供位置、速度和姿态的估计。这样,在一些示例中,IMU传感器666可以使得车辆600能够在无需来自磁传感器的输入的情况下通过直接观察从GPS到IMU传感器666的速度变化并且将其相关来估计方向(heading)。在一些示例中,IMU传感器666和GNSS传感器668可以结合到单个集成单元中。
该车辆可以包括置于车辆600中和/或车辆600周围的麦克风696。除别的以外,麦克风696可以用于应急车辆检测和识别。
该车辆可以进一步包括任意数量的相机类型,包括立体相机668、广角相机670、红外相机672、环绕相机674、远程和/或中程相机698和/或其他相机类型。这些相机可以用来捕获车辆600整个外围周围的图像数据。使用的相机类型取决于实施例和车辆600的要求,并且相机类型的任意组合可以用来提供车辆600周围的必要覆盖。此外,相机的数量可以根据实施例而不同。例如,该车辆可以包括六个相机、七个相机、十个相机、十二个相机和/或另一数量的相机。作为一个示例且非限制性地,这些相机可以支持千兆多媒体串行链路(GMSL)和/或千兆以太网。所述相机中的每一个在本文关于图6A和图6B更详细地进行了描述。
车辆600可以进一步包括振动传感器642。振动传感器642可以测量车辆的诸如车轴之类的部件的振动。例如,振动的变化可以指示道路表面的变化。在另一个示例中,当使用两个或更多振动传感器642时,振动之间的差异可以用来确定道路表面的摩擦或滑移(例如当动力驱动轴与自由旋转轴之间存在振动差异时)。
车辆600可以包括ADAS系统638。在一些示例中,ADAS系统638可以包括SoC。ADAS系统638可以包括自主/自适应/自动巡航控制(ACC)、协作自适应巡航控制(CACC)、前方撞车警告(FCW)、自动紧急制动(AEB)、车道偏离警告(LDW)、车道保持辅助(LKA)、盲点警告(BSW)、后方穿越交通警告(RCTW)、碰撞警告系统(CWS)、车道居中(LC)和/或其他特征和功能。
ACC系统可以使用RADAR传感器660、LIDAR传感器664和/或相机。ACC系统可以包括纵向ACC和/或横向ACC。纵向ACC监控并控制到紧接在车辆600前方的车辆的距离,并且自动地调节车速以维持离前方车辆的安全距离。横向ACC执行距离保持,并且在必要时建议车辆600改变车道。横向ACC与诸如LCA和CWS之类的其他ADAS应用程序有关。
CACC使用来自其他车辆的信息,该信息可以经由网络接口624和/或无线天线626经由无线链路或者通过网络连接(例如通过因特网)间接地从其他车辆接收。直接链接可以由车对车(V2V)通信链路提供,而间接链接可以是基础设施到车辆(I2V)的通信链路。通常,V2V通信概念提供关于紧接在前的车辆(例如紧接在车辆600前方且与其处于相同车道的车辆)的信息,而I2V通信概念提供关于前方更远处的交通的信息。CACC系统可以包括I2V和V2V信息源中的任一个或者二者。给定车辆600前方车辆的信息,CACC可以更加可靠,并且它有可能提高交通流的畅通性且降低道路拥堵。
FCW系统被设计为提醒驾驶员注意危险,使得驾驶员可以采取纠正措施。FCW系统使用耦合到专用处理器、DSP、FPGA和/或ASIC的前置相机和/或RADAR传感器660,该专用处理器、DSP、FPGA和/或ASIC电耦合至诸如显示器、扬声器和/或振动部件之类的驾驶员反馈。FCW系统可以提供例如声音、视觉警告、振动和/或快速制动脉冲形式的警告。
AEB系统检测即将发生的与另一车辆或其他对象的前方碰撞,并且可以在驾驶员在指定的时间或距离参数内没有采取纠正措施的情况下自动地应用制动器。AEB系统可以使用耦合到专用处理器、DSP、FPGA和/或ASIC的前置相机和/或RADAR传感器660。当AEB系统检测到危险时,它典型地首先提醒(alert)驾驶员采取纠正措施以避免碰撞,并且如果驾驶员没有采取纠正措施,那么AEB系统可以自动地应用制动器以努力防止或者至少减轻预测的碰撞的影响。AEB系统可以包括诸如动态制动支持和/或碰撞迫近制动之类的技术。
LDW系统提供了诸如方向盘或座位振动之类的视觉、听觉和/或触觉警告,以在车辆600穿过车道标记时提醒驾驶员。当驾驶员指示有意偏离车道时,通过激活转弯信号,不激活LDW系统。LDW系统可以使用耦合到专用处理器、DSP、FPGA和/或ASIC的前侧朝向相机,该专用处理器、DSP、FPGA和/或ASIC电耦合至诸如显示器、扬声器和/或振动部件之类的驾驶员反馈。
LKA系统是LDW系统的变型。如果车辆600开始离开车道,那么LKA系统提供纠正车辆600的转向输入或制动。
BSW系统检测并向驾驶员警告汽车盲点中的车辆。BSW系统可以提供视觉、听觉和/或触觉警报以指示合并或改变车道是不安全的。系统可以在驾驶员使用转弯信号时提供附加的警告。BSW系统可以使用耦合到专用处理器、DSP、FPGA和/或ASIC的后侧朝向相机和/或RADAR传感器660,该专用处理器、DSP、FPGA和/或ASIC电耦合至诸如显示器、扬声器和/或振动部件之类的驾驶员反馈。
RCTW系统可以在车辆600倒车时在后置相机范围之外检测到对象时提供视觉、听觉和/或触觉通知。一些RCTW系统包括AEB以确保应用车辆制动器以避免撞车。RCTW系统可以使用耦合到专用处理器、DSP、FPGA和/或ASIC的一个或更多个后置RADAR传感器660,该专用处理器、DSP、FPGA和/或ASIC电耦合至诸如显示器、扬声器和/或振动部件之类的驾驶员反馈。
常规的ADAS系统可能易于出现假阳性结果,这可能会让驾驶员烦恼并分散注意力,但是典型地不是灾难性的,因为ADAS系统提醒驾驶员并且允许驾驶员决定安全条件是否真正存在并且相对应地采取行动。然而,在自主车辆600中,在冲突结果的情况下,车辆600本身必须决定是否注意(heed)来自主计算机或者辅助计算机(例如第一控制器636或第二控制器636)的结果。例如,在一些实施例中,ADAS系统638可以是用于向备用计算机合理性模块提供感知信息的备用和/或辅助计算机。备用计算机合理性监视器可以在硬件部件上运行冗余多样的软件,以检测感知和动态驾驶任务中的故障。来自ADAS系统638的输出可以提供给监督MCU。如果来自主计算机和辅助计算机的输出冲突,那么监督MCU必须确定如何协调该冲突以确保安全操作。
在一些示例中,主计算机可以被配置为向监督MCU提供置信度评分,指示主计算机对所选结果的置信度。如果置信度评分超过阈值,那么监督MCU可以遵循主计算机的方向,而不管辅助计算机是否提供冲突或不一致的结果。在置信度评分不满足阈值的情况下并且在主计算机和辅助计算机指示不同的结果(例如冲突)的情况下,监督MCU可以在这些计算机之间进行仲裁以确定适当的结果。
监督MCU可以被配置为运行神经网络,所述神经网络被训练并且被配置为基于来自主计算机和辅助计算机的输出,确定辅助计算机提供假警报的条件。因此,监督MCU中的神经网络可以了解何时可以信任辅助计算机的输出以及何时不能。例如,当辅助计算机为基于RADAR的FCW系统时,监督MCU中的神经网络可以了解FCW系统何时正在识别事实上不是危险的金属对象,例如触发警报的排水栅格或井盖。类似地,当辅助计算机是基于相机的LDW系统时,监督MCU中的神经网络可以学习在骑车者或行人在场并且车道偏离实际上是最安全的策略时无视该LDW。在包括运行在监督MCU上的神经网络的实施例中,监督MCU可以包括适合于利用关联的内存运行神经网络的DLA或GPU中的至少一个。在优选的实施例中,监督MCU可以包括SoC 604的部件和/或作为SoC 604的部件而被包括。
在其他示例中,ADAS系统638可以包括使用传统计算机视觉规则执行ADAS功能的辅助计算机。这样,辅助计算机可以使用经典的计算机视觉规则(如果-那么),并且在监督MCU中存在神经网络可以提高可靠性、安全性和性能。例如,多样化的实现方式和有意的非完全相同(non-identity)使得整个系统更加容错,对于软件(或者软件-硬件接口)功能造成的故障而言尤其如此。例如,如果在主计算机上运行的软件中存在软件漏洞或错误并且运行在辅助计算机上的非完全相同的软件代码提供相同的总体结果,那么监督MCU可以更加确信总体结果是正确的,并且主计算机上的软件或硬件中的漏洞不造成实质性的错误。
在一些示例中,ADAS系统638的输出可以馈送至主计算机的感知块和/或主计算机的动态驾驶任务块。例如,如果ADAS系统638由于对象紧接在前的原因而指示前方碰撞警告,那么感知块可以在识别对象时使用该信息。在其他示例中,辅助计算机可以具有它自己的神经网络,其被训练并且因此如本文所描述的降低假阳性的风险。
车辆600可以进一步包括信息娱乐SoC 630(例如车载信息娱乐系统(IVI))。尽管被图示和描述为SoC,但是信息娱乐系统可以不是SoC,并且可以包括两个或更多分立的部件。信息娱乐SoC 630可以包括可以用来向车辆600提供音频(例如音乐、个人数字助理、导航指令、新闻、广播等等)、视频(例如TV、电影、流媒体等等)、电话(例如免提呼叫)、网络连接(例如LTE、Wi-Fi等等)和/或信息服务(例如导航系统,后停车援助,无线电数据系统,诸如燃油水平、覆盖的总距离、制动燃油水平、油位、车门开/关、空气过滤器信息之类的车辆有关信息,等等)的硬件和软件的组合。例如,信息娱乐SoC 630可以包括收音机、盘播放器、导航系统、视频播放器、USB和蓝牙连接、车载电脑、车载娱乐、Wi-Fi、方向盘音频控件、免提语音控件、平视显示器(HUD)、HMI显示器634、远程信息处理设备、控制面板(例如用于控制各种部件、特征和/或系统,和/或与其交互)和/或其他部件。信息娱乐SoC 630可以进一步用来向车辆的用户提供信息(例如视觉的和/或听觉的),例如来自ADAS系统638的信息,诸如规划的车辆机动、轨迹、周围环境信息(例如交叉路口信息、车辆信息、道路信息等等)之类的自主驾驶信息,和/或其他信息。
信息娱乐SoC 630可以包括GPU功能。信息娱乐SoC 630可以通过总线602(例如CAN总线、以太网等)与车辆600的其他设备、系统和/或部件通信。在一些示例中,信息娱乐SoC630可以耦合至监督MCU,使得在主控制器636(例如车辆600的主和/或备用计算机)出现故障的情况下,信息娱乐系统的GPU可以执行一些自驾驶功能。在这样的示例中,信息娱乐SoC630可以如本文所描述的将车辆600置于司机安全停车模式。
车辆600可以进一步包括仪表组632(例如数字仪表板、电子仪表组、数字仪表面板等等)。仪表组632可以包括控制器和/或超级计算机(例如分立的控制器或超级计算机)。仪表组632可以包括一套仪器,例如车速表、燃油水平、油压、转速表、里程表、转弯指示器、换档位置指示器、安全带警告灯、停车制动警告灯、发动机故障灯、安全气囊(SRS)系统信息、照明控件、安全系统控件、导航信息等等。在一些示例中,信息可以被显示和/或在信息娱乐SoC 630和仪表组632之间共享。换言之,仪表组632可以作为信息娱乐SoC 630的部分而被包括,或者反之亦然。
图6D为根据本公开一些实施例的基于云的服务器与图6A的示例自主车辆600之间的通信的系统示意图。系统676可以包括服务器678、网络690以及包括车辆600在内的车辆。服务器678可以包括多个GPU 684(A)-684(H)(这里统称为GPU 684)、PCIe交换机682(A)-682(H)(这里统称为PCIe交换机682)和/或CPU 680(A)-680(B)(这里统称为CPU 680)。GPU684、CPU 680和PCIe交换机可以与诸如例如且不限于NVIDIA开发的NVLink接口688之类的高速互连和/或PCIe连接686互连。在一些示例中,GPU 684经由NVLink和/或NVSwitch SoC连接,并且GPU 684和PCIe交换机682经由PCIe互连连接。尽管图示出八个GPU 684、两个CPU680和两个PCIe交换机,但是这并不意图是限制性的。取决于实施例,服务器678中的每一个可以包括任意数量的GPU 684、CPU 680和/或PCIe交换机。例如,服务器678中的每一个可以包括八个、十六个、三十二个和/或更多GPU 684。
服务器678可以通过网络690并且从车辆接收图像数据,该图像数据表示示出诸如最近开始的道路工程之类的意外或改变的道路状况的图像。服务器678可以通过网络690并且向车辆传输神经网络692、更新的神经网络692和/或地图信息694,包括关于交通和道路状况的信息。对地图信息694的更新可以包括对于HD地图622的更新,例如关于建筑工地、坑洼、弯道、洪水或其他障碍物的信息。在一些示例中,神经网络692、更新的神经网络692和/或地图信息694可以已从新的训练和/或从环境中的任意数量的车辆接收的数据中表示和/或基于数据中心处执行的训练(例如使用服务器678和/或其他服务器)的经验产生。
服务器678可以用来基于训练数据训练机器学习模型(例如神经网络)。训练数据可以由车辆生成,和/或可以在仿真中生成(例如使用游戏引擎)。在一些示例中,训练数据被标记(例如在神经网络受益于有监督学习的情况下)和/或经历其他预处理,而在其他示例中,训练数据不被标记和/或预处理(例如在神经网络无需有监督学习的情况下)。训练可以根据任何一类或更多类机器学习技术来执行,包括但不限于以下类:监督训练、半监督训练、无监督训练、自学习、强化学习、联合学习、迁移学习、特征学习(包括主成分和聚类分析)、多线性子空间学习、流形学习、表示学习(包括备用字典学习)、基于规则的机器学习、异常检测及其任何变体或组合。一旦机器学习模型被训练,机器学习模型可以由车辆使用(例如通过网络690传输至车辆),和/或机器学习模型可以由服务器678用来远程地监控车辆。
在一些示例中,服务器678可以接收来自车辆的数据,并且将该数据应用到最新的实时神经网络以用于实时智能推理。服务器678可以包括由GPU 684供电的深度学习超级计算机和/或专用AI计算机,例如NVIDIA开发的DGX和DGX站机器。然而,在一些示例中,服务器678可以包括仅使用CPU供电的数据中心的深度学习基础设施。
服务器678的深度学习基础设施可能够快速实时推理,并且可以使用该能力来评估并验证车辆600中的处理器、软件和/或关联硬件的健康状况。例如,深度学习基础设施可以接收来自车辆600的定期更新,例如图像序列和/或车辆600已经定位的位于该图像序列中的对象(例如经由计算机视觉和/或其他机器学习对象分类技术)。深度学习基础设施可以运行它自己的神经网络以识别对象并且将它们与车辆600识别的对象相比较,如果结果不匹配并且该基础设施得出车辆600中的AI发生故障的结论,那么服务器678可以向车辆600传输信号,指示车辆600的故障保护计算机进行控制,通知乘客,并且完成安全停车操作。
为了推理,服务器678可以包括GPU 684和一个或更多个可编程推理加速器(例如NVIDIA的TensorRT)。GPU供电的服务器和推理加速的组合可以使得实时响应成为可能。在其他示例中,例如在性能不那么重要的情况下,CPU、FPGA和其他处理器供电的服务器可以用于推理。
示例计算设备
图7为适合用于实现本公开一些实施例的示例计算设备700的框图。计算设备700可以包括直接或间接耦合下列设备的互连系统702:内存704,一个或更多个中央处理单元(CPU)706,一个或更多个图形处理单元(GPU)708,通信接口710,输入/输出(I/O)端口712,输入/输出组件714,电源716,一个或更多个呈现组件718(例如显示器)和一个或更多个逻辑单元720。
尽管图7的各个框被示为经由具有线路的互连系统702连接,但是这并不意图是限制性的,并且仅仅为了清楚起见。例如,在一些实施例中,诸如显示设备之类的呈现组件718可以被认为是I/O组件714(例如如果显示器为触摸屏)。作为另一个示例,CPU 706和/或GPU708可以包括内存(例如,内存704可以表示除了GPU 708、CPU 706和/或其他组件的内存以外的存储设备)。换言之,图7的计算设备仅仅是说明性的。在诸如“工作站”、“服务器”、“膝上型电脑”、“台式机”、“平板电脑”、“客户端设备”、“移动设备”、“手持式设备”、“游戏控制台”、“电子控制单元(ECU)”、“虚拟现实系统”和/或其他设备或系统类型之类的类别之间不进行区分,因为所有这些都被考虑在图7的计算设备的范围内。
互连系统702可以表示一条或更多条链路或总线,例如地址总线、数据总线、控制总线或者其组合。互连系统702可以包括一种或更多种链路或总线类型,例如行业标准架构(ISA)总线、扩展行业标准架构(EISA)总线、视频电子标准协会(VESA)总线、外围组件互连(PCI)总线、外围组件互连快速(PCIe)总线,和/或另一种类型的总线或链路。在一些实施例中,组件之间存在直接连接。作为示例,CPU 706可以直接连接到存储器704。此外,CPU 706可以直接连接到GPU 708。在组件之间存在直接或点对点连接的情况下,互连系统702可以包括PCIe链路来执行该连接。在这些示例中,计算设备700中不需要包括PCI总线。
内存704可以包括各种各样的计算机可读介质中的任何介质。计算机可读介质可以是可以由计算设备700访问的任何可用介质。计算机可读介质可以包括易失性和非易失性介质以及可移除和不可移除介质。举例而言且非限制性地,计算机可读介质可以包括计算机存储介质和通信介质。
计算机存储介质可以包括易失性和非易失性介质和/或可移除和不可移除介质,其以用于存储诸如计算机可读指令、数据结构、程序模块和/或其他数据类型之类的信息的任何方法或技术实现。例如,内存704可以存储计算机可读指令(例如其表示程序和/或程序元素,例如操作系统)。计算机存储介质可以包括但不限于RAM、ROM、EEPROM、闪存或者其他存储技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储装置、磁带盒、磁带、磁盘存储装置或其他磁存储设备,或者可以用来存储期望的信息且可以由计算设备700访问的任何其他介质。当在本文使用时,计算机存储介质并不包括信号本身。
计算机存储介质可以在诸如载波之类的调制数据信号或其他传输机制中包含计算机可读指令、数据结构、程序模块和/或其他数据类型,并且包括任何信息输送介质。术语“调制数据信号”可以指这样的信号,该信号使它的特性中的一个或更多个以这样的将信息编码到该信号中的方式设置或改变。举例而言且非限制性地,计算机存储介质可以包括诸如有线网络或直接有线连接之类的有线介质,以及诸如声音、RF、红外和其他无线介质之类的无线介质。任何以上所述的组合也应当包含在计算机可读介质的范围内。
CPU 706可以被配置为执行计算机可读指令中的至少一些,以便控制计算设备700的一个或更多个组件执行本文描述的方法和/或过程中的一个或更多个。CPU 706中的每一个可以包括能够同时处理大量软件线程的一个或更多个核(例如一个、两个、四个、八个、二十八个、七十二个等等)。CPU 706可以包括任何类型的处理器,并且可以包括不同类型的处理器,这取决于实现的计算设备700的类型(例如具有用于移动设备的较少核的处理器以及具有用于服务器的更多核的处理器)。例如,取决于计算设备700的类型,处理器可以是使用精简指令集计算(RISC)实现的高级RISC机制(ARM)处理器或者使用复杂指令集计算(CISC)实现的x86处理器。除了一个或更多个微处理器或者诸如数学协处理器之类的补充协处理器之外,计算设备700还可以包括一个或更多个CPU 706。
除了或替代CPU 706,GPU 708还可以被配置为执行至少一些计算机可读指令,以控制计算设备700的一个或更多个组件执行一个或更多个本文所述的方法和/或过程。一个或更多个GPU 708可以是集成GPU(例如,具有一个或更多个CPU 706)和/或一个或更多个GPU 708可以是分立GPU。在实施例中,一个或更多个GPU 708可以是一个或更多个CPU 706的协处理器。计算设备700可以使用GPU 708来渲染图形(例如,3D图形)或执行通用计算。例如,GPU 708可用于GPU上的通用计算(GPGPU)。GPU 708可以包括能够同时处理数百或数千个软件线程的数百或数千个核。GPU 708可以响应于渲染命令(例如经由主机接口接收的来自CPU 706的渲染命令)而生成用于输出图像的像素数据。GPU 708可以包括诸如显示内存之类的用于存储像素数据或任何其他合适的数据(例如GPGPU数据)的图形内存。显示内存可以作为内存704的部分而被包括。GPU 708可以包括(例如经由链路)并行操作的两个或更多GPU。链路可以直接连接GPU(例如,使用NVLINK),也可以通过交换机(例如,使用NVSwitch)连接GPU。当组合在一起时,每个GPU 708可以生成用于输出的不同部分或者用于不同输出的像素数据或GPGPU数据(例如,第一GPU用于第一图像,第二GPU用于第二图像)。每个GPU可以包括它自己的内存,或者可以与其他GPU共享内存。
除了或替代CPU 706和/或GPU 708,逻辑单元720可以被配置为执行至少一些计算机可读指令,以控制计算设备700的一个或更多个组件来执行本文描述的一种或更多种方法和/或过程。在实施例中,CPU 706、GPU708和/或逻辑单元720可以分立地或联合地执行方法、过程和/或其部分的任何组合。一个或更多个逻辑单元720可以是一个或更多个CPU 706和/或一个或更多个GPU 708的一部分和/或集成在其中,和/或一个或更多个逻辑单元720可以是CPU 706和/或GPU 708的分立组件或以其他方式在其外部。在实施例中,一个或更多个逻辑单元720可以是一个或更多个CPU706和/或一个或更多个GPU 708的协处理器。
逻辑单元720的示例包括一个或更多个处理核心和/或其组件,例如张量核心(TC)、张量处理单元(TPU)、像素视觉核心(PVC)、视觉处理单元(VPU)、图形处理集群(GPC)、纹理处理集群(TPC)、流式多处理器(SM)、树遍历单元(TTU)、人工智能加速器(AIA)、深度学习加速器(DLA)、算术逻辑单元(ALU)、专用集成电路(ASIC)、浮点单元(FPU)、输入/输出(I/O)元件、外围组件互连(PCI)或外围组件互连快速(PCIe)元件等。
通信接口710可以包括一个或更多个接收器、发送器和/或收发器,其使得计算设备700能够经由电子通信网络与其他计算设备通信,包括有线和/或无线通信。通信接口710可以包括使能通过若干不同网络中的任何网络进行通信的组件和功能,所述网络例如无线网络(例如Wi-Fi、Z波、蓝牙、蓝牙LE、ZigBee等等)、有线网络(例如通过以太网或InfiniBand通信)、低功率广域网(例如LoRaWAN、SigFox等等)和/或因特网。
I/O端口712可以使得计算设备700能够逻辑地耦合到包括I/O组件714、呈现组件718和/或其他组件在内的其他设备,其中一些可以内置到(例如集成到)计算设备700中。说明性I/O组件714包括麦克风、鼠标、键盘、操纵杆、游戏垫、游戏控制器、碟形卫星天线、浏览仪、打印机、无线设备等等。I/O组件714可以提供处理用户生成的空中手势、语音或其他生理输入的自然用户接口(NUI)。在一些实例中,输入可以传输至适当的网络元件以便进一步处理。NUI可以实现语音识别、手写笔识别、面部识别、生物特征识别、屏幕上和邻近屏幕的手势识别、空中手势、头部和眼睛跟踪以及与计算设备700的显示器关联的触摸识别(如下文更详细地描述的)的任意组合。计算设备700可以包括诸如立体相机系统之类的深度相机、红外相机系统、RGB相机系统、触摸屏技术以及这些的组合,以用于手势检测和识别。此外,计算设备700可以包括使能运动检测的加速度计或陀螺仪(例如作为惯性测量单元(IMU)的部分)。在一些示例中,加速度计或陀螺仪的输出可以由计算设备700用来渲染沉浸式增强现实或者虚拟现实。
电源716可以包括硬接线电源、电池电源或者其组合。电源716可以向计算设备700供电以使得计算设备700的组件能够操作。
呈现组件718可以包括显示器(例如监视器、触摸屏、电视屏幕、平视显示器(HUD)、其他显示器类型或者其组合)、扬声器和/或其他呈现组件。呈现组件718可以接收来自其他组件(例如GPU 708、CPU 706等等)的数据,并且输出该数据(例如作为图像、视频、声音等等)。
本公开可以在由计算机或者诸如个人数字助理或其他手持式设备之类的其他机器执行的、包括诸如程序模块之类的计算机可执行指令的机器可使用指令或者计算机代码的一般背景下进行描述。通常,包括例程、程序、对象、组件、数据结构等等的程序模块指的是执行特定任务或者实现特定抽象数据类型的代码。本公开可以在各种各样的系统配置中实践,这些配置包括手持式设备、消费电子器件、通用计算机、更专业的计算设备等等。本公开也可以在其中任务由通过通信网络链接的远程处理设备执行的分布式计算环境中实践。
如在本文中使用的,“和/或”关于两个或更多元素的叙述应当解释为仅指一个元素或者元素组合。例如,“元素A、元素B和/或元素C”可以包括仅仅元素A,仅仅元素B,仅仅元素C,元素A和元素B,元素A和元素C,元素B和元素C,或者元素A、B和C。此外,“元素A或元素B中的至少一个”可以包括元素A中的至少一个,元素B中的至少一个,或者元素A中的至少一个和元素B中的至少一个。进一步,“元素A和元素B中的至少一个”可以包括元素A中的至少一个,元素B中的至少一个,或者元素A中的至少一个和元素B中的至少一个。
本文详细地描述了本公开的主题以满足法定要求。然而,描述本身并非意在限制本公开的范围。相反地,本发明人已经设想到,要求保护的主题也可以以其他的方式具体化,以包括与本文中结合其他当前或未来技术描述的步骤不同的步骤或者相似的步骤的组合。而且,尽管术语“步骤”和/或“块”在本文中可以用来隐含采用的方法的不同元素,但是这些术语不应当被解释为暗示本文公开的各个步骤之中或之间的任何特定顺序,除非明确描述了各步骤的顺序。

Claims (20)

1.一种方法,包括:接收表示车辆的传感器的感测场的多个实例的第一传感器数据以及表示与所述感测场的实例中的每个实例处的所述车辆相对应的状态信息的第二传感器数据;生成用于测试所述车辆的功能的模拟简档,所述模拟简档包括在沿着所述模拟简档的多个点处所述车辆的期望状态信息;针对所述多个点中的点,至少部分地基于所述状态信息和该点的相应期望状态信息的比较来确定所述第一传感器数据的所述多个实例中最接近的实例;计算所述最接近实例的变换以生成与所述相应期望状态信息相对应的经更新的实例;以及至少部分地基于所述经更新的实例来执行所述功能的测试。
2.如权利要求1所述的方法,其中所述状态信息和所述期望状态信息表示所述车辆的速度、位置或姿态中的至少一个。
3.如权利要求1所述的方法,其中当所述车辆以基本恒定的速度接近对象或远离对象移动时,捕获所述第一传感器数据。
4.如权利要求1所述的方法,其中所述功能对应于自动紧急制动(AEB)系统、碰撞缓解警告(CMW)系统、自动车道偏离警告系统、自动变道系统或自适应巡航控制(ACC)系统中的至少一个。
5.如权利要求1所述的方法,其中所述变换包括针对与所述感测场的所述最接近实例相对应的每个像素的视口变换。
6.如权利要求1所述的方法,其中所述变换包括放大操作。
7.如权利要求1所述的方法,其中对于所述点中的每个点,从所述第一传感器数据的所述多个实例确定相应最接近实例,并且针对所述相应最接近实例计算所述变换以生成一组经更新的实例,进一步其中所述一组经更新的实例用于执行所述功能的测试。
8.如权利要求1所述的方法,其中当所述期望状态信息与所述状态信息在阈值相似度内时,所述最接近实例被用于执行所述功能的测试而无需计算所述变换。
9.如权利要求1所述的方法,其中执行所述功能的测试还至少部分地基于与所述车辆相对应的物理模型。
10.如权利要求1所述的方法,其中至少部分地基于所述车辆的用于执行所述测试的期望初始速度来确定所述期望状态信息。
11.一种系统,包括:第一传感器,用于沿车辆的真实世界轨迹生成第一传感器数据的实例;一个或更多个第二传感器,用于沿所述真实世界轨迹生成表示所述车辆的状态信息的第二传感器数据的对应实例;一个或更多个处理器;一个或更多个存储器设备,其上存储可编程指令,所述可编程指令在由所述一个或更多个处理器执行时,使所述一个或更多个处理器执行操作,所述操作包括:生成用于测试所述车辆的功能的模拟轨迹,所述模拟轨迹包括在沿着所述模拟轨迹的多个点处的所述车辆的期望状态信息;至少部分地基于所述第一传感器数据的所述实例以及所述状态信息和所述期望状态信息之间的差异,生成与所述多个点中的每个点相对应的所述第一传感器数据的经更新的实例;以及至少部分地基于所述经更新的实例来执行所述功能的测试。
12.如权利要求11所述的系统,其中生成所述第一传感器数据的所述经更新的实例包括:针对所述多个点中的每个点,至少部分地基于所述状态信息与各个点的相应期望状态信息的比较,确定所述实例中的对应的最接近实例;以及至少部分地基于所述最接近实例生成所述经更新的实例。
13.如权利要求11所述的系统,其中所述状态信息和所述期望状态信息表示所述车辆的速度、位置或取向中的至少一个。
14.如权利要求11所述的系统,其中生成所述第一传感器数据的所述经更新的实例包括:由与对应的多个点处的所述相应期望状态信息相对应的所述第一传感器数据计算多个最接近实例中的每一个的变换,其中所述多个最接近实例是基于所述状态信息和每个点的相应期望状态信息的比较而选择的所述实例的子集。
15.如权利要求12所述的系统,其中对于每个点,所述变换包括:至少部分地基于所述状态信息和所述期望状态信息之间的差异,针对与所述感测场的所述最接近实例相对应的每个像素进行视口变换。
16.如权利要求11所述的系统,其中当所述期望状态信息与所述实例中的最接近实例的所述状态信息在阈值相似度内时,所述最接近实例被用作用于执行所述功能的测试的相应点的相应经更新的实例。
17.如权利要求11所述的系统,其中所述功能对应于自动紧急制动(AEB)系统、碰撞缓解警告(CMW)系统、自动车道偏离警告系统、自动变道系统或自适应巡航控制(ACC)中的至少一个。
18.一种方法,包括:接收表示车辆的传感器的感测场的多个实例的第一传感器数据以及表示与所述感测场的实例中的每个实例处的所述车辆相对应的状态信息的第二传感器数据;生成用于测试所述车辆的功能的模拟简档,所述模拟简档包括在沿着所述模拟简档的多个点处所述车辆的期望状态信息;针对所述点中的每个点,确定所述第一传感器数据的所述多个实例中具有与该点的相应期望状态信息最相似的相应状态信息的实例;至少部分地基于所述确定,由所述第一传感器数据的所述多个实例生成实例集;以及至少部分地基于所述实例集来执行所述功能的测试。
19.如权利要求18所述的方法,其中由所述第一传感器数据的所述多个实例生成所述实例集进一步包括:变换与对应的多个点的相应期望状态信息相对应的所确定的最相似实例。
20.如权利要求18所述的方法,其中至少部分地基于所述车辆的用于执行所述测试的期望初始速度来确定所述车辆的所述期望状态信息。
CN202080032512.XA 2019-04-29 2020-04-28 从用于自主机器应用的经变换的真实世界传感器数据模拟逼真的测试数据 Active CN113767389B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201962840048P 2019-04-29 2019-04-29
US62/840,048 2019-04-29
PCT/US2020/030296 WO2020223248A1 (en) 2019-04-29 2020-04-28 Simulating realistic test data from transformed real-world sensor data for autonomous machine applications

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN202410990979.5A Division CN118820104A (zh) 2019-04-29 2020-04-28 从用于自主机器应用的经变换的真实世界传感器数据模拟逼真的测试数据

Publications (2)

Publication Number Publication Date
CN113767389A true CN113767389A (zh) 2021-12-07
CN113767389B CN113767389B (zh) 2024-08-13

Family

ID=72916915

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080032512.XA Active CN113767389B (zh) 2019-04-29 2020-04-28 从用于自主机器应用的经变换的真实世界传感器数据模拟逼真的测试数据

Country Status (5)

Country Link
US (2) US11927502B2 (zh)
JP (1) JP2022531092A (zh)
CN (1) CN113767389B (zh)
DE (1) DE112020002166T5 (zh)
WO (1) WO2020223248A1 (zh)

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112203918B (zh) 2018-05-31 2023-11-21 北美日产公司 轨迹规划
RU2756872C1 (ru) * 2018-05-31 2021-10-06 Ниссан Норт Америка, Инк. Структура вероятностного отслеживания объектов и прогнозирования
US11966838B2 (en) 2018-06-19 2024-04-23 Nvidia Corporation Behavior-guided path planning in autonomous machine applications
WO2020013525A1 (en) * 2018-07-11 2020-01-16 Samsung Electronics Co., Ltd. In-vehicle infotainment system communicating with unmanned aerial vehicle and method of operating the same
US11520345B2 (en) 2019-02-05 2022-12-06 Nvidia Corporation Path perception diversity and redundancy in autonomous machine applications
US11548494B2 (en) * 2019-02-11 2023-01-10 Ford Global Technologies, Llc Lap learning for vehicle energy management optimization
US11587448B2 (en) * 2019-07-26 2023-02-21 General Electric Company Systems and methods for manifolds learning of airline network data
US11551414B2 (en) * 2019-12-02 2023-01-10 Woven Planet North America, Inc. Simulation architecture for on-vehicle testing and validation
JP7296465B2 (ja) * 2019-12-17 2023-06-22 フォレテリックス リミテッド 自律車両の適切な挙動を監視するためのシステム及びその方法
US11782823B2 (en) * 2020-07-27 2023-10-10 International Business Machines Corporation Automatically capturing weather data during engineering tests
US12086208B2 (en) 2020-09-21 2024-09-10 Nvidia Corporation Measuring the effects of augmentation artifacts on a machine learning network
US20220135030A1 (en) * 2020-10-29 2022-05-05 Magna Electronics Inc. Simulator for evaluating vehicular lane centering system
CN112525543B (zh) * 2020-11-03 2022-03-04 东南大学 一种基于北斗时空基准的ii型aebs测评装置及方法
CA3139449A1 (en) * 2020-11-17 2022-05-17 Uatc, Llc Generating motion scenarios for self-driving vehicles
WO2022106896A1 (en) * 2020-11-19 2022-05-27 Mobileye Vision Technologies Ltd. Vehicle operation safety model compliance measurement
US11897502B2 (en) * 2021-03-31 2024-02-13 Gm Cruise Holdings Llc Object tracking by generating velocity grids
US11904892B2 (en) 2021-03-31 2024-02-20 Gm Cruise Holdings Llc Machine learning algorithm predicton of movements of simulated objects by using a velocity grid created in a simulation
US20220340153A1 (en) * 2021-04-22 2022-10-27 Gm Cruise Holdings Llc Simulated test creation
KR102342298B1 (ko) * 2021-04-26 2021-12-21 국민대학교산학협력단 3d 시뮬레이터 기반의 과실비율 산정 장치 및 방법
DE102021111463A1 (de) * 2021-05-04 2022-11-10 Dspace Gmbh Computerimplementiertes Verfahren zum automatischen Bereitstellen eines Hinweises für Testprozesse
US11208206B1 (en) * 2021-05-17 2021-12-28 Beta Air, Llc Aircraft for fixed pitch lift
KR20230019334A (ko) * 2021-07-30 2023-02-08 현대자동차주식회사 차량 경로 제어 장치 및 차량의 경로 제어 방법
CN113609016B (zh) * 2021-08-05 2024-03-15 北京赛目科技股份有限公司 车辆自动驾驶测试场景的构建方法、装置、设备及介质
DE102021208988A1 (de) 2021-08-17 2023-02-23 Zf Friedrichshafen Ag Trainingsverfahren zum Trainieren eines künstlichen maschinellen Lernsystems zur Erkennung von Fehlfunktionen und Fahrzeugvorrichtung
JP7497703B2 (ja) * 2021-09-01 2024-06-11 トヨタ自動車株式会社 車線逸脱防止装置
US20230074139A1 (en) * 2021-09-03 2023-03-09 International Business Machines Corporation Proactive maintenance for smart vehicle
US20230177724A1 (en) * 2021-12-07 2023-06-08 Adasky, Ltd. Vehicle to infrastructure extrinsic calibration system and method
EP4198482A1 (de) * 2021-12-17 2023-06-21 dSPACE GmbH Erstellen von testdaten mit konsistenten anfangsbedingungen zum stimulieren eines zu testenden steuergeräts
EP4202753A1 (de) * 2021-12-21 2023-06-28 dSPACE GmbH Erzeugen von testdaten zum testen eines einen sensordatenstrom auswertenden steuersystems eines kraftfahrzeugs
US20230271607A1 (en) * 2022-02-28 2023-08-31 Nissan North America, Inc. Vehicle lane marking detection system
EP4261733A1 (en) * 2022-04-12 2023-10-18 Beijing Tusen Zhitu Technology Co., Ltd. Simulation method, computing device and storage medium
US20230350778A1 (en) * 2022-04-29 2023-11-02 Embark Trucks, Inc. Simulation evaluation pipeline
CN114721359B (zh) * 2022-05-23 2022-08-30 交通运输部公路科学研究所 一种预见性巡航控制系统测试平台及测试方法
CN114978361B (zh) * 2022-06-08 2024-01-30 深圳市钛和巴伦技术股份有限公司 一种基于5g的汽车行驶环境模拟系统以及模拟方法
CN115292822B (zh) * 2022-10-08 2023-02-07 江铃汽车股份有限公司 一种防止头部碰撞汽车内部凸出物的测试方法及系统

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110054823A1 (en) * 2007-11-23 2011-03-03 Illinois Tool Works Inc. System, controller and method for synchronized capture and synchronized playback of data
CN105807630A (zh) * 2015-01-21 2016-07-27 福特全球技术公司 虚拟传感器试验台
US20160275361A1 (en) * 2015-03-18 2016-09-22 Ford Global Technologies, Llc Driver visual sensor behavior study device
US9494439B1 (en) * 2015-05-13 2016-11-15 Uber Technologies, Inc. Autonomous vehicle operated with guide assistance of human driven vehicles
US20170109458A1 (en) * 2015-10-16 2017-04-20 Ford Global Technologies, Llc Testbed for lane boundary detection in virtual driving environment
US20180300620A1 (en) * 2017-04-12 2018-10-18 Ford Global Technologies, Llc Foliage Detection Training Systems And Methods
US20190065933A1 (en) * 2017-08-31 2019-02-28 Ford Global Technologies, Llc Augmenting Real Sensor Recordings With Simulated Sensor Data
US20190244040A1 (en) * 2010-04-19 2019-08-08 SMR Patent S.à.r.l. Rearview device simulation
CN110618678A (zh) * 2018-06-19 2019-12-27 辉达公司 自主机器应用中的行为引导路径规划
US11150660B1 (en) * 2019-04-23 2021-10-19 Zoox, Inc. Scenario editor and simulator

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10176634B2 (en) * 2015-10-16 2019-01-08 Ford Global Technologies, Llc Lane boundary detection data generation in virtual environment
US10885698B2 (en) 2018-08-10 2021-01-05 Nvidia Corporation Method for programmable timeouts of tree traversal mechanisms in hardware
US20200209874A1 (en) * 2018-12-31 2020-07-02 Chongqing Jinkang New Energy Vehicle, Ltd. Combined virtual and real environment for autonomous vehicle planning and control testing

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110054823A1 (en) * 2007-11-23 2011-03-03 Illinois Tool Works Inc. System, controller and method for synchronized capture and synchronized playback of data
US20190244040A1 (en) * 2010-04-19 2019-08-08 SMR Patent S.à.r.l. Rearview device simulation
CN105807630A (zh) * 2015-01-21 2016-07-27 福特全球技术公司 虚拟传感器试验台
US20160275361A1 (en) * 2015-03-18 2016-09-22 Ford Global Technologies, Llc Driver visual sensor behavior study device
US9494439B1 (en) * 2015-05-13 2016-11-15 Uber Technologies, Inc. Autonomous vehicle operated with guide assistance of human driven vehicles
US20170109458A1 (en) * 2015-10-16 2017-04-20 Ford Global Technologies, Llc Testbed for lane boundary detection in virtual driving environment
US20180300620A1 (en) * 2017-04-12 2018-10-18 Ford Global Technologies, Llc Foliage Detection Training Systems And Methods
US20190065933A1 (en) * 2017-08-31 2019-02-28 Ford Global Technologies, Llc Augmenting Real Sensor Recordings With Simulated Sensor Data
CN110618678A (zh) * 2018-06-19 2019-12-27 辉达公司 自主机器应用中的行为引导路径规划
US11150660B1 (en) * 2019-04-23 2021-10-19 Zoox, Inc. Scenario editor and simulator

Also Published As

Publication number Publication date
US20200339109A1 (en) 2020-10-29
CN113767389B (zh) 2024-08-13
DE112020002166T5 (de) 2022-01-20
US20240183752A1 (en) 2024-06-06
JP2022531092A (ja) 2022-07-06
US11927502B2 (en) 2024-03-12
WO2020223248A1 (en) 2020-11-05

Similar Documents

Publication Publication Date Title
CN113767389B (zh) 从用于自主机器应用的经变换的真实世界传感器数据模拟逼真的测试数据
US11841458B2 (en) Domain restriction of neural networks through synthetic data pre-training
US11508049B2 (en) Deep neural network processing for sensor blindness detection in autonomous machine applications
US20240112036A1 (en) Leveraging multidimensional sensor data for computationally efficient object detection for autonomous machine applications
CN113139642B (zh) 在自主驾驶应用中使用神经网络执行故障检测
US20240336285A1 (en) Efficient safety aware path selection and planning for autonomous machine applications
CN112989914B (zh) 具有自适应加权输入的注视确定机器学习系统
CN114450724A (zh) 用于自主机器应用的多活动者环境中的未来轨迹预测
CN113632095A (zh) 使用适合停车位检测的倾斜多边形进行对象检测
CN113906271A (zh) 用于自主机器应用的使用地图信息增强的地面实况数据的神经网络训练
CN111133448A (zh) 使用安全到达时间控制自动驾驶车辆
CN112347829A (zh) 利用障碍物和车道检测来确定环境中对象的车道分配
CN113785302A (zh) 自主机器应用中的路口姿态检测
CN113950702A (zh) 在视频分析应用中使用相关滤波器的多对象跟踪
CN112989913A (zh) 利用面部标志和相关联的置信度值的基于神经网络的面部分析
EP3850548A1 (en) Future object trajectory predictions for autonomous machine applications
CN114155272A (zh) 自主机器应用中的自适应目标跟踪算法
US20230065931A1 (en) Projecting images captured using fisheye lenses for feature detection in autonomous machine applications
US20220283638A1 (en) Gaze determination using glare as input
CN115218888A (zh) 用于更新高清地图的系统和方法
CN113609888A (zh) 利用平面单应性和自监督的场景结构理解进行对象检测
CN117581117A (zh) 自主机器系统和应用中使用LiDAR数据的动态对象检测
EP3850539B1 (en) Deep neural network processing for sensor blindness detection in autonomous machine applications
CN118820104A (zh) 从用于自主机器应用的经变换的真实世界传感器数据模拟逼真的测试数据
CN118823848A (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
GR01 Patent grant
GR01 Patent grant