雷达仿真方法、装置、存储介质及电子设备
技术领域
本公开涉及仿真领域,具体地,涉及一种雷达仿真方法、装置、存储介质及电子设备。
背景技术
雷达仿真是在仿真场景的基础上,按照真实雷达参数,仿真出实际雷达的每一帧的雷达射线点云数据。雷达仿真具有以下优势:能够省去真实雷达的标注成本,因为人工标注不仅成本高,准确性还堪忧,精度很容易相差分米以上,而雷达仿真的障碍物标注则完全由仿真场景实时生成,标注精度更高;雷达仿真可以模拟极端天气和工况,例如,可以模拟出暴雨、暴雪、浓雾中的雷达点云,也可以模拟严重拥堵或者恶劣交通事故中的雷达点云。
现有雷达仿真的思路主要是模拟每一条真实雷达射线的发射,与场景中所有物体求交。以某64线、水平分辨率为0.4°、最大探测距离为120米的雷达为例,该雷达每一帧会发射出57600条射线(64*360/0.4)与场景中所有物体求交,如果求得的交点位于最大探测距离内,则为有效点,对于20HZ的雷达来说,每秒就需要发射1152000条射线。在复杂的城市道路仿真场景中,如果按照以上设置,则需要每秒百万条的射线与场景求交,对CPU的消耗极大。
在当前主流的通过模拟每一条射线与场景求交的算法中,有以下问题:由于CPU核数的限制,即使采用CPU并行方式,仿真速度也很难提升,实时仿真帧率不够;需要为每一种类型都添加与原始模型完全一致的碰撞体。对于有很多镂空的障碍物(如自行车),中间也不能有碰撞,不然会影响射线与场景的求交结果,而这样一辆仿真自行车就可能包括十多万个顶点,碰撞体越复杂,求交算法也就越耗时,导致随着仿真准确度的提升,帧率的下降十分明显;无法做到同时仿真多个雷达并融合,当前L4及以上自动驾驶车上,一般会安装多个雷达,而由于每个激光雷达都得消耗大量的CPU,因此当前主流仿真算法在单机(单CPU)上很难同时仿真多个激光雷达。
发明内容
本公开的目的是提供一种雷达仿真方法、装置、存储介质及电子设备,能够通过设置仿真相机来辅助仿真雷达进行仿真,很大程度地提高雷达仿真的速度,并且很大程度地提高了雷达仿真的扩展性,能够在保证仿真速度的情况下实现多个雷达同时进行仿真。
为了实现上述目的,本公开提供一种雷达仿真方法,所述方法包括:
根据仿真雷达在三维仿真场景中的位置设置仿真相机,其中,所述仿真相机的视口能够与所述仿真雷达的所有仿真雷达射线相交;
根据所述仿真相机获取所述三维仿真场景的点云数据;
获取所述仿真雷达射线在所述仿真相机中对应的平面像素坐标;
根据所述平面像素坐标在所述点云数据中进行采样,并将采样得到的点云数据作为所述仿真雷达的仿真结果。
可选地,所述根据仿真雷达在三维仿真场景中的位置设置仿真相机包括:
获取所述仿真雷达在三维仿真场景中的位置和仿真雷达视场角;
根据所述仿真雷达的所述位置和仿真雷达视场角确定所述仿真相机的位置、个数以及仿真相机视场角,以使所述仿真相机的视口能够与所述仿真雷达的所有仿真雷达射线相交,其中,所述仿真相机为一个或多个。
可选地,所述根据所述仿真相机获取所述三维仿真场景的点云数据包括:
获取所述仿真相机在所述三维仿真场景中能够得到的深度图、法线图和物理材质图;
根据所述深度图,计算所述深度图中的每个像素所对应的所述三维仿真场景中的物体上的点的三维坐标;
根据所述深度图、法线图和所述物理材质图计算所述深度图中的每个像素所对应的所述三维仿真场景中的物体上的点的射线反射强度;
将包括所述三维坐标和所述射线反射强度的所述深度图中的每个像素所对应的所述三维仿真场景中的物体上的点所构成的数据作为所述仿真相机获取到的所述三维仿真场景的点云数据。
可选地,所述获取所述仿真雷达射线在所述仿真相机中对应的平面像素坐标包括:
确定与所述仿真相机一一对应的第一平面,其中,与所述仿真相机的所述视口相交的所述仿真雷达射线也都能够与和该仿真相机一一对应的所述第一平面相交;
计算所述仿真雷达射线与所述第一平面的第一交点;
根据所述第一交点获取与所述第一交点对应的所述仿真雷达射线在所述仿真相机中对应的平面像素坐标。
可选地,所述计算所述仿真雷达射线与所述第一平面的第一交点包括:
获取所述第一平面的法向量和所述第一平面的中心点的坐标,所述中心点为与所述第一平面一一对应的所述仿真相机在所述第一平面的投影;
获取所述仿真雷达射线的方向向量;
通过以下公式得到所述第一交点:
P=Ray×length,
其中,length为所述第一交点到所述仿真雷达的距离,N为所述第一平面的所述法向量,P0为所述第一平面的所述中心点,Ray为所述仿真雷达射线的所述方向向量,P为所述第一交点。
可选地,所述根据所述平面像素坐标在所述点云数据中进行采样,并将采样得到的点云数据作为所述仿真雷达的仿真结果包括:
根据预设雷达噪声设置对采样得到的点云数据添加噪声;
将添加噪声后的点云数据作为所述仿真雷达的仿真结果。
本公开还提供一种雷达仿真装置,所述装置包括:
设置模块,用于根据仿真雷达在三维仿真场景中的位置设置仿真相机,其中,所述仿真相机的视口能够与所述仿真雷达的所有仿真雷达射线相交;
第一获取模块,用于根据所述仿真相机获取所述三维仿真场景的点云数据;
第二获取模块,用于获取所述仿真雷达射线在所述仿真相机中对应的平面像素坐标;
采样模块,用于根据所述平面像素坐标在所述点云数据中进行采样,并将采样得到的点云数据作为所述仿真雷达的仿真结果。
可选地,所述设置模块包括:
第一获取子模块,用于获取所述仿真雷达在三维仿真场景中的位置和仿真雷达视场角;
设置子模块,用于根据所述仿真雷达的所述位置和仿真雷达视场角确定所述仿真相机的位置、个数以及仿真相机视场角,以使所述仿真相机的视口能够与所述仿真雷达的所有仿真雷达射线相交,其中,所述仿真相机为一个或多个。
可选地,所述第一获取模块包括:
第二获取子模块,用于获取所述仿真相机在所述三维仿真场景中能够得到的深度图、法线图和物理材质图;
第一计算子模块,用于根据所述深度图,计算所述深度图中的每个像素所对应的所述三维仿真场景中的物体上的点的三维坐标;
第二计算子模块,用于根据所述深度图、法线图和所述物理材质图计算所述深度图中的每个像素所对应的所述三维仿真场景中的物体上的点的射线反射强度;
融合子模块,用于将包括所述三维坐标和所述射线反射强度的所述深度图中的每个像素所对应的所述三维仿真场景中的物体上的点所构成的数据作为所述仿真相机获取到的所述三维仿真场景的点云数据。
可选地,所述第二获取模块包括:
确定子模块,用于确定与所述仿真相机一一对应的第一平面,其中,与所述仿真相机的所述视口相交的所述仿真雷达射线也都能够与和该仿真相机一一对应的所述第一平面相交;
第三计算子模块,用于计算所述仿真雷达射线与所述第一平面的第一交点;
第四计算子模块,用于根据所述第一交点获取与所述第一交点对应的所述仿真雷达射线在所述仿真相机中对应的平面像素坐标。
可选地,所述第三计算子模块包括:
第三获取子模块,用于获取所述第一平面的法向量和所述第一平面的中心点的坐标,所述中心点为与所述第一平面一一对应的所述仿真相机在所述第一平面的投影;
第四获取子模块,用于获取所述仿真雷达射线的方向向量;
第五计算子模块,用于通过以下公式得到所述第一交点:
P=Ray×length,
其中,length为所述第一交点到所述仿真雷达的距离,N为所述第一平面的所述法向量,P0为所述第一平面的所述中心点,Ray为所述仿真雷达射线的所述方向向量,P为所述第一交点。
可选地,所述采样模块包括:
噪声添加子模块,用于根据预设雷达噪声设置对采样得到的点云数据添加噪声;
所述采样模块还用于,将添加噪声后的点云数据作为所述仿真雷达的仿真结果。
本公开还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现以上所述雷达仿真方法的步骤。
本公开还提供一种电子设备,包括:
存储器,其上存储有计算机程序;
处理器,用于执行所述存储器中的所述计算机程序,以实现以上所述雷达仿真方法的步骤。
通过上述技术方案,能够通过设置仿真相机来辅助仿真雷达进行仿真,根据设置的仿真相机获取三维仿真场景中的点云数据,并根据仿真雷达中的所有仿真雷达射线在仿真相机中对应的平面像素坐标在该点云数据中采样雷达仿真数据,这样,相比于依次对每一条雷达射线进行仿真,能够很大程度地提高雷达仿真的速度,并且,利用仿真相机来获取点云数据的过程能够通过GPU来完成,这不仅通过减轻CPU的工作量提高了雷达仿真速度,而且很大程度地提高了雷达仿真的扩展性,在需要进行仿真的雷达数目过多,GPU压力过大时,可以通过在一台主机上增加显卡的方法来在保证GPU的仿真速度的情况下实现多个雷达同时进行仿真,另外,在雷达仿真过程中无需再对因为场景需求而添加的障碍物结合对每一条仿真雷达射线的仿真来进行求交运算,可以直接将障碍物在三维仿真场景中的信息结合仿真数据直接进行显示,在大大减少运算量的情况下,更能保证仿真精度。
本公开的其他特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
附图是用来提供对本公开的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本公开,但并不构成对本公开的限制。在附图中:
图1是根据本公开一示例性实施例示出的一种雷达仿真方法的流程图。
图2是根据本公开又一示例性实施例示出的一种雷达仿真方法中根据仿真雷达在三维仿真场景中的位置设置仿真相机的方法的流程图。
图3是根据本公开又一示例性实施例示出的一种雷达仿真方法中根据所述仿真相机获取所述三维仿真场景的点云数据的方法的流程图。
图4是根据本公开又一示例性实施例示出的一种雷达仿真方法中获取所述仿真雷达射线在所述仿真相机中对应的平面像素坐标的方法的流程图。
图5是根据本公开一示例性实施例示出的一种雷达仿真装置的结构框图。
图6是根据本公开又一示例性实施例示出的一种雷达仿真装置的结构框图。
图7是根据一示例性实施例示出的一种电子设备的框图。
具体实施方式
以下结合附图对本公开的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本公开,并不用于限制本公开。
图1是根据本公开一示例性实施例示出的一种雷达仿真方法的流程图。如图1所示,根据所述方法包括步骤101至步骤104。
在步骤101中,根据仿真雷达在三维仿真场景中的位置设置仿真相机,其中,所述仿真相机的视口能够与所述仿真雷达的所有仿真雷达射线相交。
该三维仿真场景可以是通过高精地图建立的。除了根据高精地图的数据建立该三维仿真场景之外,还可以在该三维仿真场景中添加模拟天气,例如雨天、雾天、雾天等。另外,还可以在该三维仿真场景中添加多种动态交通流参与者,例如场景中的车辆、行人等,为这些动态交通流参与者也设置一定的行车路线或者行走路线,以丰富三维仿真场景。
该仿真雷达可以是设置在三维仿真场景中的测试车辆上的,例如车载激光雷达,根据该仿真雷达在测试车辆上的安装位置和角度,就能够获取到该仿真雷达在该三维仿真场景中的位置坐标。该位置坐标可以包括例如X轴坐标、Y轴坐标、Z轴坐标、姿态角等,其中姿态角包括俯仰角(pitch)、偏航角(yaw)、滚转角(roll)等。
在获取到该仿真雷达的位置之后,就可以根据该仿真雷达的位置设置仿真相机。在一种可能的实施例中,所述根据仿真雷达在三维仿真场景中的位置设置仿真相机包括如图2所示的步骤201和步骤202。
在步骤201中,获取所述仿真雷达在三维仿真场景中的位置和仿真雷达视场角。其中,该仿真雷达在三维仿真场景中的位置所包括的信息可以如上所述,包括例如X轴坐标、Y轴坐标、Z轴坐标、姿态角等,其中姿态角包括俯仰角(pitch)、偏航角(yaw)、滚转角(roll)等;所述仿真雷达的视场角(Field of view,FOV)可以包括例如水平视场角和垂直视场角,根据该仿真雷达视场角就能够得到该仿真雷达的仿真雷达射线可能会覆盖的角度范围。
在步骤202中,根据所述仿真雷达的所述位置和仿真雷达视场角确定所述仿真相机的位置、个数以及仿真相机视场角,以使所述仿真相机的视口能够与所述仿真雷达的所有仿真雷达射线相交,其中,所述仿真相机为一个或多个。例如,在仿真雷达的水平视场角为360°的情况下,我们可以以该仿真雷达为中心,设置4个水平视场角都为90°的仿真相机,使得四个仿真相机的在三维仿真场景中的位置相同,但朝向分别间隔90°。这样,设置的仿真相机的水平视场角之和,就能够将仿真雷达的水平视场角所覆盖的角度范围全都包括在内,对于仿真相机的垂直视场角的选择和设置方法也与水平视场角相同。
并且,由于根据该仿真雷达视场角就能够得到该仿真雷达的仿真雷达射线可能会覆盖的角度范围,因此,在所设置的一个或多个仿真相机的视场角之和能够将该仿真雷达视场角包括在内时,也能将该仿真雷达的所有仿真雷达射线可能会覆盖的角度范围包括在内,因此就保证了仿真相机的视口能够与所述仿真雷达的所有仿真雷达射线相交。因此,在获取到该仿真雷达在三维仿真场景中的位置和该仿真雷达视场角的情况下,该仿真相机的设置只要能够满足最终设置的一个或多个仿真相机的视口能够与所述仿真雷达的所有仿真雷达射线相交的条件即可。
在步骤102中,根据所述仿真相机获取所述三维仿真场景的点云数据。在三维仿真场景中将一个或多个仿真相机设置好之后,就能根据对该仿真相机的仿真,来获取根据该仿真相机所得到的该三维仿真场景的点云数据,该点云数据为密集点云数据。该点云数据中的每个采样点都是以该仿真相机的像素为单位来获取的。根据仿真雷达的不同类型,对该仿真相机进行仿真所得到的点云数据所包含的信息也可能会有所不同,例如,当该仿真雷达为激光雷达时,该点云数据中所包含的信息可以为X轴坐标、Y轴坐标、Z轴坐标以及激光反射强度(Intensity)。具体的,图3中给出了一种根据所述仿真相机获取所述三维仿真场景的点云数据的方法,方法的详细介绍将在后面对图3的描述中给出。
在步骤103中,获取所述仿真雷达射线在所述仿真相机中对应的平面像素坐标。在对该仿真雷达进行仿真之前,除了需要根据该仿真雷达在车辆上的位置来设置该仿真雷达在该三维仿真场景中的位置,还需要对该仿真雷达的线数、工作频率、最大探测距离等等进行设置。其中,通过对该线数的设置,就能够得到该仿真雷达中的每一条仿真雷达射线在该三维仿真场景中的位置,由此就能够根据每一条仿真雷达射线的位置来计算该仿真雷达射线在该仿真相机中对应的平面像素坐标,即该仿真雷达射线与该仿真相机仿真得到的平面图像的交点像素的坐标。由于仿真相机在设置的过程中是按照其视口能够与仿真雷达的所有仿真雷达射线相交的条件来进行设置的,因此能够保证所有仿真雷达射线能够在该仿真相机中对应一个平面像素坐标。具体的,图4给出了一种获取所述仿真雷达射线在所述仿真相机中对应的平面像素坐标的方法,方法的详细介绍将在后面对图4的描述中给出。
在步骤104中,根据所述平面像素坐标在所述点云数据中进行采样,并将采样得到的点云数据作为所述仿真雷达的仿真结果。
由于该点云数据是通过对仿真相机的仿真所得到的,因此该点云数据中的每一个点都是与该仿真相机中的像素点一一对应的,因此,根据步骤103中得到的仿真雷达射线在该仿真相机中对应的平面像素坐标,就能够得到该仿真雷达射线对应的点云数据。因此,根据该平面像素坐标在该点云数据中进行采样,将该仿真雷达射线对应的点云数据采样出来,该采样得到的点云数据即为该仿真雷达的仿真结果。
对于步骤101和步骤103,可以在确定了仿真雷达的参数之后进行一次设置,即,根据仿真雷达的参数确定该仿真相机的设置,并获取该仿真雷达射线在仿真相机中对应的平面像素坐标之后,在仿真雷达参数不修改的情况下,无需在重复进行步骤101和步骤103,仅根据仿真过程循环获取点云数据,并根据该平面像素坐标在该点云数据中采样即可得到雷法的仿真数据。
另外,在根据所述平面像素坐标在所述点云数据中进行采样之前,还可以先根据将该点云数据渲染到纹理,以得到一个能够表示该点云数据的二维纹理数据,以方便对该点云数据进行的采样处理。例如,当该点云数据是由GPU得到的,点云数据的采样是通过CPU来完成,则在将该点云数据发送给CPU进行采样之前,还需要将其渲染到纹理,才能够方便CPU对该点云数据进行采样。
通过上述技术方案,能够通过设置仿真相机来辅助仿真雷达进行仿真,根据设置的仿真相机获取三维仿真场景中的点云数据,并根据仿真雷达中的所有仿真雷达射线在仿真相机中对应的平面像素坐标在该点云数据中采样雷达仿真数据,这样,相比于依次对每一条雷达射线进行仿真,能够很大程度地提高雷达仿真的速度,并且,利用仿真相机来获取点云数据的过程能够通过GPU来完成,这不仅通过减轻CPU的工作量提高了雷达仿真速度,而且很大程度地提高了雷达仿真的扩展性,在需要进行仿真的雷达数目过多,GPU压力过大时,可以通过在一台主机上增加显卡的方法来在保证GPU的仿真速度的情况下实现多个雷达同时进行仿真,另外,在雷达仿真过程中无需再对因为场景需求而添加的障碍物结合对每一条仿真雷达射线的仿真来进行求交运算,可以直接将障碍物在三维仿真场景中的信息结合仿真数据直接进行显示,在大大减少运算量的情况下,更能保证仿真精度。
图3是根据本公开又一示例性实施例示出的一种雷达仿真方法中根据所述仿真相机获取所述三维仿真场景的点云数据的方法的流程图。如图3所示,所述方法包括步骤301至步骤304。
在步骤301中,获取所述仿真相机在所述三维仿真场景中能够得到的深度图、法线图和物理材质图。
在只设置了一个仿真相机的情况下,针对该仿真相机获取该深度图、法线图和物理材质图;在设置了多个仿真相机的情况下,对每一个仿真相机都需要分别获取与该仿真相机对应的深度图、法线图和物理材质图。
其中,该深度图中的每个像素值代表的是物体到相机的距离,在该法线图中的每个像素值代表的是物体在该像素点上的法线方向,该物理材质图中的每个像素值代表的是物体在该像素点上的物理材质。
在构建该三维仿真场景的过程中,可以给雷达仿真过程中仿真雷达需要关注的每一种场景资源设置相应的物理材质(Physics Materials),例如,道路、人行道、车道线、交通牌、交通灯、车辆、行人等,这样,在对该仿真相机进行仿真的过程中就可以根据不同的场景资源所对应的物理材质的不同仿真得到物理材质图。由于不同的物理材质的射线反射率不同,因此可以通过预设的各种不同物理材质的射线反射率,以及仿真相机仿真得到的物理材质图,来获得不同的该物理材质图中每个像素点所对应的射线反射率。每一种物理材质的射线反射率都可以使用相应地仪器测得或者根据资料查找得到,其中该射线反射率可以为激光反射率,该射线反射强度可以为射线反射强度。
在步骤302中,根据所述深度图,计算所述深度图中的每个像素所对应的所述三维仿真场景中的物体上的点的三维坐标。由于仿真相机的位置是已知的,因此根据该深度图中的信息,就能够知道与该深度图中的每一个像素所对应的三维仿真场景中的物体上的点的位置,即在该三维仿真场景中的三维坐标。具体可以根据以下公式来计算:
其中,Position为该像素在三维仿真场景中的位置,CameraVector为从该仿真相机指向该像素的向量,CameraDirectionVector为该仿真相机的朝向向量,CustomDepth为该深度图中该像素对应的深度,“·”表示点乘。
在步骤303中,根据所述深度图、法线图和所述物理材质图计算所述深度图中的每个像素所对应的所述三维仿真场景中的物体上的点的射线反射强度。由于雷达射线的反射强度跟不同的物理材质对该射线的反射率有关,也受障碍物距离、反射角度的影响,因此需要根据上述三种仿真图像数据来计算上述图像中所每个像素点对应的三维仿真场景中的物体上的点的射线反射强度。由于上述三个图都是通过对同一个仿真相机进行仿真后得到的,因此每张图中的像素点都是一一对应的,因此,通过结合上述三个图中每个像素点的信息,就能计算得到图中每个像素点所对应的三维仿真场景中的物体上的点的射线反射强度。
其中,在一种可能的实施方式中,可以将通过上述步骤303得到的射线反射强度进行归一化,以使以上所述的三个图中的每个像素点对应的射线反射强度都在例如0-255之间,以方便后期的处理。
在步骤304中,将包括所述三维坐标和所述射线反射强度的所述深度图中的每个像素所对应的所述三维仿真场景中的物体上的点所构成的数据作为所述仿真相机获取到的所述三维仿真场景的点云数据。通过步骤301至步骤303,根据对每个仿真相机进行仿真得到的深度图、法线图和物理材质图,从而得到带有射线反射强度的该三维仿真场景的点云数据,该射线反射强度可以为例如激光反射强度,该点云数据中每个点的存储空间至少为8字节。
通过上述技术方案,能够通过对仿真相机在三维仿真场景进行仿真得到的深度图、法线图和物理材质图得到带有射线反射强度的点云数据,由于该深度图、法线图和物理材质图都可以通过在GPU中渲染得到,即,该带有射线反射强度的点云数据都可以通过GPU来进行获取,这样,利用GPU就能代替CPU完成对雷达仿真的一大部分工作,大大减轻了雷达仿真过程中CPU的负荷,从而就使得在同一主机中雷达仿真速度能够更快,还能够实现对更多的雷达同时进行仿真。
图4是根据本公开又一示例性实施例示出的一种雷达仿真方法中获取所述仿真雷达射线在所述仿真相机中对应的平面像素坐标的方法的流程图。如图4所示,所述方法包括步骤401至步骤403。
在步骤401中,确定与所述仿真相机一一对应的第一平面,其中,与所述仿真相机的所述视口相交的所述仿真雷达射线也都能够与和该仿真相机一一对应的所述第一平面相交。该第一平面可以为任意平面,只要能够保证与该仿真相机的视口相交的仿真雷达射线在该平面上都有交点即可。例如,在仿真雷达的水平视场角为360°的情况下,在三维仿真场景中,以该仿真雷达为中心,可以设置4个分辨率为1600*1200的仿真相机,每个相机水平视场角为90°,4个仿真相机的位置相同,朝向分别间隔90°。则,与该4个仿真相机分别需要设置一个第一平面,此处可以设置四个相同大小的第一平面,其宽度width=1600,高度height=1200,四个第一平面分别对应一个仿真相机放置,四个第一平面和与其对应的仿真相机之间的距离可以为
distance为该第一平面和与其对应的仿真相机之间的距离,FOV为该仿真相机的水平视场角,由此就确定了该四个第一平面的位置。
在步骤402中,计算所述仿真雷达射线与所述第一平面的第一交点。
在一种可能的实施方式中,所述计算所述仿真雷达射线与所述第一平面的第一交点包括:获取所述第一平面的法向量和所述第一平面的中心点的坐标,所述中心点为与所述第一平面一一对应的所述仿真相机在所述第一平面的投影;获取所述仿真雷达射线的方向向量;通过以下公式得到所述第一交点:
P=Ray×length (3),
其中,length为所述第一交点到所述仿真雷达的距离,N为所述第一平面的所述法向量,P0为所述第一平面的所述中心点,Ray为所述仿真雷达射线的所述方向向量,P为所述第一交点。
该第一平面可以由以下公式得到:
N·(P-P0)=0 (4),
联立公式(3)和公式(4)即可得到公式(2)。
在步骤403中,根据所述第一交点获取与所述第一交点对应的所述仿真雷达射线在所述仿真相机中对应的平面像素坐标。该第一交点的坐标为该三维仿真场景中的坐标,要将其转化为在仿真相机中对应的平面像素坐标,可以先通过将该第一交点的坐标转化在该第一平面上,得到以该第一平面的中心点为原点的二维坐标系中该第一交点的坐标,然后再根据该第一平面的与仿真相机的关系,根据该第一平面中的该第一交点在该仿真相机中对应的平面像素坐标。在步骤401中给出的示例中,在得到该第一交点在该第一平面中的二维坐标之后,直接减去
即可得到该第一交点在该仿真相机中对应的平面像素坐标。
通过上述技术方案,就能根据对每一个设置的仿真相机设定一个第一平面的方式来得到每一个仿真雷达射线在该仿真相机中对应的平面像素坐标,从而方便了在仿真相机获取到三维仿真场景的点云数据之后,采样得到雷达仿真需要的点云数据。
在一种可能的实施方式中,所述根据所述平面像素坐标在所述点云数据中进行采样,并将采样得到的点云数据作为所述仿真雷达的仿真结果包括:根据预设雷达噪声设置对采样得到的点云数据添加噪声;将添加噪声后的点云数据作为所述仿真雷达的仿真结果。该雷达噪声设置可以是根据雷达类型来进行设置的,通过为采样得到的点云数据添加噪声,并将添加了噪声的点云数据作为仿真雷达的仿真结果,这样能够使得最终得到的雷达仿真结果更加真实。
图5是根据本公开一示例性实施例示出的一种雷达仿真装置的结构框图。如图5所示,所述装置包括:设置模块10,用于根据仿真雷达在三维仿真场景中的位置设置仿真相机,其中,所述仿真相机的视口能够与所述仿真雷达的所有仿真雷达射线相交;第一获取模块20,用于根据所述仿真相机获取所述三维仿真场景的点云数据;第二获取模块30,用于获取所述仿真雷达射线在所述仿真相机中对应的平面像素坐标;采样模块40,用于根据所述平面像素坐标在所述点云数据中进行采样,并将采样得到的点云数据作为所述仿真雷达的仿真结果。
通过上述技术方案,能够通过设置仿真相机来辅助仿真雷达进行仿真,根据设置的仿真相机获取三维仿真场景中的点云数据,并根据仿真雷达中的所有仿真雷达射线在仿真相机中对应的平面像素坐标在该点云数据中采样雷达仿真数据,这样,相比于依次对每一条雷达射线进行仿真,能够很大程度地提高雷达仿真的速度,并且,利用仿真相机来获取点云数据的过程能够通过GPU来完成,这不仅通过减轻CPU的工作量提高了雷达仿真速度,而且很大程度地提高了雷达仿真的扩展性,在需要进行仿真的雷达数目过多,GPU压力过大时,可以通过在一台主机上增加显卡的方法来在保证GPU的仿真速度的情况下实现多个雷达同时进行仿真,另外,在雷达仿真过程中无需再对因为场景需求而添加的障碍物结合对每一条仿真雷达射线的仿真来进行求交运算,可以直接将障碍物在三维仿真场景中的信息结合仿真数据直接进行显示,在大大减少运算量的情况下,更能保证仿真精度。
图6是根据本公开又一示例性实施例示出的一种雷达仿真装置的结构框图。如图6所示,所述设置模块10包括:第一获取子模块101,用于获取所述仿真雷达在三维仿真场景中的位置和仿真雷达视场角;设置子模块102,用于根据所述仿真雷达的所述位置和仿真雷达视场角确定所述仿真相机的位置、个数以及仿真相机视场角,以使所述仿真相机的视口能够与所述仿真雷达的所有仿真雷达射线相交,其中,所述仿真相机为一个或多个。
如图6所示,所述第一获取模块20包括:第二获取子模块201,用于获取所述仿真相机在所述三维仿真场景中能够得到的深度图、法线图和物理材质图;第一计算子模块202,用于根据所述深度图,计算所述深度图中的每个像素所对应的所述三维仿真场景中的物体上的点的三维坐标;第二计算子模块203,用于根据所述深度图、法线图和所述物理材质图计算所述深度图中的每个像素所对应的所述三维仿真场景中的物体上的点的射线反射强度;融合子模块204,用于将包括所述三维坐标和所述射线反射强度的所述深度图中的每个像素所对应的所述三维仿真场景中的物体上的点所构成的数据作为所述仿真相机获取到的所述三维仿真场景的点云数据。
如图6所示,所述第二获取模块30包括:确定子模块301,用于确定与所述仿真相机一一对应的第一平面,其中,与所述仿真相机的所述视口相交的所述仿真雷达射线也都能够与和该仿真相机一一对应的所述第一平面相交;第三计算子模块302,用于计算所述仿真雷达射线与所述第一平面的第一交点;第四计算子模块303,用于根据所述第一交点获取与所述第一交点对应的所述仿真雷达射线在所述仿真相机中对应的平面像素坐标。
如图6所示,所述第三计算子模块302包括:第三获取子模块3021,用于获取所述第一平面的法向量和所述第一平面的中心点的坐标,所述中心点为与所述第一平面一一对应的所述仿真相机在所述第一平面的投影;第四获取子模块3022,用于获取所述仿真雷达射线的方向向量;第五计算子模块3023,用于通过以下公式得到所述第一交点:
P=Ray×length (3),
其中,length为所述第一交点到所述仿真雷达的距离,N为所述第一平面的所述法向量,P0为所述第一平面的所述中心点,Ray为所述仿真雷达射线的所述方向向量,P为所述第一交点。
如图6所示,所述采样模块40包括:噪声添加子模块401,用于根据预设雷达噪声设置对采样得到的点云数据添加噪声;所述采样模块40还用于,将添加噪声后的点云数据作为所述仿真雷达的仿真结果。
本领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述功能模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
通过上述雷达仿真装置,能够通过设置仿真相机来辅助仿真雷达进行仿真,根据设置的仿真相机获取三维仿真场景中的点云数据,并根据仿真雷达中的所有仿真雷达射线在仿真相机中对应的平面像素坐标在该点云数据中采样雷达仿真数据,这样,相比于依次对每一条雷达射线进行仿真,能够很大程度地提高雷达仿真的速度,并且,利用仿真相机来获取点云数据的过程能够通过GPU来完成,这不仅通过减轻CPU的工作量提高了雷达仿真速度,而且很大程度地提高了雷达仿真的扩展性,在需要进行仿真的雷达数目过多,GPU压力过大时,可以通过在一台主机上增加显卡的方法来在保证GPU的仿真速度的情况下实现多个雷达同时进行仿真,另外,在雷达仿真过程中无需再对因为场景需求而添加的障碍物结合对每一条仿真雷达射线的仿真来进行求交运算,可以直接将障碍物在三维仿真场景中的信息结合仿真数据直接进行显示,在大大减少运算量的情况下,更能保证仿真精度。
本公开实施例还提供一种算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述方法实施例提供的雷达仿真方法的步骤。
本公开实施例还提供一种电子设备,该电子设备可以被提供作为一种服务器,该电子设备包括:存储器,其上存储有计算机程序;
处理器,用于执行所述存储器中的所述计算机程序,以实现上述方法实施例提供的雷达仿真方法的步骤。
图7是根据一示例性实施例示出的一种电子设备700的框图。如图7所示,该电子设备700可以包括:处理器701,存储器702。该电子设备700还可以包括多媒体组件703,输入/输出(I/O)接口704,以及通信组件705中的一者或多者。
其中,处理器701用于控制该电子设备700的整体操作,以完成上述的雷达仿真方法中的全部或部分步骤,其中,所述处理器701可以为图形处理器(Graphics ProcessingUnit,GPU)和/或中央处理器(Central Processing Unit,CPU),例如,针对图1中所示的步骤102至步骤104,可以由图形处理器GPU来执行步骤102的方法,由中央处理器来执行步骤104的方法。存储器702用于存储各种类型的数据以支持在该电子设备700的操作,这些数据例如可以包括用于在该电子设备700上操作的任何应用程序或方法的指令,以及应用程序相关的数据,例如联系人数据、收发的消息、图片、音频、视频等等。该存储器702可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,例如静态随机存取存储器(Static Random Access Memory,简称SRAM),电可擦除可编程只读存储器(ElectricallyErasable Programmable Read-Only Memory,简称EEPROM),可擦除可编程只读存储器(Erasable Programmable Read-Only Memory,简称EPROM),可编程只读存储器(Programmable Read-Only Memory,简称PROM),只读存储器(Read-Only Memory,简称ROM),磁存储器,快闪存储器,磁盘或光盘。多媒体组件703可以包括屏幕和音频组件。其中屏幕例如可以是触摸屏,音频组件用于输出和/或输入音频信号。例如,音频组件可以包括一个麦克风,麦克风用于接收外部音频信号。所接收的音频信号可以被进一步存储在存储器702或通过通信组件705发送。音频组件还包括至少一个扬声器,用于输出音频信号。I/O接口704为处理器701和其他接口模块之间提供接口,上述其他接口模块可以是键盘,鼠标,按钮等。这些按钮可以是虚拟按钮或者实体按钮。通信组件705用于该电子设备700与其他设备之间进行有线或无线通信。无线通信,例如Wi-Fi,蓝牙,近场通信(Near FieldCommunication,简称NFC),2G、3G、4G、NB-IOT、eMTC、或其他5G等等,或它们中的一种或几种的组合,在此不做限定。因此相应的该通信组件705可以包括:Wi-Fi模块,蓝牙模块,NFC模块等等。
在一示例性实施例中,电子设备700可以被一个或多个应用专用集成电路(Application Specific Integrated Circuit,简称ASIC)、数字信号处理器(DigitalSignal Processor,简称DSP)、数字信号处理设备(Digital Signal Processing Device,简称DSPD)、可编程逻辑器件(Programmable Logic Device,简称PLD)、现场可编程门阵列(Field Programmable Gate Array,简称FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述的雷达仿真方法。
在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,该程序指令被处理器执行时实现上述的雷达仿真方法的步骤。例如,该计算机可读存储介质可以为上述包括程序指令的存储器702,上述程序指令可由电子设备700的处理器701执行以完成上述的雷达仿真方法。
以上结合附图详细描述了本公开的优选实施方式,但是,本公开并不限于上述实施方式中的具体细节,在本公开的技术构思范围内,可以对本公开的技术方案进行多种简单变型,这些简单变型均属于本公开的保护范围。
另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合。为了避免不必要的重复,本公开对各种可能的组合方式不再另行说明。
此外,本公开的各种不同的实施方式之间也可以进行任意组合,只要其不违背本公开的思想,其同样应当视为本公开所公开的内容。