CN115731350A - 车辆的虚拟激光雷达的仿真方法及其装置 - Google Patents
车辆的虚拟激光雷达的仿真方法及其装置 Download PDFInfo
- Publication number
- CN115731350A CN115731350A CN202211478381.5A CN202211478381A CN115731350A CN 115731350 A CN115731350 A CN 115731350A CN 202211478381 A CN202211478381 A CN 202211478381A CN 115731350 A CN115731350 A CN 115731350A
- Authority
- CN
- China
- Prior art keywords
- laser
- laser beam
- triangular surface
- target
- virtual
- 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
Images
Landscapes
- Optical Radar Systems And Details Thereof (AREA)
Abstract
提供了一种车辆的虚拟激光雷达的仿真方法及装置,其中,仿真方法包括:提供虚拟场景,虚拟场景包括多个环境物体模型;基于真实激光雷达的参数,初始化虚拟激光雷达的发射参数和扫描周期,虚拟激光雷达配置为在每个扫描周期内根据发射参数发射多个激光线束;针对同一扫描周期中发射的多个激光线束中的每个激光线束:确定与该激光线束相交的至少一个目标三角面;计算该激光线束与至少一个目标三角面中的每个目标三角面的交点位置;至少根据至少一个目标三角面的物理参数确定该激光线束返回至虚拟激光雷达时的返回能量强度;确定该激光线束的行进距离;以及至少根据该扫描周期中的多个激光线束的交点位置、返回能量强度以及行进距离生成关于虚拟场景的点云数据。
Description
技术领域
本公开涉及激光雷达仿真技术领域,特别是涉及一种车辆的虚拟激光雷达的仿真方法及其装置、用于训练激光雷达的颜色预测模型的样本数据的生成方法、用于激光雷达的颜色预测模型的训练方法、一种计算机设备、一种车辆、一种计算机可读存储介质以及一种计算机程序产品。
背景技术
激光雷达(LiDAR)广泛应用于自动驾驶汽车、无人机、自主机器人、卫星、火箭等。激光雷达通过发射激光以测定激光雷达与目标物体之间的传播距离。激光雷达还可以通过分析目标物体表面的反射能量大小、反射波谱的幅度、频率和相位等信息,输出点云数据,从而呈现出目标物精确的三维结构信息,进而生成目标物体的三维图像。
激光雷达仿真技术在自动驾驶、无人机以及机器人等领域有着广泛应用。在仿真平台上,激光雷达仿真技术可以提供激光雷达传感器的仿真点云数据。仿真点云数据可以用于对真实的激光雷达进行分析,从而后续对真实的激光雷达进行改进。另外,仿真点云数据还可以用于移动机器人感知、路径规划、控制以及定位导航等。
在此部分中描述的方法不一定是之前已经设想到或采用的方法。除非另有指明,否则不应假定此部分中描述的任何方法仅因其包括在此部分中就被认为是现有技术。类似地,除非另有指明,否则此部分中提及的问题不应认为在任何现有技术中已被公认。
发明内容
提供一种缓解、减轻或甚至消除上述问题中的一个或多个的机制将是有利的。
根据本公开的一方面,提供了一种车辆的虚拟激光雷达的仿真方法,包括:提供虚拟场景,虚拟场景包括多个环境物体模型,虚拟场景中的每个环境物体模型被构造为由多个三角面构成,其中,每个三角面都具有根据该三角面所在的环境物体模型的物体类型而确定的物理参数;基于真实激光雷达的参数,初始化虚拟激光雷达的发射参数和扫描周期,虚拟激光雷达配置为在每个扫描周期内根据发射参数发射多个激光线束,其中,发射参数包括激光线束的发射角度和发射时序;针对同一扫描周期中发射的多个激光线束中的每个激光线束:根据该激光线束的发射参数以及车辆在该扫描周期中在虚拟场景中的对应位置,确定多个环境物体模型中与该激光线束相交的至少一个目标三角面;计算该激光线束与至少一个目标三角面中的每个目标三角面的交点位置;至少根据至少一个目标三角面的物理参数确定该激光线束返回至虚拟激光雷达时的返回能量强度;根据至少一个目标三角面在虚拟场景中的位置确定该激光线束的行进距离;以及至少根据该扫描周期中发射的多个激光线束的交点位置、返回能量强度以及行进距离生成关于虚拟场景的点云数据。
根据本公开的另一方面,提供了一种用于训练激光雷达的颜色预测模型的样本数据的生成方法,方法包括:提供虚拟场景,虚拟场景包括多个环境物体模型以及真值模型,虚拟场景中的每个环境物体模型被构造为由多个三角面构成,其中,每个三角面都具有根据该三角面所在的环境物体模型的物体类型而确定的物理参数,真值模型表示虚拟场景的颜色布局;基于真实激光雷达的参数,初始化虚拟激光雷达的发射参数和扫描周期,虚拟激光雷达配置为在每个扫描周期内根据发射参数发射多个第一激光线束以及多个第二激光线束,每个第二激光线束与相对应的一个第一激光线束具有相同的发射参数,其中,发射参数包括第一激光线束或第二激光线束的发射角度和发射时序;针对同一扫描周期中发射的多个第一激光线束中的每个第一激光线束:根据该第一激光线束的发射参数以及车辆在该扫描周期中在虚拟场景中的对应位置,确定多个环境物体模型中与该第一激光线束相交的至少一个目标三角面;计算该第一激光线束与至少一个目标三角面中的每个目标三角面的交点位置;至少根据至少一个目标三角面的物理参数确定该第一激光线束返回至虚拟激光雷达时的返回能量强度;根据至少一个目标三角面在虚拟场景中的位置确定该第一激光线束的行进距离;以及至少根据该扫描周期中发射的多个第一激光线束的交点位置、返回能量强度以及行进距离生成关于虚拟场景的点云数据;针对同一扫描周期中发射的多个第二激光线束中的每个第二激光线束:根据该第二激光线束与真值模型的交点位置确定经由该第二激光线束获取到的颜色信息;至少根据该扫描周期中发射的多个第二激光线束获取到的颜色信息生成关于虚拟场景的真实颜色分割图像;以及以点云数据为输入数据,以颜色分割图像为输出数据构造用于训练激光雷达的颜色预测模型的样本数据。
根据本公开的又另一方面,提供了一种用于训练激光雷达的颜色预测模型的样本数据的生成方法,方法包括:提供虚拟场景,虚拟场景包括多个环境物体模型,虚拟场景中的每个环境物体模型被构造为由多个三角面构成,其中,每个三角面都具有根据该三角面所在的环境物体模型的物体类型而确定的物理参数和材质参数;基于真实激光雷达的参数,初始化虚拟激光雷达的发射参数和扫描周期,虚拟激光雷达配置为在每个扫描周期内根据发射参数发射多个激光线束以及多个激光线束,其中,发射参数包括激光线束的发射角度和发射时序;针对同一扫描周期中发射的多个激光线束中的每个激光线束:根据该激光线束的发射参数以及车辆在该扫描周期中在虚拟场景中的对应位置,确定多个环境物体模型中与该激光线束相交的至少一个目标三角面;计算该激光线束与至少一个目标三角面中的每个目标三角面的交点位置;至少根据至少一个目标三角面的物理参数确定该激光线束返回至虚拟激光雷达时的返回能量强度;根据至少一个目标三角面在虚拟场景中的位置确定该激光线束的行进距离;以及根据至少一个目标三角面的材质参数确定该激光线束获取到的颜色信息;至少根据该扫描周期中发射的多个激光线束的交点位置、返回能量强度以及行进距离生成关于虚拟场景的点云数据;至少根据该扫描周期中发射的多个激光线束获取到的颜色信息生成关于虚拟场景的真实颜色分割图像;以及以点云数据为输入数据,以颜色分割图像为输出数据构造用于训练激光雷达的颜色预测模型的样本数据。
根据本公开的再另一方面,提供了一种用于激光雷达的颜色预测模型的训练方法,包括:
获取用于训练激光雷达的颜色预测模型的样本数据集,样本数据集利用上述的用于训练激光雷达的颜色预测模型的样本数据的生成方法生成得到;将样本数据中的点云数据输入到颜色预测模型中,得到颜色分割图像的预测值;根据真实颜色分割图像以及颜色分割图像的预测值之间的差异确定损失值;以及根据损失值调节颜色预测模型的模型参数。
根据本公开的再另一方面,提供了一种计算机设备,包括:至少一个处理器;以及至少一个存储器,其上存储有计算机程序,其中,计算机程序在被至少一个处理器执行时,使至少一个处理器执行上述的方法。
根据本公开的再另一方面,提供了一种车辆,包括上述的装置或上述的计算机设备。
根据本公开的再另一方面,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时,使处理器执行上述的方法。
根据本公开的再另一方面,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时,使处理器执行上述的方法。
根据在下文中所描述的实施例,本公开的这些和其它方面将是清楚明白的,并且将参考在下文中所描述的实施例而被阐明。
附图说明
在下面结合附图对于示例性实施例的描述中,本公开的更多细节、特征和优点被公开,在附图中:
图1是图示出根据示例性实施例的车辆的虚拟激光雷达的仿真方法的流程图;
图2是图示出根据示例性实施例的计算激光线束的返回能量强度的方法的流程图;
图3是图示出根据示例性实施例的计算激光线束经历反射或折射后的能量强度的方法的流程图;
图4是图示出根据示例性实施例的计算激光线束经历反射或折射后的能量强度的方法的流程图;
图5是图示出根据另一示例性实施例的计算激光线束经历反射或折射后的能量强度的方法的流程图;
图6是图示出根据示例性实施例的用于训练颜色预测模型的样本数据的生成方法的流程图;
图7是图示出根据另一示例性实施例的用于训练颜色预测模型的样本数据的生成方法的流程图;
图8是图示出根据示例性实施例的用于激光雷达的颜色预测模型的训练方法的流程图;
图9是图示出根据示例性实施例的车辆的虚拟激光雷达的仿真装置的示意性框图;以及
图10是图示出能够应用于示例性实施例的示例性计算机设备的框图。
具体实施方式
在本公开中,除非另有说明,否则使用术语“第一”、“第二”等来描述各种要素不意图限定这些要素的位置关系、时序关系或重要性关系,这种术语只是用于将一个元件与另一元件区分开。在一些示例中,第一要素和第二要素可以指向该要素的同一实例,而在某些情况下,基于上下文的描述,它们也可以指代不同实例。
在本公开中对各种示例的描述中所使用的术语只是为了描述特定示例的目的,而并非旨在进行限制。除非上下文另外明确地表明,如果不特意限定要素的数量,则该要素可以是一个也可以是多个。如本文使用的,术语“多个”意指两个或更多,并且术语“基于”应解释为“至少部分地基于”。此外,术语“和/或”以及“……中的至少一个”涵盖所列出的项目中的任何一个以及全部可能的组合方式。
在介绍本公开的示例性实施例之前,首先对本文中使用的若干术语进行解释。
1、点云
点云是一种在3D工程中通过测量仪器对目标物体进行数据采集,得到的目标物体表面特性的海量点集合。每个点都包含目标物体的X、Y、Z几何坐标、从物体表面返回的信号的强度值、分类值等信息,而这些点组合在一起,就会形成点云。基于点云可以更真实地还原目标物体的三维效果,实现可视化。
2、激光雷达仿真
由电子设备(例如计算机设备)模拟真实激光雷达发射的激光线束,并确定激光线束的回波信号,从而模拟出真实激光雷达接收到的点云数据。上述模拟的手段是利用电子设备(或计算机设备)的相关程序,模拟的方式是复现包含激光雷达的目标环境信息的雷达信号。
下面结合附图详细描述本公开的示例性实施例。
图1是图示出根据示例性实施例的车辆的虚拟激光雷达的仿真方法100的流程图。方法100可以由进行仿真的电子设备(例如:计算机设备)执行。该电子设备可以为服务器也可以为终端设备,其中,该服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云计算服务的云服务器。终端设备可以是智能手机、平板电脑、笔记本电脑、台式计算机等。参考图1,方法100包括:
步骤110,提供虚拟场景,虚拟场景包括多个环境物体模型,虚拟场景中的每个环境物体模型被构造为由多个三角面构成,其中,每个三角面都具有根据该三角面所在的环境物体模型的物体类型而确定的物理参数;
步骤120,根据真实激光雷达的发射参数和扫描周期,初始化虚拟激光雷达的发射参数和扫描周期,虚拟激光雷达配置为在每个扫描周期内根据发射参数发射多个激光线束,其中,发射参数包括激光线束的发射角度和发射时序;
步骤130,获取每个扫描周期中发射的多个激光线束的交点位置、返回能量强度以及行进距离,以及
步骤140,至少根据该扫描周期中发射的多个激光线束的交点位置、返回能量强度以及行进距离生成关于虚拟场景的点云数据。
其中,步骤130进一步包括:针对同一扫描周期中发射的多个激光线束中的每个激光线束:
步骤131,根据该激光线束的发射参数以及车辆在该扫描周期中在虚拟场景中的对应位置,确定多个环境物体模型中与该激光线束相交的至少一个目标三角面;
步骤132,计算该激光线束与至少一个目标三角面中的每个目标三角面的交点位置;
步骤133,至少根据至少一个目标三角面的物理参数确定该激光线束返回至虚拟激光雷达时的返回能量强度;
步骤134,根据至少一个目标三角面在虚拟场景中的位置确定该激光线束的行进距离。
在步骤110中,虚拟场景可以是基于真实世界创建的三维仿真场景也可以是构造的虚拟世界的三维场景,该三维仿真场景通过相关计算机设备内安装的物理引擎构建。物理引擎包括但不限于Blender,Unreal Engine等物理引擎。物理引擎将生成与虚拟场景相关的多个环境物体模型,例如:虚拟场景可以是某一道路及其周围的环境场景,多个环境物体模型可以包括:道路周围的建筑物、车辆、行人以及植物的模型,甚至可以包括雨滴、雪片等微小的物体模型。上述虚拟场景可以是在物理引擎上直接生成的,也可以是从其他来源(例如:其他计算机设备)导入物理引擎得到的。
可以理解,在物理引擎上生成的环境物体模型是真实物体的近似表示,其并不具有光滑的表面,实际上,环境物体模型的表面是由多个细小的三角面构成的。在生成虚拟场景时,物理引擎会赋予每个三角面相关的参数,以用于后续仿真使用。这些参数包括物理参数,物理参数表征该三角面所在的环境物体的物理特性,这些物理特性主要和光学特性相关,包括但不限于能量吸收率、粗糙度和不透明度等特性。可以理解,这些物理参数根据环境物体类型的不同而有所变化,例如,对于光滑物体和粗糙物体,其粗糙度和不透明度等特性均存在差异。
上述计算机设备包括:储存器,根据真实激光雷达的发射参数,存储器内预先存储虚拟激光雷达各个激光线束的发射参数,该发射参数包括激光线束的发射方向和发射时序。发射方向是指该激光线束在虚拟场景的坐标系中的行进方向,发射时序是指该激光线束在虚拟场景的时间标度下的发射时间点的顺序,可以理解,每个激光线束都以虚拟激光雷达在虚拟场景中的当前位置为发射起点。在步骤120中,可以从储存器读取虚拟激光雷达各个激光线束的发射方向和发射时序,并以一维数组形式保存到内存,然后传送至计算机设备的显存,以供显存模拟这些激光线束。
存储方式可以为四维向量(Vector4)数组,数组长度为激光雷达在一个扫描周期内的总射线数。激光线束在数组内按真实激光雷达中的发射时序依次存储。数组内每个元素(Vector4)分别表示为(x,y,z,t),其中,x、y、z分别表示该激光线束的发射方向,t表示此激光线束与上一次发射的激光线束之间的时间间隔。在另外一些实施例中,发射参数可以包括其他参数,也可以以其他形式进行存储,这里不做限定。
在步骤130中,获取用于仿真各个激光线束的数据,这些数据包括但不限于:激光线束与虚拟场景中的三角面的交点位置、返回能量强度以及行进距离。交点位置将决定该激光线束在最终生成的点云数据中的对应点的位置。返回能量强度将决定该激光线束返回的颜色信息。可以理解,物体本身的颜色实际上由其反射的特定波长(也就是特定能量)的光决定,反射的光被人眼或光学检测装置接收,从而识别出颜色。物体对激光线束的吸收程度决定了它的颜色,因此可以通过激光线束的返回能量强度确定该线束入射到的物体的颜色。行进距离决定点云数据中的对应点的深度,一般而言,行进距离的一半即为虚拟激光雷达与虚拟场景中的被测点之间的距离,也就是点云数据中相应点的深度。
在步骤131中,首先确定虚拟场景中与该激光线束相交的至少一个目标三角面,至少一个目标三角面可以包括该激光线束首次入射到的三角面,还可以包括经其他三角面反射之后的该激光线束入射到的其他三角面。对于激光雷达的每个扫描周期,在计算过激光线束的原点及入射方向后,将激光线束的相关信息发送到计算机设备的光线追踪硬件,并进行激光线束与三角面的相交检测。在步骤132中,可以进一步利用光线追踪硬件确定出激光线束与目标三角面的在虚拟场景坐标系中的交点坐标。通过调用单独的光线追踪硬件,可以实现高性能的实时仿真,且不会影响其他仿真组件的运行。
在步骤133中,至少根据至少一个目标三角面的物理参数确定该激光线束返回至虚拟激光雷达时的返回能量强度。为了准确仿真每条激光线束,需要针对不同的物体设置不同的算法来得到每条线束返回的能量强度。这些线束返回的能量强度将根据上述提及的物理参数进行确定。下文将结合方法200-600详细介绍激光线束入射到不同类型的环境物体之后的返回能量强度的计算方法。
在步骤134中,可以再次利用计算机设备的光线追踪硬件对激光线束的行进距离进行计算。上述行进距离是指该激光线束从虚拟激光雷达发射出来到再次由虚拟激光雷达接收到为止行进的总距离。将上述行进距离除以2可以得到该激光线束的入射点到虚拟激光雷达之间的距离,该距离和点云数据中相应点的深度信息相关。
在步骤140中,根据步骤130中得到的多个激光线束的交点位置、返回能量强度以及行进距离生成关于虚拟场景的点云数据。每个返回的激光线束将最终生成点云数据中的一个点,如上文所述的,激光线束的交点位置、返回能量强度以及行进距离将决定点云数据中对应的点云的参数。
根据本公开一个或多个实施例的仿真方法对虚拟激光雷达发射的每条激光线束进行单独地反射或折射的模拟,从而能够精确地模拟出真实激光雷达的点云数据。另外,针对激光线束入射到的不同类型的环境物体,可以根据不同的物理参数计算激光线束的返回能量强度,从而能够更好地模拟激光线束入射到这些物体表面的真实反射或折射情况,从而进一步提高了模拟的真实性。根据本公开实施例的方法得到的仿真点云数据更加接近真实的激光雷达的点云数据,从而更有利于后续对仿真点云数据的相关分析。
图2是图示出根据示例性实施例的计算激光线束的返回能量强度的方法200的流程图,如图2所示,该方法200包括:
步骤210,根据至少一个目标三角面的物理参数依次计算该激光线束经历每次反射或折射后的激光线束的能量强度;
步骤220,响应于一次或多次反射或折射后的激光线束满足预设条件,将该次反射或折射后的激光线束确定为返回激光线束;以及
步骤230,将计算得到的返回激光线束的能量强度确定为返回能量强度。
在激光雷达的实际应用场景中,发射的激光线束可能会经历多次环境物体的反射或折射,为了更好地仿真激光雷达,本公开实施例的方法将环境物体对激光线束的多次反射或折射也考虑在内,但是,本公开实施例的方法考虑的是部分反射或折射的激光线束。具体地,针对激光雷达发射的每一条激光线束,为其设定一个结构体数组HitResult[N],该数组用于记录该条激光线束收集到的数据信息(例如:上文的返回能量强度等)。其中,N为最大反射或折射次数,由进行激光雷达仿真的系统决定。N越大,激光线束越能够检测到距离虚拟激光雷达更远位置处的环境物体,因此对激光线束多路径效应的仿真越逼真。但是,N值过大可能会过多地消耗系统性能和资源,造成仿真计算缓慢,因此,可以根据仿真需求合理设置反射或折射次数N。在本实施例中,可以根据某些预设条件对N进行限定。
在步骤210中,对于进行过多次反射或折射的激光线束,计算其每次反射或折射后的剩余的能量强度。每次反射或折射后的能量强度都基于产生该次反射或折射的三角面的物理参数以及相关的算法进行计算。
在步骤220中,预设条件可以包括以下条件中的至少一种:激光线束的反射或折射次数在阈值次数的范围内;激光线束的能量强度大于阈值能量;激光线束的回波时间在预定时间范围内;以及激光线束进入虚拟激光雷达的视野范围内。如上文所述,N值过大可能会过多地消耗系统性能和资源,因此,反射或折射次数N被限制在阈值次数的范围内,上述阈值次数例如可以为2次、3次、4次等。另外,随着反射或折射次数的增加,激光线束的能量强度的衰减程度增加,当能量强度衰减至一定程度后,激光线束无法被虚拟激光雷达探测到或其精度值非常差,在这种情况下,该激光线束的反射或折射的回波不被虚拟激光雷达所接收,上述阈值能量例如可以是激光线束的初始能量的3%、5%或10%等。另外,在激光雷达的真实应用场景中,激光雷达仅接收激光线束的回波时间在预定时间范围内的反射或折射的回波,因此在仿真计算中,也仅考虑激光线束的回波时间在预定时间范围内的回波。上述预定时间范围可以按照虚拟激光雷达的一个扫描周期为参考设定,例如预定时间范围可以为一个扫描周期的1/10、1/20甚至更短。最后,返回激光线束还需要进入虚拟激光雷达的视野范围内,在真实场景中,激光雷达的感光器具有视野范围(FOV),因此,虚拟激光雷达并不会感知激光线束的所有的反射或折射的回波,仅有在感光器视野范围内的回波才会被探测到。在一些实施例中,仍然可以由计算机设备的光线追踪硬件来确定激光线束的反射或折射的回波是否落入到感光器有视野范围内,激光雷达的感光器的视野范围根据所要仿真的激光雷达的型号确定。
在一些实施例中,对于激光线束经历的每次反射或折射,可以根据激光线束入射的环境物体的类型确定用于计算每次反射或折射后的激光线束的能量强度的物理参数。针对每次反射或折射:根据进行该次反射或折射的目标三角面的类型从多个预设的物理参数中选取对应的目标物理参数,然后,至少根据目标物理参数计算该激光线束经历该次反射或折射后的能量强度。下面将结合方法300和方法400详细介绍如何针对不同的目标三角面的类型选取目标物理参数。
图3示出了根据本公开实施例的计算该激光线束经历反射或折射后的能量强度的方法300的流程图。在该方法中,上述目标物理参数至少包括目标三角面的能量吸收率,对于不同类型的环境物体,其包含的三角面的能量吸收率并不相同,例如:对于光滑的环境物体而言,其能量吸收率较小,有较大一部分光被反射回去,而对于粗糙的环境物体而言,其能量吸收率较大,反射回去的光的能量强度较小。上述方法300包括:
步骤310,计算该激光线束达到进行该次反射或折射的目标三角面的初始剩余能量比率和能量吸收率之间的比率差值;
步骤320,确定该激光线束的经历该次反射或折射之前的入射方向;
步骤330,确定进行该次反射或折射的目标三角面的法线方向;
步骤340,根据入射方向和法线方向计算入射角以及出射角或折射角;
步骤350,计算该次反射或折射的交点与下一次反射或折射的交点或虚拟激光雷达之间的交点距离;以及
步骤360,根据比率差值、入射角、出射角或折射角、交点距离确定能量强度。
在步骤310-340中,根据该激光线束的入射方向可以根据扫描周期内的发射参数确定,即,根据激光线束的发射角度来确定。计算机设备的显存还可以根据物理引擎内构建的虚拟场景中的目标三角面的姿态(朝向角度等数据)来确定出目标三角面的法线方向,进而结合激光线束的发射角度来确定入射角以及出射角或折射角。若该目标三角面是反射类型(例如镜面类的环境物体)的三角面,则激光线束主要发生反射,在这种情况下确定入射角以及出射角;若该目标三角面是折射类型(例如透明或半透明类的环境物体)的三角面,则激光线束主要发生折射,在这种情况下确定入射角以及折射角。
如上文所述,每条激光线束可能经历多次反射或折射,激光线束在两次反射或折射之间行进的过程中,仍然会发生一定的能量衰减,从而影响最终计算得到的能量强度。因此,在步骤350中,还需要确定该次反射或折射的交点与下一次反射或折射的交点或虚拟激光雷达之间的交点距离。对于激光线束最后一次的反射或折射(即,激光线束即将返回虚拟激光雷达),则计算该次反射或折射的交点与虚拟激光雷达之间的交点距离;而对于最后一次之前的反射或折射,则计算该次反射或折射的交点与下一次反射或折射的交点之间的交点距离,例如本次是第二次反射,则计算第二次反射和第三次反射之间的交点距离。本次反射是否为最后一次反射或折射将根据上文关于方法200中步骤220中描述的预设条件进行确定。
在步骤360中,如上文所述,将根据进行该次反射或折射的目标三角面的类型选取对应的目标物理参数,然后,根据目标物理参数计算该激光线束经历该次反射或折射后的能量强度。
在一些实施例中,目标三角面的类型包括粗糙表面,对应的目标物理参数包括粗糙度。在此情况下,激光线束将经历反射,其平行性被破坏。激光的一部分能量被目标三角面的材质吸收,其余部分按Lambert半球漫反射模型进行散射。
计算目标三角面的表面法线Nrm的方法为:
Nrm=normalize((Nrmvertex+Nrmtextute+Nrmother)·Scale)...............(3.1)
其中,Nrmvertex为此目标三角面的顶点法线经由质心插值法确定出的在交点处的法线;Nrmtexture为渲染此目标三角面的贴图法线经由质心插值法确定出的在交点处的法线;Nrmother为其他来源的法线。Scale为此目标三角面的缩放向量。
若该次反射非最后一次反射,则继续反射的激光线束的能量强度intensityreflect为:
其中:intensityremain为激光线束在经历本次反射前的初始剩余能量比率;intensityabsorb为此目标三角面对激光线束的能量吸收率;θ为入射激光线束的单位向量Dirin与此目标三角面的法线Nrm的夹角;α为出射激光线束Dirout与此目标三角面法线Nrm的夹角;L为本次交点距离下一次反射或折射的交点的距离;Roughness为目标三角面材质的粗糙度。
若该次反射为最后一次反射,该激光线束经历反射后返回虚拟激光雷达的能量强度intensityreturn为:
其中:intensityremain为激光线束在经历本次反射前的初始剩余能量比率;intensityabsorb为此目标三角面对激光线束的能量吸收率;θ为入射激光线束的单位向量Dirin与目标三角面法线Nrm的夹角;μ为本次反射的交点到虚拟激光雷达(例如,虚拟激光雷达的感光元件)的单位向量Dirback与目标三角面法线Nrm的夹角。R为本次反射的交点距离虚拟激光雷达(例如,虚拟激光雷达的感光元件)的距离;Roughness为目标三角面材质的粗糙度。
出射光方向Dirout的计算方法为:
其中,rand1和rand2为两个范围在[-1,1]的随机数,遵循平均分布。
在一些实施例中,目标三角面的类型包括光滑表面,对应的目标物理参数包括粗糙度。光滑表面可以指粗糙度Roughness<0.5的环境物体表面,如镜面。在此情况下,激光线束将经历反射,少部分能量将以漫反射的形式返回虚拟激光雷达,其余的能量将继续传播。光滑表面的反射模型可以近似为水滴形,并假设水滴的头部指向激光线束在环境物体表面反射的方向。在与光滑表面相交时,激光线束的指向性被破坏,转变为锥形扩散,能量强度将随距离的二次方衰减。
若该次反射非最后一次反射,则继续反射的激光线束的能量强度intensityreflect为:
其中:intensityremain为激光线束在经历本次反射前的初始剩余能量比率;intensityabsorb为此目标三角面对激光线束的能量吸收率;Dirreflect为入射激光线束Dirin在法线为目标三角面的法线Nrm的平面上的反射单位向量;θ为入射光单位向量Dirin与材质表面法线Nrm的夹角;β为出射光Dirout与材质表面法线Nrm的夹角;L为本次交点距离下一次反射或折射的交点的距离;Roughness为目标三角面材质的粗糙度。
若该激光线束经历的本次反射是返回虚拟激光雷达之前的最后一次反射,该激光线束经历反射后返回到虚拟激光雷达的能量强度intensityreturn为:
其中:intensityremain为激光线束在经历本次反射前的初始剩余能量比率;intensityabsorb为此目标三角面对激光线束的能量吸收率;Dirreflect为入射光Dirin在法线为材质表面法线Nrm的情况下的反射单位向量。
Dirback为反射的交点到激光雷达感光元件的单位向量;θ为入射激光线束的单位向量Dirin与此目标三角面的法线Nrm的夹角;μ为Dirback与此目标三角面法线Nrm的夹角;R本次反射的交点距离下一次反射或折射的交点的距离。Roughness为此目标三角面的材质的粗糙度。
其中,出射光方向Dirout的计算方法为:
Dirtan=normalize(cross(Dirreflect,Nrm))
Dircotan=normalize(cross(Dirtan,Dirreflect))
其中:rand1和rand2为两个范围在[-1,1]的随机数,遵循平均分布;Dirreflect为在入射激光线束Dirin的法线为该目标三角面的法线Nrm的情况下的反射单位向量;Dirtan为垂直于Nrm和Dirreflect的单位向量;Dircotan为垂直于Dirreflect和Dirtan的单位向量;Roughness为此目标三角面的材质的粗糙度。
在一些实施例中,目标三角面的类型包括半透明表面,对应的目标物理参数包括粗糙度和不透明度。半透明表面指不透明度Opacity<1的物体表面,如玻璃、水。此情况下,激光线束的一部分能量进行反射,另一部分能量进行折射。半透明表面的返回能量分为漫反射返回能量、镜面反射返回能量,这两部分能量均和三角面的不透明度相关。继续行进的激光线束可能是反射线束或者是折射线束。折射线束的部分根据菲涅尔定律进行计算。折射的激光线束将在环境物体中随距离持续衰减,直至经过多次折射后返回虚拟场景的空气中。
如上所述,本次出射的激光线束可能经历反射或折射。判断本次是否为反射isReflect的方法为:
isReflect=(Opacity>rand)
其中:rand为范围在[0,1]的随机数,遵循平均分布;Opacity为目标三角面的材质的不透明度。
若该次为反射且该次反射非最后一次反射,则反射出射光能量intensityreflect为:
其中:intensityremain为激光线束在经历本次反射前的初始剩余能量比率;intensityabsorb为此目标三角面对激光线束的能量吸收率;Dirreflect为在入射激光线束Dirin的法线为该目标三角面的法线Nrm的情况下的反射单位向量;θ为入射激光线束的单位向量Dirin与该目标三角面的法线Nrm的夹角;β为出射激光线束Dirout与该目标三角面的法线Nrm的夹角;L为本次交点距离下一次反射或折射的交点的距离;Roughness为目标三角面材质的粗糙度;Opacity为目标三角面的材质的不透明度。
若该激光线束经历的本次反射是返回虚拟激光雷达之前的最后一次反射,该激光线束经历反射后返回到虚拟激光雷达的能量强度intensityreturn为:
其中,intensityremain为激光线束在经历本次反射前的初始剩余能量比率;intensityabsorb为此目标三角面对激光线束的能量吸收率;Dirreflect为入射光Dirin在法线为目标三角面的法线Nrm的情况下的反射单位向量。Dirback为交点到虚拟激光雷达的单位向量;θ为入射激光线束的单位向量Dirin与目标三角面的法线Nrm的夹角;μ为Dirback与目标三角面的法线Nrm的夹角;R为本次反射的交点距离虚拟激光雷达的距离;Roughness为目标三角面材质的粗糙度;Opacity为目标三角面的材质的不透明度。
反射出射激光线束的方向Dirout为:
Dirtan=normalize(cross(Dirreflect,Nrm))
Dircotan=normalize(cross(Dirtan,Dirreflect))
其中:rand1和rand2为两个范围在[-1,1]的随机数,遵循平均分布;Dirreflect为入射激光线束Dirin在法线为目标三角面的法线Nrm的情况下的反射单位向量;Dirtan为垂直于Nrm和Dirreflect的单位向量;Dircotan为垂直于Dirreflect和Dirtan的单位向量;Roughness目标三角面材质的粗糙度。
若该次为折射,则折射出射光的方向Dirout为:
θ1=arcsin(cross(-Dirin,Nrm))
Dirtan2=normalize(cross(-Dirin,Nrm))
quat2=(cos(θ2-θ1),sin(θ2-θ1)(Dirtan2))
quat2-1=(cos(θ2-θ1),-sin(θ2-θ1)(Dirtan2))
Dirout=quat2×Dirin×quat2-1......(3.11)
其中:Nrm为目标三角面的法线;θ1为入射激光线束Dirin与Nrm的夹角。θ2为出射激光线束Dirout与Nrm的夹角;Dirtan2为垂直于Nrm和Dirin的单位向量;μ1为入射激光线束所在空间的密度;μ2为出射激光线束所在空间的密度。
折射激光线束的能量强度intensityrefract为:
其中,intensityremain为激光线束在经历本次反射前的初始剩余能量比率;intensityabsorb为此目标三角面对激光线束的能量吸收率;Dirreflect为入射光Dirin在法线为材质表面法线Nrm的平面上的反射单位向量;L为本次折射的交点距离下一次折射的交点的距离;μ2为出射激光线束所在空间的密度;Opacity为目标三角面的材质的不透明度。
在一些实施例中,目标三角面的类型包括含有次表面散射效应的表面,目标物理参数包括粗糙度、不透明度、以及次表面反射率。目标三角面包括多个不同分辨率的颜色贴图,例如通过mipmap的方式。根据贴图层数以及每层贴图在与交点位置对应的坐标处的颜色,进行加权计算,从而得到目标三角面的次表面反射率。图4示出了根据本公开另一实施例的计算该激光线束经历反射或折射后的能量强度的方法400的流程图,该方法400主要用于含有次表面散射效应的表面。该方法400包括:
步骤410,根据目标三角面的贴图层数以及每层贴图在与交点位置对应的坐标处的颜色,进行加权计算得到目标三角面的次表面反射率;
步骤420,计算该激光线束的达到进行该次反射的目标三角面的初始剩余能量比率和能量吸收率之间的比率差值;以及
步骤430,至少根据比率差值、粗糙度以及次表面发射率确定能量强度。
次表面散射的表面指的是表面半透明,但内部较为浑浊的物体(在激光照射下表现为丁达尔效应),例如:人体、树叶、污水等。此情况下,激光线束的一部分能量进行反射,另一部分能量射入环境物体的内部后经历多次折射后返回。
反射的部分取决于物体表面的粗糙度;折射的部分可根据此表面的颜色贴图的mipmap进行多次加权叠加后计算反射值。反射光的原点可近似于入射点。
返回激光雷达感光元件的能量intensityreturn的计算方法为:
其中:intensityremain为激光线束在经历本次反射前的初始剩余能量比率;intensityabsorb为此目标三角面对激光线束的能量吸收率;intensitysss为此目标三角面的次表面反射率。Dirreflect为入射光Dirin在法线为此目标三角面的法线Nrm的情况下的反射单位向量;Dirback为本次反射或折射交点到虚拟激光雷达(例如,虚拟激光雷达的感光元件)的单位向量;θ为入射光单位向量Dirin与此目标三角面的法线Nrm的夹角;μ为Dirback与此目标三角面的法线Nrm的夹角,R为交点距离激光雷达(例如,虚拟激光雷达的感光元件)的距离;Roughness目标三角面材质的粗糙度;Opacity为目标三角面材质的不透明度。
其中,目标三角面的次表面反射率intensitysss的计算方法为:
其中:k为目标三角面材质贴图的Mipmap层数。Colormipmap[i]为使用激光线束与目标三角面交点处的UV坐标对第i层Mipmap采样所得的颜色。length(Colormipmap[i])表示第i层Mipmap的颜色的模长,即三原色R、G、B三个数字的平方和再开根号。UV坐标可表示交点在三角面上的二维坐标,其中U表示水平方向,V表示垂直方向。
在一些实施例中,目标三角面的类型包括气团粒子表面,包括这种目标三角面的环境物体包括:雾、沙尘、蒸汽等。在这种情况下,目标物理参数包括透明度和气团粒子表面的包络盒(bounding box)的边界范围。图5示出了根据本公开另一实施例的计算该激光线束经历反射或折射后的能量强度的方法500的流程图,该方法500主要用于气团粒子表面反射或折射的激光线束的能量强度。方法500包括:
步骤510,确定该激光线束的经历该次反射或折射之前的入射方向;
步骤520,根据边界范围和入射方向确定该激光线束穿过气团粒子表面的穿行距离;
步骤530,根据透明度和穿行距离计算目标三角面的能量吸收率;
步骤540,计算该激光线束的达到进行该次反射的目标三角面的初始剩余能量比率和能量吸收率之间的比率差值;以及
步骤550,至少根据比率差值确定能量强度。
包络盒(bounding box)是由相关的物理引擎自动创建的不可见框,它定义了实体(即本实施例的气团粒子)的粗略大小。包络盒的目的是在实体可见的情况下简化该实体的形状(特别是该实体是例如气团粒子等不规则形状的物体时),进而简化某些物理碰撞过程,例如,在本实施例中用于简化入射的激光线束的行进过程以及简化能量强度损失的计算。
经过简化,在步骤520中计算该激光线束穿过气团粒子表面的穿行距离,
并且在步骤530中计算目标三角面的能量吸收率,即,激光线束在气团粒子中所损失的能量强度intensitylost:
Dirproject=project(Dirin·R)
其中,Dirproject为该激光线束穿过气团粒子表面的穿行距离,上述穿行距离可以为该激光线束在包络盒中的行进路径R在目标三角面上的投影长度,而激光线束在包络盒中的行进路径R将由包络盒的边界范围和激光线束的入射方向共同决定。因此,Dirproject为行进路径R的入射激光线束的向量Dirin在法线为目标三角面的法线Nrm的情况下的投影。为了提高仿真的精度,还可以将目标三角面进行分割得到多个子三角面。激光线束在每个分割后的子三角面处均经历一次折射,且每个子三角面均具有各自的包络盒,以segnum表示分割数量,segnum越大,模拟结果越准确,对应的计算量也就越大。TextureSample为以输入坐标为UV对Albedo贴图进行的采样,其是一个四维向量,x、y、z分别为红绿蓝通道的值,w为透明度。
若intensitylost<intensityremain,则认为激光线束穿过了气团粒子,表现为透射,否则,认为激光线束在气团粒子中散射并返回虚拟激光雷达,表现为散射。
如果表现为透射,则透射能量intensitytrans为:
intensitytrans=intensityremain-intensitylost......(5.2)
透射后激光线束方向Dirout通过以下方式计算:
Nrmi=normalize(rand1,rand2,rand3)
θi=arcsin(cross(-Diri,Nrmi))
Dirtan3=normalize(cross(-Diri,Nrmi))
Qi=(cos(θi+1-θi),sin(θi+1-θi)(Dirtan3))
其中,Qi为四元数,i∈[0,segnum],rand1、rand2、rand3为三个独立的随机数;Nrmi为随机数组成的在虚拟场景坐标系下的法线;Diri为激光线束在第i个子三角面处进行第i次折射时的角度;Dir0为入射光方向Dirin;θi为第i次折射时入射激光线束Diri与Nrmi的夹角;θi+1为第i次折射时出射激光线束Diri+1与Nrmi的夹角;Dirtan3为垂直于Nrmi和Dirin的单位向量。
如果表现为散射,返回能量强度intensityreturn及实际返回位置Pback的计算方法为:
Nrmi=normalize(rand1,rand2,rand3)
θi=arcsin(cross(-Diri,Nrmi))
Dirtan[i]=normalize(cross(-Diri,Nrmi))
Qi=(cos(θi+1-θi),sin(θi+1-θi)·Dirtan[i])
Dirback[i]=normalize(LidarOrigin-Pi)
Dirprojectback[i]=project(Dirback[i]·R)
其中:rand1、rand2、rand3为三个独立的随机数;Nrmi为随机数组成的在虚拟场景坐标系下的法线;θi为第i次折射时入射激光线束Diri与Nrmi的夹角;θi+1为第i次折射时出射激光线束Diri+1与Nrmi的夹角;Diri为激光线束在第i次折射时的角度;Dir0等于入射激光线束方向Dirin;Dirtan[i]为第i次折射时垂直于入射激光线束反方向-Diri与Nrmi的单位向量。Qi为四元数,i∈[0,segment];Dirtravel[i]为从第i-1次折射到第i次折射之间的激光线束的行进路径长度并且Dirtravel[0]=0;Pi为第i次折射发生的位置。LidarOrigin为虚拟激光雷达的坐标;R为激光线束在此气团粒子包络盒范围内的直线行进路径;Dirback[i]为从第i次折射发生的位置Pi返回激光雷达接收器坐标LidarOrigin的单位向量;Dirprojectback[i]为长度为R的向量Dirback[i]在法线为目标三角面的法线Nrm的情况下的投影;TextureSample为以输入坐标为UV对Albedo贴图进行的采样,其返回是一个四维向量,x、y、z分别为红绿蓝通道的值,w为透明度。intensityreserve[i]为第i次折射时的激光能量,且intensityreserve[0]=intensityremain;intensityback[i]为第i次折射时返回的激光能量;Dirproject为行进路径为R的入射激光线束的向量Dirin在法线为目标三角面的法线Nrm的情况下的投影;segnum为计算的分割数量;Dirtan3为垂直于Nrmi和Dirin的单位向量。
在一些实施例中,上述方法200还包括:针对同一扫描周期中发射的多个激光线束中的每个激光线束:响应于该激光线束不与虚拟场景中的任何三角面相交,确定该激光线束的能量返回强度为零。可以理解的是,并非所有发射的激光线束均能够和虚拟场景中的三角面相交,若某一激光线束不与虚拟场景中的任何三角面相交,例如:该激光线束射向了天空,不产生回波,那么确定该激光线束的能量返回强度为零,进而不会在点云数据中产生对应的数据点。
在一些实施例中,为优化性能、平均计算量并增加车辆在高速行驶时的仿真精度,可以将激光雷达的每次扫描切分为N个扇区,以便于后续更加准确地确定当前虚拟激光雷达的位置以及激光线束的入射角度。N的取值可以根据下式确定:
N≈60×T..................(5.5)
其中,T为激光雷达一个工作周期的时间,单位为秒。
在每一次虚拟激光雷达扫描前,先读取车辆的驾驶参数并传入显存。驾驶参数包括但不限于车辆的位置P、速度v及角速度w。假设车辆的速度v及角速度w在秒内不发生变化,则车辆实际行驶路线可近似为圆弧。因此,可并行预测得到每条激光线束在发射时的原点位置P1(即,虚拟激光雷达的位置)及其入射方向Dir1。预测方法如下所示:
根据四元数性质,可知四元数quat的逆quat-1为:
于是可得:
以及:
Dirlocal=quat×(Dir,1)×quat-1..................(5.7)
之后,将Plocal及Dirlocal乘以虚拟激光雷达的转置矩阵,将其转换到虚拟场景的坐标系下,即可得到P1及Dir1。其中,三维向量Dir为虚拟激光雷达局部坐标系下激光线束发射方向的单位向量;符号“×”代表向量叉乘,此处特指四维向量叉乘。
可以理解,存在多种求解P1及Dir1的方式,上述仅给出一种较为高效的计算方法,在另外一些实施例中也可以使用其他计算方法(如旋转矩阵、直接计算等方法)计算P1及Dir1。上述计算得到的P1及Dir1可以用于后续计算该激光线束的行进距离和/或入射到目标三角面的入射方向,例如可以应用到上述方法200-方法500中。
在一些实施例中,目标三角面对激光的吸收率intensityabsorb可通过如下等式计算:
intensityabsorb=fsample(Color,wavelength)·scale+bias
其中,
Color为目标三角面的材质颜色;
scale和bias为常数,可根据标三角面的材质情况进行调整;
fsample(Color,wavelength)为目标三角面的材质对指定波长的光的吸收率,可根据真实激光雷达的测试结果标定。
根据本公开的另一方面,还提供了一种用于训练激光雷达的颜色预测模型的样本数据的生成方法。图6示出了根据本公开实施例的用于训练颜色预测模型的样本数据的生成方法600的流程图,方法600包括:
步骤610,提供虚拟场景,虚拟场景包括多个环境物体模型以及真值模型,虚拟场景中的每个环境物体模型被构造为由多个三角面构成,其中,每个三角面都具有根据该三角面所在的环境物体模型的物体类型而确定的物理参数,真值模型表示虚拟场景的颜色布局;
步骤620,根据真实激光雷达的参数,初始化虚拟激光雷达的发射参数和扫描周期,虚拟激光雷达配置为在每个扫描周期内根据发射参数发射多个第一激光线束以及多个第二激光线束,每个第二激光线束与相对应的一个第一激光线束具有相同的发射参数,其中,发射参数包括第一激光线束或第二激光线束的发射角度和发射时序;
步骤630,获取每个扫描周期中发射的多个第一激光线束的交点位置、返回能量强度以及行进距离;
其中,步骤630进一步包括:针对同一扫描周期中发射的多个第一激光线束中的每个第一激光线束:
步骤631,根据该第一激光线束的发射参数以及车辆在该扫描周期中在虚拟场景中的对应位置,确定多个环境物体模型中与该第一激光线束相交的至少一个目标三角面;
步骤632,计算该第一激光线束与至少一个目标三角面中的每个目标三角面的交点位置;
步骤633,至少根据至少一个目标三角面的物理参数确定该第一激光线束返回至虚拟激光雷达时的返回能量强度;
步骤634,根据至少一个目标三角面在虚拟场景中的位置确定该第一激光线束的行进距离;
步骤640,至少根据该扫描周期中发射的多个第一激光线束的交点位置、返回能量强度以及行进距离生成关于虚拟场景的点云数据;
步骤650,针对同一扫描周期中发射的多个第二激光线束中的每个第二激光线束:根据该第二激光线束与真值模型的交点位置确定经由该第二激光线束获取到的颜色信息;
步骤660,至少根据该扫描周期中发射的多个第二激光线束获取到的颜色信息生成关于虚拟场景的真实颜色分割图像;以及
步骤670,以点云数据为输入数据,以真实颜色分割图像为输出数据构造用于训练激光雷达的颜色预测模型的样本数据。
在步骤610中,虚拟场景可以按照方法200中的步骤210生成,这里不再赘述。与方法200不同的是,这里的虚拟场景不仅包括多个环境物体模型,还包括一个真值模型。真值模型仅包括多种颜色信息,每种颜色信息用于映射到虚拟场景中不同类型的环境物体上。
在步骤620中,虚拟激光雷达将发射两组激光线束,即包含多个第一激光线束的第一组激光线束以及包含多个第二激光线束的第二组激光线束。每个第二激光线束与相对应的一个第一激光线束具有相同的发射参数,即,它们具有相同的发射角度和发射时序。这里需要注意的是,为了便于在仿真中区分每个第二激光线束与相对应的一个第一激光线束,这两条激光线束未必同时发射,它们之间可以存在一个非常小的时间差,但是,多个第一激光线束以及多个第二激光线束之间的发射间隔是一致的,即,发射时序是相同的。
本实施例的生成的样本数据包括两个部分,第一部分为关于虚拟场景的点云数据,第二部分为与虚拟场景的点云数据相对应的真实颜色分割图像。第一部分将通过发射的第一组激光线束获取到,而第二部分将通过发射的第二组激光线束获取到。也就是说,第一组激光线束将与多个环境物体模型相交,并产生反射或折射;第二组激光线束将与真值模型相交,并且不会发生反射或折射,第二组激光线束将直接返回真值模型中的颜射信息。虚拟场景的点云数据的获取方式和关于方法200描述的方式类似,这里不再赘述。可以理解,通过第一组激光线束获取到点云数据实际是模拟激光雷达获取到的关于虚拟场景的颜色信息,通过第二组激光线束获取到颜色分割图像则是关于虚拟场景的真实颜色信息。
在步骤650中,令成像装置或计算机设备的GPU额外渲染真值模型。由光线追踪硬件追踪多个第二激光线束,从而检测环境物体的颜色并返回真实颜色信息。
在步骤660中,可以基于扫描周期中发射的多个第二激光线束返回的颜色信息生成关于虚拟场景的真实颜色分割图像(Segmentation Image)。颜色分割图像是一种二维图像,在图像中根据环境物体的布局分割成多个区域,每个区域具有各自的颜色信息,代表对应区域的环境物体的颜色。
本实施例的方法通过在虚拟场景中额外设置真值模型来获得虚拟场景的真实颜色信息,该方法仅需要使虚拟激光雷达额外发射一组第二激光线束即可获取到真值模型的真实颜色信息。此方法实现简单,无需额外编写计算机设备的代码。
根据本公开的又一方面,还提供了另一种用于训练激光雷达的颜色预测模型的样本数据的生成方法。图7示出了根据本公开实施例的用于训练颜色预测模型的样本数据的生成方法700的流程图,方法700包括:
步骤710,提供虚拟场景,虚拟场景包括多个环境物体模型,虚拟场景中的每个环境物体模型被构造为由多个三角面构成,其中,每个三角面都具有根据该三角面所在的环境物体模型的物体类型而确定的物理参数和材质参数;
步骤720,基于真实激光雷达的参数,初始化虚拟激光雷达的发射参数和扫描周期,虚拟激光雷达配置为在每个扫描周期内根据发射参数发射多个激光线束以及多个激光线束,其中,发射参数包括激光线束的发射角度和发射时序;
步骤730,获取每个扫描周期中发射的多个激光线束的交点位置、返回能量强度以及行进距离;
步骤740,至少根据该扫描周期中发射的多个激光线束的交点位置、返回能量强度以及行进距离生成关于虚拟场景的点云数据;
步骤750,至少根据该扫描周期中发射的多个激光线束获取到的颜色信息生成关于虚拟场景的真实颜色分割图像;以及
步骤760,以点云数据为输入数据,以颜色分割图像为输出数据构造用于训练激光雷达的颜色预测模型的样本数据。
其中,步骤730进一步包括:针对同一扫描周期中发射的多个激光线束中的每个激光线束:
步骤731,根据该激光线束的发射参数以及车辆在该扫描周期中在虚拟场景中的对应位置,确定多个环境物体模型中与该激光线束相交的至少一个目标三角面;
步骤732,计算该激光线束与至少一个目标三角面中的每个目标三角面的交点位置;
步骤733,至少根据至少一个目标三角面的物理参数确定该激光线束返回至虚拟激光雷达时的返回能量强度;
步骤734,根据至少一个目标三角面在虚拟场景中的位置确定该激光线束的行进距离;以及
步骤735,根据至少一个目标三角面的材质参数确定该激光线束获取到的颜色信息。
方法700和方法600相同之处在于均获取点云数据作为输入数据,并且获取颜色分割图像作为输出数据以构造用于训练颜色预测模型的样本数据。方法700和方法600的区别之处在于,本实施例的方法700在步骤710提供虚拟场景时并未生成真值模型,而是将环境物体的真实颜色信息赋予到多个环境物体模型中,具体地,可以为环境物体模型添加一个材质参数,参数大小(位数)可根据环境物体的总类型数量确定。另外,由于不存在真值模型,因此,虚拟激光雷达可以如方法200所描述的那样仅发射一组激光线束,虚拟场景的点云数据以及目标三角面的颜色信息均由同一组激光线束得到。
本实施例的方法的优势是减少了一次对真值模型的渲染,避免了模型数量和用于对模型进行渲染的成像装置的数量的增加。
根据本公开的又一方面,还提供了一种用于激光雷达的颜色预测模型的训练方法。图8示出了根据本公开实施例的用于激光雷达的颜色预测模型的训练方法800的流程图,方法800包括:
步骤810,获取用于训练激光雷达的颜色预测模型的样本数据集,样本数据集利用根据上述样本数据的生成方法600或700生成得到;
步骤820,将样本数据中的点云数据输入到颜色预测模型中,得到颜色分割图像的预测值;
步骤830,根据真实颜色分割图像以及颜色分割图像的预测值之间的差异确定损失值;以及
步骤840,根据损失值调节颜色预测模型的模型参数。
本实施例的颜色预测模型的输入为激光雷达获取到的点云数据,其输出为颜色分割图像的预测值。按照本实施例的方法训练好的颜色预测模型可以移植到真实世界的无人驾驶车辆的车载计算机中,该无人驾驶车辆包括真实的激光雷达。上述训练好的颜色预测模型用于根据无人驾驶车辆上的激光雷达获取到的关于真实世界的点云数据得到关于真实世界的颜色分割图像的预测值。
本实施例的方法的具体训练过程为,将通过上述方法600或方法700获得的样本数据中的点云数据输入到颜色预测模型中,得到颜色分割图像的预测值,然后根据损失函数计算颜色分割图像的预测值和样本数据中对应的真实颜色分割图像之间的损失值。基于损失值进行反向传播对颜色预测模型的参数进行调节,以使得后续得到的颜色分割图像的预测值更加接近于样本数据中的真实颜色分割图像。在输入足够多的样本数据并进行足够多次的训练之后,训练好的颜色预测模型将能够根据输入的点云数据获得足够准确的颜色分割图像。
根据本公开的一个或多个实施例,可以基于虚拟激光雷达的仿真方法生成用于训练颜色预测模型的样本数据,进而利用样本数据训练颜色预测模型。训练好的颜色预测模型可以移植到真实世界的无人驾驶车辆的车载计算机中,该颜色预测模型根据无人驾驶车辆上的激光雷达获取到的关于真实世界的点云数据得到关于真实世界的颜色分割图像的预测值,从而实现根据激光雷达的点云数据直接得到真实世界的颜色图像。本公开的实施例能够确保无人驾驶车辆的车载计算机获得更加准确的图像信息,从而提高了无人驾驶车辆的自动驾驶的准确性。
虽然各个操作在附图中被描绘为按照特定的顺序,但是这不应理解为要求这些操作必须以所示的特定顺序或者按顺行次序执行,也不应理解为要求必须执行所有示出的操作以获得期望的结果。
图9是图示出根据示例性实施例的车辆的虚拟激光雷达的仿真装置900的示意性框图。如图9所示,该装置900包括:提供单元910,配置成提供虚拟场景,虚拟场景包括多个环境物体模型,虚拟场景中的每个环境物体模型被构造为由多个三角面构成,其中,每个三角面都具有根据该三角面所在的环境物体模型的物体类型而确定的物理参数;初始化单元920,配置成基于真实激光雷达的参数,初始化虚拟激光雷达的发射参数和扫描周期,虚拟激光雷达配置为在每个扫描周期内根据发射参数发射多个激光线束,其中,发射参数包括激光线束的发射角度和发射时序;确定单元930,配置成针对同一扫描周期中发射的多个激光线束中的每个激光线束:根据该激光线束的发射参数以及车辆在该扫描周期中在虚拟场景中的对应位置,确定多个环境物体模型中与该激光线束相交的至少一个目标三角面;计算该激光线束与至少一个目标三角面中的每个目标三角面的交点位置;至少根据至少一个目标三角面的物理参数确定该激光线束返回至虚拟激光雷达时的返回能量强度;根据至少一个目标三角面在虚拟场景中的位置确定该激光线束的行进距离;以及生成单元940,配置成至少根据该扫描周期中发射的多个激光线束的交点位置、返回能量强度以及行进距离生成关于虚拟场景的点云数据。
应当理解,图9中所示装置900的各个单元可以与参考图1描述的方法100中的各个步骤相对应。由此,上面针对方法100描述的操作、特征和优点同样适用于装置900及其包括的单元。为了简洁起见,某些操作、特征和优点在此不再赘述。
虽然上面参考特定单元讨论了特定功能,但是应当注意,本文讨论的各个单元的功能可以分为多个单元,和/或多个单元的至少一些功能可以组合成单个单元。本文讨论的特定单元执行动作包括该特定单元本身执行该动作,或者替换地该特定单元调用或以其他方式访问执行该动作(或结合该特定单元一起执行该动作)的另一个组件或单元。因此,执行动作的特定单元可以包括执行动作的该特定单元本身和/或该特定单元调用或以其他方式访问的、执行动作的另一单元。如本文使用的,短语“实体A发起动作B”可以是指实体A发出执行动作B的指令,但实体A本身并不一定执行该动作B。
还应当理解,本文可以在软件硬件元件或程序单元的一般上下文中描述各种技术。上面关于图9描述的各个单元可以在硬件中或在结合软件和/或固件的硬件中实现。例如,这些单元可以被实现为计算机程序代码/指令,该计算机程序代码/指令被配置为在一个或多个处理器中执行并存储在计算机可读存储介质中。可替换地,这些单元可以被实现为硬件逻辑/电路。例如,在一些实施例中,提供单元910、初始化单元920、确定单元930以及生成单元940中的一个或多个可以一起被实现在片上系统(System on Chip,SoC)中。SoC可以包括集成电路芯片(其包括处理器(例如,中央处理单元(Central Processing Unit,CPU)、微控制器、微处理器、数字信号处理器(Digital Signal Processor,DSP)等)、存储器、一个或多个通信接口、和/或其他电路中的一个或多个部件),并且可以可选地执行所接收的程序代码和/或包括嵌入式固件以执行功能。
根据本公开的一方面,提供了一种计算机设备,其包括至少一个存储器、至少一个处理器以及存储在至少一个存储器上的计算机程序。该至少一个处理器被配置为执行计算机程序以实现上文描述的任一方法实施例的步骤。
根据本公开的一方面,提供了一种车辆,其包括如上的装置或计算机设备。
根据本公开的一方面,提供了一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上文描述的任一方法实施例的步骤。
根据本公开的一方面,提供了一种计算机程序产品,其包括计算机程序,该计算机程序被处理器执行时实现上文描述的任一方法实施例的步骤。
在下文中,结合图10描述这样的计算机设备、非暂态计算机可读存储介质和计算机程序产品的说明性示例。图10示出了可以被用来实施本文所描述的方法的计算机设备1000的示例配置。举例来说,用于对虚拟激光雷达进行仿真的计算机设备可以包括类似于计算机设备1000的架构。上述提供单元910、初始化单元920、确定单元930以及生成单元940也可以全部或至少部分地由计算机设备1000或类似设备或系统实现。
计算机设备1000可以包括能够诸如通过系统总线1014或其他适当的连接彼此通信的至少一个处理器1002、存储器1004、(多个)通信接口1006、显示设备1008、其他输入/输出(I/O)设备1010以及一个或更多大容量存储设备1012。
处理器1002可以是单个处理单元或多个处理单元,所有处理单元可以包括单个或多个计算单元或者多个核心。处理器1002可以被实施成一个或更多微处理器、微型计算机、微控制器、数字信号处理器、中央处理单元、状态机、逻辑电路和/或基于操作指令来操纵信号的任何设备。除了其他能力之外,处理器1002可以被配置成获取并且执行存储在存储器1004、大容量存储设备1012或者其他计算机可读介质中的计算机可读指令,诸如操作系统1016的程序代码、应用程序1018的程序代码、其他程序1020的程序代码等。
存储器1004和大容量存储设备1012是用于存储指令的计算机可读存储介质的示例,指令由处理器1002执行来实施前面所描述的各种功能。举例来说,存储器1004一般可以包括易失性存储器和非易失性存储器二者(例如RAM、ROM等等)。此外,大容量存储设备1012一般可以包括硬盘驱动器、固态驱动器、可移除介质、包括外部和可移除驱动器、存储器卡、闪存、软盘、光盘(例如CD、DVD)、存储阵列、网络附属存储、存储区域网等等。存储器1004和大容量存储设备1012在本文中都可以被统称为存储器或计算机可读存储介质,并且可以是能够把计算机可读、处理器可执行程序指令存储为计算机程序代码的非暂态介质,计算机程序代码可以由处理器1002作为被配置成实施在本文的示例中所描述的操作和功能的特定机器来执行。
多个程序可以存储在大容量存储设备1012上。这些程序包括操作系统1016、一个或多个应用程序1018、其他程序1020和程序数据1022,并且它们可以被加载到存储器1004以供执行。这样的应用程序或程序模块的示例可以包括例如用于实现以下部件/功能的计算机程序逻辑(例如,计算机程序代码或指令):提供单元910、初始化单元920、确定单元930以及生成单元940、方法100至方法800(包括方法100至方法800的任何合适的步骤)、和/或本文描述的另外的实施例。
虽然在图10中被图示成存储在计算机设备1000的存储器1004中,但是模块1016、1018、1020和1022或者其部分可以使用可由计算机设备1000访问的任何形式的计算机可读介质来实施。如本文所使用的,“计算机可读介质”至少包括两种类型的计算机可读介质,也就是计算机可读存储介质和通信介质。
计算机可读存储介质包括通过用于存储信息的任何方法或技术实施的易失性和非易失性、可移除和不可移除介质,信息诸如是计算机可读指令、数据结构、程序模块或者其他数据。计算机可读存储介质包括而不限于RAM、ROM、EEPROM、闪存或其他存储器技术,CD-ROM、数字通用盘(DVD)、或其他光学存储装置,磁盒、磁带、磁盘存储装置或其他磁性存储设备,或者可以被用来存储信息以供计算机设备访问的任何其他非传送介质。与此相对,通信介质可以在诸如载波或其他传送机制之类的已调制数据信号中具体实现计算机可读指令、数据结构、程序模块或其他数据。本文所定义的计算机可读存储介质不包括通信介质。
一个或更多通信接口1006用于诸如通过网络、直接连接等等与其他设备交换数据。这样的通信接口可以是以下各项中的一个或多个:任何类型的网络接口(例如,网络接口卡(NIC))、有线或无线(诸如IEEE 802.11无线LAN(WLAN))无线接口、全球微波接入互操作(Wi-MAX)接口、以太网接口、通用串行总线(USB)接口、蜂窝网络接口、BluetoothTM接口、近场通信(NFC)接口等。通信接口1006可以促进在多种网络和协议类型内的通信,其中包括有线网络(例如LAN、电缆等等)和无线网络(例如WLAN、蜂窝、卫星等等)、因特网等等。通信接口1006还可以提供与诸如存储阵列、网络附属存储、存储区域网等等中的外部存储装置(未示出)的通信。
在一些示例中,可以包括诸如监视器之类的显示设备1008,以用于向用户显示信息和图像。其他I/O设备1010可以是接收来自用户的各种输入并且向用户提供各种输出的设备,并且可以包括触摸输入设备、手势输入设备、摄影机、键盘、遥控器、鼠标、打印机、音频输入/输出设备等等。
本文描述的技术可以由计算机设备1000的这些各种配置来支持,并且不限于本文所描述的技术的具体示例。例如,该功能还可以通过使用分布式系统在“云”上全部或部分地实现。云包括和/或代表用于资源的平台。平台抽象云的硬件(例如,服务器)和软件资源的底层功能。资源可以包括在远离计算机设备1000的服务器上执行计算处理时可以使用的应用和/或数据。资源还可以包括通过因特网和/或通过诸如蜂窝或Wi-Fi网络的订户网络提供的服务。平台可以抽象资源和功能以将计算机设备1000与其他计算机设备连接。因此,本文描述的功能的实现可以分布在整个云内。例如,功能可以部分地在计算机设备1000上以及部分地通过抽象云的功能的平台来实现。
以下描述根据公开的一些示例性实施例。
方面1.一种车辆的虚拟激光雷达的仿真方法,包括:
提供虚拟场景,所述虚拟场景包括多个环境物体模型,所述虚拟场景中的每个环境物体模型被构造为由多个三角面构成,其中,每个三角面都具有根据该三角面所在的环境物体模型的物体类型而确定的物理参数;
基于真实激光雷达的参数,初始化所述虚拟激光雷达的发射参数和扫描周期,所述虚拟激光雷达配置为在每个扫描周期内根据所述发射参数发射多个激光线束,其中,所述发射参数包括激光线束的发射角度和发射时序;
针对同一扫描周期中发射的多个激光线束中的每个激光线束:
根据该激光线束的发射参数以及所述车辆在该扫描周期中在所述虚拟场景中的对应位置,确定所述多个环境物体模型中与该激光线束相交的至少一个目标三角面;
计算该激光线束与所述至少一个目标三角面中的每个目标三角面的交点位置;
至少根据所述至少一个目标三角面的物理参数确定该激光线束返回至所述虚拟激光雷达时的返回能量强度;
根据所述至少一个目标三角面在所述虚拟场景中的位置确定该激光线束的行进距离;以及
至少根据该扫描周期中发射的多个激光线束的交点位置、返回能量强度以及行进距离生成关于所述虚拟场景的点云数据。
方面2.根据方面1所述的方法,其中,所述至少一个目标三角面包括与该激光线束直接相交的三角面以及与经过其他目标三角面反射或折射后的该激光线束相交的三角面,其中,根据所述至少一个目标三角面的物理参数确定该激光线束返回至所述虚拟激光雷达时的返回能量强度包括:
根据所述至少一个目标三角面的物理参数依次计算该激光线束经历每次反射或折射后的激光线束的能量强度;
响应于一次或多次反射或折射后的激光线束满足预设条件,将该次反射或折射后的激光线束确定为返回激光线束;以及
将计算得到的所述返回激光线束的能量强度确定为所述返回能量强度。
方面3.根据方面2所述的方法,其中,所述预设条件包括以下条件中的至少一种:
所述激光线束的反射或折射次数在阈值次数的范围内;
所述激光线束的能量强度大于阈值能量;
所述激光线束的回波时间在预定时间范围内;以及
所述激光线束进入所述虚拟激光雷达的视野范围内。
方面4.根据方面2所述的方法,其中,根据所述至少一个目标三角面的物理参数依次计算该激光线束经历每次反射或折射后的激光线束的能量强度包括:
针对每次反射或折射:
根据进行该次反射或折射的目标三角面的类型从多个预设的物理参数中选取对应的目标物理参数;以及
至少根据所述目标物理参数计算该激光线束经历该次反射或折射后的能量强度。
方面5.根据方面4所述的方法,其中,所述目标物理参数至少包括目标三角面的能量吸收率,其中,至少根据所述目标物理参数计算该激光线束经历该次反射或折射后的能量强度包括:
计算该激光线束达到进行该次反射或折射的目标三角面的初始剩余能量比率和所述能量吸收率之间的比率差值;
确定该激光线束的经历该次反射或折射之前的入射方向;
确定进行该次反射或折射的目标三角面的法线方向;
根据所述入射方向和所述法线方向计算入射角以及出射角或折射角;
计算该次反射或折射的交点与下一次反射或折射的交点或所述虚拟激光雷达之间的交点距离;以及
至少根据所述比率差值、所述入射角、所述出射角或折射角、所述交点距离确定所述能量强度。
方面6.根据方面4所述的方法,其中,所述目标三角面的类型包括粗糙表面或光滑表面,所述目标物理参数还包括粗糙度。
方面7.根据方面4所述的方法,其中,所述目标三角面的类型包括半透明表面,所述目标物理参数还包括粗糙度和不透明度。
方面8.根据方面4所述的方法,其中,所述目标三角面的类型包括含有次表面散射效应的表面,所述目标物理参数包括粗糙度、不透明度以及次表面反射率,其中,所述目标三角面包括多个不同分辨率的颜色贴图,根据贴图层数以及每层贴图在与所述交点位置对应的坐标处的颜色,进行加权计算得到所述目标三角面的次表面反射率。
方面9.根据方面4所述的方法,其中,所述目标三角面的类型包括气团粒子表面,所述目标物理参数包括透明度和所述气团粒子表面的包络盒的边界范围,其中,至少根据所述目标物理参数计算该激光线束经历该次反射或折射后的能量强度包括:
确定该激光线束的经历该次反射或折射之前的入射方向;
根据所述边界范围和入射方向确定该激光线束穿过所述气团粒子表面的穿行距离;
根据所述透明度和所述穿行距离计算所述目标三角面的能量吸收率;
计算该激光线束的达到进行该次反射的目标三角面的初始剩余能量比率和所述能量吸收率之间的比率差值;以及
至少根据所述比率差值确定所述能量强度。
方面10.根据方面1-9中任一项所述的方法,还包括:
针对同一扫描周期中发射的多个激光线束中的每个激光线束:
响应于该激光线束不与所述虚拟场景中的任何三角面相交,确定该激光线束的能量返回强度为零。
方面11.根据方面1-9中任一项所述的方法,还包括:
根据所述扫描周期将所述虚拟激光雷达的检测范围分割为多个扇区;
获取所述车辆的行驶参数,其中,所述行驶参数至少包括所述车辆的行驶速度和行驶角速度;以及
针对同一扫描周期中发射的多个激光线束中的每个激光线束:根据该激光线束所在的扇区以及所述行驶参数确定在发射该激光线束时车辆的虚拟激光雷达在所述虚拟场景中的位置,以用于计算该激光线束的行进距离和/或该激光线束入射到目标三角面的入射方向。
方面12.一种用于训练激光雷达的颜色预测模型的样本数据的生成方法,所述方法包括:
提供虚拟场景,所述虚拟场景包括多个环境物体模型以及真值模型,所述虚拟场景中的每个环境物体模型被构造为由多个三角面构成,其中,每个三角面都具有根据该三角面所在的环境物体模型的物体类型而确定的物理参数,所述真值模型表示所述虚拟场景的颜色布局;
基于真实激光雷达的参数,初始化虚拟激光雷达的发射参数和扫描周期,所述虚拟激光雷达配置为在每个扫描周期内根据所述发射参数发射多个第一激光线束以及多个第二激光线束,每个第二激光线束与相对应的一个第一激光线束具有相同的发射参数,其中,所述发射参数包括第一激光线束或第二激光线束的发射角度和发射时序;
针对同一扫描周期中发射的多个第一激光线束中的每个第一激光线束:
根据该第一激光线束的发射参数以及所述车辆在该扫描周期中在所述虚拟场景中的对应位置,确定所述多个环境物体模型中与该第一激光线束相交的至少一个目标三角面;
计算该第一激光线束与所述至少一个目标三角面中的每个目标三角面的交点位置;
至少根据所述至少一个目标三角面的物理参数确定该第一激光线束返回至所述虚拟激光雷达时的返回能量强度;
根据所述至少一个目标三角面在所述虚拟场景中的位置确定该第一激光线束的行进距离;以及
至少根据该扫描周期中发射的多个第一激光线束的交点位置、返回能量强度以及行进距离生成关于所述虚拟场景的点云数据;
针对同一扫描周期中发射的多个第二激光线束中的每个第二激光线束:
根据该第二激光线束与所述真值模型的交点位置确定经由该第二激光线束获取到的颜色信息;
至少根据该扫描周期中发射的多个第二激光线束获取到的颜色信息生成关于所述虚拟场景的真实颜色分割图像;以及
以所述点云数据为输入数据,以所述真实颜色分割图像为输出数据构造用于训练激光雷达的颜色预测模型的样本数据。
方面13.一种用于训练激光雷达的颜色预测模型的样本数据的生成方法,所述方法包括:
提供虚拟场景,所述虚拟场景包括多个环境物体模型,所述虚拟场景中的每个环境物体模型被构造为由多个三角面构成,其中,每个三角面都具有根据该三角面所在的环境物体模型的物体类型而确定的物理参数和材质参数;
基于真实激光雷达的参数,初始化虚拟激光雷达的发射参数和扫描周期,所述虚拟激光雷达配置为在每个扫描周期内根据所述发射参数发射多个激光线束以及多个激光线束,其中,所述发射参数包括激光线束的发射角度和发射时序;
针对同一扫描周期中发射的多个激光线束中的每个激光线束:
根据该激光线束的发射参数以及所述车辆在该扫描周期中在所述虚拟场景中的对应位置,确定所述多个环境物体模型中与该激光线束相交的至少一个目标三角面;
计算该激光线束与所述至少一个目标三角面中的每个目标三角面的交点位置;
至少根据所述至少一个目标三角面的物理参数确定该激光线束返回至所述虚拟激光雷达时的返回能量强度;
根据所述至少一个目标三角面在所述虚拟场景中的位置确定该激光线束的行进距离;以及
根据所述至少一个目标三角面的材质参数确定该激光线束获取到的颜色信息;
至少根据该扫描周期中发射的多个激光线束的交点位置、返回能量强度以及行进距离生成关于所述虚拟场景的点云数据;
至少根据该扫描周期中发射的多个激光线束获取到的颜色信息生成关于所述虚拟场景的真实颜色分割图像;以及
以所述点云数据为输入数据,以所述真实颜色分割图像为输出数据构造用于训练激光雷达的颜色预测模型的样本数据。
方面14.一种用于激光雷达的颜色预测模型的训练方法,包括:
获取用于训练激光雷达的颜色预测模型的样本数据集,所述样本数据集中的每个样本数据利用根据方面12或13所述的用于训练激光雷达的颜色预测模型的样本数据的生成方法生成得到;
将所述样本数据中的点云数据输入到所述颜色预测模型中,得到颜色分割图像的预测值;
根据所述样本数据中的真实颜色分割图像以及所述颜色分割图像的预测值之间的差异确定损失值;以及
根据所述损失值调节所述颜色预测模型的模型参数。
方面15.一种车辆的虚拟激光雷达的仿真装置,包括:
提供单元,配置成提供虚拟场景,所述虚拟场景包括多个环境物体模型,所述虚拟场景中的每个环境物体模型被构造为由多个三角面构成,其中,每个三角面都具有根据该三角面所在的环境物体模型的物体类型而确定的物理参数;
初始化单元,配置成基于真实激光雷达的参数,初始化虚拟激光雷达的发射参数和扫描周期,所述虚拟激光雷达配置为在每个扫描周期内根据所述发射参数发射多个激光线束,其中,所述发射参数包括激光线束的发射角度和发射时序;
确定单元,配置成针对同一扫描周期中发射的多个激光线束中的每个激光线束:根据该激光线束的发射参数以及所述车辆在该扫描周期中在所述虚拟场景中的对应位置,确定所述多个环境物体模型中与该激光线束相交的至少一个目标三角面;计算该激光线束与所述至少一个目标三角面中的每个目标三角面的交点位置;至少根据所述至少一个目标三角面的物理参数确定该激光线束返回至所述虚拟激光雷达时的返回能量强度;根据所述至少一个目标三角面在所述虚拟场景中的位置确定该激光线束的行进距离;以及
生成单元,配置成至少根据该扫描周期中发射的多个激光线束的交点位置、返回能量强度以及行进距离生成关于所述虚拟场景的点云数据。
方面16.一种计算机设备,包括:
至少一个处理器;以及
至少一个存储器,其上存储有计算机程序,
其中,所述计算机程序在被所述至少一个处理器执行时,使所述至少一个处理器执行方面1-14中任一项所述的方法。
方面17.一种车辆,包括如方面15所述的装置或如方面16所述的计算机设备。
方面18.一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,使所述处理器执行方面1-14中任一项所述的方法。
方面19.一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时,使所述处理器执行方面1-14中任一项所述的方法。
虽然在附图和前面的描述中已经详细地说明和描述了本公开,但是这样的说明和描述应当被认为是说明性的和示意性的,而非限制性的;本公开不限于所公开的实施例。通过研究附图、公开内容和所附的权利要求书,本领域技术人员在实践所要求保护的主题时,能够理解和实现对于所公开的实施例的变型。在权利要求书中,词语“包括”不排除未列出的其他元件或步骤,不定冠词“一”或“一个”不排除多个,术语“多个”是指两个或两个以上,并且术语“基于”应解释为“至少部分地基于”。在相互不同的从属权利要求中记载了某些措施的仅有事实并不表明这些措施的组合不能用来获益。
Claims (10)
1.一种车辆的虚拟激光雷达的仿真方法,包括:
提供虚拟场景,所述虚拟场景包括多个环境物体模型,所述虚拟场景中的每个环境物体模型被构造为由多个三角面构成,其中,每个三角面都具有根据该三角面所在的环境物体模型的物体类型而确定的物理参数;
基于真实激光雷达的参数,初始化所述虚拟激光雷达的发射参数和扫描周期,所述虚拟激光雷达配置为在每个扫描周期内根据所述发射参数发射多个激光线束,其中,所述发射参数包括激光线束的发射角度和发射时序;
针对同一扫描周期中发射的多个激光线束中的每个激光线束:
根据该激光线束的发射参数以及所述车辆在该扫描周期中在所述虚拟场景中的对应位置,确定所述多个环境物体模型中与该激光线束相交的至少一个目标三角面;
计算该激光线束与所述至少一个目标三角面中的每个目标三角面的交点位置;
至少根据所述至少一个目标三角面的物理参数确定该激光线束返回至所述虚拟激光雷达时的返回能量强度;
根据所述至少一个目标三角面在所述虚拟场景中的位置确定该激光线束的行进距离;以及
至少根据该扫描周期中发射的多个激光线束的交点位置、返回能量强度以及行进距离生成关于所述虚拟场景的点云数据。
2.根据权利要求1所述的方法,其中,所述至少一个目标三角面包括与该激光线束直接相交的三角面以及与经过其他目标三角面反射或折射后的该激光线束相交的三角面,其中,根据所述至少一个目标三角面的物理参数确定该激光线束返回至所述虚拟激光雷达时的返回能量强度包括:
根据所述至少一个目标三角面的物理参数依次计算该激光线束经历每次反射或折射后的激光线束的能量强度;
响应于一次或多次反射或折射后的激光线束满足预设条件,将该次反射或折射后的激光线束确定为返回激光线束;以及
将计算得到的所述返回激光线束的能量强度确定为所述返回能量强度。
3.根据权利要求2所述的方法,其中,根据所述至少一个目标三角面的物理参数依次计算该激光线束经历每次反射或折射后的激光线束的能量强度包括:
针对每次反射或折射:
根据进行该次反射或折射的目标三角面的类型从多个预设的物理参数中选取对应的目标物理参数;以及
至少根据所述目标物理参数计算该激光线束经历该次反射或折射后的能量强度。
4.根据权利要求3所述的方法,其中,所述目标物理参数至少包括目标三角面的能量吸收率,其中,至少根据所述目标物理参数计算该激光线束经历该次反射或折射后的能量强度包括:
计算该激光线束达到进行该次反射或折射的目标三角面的初始剩余能量比率和所述能量吸收率之间的比率差值;
确定该激光线束的经历该次反射或折射之前的入射方向;
确定进行该次反射或折射的目标三角面的法线方向;
根据所述入射方向和所述法线方向计算入射角以及出射角或折射角;
计算该次反射或折射的交点与下一次反射或折射的交点或所述虚拟激光雷达之间的交点距离;以及
至少根据所述比率差值、所述入射角、所述出射角或折射角、所述交点距离确定所述能量强度。
5.根据权利要求3所述的方法,其中,所述目标三角面的类型包括含有次表面散射效应的表面,所述目标物理参数包括粗糙度、不透明度以及次表面反射率,其中,所述目标三角面包括多个不同分辨率的颜色贴图,根据贴图层数以及每层贴图在与所述交点位置对应的坐标处的颜色,进行加权计算得到所述目标三角面的次表面反射率。
6.根据权利要求3所述的方法,其中,所述目标三角面的类型包括气团粒子表面,所述目标物理参数包括透明度和所述气团粒子表面的包络盒的边界范围,其中,至少根据所述目标物理参数计算该激光线束经历该次反射或折射后的能量强度包括:
确定该激光线束的经历该次反射或折射之前的入射方向;
根据所述边界范围和入射方向确定该激光线束穿过所述气团粒子表面的穿行距离;
根据所述透明度和所述穿行距离计算所述目标三角面的能量吸收率;
计算该激光线束的达到进行该次反射的目标三角面的初始剩余能量比率和所述能量吸收率之间的比率差值;以及
至少根据所述比率差值确定所述能量强度。
7.一种用于训练激光雷达的颜色预测模型的样本数据的生成方法,所述方法包括:
提供虚拟场景,所述虚拟场景包括多个环境物体模型以及真值模型,所述虚拟场景中的每个环境物体模型被构造为由多个三角面构成,其中,每个三角面都具有根据该三角面所在的环境物体模型的物体类型而确定的物理参数,所述真值模型表示所述虚拟场景的颜色布局;
基于真实激光雷达的参数,初始化虚拟激光雷达的发射参数和扫描周期,所述虚拟激光雷达配置为在每个扫描周期内根据所述发射参数发射多个第一激光线束以及多个第二激光线束,每个第二激光线束与相对应的一个第一激光线束具有相同的发射参数,其中,所述发射参数包括第一激光线束或第二激光线束的发射角度和发射时序;
针对同一扫描周期中发射的多个第一激光线束中的每个第一激光线束:
根据该第一激光线束的发射参数以及所述车辆在该扫描周期中在所述虚拟场景中的对应位置,确定所述多个环境物体模型中与该第一激光线束相交的至少一个目标三角面;
计算该第一激光线束与所述至少一个目标三角面中的每个目标三角面的交点位置;
至少根据所述至少一个目标三角面的物理参数确定该第一激光线束返回至所述虚拟激光雷达时的返回能量强度;
根据所述至少一个目标三角面在所述虚拟场景中的位置确定该第一激光线束的行进距离;以及
至少根据该扫描周期中发射的多个第一激光线束的交点位置、返回能量强度以及行进距离生成关于所述虚拟场景的点云数据;
针对同一扫描周期中发射的多个第二激光线束中的每个第二激光线束:
根据该第二激光线束与所述真值模型的交点位置确定经由该第二激光线束获取到的颜色信息;
至少根据该扫描周期中发射的多个第二激光线束获取到的颜色信息生成关于所述虚拟场景的真实颜色分割图像;以及
以所述点云数据为输入数据,以所述真实颜色分割图像为输出数据构造用于训练激光雷达的颜色预测模型的样本数据。
8.一种用于训练激光雷达的颜色预测模型的样本数据的生成方法,所述方法包括:
提供虚拟场景,所述虚拟场景包括多个环境物体模型,所述虚拟场景中的每个环境物体模型被构造为由多个三角面构成,其中,每个三角面都具有根据该三角面所在的环境物体模型的物体类型而确定的物理参数和材质参数;
基于真实激光雷达的参数,初始化虚拟激光雷达的发射参数和扫描周期,所述虚拟激光雷达配置为在每个扫描周期内根据所述发射参数发射多个激光线束以及多个激光线束,其中,所述发射参数包括激光线束的发射角度和发射时序;
针对同一扫描周期中发射的多个激光线束中的每个激光线束:
根据该激光线束的发射参数以及所述车辆在该扫描周期中在所述虚拟场景中的对应位置,确定所述多个环境物体模型中与该激光线束相交的至少一个目标三角面;
计算该激光线束与所述至少一个目标三角面中的每个目标三角面的交点位置;
至少根据所述至少一个目标三角面的物理参数确定该激光线束返回至所述虚拟激光雷达时的返回能量强度;
根据所述至少一个目标三角面在所述虚拟场景中的位置确定该激光线束的行进距离;以及
根据所述至少一个目标三角面的材质参数确定该激光线束获取到的颜色信息;
至少根据该扫描周期中发射的多个激光线束的交点位置、返回能量强度以及行进距离生成关于所述虚拟场景的点云数据;
至少根据该扫描周期中发射的多个激光线束获取到的颜色信息生成关于所述虚拟场景的真实颜色分割图像;以及
以所述点云数据为输入数据,以所述真实颜色分割图像为输出数据构造用于训练激光雷达的颜色预测模型的样本数据。
9.一种用于激光雷达的颜色预测模型的训练方法,包括:
获取用于训练激光雷达的颜色预测模型的样本数据集,所述样本数据集中的每个样本数据利用根据权利要求7或8所述的用于训练激光雷达的颜色预测模型的样本数据的生成方法生成得到;
将所述样本数据中的点云数据输入到所述颜色预测模型中,得到颜色分割图像的预测值;
根据所述样本数据中的真实颜色分割图像以及所述颜色分割图像的预测值之间的差异确定损失值;以及
根据所述损失值调节所述颜色预测模型的模型参数。
10.一种车辆的虚拟激光雷达的仿真装置,包括:
提供单元,配置成提供虚拟场景,所述虚拟场景包括多个环境物体模型,所述虚拟场景中的每个环境物体模型被构造为由多个三角面构成,其中,每个三角面都具有根据该三角面所在的环境物体模型的物体类型而确定的物理参数;
初始化单元,配置成基于真实激光雷达的参数,初始化虚拟激光雷达的发射参数和扫描周期,所述虚拟激光雷达配置为在每个扫描周期内根据所述发射参数发射多个激光线束,其中,所述发射参数包括激光线束的发射角度和发射时序;
确定单元,配置成针对同一扫描周期中发射的多个激光线束中的每个激光线束:根据该激光线束的发射参数以及所述车辆在该扫描周期中在所述虚拟场景中的对应位置,确定所述多个环境物体模型中与该激光线束相交的至少一个目标三角面;计算该激光线束与所述至少一个目标三角面中的每个目标三角面的交点位置;至少根据所述至少一个目标三角面的物理参数确定该激光线束返回至所述虚拟激光雷达时的返回能量强度;根据所述至少一个目标三角面在所述虚拟场景中的位置确定该激光线束的行进距离;以及
生成单元,配置成至少根据该扫描周期中发射的多个激光线束的交点位置、返回能量强度以及行进距离生成关于所述虚拟场景的点云数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211478381.5A CN115731350A (zh) | 2022-11-23 | 2022-11-23 | 车辆的虚拟激光雷达的仿真方法及其装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211478381.5A CN115731350A (zh) | 2022-11-23 | 2022-11-23 | 车辆的虚拟激光雷达的仿真方法及其装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115731350A true CN115731350A (zh) | 2023-03-03 |
Family
ID=85297801
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211478381.5A Pending CN115731350A (zh) | 2022-11-23 | 2022-11-23 | 车辆的虚拟激光雷达的仿真方法及其装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115731350A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116449807A (zh) * | 2023-06-14 | 2023-07-18 | 北京市计量检测科学研究院 | 一种物联网汽车操控系统仿真测试方法及系统 |
CN116577762A (zh) * | 2023-07-12 | 2023-08-11 | 西安深信科创信息技术有限公司 | 仿真雷达数据生成方法、装置、设备及存储介质 |
CN116644616A (zh) * | 2023-07-25 | 2023-08-25 | 北京赛目科技股份有限公司 | 点云畸变效果还原方法、装置、电子设备及存储介质 |
-
2022
- 2022-11-23 CN CN202211478381.5A patent/CN115731350A/zh active Pending
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116449807A (zh) * | 2023-06-14 | 2023-07-18 | 北京市计量检测科学研究院 | 一种物联网汽车操控系统仿真测试方法及系统 |
CN116449807B (zh) * | 2023-06-14 | 2023-09-01 | 北京市计量检测科学研究院 | 一种物联网汽车操控系统仿真测试方法及系统 |
CN116577762A (zh) * | 2023-07-12 | 2023-08-11 | 西安深信科创信息技术有限公司 | 仿真雷达数据生成方法、装置、设备及存储介质 |
CN116577762B (zh) * | 2023-07-12 | 2023-10-31 | 西安深信科创信息技术有限公司 | 仿真雷达数据生成方法、装置、设备及存储介质 |
CN116644616A (zh) * | 2023-07-25 | 2023-08-25 | 北京赛目科技股份有限公司 | 点云畸变效果还原方法、装置、电子设备及存储介质 |
CN116644616B (zh) * | 2023-07-25 | 2023-09-22 | 北京赛目科技股份有限公司 | 点云畸变效果还原方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20230177819A1 (en) | Data synthesis for autonomous control systems | |
Schlager et al. | State-of-the-art sensor models for virtual testing of advanced driver assistance systems/autonomous driving functions | |
CN115731350A (zh) | 车辆的虚拟激光雷达的仿真方法及其装置 | |
Lafortune | Mathematical models and Monte Carlo algorithms for physically based rendering | |
Wang et al. | Shader-based sensor simulation for autonomous car testing | |
US10133834B2 (en) | Method for simulating wave propagation; simulator, computer program and recording medium for implementing the method | |
Hasirlioglu et al. | A model-based approach to simulate rain effects on automotive surround sensor data | |
JPH07182538A (ja) | ディスプレイピクセルの着色方法、画像レンダリング装置、および入射光推定方法 | |
Rosenberger et al. | Analysis of real world sensor behavior for rising fidelity of physically based lidar sensor models | |
Hold-Geoffroy et al. | Single day outdoor photometric stereo | |
López et al. | A GPU-accelerated framework for simulating LiDAR scanning | |
CN115081195A (zh) | 一种激光雷达仿真的方法、装置、电子设备及存储介质 | |
CN117269940B (zh) | 点云数据生成方法、激光雷达的感知能力验证方法 | |
Jones et al. | Marine vehicles simulated SAR imagery datasets generation | |
JP2022531627A (ja) | 連続波ライダーセンサのシミュレーション方法 | |
CN116740253B (zh) | 一种光线追踪方法和电子设备 | |
CN116758208A (zh) | 全局光照渲染方法、装置、存储介质及电子设备 | |
Nandhakumar et al. | Physics-based integration of multiple sensing modalities for scene interpretation | |
CN115964837A (zh) | 基于光线跟踪的水下复杂目标激光扫描点云仿真方法 | |
Feilhauer et al. | A real-time capable multi-sensor model to validate ADAS in a virtual environment | |
Marchand et al. | Evaluating Surface Mesh Reconstruction of Open Scenes | |
Degen et al. | Development of a Lidar Model for the Analysis of Borderline Cases Including Vehicle Dynamics in a Virtual City Environment in Real Time | |
JP4357997B2 (ja) | 物体の双方向反射分布関数の高速推定方法 | |
Chen et al. | Analysis of real-time lidar sensor simulation for testing automated driving functions on a vehicle-in-the-loop testbench | |
Burchart et al. | A Stereo Camera Simulator for Large-Eddy Simulations of Continental Shallow Cumulus clouds based on three-dimensional Path-Tracing |
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 |