CN117295647A - 具有统一的多传感器视图的传感器模拟 - Google Patents
具有统一的多传感器视图的传感器模拟 Download PDFInfo
- Publication number
- CN117295647A CN117295647A CN202280034685.4A CN202280034685A CN117295647A CN 117295647 A CN117295647 A CN 117295647A CN 202280034685 A CN202280034685 A CN 202280034685A CN 117295647 A CN117295647 A CN 117295647A
- Authority
- CN
- China
- Prior art keywords
- sensor
- view
- data
- dimensional view
- determining
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000004088 simulation Methods 0.000 title abstract description 293
- 238000000034 method Methods 0.000 claims abstract description 160
- 230000008569 process Effects 0.000 claims description 57
- 230000033001 locomotion Effects 0.000 claims description 38
- 238000005266 casting Methods 0.000 claims description 33
- 239000000463 material Substances 0.000 claims description 22
- 238000003860 storage Methods 0.000 claims description 17
- 238000009877 rendering Methods 0.000 abstract description 93
- 230000002123 temporal effect Effects 0.000 abstract description 23
- 238000004458 analytical method Methods 0.000 abstract description 6
- 238000010237 hybrid technique Methods 0.000 abstract 1
- 238000004422 calculation algorithm Methods 0.000 description 37
- 238000005070 sampling Methods 0.000 description 27
- 238000012545 processing Methods 0.000 description 23
- 230000000704 physical effect Effects 0.000 description 22
- 230000015654 memory Effects 0.000 description 21
- 238000004891 communication Methods 0.000 description 20
- 230000006870 function Effects 0.000 description 19
- 230000000007 visual effect Effects 0.000 description 17
- 239000003795 chemical substances by application Substances 0.000 description 13
- 238000002310 reflectometry Methods 0.000 description 13
- 238000012360 testing method Methods 0.000 description 12
- 238000010801 machine learning Methods 0.000 description 11
- 230000008859 change Effects 0.000 description 10
- 238000012805 post-processing Methods 0.000 description 9
- 238000013507 mapping Methods 0.000 description 8
- 238000007781 pre-processing Methods 0.000 description 8
- 238000013528 artificial neural network Methods 0.000 description 7
- 230000008447 perception Effects 0.000 description 7
- 238000005094 computer simulation Methods 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 238000005315 distribution function Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 230000003068 static effect Effects 0.000 description 4
- 238000003491 array Methods 0.000 description 3
- 238000013473 artificial intelligence Methods 0.000 description 3
- 230000000712 assembly Effects 0.000 description 3
- 238000000429 assembly Methods 0.000 description 3
- 238000003066 decision tree Methods 0.000 description 3
- 230000007613 environmental effect Effects 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 239000000203 mixture Substances 0.000 description 3
- 238000005457 optimization Methods 0.000 description 3
- 230000036961 partial effect Effects 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000004075 alteration Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000013527 convolutional neural network Methods 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 230000002708 enhancing effect Effects 0.000 description 2
- 238000011156 evaluation Methods 0.000 description 2
- 238000010348 incorporation Methods 0.000 description 2
- 230000000873 masking effect Effects 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 238000002156 mixing Methods 0.000 description 2
- 238000004806 packaging method and process Methods 0.000 description 2
- 238000010238 partial least squares regression Methods 0.000 description 2
- 238000000513 principal component analysis Methods 0.000 description 2
- 238000012628 principal component regression Methods 0.000 description 2
- 230000005855 radiation Effects 0.000 description 2
- 238000012706 support-vector machine Methods 0.000 description 2
- 241000237519 Bivalvia Species 0.000 description 1
- UFHFLCQGNIYNRP-UHFFFAOYSA-N Hydrogen Chemical compound [H][H] UFHFLCQGNIYNRP-UHFFFAOYSA-N 0.000 description 1
- 241001465754 Metazoa Species 0.000 description 1
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 238000007792 addition Methods 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 230000010267 cellular communication Effects 0.000 description 1
- 235000020639 clam Nutrition 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 238000002485 combustion reaction Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000001816 cooling Methods 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 230000002950 deficient Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 238000010304 firing Methods 0.000 description 1
- 238000009499 grossing Methods 0.000 description 1
- 229910052739 hydrogen Inorganic materials 0.000 description 1
- 239000001257 hydrogen Substances 0.000 description 1
- 238000005286 illumination Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 238000012417 linear regression Methods 0.000 description 1
- 238000007477 logistic regression Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 238000007637 random forest analysis Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000002829 reductive effect Effects 0.000 description 1
- 230000010076 replication Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 239000000725 suspension Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 238000002604 ultrasonography Methods 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
- 230000003936 working memory Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/10—Geometric effects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/10—Geometric effects
- G06T15/20—Perspective computation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/06—Ray-tracing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
-
- G—PHYSICS
- G07—CHECKING-DEVICES
- G07C—TIME 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/00—Registering or indicating the working of vehicles
- G07C5/08—Registering or indicating performance data other than driving, working, idle, or waiting time, with or without registering driving, working, idle or waiting time
- G07C5/0808—Diagnosing performance data
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Graphics (AREA)
- Geometry (AREA)
- Computing Systems (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Processing Or Creating Images (AREA)
- Control Of Driving Devices And Active Controlling Of Vehicle (AREA)
Abstract
一种传感器模拟***可以通过渲染三维模拟环境的二维视图来生成用于模拟的传感器数据。在各种示例中,传感器模拟***使用传感器依赖性数据来确定要在模拟期间的不同时间处重新渲染的特定视图。传感器模拟***还可以在二维视图的每个区域(例如,像素)处生成具有多传感器数据的统一视图,以供不同传感器类型的使用。在一些实现中,可以使用混合技术,其中使用光栅化来生成视图,之后使用射线追踪来将视图与特定传感器对准。还可以使用空间和时间的上采样技术,其包括对模拟对象的深度感知和速度感知分析,以提高视图分辨率并降低重新渲染视图的频率。
Description
相关申请的交叉引用
本专利申请要求于2021年5月14日提交、序列号为17/321,205、标题为“SENSORSIMULATION WITH UNIFIED MULTI SENSOR VIEWS”的美国专利申请的优先权,其全部内容通过引用并入本申请。
背景技术
经模拟的数据和模拟可用于测试和验证***的特性和功能,包括在现实世界中可能禁止测试的特性和功能(例如,由于安全问题、时间限制、可重复性等)。例如,自动驾驶车辆和其他移动车辆可以使用驾驶模拟来测试和提高乘客安全、车辆决策、传感器数据分析和路线优化。然而,准确反映现实世界场景的驾驶模拟可能难以创建,因为用于创建此类模拟的数据可能有噪声、不一致和/或不完整。此外,驾驶模拟可能涉及在实时模拟的环境中交互的多个不同***和组件,这可能在资源和计算上是昂贵的。
附图说明
参考附图来描述详细说明。在附图中,附图标记的最左边的数字标识附图标记首次出现的附图。在不同的附图中使用相同的附图标记表示相似或相同的组件或特征。
图1示出了根据本公开的一个或多个实施方式的生成和使用模拟环境的视图以向模拟传感器提供数据的示例过程。
图2示出了根据本公开的一个或多个实施方式的生成和使用模拟环境的视图以向模拟传感器提供数据的示例***。
图3示出了根据本公开的一个或多个实施方式的模拟环境的统一的多传感器视图的示例。
图4A-图4C示出了根据本公开的一个或多个实施方式的模拟环境的示例,该模拟环境包括具有与一个或多个经渲染的视图相关联的模拟传感器的模拟车辆。
图5示出了根据本公开的一个或多个实施方式的另一示例模拟环境,该模拟环境包括具有旋转传感器和渲染视图的移动模拟的车辆。
图6A和图6B示出了根据本公开的一个或多个实施方式的模拟环境中的基于深度的射线投射技术的示例。
图7示出了根据本公开的一个或多个实施方式的用于模拟环境中的传感器的示例深度感知的空间上采样技术。
图8示出了根据本公开的一个或多个实施方式的用于使用GPU生成模拟环境的视图的示例技术。
图9描绘了用于实现本文描述的各种技术的示例架构的框图。
图10描绘了根据本公开的一个或多个实施方式的用于生成和使用模拟环境的多传感器视图以向模拟传感器提供数据的示例过程。
图11描绘了根据本公开的一个或多个实施方式的用于生成和重投影模拟环境的视图以向模拟传感器提供数据的示例过程。
图12描绘了根据本公开的一个或多个实施方式的深度感知的空间上采样的示例过程,其中使用线性插值和/或采样来增强模拟环境的2D视图。
图13描绘了根据本公开的一个或多个实施方式的对象感知和速度感知的时间上采样的示例过程,其中使用线性插值和/或采样来生成时间间隔之间的传感器数据。
图14描绘了根据本公开的一个或多个实施方式的使用传感器依赖性数据、视图数据和GPU调度数据来确定用于在模拟环境中渲染的视图的示例过程。
具体实施方式
本公开涉及用于生成传感器数据并将传感器数据提供给在基于软件的模拟内操作的传感器的技术。传感器模拟***(也可以被称为传感器引擎)可以基于三维(3D)模拟环境来渲染二维(2D)视图,并且可以使用2D视图,以在模拟中基于模拟传感器的传感器位置、取向和/或视场来确定模拟传感器的传感器数据。本文描述的各种示例涉及执行自动驾驶车辆的驾驶模拟,其中模拟自动驾驶车辆包括:安装在车辆上不同位置处的多个不同的模拟传感器,其中模拟传感器被配置为检测并处理来自模拟环境的不同类型的输入数据。当模拟车辆穿过模拟环境时,模拟传感器可以基于车辆的移动和/或独立于车辆而移动。模拟环境中的模拟代理和其他动态对象也可以相对于模拟车辆和传感器移动。本文描述的各种技术涉及生成准确、高效和高分辨率的传感器数据,以及在实时或离线驾驶模拟期间将传感器数据作为输入提供给模拟车辆的模拟传感器。
驾驶模拟的目的可以是测试和验证模拟车辆对各种不同模拟场景的响应,以便以后在现实世界中使用。例如,驾驶模拟可以使用各种模拟环境和模拟对象或模拟代理来对正常或异常驾驶状况和/或车辆状况进行建模。驾驶模拟可以对各种不同的交通状况、环境状况、道路障碍物、事故等进行建模,以测试和验证乘客安全、车辆路线、决策、效率等。某些驾驶模拟可以测试模拟车辆对车辆上有缺陷和/或故障的传感器的响应。一些驾驶模拟可用于测试模拟车辆的各个组件或***(例如,感知组件、决策或规划组件等)。相同或不同的驾驶模拟可以测试模拟车辆作为一个整体,包括车辆的各个组件或***之间的相互作用。模拟可能包括现实世界中很少发生的场景,例如与其他对象的碰撞、违反交通规则等,但仍然需要测试来验证安全操作,以及提供一种机制来持续测试控制算法的变化,保持其他因素不变。
在各种驾驶模拟中,模拟车辆可以与模拟环境中的附加模拟代理和/或其他对象交互。在这样的模拟中,环境中的模拟代理和/或对象可以包括基于人工智能和/或可以对模拟车辆的动作做出反应的其他算法控制的基于软件的对象,同时模拟车辆也会对模拟代理/对象以及模拟环境的状况做出反应。驾驶模拟通过在模拟环境中同时执行所有模拟组件(例如模拟车辆、对象和环境)并支持模拟组件之间的通信和交互,以为现实世界驾驶场景提供高度真实的测试和验证。
然而,在虚拟驾驶模拟期间生成真实、准确且高分辨率的输入数据并向传感器提供该真实、准确且高分辨率的输入数据可能会占用大量资源且计算成本高昂。这些限制可能排除可以在某些计算环境中执行的模拟场景的数量,可能限制可以实际模拟的不同传感器的数量,和/或可能阻止某些模拟实时执行。例如,当执行虚拟驾驶模拟环境时,模拟***可以在模拟内针对每个模拟传感器连续地生成并提供单独的传感器数据。每个传感器数据生成可能需要渲染新的视图,这可能涉及传感器引擎和/或模拟***的大量计算资源。
为了解决用于基于3D模拟环境生成和提供传感器数据的传统***的限制,本文描述的某些技术涉及使用传感器依赖性数据来确定要在模拟期间的不同时间被渲染的特定视图(其也可以称为图像视图)。本文描述的附加技术涉及生成“统一的”二维视图,其包括与视图的每个区域(例如,像素)相关联的多种类型的传感器数据(例如,图像数据、深度数据、激光雷达数据、雷达数据等),其可用于为模拟环境中不同类型的传感器提供传感器数据。附加技术涉及混合***,该混合***包括协同运行以执行驾驶模拟(或其他模拟)的GPU和CPU,其中GPU用于渲染模拟环境的2D视图(例如,经由光栅化),以及用于执行射线追踪以在空间和/或时间上对特定模拟传感器位置、角度和视场的视图进行对准和/或上采样,而CPU用于确定由GPU渲染的视图,并提供额外的传感器数据后处理和其他模拟计算功能。本文描述的其他技术涉及执行空间和/或时间的上采样,包括基于模拟内的深度数据、对象标识符和/或速度的上采样,以提高视图分辨率,并降低重新渲染视图的频率。如下面的各种示例中所描述的,本文所描述的技术和组件可以单独地或组合地实现,以更高效且准确地向在模拟环境中执行的传感器提供真实且高分辨率的输入数据。
图1示出了生成和使用模拟环境的2D视图以及使用2D视图来生成传感器数据以作为输入提供给模拟环境内的模拟传感器的示例过程100。在各种示例中,示例过程100的一些或所有操作可以由计算设备执行,其被配置为驾驶模拟***(例如,虚拟驾驶模拟器)、其他类型的模拟***和/或被配置为生成传感器输入数据和向模拟***提供传感器输入数据的传感器引擎。参考驾驶模拟来描述过程100和本文的各种其他示例,在驾驶模拟期间,具有一个或多个传感器的模拟车辆穿过模拟环境。在模拟期间,向车辆传感器提供表示模拟环境和其中的模拟代理/对象的传感器输入数据,并且模拟车辆通过控制车辆来响应传感器输入数据。然而,从本公开的上下文可以理解,本文描述的技术不限于驾驶模拟***,并且可以以类似或相同的方式在其他***内实现,包括但不限于视频游戏***、虚拟现实***、非驾驶模拟***(例如,飞行模拟器)和/或在物理(例如,非模拟)环境中运行的图像/传感器数据处理***。
在操作102处,传感器引擎基于在模拟中操作的模拟传感器的传感器依赖性来确定要在模拟期间的特定时间被渲染的3D模拟环境的一个或多个2D视图。下面更详细地描述的传感器引擎可以包括与驾驶模拟***相关联的一个或多个计算设备(例如,计算设备202和/或932)。在一些情况下,模拟传感器可以指在驾驶模拟中执行的模拟车辆的传感器***。模拟传感器可以包括被配置为检测或接收来自模拟环境的传感器数据的各种不同类型的传感器***(例如,相机、激光雷达传感器、雷达传感器等)。在操作102中,传感器引擎可为模拟环境中的每个传感器检索一组传感器依赖性数据,该传感器依赖性数据识别相对于模拟环境的要提供给传感器的输入数据。例如,传感器依赖性数据可以包括在模拟环境内传感器的位置、取向角度和/或视场。这些因素可以确定哪些2D视图可以以及哪些视图不能用来生成传感器数据以作为输入提供给传感器。另外,传感器依赖性数据可以包括传感器被配置为检测的数据类型,并且可以包括模拟环境内的对象的物理属性的任意组合。例如,图像传感器(例如,相机)可以被配置为检测来自模拟环境的光和颜色数据,雷达传感器可以被配置为检测对象距传感器的距离(从传感器的角度来看,可以被称为深度)和/或对象速度数据,并且激光雷达传感器可以被配置为检测数据、材料属性(例如,材料类型/成分、反射率、粗糙度等)等。其他类型的传感器可以被配置为检测对象(或由对象发出)的附加或替代物理特性,例如热、亮度、声音、移动、风、湿度等。
与传感器依赖性数据一起,操作102中的传感器引擎可以检索与当前或先前在模拟内渲染的2D视图相关的数据。与2D视图相关的数据可以包括3D模拟环境内2D视图的“位置”,例如2D视图的焦点和/或角度或取向,以及存储在2D视图中的数据类型(例如,传感器数据的类型,例如光、颜色、深度、对象ID、速度、材料数据等)。另外,如框104中所示,在执行模拟期间,传感器可以被映射到视图或以其他方式与视图相关联,并且在操作102中检索到的视图数据可以包括识别哪些视图被使用(或可以被使用)以向各种传感器提供输入数据的数据。
在操作102中,传感器引擎还可以在当前模拟的上下文内检索并分析各种定时数据和/或模拟对象的移动。例如,相关定时数据可以包括在模拟中操作的每个传感器的传感器执行速率(其也可以被称为采样率或发射速率),以及与为模拟生成的不同2D视图相关联的渲染时间/速率。传感器引擎还可以确定可用GPU或用于渲染2D视图的其他处理器的容量(例如,内核、GPU速度、存储、当前渲染积压、延迟、网络速度)和/或确定可用CPU或其他处理器的容量,用于执行与由GPU渲染视图和生成传感器数据相关的预处理和后处理操作。另外,传感器引擎可以在操作102中接收对象移动数据,其包括模拟车辆行进的速度和取向,以及模拟中的其他模拟代理/对象的速度和取向。
基于操作102中的传感器依赖性数据和/或其他模拟数据,传感器引擎可以应用一个或多个基于启发式的算法和/或机器学习模型来确定将在模拟期间的各个不同时间应该渲染哪些视图。在一些示例中,传感器引擎可以在操作102中确定要渲染的单个视图,或者可以基于传感器依赖性、视图数据、映射数据等,来确定现有视图和/或要创建的新视图的优先级列表。由传感器引擎选择的视图可以被提供给GPU以用于渲染,之后更新的渲染视图可以被合并到模拟***中,并被模拟传感器用作输入数据。
作为示例,在操作102中,传感器引擎可以应用算法,该算法选择用于渲染(或更新/重新渲染)现有2D视图,该现有2D视图为最大数量的传感器和/或最高优先级传感器提供传感器输入数据。作为另一示例,传感器引擎的算法可以选择以用于重新渲染为至少一个传感器提供传感器输入数据的现有2D视图,并且可以按照最早生成的(例如,最陈旧的)当前视图的顺序对2D视图进行优先级排序。在其他示例中,传感器引擎的算法可以旋转现有2D视图的重新渲染,同时基于映射到视图的传感器的数量、模拟车辆朝向或远离每个视图的移动取向、每个视图内的模拟代理和/或其他动态对象的数量等,来跳过或加权视图。可以理解的是,这些示例算法可以由传感器引擎单独地或以任何组合的方式应用,并且可以基于与本文描述的传感器和/或视图相关联的任何附加因素来修改。
另外,在一些示例中,操作102中的传感器引擎可以对模拟执行基于时间的分析,以确定当视图被投影以集成到模拟环境中时,被调度以用于渲染(例如,初始渲染或重新渲染以更新视图)的视图是否将具有相同的值或相关性。例如,传感器引擎可以确定用于生成视图的预期渲染延迟(例如,GPU渲染时间加上预处理和后处理时间),并且可以基于模拟车辆和/或传感器的移动来确定哪些传感器将在视图被渲染后使用更新的视图。
在操作106处,传感器引擎可以生成模拟3D环境的统一的2D视图,包括与模拟环境的不同物理属性相对应的多个不同类型的传感器数据。在一些示例中,所生成的2D视图可以对应于在操作102中由传感器引擎选择的视图。如本文所使用的,“统一的”2D视图可以指包括与2D视图的每个区域(例如,像素)相关联的多种类型的传感器数据的模拟环境的2D视图。例如,操作106可以包括生成2D视图(例如,框108),其包括用于视图的每个像素的图像数据(例如,光和颜色数据)、深度数据、对象标识符、速度数据、材料数据等。在一些示例中,传感器引擎可以使用在GPU上初始化光栅化过程以生成视觉图像数据和深度数据,并且可以访问和分析模拟环境内的模拟对象数据,以确定对象标识符、速度、材料数据、反射率、粗糙度等。对于统一的2D视图内的每个离散区域(例如,像素或其他预定区域),传感器引擎可以生成能够存储该区域的多传感器数据的阵列、数据结构或其他存储配置。在一些示例中,统一的2D视图可以被存储为多层数据结构,其中不同的属性(例如,物理特性)被存储在该结构的不同层中。
在操作110处,传感器引擎可以重投影在操作106中生成的2D视图,以将2D视图与特定传感器空间地对准。例如,传感器引擎可以确定,对于模拟内的特定传感器,传感器的位置和/或取向角与传感器接收输入数据的2D视图的焦点和/或取向角不对应。操作110可以包括最初确定2D视图是否与其对应的传感器对准,并且如果传感器在2D视图的空间和/或时间阈值内对准,则在一些示例中可能不需要重投影。然而,因为车辆上不同位置处的多个传感器可以被映射到相同的2D视图,所以在一些情况下,传感器引擎可以生成特定于映射到共享视图的传感器中的至少一个的共享2D视图的重投影。
在一些示例中,在操作110中,传感器引擎可以使用射线投射和/或射线追踪技术来生成针对特定传感器的2D视图的重投影。例如,在操作106中对2D视图和深度缓存器进行光栅化之后,传感器引擎可以将射线从模拟环境内的传感器的位置投射到2D视图,其可以在射线交点处与2D视图相交。在投射射线之后,传感器引擎可以将射线行进应用于与2D视图相关联的深度数据(例如,深度缓存字段)以确定射线交点处的深度值。在某些情况下,传感器引擎可以在模拟期间基于两个不同时间处传感器的不同位置来投射射线,以确定深度数据内的射线交点。传感器引擎可以从与深度数据的交点投射一个或多个辅助射线,以计算可用于在模拟中模拟各种视觉效果的阴影和遮蔽信息。在一些实现中也可以使用递归射线投射。
操作110中重投影视图可以包括:基于存储在统一的2D视图中的属性/物理特性来生成点云和/或生成图像。例如,某些类型的传感器(例如,激光雷达、雷达等)可以被配置为从传感器的角度接收环境的点云表示112,而其他类型的传感器(例如,相机)可以被配置为接收图像数据。因此,操作110中的传感器引擎可以确定2D视图被重投影的模拟传感器的时间,并且重投影可以包括:生成基于统一的2D视图的激光雷达点云(例如,对于激光雷达传感器)、生成基于统一的2D视图的雷达点云(例如,对于雷达传感器)、生成2D图像视图(例如,对于相机传感器)等。在一些实现中,对于某些传感器类型可以跳过操作110中的重投影。例如,当传感器是相机时,传感器引擎可能不会生成图像重投影,但可以使用2D视图的光栅化图像以用于图像传感器输入数据。
如上所述,在操作106中,射线追踪/射线投射可用于重投影2D视图。例如,射线追踪可用于生成点云,该点云在模拟期间在时间点上空间对准模拟传感器和2D视图。此外,在执行驾驶模拟期间,模拟传感器可以基于车辆运动而移动和/或可以独立于车辆而移动(例如,旋转相机、激光雷达或雷达传感器)。传感器引擎可以被配置为在生成2D视图之后,基于在该时间间隔处传感器的更新的位置和/或方位,以周期性时间间隔投射射线。使用在每个时间间隔投射的射线,传感器引擎可以生成2D视图的重投影(例如,点云和/或图像)以重新对准2D视图以对应于更新的传感器位置和角度。为了执行射线投射,传感器引擎可以确定在各个时间间隔处模拟车辆的姿态,并且可以将来自先前时间间隔的姿态插值到当前车辆姿态。传感器引擎还可以确定模拟车辆传感器的更新状态,包括任何在先前时间间隔和当前状态之间传感器的移动(例如,旋转)。
在操作114,传感器引擎可以对所生成的2D视图和/或所生成的视图的重投影执行空间和/或时间的上采样技术,以提供用于模拟传感器的传感器数据。本文描述的上采样技术可以用于通过增强和/或增加2D视图的渲染分辨率,来增强2D视图的各个方面,包括视觉图像数据和/或非视觉传感器数据。可以使用各种类型的上采样技术和算法,其可以由GPU以各种实现方式来执行。与某些传统的上采样技术相反,操作114中的传感器引擎可以基于模拟内的深度数据、对象标识符和/或对象速度来确定是否应用混合和/或线性插值方法。
在一些示例中,传感器引擎可以应用深度感知图像空间上采样技术。框116描绘了对应于框108中所示的2D视图的深度数据118的示例。在该示例中,深度数据的不同部分可以表示环境的点云和/或图像表示内的不同对象。深度数据的不同部分可以对应于重投影中表示的不同对象。点云或图像表示的背景中的对象可以被分配更少的像素,并且可以以比视图前景中的其他对象更低的分辨率来被渲染。对于空间上采样以提高对象的分辨率,传感器引擎可以执行深度感知的空间上采样技术。例如,传感器引擎可以将射线投射到低分辨率对象的边界框中,并且可以确定深度数据内的射线交点。可以从深度数据中检索一组相邻深度值并对该组相邻深度值进行分析,以确定射线交点是否位于相对平坦的表面上。
由传感器引擎执行的附加上采样技术可以包括移动感知的时间上采样,其基于模拟车辆、传感器和/或在(例如,点云或图像)2D视图的重投影中描绘的其他模拟对象的移动。例如,传感器引擎可以在模拟期间在两个不同时间从传感器位置投射射线120和122。在模拟中的第一时间(例如,t1)和第二时间(例如,t2),传感器引擎可以从传感器的位置并且以传感器的取向投射射线。在时间t1和t2之间,模拟车辆可以在其穿过模拟环境时改变位置和取向,和/或传感器可以相对于车辆移动(例如,旋转)。模拟中的其他动态对象也可以在模拟环境中在时间t1和t2之间移动。在这些示例中,传感器引擎可以分析与射线交点相关联的深度、对象标识符和/或速度,以确定是否执行线性插值或不同的上采样技术。
在操作124处,传感器引擎将传感器数据作为输入提供给在模拟***内执行的模拟传感器(例如,驾驶模拟内的模拟车辆传感器)。在操作106中生成的2D视图的在操作110中生成的重投影,可以用作提供给模拟车辆传感器的传感器数据。在各种示例中,重投影可以包括或可以不包括基于在操作114中执行的空间和/或时间上采样技术的修改。
如图1和各种示例所示,本文描述的技术提供了用于生成传感器数据、渲染模拟环境的视图、以及执行驾驶模拟以及其他类型的模拟的改进和技术优势。例如,生成和使用多传感器统一的2D视图(包括基于GPU的光栅化,然后进行重投影和/或上采样)可提供更高效的实时模拟性能,这提高了用于视图渲染的速度并降低GPU延迟。这些技术可用于有效地将传感器与视图解耦,从而在模拟期间总体上需要生成更少的视图,同时还提供具有改进的空间和/或时间对准和/或上采样的更高质量的传感器输入数据。另外,本文描述的技术支持GPU渲染速率和/或视图分辨率的动态重新配置,以符合分辨率、抖动等的模拟要求,这取决于模拟期间观察到的GPU容量和延迟。通过更有效地管理GPU资源以进行渲染和更新视图,这些技术还提供了执行实时模拟的优势,其中包括额外数量的传感器和/或具有更高分辨率或发射速率的传感器。
图2描绘了示例***200,其包括一个或多个计算设备202和组件,其被配置为生成模拟环境的2D视图,并且基于2D视图生成传感器输入数据,以提供给在模拟内操作的模拟传感器。在该示例中,计算设备202A和202B(其可以单独地或统称为计算设备202)可以被实现为传感器引擎,其包括组件,被配置为监测在驾驶模拟器或其他模拟***上执行的模拟,并且生成传感器数据作为输入数据提供给模拟传感器。在各种示例中,计算设备202接收与当前在一个或多个模拟***(例如,驾驶模拟***234)上执行的模拟有关的传感器依赖性数据204和模拟视图数据206。如该示例中所示,传感器依赖性数据204对于模拟内的不同传感器(例如,传感器208和传感器210)可以是不同的,并且可以包括数据,例如(但不限于)在模拟环境内传感器的位置、传感器的取向、传感器的视场、传感器配置为检测的数据类型,以及传感器执行时间/速率。某些传感器数据(例如,传感器位置、取向、当前操作状态和/或特性)可以在模拟过程期间改变,并且因此用于这种传感器的传感器依赖性数据204也可以在模拟期间改变。
计算设备202还可以接收与当前在模拟内渲染的多个不同2D视图(例如,由附图标记212指示的视图1和由附图标记214指示的视图2)相关联的模拟视图数据206。模拟视图数据206可以包括(但不限于)视图的位置(例如,焦点)、视图的取向(例如,角度)、为视图的离散区域(例如,像素)存储的数据类型、与视图关联的渲染时间/速率、分辨率和/或视图的边界。
与传感器依赖性数据204和模拟视图数据206一起,计算设备202可以被配置为存储和/或检索GPU操作数据,例如渲染/处理能力和延迟,其可以用于确定和优化模拟期间的视图渲染速率。计算设备202还可以监测由驾驶模拟***234执行的一个或多个模拟,包括确定模拟环境以及模拟内的静态和动态对象的特性。如本文的各种示例中所描述的,模拟中的代理和对象的数量、类型、位置、速度和其他特性可以由计算设备202的各种组件使用,以在不同时间确定和调度视图的渲染,更新视图并将视图与传感器对准,并执行空间和/或时间上采样以提高基于视图提供的传感器数据的质量。
在也可被称为传感器引擎或传感器模拟***的计算设备202内,视图选择器组件216可被配置为确定要在模拟期间在不同时间渲染模拟环境的哪些2D视图。如该示例中所示,视图选择器组件216可以在计算设备202内的CPU 218上执行。如上面参考操作102所述,视图选择器组件216可以接收并分析传感器依赖性数据204、模拟视图数据206和/或各种附加的模拟相关数据(例如,GPU容量和延迟数据、模拟车辆状态、模拟代理/对象状态等)。使用这些数据,视图选择器组件216可以应用基于启发式的算法和/或机器学习模型来确定在模拟期间啊各个不同时间要渲染哪些视图。
在确定要在模拟期间的特定时间渲染的2D视图之后,视图选择器组件216可以向GPU输入队列220提供识别要被渲染的视图(和/或请求的视图渲染输出时间)的数据。在一些示例中,当向GPU输入队列220提供所请求的视图时,计算设备202还可以将与该视图相关的一个或多个线程/过程置于非活动状态(例如,睡眠),以在接收到所请求的视图已经由GPU 224渲染的指示时被唤醒。例如,计算设备202可以实现一个或多个GPU/GPU栅栏和/或GPU/CPU栅栏以通过本文描述的处理管线控制渲染的视图的流。
当所请求的视图被放入GPU输入队列220中时,视图生成器组件222可以检索与要生成的视图相关联的数据,例如用于要被渲染的视图的模拟视图数据206、模拟车辆(和/或传感器)的当前位置,以及模拟环境和环境内其他模拟代理/对象的当前状态。视图生成器组件222可以向GPU 224提供数据,GPU 224可以被配置为渲染所请求的视图。在一些示例中,GPU 224可以执行一个或多个光栅化过程以渲染所请求的2D视图,包括2D图像数据视图、2D深度视图、以及可以作为层组合成统一的2D视图的一个或多个其他2D视图,其包括2D视图的每个像素或其他区域的视觉数据、深度数据和/或各种附加数据(例如,对象标识符、速度、材料特性等)。
在生成3D模拟环境的2D视图之后,重投影组件226可以被配置为使用GPU 224来生成与在模拟中操作的特定模拟传感器在空间和/或时间上对准的重投影(例如,修改的2D视图)。在一些情况下,重投影组件226可以执行上面参考操作110描述的一些或全部操作。例如,重投影组件226可以使用射线投射和/或射线跟踪,通过将射线从模拟环境中的传感器位置投射到2D视图,以确定射线交点来生成所渲染的2D视图的重投影。与射线交点相关联的视觉和/或深度数据可用于对准2D视图、计算阴影和遮蔽信息、以及模拟各种视觉效果。另外,取决于生成重投影的模拟传感器的类型,重投影组件226可以生成点云和/或2D视图的视觉表示。例如,对于被配置为接收点云作为传感器输入数据的激光雷达或雷达模拟传感器,重投影组件226可以生成点云。对于被配置为接收光和/或视觉输入数据的相机和其他模拟传感器,重投影组件226可以生成2D图像视图表示。
上采样组件228可以被配置为使用GPU 224对由重投影组件226生成的2D视图的重投影表示执行空间和/或时间上采样技术。因为可以对统一的2D视图的重投影表示执行上采样技术,所以上采样组件228可以被配置为对图像和/或点云表示执行本文描述的空间和/或时间上采样技术。如下文更详细描述的,空间上采样可以增强和/或增加基于2D视图提供给模拟传感器的传感器数据的分辨率。例如,如下所述,空间上采样技术可以确定与视图重投影的区域/像素之间的射线交点相关联的传感器数据值。当确定采样提供中间位置处的传感器数据的更准确表示时,空间上的中间传感器数据值(例如,与统一的2D视图中的像素之间的位置相对应的传感器数据值)可以使用基于周围像素的传感器数据值和/或基于来自附近像素之一的采样的插值来确定。
相反,时间上采样可用于生成传感器数据,该传感器数据更准确地表示在渲染和/或重投影视图的离散时间之前或之后的模拟中不同时间的模拟环境。例如,在模拟期间,传感器引擎可以在第一模拟时间生成视图的第一渲染并且在第二模拟时间生成视图的第二更新渲染。可以分别在第一和第二模拟时间针对特定模拟传感器重投影两个渲染视图。然而,模拟传感器可以以比第一和第二模拟时间更高的频率(或更高的速率)执行(或触发),在此期间它接收并处理传感器输入数据,或者可能不与视图的生成和重投影同步执行。在这样的示例中,上采样组件228可以执行时间上采样以确定在第一模拟时间与第二模拟时间之间的时间提供给模拟传感器的传感器数据。如下文更详细描述的,在一些情况下,上采样组件228可以基于第一和第二模拟时间处的视图重投影进行内插,以确定第一和第二模拟时间之间的中间模拟时间的传感器数据。在其他情况下,当确定采样提供中间时间的传感器数据的更准确表示时,上采样组件228可以从第一模拟时间的视图重投影或第二模拟时间的视图重投影进行采样。
在一些情况下,上采样组件228可以执行上面参考操作114描述的操作中的一些或全部。例如,上采样组件228可以执行深度感知的和/或使用来自统一的2D视图的附加数据,例如对象标识符、速度数据、材料数据等的空间和/或时间上采样,以确定要应用于2D视图的特定上采样技术。例如,使用低分辨率对象和/或移动对象上的射线投射,上采样组件228可以对相对平坦的表面上或与2D视图中的相邻区域相同的对象上的射线交点应用线性插值。相反,其他技术(例如,采样)可以应用于不在相对平坦的表面上和/或不在与其相邻区域相同的对象上的射线交点。
在使用GPU 224生成渲染视图、生成视图的传感器特定重投影和/或对重投影视图执行上采样之后,计算设备202可以将输出视图提供给GPU输出队列230。当渲染视图被放入GPU输出队列230中时,计算设备202可以初始化一个或多个后处理组件以检索并提供渲染视图数据以用作模拟传感器的输入数据。例如,传感器数据转换器组件232可以被配置为从GPU输出队列230检索图像和/或点云表示,将图像/点表示转换成与模拟传感器相关联的消息传送格式,并将数据传输到驾驶模拟***234。当驾驶模拟***234接收到传感器数据时,可以将该传感器数据作为传感器输入提供给在驾驶模拟内执行的模拟自动驾驶车辆的一个或多个传感器。在一些示例中,传感器引擎可以使用单独的线程来将视图/传感器数据生成任务推送到GPU输入队列220上,并且使用附加的单独的线程从GPU输出队列230拉出传感器数据(例如,图像、点云等)。
如该示例中所示,计算设备202可以被实现为在单独的计算环境内和/或在单独的网络上操作的单独的计算设备202A和202B。在其他示例中,计算设备202可以被集成到与模拟***相关联的单个计算设备或服务器中。在一些实现中,CPU 218和GPU 224的使用可以被协调和管理,使得GPU 224被配置为执行光栅化以生成渲染的视图、执行射线追踪/射线投射以对准渲染2D视图、执行空间和/或时间上采样等,以生成提供给模拟传感器的传感器数据。CPU 218可以被配置为执行单独的预处理和后处理功能,例如,视图选择和调度、从GPU输出队列检索传感器数据、消息格式化和打包、以及将传感器数据传送到模拟传感器。在这些实现中,计算设备202可以监测与GPU 224和CPU 218执行的相应任务相关联的速度、性能、容量和延迟,以便更有效地管理执行实时模拟。例如,计算设备202可以基于当前容量、延迟和基于GPU 224的延迟等的性能,动态地增加或减少用于生成更新的2D视图的渲染速率,和/或可以增加或减少射线追踪对准和上采样的质量和数量。
图3示出了用于生成模拟环境的统一、多传感器数据2D视图302的示例技术300。在一些情况下,该示例中描绘的技术可以由GPU 224单独执行或者与由计算设备202的GPU224和/或CPU 218执行的附加组件组合执行。例如,GPU 224可以生成包括视觉图像数据304的第一2D视图和包括深度数据306的第二2D视图。图像数据304和深度数据306可以通过基于模拟内的选定位置(例如,模拟车辆的当前位置)和选定的取向对3D模拟环境进行光栅化来生成。在该示例中,图像数据304和深度数据306的2D视图可以对应于从穿过模拟环境的模拟车辆的角度来看的前向视图。
计算设备202还可以检索附加的模拟环境/对象数据308,其对应于图像数据304和深度数据306的2D视图中描绘的模拟的相同区域。例如,计算设备202可以监测模拟和/或检索模拟数据,其包括图像数据304和深度数据306的光栅化2D视图内描绘的任何对象的相应对象标识符、速度和材料特性。计算设备202还可以检索模拟环境的模拟照明数据和/或其他特性。
包含视觉图像数据304和深度数据306的2D视图可以以阵列或其他存储配置与模拟环境/对象数据308组合,以构造统一的2D视图302。如该示例中所示,统一的2D视图302可以包括每个像素(或2D视图内的其他离散区域)的多个层内的数据,其中像素数据310包括对象标识符、颜色、亮度、深度、速度、材料、反射率和/或与特定像素相关联的其他物理特性。
尽管在该示例中未描绘,但是计算设备202可以包括用于生成和/或修改本文描述的统一的2D视图的一个或多个附加组件。例如,计算设备202可以包括阴影识别组件,该阴影识别组件被配置为执行被训练以检测图像数据304中的一个或多个阴影的机器学习算法。在一些情况下,阴影识别组件可以接收模拟环境的几何信息以及光源的位置,作为算法的输入以检测图像数据中的一个或多个阴影。
计算设备202还可以包括区域识别组件,其被配置为识别图像集合中的对应区域,例如基于图像数据中的特征的映射区域。在一些情况下,区域识别组件可以基于被投影到环境的3D网格上的图像数据304来识别区域。在一些示例中,计算设备202可以包括混合组件,该混合组件被配置为组合来自多个图像的图像数据304的区域以生成更新的图像数据区域,其中阴影的贡献被最小化或省略。计算设备202还可以包括复制组件,其被配置为识别要用于替换特定区域或位置处的图像数据的图像数据304的源。例如,目的地区域可以对应于图像的阴影区域,而源区域可以对应于从另一图像中的对应区域被照亮(例如,不包括阴影)的图像数据。在一些示例中,源区域可以基于具有相似颜色值、语义信息、LIDAR强度等的图像数据。
在一些示例中,计算设备202可以包括被配置为将图像数据映射或投影到3D网格的部分上的3D映射组件。也就是说,3D映射组件可以将图像传感器捕获的图像数据投影到与图像数据中表示的环境相对应的环境的3D网格上。在这样的示例中,3D网格组件可以从模拟车辆接收日志文件(通常,或传感器数据),并且可以生成或更新环境地图。在某些情况下,3D网格组件可以基于例如一个或多个激光雷达传感器(或其他传感器)捕获的传感器数据,例如(例如,深度数据306)生成环境的3D网格(或其他表示,例如,有符号距离函数、体素、体素哈希等)。3D地图中的表面可以由一个或多个多边形表示。在某些情况下,对象可以用体素、直方图或分布函数来表示。在某些情况下,3D地图中的表面可以由参数化实体(例如,NURBS)表示。在一些情况下,3D网格组件可以将语义信息与3D网格的各个多边形相关联。
计算设备202还可以包括光源组件,该光源组件包括用于确定与图像数据304相关联的光源的功能。在一些情况下,光源组件可以接收图像数据中表示的环境的位置(例如,纬度、经度、海拔等)、一天中的时间、一年中的一天等,以确定捕捉图像时光源的位置。在另一示例中,光源组件可用于确定照明3D网格的一部分所需的光源相对于3D网格的位置(例如,以搜索未被阴影遮挡的表面的图像数据)。光场景评估组件可以包括用于相对于表示环境的图像数据来确定场景中存在的光的类型的功能。在一些情况下,光场景评估组件可以包括经过训练以检测漫射光场景(例如阴天)的机器学习算法。在一些情况下,光场景评估组件可以访问与位置相关联的天气数据以确定在捕获一个或多个图像时存在的天气状况。在一些情况下,光场景评估组件可以生成与图像或图像的各个区域相关联的分数,其指示该区域或图像中存在的照明的漫射质量。
计算设备还可以包括反射率组件,该反射率组件包括用于确定表面相对于表面角的反射率的功能。在一些情况下,反射率组件可以确定关于表面上的点的LIDAR光束的入射角的LIDAR强度数据。在一些情况下,反射率组件可以确定环境中的一个或多个点或表面的双向反射率分布函数(BRDF)(和/或双向散射表面反射率分布函数(BSSRDF))。在一些示例中,环境内的各个点和/或表面可以被分类为朗伯表面(例如,无光泽、漫反射等)、反射表面(例如,有光泽的)、镜面表面等。在一些情况下,反射特性可以包括双向反射率分布函数(BRDF)。在一些情况下,反射组件可以为3D网格的每个多边形和/或与3D网格相关联的图像的每个像素生成BRDF通道。在一些示例中,驾驶模拟***234可以包括用于接收省略了阴影的3D地图以及将光源从任意位置投影到3D地图上以基于环境的3D几何形状生成人工阴影的功能。在一些情况下,当3D地图包括各个表面的BRDF信息时,驾驶模拟***234可以基于各个表面的反射率来表示光的反射。在一些情况下,驾驶模拟***234可以根据去除了阴影的纹理3D地图来模拟环境的真实感图像。
可以并入计算设备202以帮助生成和修改统一的2D视图302的这些和其他各种组件的示例可以在例如标题为“Generating Maps Without Shadows”,于2020年6月30日发布的US专利NO.10,699,477中被发现,出于所有目的,其全部内容通过引用并入本文。
图4A-图4C示出了三个模拟环境的示例,每个环境包括模拟车辆和被渲染以提供与模拟车辆相关联的模拟传感器的传感器数据的多个视图。这些示例说明了模拟车辆上的模拟传感器的各种配置,以及向模拟传感器提供传感器数据的被渲染的2D视图的各种配置。如下文更详细讨论的,图4A示出了其中为车辆的每个模拟传感器生成不同的2D视图的示例。图4B示出了一个示例,其中在模拟车辆周围生成四个不同的2D视图,以为车辆的任何或所有模拟传感器提供360度的传感器数据,并且图4C示出了车辆上的模拟传感器的配置到四个不同2D视图的示例映射。
图4A示出了示例模拟环境400,包括在驾驶模拟期间穿过环境的模拟车辆402。在该示例中,模拟车辆402包括安装在模拟车辆402的外表面上的多个传感器404-418,其被配置为检测并处理来自模拟环境400的传感器数据。对于传感器404-418中的每一个,图4A描绘了相对于其在模拟车辆402上的位置的传感器的视场和传感器取向。图4A提供了示例,其中模拟车辆的传感器404-418与基于3D模拟环境渲染的2D视图420-434一对一地映射。即,在该示例中,每个模拟传感器404-418与被生成并用于向该传感器提供输入数据的唯一2D视图相关联。传感器404基于视图420接收输入数据,传感器406基于视图422接收输入数据等等。如上所述,模拟传感器404-418可以包括各种不同类型的传感器(例如,相机、雷达、激光雷达等),并且各个视图420-434中的每一个可以被生成为包括相关联的传感器的适当类型和数据量的点云和/或图像。
图4B示出了另一个示例模拟环境436,其中传感器引擎确定与模拟车辆402相关联的视图焦点438,并且基于视图焦点438生成四个单独的视图440-446。在此示例中,四个单独的视图440-446彼此成直角布置,并且提供相对于模拟车辆402的360度覆盖。在其他示例中,可以渲染更多或更少的视图,从这些视图向模拟车辆402上的模拟传感器提供输入数据。在一些情况下,如果在模拟期间的一段时间内没有车辆传感器定向在特定方向上,则传感器引擎不需要在该时间段期间渲染覆盖该方向的视图。
每个视图440-446可以被映射到(例如,可以为其提供传感器)零个、一个或多个不同的模拟传感器,这取决于模拟车辆402上的模拟传感器的数量、类型、位置和取向。因此,每个视图440-446可被生成为统一的2D视图,其包括可用于服务不同传感器类型的不同类型的数据(例如,图像数据、深度数据等)。在一些情况下,基于在模拟中的一段时间内映射到该视图的传感器的数据要求,视图440-446中的某一些可以被生成以仅包括特定类型的传感器数据而不包括其他类型的传感器类型。作为示例,如果在模拟期间的一段时间内面向视图442的唯一的传感器是图像传感器(例如,相机),则传感器引擎可以生成视图442以仅包括图像数据而不包括附加类型的传感器数据,附加类型的传感器数据可以包含在其他统一的2D视图中(例如,激光雷达数据、雷达数据等)。
图4C示出了另一示例模拟环境448,其中在模拟车辆402上描绘了多个传感器,并且其中每个传感器被映射到上面参考图4B讨论的一个或多个视图440-446中。在该示例中,模拟车辆402被示出为在驾驶模拟期间穿过环境。模拟车辆402包括位于模拟车辆402的外部上的传感器450-462的不同配置,并且对于传感器450-462中的每一个,图4C描绘了传感器相对于其在模拟车辆402上的位置的取向和视场。如上所述,在一些示例中,模拟传感器可以与视图解耦,反之亦然。图4C提供了传感器450-462与在模拟环境448中渲染的2D视图440-446解耦的示例。也就是说,在该示例中,传感器450-462中的每一个与用于向传感器提供输入数据的2D视图440-446之间不存在一对一的关系。传感器450、452从视图440接收输入数据,传感器454、456从视图442接收输入数据,传感器458从视图444接收数据,而传感器460、462从视图446接收数据。因此,在此示例中,因为视图由多个传感器共享,该模拟总体上可能需要较少的视图。
在某些情况下,单个模拟传感器可能会接收基于多个不同视图的传感器数据。例如,模拟传感器456被描绘为具有包括视图442和视图444二者的视场。在该示例中,传感器引擎可以通过对单独的视图442、444进行渲染、重投影和/或上采样来生成用于模拟传感器456的传感器数据,然后组合视图442、444的相关部分,并将组合的传感器数据提供给传感器456。在其他示例中,传感器引擎可以通过重定向和重新渲染一个或多个视图来动态地响应映射到多个视图的传感器的实例,使得每个传感器450-462映射到单个视图。
模拟环境448示出了驾驶模拟期间单个时间点的模拟车辆402。随着模拟的进行,可以理解,模拟车辆402和/或传感器450-462的位置和/或取向可以相对于视图440-446改变。例如,模拟车辆402可以在模拟环境448内移动和/或转动,并且传感器450-462中的每一个可以表现出位置和取向的对应变化。另外,传感器450-462中的某一些可以被配置为相对于模拟车辆402旋转。
图5描绘了另一个示例驾驶模拟,包括对应于模拟期间的四个不同时间点的四个不同的模拟环境500-506。在该示例中,模拟车辆508被描绘为沿着弯曲道路向前行驶。模拟车辆508包括单个模拟传感器,其可以是旋转激光雷达传感器(和/或被配置为独立于车辆改变取向的任何其他传感器)。如该示例中所示,在模拟环境500中(例如,时间t1),传感器朝向视图510被定向,并且发射在点512处与视图510相交的光。当车辆穿过环境时,车辆取向和传感器取向会发生变化。在模拟环境502中(例如,时间t2),传感器朝向视图514被定向,并且发射在点516处与视图514相交的光。在模拟环境504中(例如,时间t3),传感器朝向视图518被定向,并且发射在点520处与视图518相交的光。在模拟环境506中(例如,时间t4),传感器朝向视图522被定向,并发射在点524处与视图522相交的光。
如该示例所示,在模拟期间,模拟车辆和/或传感器的位置和/或取向可以相对于为模拟渲染的视图而改变。响应于传感器位置和/或取向的变化,传感器引擎可以基于一些视图生成重投影,可以重新生成某些视图,可以重新定向视图,和/或可以确定传感器和视图之间的更新的映射。
图6A和图6B示出了模拟环境中的深度感知的射线投射技术的两个示例。在各种示例中,图6A和图6B中描述的技术包括:在其中模拟传感器在模拟过程期间移动的模拟场景中的射线投射、在第一模拟时间投射第一射线以及在第二模拟时间投射第二射线。在图6A和图6B两者中,传感器在不同时间将多条射线投射到与模拟传感器映射到的统一的2D视图相关联的深度数据602中。本文描述的技术可以应用于对相对于特定传感器所生成的视图进行时间对准和/或上采样,如上面参考图1中的操作110以及参考图2中的重投影组件226所描述的。另外或替代地,本文描述的技术可以应用于空间和/或时间上采样,如上面参考图1中的操作114并且参考图2中的上采样组件228所描述的。
图6A描绘了其中传感器的位置已经从时间t1时的位置604移动到时间t2时的位置606的场景。图6A中的传感器的移动可以对应于穿过模拟环境的车辆的移动。在该示例中,从传感器在位置604处投射的射线在射线交点608处与深度数据602(其可以是对应于统一的2D视图的光栅化深度视图)相交,并且从传感器在位置606处投射的射线在射线交点610处与深度数据相交。该示例中的射线交点608和610在深度值上具有相对较大的差异,指示射线交点608和610之间的非平面表面(和/或不同的模拟对象)。基于该示例中的射线交点608和610之间的深度差异,传感器引擎可以确定采样技术而不是线性插值技术将用于对准和/或上采样。例如,为了确定在时间t1和t2之间的模拟中要使用的传感器数据,而不是使用基于点608和610的线性插值,传感器引擎可以基于模拟中的时间接近时间t1还是时间t2来选择点608或610的样本。
图6B描绘了另一种场景,其中模拟传感器的位置没有移动,但是传感器的取向已经从时间t1时的传感器角度612移动到时间t2时的传感器角度614。图6B中的传感器的移动可以对应于车辆在模拟环境中的转向和/或传感器相对于车辆的旋转。在该示例中,从传感器沿传感器角度612投射的射线在射线交点616处与深度数据602相交,并且从传感器角度614投射的射线在射线交点618处与深度数据相交。与射线交点608和610不同,在该示例中,射线交点616和618在深度值上具有较小的差异,其指示射线交点616和616之间的相对平坦的表面(和/或同一模拟对象的较高可能性)。基于射线交点616和618之间的较小深度差异,在该示例中,传感器引擎可以确定线性插值技术而不是采样技术将用于对准和/或上采样。例如,为了确定在模拟中,在时间t1和t2之间的时间要使用的传感器数据,传感器引擎可以使用基于对应于点616和618的传感器数据值的线性插值,有效地混合颜色、速度、亮度、材质等。
尽管在该示例中使用了深度数据602,但是在其他示例中,可以通过在模拟期间在不同时间点将射线投射到2D视图中,并且然后基于射线交点处的对象ID是否匹配、或者射线交点处的速度值是否在预定阈值内等,来确定优选的对准和/或上采样技术,来执行类似的技术。
图7示出了用于模拟环境中的模拟传感器的示例深度感知的空间上采样技术。如上所述,在一些示例中,传感器引擎可以在生成视图的重投影期间或之后执行空间上采样技术,以增强要提供给模拟传感器的传感器数据的视图质量和/或分辨率。在此示例中,空间上采样可用于通过基于与射线交点相关联的深度数据选择上采样技术(例如,线性插值或采样),以提高视觉和/或非视觉数据(例如,图像和点云)二者的质量和分辨率。如上所述,虽然该示例描述了使用深度数据的深度感知的上采样技术,但是在其他示例中,类似或相同的技术可以使用对象标识符数据和/或速度数据来代替深度数据或结合深度数据。
在该示例中,图像700包括模拟环境的所渲染的2D视图的深度数据702。边界框704识别深度数据702的图像的背景中的低分辨率对象。因为边界框704中的对象位于图像的背景中,所以它可以具有分配给它的较少像素,并且对于统一的2D视图的可见和不可见数据,可以以相对较低的分辨率来渲染。本文描述的空间上采样技术包括将一个或多个射线投射到与对象相关联的边界框704中,并且确定射线交点的传感器数据值以提高对象的区域处的2D视图的分辨率。在该示例中,射线被投射到2D视图的深度数据702中,其在射线交点706处与2D视图相交。包括采样点708-716的区域表示2D视图的相邻像素(或其他离散区域),并且每个相邻区域可以包括与特定区域相关联的一组统一的多传感器数据(例如,对象标识符、颜色、亮度、深度、速度、材料等)。
可以使用各种算法来评估与射线交点706相邻的区域,以确定射线相点706是否可能位于相对均匀且平坦的表面上,和/或可能位于模拟环境中的同一对象上。在一个示例中,传感器引擎可以识别并评估距离射线交点706最近的三个样本的深度。在这种情况下,三个最近的采样点可以是采样点710、712和714,它们形成围绕射线交点706的三角形。在该示例中,如果三个最近的采样点710、712和714的深度具有相同的对象标识符,则传感器引擎可以假设射线交点706在同一对象上,并且可以使用线性插值,以基于采样点710、712和714处的对应传感器数据,来确定射线交点706的传感器数据。否则,传感器引擎可以确定由采样点710、712和714形成的三角形是否与由采样点708、714和716所形成的三角形足够平坦。在一些示例中,曲率误差参数可用于确定这些三角形(或其他相邻区域)是否足够平坦。如果两个三角形足够平坦,则传感器引擎可以基于采样点710、712、714和716处的对应传感器数据使用线性插值来来确定射线交点706的传感器数据。否则,传感器引擎可以确定应当使用采样而不是线性插值,并且可以基于最近样本(例如,采样点708)的对应传感器数据来确定射线相交点706的传感器数据。尽管该示例描述了一种用于基于对象标识符和深度数据来执行空间上采样的算法,但是从本公开的上下文可以理解,可以在基于采样技术、阈值和/或本文描述的统一的多传感器数据的任何组合的其他示例中使用其他算法。
图8示出了用于使用GPU渲染模拟环境的视图的示例***800。如上所述,在一些示例中,在选择、渲染、对准和/或上采样(例如,增强)2D视图以用于在模拟期间生成传感器输入数据时,传感器引擎可以协调和管理一个或多个GPU和CPU的使用。在某些情况下,GPU可用于生成传感器数据(例如,通过光栅化3D模拟环境的2D视图、射线追踪、重投影、上采样等),并且CPU可用于传感器数据的各种预处理(例如,视图选择)和/或后处理(例如,消息格式化和打包,以及将传感器数据传送到模拟传感器),以向模拟提供传感器数据。在该示例中,***800示出了用于渲染2D视图的处理管线,其包括被配置为执行视图渲染的GPU、以及被配置为执行预处理和后处理功能的一个或多个CPU。
在该示例中,传感器引擎在每个时钟间隔802-806选择并初始化新的/更新的2D视图的渲染以用于模拟。例如,从时钟间隔802开始,在处理块808处执行输入组件,由CPU执行预处理,在块810处由GPU渲染视图,由CPU执行后处理,并且在处理块812处,所渲染的2D视图被输出到模拟传感器。在时钟间隔804处初始化类似的处理管线,其从处理块814开始,包括在处理块816处的GPU渲染,并且在处理块818处输出所渲染的2D视图,并且另一个类似的处理管线在时钟间隔806处初始化,包括处理块820、822和824。
如该示例中所示,***800的2D视图渲染管线可以相对于CPU和GPU功能异步且独立地操作。例如,处理块820初始化新2D视图的生成并在GPU完成处理块816中的先前2D视图的渲染之前执行CPU预处理功能。在模拟期间,该示例中的异步操作最小化GPU停机时间并且最大化渲染2D视图的速度以及效率。此外,本示例中GPU和CPU的异步且独立的操作可防止出现不期望的丢帧。
在各种实现中,***800的2D视图渲染管线还可以用于在模拟期间动态地更新视图渲染功能。例如,当GPU的光栅化和/或射线追踪操作被确定为处理瓶颈时,传感器引擎可以降低渲染速率、降低视图分辨率和/或确定可以由多个传感器共享的视图,以降低GPU上的处理负载并缓解瓶颈。在一些情况下,为了补偿由GPU渲染的视图的降低的渲染速率和/或较低的分辨率,传感器引擎可以执行额外的射线追踪/射线投射操作,这可以提高时间/空间对准和/或上采样,从而改善传感器输入数据,同时减少GPU的处理负担。在其他示例中,传感器引擎可以减少由GPU执行的射线追踪/射线投射,并用更高的渲染速率和/或更高的分辨率进行补偿。
图9描绘了用于实现本文描述的技术的示例***900的框图。在至少一个示例中,***900可以包括车辆902,其可以是与上面参考图4和图5描述的模拟车辆402和508相同的车辆。***900还可以包括一个或多个计算设备932,其可以被实现为驾驶模拟***和/或传感器引擎,并且可以与上面参考图2描述的计算设备202A和/或202B相同或相似。
车辆902可以对应于穿过物理环境的物理自动驾驶车辆,和/或对应于在虚拟和/或基于日志的模拟内操作的模拟车辆。对于包括真实车辆和模拟车辆的实施方式两者,车辆902可以包括自动驾驶车辆的各种基于软件和/或基于硬件的组件,并且可以用于控制穿过物理或模拟环境的自动驾驶车辆。
车辆902可以是用于无人驾驶车辆的基于硬件和/或基于软件的控制器,例如被配置为根据美国国家公路交通安全管理局发布的5级分类操作的自动驾驶车辆,该分类描述了一种能够在整个行程中执行所有安全关键功能的车辆,驾驶员(或乘员)在任何时候都不希望控制车辆。在一些情况下,车辆控制***可以在真实的关联车辆内操作,例如具有任何其他级别或类别的完全或部分自动驾驶车辆。在一些情况下,本文描述的技术也可以由非自动驾驶车辆使用。另外或替代地,车辆902可以独立于物理车辆来操作,例如,作为用于在车辆902的开发、测试和验证过程期间在计算环境中执行的模拟车辆的基于硬件和软件的控制器。另外,虽然本文描述的车辆902的实施方式可以包括模拟自动驾驶车辆、半自动驾驶车辆或非自动驾驶车辆的控制***,但是一些技术可以在模拟环境中使用模拟车辆。
车辆902可以用于任何配置的真实或模拟车辆,例如货车、运动型多用途车、跨界车、卡车、公共汽车、农用车辆和/或建筑车辆。例如,车辆902的相关联车辆可由一个或多个内燃机、一个或多个电动机、氢动力、其任何组合和/或任何其他合适的动力源提供动力。尽管相关联的车辆可以具有四个车轮,但是本文描述的车辆902和相关联的技术可以并入具有更少或更多数量车轮和/或轮胎的车辆中。车辆902可以包括用于控制具有四轮转向的车辆的***,并且可以在所有方向上以相同或相似的性能特性来操作,例如,使得当沿着第一方向行进时,车辆的第一端是车辆的前端,并且使得当沿着相反方向行进时,第一端变成车辆的后端。类似地,当沿第二方向行进时,车辆的第二端是车辆的前端,并且使得当沿相反方向行进时,第二端变成车辆的后端。这些示例特征可以促进更大的可操纵性,例如在狭小的空间或拥挤的环境中,例如停车场和/或城市区域。
在一些示例中,车辆902可以包括车辆计算设备904、一个或多个传感器***906、一个或多个发射器908、一个或多个通信连接910、至少一个直接连接912以及一个或多个驱动组件914。车辆计算设备904可以包括一个或多个处理器916以及与一个或多个处理器916通信地耦合的存储器918。在所示的示例中,车辆902是自动驾驶车辆;然而,车辆902可以是任何其他类型的车辆,或者具有一个或多个传感器***的任何其他***。在所示示例中,车辆计算设备904的存储器918存储定位组件920、感知组件922、规划组件924、一个或多个***控制器926以及一个或多个地图928。尽管其出于说明性目的在图9中描绘为驻留在存储器918中,可以预期的是,定位组件920、感知组件922、规划组件924、一个或多个***控制器926以及一个或多个地图928可以附加地或替代地由车辆902访问(例如,远程存储)。
在至少一个示例中,定位组件920可以包括用于从传感器***906接收数据以确定车辆902的位置的功能。例如,定位组件920可以包括和/或请求/接收环境的地图,并且可以连续确定自动驾驶车辆在地图内的位置。在一些情况下,定位组件920可以利用SLAM(同时定位和映射)或CLAMS(同时校准、定位和映射)来接收图像数据、激光雷达数据、雷达数据、IMU数据、GPS数据、车轮编码器数据等,以准确地确定自动驾驶车辆的位置。在一些情况下,定位组件920可以向车辆902的各个组件提供数据以确定动驾驶车辆的初始位置以生成候选轨迹,如本文所讨论的。
在一些情况下,感知组件922可以包括用于执行对象检测、分割和/或分类的功能。在一些示例中,感知组件922可以提供处理后的传感器数据,其指示靠近车辆902的实体的存在和/或作为实体类型的实体分类(例如,汽车、行人、骑自行车的人、动物、建筑物、树木、路面、路缘、人行道、未知等)。在附加和/或替代示例中,感知组件922可以提供处理后的传感器数据,其指示与检测到的实体和/或实体所处的环境相关联的一个或多个特性。在一些示例中,与实体相关联的特征可以包括但不限于x位置(全局位置)、y位置(全局位置)、z位置(全局位置)、取向、实体类型(例如,分类)、实体的速度、实体的范围(大小)等。与环境相关的特征可以包括但不限于,环境中另一个实体的存在、环境中另一个实体的状态、一天中的时间、一周中的一天、季节、天气状况、黑暗/光明的指示等。
一般而言,规划组件924可以确定车辆902穿过环境所遵循的路径。例如,规划组件924可以确定各种路线和轨迹以及各种细节级别。例如,规划组件924可以确定从第一位置(例如,当前位置)到第二位置(例如,目标位置)行进的路线。出于本讨论的目的,路线可以是用于在两个位置之间行进的一系列航路点。作为非限制性示例,航路点包括街道、交叉路口、全球定位***(GPS)坐标等。此外,规划组件924可以生成用于沿着从第一位置到第二位置的路线的至少一部分引导自动驾驶车辆的指令。在至少一个示例中,规划组件924可以确定如何引导自动驾驶车辆从航路点序列中的第一航路点到航路点序列中的第二航路点。在一些示例中,指令可以是轨迹或轨迹的一部分。在一些示例中,可以根据后退地平线技术基本上同时生成多个轨迹(例如,在技术容差内)。
在至少一个示例中,车辆计算设备904可以包括一个或多个***控制器926,其可以被配置为控制车辆902的转向、推进、制动、安全、发射器、通信和其他***。这些***控制器926可以与驱动组件914和/或车辆902的其他组件的相应***通信和/或对其进行控制。
存储器918还可包括可由车辆902用来在环境内导航的一个或多个地图928。出于本讨论的目的,地图可以是以二维、三维或N维建模的任意数量的数据结构,这些数据结构能够提供有关环境的信息,例如但不限于拓扑(例如,交叉路口)、街道、山脉、道路、地形和一般环境。在一个示例中,地图可以包括使用本文讨论的技术生成的三维网格。在一些情况下,地图可以以平铺格式存储,使得地图的各个平铺表示环境的离散部分,并且可以根据需要加载到工作存储器中。在至少一个示例中,一个或多个地图928可以包括根据本文讨论的技术生成的至少一个地图(例如,图像和/或网格)。在一些示例中,可以至少部分地基于地图928来控制车辆902。也就是说,地图928可以与定位组件920、感知组件922和/或规划组件924结合使用,以确定车辆902的位置、识别环境中的对象、和/或生成路线和/或轨迹,以在环境内导航。
在一些示例中,一个或多个地图928可以存储在可经由网络/传输组件930访问的远程计算设备(例如,计算设备932)上。在一些示例中,可以,例如,基于特征(例如,实体类型、一天中的时间、一周中的一天、一年中的季节等)存储多个地图928。存储多个地图928可以具有类似的存储器需求,但是增加了可以访问热点地图中的数据的速度。
在一些情况下,本文讨论的一些或所有组件的方面可以包括任何模型、算法和/或机器学习算法。例如,在一些情况下,存储器918(以及下面讨论的存储器936)中的组件可以被实现为神经网络。
如本文所述,示例性神经网络是受生物学启发的算法,其将输入数据传递通过一系列连接层以产生输出。神经网络中的每一层也可以包括另一个神经网络,或者可以包括任意数量的层(无论是否卷积)。如在本公开的上下文中可以理解的,神经网络可以利用机器学习,机器学习可以指代此类算法的宽泛类,其中基于学习的参数生成输出。
尽管在神经网络的上下文中进行了讨论,但可以使用与本公开一致的任何类型的机器学***滑(LOESS)),基于实例的算法(例如,岭回归,最小绝对收缩和选择算子(LASSO),弹性网络,最小角度回归(LARS)),决策树算法(例如,分类和回归树(CART)、迭代二分法3(ID3)、卡方自动交互检测(CHAID)、决策树桩、条件决策树)、贝叶斯算法(例如,朴素贝叶斯、高斯朴素贝叶斯、多项朴素贝叶斯、平均单依赖估计器(AODE)、贝叶斯信念网络(BNN),贝叶斯网络),聚类算法(例如,k均值,k中值,期望最大化(EM),层次聚类),关联规则学习算法(例如,感知器,反向传播,跳场网络,径向基函数网络(RBFN))、深度学习算法(例如,深度玻尔兹曼机(DBM),深度信念网络(DBN),卷积神经网络(CNN),堆叠自动编码器),降维算法(例如,主成分分析(PCA)、主成分回归(PCR)、偏最小二乘回归(PLSR)、Sammon映射、多维缩放(MDS)、投影追踪、线性判别分析(LDA)、混合判别分析(MDA)、二次判别分析(QDA)、灵活判别分析(FDA))、集成算法(例如,提升、自举聚合(Bagging)、Ada提升、堆叠泛化(混合)、梯度提升机(GBM)、梯度提升回归树(GBRT)、随机森林)、SVM(支持向量机)、监督学习、无监督学习、半监督学习等。
架构的其他示例包括神经网络,例如ResNet70、ResNet101、VGG、DenseNet、PointNet等。
在至少一个示例中,传感器***906可以包括激光雷达传感器、雷达传感器、超声换能器、声纳传感器、位置传感器(例如,GPS、指南针等)、惯性传感器(例如,惯性测量单元(IMU),加速度计,磁力计,陀螺仪等),相机(例如,RGB,IR,强度,深度,飞行时间相机等)、麦克风、车轮编码器、环境传感器(例如,温度传感器、湿度传感器、光传感器、压力传感器等)等。传感器***906可以包括这些或其他类型传感器中的每一个的多个实例。例如,激光雷达传感器可以包括位于车辆902的拐角、前部、后部、侧面和/或顶部的单独的激光雷达传感器。作为另一个示例,相机传感器可以包括设置在车辆902的外部和/或内部周围的不同位置处的多个相机。传感器***906可以向车辆计算设备904提供输入。附加地或替代地,传感器***906可以经由一个或多个网络/传输组件930,在经过预定时间段之后、以近实时等方式,以特定频率向一个或多个计算设备发送传感器数据。
车辆902还可以包括用于发射光和/或声音的一个或多个发射器908。该示例中的发射器908可以包括与车辆902的乘客通信的内部音频和视觉发射器。作为示例而非限制,内部发射器可以包括扬声器、灯、标志、显示器屏幕、触摸屏、触觉发射器(例如,振动和/或力反馈)、机械致动器(例如,安全带张紧器、座椅***、头枕***等)等。该示例中的发射器908还可以包括外部发射器。作为示例而非限制,该示例中的外部发射器包括用于发出行进方向信号的灯或车辆动作的其他指示器(例如,指示灯、标志、光阵列等),以及一个或多个音频发射器(例如,扬声器、扬声器阵列、喇叭等)以与行人或其他附近车辆进行听觉通信,其中一个或多个包括声束转向技术。
车辆902还可以包括一个或多个通信连接910,其能够在车辆902和一个或多个其他本地或远程计算设备之间进行通信。例如,通信连接910可以促进与车辆902上的其他本地计算设备和/或驱动组件914的通信。而且,通信连接910可以允许车辆与其他附近的计算设备(例如,其他附近的车辆、交通信号灯等)通信。通信连接910还使得车辆902能够与远程遥控操作计算设备或其他远程服务通信。
通信连接910可以包括用于将车辆计算设备904连接到另一个计算设备或网络,例如网络/传输组件930的物理和/或逻辑接口。例如,通信连接910可以实现基于Wi-Fi的通信,例如经由通过IEEE 802.11标准定义的频率、例如的短距离无线频率、蜂窝通信(例如,2G、3G、4G、4GLTE、5G等)或使相应的计算设备能够与其他计算设备交互的任何合适的有线或无线通信协议。网络/传输组件930可以包括本文描述的通信网络之一或任意组合。在一些示例中,除了通信网络之外或作为通信网络的替代,网络/传输组件930可以使用诸如共享存储器、进程内通信和/或相同物理硬件的共享使用之类的其他技术来提供通信。
在至少一个示例中,车辆902可包括一个或多个驱动组件914。在一些示例中,车辆902可具有单个驱动组件914。在至少一个示例中,如果车辆902具有多个驱动组件914,则单独的驱动组件914可定位在车辆902的相对端上(例如,前部和后部等)。在至少一个示例中,驱动组件914可以包括一个或多个传感器***,以检测驱动组件914和/或车辆902的周围环境的状况。作为示例而非限制,传感器***可以包括一个或多个车轮编码器(例如,旋转编码器),以感测驱动组件的车轮的旋转、惯性传感器(例如,惯性测量单元、加速计、陀螺仪、磁力计等),以测量驱动组件、相机或其他图像传感器的取向和加速度,超声波传感器,以声学方式检测驱动组件周围的对象,激光雷达传感器、雷达传感器等。一些传感器,例如,车轮编码器对于驱动组件914可以是唯一的。在一些情况下,驱动组件914上的传感器***可以重叠或补充车辆902的相应***(例如,传感器***906)。
驱动组件914可以包括许多车辆***,包括高压电池、驱动车辆的电动机、将来自电池的直流电转换成交流电以供其他车辆***使用的逆变器、包括转向马达和转向齿条(可能是电动的)的转向***、包括液压或电动执行器的制动***、包括液压和/或气动组件的悬挂***、用于分配制动力以减轻牵引力损失并保持控制的稳定性的控制***、HVAC***、照明(例如,用于照亮车辆外部环境的头灯/尾灯等照明)以及一个或多个其他***(例如,冷却***、安全***、车载充电***、其他电气组件,例如DC/DC转换器、高压接头、高压电缆、充电***、充电端口等)。另外,驱动组件914可以包括驱动组件控制器,其可以接收和预处理来自传感器***的数据,并控制各种车辆***的操作。在一些示例中,驱动组件控制器可以包括一个或多个处理器和与一个或多个处理器通信耦合的存储器。存储器可以存储一个或多个程序或指令,以执行驱动组件914的各种功能。此外,驱动组件914还可以包括一个或多个通信连接,其使得各个驱动组件能够与一个或多个其他本地或远程计算设备通信。
在至少一个示例中,定位组件920、感知组件922和/或规划组件924可以处理传感器数据,如上所述,并且可以通过一个或多个网络/传输组件930将它们各自的输出发送到一个或多个计算设备932。在至少一个示例中,定位组件920、感知组件922和/或规划组件924可以在预定时间段过去之后、近乎实时地等,以特定频率将它们各自的输出发送到一个或多个计算设备932。
如上面参考图1-8所描述的,并且如本公开通篇所讨论的,车辆902可以经由网络/传输组件930将传感器数据发送到一个或多个计算设备932。在一些示例中,车辆902可以将原始传感器数据发送到计算设备932。在其他示例中,车辆902可以将处理后的传感器数据和/或传感器数据的表示发送到计算设备932。在一些示例中,车辆902可以在预定时间段过去之后、近乎实时地等,以特定频率将传感器数据发送到传感器数据。在一些情况下,车辆902可以将传感器数据(原始的或处理过的)作为一个或多个日志文件发送到计算设备932。
在驾驶模拟期间,计算设备932可以执行包括模拟环境和/或模拟代理/对象的模拟。计算设备932可以以将由车辆的传感器***906检测和处理的传感器数据的形式向车辆902提供模拟数据。在模拟期间,车辆902可以响应由计算设备932提供的传感器输入,而在计算设备932上执行的模拟环境和主体/对象可以检测并响应由控制车辆902输出的控制命令(例如,经由***控制器926),其控制由车辆902执行的移动和其他动作。
在至少一个示例中,计算设备932可以包括一个或多个处理器934以及与一个或多个处理器934通信地耦合的存储器936。在所示示例中,计算设备932的存储器936存储视图选择器组件216、视图生成器组件222、重投影组件226、上采样组件228和驾驶模拟***234。在至少一个示例中,计算设备932可以对应于图2的计算设备202,并且计算设备932内描绘的组件可以与上面结合图2描述的相应组件相似或相同。
车辆902的处理器916和计算设备932的处理器934可以是能够执行指令以处理数据并执行如本文所述的操作的任何合适的处理器。作为示例而非限制,处理器916和934可以包括一个或多个中央处理单元(CPU)、图形处理单元(GPU)、或处理电子数据以将该电子数据转换成可以存储在寄存器和/或存储器中的其他电子数据的任何其他设备或设备的部分。在一些示例中,集成电路(例如,ASIC等)、门阵列(例如,FPGA等)和其他硬件设备也可以被认为是处理器,只要它们被配置为实现编码指令。
存储器918和存储器936是非暂时性计算机可读介质的示例。存储器918和存储器936可以存储操作***和一个或多个软件应用程序、指令、程序和/或数据以实现本文描述的方法和归因于各种***的功能。在各种实施方式中,可以使用任何合适的存储器技术来实现存储器,例如静态随机存取存储器(SRAM)、同步动态RAM(SDRAM)、非易失性/闪存型存储器、或能够存储信息的任何其他类型的存储器。本文描述的架构、***和单独元件可以包括许多其他逻辑、程序和物理组件,其中附图中所示的那些仅仅是与本文讨论相关的示例。
应当注意,虽然图9被示出为分布式***,但在替代示例中,车辆902的组件可以与计算设备932相关联和/或车辆902的组件可以与计算设备932的组件相关联。也就是说,车辆902可以执行与计算设备932相关联的一个或多个功能,反之亦然。
图10-14示出了根据本公开示例的示例过程。这些过程被图示为逻辑流程图,其中的每个操作表示可以在硬件、软件或其组合中实现的操作序列。在软件的上下文中,操作表示存储在一个或多个计算机可读存储介质上的计算机可执行指令,当由一个或多个处理器执行该指令时,执行所列举的操作。一般而言,计算机可执行指令包括执行特定功能或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等。描述操作的顺序并不旨在被解释为限制,并且任何数量的所描述的操作可以以任何顺序和/或并行组合以实现过程。
图10描绘了用于生成和使用模拟环境的多传感器视图并向模拟传感器提供数据的示例过程1000。过程1000中描述的操作中的一些或全部可以由图1-9中的一个或多个组件来执行,例如视图选择器组件216、视图生成器组件222和/或具有实现传感器模拟***(或传感器引擎)的一个或多个计算设备202的其他组件。
在操作1002处,传感器引擎可以接收表示与驾驶模拟相关联的3D模拟环境的数据。3D模拟环境可以包括多个静态和/或动态对象(例如,代理),其可以包括基于人工智能和/或其他算法在模拟环境内控制的基于软件的对象。
在操作1004处,传感器引擎可以基于3D模拟环境生成多传感器2D视图。在一些示例中,操作1004可以由视图生成器组件222使用GPU执行,该GPU被配置为通过从模拟车辆的透视位置光栅化3D模拟环境来渲染2D视图。生成的2D视图可以包括与2D视图的每个区域(例如,像素)相关联的多种类型的传感器数据,包括但不限于用于视图的每个像素的图像数据(例如,光和颜色数据)、深度数据、对象标识符、速度数据、材料数据等。对于2D视图内的每个离散像素或其他区域,传感器引擎可以生成能够存储该区域的多传感器数据的阵列、数据结构或其他存储配置。
在操作1006处,传感器引擎可以确定传感器依赖性数据,包括与在模拟环境中操作的传感器相关联的视场和/或数据要求。传感器的视场可以基于在模拟环境内传感器的位置和取向角。另外,传感器的数据要求可以对应于传感器被配置为检测的数据类型,并且可以包括模拟环境内的对象的物理特性的任意组合。例如,图像传感器(例如,相机)被配置为检测来自模拟环境的光和颜色数据,雷达传感器可以被配置为检测对象距传感器的距离(从传感器的角度来看其可以称为深度)和对象速度数据,并且激光雷达传感器可以被配置为检测数据、材料特性(例如,材料类型/成分、反射率、粗糙度等)等。
在操作1008处,传感器引擎可确定在操作1004中生成的2D视图是否匹配在操作1006中为传感器确定的视场和数据要求。传感器引擎可以通过确定传感器的视场是否被2D视图覆盖,以及存储在2D视图中的数据类型是否对应于传感器的数据要求,来确定2D视图和模拟传感器之间的匹配。
当2D视图与传感器依赖性数据不匹配时(1008:否),过程1000继续到操作1010,在操作1010处,传感器引擎在返回到操作1004之前生成与传感器相关联的更新的多传感器2D视图。否则,当2D视图与传感器依赖性数据匹配时(1008:是),过程1000继续到操作1012,在操作1012处,传感器引擎基于传感器相对于视图的位置和/或取向角来对准2D视图。
在操作1014处,在将2D视图与模拟传感器对准之后,传感器引擎可以输出对准的2D视图的数据作为模拟传感器的输入数据。在一些示例中,传感器引擎可以向驾驶模拟***234提供2D视图,驾驶模拟***234可以将更新的视图集成到运行的模拟中,之后模拟传感器可以基于更新的视图接收输入数据。
图11描绘了用于生成并重投影模拟环境的2D视图以向模拟传感器提供数据的示例过程1100。过程1100中描述的操作中的一些或全部可以由图1-9中的一个或多个组件执行,例如视图生成器组件222、重投影组件226和/或具有实现传感器模拟***(或传感器引擎)的一个或多个计算设备202的其他组件。
在操作1102处,传感器引擎可以接收表示与驾驶模拟相关联的3D模拟环境的数据。3D模拟环境可以包括多个静态和/或动态对象(例如,代理),其可以包括基于人工智能和/或其他算法在模拟环境内控制的基于软件的对象。
在操作1104处,传感器引擎可以基于3D模拟环境生成多传感器2D视图。在一些示例中,操作1104可以由视图生成器组件222使用GPU执行,该GPU被配置为通过从模拟车辆的透视位置光栅化3D模拟环境来渲染2D视图。生成的2D视图可以包括与2D视图的每个区域(例如,像素)相关联的多种类型的传感器数据,针对视图的每个像素,包括但不限于图像数据(例如,光和颜色数据)、深度数据、对象标识符、速度数据、材料数据等。对于2D视图内的每个离散像素或其他区域,传感器引擎可以生成能够存储该区域的多传感器数据的阵列、数据结构或其他存储配置。
在操作1106处,传感器引擎可以确定在模拟中操作的传感器的位置、取向角和/或移动数据。可以相对于2D视图来确定传感器的位置和取向角。另外,可以相对于渲染2D视图的时间来确定传感器的移动,并且因此可以指示自生成2D视图以来传感器是否移动(例如,位置上和/或旋转上)。
在操作1108处,传感器引擎可以确定在操作1104中生成的2D视图和在操作1106中为传感器确定的传感器对准数据之间是否存在任何空间和/或时间差异。传感器引擎可以通过比较传感器位置、角度和/或与预定对准阈值来确定2D视图和模拟传感器之间的匹配。
当在模拟传感器和2D视图的对准之间没有确定显著差异时(1108:否),过程1100可以进行到操作1112,在操作1112处,传感器引擎输出对准的2D视图的数据作为模拟传感器的输入数据。在这种情况下,传感器引擎确定:传感器和传感器所映射到的2D视图充分对准,并且不需要重投影2D视图。
否则,当传感器引擎确定模拟传感器的位置、角度和/或移动没有与2D视图充分对准时(1108:是),过程1100继续到操作1110,在操作1110处,传感器引擎初始化重投影操作,以基于传感器相对于2D视图的位置、角度和/或移动在时间上和/或空间上对准2D视图。在一些示例中,重投影组件226可以通过从模拟环境内的传感器的位置朝向2D视图投射射线以确定射线交点,来使用射线投射和/或射线追踪来重投影所渲染的2D视图。与射线交点相关联的视觉和/或深度数据可用于对准2D视图、计算阴影和遮蔽信息、以及模拟各种视觉效果。
在操作1112处,在生成重投影以将2D视图与模拟传感器对准之后,传感器引擎可以输出对准的2D视图的数据作为模拟传感器的输入数据。在一些示例中,传感器引擎可以向驾驶模拟***234提供2D视图,驾驶模拟***234可以将更新的视图集成到运行的模拟中,之后模拟传感器可以基于更新的视图接收输入数据。
图12描绘了用于深度感知的空间上采样的示例过程1200,其中使用线性插值和/或采样来增强模拟环境的2D视图。过程1200中描述的操作中的一些或全部可以由图1-9中的一个或多个组件来执行,例如视图生成器组件222、上采样组件228和/或具有实现传感器模拟***(或传感器引擎)的一个或多个计算设备202的其他组件。
在操作1202处,传感器引擎可以接收模拟环境的2D视图。在一些示例中,2D视图可以包括具有与视图的每个区域(例如,像素)相关联的多传感器图像数据(例如,视觉数据、深度数据、对象标识符、速度数据、材料数据等)的“统一”2D视图。
在操作1204处,传感器引擎可以确定2D视图的一个或多个低分辨率部分。例如,2D视图的距离/背景中的小对象可能具有分配给它的较少像素,并且因此对于2D视图的可见和不可见数据两者可以以相对较低的分辨率来渲染。
在操作1206处,传感器引擎可以将一个或多个射线投射到2D视图的低分辨率区域中。例如,射线可以投射到与2D视图的低分辨率部分相关联的边界框中,并且射线投射可以用于确定2D视图的深度数据(例如,深度图像或深度缓存器)内的射线交点。
在操作1208处,传感器引擎评估2D视图的相邻区域和/或其他附近区域的深度数据,以确定射线交点是否与相对平坦的表面相关联。在各种示例中,传感器引擎可以使用各种不同的技术和算法来评估相邻区域(例如,像素)的深度数据。例如,传感器引擎可关于曲率误差参数来评估一个或多个三角形,以确定这些三角形(或围绕或邻近射线交点的其他区域)足够平坦。
当确定射线交点不在模拟环境中的相对平坦的表面上时(1208:否),则在操作1210处,传感器引擎基于距射线交点最近的样本来确定与射线交点相关联的传感器数据。否则,当确定射线交点位于模拟环境中的相对平坦的表面上时(1210:否),则在操作1212处,传感器引擎使用来自相邻或周围像素的传感器数据执行线性插值操作,以确定射线交点的传感器数据。
在操作1214,传感器引擎将增强的2D视图输出到模拟传感器。在一些示例中,传感器引擎可以向驾驶模拟***234提供2D视图,驾驶模拟***234可以将增强的视图集成到运行模拟中,之后模拟传感器可以接收基于增强的视图的输入数据。基于使用本文描述的深度感知上采样确定的附加传感器数据的并入,增强的2D视图可以对应于跨一些或全部视图具有更高分辨率的视图。另外,虽然该示例描述了使用深度数据的上采样技术,但是在其他示例中,类似或相同的上采样技术可以使用对象标识符数据和/或速度数据来代替深度数据或结合深度数据。
图13描绘了对象感知和速度感知的时间上采样的示例过程1200,其中使用线性插值和/或采样来生成时间间隔之间的传感器输入数据。过程1300中描述的操作中的一些或全部可以由图1-9中的一个或多个组件来执行,例如视图生成器组件222、上采样组件228和/或具有实现传感器模拟***(或传感器引擎)的一个或多个计算设备202的其他组件。
在操作1302处,传感器引擎确定在第一时间在模拟中操作的传感器的位置和取向角。在操作1304处,传感器引擎基于第一时间的传感器位置和取向将来自传感器的射线投射到相关联的2D视图中。
在操作1306处,传感器引擎确定第二时间在模拟中操作的传感器的位置和取向角。在操作1308处,传感器引擎基于第一时间的传感器位置和取向将来自传感器的射线投射到相关联的2D视图中。在一些示例中,传感器的位置和/或取向可以在第一时间和第二时间之间改变。如上所述,在一些情况下,传感器的位置和/或取向可以基于模拟车辆在模拟期间穿过环境时的移动而改变。另外或替代地,传感器可以被配置成独立于模拟车辆移动和/或旋转。
在操作1310处,传感器引擎可比较与在操作1304和1308中确定的射线交点相关联的深度和/或对象标识符。在该示例中,如果在第一时间和第二时间为传感器确定的射线交点与相同的对象标识符相关联和/或位于相对平坦的表面上(1310:是),则在操作1312处,传感器引擎可以使用与两个射线交点相关联的传感器数据来执行线性插值操作,以确定与第一时间和第二时间之间的中间模拟时间相关联的传感器数据。
否则,如果在第一和第二时间为传感器确定的射线交点与不同的对象标识符相关联和/或没有位于相对平坦的表面上(1310:否),则在操作1314处,传感器引擎可以进一步评估与射线交点相关联的速度数据,以确定第一时间和第二时间二者的射线交点是否都在非移动对象上。在该示例中,如果传感器引擎确定两个射线交点都位于环境中的非移动对象上(1314:是),则在操作1316处,传感器引擎可以确定从时间上最接近中间模拟时间的射线交点采样的中间模拟时间的传感器数据值。例如,如果第一时间是0.0秒并且第二时间是1.0秒,那么在操作1316处,与0.4秒的中间模拟时间相关联的传感器数据将在第一时间被分配对应的传感器数据值,而与0.6秒的中间模拟时间相关的传感器数据将在第二时间被分配对应的传感器数据值。这些解决方案与操作1312中执行的线性插值相反,在操作1312中,将基于第一时间和第二时间两者处的传感器数据值来生成与中间模拟时间相关联的传感器数据。
继续该示例,传感器引擎在操作1314中确定射线交点中的一个或两个位于移动对象上(1314:否),然后在操作1318处,传感器引擎可以在操作1316中从射线交点采样之前确定并应用采样权重因子。在操作1318中确定的采样权重因子可以基于哪个射线交点位于正在移动的模拟对象上,以及移动的模拟对象的速度和方向。例如,第一时间检测到的小和/或快速移动的对象可能更有可能在中间模拟时间期间移开,而因此采样权重因子可以将神经权重因子在第一时间和第二时间之间偏移一半(例如,0.5秒)到较低值(例如,0.3秒),与第一射线交点相比,这可能导致传感器引擎更频繁地基于第二射线交点进行采样。
在操作1320处,传感器引擎将增强的2D视图输出到模拟传感器。在一些示例中,传感器引擎可以向驾驶模拟***234提供2D视图,驾驶模拟***234可以将增强的视图集成到运行模拟中,之后模拟传感器可以接收基于增强的视图的输入数据。基于使用本文描述的时间上采样确定的附加传感器数据的并入,增强的2D视图可以对应于具有更高渲染速率的视图。另外,虽然该示例描述了使用基于对象标识符、深度数据和速度的特定算法的上采样技术,但是在其他示例中,类似或相同的时间上采样技术可以使用具有其他组合的各种算法的其他统一视图数据。
图14描绘了使用传感器依赖性数据、视图数据和GPU调度数据来确定用于在模拟环境中渲染的视图的示例过程1400。过程1200中描述的操作中的一些或全部可以由图1-9中的一个或多个组件来执行,例如视图选择器组件216和/或具有实现传感器模拟***(或传感器引擎)的一个或多个计算设备202的其他组件。
在操作1402处,传感器引擎可接收在模拟环境中操作的一个或多个传感器的传感器依赖性数据。在各种示例中,传感器依赖性数据可以包括在模拟环境内传感器的位置、取向角和/或视场,以及传感器被配置为检测的数据类型。
在操作1404处,传感器引擎可以接收与模拟环境中的一个或多个渲染的视图相关联的视图数据。对于在模拟中渲染的每个视图,模拟视图数据可以包括视图的位置(例如,焦点)、视图的取向(例如,角度)、为视图的离散区域存储的数据类型(例如,像素),以及与视图相关联的渲染时间/速率。
在操作1406处,传感器引擎可以接收或确定与驾驶模拟相关联的一个或多个GPU和/或CPU的调度和/或性能数据。CPU 218和GPU 224的调度和性能数据可以包括用于渲染2D视图的可用GPU的能力(例如,核心、GPU速度、存储、当前渲染积压、延迟、网络速度)和/或执行与GPU渲染新视图相关的预处理和后处理操作的可用CPU的能力。
在操作1408处,传感器引擎可以选择视图并经由GPU初始化所选择的视图的更新的渲染。如上所述,在各种不同的实现中,视图选择器组件216可以使用在操作1402-1406中接收到的数据的不同组合,并且可以应用本文描述的各种基于启发式的算法和/或机器学习模型中的任何一个来确定哪个视图在模拟期间将在当前时间被渲染。
在操作1410处,传感器引擎可以分析模拟和计算资源(例如,GPU和CPU)的性能以确定是否调整由GPU渲染的2D视图的视图分辨率和/或渲染速率,和/或由CPU执行的视图-传感器对准和/或上采样。例如,传感器引擎可以将一个或多个操作(例如,由GPU进行的光栅化、由CPU进行的射线追踪)识别为可能对模拟性能产生负面影响的处理瓶颈。在一些情况下,传感器引擎可以应用一个或多个算法或机器学习模型来确定最佳渲染速率、视图配置、视图分辨率,以便减少GPU上的处理负载并缓解瓶颈。另外或替代地,传感器引擎可以应用一个或多个算法或机器学习模型,以确定所使用的射线追踪和/或上采样操作的最佳时序和配置,以用于改善传感器/视图对准,并通过CPU对传感器输入数据执行时间/空间增强。
当传感器引擎确定包括对GPU视图渲染功能(例如,视图分辨率和/或渲染速率)或CPU视图处理功能(例如,视图-传感器对准和/或上采样配置)的调整的优化时(1410:是),然后在操作1412处,传感器引擎可以重新配置视图生成器组件222、重投影组件226和/或上采样组件228,以实现调整后的视图分辨率、渲染速率、以及对准和/或上采样配置。否则,当传感器引擎确定没有包括对视图分辨率、渲染速率、对准和/或上采样配置的调整的优化(1410:否)时,则过程1400可以返回到操作1402以确定要渲染的下一个视图。
示例条款
A.一种***包括:一个或多个处理器;以及存储计算机可执行指令的一个或多个计算机可读介质,当计算机可执行指令被执行时,使得一个或多个处理器执行以下操作,包括:确定表示与驾驶模拟相关联的三维环境的数据;确定三维环境中与模拟车辆相关联的位置;至少部分地基于模拟车辆的位置生成三维环境的二维视图,其中二维视图包括第一数据以及第二数据,该第一数据指示与二维视图的区域相关联的第一物理特性,该第二数据指示与该区域相关联的第二物理特性;至少部分地基于二维视图生成第一传感器数据,其中第一传感器数据包括第一数据,并且其中第一传感器数据与模拟车辆的第一模拟传感器相关联;至少部分地基于二维视图生成第二传感器数据,其中第二传感器数据包括第二数据,并且其中第二传感器数据与模拟车辆的第二模拟传感器相关联;以及在驾驶模拟期间,将第一传感器数据和第二传感器数据提供给模拟车辆。
B.段落A的***,其中:生成第一传感器数据包括:至少部分地基于与第一模拟传感器相关联的第一传感器位置来生成二维视图的第一重投影;以及生成第二传感器数据包括:至少部分地基于与第二模拟传感器相关联的第二传感器位置,相对于模拟车辆的位置,来生成二维视图的第二重投影,其中第一传感器位置不同于第二传感器位置。
C.段落A的***,其中:第一模拟传感器包括相机,并且第一传感器数据包括与二维视图的区域相关联的光数据;而第二模拟传感器包括激光雷达传感器或雷达传感器中的至少一个,并且第二传感器数据包括与二维视图的区域相关联的速度数据或材料数据中的至少一个。
D.段落A的***,其中,生成第一传感器数据包括:确定与第一模拟传感器相关联的第一传感器姿态;确定与第一传感器相关联的第一传感器模拟时间;以及至少部分地基于第一传感器姿态和第一传感器模拟时间,生成针对第一模拟传感器的二维视图的重投影。
E.段落D的***,其中:生成三维环境的二维视图包括:执行光栅化过程;而生成第一传感器数据包括:执行射线投射过程以生成二维视图的第一重投影。
F.一种方法,包括:接收表示三维模拟环境的数据;生成三维模拟环境的二维视图;确定与二维视图的区域相关联的第一元数据和第二元数据;至少部分地基于二维视图确定第一传感器数据,其中第一传感器数据包括第一元数据;将第一传感器数据提供给被配置为检测第一元数据的第一模拟传感器;至少部分地基于二维视图确定第二传感器数据,其中第二传感器数据包括第二元数据;以及将第二传感器数据提供给被配置为检测第二元数据的第二模拟传感器。
G.段落F的方法,其中:确定第一传感器数据包括:至少部分地基于在三维模拟环境内第一模拟传感器的第一传感器位置来生成二维视图的第一重投影;以及确定第二传感器数据包括:至少部分地基于三维模拟环境内第二模拟传感器的第二传感器位置来生成二维视图的第二重投影,其中第一传感器位置不同于第二传感器位置。
H.段落F的方法,其中:生成第一传感器数据包括:至少部分地基于与第一模拟传感器相关联的第一模拟传感器时间来生成二维视图的第一重投影;以及生成第二传感器数据包括:至少部分地基于与第二模拟传感器相关联的第二模拟传感器时间来生成二维视图的第二重投影,其中第一模拟传感器时间不同于第二模拟传感器时间。
I.段落F的方法,其中:第一模拟传感器包括相机,而第一元数据包括与二维视图的区域相关联的光数据;并且第二模拟传感器包括激光雷达传感器或雷达传感器中的至少一个,以及第二元数据包括与二维视图的区域相关联的速度数据或材料数据中的至少一个。
J.段落F的方法,其中,生成第一传感器数据包括:确定三维模拟环境内与第一模拟传感器相关联的第一传感器位置;以及至少部分地基于第一传感器位置和与二维视图相关联的视图焦点位置之间的差异来生成二维视图的重投影,其中生成二维视图包括执行光栅化过程,并且其中生成二维视图的重投影包括执行射线投射过程。
K.段落F的方法,其中,确定第一传感器数据包括:确定与第一模拟传感器相关联的第一模拟传感器时间;以及至少部分地基于第一模拟传感器时间和与生成二维视图相关联的时间之间的时间差来生成二维视图的重投影,其中,生成二维视图包括执行光栅化过程,并且其中生成二维视图的重投影包括执行射线投射过程。
L.段落K的方法,还包括:确定在与时间差相关联的时间段期间在三维模拟环境内第一模拟传感器的第一移动;以及确定在该时间段期间在二维视图内表示的模拟对象的第二移动,其中生成二维视图的重投影还至少部分地基于第一移动和第二移动。
M.段落F的方法,其中,生成二维视图包括:将相机数据存储在与该区域相关联的第一存储位置处;将激光雷达数据存储在与该区域相关联的第二存储位置处;将雷达数据存储在与该区域相关联的第三存储位置处;以及将对象标识符存储在与该区域相关联的第四存储位置处。
N.存储可由处理器执行的指令的一个或多个非暂时性计算机可读介质,其中当指令被执行时,使处理器执行以下操作,包括:接收表示三维模拟环境的数据;生成三维模拟环境的二维视图;确定与二维视图的区域相关联的第一元数据和第二元数据;至少部分地基于二维视图确定第一传感器数据,其中第一传感器数据包括第一元数据;将第一传感器数据提供给被配置为检测第一元数据的第一模拟传感器;至少部分地基于二维视图确定第二传感器数据,其中第二传感器数据包括第二元数据;以及将第二传感器数据提供给被配置为检测第二元数据的第二模拟传感器。
O.段落N的一个或多个非暂时性计算机可读介质,其中:确定第一传感器数据包括:至少部分地基于在三维模拟环境内第一模拟传感器的第一传感器位置来生成二维视图的第一重投影;以及确定第二传感器数据包括:至少部分地基于三维模拟环境内第二模拟传感器的第二传感器位置来生成二维视图的第二重投影,其中第一传感器位置不同于第二传感器位置。
P.段落N的一个或多个非暂时性计算机可读介质,其中:生成第一传感器数据包括:至少部分地基于与第一模拟传感器相关联的第一模拟传感器时间来生成二维视图的第一重投影;以及生成第二传感器数据包括:至少部分地基于与第二模拟传感器相关联的第二模拟传感器时间来生成二维视图的第二重投影,其中第一模拟传感器时间不同于第二模拟传感器时间。
Q.段落N的一个或多个非暂时性计算机可读介质,其中:第一模拟传感器包括相机,以及第一元数据包括与二维视图的区域相关联的光数据;并且第二模拟传感器包括激光雷达传感器或雷达传感器中的至少一个,以及第二元数据包括与二维视图的区域相关联的速度数据或材料数据中的至少一个。
R.段落N的一个或多个非暂时性计算机可读介质,其中,生成第一传感器数据包括:确定三维模拟环境内与第一模拟传感器相关联的第一传感器位置;以及至少部分地基于第一传感器位置和与二维视图相关联的视图焦点位置之间的差异来生成二维视图的重投影,其中生成二维视图包括执行光栅化过程,并且其中生成二维视图的重投影包括执行射线投射过程。
S.段落N的一个或多个非暂时性计算机可读介质,其中,确定第一传感器数据包括:确定与第一模拟传感器相关联的第一模拟传感器时间;以及至少部分地基于第一模拟传感器时间和与生成二维视图相关联的时间之间的时间差来生成二维视图的重投影,其中生成二维视图包括执行光栅化过程,并且其中生成二维视图的重投影包括执行射线投射过程。
T.段落S的一个或多个非暂时性计算机可读介质,该操作还包括:确定在与时间差相关联的时间段期间在三维模拟环境内第一模拟传感器的第一移动;以及确定在该时间段期间在二维视图内表示的模拟对象的第二移动,其中生成二维视图的重投影还至少部分地基于第一移动和第二移动。
U.一种***包括:一个或多个处理器;以及存储计算机可执行指令的一个或多个计算机可读介质,当该计算机可执行指令被执行时,使得一个或多个处理器执行以下操作,包括:接收表示模拟环境的数据;生成模拟环境的二维视图,其中二维视图与模拟环境内的视图焦点位置相关联;确定与模拟环境中的第一模拟传感器相关联的第一传感器位置,以及与模拟环境中第二模拟传感器相关联的第二传感器位置,其中第二传感器位置不同于第一传感器位置;确定模拟环境内的视图焦点位置和第一传感器位置之间的第一空间差;确定模拟环境内的视图焦点位置和第二传感器位置之间的第二空间差;至少部分地基于二维视图和第一空间差来生成第一重投影;至少部分地基于二维视图和第二空间差来生成第二重投影;至少部分地基于第一重投影来确定与第一模拟传感器相关联的第一传感器数据;以及至少部分地基于第二重投影来确定与第二模拟传感器相关联的第二传感器数据。
V.段落U的***,该操作还包括:确定与第一模拟传感器相关联的第一执行速率;以及确定与第二模拟传感器相关联的第二执行速率,其中第一执行速率不同于第二执行速率。
W.段落U的***,该操作还包括:生成模拟环境的第二二维视图,其中二维视图以第一角度定向,而第二二维视图以不同于第一角度的第二角度定向,其中第二二维视图与第二视图焦点位置相关联;确定模拟环境内第二视图焦点位置和第一传感器位置之间的第三空间差;以及至少部分地基于第二二维视图和第三空间差来生成第三重投影,其中第一传感器数据的第一部分是基于二维视图的第一重投影来确定的,而第一传感器数据的第二部分是基于第二二维视图的第三重投影来确定的。
X.段落U的***,该操作还包括:在模拟期间在第一时间确定第一模拟传感器的第一取向,其中至少部分地基于第一取向生成二维视图的第一重投影;在第一时间之后的模拟期间的第二时间确定第一模拟传感器的第二取向;至少部分地基于第二取向来确定第二二维视图;至少部分地基于第二二维视图的第三重投影来确定与第一模拟传感器相关联的第三传感器数据;以及在与第二时间相关联的模拟期间的一段时间内确定与第一模拟传感器相关联的第三传感器数据。
Y.段落U的***,该操作还包括:确定与生成二维视图相关联的渲染时间;以及确定与第一模拟传感器相关联的模拟传感器时间,其中至少部分地基于与生成二维视图相关联的渲染时间和与第一模拟传感器相关联的模拟传感器时间之间的时间差生成第一重投影。
Z.一种方法包括:接收表示模拟环境的数据;确定模拟环境内第一模拟传感器的第一视场;至少部分地基于第一视场生成第一模拟传感器的第一传感器数据;确定模拟环境内第二模拟传感器的第二视场,其中第二视场与第一视场至少部分地重叠;以及至少部分地基于第二视场生成第二模拟传感器的第二传感器数据,其中第二传感器数据至少部分地基于第一传感器数据。
AA.段落Z的方法,还包括:使用光栅化过程生成模拟环境的二维视图,其中生成第一传感器数据包括:至少部分地基于第一视场生成二维视图的第一重投影,并且其中生成第二传感器数据包括:至少部分地基于第二视场生成二维视图的第二重投影。
AB.段落AA的方法,其中,生成第一重投影包括:至少部分地基于存储在二维视图内的光数据生成图像;并且其中生成第二重投影包括:至少部分地基于存储在二维视图内的深度数据来生成点云。
AC.段落AA的方法,其中,二维视图与模拟环境内的视图焦点位置相关联,其中生成第一重投影包括:确定视图焦点位置与模拟环境内第一传感器姿态之间的第一空间差,以及至少部分地基于第一空间差执行第一射线投射过程,并且其中生成第二重新投影包括:确定模拟环境内的视图焦点位置和第二传感器姿态之间的第二空间差,以及至少部分地基于第二空间差来执行第二射线投射过程。
AD.段落Z的方法,还包括:确定与第一传感器数据相关联的第一模拟时间;以及确定与第二传感器数据相关联的第二模拟时间,其中第一模拟时间不同于第二模拟时间。
AE.段落AD的方法,还包括:渲染模拟环境的二维视图,其中二维视图与模拟内的渲染时间相关联,其中生成第一传感器数据包括:至少部分地基于渲染时间和第一模拟时间来生成二维视图的第一重投影,并且其中生成第二传感器数据包括:至少部分地基于渲染时间和第二模拟时间来生成二维视图的第二重投影。
AF.段落Z的方法,还包括:渲染模拟环境的第一视图,其中第一视图以第一角度定向并且与模拟环境中的第一焦点位置相关联;以及渲染模拟环境的第二视图,其中第二视图以第二角度定向并且与模拟环境中的第二焦点位置相关联,其中生成第一传感器数据包括:基于第一视图确定第一传感器数据的第一部分,以及基于第二视图确定第一传感器数据的第二部分。
AG.段落Z的方法,其中,生成第一传感器数据包括:使用光栅化过程渲染模拟环境的二维视图,其中二维视图与模拟环境中的视图焦点位置和渲染时间相关联;确定视图焦点位置和与第一传感器相关联的第一传感器姿态之间的空间差;确定渲染时间和与第一传感器相关联的第一模拟时间之间的时间差;以及至少部分地基于空间差和时间差来生成二维视图的重投影。
AH.存储可由处理器执行的指令的一个或多个非暂时性计算机可读介质,其中该指令在被执行时使得处理器执行以下操作,包括:接收表示模拟环境的数据;确定模拟环境内第一模拟传感器的第一视场;至少部分地基于第一视场生成第一模拟传感器的第一传感器数据;确定模拟环境内第二模拟传感器的第二视场,其中第二视场与第一视场至少部分地重叠;以及至少部分地基于第二视场生成第二模拟传感器的第二传感器数据,其中第二传感器数据至少部分地基于第一传感器数据。
AI.段落AH的一个或多个非暂时性计算机可读介质,该操作还包括:使用光栅化过程生成模拟环境的二维视图,其中生成第一传感器数据包括:至少部分地基于第一视场生成二维视图的第一重投影,并且其中生成第二传感器数据包括:至少部分地基于第二视场生成二维视图的第二重投影。
AJ.段落AI的一个或多个非暂时性计算机可读介质,其中,生成第一重投影包括:至少部分地基于存储在二维视图内的光数据来生成图像;并且其中生成第二重投影包括:至少部分地基于存储在二维视图内的深度数据来生成点云。
AK.段落AI的一个或多个非暂时性计算机可读介质,其中,二维视图与模拟环境内的视图焦点位置相关联,其中生成第一重投影包括:确定视图焦点位置与模拟环境内第一传感器姿态之间的第一空间差,以及至少部分地基于第一空间差执行第一射线投射过程,并且其中生成第二重新投影包括:确定模拟环境内的视图焦点位置和第二传感器姿态之间的第二空间差,以及至少部分地基于第二空间差执行第二射线投射过程。
AL.段落AH的一个或多个非暂时性计算机可读介质,该操作还包括:确定与第一传感器数据相关联的第一模拟时间;以及确定与第二传感器数据相关联的第二模拟时间,其中第一模拟时间不同于第二模拟时间。
AM.段落AL的一个或多个非暂时性计算机可读介质,该操作还包括:渲染模拟环境的二维视图,其中二维视图与模拟内的渲染时间相关联,其中生成第一传感器数据包括:至少部分地基于渲染时间和第一模拟时间来生成二维视图的第一重投影,并且其中生成第二传感器数据包括:至少部分地基于渲染时间和第二模拟时间来生成二维视图的第二重投影。
AN.段落AM的一个或多个非暂时性计算机可读介质,该操作还包括:渲染模拟环境的第一视图,其中第一视图以第一角度定向并且与模拟环境中的第一焦点位置相关联;以及渲染模拟环境的第二视图,其中第二视图以第二角度定向并且与模拟环境中的第二焦点位置相关联,其中生成第一传感器数据包括:基于第一视图确定第一传感器数据的第一部分,以及基于第二视图确定第一传感器数据的第二部分。
AO.一种***包括:一个或多个处理器;以及存储计算机可执行指令的一个或多个计算机可读介质,当该指令被执行时,使得一个或多个处理器执行以下操作,包括:接收与模拟环境相关的二维视图;确定与模拟环境内的模拟传感器相关联的传感器姿态;至少部分地基于传感器姿态,使用射线投射过程来确定二维视图内的射线交点;至少部分地基于射线交点来确定二维视图内的第一区域和第二区域;从二维视图接收与第一区域相关联的第一深度值和与第二区域相关联的第二深度值;至少部分地基于第一深度值和第二深度值之间的比较来确定与射线交点相关联的物理特性;以及向模拟环境内的模拟车辆提供传感器数据,其中传感器数据包括与射线交点相关联的物理特性。
AP.段落AO的***,其中,确定与射线交点相关联的物理特性包括:确定与第一区域相关联的物理特性的第一样本;确定与第二区域相关联的物理特性的第二样本;将第一深度值和第二深度值之间的差值与阈值进行比较;当差值小于阈值时,至少部分地基于第一样本和第二样本使用线性插值过程来确定与射线交点相关联的物理特性;以及当差值满足或超过阈值时,选择第一样本或第二样本中的一个来确定与射线交点相关联的物理特性。
AQ.段落AO的***,该操作还包括:确定与第一区域相关联的第一对象标识符;以及确定与第二区域相关联的第二对象标识符,其中还至少部分地基于第一对象标识符和第二对象标识符之间的第二比较,确定与射线交点相关联的物理特性。
AR.段落AO的***,该操作还包括:确定模拟环境内模拟传感器的第二传感器姿态,其中传感器姿态与模拟期间的第一时间相关联,以及第二传感器姿态与模拟期间第一时间之后的第二时间相关联;至少部分地基于第二传感器姿态,使用第二射线投射过程,确定二维视图内的第二射线交点,其中第一区域与射线交点相关联,并且其中第二区域与第二条射线交点相关联。
AS.段落AO的***,该操作还包括:通过从与第一区域相关联的二维视图的第一存储位置检索第一样本,确定与第一区域相关联的物理特性的第一样本;以及通过从与第二区域相关联的二维视图的第二存储位置检索第二样本,确定与第二区域相关联的物理特性的第二样本,其中物理特性包括光特性、速度特性、材料特性或反射率特性中的至少一个。
AT.一种方法包括:接收与模拟环境相关的二维视图;确定模拟环境内模拟传感器的传感器姿态;至少部分地基于传感器姿态,使用射线投射过程,确定二维视图内的射线交点;确定与射线交点相关联的二维视图的区域;确定与二维视图的区域相关联的属性值,其中该属性值包括深度值、对象标识符或速度值中的至少一个;至少部分地基于属性值来确定与射线交点相关联的物理特性的值;以及确定与模拟传感器相关联的传感器数据,其中传感器数据包括物理特性的值。
AU.段落AT的方法,还包括:确定二维视图的第二区域;以及确定与二维视图的第二区域相关联的第二属性值,其中确定与射线交点相关联的物理特性的值至少部分地基于:与该区域相关联的属性值和与第二区域相关联的第二属性值进行比较。
AV.段落AU的方法,还包括:确定该属性值与第二属性值之间的差值小于阈值;以及基于确定差值小于阈值:确定与该区域相关联的物理特性的第二值;确定与第二区域相关的物理特性的第三值;以及执行至少包括第二值和第三值的线性插值过程,其中与射线交点相关的物理特性的值是基于线性插值过程确定的。
AW.段落AU的方法,还包括:确定属性值与第二属性值之间的差值满足或超过阈值;以及基于确定差值满足或超过阈值:将该区域或第二区域确定为在二维视图内空间上距射线交点较近的区域;确定与空间上较近的区域相关联的物理特性的第二值;以及将与射线交点相关联的物理特性的值确定为空间上与较近的区域相关联的物理特性的第二值。
AX.段落AU的方法,还包括:确定模拟环境内模拟传感器的第二传感器姿态,其中传感器姿态与模拟期间的第一时间相关联,并且第二传感器姿态与模拟期间第一时间之后的第二时间相关联;以及至少部分地基于第二传感器姿态,使用第二射线投射过程,确定二维视图内的第二射线交点,其中该区域与射线交点相关联,并且其中第二区域与第二射线交点相关联。
AY.段落AX的方法,还包括:确定二维视图***线交点与第二射线交点之间的距离,其中确定与射线交点相关联的物理特性的值还至少部分地基于该距离。
AZ.段落AT的方法,还包括:确定二维视图的第二区域,其中第二区域与该区域相邻;确定与第二区域相关联的第二属性值;确定二维视图的第三区域,其中第三区域与该区域相邻,位于该区域的与第二区域不同的一侧;以及确定与第三区域相关联的第三属性值,其中确定与射线交点相关联的物理特性的值至少部分地基于:将属性值、第二属性值和第三属性值进行比较。
BA.段落AT的方法,还包括:确定与该区域相关联的物理特性的第二值,其中该物理特性包括光特性、速度特性、材料特性或反射率特性中的至少一个,其中确定与射线交点相关联的物理特性的值至少部分地基于:与该区域相关联的物理特性的第二值。
BB.存储可由处理器执行的指令的一个或多个非暂时性计算机可读介质,其中该指令在被执行时使得处理器执行以下操作,包括:接收与模拟环境相关联的二维视图;确定模拟环境内模拟传感器的传感器姿态;至少部分地基于传感器姿态,使用射线投射过程,确定二维视图内的射线交点;确定与射线交点相关联的二维视图的区域;确定与二维视图的区域相关联的属性值,其中该属性值包括深度值、对象标识符或速度值中的至少一个;至少部分地基于属性值来确定与射线交点相关联的物理特性的值;以及确定与模拟传感器相关联的传感器数据,其中传感器数据包括物理特性的值。
BC.段落BB的一个或多个非暂时性计算机可读介质,该操作还包括:确定二维视图的第二区域;以及确定与二维视图的第二区域相关联的第二属性值,其中确定与射线交点相关联的物理特性的值至少部分地基于:将与该区域相关联的属性值和与第二区域相关联的第二属性值进行比较。
BD.段落BC的一个或多个非暂时性计算机可读介质,该操作还包括:确定该属性值与第二属性值之间的差值小于阈值;以及基于确定差值小于阈值:确定与该区域相关联的物理特性的第二值;确定与第二区域相关的物理特性的第三值;以及执行至少包括第二值和第三值的线性插值过程,其中,与射线交点相关的物理特性的值是基于线性插值过程确定的。
BE.段落BC的一个或多个非暂时性计算机可读介质,该操作还包括:确定属性值与第二属性值之间的差值满足或超过阈值;以及基于确定差值满足或超过阈值:将该区域或第二区域确定为在二维视图内空间上距射线交点较近的区域;确定与空间上较近的区域相关联的物理特性的第二值;以及将与射线交点相关联的物理特性的值确定为与空间上较近的区域相关联的物理特性的第二值。
BF.段落BC的一个或多个非暂时性计算机可读介质,该操作还包括:确定模拟环境内模拟传感器的第二传感器姿态,其中传感器姿态与模拟期间的第一时间相关联,并且第二传感器姿态与模拟期间第一时间之后的第二时间相关联;以及至少部分地基于第二传感器姿态,使用第二射线投射过程,确定二维视图内的第二射线交点,其中该区域与射线交点相关联,并且其中第二区域与第二射线交点相关联。
BG.段落BF的一个或多个非暂时性计算机可读介质,该操作还包括:确定二维视图***线交点与第二射线交点之间的距离,其中确定与射线交点相关联的物理特性的值还至少部分地基于该距离。
BH.段落BB的一个或多个非暂时性计算机可读介质,该操作还包括:确定二维视图的第二区域,其中第二区域与该区域相邻;确定与第二区域相关联的第二属性值;确定二维视图的第三区域,其中第三区域与该区域相邻,位于该区域的与第二区域不同的一侧;以及确定与第三区域相关联的第三属性值,其中确定与射线交点相关联的物理特性的值至少部分地基于:将属性值、第二属性值和第三属性值进行比较。
BI.一种***包括:一个或多个处理器;以及存储计算机可执行指令的一个或多个计算机可读介质,当该指令被执行时,使得一个或多个处理器执行以下操作,包括:接收表示与驾驶模拟相关的三维模拟环境的数据;确定与三维模拟环境中的模拟车辆相关联的第一传感器和第二传感器,第一传感器在三维模拟环境内具有第一位置和第一取向,并且第二传感器在三维模拟环境内具有与第一位置不同的第二位置和与第一取向不同的第二取向;至少部分地基于第一位置和第一取向来确定与第一传感器相关联的三维模拟环境的第一视图;至少部分地基于第二位置和第二取向来确定与第二传感器相关联的三维模拟环境的第二视图;确定与第一传感器相关联的第一数据要求和第一模拟时间;确定与第二传感器相关联的第二数据要求和第二模拟时间;确定与驾驶模拟相关联的图形处理单元(GPU)的渲染时间;确定要在与渲染时间相关联的时间更新的视图,其中要更新的视图是第一视图或第二视图中的一个,并且其中该确定至少部分地基于:第一数据要求、第二数据要求、第一模拟时间、第二模拟时间;以及使用GPU在与渲染时间相关联的时间生成要更新的视图的更新渲染。
BJ.段落BI的***,其中:确定与第一传感器相关联的第一数据要求包括:确定第一类型的传感器数据,其被配置为由第一传感器接收;以及确定与第二传感器相关联的第二数据要求包括:确定第二类型的传感器数据,其被配置为由第二传感器接收,其中第二类型的传感器数据不同于第一类型的传感器数据。
BK.段落BI的***,该操作还包括:确定在三维模拟环境内模拟车辆的移动方向,其中确定要更新的视图还基于:第一取向、第二取向和移动方向。
BL.段落BI的***,其中,确定要更新的视图包括:确定与第一传感器相关联的第一传感器视场;确定与第二传感器相关联的第二传感器视场;以及确定待更新的视图既包括第一传感器视场又包括第二传感器视场。
BM.段落BI的***,其中,确定要更新的视图包括以下至少一个:将第一视图中表示的第一数量的动态模拟对象与第二视图中表示的第二数量的动态模拟对象进行比较;或者将第一视图中表示的第一模拟对象的第一速度与第二视图中表示的第二模拟对象的第二速度进行比较。
BN.一种方法包括:确定与三维模拟环境的第一视图相关联的第一传感器;确定与三维模拟环境的第二视图相关联的第二传感器;确定与第一传感器相关联的第一数据要求和第一模拟时间;确定与第二传感器相关联的第二数据要求和第二模拟时间;确定与三维模拟环境相关联的GPU的渲染时间;确定要在与渲染时间相关联的时间更新的视图,其中要更新的视图是第一视图或第二视图中的一个,并且其中确定视图至少部分地基于:第一数据要求、第二数据需求、第一模拟时间、第二模拟时间;以及在与渲染时间相关联的时间使用GPU生成要更新的视图。
BO.段落BN的方法,其中:确定与第一传感器相关联的第一数据要求包括:至少部分地基于在三维模拟环境内第一传感器的第一位置和第一取向来确定第一传感器视场;以及确定与第二传感器相关联的第二数据要求包括:至少部分地基于三维模拟环境内第二传感器的第二位置和第二取向来确定第二传感器视场,其中第二传感器视场不同于第一传感器视场。
BP.段落BN的方法,其中:确定与第一传感器相关联的第一数据要求包括:确定第一类型的传感器数据,其被配置为由第一传感器接收;以及确定与第二传感器相关联的第二数据要求包括:确定第二类型的传感器数据,其被配置为由第二传感器接收,其中第二类型的传感器数据不同于第一类型的传感器数据。
BQ.段落BN的方法,还包括:确定在三维模拟环境内第一传感器的第一取向角以及在三维模拟环境内第二传感器的第二取向角;以及确定在三维模拟环境内第一传感器和第二传感器中的至少一个的移动方向,其中确定要更新的视图还基于:第一取向角、第二取向角和移动方向。
BR.段落BN的方法,还包括:确定与第一传感器相关联的第一执行速率以及与第二传感器相关联的第二执行速率;以及确定与GPU相关联的渲染速率,其中确定要更新的视图还基于:第一执行速率、第二执行速率和与GPU相关联的渲染速率。
BS.段落BR的方法,还包括:确定与GPU相关联的GPU延迟,其中确定要更新的视图还基于该GPU延迟。
BT.段落BN的方法,其中,确定要更新的视图包括:确定与第一传感器相关联的第一传感器视场;确定与第二传感器相关联的第二传感器视场;以及确定待更新的视图既包括第一传感器视场又包括第二传感器视场。
BU.段落BN的方法,其中,确定要更新的视图包括以下至少一个:将第一视图中表示的第一数量的动态模拟对象与第二视图中表示的第二数量的动态模拟对象进行比较;或者将第一视图中表示的第一模拟对象的第一速度与第二视图中表示的第二模拟对象的第二速度进行比较。
BV.存储可由处理器执行的指令的一个或多个非暂时性计算机可读介质,其中该指令在被执行时使得处理器执行以下操作,包括:确定与三维模拟环境的第一视图相关联的第一传感器;确定与三维模拟环境的第二视图相关联的第二传感器;确定与第一传感器相关联的第一数据要求和第一模拟时间;确定与第二传感器相关联的第二数据要求和第二模拟时间;确定与三维模拟环境相关联的GPU的渲染时间;确定要在与渲染时间相关联的时间更新的视图,其中要更新的视图是第一视图或第二视图中的一个,并且其中确定视图至少部分地基于:第一数据要求,第二数据需求、第一模拟时间、第二模拟时间;以及在与渲染时间相关联的时间使用GPU生成要更新的视图。
BW.段落BV的一个或多个非暂时性计算机可读介质,其中:确定与第一传感器相关联的第一数据要求包括:至少部分地基于在三维模拟环境内第一传感器的第一位置和第一取向来确定第一传感器视场;以及确定与第二传感器相关联的第二数据要求包括:至少部分地基于三维模拟环境内第二传感器的第二位置和第二取向来确定第二传感器视场,其中第二传感器视场不同于第一传感器视场。
BX.段落BV的一个或多个非暂时性计算机可读介质,其中:确定与第一传感器相关联的第一数据要求包括:确定第一类型的传感器数据,其被配置为由第一传感器接收;以及确定与第二传感器相关联的第二数据要求包括:确定第二类型的传感器数据,其被配置为由第二传感器接收,其中第二类型的传感器数据不同于第一类型的传感器数据。
BY.段落BV的一个或多个非暂时性计算机可读介质,该操作还包括:确定在三维模拟环境内第一传感器的第一取向角以及在三维模拟环境内第二传感器的第二取向角;以及确定在三维模拟环境内第一传感器和第二传感器中的至少一个的移动方向,其中确定要更新的视图还基于:第一取向角、第二取向角和移动方向。
BZ.段落BV的一个或多个非暂时性计算机可读介质,该操作还包括:确定与第一传感器相关联的第一执行速率以及与第二传感器相关联的第二执行速率;以及确定与GPU相关联的渲染速率,其中确定要更新的视图还基于:第一执行速率、第二执行速率和与GPU相关联的渲染速率。
CA.段落BV的一个或多个非暂时性计算机可读介质,其中,确定要更新的视图包括:确定与第一传感器相关联的第一传感器视场;确定与第二传感器相关联的第二传感器视场;以及确定待更新的视图既包括第一传感器视场又包括第二传感器视场。
CB.段落BV的一个或多个非暂时性计算机可读介质,其中,确定要更新的视图包括以下至少一个:将第一视图中表示的第一数量的动态模拟对象与第二视图中表示的第二数量的动态模拟对象进行比较;或者将第一视图中表示的第一模拟对象的第一速度与第二视图中表示的第二模拟对象的第二速度进行比较。
虽然上述示例条款是针对一种特定实现方式进行描述的,但应理解,在本文的上下文中,示例条款的内容还可以通过方法、设备、***、计算机可读介质来实现和/或其他实施方式来实现。此外,任何示例A-CB可以单独实施或与任何其他一个或多个示例A-CB组合实施。
结论
虽然已经描述了本文描述的技术的一个或多个示例,但是其各种改变、添加、排列及其等同物包括在本文描述的技术的范围内。
在示例的描述中,参考了形成其一部分的附图,附图通过说明的方式示出了所要求保护的主题的具体示例。应当理解,可以使用其他示例并且可以进行改变或改变,例如结构改变。此类示例、改变或变更不一定偏离所要求保护的主题的范围。虽然本文中的步骤可以按特定顺序呈现,但在一些情况下,可以改变顺序,使得在不同时间或以不同顺序提供特定输入,而不改变所描述的***和方法的功能。所公开的过程也可以以不同的顺序执行。另外,本文中的各种计算不需要按照所公开的顺序来执行,并且可以容易地实现使用计算的替代排序的其他示例。除了重新排序之外,计算还可以分解为具有相同结果的子计算。
尽管已经以特定于结构特征和/或方法动作的语言描述了主题,但是应当理解,所附权利要求中定义的主题不一定限于所描述的特定特征或动作。相反,具体特征和动作被公开为实现权利要求的示例形式。
本文描述的组件表示可以存储在任何类型的计算机可读介质中并且可以以软件和/或硬件实现的指令。上述所有方法和过程可以体现在由一台或多台计算机或处理器、硬件或其某种组合执行的软件代码和/或计算机可执行指令中,并且经由软件代码和/或计算机可执行指令完全自动化。这些方法中的一些或全部可以替代地体现在专用计算机硬件中。
除非另有明确说明,诸如“可能”、“可能”、“可能”或“可能”等条件性语言在上下文中被理解为表示某些示例包括,而其他示例不包括某些特征、元素和/或步骤。因此,这种有条件的语言通常不旨在暗示某些特征、元素和/或步骤以任何方式对于一个或多个示例是必需的,或者一个或多个示例必须包括用于在有或没有用户输入或提示的情况下做出决定的逻辑,在任何特定示例中是否包括或将要执行某些特征、元素和/或步骤。
除非另有明确说明,否则诸如短语“X、Y或Z中的至少一个”之类的连词语言应理解为表示项目、术语等可以是X、Y或Z,或任何组合,其中,包括每个元素的倍数。除非明确描述为单数,否则“一个”表示单数和复数。
在此描述和/或在附图中描绘的流程图中的任何例程描述、元素或框应被理解为潜在地表示模块、段或代码部分,其包括用于实现特定逻辑功能的一个或多个计算机可执行指令或例程中的元素。替代实现包括在本文描述的示例的范围内,其中元素或功能可以被删除,或与所示出或讨论的内容无序执行,包括基本上同步地、以相反的顺序、具有附加操作或省略操作,这取决于本领域技术人员将理解所涉及的功能。
可以对上述示例进行许多变化和修改,其中的元素将被理解为在其他可接受的示例中。所有这样的修改和变化都旨在包括在本公开的范围内并受以下权利要求保护。
Claims (15)
1.一种***,包括:
一个或多个处理器;以及
存储计算机可执行指令的一个或多个计算机可读介质,当所述计算机可执行指令被执行时,使得所述一个或多个处理器执行以下操作,包括:
接收表示三维模拟环境的数据;
生成所述三维模拟环境的二维视图;
确定与所述二维视图的区域相关联的第一元数据和第二元数据;
至少部分地基于所述二维视图,确定第一传感器数据,其中,所述第一传感器数据包括所述第一元数据;
将所述第一传感器数据提供给被配置为检测所述第一元数据的第一模拟传感器;
至少部分地基于所述二维视图,确定第二传感器数据,其中,所述第二传感器数据包括所述第二元数据;以及
将所述第二传感器数据提供给被配置为检测所述第二元数据的第二模拟传感器。
2.根据权利要求1所述的***,其中:
确定所述第一传感器数据包括:至少部分地基于在所述三维模拟环境内所述第一模拟传感器的第一传感器位置来生成所述二维视图的第一重投影;以及
确定所述第二传感器数据包括:至少部分地基于在所述三维模拟环境内所述第二模拟传感器的第二传感器位置来生成所述二维视图的第二重投影,其中,所述第一传感器位置不同于所述第二传感器位置。
3.根据权利要求1或2所述的***,其中:
生成所述第一传感器数据包括:至少部分地基于与所述第一模拟传感器相关联的第一模拟传感器时间来生成所述二维视图的第一重投影;以及
生成所述第二传感器数据包括:至少部分地基于与所述第二模拟传感器相关联的第二模拟传感器时间来生成所述二维视图的第二重投影,其中,所述第一模拟传感器时间不同于所述第二模拟传感器时间。
4.根据权利要求1至3中任一项所述的***,其中:
所述第一模拟传感器包括相机,并且所述第一元数据包括与所述二维视图的区域相关联的光数据;以及
所述第二模拟传感器包括激光雷达传感器或雷达传感器中的至少一个,并且所述第二元数据包括与所述二维视图的区域相关联的速度数据或材料数据中的至少一个。
5.根据权利要求1至4中任一项所述的***,其中,生成所述第一传感器数据包括:
确定所述三维模拟环境内与所述第一模拟传感器相关联的第一传感器位置;以及
至少部分地基于所述第一传感器位置和与所述二维视图相关联的视图焦点位置之间的差异,生成所述二维视图的重投影,
其中,生成所述二维视图包括执行光栅化过程,以及
其中,生成所述二维视图的重投影包括执行射线投射过程。
6.根据权利要求1至5中任一项所述的***,其中,确定所述第一传感器数据包括:
确定与所述第一模拟传感器相关联的第一模拟传感器时间;以及
至少部分地基于所述第一模拟传感器时间和与生成所述二维视图相关联的时间之间的时间差,生成所述二维视图的重投影,
其中,生成所述二维视图包括执行光栅化过程,以及
其中,生成所述二维视图的重投影包括执行射线投射过程。
7.根据权利要求6所述的***,所述操作还包括:
确定在与所述时间差相关联的时间段期间在所述三维模拟环境内所述第一模拟传感器的第一移动;以及
确定在所述时间段期间所述二维视图内表示的模拟对象的第二移动,
其中,生成所述二维视图的重投影还至少部分地基于所述第一移动和所述第二移动。
8.根据权利要求1至7中任一项所述的***,其中,生成所述二维视图包括:
将相机数据存储在与所述区域相关联的第一存储位置处;
将激光雷达数据存储在与所述区域相关联的第二存储位置处;
将雷达数据存储在与所述区域相关联的第三存储位置处;以及
将对象标识符存储在与所述区域相关联的第四存储位置处。
9.一种方法,包括:
接收表示三维模拟环境的数据;
生成所述三维模拟环境的二维视图;
确定与所述二维视图的区域相关联的第一元数据和第二元数据;
至少部分地基于所述二维视图,确定第一传感器数据,其中,所述第一传感器数据包括所述第一元数据;
将所述第一传感器数据提供给被配置为检测所述第一元数据的第一模拟传感器;
至少部分地基于所述二维视图,确定第二传感器数据,其中,所述第二传感器数据包括所述第二元数据;以及
将所述第二传感器数据提供给被配置为检测所述第二元数据的第二模拟传感器。
10.根据权利要求9所述的方法,其中:
确定所述第一传感器数据包括:至少部分地基于在所述三维模拟环境内所述第一模拟传感器的第一传感器位置来生成所述二维视图的第一重投影;以及
确定所述第二传感器数据包括:至少部分地基于在所述三维模拟环境内所述第二模拟传感器的第二传感器位置来生成所述二维视图的第二重投影,其中,所述第一传感器位置不同于所述第二传感器位置。
11.根据权利要求9或10所述的方法,其中:
生成所述第一传感器数据包括:至少部分地基于与所述第一模拟传感器相关联的第一模拟传感器时间来生成所述二维视图的第一重投影;以及
生成所述第二传感器数据包括:至少部分地基于与所述第二模拟传感器相关联的第二模拟传感器时间来生成所述二维视图的第二重投影,其中,所述第一模拟传感器时间不同于所述第二模拟传感器时间。
12.根据权利要求9至11中任一项所述的方法,其中:
所述第一模拟传感器包括相机,并且所述第一元数据包括与所述二维视图的区域相关联的光数据;以及
所述第二模拟传感器包括激光雷达传感器或雷达传感器中的至少一个,并且所述第二元数据包括与所述二维视图的区域相关联的速度数据或材料数据中的至少一个。
13.根据权利要求9至12中任一项所述的方法,其中,生成所述第一传感器数据包括:
确定所述三维模拟环境内与所述第一模拟传感器相关联的第一传感器位置;以及
至少部分地基于所述第一传感器位置和与所述二维视图相关联的视图焦点位置之间的差异,生成所述二维视图的重投影,
其中,生成所述二维视图包括执行光栅化过程,以及
其中,生成所述二维视图的重投影包括执行射线投射过程。
14.根据权利要求9至13中任一项所述的方法,其中,确定所述第一传感器数据包括:
确定与所述第一模拟传感器相关联的第一模拟传感器时间;以及
至少部分地基于所述第一模拟传感器时间和与生成所述二维视图相关联的时间之间的时间差,生成所述二维视图的重投影,
其中,生成所述二维视图包括执行光栅化过程,以及
其中,生成所述二维视图的重投影包括执行射线投射过程。
15.一个或多个非暂时性计算机可读介质,其包括指令,当所述指令由一个或多个处理器执行时,使得所述一个或多个处理器执行根据权利要求9-14中任一项所述的方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/321,205 | 2021-05-14 | ||
US17/321,205 US11741661B2 (en) | 2021-05-14 | 2021-05-14 | Sensor simulation with unified multi-sensor views |
PCT/US2022/029044 WO2022241149A1 (en) | 2021-05-14 | 2022-05-12 | Sensor simulation with unified multi-sensor views |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117295647A true CN117295647A (zh) | 2023-12-26 |
Family
ID=83998708
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202280034685.4A Pending CN117295647A (zh) | 2021-05-14 | 2022-05-12 | 具有统一的多传感器视图的传感器模拟 |
Country Status (5)
Country | Link |
---|---|
US (1) | US11741661B2 (zh) |
EP (1) | EP4337506A1 (zh) |
JP (1) | JP2024518570A (zh) |
CN (1) | CN117295647A (zh) |
WO (1) | WO2022241149A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11336887B2 (en) * | 2019-09-03 | 2022-05-17 | Facebook Technologies, Llc | Adaptive shading and reprojection |
US11715257B2 (en) | 2021-05-14 | 2023-08-01 | Zoox, Inc. | Simulation view generation based on simulated sensor operations |
WO2024098163A1 (en) * | 2022-11-11 | 2024-05-16 | Waabi Innovation Inc. | Neural hash grid based multi-sensor simulation |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7952583B2 (en) | 2000-06-19 | 2011-05-31 | Mental Images Gmbh | Quasi-monte carlo light transport simulation by efficient ray tracing |
GB201305402D0 (en) | 2013-03-25 | 2013-05-08 | Sony Comp Entertainment Europe | Head mountable display |
US9996976B2 (en) * | 2014-05-05 | 2018-06-12 | Avigilon Fortress Corporation | System and method for real-time overlay of map features onto a video feed |
US20160210775A1 (en) | 2015-01-21 | 2016-07-21 | Ford Global Technologies, Llc | Virtual sensor testbed |
JP6643775B2 (ja) | 2015-01-29 | 2020-02-12 | 株式会社バンダイナムコエンターテインメント | ゲーム機、ゲームシステム及びプログラム |
US10086955B2 (en) | 2015-10-23 | 2018-10-02 | The Boeing Company | Pattern-based camera pose estimation system |
US10909721B2 (en) | 2016-06-29 | 2021-02-02 | Seeing Machines Limited | Systems and methods for identifying pose of cameras in a scene |
US10555132B2 (en) | 2017-06-23 | 2020-02-04 | Here Global B.V. | Metric for evaluating indoor positioning systems |
US20190278698A1 (en) * | 2018-03-07 | 2019-09-12 | RightHook, Inc. | Autonomous Vehicle Simulation And Testing |
CN108470323B (zh) | 2018-03-13 | 2020-07-31 | 京东方科技集团股份有限公司 | 一种图像拼接方法、计算机设备及显示装置 |
CN109271893B (zh) | 2018-08-30 | 2021-01-01 | 百度在线网络技术(北京)有限公司 | 一种仿真点云数据的生成方法、装置、设备及存储介质 |
SG11201811415SA (en) | 2018-11-16 | 2020-06-29 | Beijing Didi Infinity Technology & Development Co Ltd | Systems and methods for positioning vehicles under poor lighting conditions |
US11170299B2 (en) | 2018-12-28 | 2021-11-09 | Nvidia Corporation | Distance estimation to objects and free-space boundaries in autonomous machine applications |
EP3948794B1 (en) | 2019-03-23 | 2023-01-25 | Uatc, Llc | Systems and methods for generating synthetic sensor data via machine learning |
JP6697115B2 (ja) | 2019-06-14 | 2020-05-20 | 株式会社カンデラジャパン | 移動体用画像生成記録表示装置及びプログラム |
US11249479B2 (en) | 2019-07-18 | 2022-02-15 | Nissan North America, Inc. | System to recommend sensor view for quick situational awareness |
US11126891B2 (en) * | 2019-09-11 | 2021-09-21 | Toyota Research Institute, Inc. | Systems and methods for simulating sensor data using a generative model |
US11663377B2 (en) * | 2019-09-27 | 2023-05-30 | Woven Planet North America, Inc. | Sensor arrangement validation using simulated environments |
US11308682B2 (en) | 2019-10-28 | 2022-04-19 | Apical Limited | Dynamic stereoscopic rendering method and processor |
US11494995B2 (en) * | 2019-10-29 | 2022-11-08 | Magic Leap, Inc. | Systems and methods for virtual and augmented reality |
US11409927B2 (en) * | 2020-09-22 | 2022-08-09 | Beijing Voyager Technology Co., Ltd. | Architecture for configurable distributed system simulation timing |
-
2021
- 2021-05-14 US US17/321,205 patent/US11741661B2/en active Active
-
2022
- 2022-05-12 CN CN202280034685.4A patent/CN117295647A/zh active Pending
- 2022-05-12 JP JP2023570224A patent/JP2024518570A/ja active Pending
- 2022-05-12 EP EP22808364.8A patent/EP4337506A1/en active Pending
- 2022-05-12 WO PCT/US2022/029044 patent/WO2022241149A1/en active Application Filing
Also Published As
Publication number | Publication date |
---|---|
US11741661B2 (en) | 2023-08-29 |
US20220366636A1 (en) | 2022-11-17 |
WO2022241149A1 (en) | 2022-11-17 |
EP4337506A1 (en) | 2024-03-20 |
JP2024518570A (ja) | 2024-05-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11941873B2 (en) | Determining drivable free-space for autonomous vehicles | |
US11966673B2 (en) | Sensor simulation and learning sensor models with generative machine learning methods | |
CN110352153B (zh) | 自主车辆中用于障碍物躲避的安全程序分析 | |
US11390301B2 (en) | Tensor-based driving scenario characterization | |
US11977386B2 (en) | Adversarial scenarios for safety testing of autonomous vehicles | |
CN113139642B (zh) | 在自主驾驶应用中使用神经网络执行故障检测 | |
US20220138568A1 (en) | Model-based reinforcement learning for behavior prediction | |
WO2021262603A1 (en) | Sensor fusion for autonomous machine applications using machine learning | |
WO2021042051A1 (en) | Map creation and localization for autonomous driving applications | |
WO2021138010A1 (en) | Three-dimensional intersection structure prediction for autonomous driving applications | |
US11652982B2 (en) | Applications for detection capabilities of cameras | |
US11275673B1 (en) | Simulated LiDAR data | |
CN113496290A (zh) | 使用采用模拟对象增强的图像训练机器学习模型 | |
CN110618678A (zh) | 自主机器应用中的行为引导路径规划 | |
WO2019241022A1 (en) | Path detection for autonomous machines using deep neural networks | |
CN111095291A (zh) | 由自动驾驶车辆实时检测车道和边界 | |
US11715257B2 (en) | Simulation view generation based on simulated sensor operations | |
US11544896B2 (en) | Spatial and temporal upsampling techniques for simulated sensor data | |
US11741661B2 (en) | Sensor simulation with unified multi-sensor views | |
US11926346B2 (en) | Behavior planning for autonomous vehicles in yield scenarios | |
US20230213945A1 (en) | Obstacle to path assignment for autonomous systems and applications | |
CN116051779A (zh) | 用于自主***和应用的使用深度神经网络利用点云致密化的3d表面重建 | |
CN116048060A (zh) | 用于自主***和应用的使用神经网络基于真实世界数据的3d表面结构估计 | |
CN116051780A (zh) | 用于自主***和应用的使用人工智能利用点云致密化的3d表面重建 | |
US20230311932A1 (en) | Merging object and background radar data for autonomous driving simulations |
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 |