CN114510018B - 用于子系统性能评价的度量反向传播 - Google Patents
用于子系统性能评价的度量反向传播 Download PDFInfo
- Publication number
- CN114510018B CN114510018B CN202110895381.4A CN202110895381A CN114510018B CN 114510018 B CN114510018 B CN 114510018B CN 202110895381 A CN202110895381 A CN 202110895381A CN 114510018 B CN114510018 B CN 114510018B
- Authority
- CN
- China
- Prior art keywords
- subsystem
- output
- test fixture
- performance
- value
- 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.)
- Active
Links
- 238000011156 evaluation Methods 0.000 title abstract description 14
- 238000000034 method Methods 0.000 claims abstract description 85
- 230000003094 perturbing effect Effects 0.000 claims abstract description 16
- 238000012360 testing method Methods 0.000 claims description 77
- 230000006870 function Effects 0.000 claims description 32
- 230000015654 memory Effects 0.000 claims description 25
- 230000008447 perception Effects 0.000 claims description 25
- 238000001514 detection method Methods 0.000 claims description 14
- 230000006399 behavior Effects 0.000 claims description 4
- 230000000593 degrading effect Effects 0.000 claims description 3
- 230000001502 supplementing effect Effects 0.000 claims description 2
- 230000004044 response Effects 0.000 abstract description 14
- 230000008859 change Effects 0.000 abstract description 13
- 238000004590 computer program Methods 0.000 abstract description 3
- 238000013439 planning Methods 0.000 description 41
- 238000004891 communication Methods 0.000 description 36
- 230000016776 visual perception Effects 0.000 description 20
- 230000008569 process Effects 0.000 description 19
- 238000010586 diagram Methods 0.000 description 16
- 238000012545 processing Methods 0.000 description 13
- 238000012854 evaluation process Methods 0.000 description 8
- 230000003287 optical effect Effects 0.000 description 7
- 238000012913 prioritisation Methods 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 6
- 238000013500 data storage Methods 0.000 description 6
- 230000011218 segmentation Effects 0.000 description 6
- 241000282412 Homo Species 0.000 description 5
- 230000001133 acceleration Effects 0.000 description 5
- 230000008901 benefit Effects 0.000 description 5
- 238000004458 analytical method Methods 0.000 description 4
- 238000013528 artificial neural network Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000004927 fusion Effects 0.000 description 4
- 239000011159 matrix material Substances 0.000 description 4
- 238000005457 optimization Methods 0.000 description 4
- 239000007787 solid Substances 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000013459 approach Methods 0.000 description 3
- 230000015556 catabolic process Effects 0.000 description 3
- 238000006731 degradation reaction Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 238000005259 measurement Methods 0.000 description 3
- 238000004088 simulation Methods 0.000 description 3
- 238000007792 addition Methods 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 230000002950 deficient Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000037361 pathway Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000001228 spectrum Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000011144 upstream manufacturing Methods 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 235000004522 Pentaglottis sempervirens Nutrition 0.000 description 1
- 206010039203 Road traffic accident Diseases 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000002567 autonomic effect Effects 0.000 description 1
- 238000001444 catalytic combustion detection Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000012512 characterization method Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000034994 death Effects 0.000 description 1
- 231100000517 death Toxicity 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000004438 eyesight Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000009474 immediate action Effects 0.000 description 1
- 238000012886 linear function Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 239000003550 marker Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000001556 precipitation Methods 0.000 description 1
- 239000011435 rock Substances 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Images
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60W—CONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
- B60W60/00—Drive control systems specially adapted for autonomous road vehicles
- B60W60/001—Planning or execution of driving tasks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0212—Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/0088—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots characterized by the autonomous decision making process, e.g. artificial intelligence, predefined behaviours
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3664—Environments for testing or debugging software
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60W—CONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
- B60W40/00—Estimation or calculation of non-directly measurable driving parameters for road vehicle drive control systems not related to the control of a particular sub unit, e.g. by using mathematical models
- B60W40/10—Estimation or calculation of non-directly measurable driving parameters for road vehicle drive control systems not related to the control of a particular sub unit, e.g. by using mathematical models related to vehicle motion
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60W—CONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
- B60W50/00—Details 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/02—Ensuring safety in case of control system failures, e.g. by diagnosing, circumventing or fixing failures
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60W—CONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
- B60W50/00—Details 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/04—Monitoring the functioning of the control system
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60W—CONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
- B60W50/00—Details 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/06—Improving the dynamic response of the control system, e.g. improving the speed of regulation or avoiding hunting or overshoot
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0231—Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0231—Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means
- G05D1/0246—Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using a video camera in combination with image processing means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0706—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
- G06F11/0736—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in functional embedded systems, i.e. in a data processing system designed as a combination of hardware and software dedicated to performing a certain function
- G06F11/0739—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in functional embedded systems, i.e. in a data processing system designed as a combination of hardware and software dedicated to performing a certain function in a data processing system embedded in automotive or aircraft systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/26—Functional testing
- G06F11/27—Built-in tests
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3013—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is an embedded system, i.e. a combination of hardware and software dedicated to perform a certain function in mobile devices, printers, automotive or aircraft systems
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60W—CONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
- B60W50/00—Details 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/0001—Details of the control system
- B60W2050/0002—Automatic control, details of type of controller or control system architecture
- B60W2050/0004—In digital systems, e.g. discrete-time systems involving sampling
- B60W2050/0005—Processor details or data handling, e.g. memory registers or chip architecture
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60W—CONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
- B60W50/00—Details 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/0001—Details of the control system
- B60W2050/0019—Control system elements or transfer functions
- B60W2050/0028—Mathematical models, e.g. for simulation
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60W—CONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
- B60W2420/00—Indexing codes relating to the type of sensors based on the principle of their operation
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60Y—INDEXING SCHEME RELATING TO ASPECTS CROSS-CUTTING VEHICLE TECHNOLOGY
- B60Y2400/00—Special features of vehicle units
- B60Y2400/30—Sensors
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Automation & Control Theory (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Quality & Reliability (AREA)
- Mechanical Engineering (AREA)
- Transportation (AREA)
- Radar, Positioning & Navigation (AREA)
- Remote Sensing (AREA)
- Aviation & Aerospace Engineering (AREA)
- Human Computer Interaction (AREA)
- Computer Hardware Design (AREA)
- Artificial Intelligence (AREA)
- Business, Economics & Management (AREA)
- Health & Medical Sciences (AREA)
- Mathematical Physics (AREA)
- Evolutionary Computation (AREA)
- Game Theory and Decision Science (AREA)
- Medical Informatics (AREA)
- Computing Systems (AREA)
- Electromagnetism (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Multimedia (AREA)
- Traffic Control Systems (AREA)
Abstract
本发明涉及用于子系统性能评价的度量反向传播,提供了用于评价子系统性能的系统、方法和计算机程序产品。在一些实施例中,方法包括:扰动包括多个子系统的系统的第一子系统的第一属性,确定系统的第二子系统响应于第一属性的扰动的第二属性的变化,其中第一子系统的至少一个输出被传递到第二子系统,以及基于性能度量与第一属性和第二属性的相关性来确定针对该系统的性能度量的值。在一些实施例中,所述系统是自主运载工具(AV)的软件栈,并且所述性能度量是测量AV的驾驶行为的质量的目标函数输出。
Description
技术领域
本说明书涉及与系统级目标函数有关的子系统性能评价。
背景技术
系统,例如包括在自主运载工具(AV)中的系统,通常包括接收或发送数据的多个相关子系统。在这些子系统中,可能难以确定如何更改给定子系统的参数以提高系统的性能。
发明内容
一种方法,包括:使用至少一个处理器,扰动包括多个子系统的系统的第一子系统的第一属性;使用所述至少一个处理器,确定所述系统的第二子系统的第二属性响应于所述第一属性的扰动的变化,其中,所述第一子系统的至少一个输出被传递到所述第二子系统;以及使用所述至少一个处理器,基于所述系统的性能度量与所述第一属性和所述第二属性的相关性来确定针对性能度量的值。
一种系统,包括:至少一个处理器;存储器,其存储有在由所述至少一个处理器执行时,使所述至少一个处理器进行操作的指令,所述操作包括:扰动包括多个子系统的系统的第一子系统的第一属性;确定所述系统的第二子系统的第二属性响应于所述第一属性的扰动的变化,其中,所述第一子系统的至少一个输出被传递到所述第二子系统;以及基于所述系统的性能度量与所述第一属性和所述第二属性的相关性来确定性能度量的值。
附图说明
图1是示出在环境中运行的具有自主能力的AV的示例的图。
图2是示出计算机系统的图。
图3是示出AV的示例架构的图。
图4是示出感知系统可以使用的输入和输出的示例的图。
图5是示出根据各种实施例的具有多个子系统的简化系统的图。
图6是示出根据各种实施例的替代示例AV栈的图。
图7是示出根据各种实施例的对规划器的示例输入的图。
图8是示出根据各种实施例的与AV栈的建模相关的示例技术的图。
具体实施方式
在以下描述中,为了解释的目的,阐述了许多具体细节,以便提供对本发明的透彻理解。然而,本发明可以在没有这些具体细节的情况下实施将是明显的。在其它实例中,众所周知的构造和装置是以框图形式示出的,以避免不必要地使本发明模糊。
在附图中,为了便于描述,示出了示意要素(诸如表示装置、模块、系统、指令块和数据要素的那些要素)的具体排列或次序。然而,本领域技术人员应当理解,附图中示意要素的具体次序或排列并不意在意味着要求特定的处理次序或序列、或处理过程的分离。此外,在附图中包含示意要素并不意在意味着在所有实施例中都需要这种要素,也不意在意味着由这种要素表示的特征不能包括在一些实施例中或不能在一些实施例中与其它要素结合。
此外,在附图中,连接要素、诸如实线或虚线或箭头用于例示两个或更多个其它示意要素之间的连接、关系或关联,没有任何此类连接要素并不意在意味着不能存在连接、关系或关联。换句话说,一些要素之间的连接、关系或关联未在附图中示出,以便不使本公开内容模糊。此外,为了便于例示,使用单个连接要素来表示要素之间的多个连接、关系或关联。例如,如果连接要素表示信号、数据或指令的通信,本领域技术人员应理解,这种要素表示影响通信可能需要的一个或多个信号路径(例如,总线)。
现在将详细参考实施例,其示例在附图中例示出。在以下的详细描述中,阐述了许多具体细节,以便提供对所描述的各种实施例的透彻理解。然而,对于本领域的普通技术人员来说将明显的是,可以在没有这些具体细节的情况下实施所描述的各种实施例。在其它情况下,没有详细描述众所周知的方法、程序、组件、电路和网络,以便不会不必要地使实施例的方面模糊。
下面描述的若干特征各自可以彼此独立地使用,也可以与其它特征的任何组合一起使用。然而,任何个别特征可能不能解决以上所讨论的任何问题,或者只能解决以上所讨论的问题之一。以上所讨论的一些问题可能不能通过本文所描述的任何一个特征得到充分解决。虽然提供了标题,但在本说明书的其它地方也可以找到与具体标题有关但在具有该标题的部分中未找到的信息。本文根据以下概要描述实施例:
1.总体概述
2.系统概述
3.AV架构
4.AV输入
5.AV子系统扰动和建模
总体概述
本文公开的是用于针对系统级目标函数的子系统性能评价的系统、方法和计算机程序产品。
在一些实施例中,一种方法,包括:使用至少一个处理器扰动包括多个子系统的系统的第一子系统的第一属性;使用所述至少一个处理器确定所述系统的第二子系统的第二属性响应于所述第一属性的扰动的变化,其中,所述第一子系统的至少一个输出被传递到所述第二子系统;以及使用所述至少一个处理器基于性能度量与所述第一属性和所述第二属性的相关性来确定所述系统的性能度量的值。
在一些实施例中,方法还包括:使用第一测试固定件(test fixture)来评价所述第一子系统响应于扰动所述第一属性的性能;使用所述至少一个处理器基于对所述第一子系统的评价来计算第一得分;使用第二测试固定件来评价所述第二子系统响应于扰动所述第一属性的性能;使用所述至少一个处理器基于对所述第二子系统的评价来计算第二得分;以及基于所述第一得分和所述第二得分来确定所述性能度量的值。
在实施例中,确定所述性能度量的值还包括使用被扰动的第一得分和第二得分的梯度来预测所述性能度量的值。
在实施例中,所述第二测试固定件不包括能够在所述第一子系统上运行的数据,并且所述方法还包括模拟所述第二子系统将如何影响所述第二测试固定件中的数据(例如,劣化第一测试固定件中使用的地面真值信息)。
在实施例中,使用所述性能度量与被扰动的第一得分和第二得分之间的线性模型来估计所述梯度。
在实施例中,通过将线性最小二乘公式应用于所述线性模型来预测所述性能度量的值。
在实施例中,针对所述第一子系统的替代实现来预测所述性能度量的值。
在实施例中,所述性能度量是系统级目标函数。
在实施例中,所述系统是自主运载工具(AV)的软件栈(software stack),并且所述性能度量是测量所述AV的驾驶行为的质量的目标函数输出。
在实施例中,所述系统包括用于接收所述第二子系统的输出的第三子系统和用于接收来自所述第三子系统的输出的第四子系统,所述第一子系统是传感器子系统,所述第二子系统是用于从传感器接收传感器数据的感知子系统,所述第三个子系统用于从所述感知子系统接收对象检测的跟踪子系统,所述第四子系统是用于从所述跟踪子系统接收对象踪迹的规划器,以及使用处理器和所述规划器的测试固定件来确定所述性能度量。
在实施例中,通过劣化所述规划器的测试固定件中的地面真值踪迹来模拟对象踪迹。
在实施例中,所述性能度量考虑所述第一子系统和第二子系统其中至少之一的故障率。
在实施例中,一种系统,包括:至少一个处理器;存储有指令的存储器,所述指令在由所述至少一个处理器执行时,使所述至少一个处理器进行上述方法中的任何方法。
凭借本文描述的系统、方法和计算机程序产品的实现,用于子系统性能评价的技术可以得到关于这些子系统中的各个子系统如何影响整个系统和/或至少一个其它子系统的更准确的确定。附加地或替代地,可以针对实现来评价和选择子系统,该实现使得系统整体比在不以本文描述的方式进行评价的情况下选择其它子系统时更高效。这进而提供了可以使用较少资源操作的更高效的系统。
系统概述
图1是示出具有自主能力的运载工具的示例的图。
如本文所使用的,术语“自主能力”是指一种功能、特征或设施,该功能、特征或设施使运载工具能够部分地或完全地操作,而无需实时的人类干预,包括但不限于完全AV、高度AV和有条件AV。
如本文所使用的,AV是一种具有自主能力的运载工具。
如本文所使用的,“运载工具”包括货物或人员的运输方式。例如,小汽车、公共汽车、火车、飞机、无人机、卡车、船只、舰艇、潜水器、飞船等。无人驾驶的小汽车是运载工具的示例。
如本文所使用的,“轨迹”是指将AV从第一时空地点导航到第二时空地点的路径或路线。在实施例中,第一时空地点被称为初始地点或起始地点,第二时空地点被称为目的地、最终地点、目标、目标位置或目标地点。在一些示例中,轨迹由一个或多个路段(例如,道路的数段)组成,并且各路段由一个或多个块(例如,车道或交叉口的一部分)组成。在实施例中,时空地点对应于真实世界地点。例如,时空地点是上车或下车地点,以使人员或货物上车或下车。
如本文所使用的,“(一个或多个)传感器”包括一个或多个硬件组件,用于检测与传感器周围环境有关的信息。一些硬件组件可包括感测组件(例如,图像传感器、生物特征传感器)、传输和/或接收组件(例如,激光或射频波发射器和接收器)、电子组件(诸如,模数转换器)、数据存储装置(诸如,随机存取存储器(RAM)和/或非易失性存储器)、软件或固件组件和数据处理组件(诸如,专用集成电路)、微处理器和/或微控制器。
如本文所使用的,“场景描述”是一种数据结构(例如,列表)或数据流,其包括由AV运载工具上的一个或多个传感器检测到的一个或多个分类或标记的对象,或由AV外部的源提供的一个或多个分类或标记的对象。
如本文所使用的,“道路”是一个可以被运载工具穿过的物理区域,并且可以对应于已命名的通道(例如,城市街道、州际高速公路等)或可对应于未命名的通道(例如,房屋或办公楼内的行车道、停车场的一段、空置停车场的一段、乡村区域的污物通道等)。因为有些运载工具(例如,四轮驱动的小卡车、越野车(SUV)等)能够穿过各种不特别适合运载工具行驶的物理区域,因此“道路”可以是任何市政当局或其它政府或行政机构没有正式定义为一条通道的物理区域。
如本文所使用的,“车道”是道路的可被运载工具穿越的部分。有时基于车道标记来识别车道。例如,车道可对应于车道标记之间的大部分或全部空间,或仅对应于车道标记之间的部分空间(例如,小于50%)。例如,具有相距很远的车道标记的道路可能容纳两个或两个以上的运载工具,使得一个运载工具可以在不穿过车道标记的情况下超过另一个运载工具,因此可被解释为车道比车道标记之间的空间窄,或车道之间有两个车道。在没有车道标记的情况下,也可以对车道进行解释。例如,可以基于环境的物理特征(例如,农村地区的岩石和沿着大道的树木、或者例如在欠发达地区应避免的自然障碍物)来定义车道。也可以独立于车道标记或物理特征来解释车道。例如,可以基于原本缺少将会被解释为车道边界的特征的在区域中无障碍物的任意路径来解释车道。在示例情景中,AV可以解释通过田野或空地的无障碍物部分的车道。在另一示例情景中,AV可以解释通过不具有车道标记的宽(例如,足够两个或更多个车道宽)道路的车道。在该情景中,AV可以将与车道有关的信息通信至其它AV,使得其它AV可以使用相同的车道信息来协调AV之间的路径规划。
“一个或多个”包括由一个要素执行的功能、由多个要素例如以分布式的方式执行的功能、由一个要素执行的若干功能、由若干要素执行的若干功能、或上述的任何组合。
还将理解的是,尽管在一些情况下,术语“第一”、“第二”等在本文中是用来描述各种要素的,但这些要素不应受到这些术语的限制。这些术语仅用于区分一个要素与另一个要素。例如,在未背离各种所描述的实施例的范围的情况下,第一触点可被称为第二触点,并且类似地,第二触点可被称为第一触点。第一触点和第二触点两者都是触点,但它们不是相同触点。
在本文所描述的各种实施例的说明书中使用的术语仅用于描述特定实施例的目的,而不是意在限制。如在所描述的各种实施例的说明书和所附权利要求书中所使用的,单数形式“a”、“an”和“the”也意在包括复数形式,除非上下文另有明确说明。还将理解的是,如本文所使用的“和/或”是指并且包括一个或多个相关清单项目的任何和所有可能的组合。还将理解的是,当在本说明书中使用术语“包括”、“包含”、“具备”和/或“具有”时,具体说明存在所陈述的特征、整数、步骤、操作、要素和/或组件,但并不排除存在或添加一个或多个其它特征、整数、步骤、操作、要素、组件、和/或其群组。
如本文所使用的,取决于上下文,术语“如果”可选地被理解为意指“当”或“在当时”或“响应于确定为”或“响应于检测到”。类似地,取决于上下文,短语“如果已确定”或“如果[所陈述的条件或事件]已被检测到”可选地被理解为意指“在确定时”或“响应于确定为“或”在检测到[所陈述的条件或事件]时”或“响应于检测到[所陈述的条件或事件]”。
如本文所使用的,AV系统是指AV以及支持AV操作的硬件、软件、存储的数据和实时生成的数据的阵列。在实施例中,AV系统并入在AV内。在实施例中,AV系统跨若干地点分布。例如,AV系统的一些软件是在类似于云计算环境中实现的。
一般而言,本文件描述了适用于任何具有一种或多种自主能力的运载工具的技术,包括完全AV、高度AV和有条件AV,诸如分别为所谓的第5级、第4级和第3级运载工具(见SAE国际标准J3016:道路上机动车自动驾驶系统相关术语的分类和定义,通过引用将其全部内容并入本文件,用于了解运载工具自主权等级的更多详细信息)。本文件所描述的技术也适用于部分AV和驾驶员辅助运载工具,诸如所谓的第2级和第1级运载工具(见SAE国际标准J3016:道路上机动车自动驾驶系统相关术语的分类和定义)。在实施例中,一个或多个第1级、第2级、第3级、第4级和第5级运载工具系统可基于对传感器输入的处理,在某些操作条件下自动执行某些运载工具操作(例如,转向、制动和使用地图)。本文件中所描述的技术可以使从完全AV到人类操作的运载工具范围内的任何级别的运载工具受益。
AV与需要人类驾驶员的运载工具相比存在优势。一个优势是安全性。例如,在2016年,美国经历了600万起汽车事故、240万人受伤、40000人死亡和1300万辆运载工具碰撞事故,估计社会成本为9100亿美元多。从1965年到2015年,每行驶1亿英里的美国交通事故死亡人数已从约6人减少到约1人,部分是由于运载工具中所部署的附加安全措施。例如,认为与将发生碰撞有关的额外半秒的警告减轻了60%的前后碰撞。然而,被动安全特征(例如,安全带、安全气囊)在改进该数字方面有可能已达到它们的极限。因而,诸如运载工具的自动控制等的主动安全措施是改进这些统计数据的可能的下一步。由于在95%的碰撞中认为人类驾驶员是造成严重碰撞前事件的原因,因此自动驾驶系统例如通过以下操作,有可能实现更好的安全结果:比人类更好地可靠地识别和避免紧急情况;做出比人类更好的决策,比人类更好地遵守交通法规,并且比人类更好地预测将来事件;并且比人类更好地可靠地控制运载工具。
参考图1,AV系统120使运载工具100沿着轨迹198操作,穿过环境190至目的地199(有时称为最终地点),同时避开对象(例如,自然障碍物191、运载工具193、行人192、骑车者和其它障碍物)和遵守道路规则(例如,操作规则或驾驶偏好)。
在实施例中,AV系统120包括用于从计算机处理器146接收操作命令并对其进行操作的装置101。使用术语“操作命令”来表示使得运载工具进行动作(例如,驾驶机动动作)的可执行指令(或指令集)。操作命令可以非限制性地包括用于使运载工具开始向前移动、停止向前移动、开始向后移动、停止向后移动、加速、减速、进行左转和进行右转的指令。在实施例中,计算机处理器146与下面参考图2描述的处理器204相似。装置101的示例包括转向控制器102、制动器103、挡位、加速踏板或其它加速控制机构、挡风玻璃雨刮器、侧门锁、窗控器和转向指示器。
在实施例中,AV系统120包括用于测量或推断运载工具100的状态或条件的属性的传感器121,这些属性诸如是AV的位置、线速度和角速度及线加速度和角加速度、以及航向(例如,运载工具100的前端的方向)。传感器121的示例是GPS、测量运载工具线加速度和角速率两者的惯性测量单元(IMU)、用于测量或估计轮滑移率的轮速率传感器、轮制动压力或制动扭矩传感器、引擎扭矩或轮扭矩传感器以及转向角度和角速率传感器。
在实施例中,传感器121还包括用于感测或测量AV的环境的属性的传感器。例如,可见光、红外或热(或两者兼有)光谱的单目或立体摄像机122,光检测和测距(LiDAR)123,RADAR,超声波传感器,飞行时间(TOF)深度传感器,速率传感器,温度传感器,湿度传感器和降水传感器。
在实施例中,AV系统120包括数据存储单元142和存储器144,用于存储与计算机处理器146相关联的机器指令或由传感器121收集的数据。在实施例中,数据存储单元142与以下关于图2描述的ROM 208或存储装置210类似。在实施例中,存储器144与下面描述的主存储器206类似。在实施例中,数据存储单元142和存储器144存储有关环境190的历史、实时和/或预测性信息。在实施例中,存储的信息包括地图、驾驶性能、交通拥堵更新或天气条件。在实施例中,与环境190有关的数据从远程数据库134通过通信信道传输到运载工具100。
在实施例中,AV系统120包括通信装置140,用于将对其它运载工具的状态和条件(诸如位置、线速度和角速度、线加速度和角加速度、以及线航向和角航向)测量或推断的属性传送到运载工具100。这些装置包括运载工具到运载工具(V2V)和运载工具到基础设施(V2I)通信装置以及用于通过点对点或自组织(ad hoc)网络或两者进行无线通信的装置。在实施例中,通信装置140跨电磁频谱(包括无线电和光通信)或其它介质(例如,空气和声介质)进行通信。运载工具对运载工具(V2V)、运载工具对基础设施(V2I)通信(以及在一些实施例中为一种或多种其它类型的通信)的组合有时被称为运载工具对所有事物(V2X)通信。V2X通信通常符合一个或多个通信标准,用于与AV进行的和在AV之间的通信。
在实施例中,通信装置140包括通信接口。例如,有线、无线、WiMAX、Wi-Fi、蓝牙、卫星、蜂窝、光、近场、红外或无线电接口。通信接口将数据从远程数据库134传输到AV系统120。在实施例中,远程数据库134嵌入在云计算环境中。通信装置140将从传感器121收集的数据或与运载工具100操作有关的其它数据传输到远程数据库134。在实施例中,通信装置140向运载工具100传输与遥操作有关的信息。在一些实施例中,运载工具100与其它远程(例如,“云”)服务器136通信。
在实施例中,远程数据库134还存储和传输数字数据(例如,存储诸如道路和街道地点的数据)。这些数据存储在运载工具100上的存储器144中,或者通过通信信道从远程数据库134传输到运载工具100。
在实施例中,远程数据库134存储和传输与以前在一天中类似时间沿着轨迹198行驶的运载工具的驾驶属性有关的历史信息(例如,速率和加速度分布)。在一个实现中,这种数据可以存储在运载工具100上的存储器144中,或者通过通信信道从远程数据库134传输到运载工具100。
位于运载工具100上的计算机处理器146基于实时传感器数据和先验信息两者以算法方式生成控制动作,允许AV系统120执行其自主驾驶能力。
在实施例中,AV系统120包括耦接到计算机处理器146的计算机外围设备132,用于向运载工具100的用户(例如,乘员或远程用户)提供信息和提醒并接收来自该用户的输入。在实施例中,计算机外围设备132类似于下面参考图2讨论的显示器212、输入装置214和光标控制器216。耦接是无线的或有线的。任意两个或更多个的接口装置可以集成到单个装置中。
在实施例中,AV系统120接收并强制执行例如由乘员指定的或者存储在与乘员相关联的简档中的乘员的隐私级别。乘员的隐私级别确定了如何许可使用存储在乘员简档中的以及/或者存储在云服务器136上且与乘员简档相关联的、与乘员相关联的特定信息(例如,乘员舒适度数据、生物测量数据等)。在实施例中,隐私级别指定了一旦搭乘完成则被删除的与乘员相关联的特定信息。在实施例中,隐私级别指定了与乘员相关联的特定信息,并且标识被授权访问该信息的一个或多个实体。被授权访问信息的所指定的实体的示例可以包括其它AV、第三方AV系统、或者可以潜在地访问该信息的任何实体。
可以在一个或多个粒度级别指定乘员的隐私级别。在实施例中,隐私级别标识要存储或共享的特定信息。在实施例中,隐私级别适用于与乘员相关联的所有信息,使得乘员可以指定不存储或共享她的个人信息。被许可访问特定信息的实体的指定也可以在各种粒度级别指定。被许可访问特定信息的各种实体集例如可以包括其它AV、云服务器136、特定第三方AV系统等。
在实施例中,AV系统120或云服务器136确定运载工具100或另一实体是否可访问与乘员相关联的某些信息。例如,试图访问与特定时空地点有关的乘员输入的第三方AV系统必须例如从AV系统120或云服务器136获得授权,以访问与乘员相关联的信息。例如,AV系统120使用乘员的指定隐私级别来确定是否可以将与时空地点有关的乘员输入呈现给第三方AV系统、运载工具100或另一AV。这使得乘员的隐私级别能够指定允许哪些其它实体接收与乘员的动作有关的数据或与乘员相关联的其它数据。
图2是示出计算机系统200的图。在实现中,计算机系统200是专用计算装置。专用计算装置被硬连线以执行这些技术,或包括诸如一个或多个ASIC或现场可编程门阵列(FPGA)的被持久编程为执行上述技术的数字电子装置,或可包括一个或多个通用硬件处理器,这些硬件处理器经编程以根据固件、存储器、其它存储器、或者组合中的程序指令执行这些技术。这种专用的计算装置还可以将定制的硬线逻辑、ASIC或FPGA与定制的编程相结合来完成这些技术。在各种实施例中,专用计算装置是台式计算机系统、便携式计算机系统、手持装置、网络装置或包含硬线和/或程序逻辑以实现这些技术的任何其它装置。
在实施例中,计算机系统200包括总线202或用于传达信息的其它通信机制、以及与总线202耦接以处理信息的硬件处理器204。硬件处理器204是例如通用微处理器。计算机系统200还包括主存储器206,诸如RAM或其它动态存储装置,该主存储器206耦接到总线202以存储信息和指令,该信息和指令由处理器204执行。在一个实现中,主存储器206用于在执行要由处理器204执行的指令期间存储临时变量或其它中间信息。当这些指令存储在处理器204可访问的非暂时性存储介质中时,使计算机系统200变成一个专用机器,该机器被定制以执行指令中指定的操作。
在实施例中,计算机系统200还包括只读存储器(ROM)208或耦接到总线202的其它静态存储装置,用于存储处理器204的静态信息和指令。提供诸如磁盘、光盘、固态驱动器或三维交叉点存储器的存储装置210,并且该存储装置210耦接到总线202以存储信息和指令。
在实施例中,计算机系统200通过总线202耦接到诸如阴极射线管(CRT)、液晶显示器(LCD)、等离子体显示器、发光二极管(LED)显示器或用于向计算机用户显示信息的有机发光二极管(OLED)显示器的显示器212。包括字母数字键和其它键的输入装置214耦接到总线202,用于向处理器204传送信息和命令选择。另一种类型的用户输入装置是光标控制器216,诸如鼠标、轨迹球、触控显示器或光标方向键,用于将方向信息和命令选择传送到处理器204,并用于控制光标在显示器212上的移动。这种输入装置通常具有两个轴(第一轴(例如,x轴)和第二轴(例如,y轴))上的两个自由度,这两个轴允许装置指定平面上的位置。
根据一个实施例,本文的技术由计算机系统200响应于处理器204执行主存储器206中包含的一个或多个指令的一个或多个序列而执行。这些指令从诸如存储装置210的另一存储介质读入主存储器206。执行主存储器206中包含的指令序列使处理器204执行本文所描述的过程步骤。在替代实施例中,使用硬连线电路代替或与软件指令结合使用。
如本文所使用的术语“存储介质”是指存储数据和/或指令的任何非暂时性介质,这些数据和/或指令使机器以特定方式操作。这种存储介质包括非易失性介质和/或易失性介质。非易失性介质例如包括诸如存储装置210的光盘、磁盘、固态驱动器或三维交叉点存储器。易失性介质包括动态存储器,诸如主存储器206。存储介质的常见形式包括例如软盘、软磁盘、硬盘、固态驱动器、磁带或任何其它磁数据存储介质、CD-ROM、任何其它光数据存储介质、任何具有孔型的物理介质、RAM、PROM和EPROM、FLASH-EPROM、NV-RAM、或任何其它存储芯片或存储盒。
存储介质有别于传输介质,但可以与传输介质相结合使用。传输介质参与存储介质之间的信息传输。例如,传输介质包括同轴电缆、铜线和光纤,其包括具备总线202的电线。传输介质也可以采取声波或光波的形式,诸如在无线电波和红外数据通信过程中产生的声波或光波。
在实施例中,各种形式的介质涉及将一个或多个指令的一个或多个序列承载到处理器204以供执行。例如,这些指令最初是在远程计算机的磁盘或固态驱动器上执行的。远程计算机将指令加载到其动态存储器中,并使用调制解调器通过电话线路发送指令。计算机系统200的本地调制解调器接收电话线路上的数据,并使用红外发射器将数据转换为红外信号。红外检测器接收红外信号中承载的数据,并且适当的电路将数据放置在总线202上。总线202将数据承载到主存储器206,处理器204从主存储器206检索并执行指令。主存储器206接收的指令可以可选地在处理器204执行之前或之后存储在存储装置210上。
计算机系统200还包括耦接到总线202的通信接口218。通信接口218提供耦接到连接至本地网络222的网络链路220的双向数据通信。例如,通信接口218是综合业务数字网(ISDN)卡、电缆调制解调器、卫星调制解调器或用以提供与相应类型电话线路的数据通信连接的调制解调器。作为另一示例,通信接口218是局域网(LAN)卡,用于提供与兼容LAN的数据通信连接。在一些实现中,无线链路也被实现。在任何这种实现中,通信接口218发送和接收承载表示各种类型的信息的数字数据流的电、电磁或光信号。
网络链路220通常通过一个或多个网络向其它数据装置提供数据通信。例如,网络链路220通过本地网络222提供与主计算机224或与由因特网服务提供商(ISP)226运营的云数据中心或设备的连接。ISP 226又通过现在通常称为“因特网”228的世界范围分组数据通信网络来提供数据通信服务。本地网络222和因特网228两者都使用承载数字数据流的电、电磁或光信号。通过各种网络的信号以及网络链路220上并通过通信接口218的信号是传输介质的示例形式,其中这些信号承载了进出计算机系统200的数字数据。在实施例中,网络链路220包含云或云的一部分。
计算机系统200通过(一个或多个)网络、网络链路220和通信接口218发送消息和接收包括程序代码的数据。在实施例中,计算机系统200接收用于处理的代码。接收到的代码在接收到时由处理器204执行,和/或存储在存储装置210中,或存储在其它非易失性存储装置中以便以后执行。
AV架构
图3示出用于AV(例如,图1所示的运载工具100)的示例架构300的图。架构300包括感知子系统302(有时称为感知电路)、规划子系统304(有时称为规划电路)、控制子系统306(有时称为控制电路)、定位子系统308(有时称为定位电路)和数据库子系统310(有时称为数据库电路)。各子系统在运载工具100的操作中发挥作用。共同地,子系统302、304、306、308和310可以是图1所示的AV系统120的一部分。在一些实施例中,子系统302、304、306、308和310中的任何子系统是计算机软件(例如,计算机可读介质上所存储的可执行代码)和计算机硬件(例如,一个或多个微处理器、微控制器、专用集成电路[ASIC]、硬件存储器装置、其它类型的集成电路、其它类型的计算机硬件、或者这些硬件中的任何或所有的组合)的组合。子系统302、304、306、308和310各自有时被称为处理电路(例如,计算机硬件、计算机软件、或者这两者的组合)。子系统302、304、306、308和310中的任何或全部的组合也是处理电路的示例。
在使用中,规划子系统304接收表示目的地312的数据,并且确定表示运载工具100为了到达(例如,抵达)目的地312而可以行驶的轨迹314(有时称为路线)的数据。为了使规划子系统304确定表示轨迹314的数据,规划子系统304从感知子系统302、定位子系统308和数据库子系统310接收数据。
感知子系统302使用例如也如图1所示的一个或多个传感器121来识别附近的物理对象。将对象分类(例如,分组成诸如行人、自行车、汽车、交通标志等的类型),并且将包括经分类的对象316的场景描述提供至规划子系统304。
规划子系统304还从定位子系统308接收表示AV位置318的数据。定位子系统308通过使用来自传感器121的数据和来自数据库子系统310的数据(例如,地理数据)以计算位置来确定AV位置。例如,定位子系统308使用来自GNSS(全球导航卫星系统)传感器的数据和地理数据来计算AV的经度和纬度。在实施例中,定位子系统308所使用的数据包括具有行车道几何属性的高精度地图、描述道路网络连接属性的地图、描述行车道物理属性(诸如交通速率、交通量、运载工具和自行车车道的数量、车道宽度、车道交通方向、或车道标记类型和地点,或者它们的组合)的地图、以及描述道路特征(诸如十字路口、交通标志或各种类型的其它行驶信号等)的空间地点的地图。在实施例中,高精度地图是通过将数据经由自动或手动注释添加到低精度地图所构建的。
控制子系统306接收表示轨迹314的数据和表示AV位置318的数据,并且以将使得运载工具100行驶轨迹314到达目的地312的方式来操作AV的控制功能320a~320c(例如,转向、油门、制动、点火)。例如,如果轨迹314包括左转,则控制子系统306将以如下方式操作控制功能320a~320c:转向功能的转向角度将使得运载工具100左转,并且油门和制动将使得运载工具100在进行转弯之前暂停并等待经过的行人或运载工具。
AV输入
图5是示出感知子系统302(图3)所使用的输入402a-402d(例如,图1中所示的传感器121)和输出404a-404d(例如,传感器数据)的示例的图。一个输入402a是LiDAR输出数据(例如,图1所示的LiDAR 123)。LiDAR是使用光(例如,诸如红外光等的一道光)来获得与其视线中的物理对象有关的数据的技术。LiDAR子系统产生LiDAR数据作为输出404a。例如,LiDAR数据是用于构造环境190的表示的三维(3D)或二维(2D)点(也称为“点云”)的集合。
另一输入402b是RADAR(雷达)数据。RADAR是使用无线电波来获得与附近的物理对象有关的数据的技术。RADAR可以获得与不在LiDAR的视线内的对象有关的数据。RADAR子系统产生RADAR数据作为输出404b。例如,RADAR数据是用于构造环境190的表示的一个或多个射频(RF)信号。
另一输入402c是照相机数据。照相机子系统使用一个或多个照相机(例如,使用诸如电荷耦接器件[CCD]等的光传感器的数字照相机)来获取与附近的物理对象有关的信息。照相机子系统产生照相机数据作为输出404c。照相机数据通常采用图像数据(例如,诸如RAW、JPEG、PNG等的图像数据格式的数据)的形式。在一些示例中,照相机子系统具有例如为了立体影像(立体视觉)的目的的多个独立照相机,这使得照相机子系统能够感知深度。尽管照相机子系统所感知的对象在这里被描述为“附近”,但这是相对于AV而言的。在一些实施例中,照相机子系统被配置为“看见”远处的(例如,AV前方的远至1公里或更远的)对象。因此,在一些实施例中,照相机子系统具有为了感知遥远的对象而优化的诸如传感器和镜头等的特征。
另一输入402d是交通灯检测(TLD)数据。TLD子系统使用一个或多个照相机来获得与交通灯、街道标志和提供视觉导航信息的其它物理对象有关的信息。TLD子系统产生TLD数据作为输出404d。TLD数据经常采用图像数据(例如,诸如RAW、JPEG、PNG等的图像数据格式的数据)的形式。TLD子系统与包含照相机的系统的不同之处在于:TLD子系统使用具有宽视场(例如,使用广角镜头或鱼眼镜头)的照相机,以获得与尽可能多的提供视觉导航信息的物理对象有关的信息,使得运载工具100能够访问这些对象所提供的所有相关导航信息。例如,TLD子系统的视角为约120度或更大。
在一些实施例中,使用传感器融合技术来组合输出404a-404d。因而,将个体输出404a-404d提供至运载工具100的其它子系统(例如,提供至如图3所示的规划子系统304),或者可以采用相同类型的单个组合输出或多个组合输出(例如,使用相同组合技术或组合相同输出或者这两者)或不同类型的单个组合输出或多个组合输出(例如,使用不同的各个组合技术或组合不同的各个输出或者这两者)的形式,将组合输出提供至其它子系统。在一些实施例中,使用早期融合技术。早期融合技术的特征在于:在将一个或多个数据处理步骤应用到组合输出之前,将输出组合。在一些实施例中,使用后期融合技术。后期融合技术的特征在于:在将一个或多个数据处理步骤应用到个体输出之后,将输出组合。
AV子系统扰动和建模
如前所述,在具有多种子系统的系统中,可能难以确定针对给定子系统使用多种不同选项中的哪个(例如,子系统的具有更多或更少参数的不同模型),或者如何更改给定子系统的参数以提高整体系统性能。
本文的实施例涉及如下假设:存在系统级目标函数(例如,下面描述的合理拥挤度量),并且这样的函数可以用于指导子系统的设计或在子系统的不同实现之间进行选择。在前一情况下(子系统的设计指导),本文描述的某些实施例涉及找到子系统的与系统级性能最相关的至少一个属性。在后一情况下(在子系统的不同实现之间进行选择),本文描述的实施例涉及选择得到最高系统级性能的实现。
在具有多个子系统的AV栈中,可能期望确保基于系统级目标函数使特定子系统的性能最优化。因此,本文描述的某些实施例涉及实现该目标的过程。另外,本文描述的某些实施例与涉及在评价不同子系统时使用测试固定件的过程有关。
例如,本文描述的实施例基于图像检测器检测特定距离处的其它运载工具的能力、针对行人的平均精度(AP)、跨所有类别(例如,行人、运载工具和/或路边对象等)的平均AP和/或其它度量来评价图像检测器。这些度量可以使用特定于图像检测器的测试固定件(例如包括用二维(2D)边界框和分割掩模所注释的图像的数据集)来计算。然而,图像检测器期望收集能够捕获对视觉子系统具有挑战性的情形的图像:异常的天气或光照条件、杂乱的场景、穿着奇怪的行人等。
作为另一示例,LiDAR检测器子系统的测试固定件包括用3D边界框注释的LiDAR点云。数据将再次涉及具有挑战性的情形,但这些情形与上述图像检测器的情形不同。例如,LiDAR检测器在夜间没有任何困难,但因为黑色运载工具趋向于吸收而不是反射LiDAR的光脉冲,所以一些系统对于黑色运载工具会遇到困难。
相应地,LiDAR检测器子系统的测试固定件中所包括的这些LiDAR检测器和图像检测器子系统不同于用于规划子系统304的测试固定件。具体地,用于规划子系统304的测试固定件的实施例将足以在感知问题被抽象掉的“箱世界”中编码一组情景。这种箱世界的优点是容易生成复杂和危险情景。
对于这样的各种子系统,用于优化系统级目标函数的一个方法是针对整个系统使用单个测试固定件。用于优化系统级目标函数的另一方法是使用可访问复杂3D环境的全功能模拟器。相比之下,本文的某些实施例涉及如下方法,其中保持测试固定件分离,并且基于分离的测试固定件对不同子系统度量之间的相关性进行建模。
图5是示出根据各种实施例的简化示例系统500的图。系统500包括第一子系统SS1505、第二子系统SS2 510、第三子系统SS3 515和第n子系统SSn 520。在该示例中,如图5所示,信息流经系统500。例如,信息从SS1 505流向SS2 510,其中信息在SS2 510处被处理。然后来自SS2 510的处理过的信息被提供给SS3 515用于进一步处理,等等。
如上所述,期望识别如何优化例如SS2 510以提高系统500的整体性能。在一个实施例中,这种优化包括优化SS2 510的属性(诸如SS2 510的设置或配置等)。在另一实施例中,这种优化包括确定多个可能替代子系统中的哪个用于SS2 510。应该理解,这些只是这种优化的示例,并且在其它实施例中,优化子系统以改进系统500的整体性能包括替代的优化语句,诸如除了优化这些子系统的特定属性之外还确定要使用多个可能替代子系统中的哪个。下面描述的示例系统是用于AV的AV软件栈。然而,其它系统可以利用并受益于下面描述的实施例。
示例AV栈实施例
在AV运行期间的某个时间,AV栈决定AV需要进行的即时操作。为此,栈处理截至当前时间所收集的传感器数据以及有关环境(例如地图)的先验信息的数据库。
从原始传感器数据到决策涉及一系列子系统,这些子系统利用语义(例如,其它运载工具的位置,以及对其它运载工具未来路径的预测)连续处理和更新(例如,丰富和/或完善等)原始数据,最终得到传递给决策单元的数据的丰富表示。
在AV栈中,在真实世界的实现中可能不会将任何子系统的输出数据提供回子系统以进行进一步处理。在实施例中,AV栈被表示为有向无环图(DAG),其中顶点是子系统并且有向边是两个子系统之间的连接。具体地,顶点将是N个子系统的集合:
S=(s1,...,sN-1,sN=d) [1]
其中S是系统,s1,...,sN-1,sN是系统S的子系统,N是整数,并且sN是指最后一个子系统(这里也称为决策单元d)。DAG中的边指示特定子系统s1,...,sN-1的输出被传递到另一子系统,数学描述为:
其中E是整数,并且(se,1,se,2)指示将se,1的输出作为输入馈送到se,2。
为了降低本文使用的符号的复杂性,针对i=1,...,N使用si以表示作为一般(模型不可知)概念的子系统(例如,对象检测器)或其实现。本领域技术人员将基于讨论的上下文清楚本文的意图。
表征子系统
尽管给定系统的各个子系统可能是具有多达数十亿个参数的复杂算法,但通过仅查看子系统的某些属性,可以简化对任何特定子系统的分析。
在一些实施例中,子系统的属性包括可以评价各个子系统的标准(例如,可解释标准)。例如,诸如可以是感知子系统302的元件等的3D对象检测器使对象的预测定向中的误差最小化(等等)。在另一实施例中,该标准基于3D对象检测器的测量的时间相关性。
对于这里的讨论,对于i=1,...,N的子系统,子系统si的得分ri基于这样的标准通过以下来表示:
其中ni是整数。在实施例中,决策单元d具有单个属性:用于测量AV的驾驶行为的质量的系统级目标函数,也称为系统性能度量。由于系统级目标函数返回标量,这里的讨论使用以下符号:
注意,在其它实施例中,决策单元具有或者基于附加的或替代的属性,这些属性可能对例如调试或一些其它过程有用。
在实施例中,各个子系统的得分ri是通过这里由Ri表示的评价过程获得的。评价过程Ri获取子系统si的输出,并且基于一组评价函数和测试固定件的数据库来计算子系统si的得分ri。在一个示例中,对于(例如,由AV栈的感知子系统302进行的)对象检测的任务,测试固定件包括带注释的传感器数据。基于带注释的传感器数据,评价函数Ri计算召回率(recall)、精度、准确度等。在一个实施例中,对于规划任务,测试固定件是情景数据库和模拟器,并且评价函数基于预先识别的规则手册识别道路规则的违规。
期望仔细选择在ri中包含si的哪些属性。如果ri不是si的足够丰富的表示,则基于ri的任何分析都不会得到可靠的见解。例如,在一些实施例中,由于具有相同定向误差的两个对象检测器在其它方面可能彼此大不相同,因此仅通过3D对象检测器产生的定向误差来表征3D对象检测器是数据不足的。例如,一个检测器可能只给出远处对象的定向误差,而另一个检测器可能只给出近处对象的定向误差。另一方面,如果ri的组成部分太多,基于ri的分析将需要大量的计算资源。确定子系统si的相关属性以将其计入子系统得分ri的一个方式是调查该子系统的不同实现,并提取变化最大的特征。
图6是示出根据各种实施例的替代示例AV栈600的图。具体地,所描绘的AV栈600包括根据AV的AV栈的一个简化实施例的特定子系统。将理解的是,AV栈600的这种描述旨在作为一个实施例的示例。在其它实施例中,AV栈600可以包括不同的子系统、具有不同参数的子系统、处于不同配置中或者具有不同输入或输出的子系统等。在其它实施例中还可以存在其它变化。
此外,如这里所使用的,术语“下游”子系统是指从AV栈中的另一子系统接收输入数据的子系统,该另一子系统被称为“上游”子系统。例如,规划子系统640是跟踪子系统635的“下游”,这是因为规划子系统640从跟踪子系统635接收输入数据。相反,跟踪子系统635是规划子系统640的“上游”,这是因为跟踪子系统635向规划子系统640提供输入数据。
AV栈600包括照相机子系统605(其表示为s1)。照相机子系统605类似于例如照相机子系统402c。在该实施例中,照相机子系统605的得分r1是基于被定义为照相机子系统605所产生的损坏像素的百分比的属性。对照相机子系统605的评价过程R1涉及使用校准目标图像(例如,棋盘目标)在校准室中的测试。照相机子系统605的输出包括与图像相关联的图像数据。
AV栈600还包括LiDAR子系统610(其表示为s2)。LiDAR子系统610类似于例如LiDAR子系统402a。在该实施例中,LiDAR子系统610的得分r2基于由LiDAR子系统610产生的平均距离误差。LiDAR子系统610的评价过程R2涉及使用目标对象距离在校准室中的测试。LiDAR子系统610的输出包括与点云相关联的点云数据。
AV栈600还包括数据库子系统615(其表示为子系统s3)。数据库子系统615类似于例如数据库子系统310。在该实施例中,数据库子系统615的得分r3基于数据库子系统615中损坏位置的百分比。数据库子系统615的评价过程R3涉及对数据库子系统615的查询以及响应于该查询而接收到的地图与目标地图的比较。数据库子系统615的输出是与地图相关联的地图数据。
在实施例中,照相机子系统605、LiDAR子系统610和数据库子系统615被识别为输入。即,它们提供数据作为由AV栈600的其它子系统(例如,下游子系统)用于进一步处理的输入。在其它实施例中,AV栈600包括比图6中描绘的更多或更少的输入数据。
AV栈600还包括视觉感知子系统620(其表示为s4)。视觉感知子系统620可以与感知系统302相同或相似。更具体地,视觉感知子系统620是感知子系统302或者是感知子系统302的元件。视觉感知子系统620使用由照相机605提供的图像数据作为输入。在该实施例中,视觉感知子系统620的得分r4是基于与视觉感知子系统620相关的平均精度(mAP)、属性的召回率和混淆矩阵中的一个或多个。对视觉感知子系统620的评价过程R4涉及对带注释的图像集合进行图像对象检测并将结果与目标或预先识别出的结果进行比较。视觉感知子系统620的输出是与(例如,表示)2D对象相关的数据(例如,对象的数量、对象的形状、对象的位置等)。
AV栈600还包括LiDAR语义网络子系统625(其表示为s5)。LiDAR语义网络子系统625与例如感知子系统302共享一个或多个功能或处理。更具体地,LiDAR语义网络子系统625是感知子系统302或者是感知子系统302的元件。LiDAR语义网络子系统625使用由LiDAR子系统610提供的点云数据作为输入。在本实施例中,LiDAR语义网络子系统625的得分r5是基于与LiDAR语义网络子系统相关的mAP、平均定向误差和混淆矩阵中的一个或多个。对LiDAR语义网络子系统625的评价过程R5是对带注释的点云集合进行语义处理(例如,3D语义分割)并将结果与目标或预先识别出的结果进行比较。LiDAR语义网络子系统625的输出包括与LiDAR数据或3D对象的分割掩模相关的数据(例如,对象的数量、对象的形状、对象的位置等)。
AV栈600还包括定位子系统630(其表示为s6)。定位子系统630与例如定位子系统308共享一个或多个功能或处理。定位子系统630使用由数据库子系统615提供的地图数据和由LiDAR语义网络子系统625提供的分割掩模作为输入。在该实施例中,定位子系统630的得分r6基于运载工具识别位置的平均距离误差。对定位子系统630的评价过程R6基于预先识别的点云、分割掩模和地图来估计运载工具的位置,并将结果与预先识别的点云的已知目标输出、分割掩模或地图进行比较。定位子系统630的输出是与AV的位置相关的数据。
AV栈600还包括跟踪子系统635(其表示为s7)。跟踪子系统635与例如感知子系统302共享一个或多个功能或处理。具体地,在一些实施例中,跟踪子系统635是感知子系统302或者是感知子系统302的元件。跟踪子系统635使用由数据库子系统615提供的地图数据、来自视觉感知子系统620的与2D对象相关的数据、来自LiDAR语义网络子系统625的与3D对象相关的数据作为输入。在一些实施例中,例如如图6中所示,跟踪子系统635还从定位子系统630接收与运载工具位置相关的数据作为输入数据。在该实施例中,跟踪子系统635的得分r7基于成功或清晰的多对象跟踪(MOT)处理或对象召回率。对跟踪子系统635的评价过程R7是在带注释的图像和点云的集合上运行跟踪子系统635,并将结果与已知目标进行比较。跟踪子系统635的输出是具有被识别对象(例如经分类的对象316)及其踪迹的地图数据。
尽管这里将跟踪子系统635描述为类似于感知子系统302或描述为感知子系统302的元件,但在另一实施例中,跟踪子系统635附加地或替代地类似于规划子系统304或是规划子系统304的元件。例如,在一个实施例中,感知子系统302将识别诸如经分类的对象316等的对象,而规划子系统304将如上所述识别对象的踪迹。
AV栈600还包括规划子系统640(其表示为s8)。规划子系统640与例如规划子系统304共享一个或多个功能或处理。规划子系统640使用具有由跟踪子系统635提供的识别对象及其踪迹的地图数据作为输入。在该实施例中,规划子系统640的得分r8基于合理的拥挤评级,如共同未决的美国专利申请17/009,656(于2020年9月1日提交的代理人案卷号46154-0251001的“Scoring Autonomous Vehicle Trajectories Using ReasonableCrowd Data”、于2020年11月18日递交的题为“使用合理人群数据对自主运载工具轨迹进行评分”的中国专利申请202011291225.9)所述,其整体内容通过引用并入本文。对规划子系统640的评价过程R8是在交通情景集上运行规划子系统640并获得预先识别规则的得分。
问题界定
在一些实施例中,问题界定可以基于以下要解决的两个问题之一或这两者或与以下要解决的两个问题之一或这两者相关:模型选择和属性优先次序。
模型选择涉及在特定子系统的多个实现之间进行选择,以使系统级性能最大化。作为示例,系统工程师可能希望在视觉感知子系统620的两个版本之间进行选择。针对这个示例,假设视觉感知子系统620的两个版本具有相同的混淆矩阵,但视觉感知子系统620的第一版本具有比视觉感知子系统的第二版本高百分之(%)1的mAP和低3%的属性的召回率。由这里的实施例识别的系统级性能是可用于解决mAP和属性的召回率间的权衡的一个标准。
在理想条件下(即实现可以在测试固定件中所包含的数据上运行任何子系统),模型选择和属性优先次序可由这里公开的实施例解决。其它实施例可能涉及不满足该假设的情形(实践中经常是这种情况)。如这里所使用的,属性优先次序涉及确定使系统级性能最大化的子系统的属性。
应当注意,这里描述的实施例以AV栈的架构为条件,并且在下游模块改变时需要重新运行(这可能经常发生)。在一个实施例中,因此将期望组织该过程,使得该过程在AV栈发生变化的任何时间运行。类似地,在收集数据和扩展测试固定件时,期望重新运行该过程。通常,期望带注释的数据充分覆盖操作设计域(AV被设计为适当操作的域)。
识别子系统对AV栈的影响的示例过程
识别子系统(或其扰动)对AV栈(例如,AV栈600)的影响的起点是子系统在其当前实现上的得分。这些操作点得分在本文中表示为当子系统或者子系统的一个或多个参数变化时,过程包括测量决策单元sN的得分如何变化。
作为示例,考虑子系统sj(j=1,...,N-1)。实现将首先构建子系统sj的扰动版本(其在这里表示为)。在实施例中,期望子系统的扰动很小,例如在子系统在连续发布(successive release)下通常变化的程度的量级上。由于在扰动变得太大的情况下分析可能失败,因此还期望能够用在扰动中线性的函数来近似系统级性能的变化。作为一个具体示例,对于诸如视觉感知子系统620等的子系统,每20次检测,扰动子系统下降,从而导致子系统具有较低的召回率。对受扰动输出运行评价过程Rj得到扰动得分
决策单元依赖于sj的输出,因此如果sj被扰动,则rN将改变。改变后的系统级性能在这里由表示,并且所得到的数据由表示。基于收集到的数据,然后针对运行性能附近的rj来估计rN的梯度(其在这里表示为)。对系统级性能影响最大的属性被标识为:
其中函数“argmax”标识产生rN中最大变化的属性。
基于如下拟合rN和rj之间的线性模型的数据来估计梯度:
rN(rj)=ωtrj+c [6]
与测试固定件相关的实际问题
上述过程基于如下的假设:一旦子系统sj被扰动,则评价过程可以在sj下游的所有子系统上重新运行。在真实世界的实现中,该假设经常被违反,这是因为相应的子系统常常与被开发以突出该子系统特定方面的测试固定件相关联。
图7描绘根据各种实施例的对规划子系统640的示例输入。具体地,图7描绘目标AV705(例如,其AV栈600正被评价的AV)。输入还包括许多其它运载工具710和行人715。输入还描绘了各种对象(诸如运载工具710和行人715等)的轨迹720。在实施例中,轨迹720是各种运载工具710和行人715的过去轨迹,而在另一实施例中,轨迹720附加地或替代地包括各种运载工具710和行人715的预测轨迹。
例如,在图7中,规划子系统640利用与地图、地点、过去轨迹(例如,踪迹)和其它智能体的预测轨迹有关的信息对交通场景的鸟瞰图(BEV)表示进行操作。因此,规划子系统640的相关测试固定件是BEV中的交通场景集,并且不需要传感器数据(例如,来自照相机子系统605、LiDAR子系统610等的数据)来生成输出。然而,运行跟踪子系统635需要传感器数据来生成输出。因此,在该示例中,可能无法直接确定特定跟踪子系统635如何影响规划子系统640的得分,这是因为不能仅使用规划子系统640的测试固定件来运行跟踪子系统635。
仿真子系统对下游子系统测试固定件的影响
在某些情况下,决策单元的测试固定件不包含可以在所有子系统上运行的数据。因此,期望修改上述理想化程序。这里在视觉感知子系统620→跟踪子系统635→规划子系统640的简单示例信号路径的上下文中讨论修改。使用上面讨论的术语,信号路径也表示为:
s4→s7→s8 [8]
首先,为了进一步讨论该特定示例,假设跟踪子系统635的模型选择和属性优先次序是要被扰动以识别这种扰动对规划子系统640的影响的属性。由于不能在规划子系统640的测试固定件上运行跟踪子系统635,因此该分析可以以两个方式完成。第一个方式是对跟踪子系统635对规划子系统640测试固定件的影响进行建模。第二个方式是用跟踪子系统635的模拟数据来扩充规划子系统640。这里的实施例一般涉及第一个方式。
如先前关于图7所描述和描绘的,规划子系统640的测试固定件是交通场景的BEV表示,其中包含地面真值踪迹(但不包含传感器数据)。使用地面真值踪迹,期望估计跟踪子系统635(或其扰动版本)产生的踪迹。为此,这里的实施例以这样的方式(例如,通过子采样或添加噪声)劣化地面真值:如果在地面真值和劣化的踪迹上运行R7,跟踪子系统将产生期望的得分r7。
通过重复模拟跟踪子系统635对规划子系统640的测试固定件的影响的过程、并且确定得分r8如何变化,可以收集与得分r7和得分r8之间的关系有关的数据,从而解决如上所述的跟踪子系统635的模型选择和属性优先次序的问题。
仿真子系统对下游子系统测试固定件的影响
作为替代示例,为了该部分的讨论,假设感兴趣的属性是视觉感知子系统620的模型选择和属性优先次序。如前一部分中所述,可以找到跟踪子系统635和规划子系统640(例如s7和s8)之间的关系。类似地,例如,使用等式5、6或7,可以找到视觉感知子系统620和跟踪子系统635(例如,s4和s7)之间的关系。结果,给定多个版本的s4(例如,视觉感知子系统620),可以确定不同版本的s4将导致系统级性能如何,这解决了模型选择。
为了解决属性优先次序,某些实施例使用链式法则。链式法则规定,可以将r8相对于r4的梯度写为:
其中Dr7(r4)表示雅可比矩阵。将注意的是,根据链式法则,不需要直接知道r8和r4之间的关系。而是,只需要知道当r7被扰动时r8如何变化,然后当r4被扰动时r7如何变化。
通过基于等式6中描述的拟合线性函数来估计梯度,实施例获得:
r8(r7)=ωTr7+c, [10]
r7(r4)=Wr4+c, [11]
其中W是维度n7×n4的矩阵(在图6的上下文中,n7等于2,并且n4等于3),ω和c是大小为n7的矢量,并且c是标量。结果,
r8(r4)=ωTWr4+ωTc+c [12]
于是相对于r4的梯度r8的估计是WTω。应注意,该估计是等式9的粗略估计,这是因为通常随机变量的乘积的期望值不等于各个随机变量的期望值的乘积。然后(如等式[7]所示的)argmax指示要优先考虑哪个属性。
系统扰动
上面的示例描述了基于子系统扰动的整个系统的分析。通常,存在可能扰动子系统的不同方式。
用于扰动子系统的第一技术是例如使用噪声或其它劣化技术使该子系统的输出劣化。例如,对于3D对象检测子系统(例如,视觉感知子系统620、LiDAR感知子系统620),可以通过添加高斯随机变量(例如,宽度为2米(m)的高斯随机变量)来扰动该子系统的所有预测的距离。
用于扰动子系统的另一技术是通过使用地面真值数据来补充子系统的输出来提高子系统的性能。例如,对于3D对象检测器(例如,视觉感知子系统620的一部分),可以通过添加一些先前针对子系统识别出的遗漏预测来提高子系统的召回率。在一个实施例中,期望确保以如下方式进行添加,即子系统的参数(例如每个距离曲线的召回率)保持具有相似的形式(例如,添加的遗漏预测不应该都在彼此相同的距离层内)。
另一技术是修改子系统的架构。例如,如果子系统是神经网络或基于神经网络,则一个示例实施例将神经网络修改为更深。附加地或替代地,示例实施例扩充神经网络的输入。例如,如果子系统对点云进行操作,则一个示例实施例包括将点添加到子系统使用的地面真值3D箱。
应当理解,上述实施例旨在作为非排他性示例。例如,其它实施例将包括两个或更多个上述技术、附加或替代技术等。
示例过程的总结
图8是示出根据各种实施例的与AV栈的建模相关的示例技术的图。更一般地,图8的技术是与对扰动AV栈的子系统对AV栈的整体性能的影响进行建模有关的上述各种要素的总结。
该技术包括在805处扰动包括多个子系统(诸如AV栈600等)的系统的第一子系统的第一属性。该技术还包括在810处确定系统的第二子系统的第二属性响应于第一属性的扰动的变化,其中第一子系统的至少一个输出被传递到第二子系统。
在一些实施例中,在这里描述的上下文中,第一子系统包括跟踪子系统635并且第二子系统包括规划子系统640。如上所述,在一些示例中,扰动跟踪子系统635的第一属性包括劣化跟踪器的地面真值,从而产生规划子系统640的得分r8中的变化。
该技术还包括在815处,基于第一属性和第二属性之间的第一相关性、以及第二属性和性能度量之间的第二相关性,确定系统响应于第一属性的扰动的性能度量值(例如,如关于等式6所描述)。
在先前描述中,已经参考许多具体细节描述了本发明的实施例,这些具体细节可因实现而不同。因此,说明书和附图应被视为说明性的,而非限制性意义的。本发明范围的唯一且排他的指示、以及申请人期望是本发明范围的内容是以发布权利要求书的具体形式从本申请发布的权利要求书的字面和等同范围,包括任何后续修正。本文中明确阐述的用于被包括在此类权利要求中的术语的任何定义应当以此类术语如在权利要求书中所使用的意义为准。另外,当在先前的说明书或所附权利要求书使用术语“还包括”时,该短语的下文可以是附加的步骤或实体、或先前所述的步骤或实体的子步骤/子实体。
相关申请的交叉引用
本申请要求于2020年10月25日提交的题为“METRIC BACK-PROPAGATION FORSUBSYSTEM PERFORMANCE EVALUATION”的美国临时专利申请63/105,329的优先权,其全部内容通过引用结合于此。
Claims (26)
1.一种用于确定自主运载工具的性能度量的方法,包括:
使用至少一个处理器,将适用于自主运载工具即AV中所包括的多个子系统中的第一子系统的一个或多个测试固定件中的第一测试固定件应用于所述第一子系统;
使用所述至少一个处理器,扰动所述第一子系统的属性;
获得所述第一子系统的第一输出,所述第一输出是由于所述第一子系统使用所述第一测试固定件的操作和被扰动的属性而生成的,所述第一输出指示所述第一子系统的性能;
使用所述至少一个处理器基于所述第一输出和所述第一测试固定件来计算与所述第一子系统的性能相对应的第一得分;
将所述第一子系统的第一输出作为输入提供给所述AV中所包括的多个子系统中的第二子系统,其中,第二测试固定件被应用于所述第二子系统,所述第二测试固定件不同于所述第一测试固定件;
获得所述第二子系统的第二输出,所述第二输出是由于所述第二子系统使用所述第二测试固定件的操作并且在所述第一子系统的属性扰动时生成的,所述第二输出指示所述第二子系统的性能;
使用所述至少一个处理器,基于所述第二输出和所述第二测试固定件来计算与所述第二子系统的性能相对应的第二得分;以及
使用所述至少一个处理器,至少基于所述第一得分和所述第二得分来确定所述AV的性能度量的值。
2.根据权利要求1所述的方法,其中,确定所述性能度量的值还包括:
使用被扰动的第一得分和第二得分的梯度来预测所述性能度量的值。
3.根据权利要求2所述的方法,其中,所述方法还包括在所述第二测试固定件上模拟所述第一子系统如何影响所述第二测试固定件中的数据。
4.根据权利要求2所述的方法,其中,使用所述性能度量与被扰动的第一得分和第二得分之间的线性模型来估计所述梯度。
5.根据权利要求4所述的方法,其中,通过将线性最小二乘公式应用于所述线性模型来预测所述性能度量的值。
6.根据权利要求1所述的方法,其中,所述性能度量的值是第一值,所述方法还包括:
将与所述第一测试固定件或所述第二测试固定件不同的第三测试固定件应用于所述第一子系统;
获得所述第一子系统的更新输出,所述更新输出是由于所述第一子系统使用所述第三测试固定件的操作和所述被扰动的属性而生成的,所述更新输出指示利用所述第三测试固定件的第一子系统的性能;
基于所述更新输出和所述第三测试固定件来计算与所述第一子系统的性能相对应的更新得分;以及
至少基于所述第一子系统的更新得分来确定所述性能度量的更新值。
7.根据权利要求6所述的方法,还包括:
将所述性能度量的所述第一值与所述更新值进行比较;
基于所述比较来确定所述第一值和所述更新值中的较大者;以及
在确定为所述第一值大于所述更新值时,针对所述第一子系统选择所述第一测试固定件。
8.根据权利要求1所述的方法,其中,所述性能度量是系统级目标函数。
9.根据权利要求1所述的方法,其中,所述多个子系统包括在所述AV的软件栈中,并且所述性能度量是测量所述AV的驾驶行为的质量的目标函数输出。
10.根据权利要求9所述的方法,其中,所述第一子系统是传感器子系统,并且所述第二子系统是用于从传感器接收传感器数据的感知子系统,所述方法还包括:
获得由所述感知子系统输出的对象检测,
将所述对象检测提供给所述AV中的多个子系统中所包括的跟踪子系统;
获得由所述跟踪子系统输出的对象踪迹;
将所述对象踪迹提供给规划器子系统;
使用处理器和应用于所述规划器子系统的测试固定件来确定所述性能度量。
11.根据权利要求10所述的方法,其中,通过劣化所述规划器子系统的测试固定件中的地面真值踪迹来模拟所述对象踪迹。
12.根据权利要求1所述的方法,其中,所述性能度量考虑所述第一子系统和所述第二子系统其中至少之一的故障率。
13.根据权利要求1所述的方法,其中,扰动所述第一子系统的属性包括以下至少之一:
将噪声应用于所述属性,
将高斯随机变量添加到所述属性,
使用地面真值数据补充所述第一子系统的第一输出,或者
修改所述第一子系统的配置。
14.根据权利要求1所述的方法,其中,所述属性是所述第一子系统的第一属性,并且所述性能度量的值是所述性能度量的第一值,所述方法还包括:
扰动所述第一子系统的不同于所述第一属性的第二属性;
获得所述第一子系统的更新的第一输出,所述更新的第一输出是由于所述第一子系统使用所述第一测试固定件的操作和被扰动的第二属性而生成的,所述更新的第一输出指示由于扰动所述第二属性而导致的所述第一子系统的更新性能;
基于所述更新的第一输出和所述第一测试固定件来计算与所述第一子系统的更新性能相对应的更新的第一得分;
将所述第一子系统的更新的第一输出作为输入提供给所述第二子系统;
获得所述第二子系统的更新的第二输出,所述更新的第二输出是由于所述第二子系统使用所述第二测试固定件的操作并且在扰动所述第一子系统的第二属性时生成的,所述更新的第二输出指示所述第二子系统的更新性能;
基于所述更新的第二输出和所述第二测试固定件来计算与所述第二子系统的更新性能相对应的更新的第二得分;以及
使用所述至少一个处理器,至少基于所述更新的第一得分和所述更新的第二得分来确定所述AV的性能度量的更新值。
15.根据权利要求14所述的方法,还包括:
将所述性能度量的第一值与所述更新值进行比较;
基于所述比较来确定所述第一值和所述更新值中的较大者;以及
在确定为所述第一值大于所述更新值时,针对所述第一子系统的性能,使所述第一属性优先于所述第二属性。
16.一种用于确定自主运载工具的性能度量的系统,包括:
至少一个处理器;
存储器,其存储有在由所述至少一个处理器执行时,使所述至少一个处理器进行操作的指令,所述操作包括:
将适用于自主运载工具即AV中所包括的多个子系统中的第一子系统的一个或多个测试固定件中的第一测试固定件应用于所述第一子系统;
扰动所述第一子系统的属性;
获得所述第一子系统的第一输出,所述第一输出是由于所述第一子系统使用所述第一测试固定件的操作和被扰动的属性而生成的,所述第一输出指示所述第一子系统的性能;
基于所述第一输出和所述第一测试固定件来计算与所述第一子系统的性能相对应的第一子系统得分;
将所述第一子系统的第一输出作为输入提供给所述AV中所包括的多个子系统中的第二子系统,其中,第二测试固定件被应用于所述第二子系统,所述第二测试固定件不同于所述第一测试固定件;
获得所述第二子系统的第二输出,所述第二输出是由于所述第二子系统使用所述第二测试固定件的操作并且在所述第一子系统的属性扰动时生成的,所述第二输出指示所述第二子系统的性能;
基于所述第二输出和所述第二测试固定件来计算与所述第二子系统的性能相对应的第二子系统得分;
至少基于第一得分和第二得分来确定所述AV的性能度量的值。
17.根据权利要求16所述的系统,其中,确定所述性能度量的值还包括:
使用被扰动的第一得分和第二得分的梯度来预测所述性能度量的值。
18.根据权利要求17所述的系统,其中,所述操作还包括在所述第二测试固定件上模拟所述第一子系统如何影响所述第二测试固定件中的数据。
19.根据权利要求17所述的系统,其中,所述梯度是使用所述性能度量与被扰动的第一得分和第二得分之间的线性模型来估计的。
20.根据权利要求19所述的系统,其中,所述性能度量的值是通过将线性最小二乘公式应用于所述线性模型来预测的。
21.根据权利要求16所述的系统,其中,所述性能度量的值是第一值,所述操作还包括:
将与所述第一测试固定件或所述第二测试固定件不同的第三测试固定件应用于所述第一子系统;
获得所述第一子系统的更新输出,所述更新输出是由于所述第一子系统使用所述第三测试固定件的操作和所述被扰动的属性而生成的,所述更新输出指示利用所述第三测试固定件的第一子系统的性能;
基于所述更新输出和所述第三测试固定件来计算与所述第一子系统的性能相对应的更新得分;以及
至少基于所述第一子系统的更新得分来确定所述性能度量的更新值。
22.根据权利要求16所述的系统,其中,所述性能度量是系统级目标函数。
23.根据权利要求16所述的系统,其中,所述多个子系统包括在所述AV的软件栈中,并且所述性能度量是测量所述AV的驾驶行为的质量的目标函数输出。
24.根据权利要求23所述的系统,其中,所述第一子系统是传感器子系统,并且所述第二子系统是用于从传感器接收传感器数据的感知子系统,所述操作还包括:
获得由所述感知子系统输出的对象检测,
将所述对象检测提供给所述AV中的多个子系统中所包括的跟踪子系统;
获得由所述跟踪子系统输出的对象踪迹;
将所述对象踪迹提供给规划器子系统;
使用处理器和应用于所述规划器子系统的测试固定件来确定所述性能度量。
25.根据权利要求24所述的系统,其中,所述对象踪迹是通过劣化所述规划器子系统的测试固定件中的地面真值踪迹来模拟的。
26.根据权利要求16所述的系统,其中,所述性能度量考虑所述第一子系统和所述第二子系统其中至少之一的故障率。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202063105329P | 2020-10-25 | 2020-10-25 | |
US63/105,329 | 2020-10-25 | ||
US17/180,649 US11321211B1 (en) | 2020-10-25 | 2021-02-19 | Metric back-propagation for subsystem performance evaluation |
US17/180,649 | 2021-02-19 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114510018A CN114510018A (zh) | 2022-05-17 |
CN114510018B true CN114510018B (zh) | 2023-03-28 |
Family
ID=76193587
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110895381.4A Active CN114510018B (zh) | 2020-10-25 | 2021-08-05 | 用于子系统性能评价的度量反向传播 |
Country Status (5)
Country | Link |
---|---|
US (1) | US11321211B1 (zh) |
KR (1) | KR102565573B1 (zh) |
CN (1) | CN114510018B (zh) |
DE (1) | DE102021124913A1 (zh) |
GB (1) | GB2600188B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10521255B2 (en) * | 2016-05-19 | 2019-12-31 | International Business Machines Corporation | Interface and interruption management |
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 |
CN114493094B (zh) * | 2021-12-15 | 2024-05-07 | 重庆师范大学 | 一种中小学劳动教育智慧评价系统 |
US20240069505A1 (en) * | 2022-08-31 | 2024-02-29 | Gm Cruise Holdings Llc | Simulating autonomous vehicle operations and outcomes for technical changes |
CN116402871B (zh) * | 2023-03-28 | 2024-05-10 | 苏州大学 | 一种基于场景平行要素的单目测距方法、系统及电子设备 |
Family Cites Families (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8725667B2 (en) * | 2008-03-08 | 2014-05-13 | Tokyo Electron Limited | Method and system for detection of tool performance degradation and mismatch |
WO2010014965A2 (en) * | 2008-07-31 | 2010-02-04 | Choicepoint Services, Inc. | Systems & methods of calculating and presenting automobile driving risks |
US9527515B2 (en) * | 2011-12-23 | 2016-12-27 | Zonar Systems, Inc. | Vehicle performance based on analysis of drive data |
JP6609369B2 (ja) * | 2016-03-17 | 2019-11-20 | 株式会社日立製作所 | 自動運転支援システム、および、自動運転支援方法 |
CN107543725B (zh) * | 2016-07-27 | 2018-08-03 | 北京百度网讯科技有限公司 | 一种无人车操控测试方法及装置 |
US10421460B2 (en) * | 2016-11-09 | 2019-09-24 | Baidu Usa Llc | Evaluation framework for decision making of autonomous driving vehicle |
US10074279B1 (en) * | 2017-03-07 | 2018-09-11 | Denso International America, Inc. | Inference-aware motion planning |
US10855927B2 (en) * | 2017-03-08 | 2020-12-01 | Samsung Electronics Co., Ltd. | Event detecting device including an event signal generator and an output signal generator |
WO2019023628A1 (en) * | 2017-07-27 | 2019-01-31 | Waymo Llc | NEURAL NETWORKS FOR VEHICLE TRACK PLANNING |
US20180024239A1 (en) * | 2017-09-25 | 2018-01-25 | GM Global Technology Operations LLC | Systems and methods for radar localization in autonomous vehicles |
US10739775B2 (en) | 2017-10-28 | 2020-08-11 | Tusimple, Inc. | System and method for real world autonomous vehicle trajectory simulation |
US10885240B2 (en) * | 2017-11-02 | 2021-01-05 | Uatc, Llc | Deterministic simulation framework for autonomous vehicle testing |
US20190146493A1 (en) * | 2017-11-14 | 2019-05-16 | GM Global Technology Operations LLC | Method And Apparatus For Autonomous System Performance And Benchmarking |
US10345811B2 (en) | 2017-11-14 | 2019-07-09 | GM Global Technology Operations LLC | Method and apparatus for scenario generation and parametric sweeps for the development and evaluation of autonomous driving systems |
US10877476B2 (en) | 2017-11-30 | 2020-12-29 | Tusimple, Inc. | Autonomous vehicle simulation system for analyzing motion planners |
US10726577B2 (en) * | 2018-01-12 | 2020-07-28 | Intel Corporation | Post-incident management for autonomous vehicles |
US20190235521A1 (en) * | 2018-02-01 | 2019-08-01 | GM Global Technology Operations LLC | System and method for end-to-end autonomous vehicle validation |
US10569773B2 (en) * | 2018-05-31 | 2020-02-25 | Nissan North America, Inc. | Predicting behaviors of oncoming vehicles |
US11427211B2 (en) * | 2018-06-18 | 2022-08-30 | Baidu Usa Llc | Methods for handling sensor failures in autonomous driving vehicles |
DE112019005149T5 (de) * | 2018-10-15 | 2021-07-01 | Nvidia Corporation | Verbesserte in-system-testabdeckung basierend auf detektieren von komponentendegradation |
CN117872795A (zh) * | 2019-02-06 | 2024-04-12 | 弗泰里克斯有限公司 | 电子仿真方法和系统 |
KR102158497B1 (ko) * | 2019-04-08 | 2020-09-22 | 도로교통공단 | 자율주행 평가시스템 |
US20210101619A1 (en) * | 2020-12-16 | 2021-04-08 | Mobileye Vision Technologies Ltd. | Safe and scalable model for culturally sensitive driving by automated vehicles |
-
2021
- 2021-02-19 US US17/180,649 patent/US11321211B1/en active Active
- 2021-04-23 GB GB2105796.3A patent/GB2600188B/en active Active
- 2021-04-27 KR KR1020210054349A patent/KR102565573B1/ko active IP Right Grant
- 2021-08-05 CN CN202110895381.4A patent/CN114510018B/zh active Active
- 2021-09-27 DE DE102021124913.9A patent/DE102021124913A1/de active Pending
Also Published As
Publication number | Publication date |
---|---|
GB2600188B (en) | 2024-07-31 |
KR102565573B1 (ko) | 2023-08-09 |
US20220129362A1 (en) | 2022-04-28 |
US11321211B1 (en) | 2022-05-03 |
DE102021124913A1 (de) | 2022-04-28 |
GB202105796D0 (en) | 2021-06-09 |
CN114510018A (zh) | 2022-05-17 |
KR20220054743A (ko) | 2022-05-03 |
GB2600188A (en) | 2022-04-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114510018B (zh) | 用于子系统性能评价的度量反向传播 | |
CN112783151A (zh) | 从预先计算的或动态生成的轨迹库的轨迹预测 | |
CN113196291A (zh) | 自动选择用于注释的数据样本 | |
US11568688B2 (en) | Simulation of autonomous vehicle to improve safety and reliability of autonomous vehicle | |
CN113196011A (zh) | 运动图构建和车道级路线规划 | |
CN113165668A (zh) | 利用机器学习使用运动规划来操作运载工具 | |
CN114812589A (zh) | 用于运载工具的方法、自主运载工具和存储介质 | |
US20210197805A1 (en) | Safety system for vehicle | |
US11887324B2 (en) | Cross-modality active learning for object detection | |
CN117083575A (zh) | 轨迹检查器 | |
CN112014859A (zh) | 估计速率分布 | |
CN114387322A (zh) | 用于运载工具的方法、运载工具和存储介质 | |
CN115079687A (zh) | 用于自主运载工具的系统、方法和存储介质 | |
CN115146523A (zh) | 选择用于评价自动运载工具的性能的测试情景 | |
CN114252066A (zh) | 运载工具、用于运载工具的方法以及存储介质 | |
CN113970924A (zh) | 用于运载工具的方法和系统 | |
CN114120687A (zh) | 条件运动预测 | |
CN114510020A (zh) | 用于运载工具的方法、自主运载工具和存储介质 | |
US12091016B2 (en) | Vehicle route modification to improve vehicle location information | |
CN114815799A (zh) | 运载工具、用于运载工具的方法和存储介质 | |
US20220357453A1 (en) | Lidar point cloud segmentation using box prediction | |
US20230221128A1 (en) | Graph Exploration for Rulebook Trajectory Generation | |
CN115220439A (zh) | 用于运载工具的系统和方法以及存储介质 | |
CN114518566A (zh) | 用于运载工具的方法和感知系统 | |
US11926342B2 (en) | Autonomous vehicle post-action explanation system |
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 |