渲染感知地图的方法和装置与流程

文档序号:16213855发布日期:2018-12-08 08:06阅读:336来源:国知局
渲染感知地图的方法和装置与流程

本公开总体上涉及自动驾驶的技术领域,并且具体地涉及一种渲染感知地图的方法和装置。

背景技术

自动驾驶系统的开发往往需要大量的调试和验证。实车调试的方式通常需要大量的人力和物力成本,而且具有一定的风险性。可以通过车辆自动驾驶模拟器进行初步的调试和验证。

期望能够在渲染例如车道及车道线等地图元素的同时高效且准确地渲染障碍物的遮挡情况的感知地图渲染方法。



技术实现要素:

一方面,本公开提供了一种渲染感知地图的方法,该方法可以包括:确定虚拟目标车辆在自动驾驶虚拟场景的当前帧中的当前位置;通过解析高精度地图来至少获得以当前位置为基准点且在预定范围内的车道线;根据相邻的车道线来确定车道的结构;根据所确定的车道的结构来确定所述车道是否是可行驶的;以及在包括预定范围的感知地图上至少将可行驶的车道渲染为可行驶区域。

另一方面,本公开提供了一种计算机可读取的非临时性存储介质,在其上存储有程序指令,前述程序指令在被执行时执行上述方法。

另一方面,本公开提供了一种渲染感知地图的装置,该装置可以包括一个或多个处理器,前述一个或多个处理器可以被配置为在启用时至少执行上述方法。

另一方面,本公开提供了一种渲染感知地图的装置,该装置可以包括模拟器、高精度地图解析器、处理器和渲染器。模拟器可以被配置为生成虚拟目标车辆以及自动驾驶虚拟场景的每个帧。高精度地图解析器可以被配置为解析高精度地图以至少获得以虚拟目标车辆在自动驾驶虚拟场景的当前帧中的当前位置为基准点且在预定范围内的车道线。处理器可以被配置为根据相邻的车道线来确定车道的结构并根据所确定的车道的结构来确定车道是否是可行驶的。渲染器可以被配置为至少将可行驶的车道渲染为可行驶区域。

通过根据本公开的实施例的方法和装置,能够在渲染例如车道及车道线等地图元素的同时高效且准确地渲染障碍物的遮挡情况。

附图说明

图1示出根据本公开的实施例的渲染感知地图的示例方法。

图2示出根据本公开的实施例的方法渲染的感知地图的示例。

图3示出根据本公开的实施例的方法渲染的感知地图的示例。

图4示出根据本公开的实施例的方法渲染的感知地图的示例。

图5示出根据本公开的实施例的方法渲染的感知地图的示例。

图6示出根据本公开的实施例的渲染感知地图的示例装置。

具体实施方式

下面结合附图描述根据本公开的实施例的渲染感知地图的方法和装置。

如图1所示,根据本公开的实施例的示例方法100可以开始于步骤s110,以确定虚拟目标车辆在自动驾驶虚拟场景的当前帧中的当前位置。

如图2所示,在步骤s110中,例如可以根据由自动驾驶算法(调试和验证的目标)制定的用于控制虚拟目标车辆d的自动驾驶方案(例如,可以包括虚拟目标车辆d行进的规划路线),确定虚拟目标车辆d在自动驾驶虚拟场景的当前帧中的当前位置。

在一个实施例中,可以根据虚拟目标车辆d在规划路线上的当前轨迹点的位置来确定虚拟目标车辆d的当前位置,并且可以使用例如当前轨迹点的位置坐标来表征虚拟目标车辆d的当前位置。

在另外的实施例中,可以根据虚拟目标车辆d的车头朝向(例如,相对基准面或基准线的角度)和当前轨迹点的位置,计算出各个车轮的中心位置坐标或各个车轮与地面之间的接触点的位置坐标来确定虚拟目标车辆d的当前位置,并且通过一个或多个角度以及一个或多个坐标来表征虚拟目标车辆d的当前位置。

在另外的实施例中,可以通过虚拟目标车辆d的包围盒来表征该虚拟目标车辆d,并且使用包围盒的例如8个顶点的位置坐标来表征虚拟目标车辆d的当前位置。

在其他实施例中,还可以采用其他任何适当的方式来表征虚拟目标车辆d的当前位置,并且可以根据所采用的表征方式,根据当前轨迹点的位置确定与表征该虚拟目标车辆d的当前位置有关的数据。

然后,如图2所示,可以根据所确定的当前位置,将虚拟目标车辆d渲染到感知地图l1的自动驾驶虚拟场景的当前帧中。

然后,如图1所示,示例方法100可以继续到步骤s120,以通过解析高精度地图来至少获得以当前位置为基准点且在预定范围内的车道线。

根据不同的实施例,可以采用任何适当的方法来解析基于任何标准的高精度地图,本公开不局限于所解析的高精度地图所遵循的特定标准,也不局限于高精度地图的特定的解析方法。

如图2所示,可以以虚拟目标车辆d的当前位置为基准点,确定一个预定范围。

该预定范围可以小于或等于感知地图l1的实际范围,例如与感知地图l1的实际范围相同。

在一个实施例中,该预定范围可以以虚拟目标车辆d的当前位置为中心。在另外的实施例中,例如如图2所示,虚拟目标车辆d的当前位置可以不必位于该预定范围的中心处。根据不同的实施例,该预定范围可以用任何适当的三角形、多边形(例如,图2的示例中的斜置的正方形l1)、圆形、椭圆形或不规则图形来表示。

该预定范围在被确定下来之后,用于表示该预定范围的图形可以根据作为其基准点的虚拟目标车辆d的位置和状态的改变而改变位置或旋转。

在一个实施例中,可以根据场景的最大显示范围(例如,图2的示例中的实线构成的矩形区域dis)和/或与其他感知地图的范围的交集,来确定该预定范围或者感知地图l1的实际显示/渲染范围。例如,在图2的示例中,该预定范围或者感知地图l1的实际显示/渲染范围是该预定范围或者感知地图l1的实际范围的子集,即,图2中被组线多边形包围的部分。

在下文中,为了描述上的方便,将不区分该预定范围和感知地图l1的实际范围,即,在本文中将以感知地图l1的实际范围与该预定范围相同为例进行描述,并且将两者统称为“预定范围l1”或者“感知地图l1”或者“在预定范围l1上的感知地图”;并且将预定范围的实际显示/渲染范围简称为“显示范围”或者“感知地图的显示范围”,例如图2中的粗线多边形包围的区域。然而,在提及“感知地图l1的某个范围”时,根据上下文,可能意味着感知地图l1的实际范围可以大于或等于(即包括)所提及的某个范围。

在一个实施例中,如图2所示,可以不显示或者不实际渲染感知地图l1中处于相应的显示范围之外的地图元素。在另外的实施例中,可以完整地渲染感知地图l1,然后根据相应的显示范围来决定将哪些内容实际地显示在例如屏幕上。

在图2的示例中,除了预定范围l1内的车道线之外,还从高精度地图中解析并渲染有例如静态障碍物b1和b2这样的其他地图元素。

然后,如图1所示,示例方法100可以继续到步骤s130,以根据相邻的车道线来确定车道的结构。

在一个实施例中,可以根据作为车道与非车道之间的边界线的车道线来确定车道的轮廓或结构。例如,在图2的示例中,根据预定范围l1内的相邻的车道线,可以确定虚拟目标车辆d所在的车道具有弯曲且分岔的结构。在图3的示例中,根据预定范围l1内的相邻的车道线,可以确定虚拟目标车辆d所在的车道具有大致十字的结构。

然后,如图1所示,示例方法100可以继续到步骤s140,以根据所确定的车道的结构来确定车道是否是可行驶的。

在一个实施例中,车道之外的区域可以被规定为是不可行驶的。在另外的实施例中,车道之外的诸如人行道、停车位、应急停车区域、广场等其他地图元素对应的区域也可以被确定为是可行驶的。

在一个实施例中,可以确定在至少在预定范围l1内是否存在静态或动态障碍物。从虚拟目标车辆d的角度来看,在该车道上,至少静态或动态障碍物所在的障碍物区域以及被静态或动态障碍物遮挡的未知区域至少暂时是不可行驶的。关于静态或动态障碍物所在的区域以及被静态或动态障碍物遮挡的区域,将在下文更详细地描述。

在另外的实施例中,还可以根据交通信号灯的状态(例如,交通信号灯的模拟状态或者从交通指挥中心实时读取到的交通信号灯的状态)来确定该车道或者该车道的一部分是否是可行驶的。

例如,在图3的示例中,从高精度地图解析出的处于预定范围l1内的地图元素包括大致“十字”形的车道和位于该车道的交叉口处的交通信号灯s。对虚拟目标车辆d而言,在交通信号灯s中的关于直行和左转的信号灯为绿色时,l1内的整个车道的所有部分均是可行驶的,而在在交通信号灯s中的关于直行和左转的信号灯为红色时,图3中的阴影部分的车道至少暂时是不可行驶的。

在另外的实施例中,至少在预定范围l1内,根据高精度地图未明确地确定对应的地图元素的区域可以是不可行驶的区域。

然后,如图1所示,示例方法100可以继续到步骤s150,以在包括预定范围的感知地图上至少将可行驶的车道渲染为可行驶区域。

根据不同的实施例,可以采用任何适当的方式来渲染可行驶区域,例如使用特定的颜色填充。

在一个实施例中,如图2所示,可以先在暂时不考虑各种障碍物的情况下,将l1范围内的整个道路部分作为初始的可行驶区域aa’(在图2中用网状阴影表示),然后在l1上进一步渲染各种不可行驶区域(例如,将各个不可行驶区域的补片重叠在l1上),从而形成例如图3所示的可行驶区域aa。

在另外的实施例中,可以从初始的可行驶区域aa’中去除属于各种不可行驶区域的部分,从而获得例如图3所示的可行驶区域aa并直接进行渲染。

如前文所述,在预定范围l1内可以存在静态或动态障碍物。相应地,在根据本公开的实施例的方法,可以根据虚拟目标车辆在当前帧中的当前参数值来确定位于虚拟目标车辆上的观察点,并确定当前帧中的预定范围l1内的障碍物以及障碍物的当前参数值(例如,形状、尺寸、位置等)。然后,可以根据障碍物的当前参数值在感知地图l1上渲染障碍物对应的障碍物区域,并且可以根据观察点和障碍物的当前参数值来确定从观察点观察到的被障碍物遮挡的未知区域。然后,可以在感知地图l1上渲染被障碍物遮挡的未知区域。

在不同的实施例中,上述确定和渲染障碍物区域和未知区域的处理可以作为单独的步骤而包括在例如图1所示的示例方法100中,也可以包括在示例方法100的步骤s140和/或步骤s150中。

根据不同的实施例,虚拟目标车辆d的当前参数值可以包括但不限于虚拟目标车辆d的车型参数、车头朝向和后视镜参数中的一个或多个。在虚拟目标车辆d是模拟器根据配置文件生成的情况下,虚拟目标车辆d的当前参数值可以根据当前的自动驾驶方案(例如,可以确定当前所在的轨迹点和车头朝向等)以及配置文件中给出的配置参数来确定。在虚拟目标车辆d是根据实际车型数据库中的实际车型生成或者作为实际车辆的投影的情况下,虚拟目标车辆d的当前参数值可以根据实际车型数据库中的实际车型的参数或者实际车辆的参数来确定。

可以根据虚拟目标车辆d的当前参数值来确定虚拟目标车辆d上的观察点,例如图2的示例中的点p。在一个实施例中,该观察点可以对应于虚拟目标车辆d上的驾驶者位置。在该实施例中,始自该观察点的观察范围可以是模拟驾驶者通过车窗、后视镜、显示仪、扫描器、摄像头等能够观察到的车外场景的范围。在另外的实施例中,该观察点可以对应于虚拟目标车辆d的例如中心处或者与例如激光扫描器或摄像头的设置位置相对应的位置。

障碍物可以包括静态障碍物(例如,落石、围栏、花坛等)和动态障碍物(例如,行人、车辆、动物、空中悬浮物等)两种类型。

在一个实施例中,可以解析高精度地图并基于高精度地图中的地图元素来确定一个或多个静态障碍物。相应地,可以根据通过解析所述高精度地图而获得的每个静态障碍物的形状参数和位置参数来确定障碍物的当前参数值。

在一个实施例中,可以通过模拟器虚拟地生成一个或多个动态障碍物,或者通过将实际的对象(包括受控车辆、扫描或检测到的诸如行人、车辆、动物、空中悬浮物等动态障碍物)投影到感知地图上来生成一个或多个动态障碍物。相应地,障碍物的当前参数值可以包括每个动态虚拟障碍物在与当前帧相对应的时间点的当前形状和当前位置。

然后,可以从所确定的观察点发出一条或多条虚拟射线并对虚拟目标车辆d周围环境进行扫描或者对周围的障碍物进行投射,从而确定障碍物所在的障碍物区域以及被障碍物遮挡的未知区域,例如,直线未通过(透过)的区域可以对应于障碍物所在的障碍物区域以及被障碍物遮挡的未知区域。在另外的实施例中,也可以利用点云来确定障碍物所在的障碍物区域以及被障碍物遮挡的未知区域。

例如,在图2的示例中,可以基于对高精度地图的解析而确定在预定范围l1内存在静态障碍物b1和b2,并且可以基于来自模拟器(例如,在自动驾驶模拟器调试和验证自动驾驶算法的情况下)的数据或来自虚拟目标车辆上的扫描雷达或摄像头(例如,前置摄像头)的模拟扫描数据或模拟检测数据,而确定预定范围l1内存在动态障碍物(例如行人或车辆)v1、v2、v3和v4。然后,可以从观察点p发出多条虚拟射线(在图2中示为从点p发出的多条虚线)并投射向b1、b2、v1、v2、v3和v4。

如图2所示,静态障碍物b1和动态障碍物v3的全部以及动态障碍物v2的一部分处于被动态障碍物v4遮挡的区域中。

在当前帧中的预定范围l1内包括至少两个障碍物(例如,图2中的b1、v3、v2和v4)的情况下,如果被前述至少两个障碍物中的第一障碍物(例如,图2中的v4)遮挡的未知区域在当前帧中包括前述至少两个障碍物中的第二障碍物(例如,图2中的b1、v3或v2)对应的障碍物区域的至少一部分,则在当前帧中不在感知地图l1上渲染第二障碍物对应的障碍物区域的前述至少一部分和被第二障碍物的前述至少一部分遮挡的未知区域。

由此,针对图2的示例继续渲染,可以获得如图4所示的感知地图l1。图4中的感知地图l1可以包括:可行驶区域aa;位于可行驶区域aa上的虚拟目标车辆d;位于可行驶区域aa上且对于虚拟目标车辆d完全可见的动态障碍物v4;位于可行驶区域aa上且对于虚拟目标车辆d部分可见的动态障碍物v2;从虚拟目标车辆d上的观察点p观察到的被动态障碍物v1遮挡的未知区域unk2、被v2的一部分和v4的全部遮挡的未知区域unk3、被静态障碍物b2遮挡的未知区域unk1。

另外,还可以在感知地图l1上渲染除了可行驶区域aa、障碍物对应的障碍物区域(例如,图4中的v1、v4、v2的一部分和b2)和被障碍物遮挡的未知区域unk1至unk3之外的不可行驶区域ua1、ua2和ua3。

如图2和图4所示,根据本公开的实施例的方法还可以包括通过解析高精度地图来获得以当前位置(即,虚拟目标车辆d的当前位置)为基准点且在另一预定范围(图2或图4中由最外围的虚线矩形框包围的区域)内的车道线,其中,该另一预定范围可以大于预定范围l1。同时,可以相应地创建相应的另一感知地图l2,该另一感知地图l2的实际范围可以大于或等于该另一预定范围,例如可以与该另一预定范围相同。

类似于预定范围l1,该另一感知地图l2或者该另一预定范围也可以根据场景的最大显示范围(例如,图2或图3中的区域dis)来确定相应的实际显示/渲染范围。而且,类似于预定范围l1,为了描述上的方便,在本文中将区分该另一感知地图l2的实际范围和该另一预定范围,即,在本文中将以该另一感知地图l2的实际范围与该另一预定范围相同为例进行描述,并且将两者统称为“预定范围l2”或者“感知地图l2”或者“在预定范围l2上的感知地图”。然而,在提及“感知地图l2的某个范围”时,根据上下文,可能意味着感知地图l2的实际范围可以大于或等于(即包括)所提及的某个范围。

然后,如图2或图4所示,可以在感知地图l2的至少显示/渲染范围上渲染在感知地图l2的预定范围内但不在感知地图l1的预定范围内的车道线。在另外的实施例中,也可以先在感知地图l2上渲染车道线,然后将感知地图l1透明地或半透明地或不透明地重叠在感知地图l2之上。例如,可以根据虚拟目标车辆d使感知地图l1和l2中相同的部分完全重叠。

对于图2或图4中的示例,通过根据本公开的实施例的方法渲染并显示的感知地图例如可以如图5所示。

通过根据本公开的实施例的方法,能够在渲染例如车道及车道线等地图元素的同时高效且准确地渲染障碍物的遮挡情况。

在上面的示例中,结合车辆自动驾驶模拟器中的虚拟场景描述了根据本公开的实施例的用于渲染感知地图的方法。然而,应当意识到,根据本公开的实施例的方法也可以应用于实际的车辆自动驾驶控制装置和/或实际的车辆自动驾驶控制算法中,在这样的情况下,前文所述的虚拟目标车辆d可以是实际受控车辆在感知地图上的投影,预定范围l1(或者说感知地图l1的范围)可以是实际受控车辆上的扫描雷达(例如激光扫描雷达)的扫描范围或者摄像头(例如前置摄像头)的拍摄范围,并且图2或图3中的动态障碍物可以是通过实际受控车辆上的扫描雷达扫描到的或者通过分析由实际受控车辆上的摄像头拍摄的图像而检测到的实际的动态障碍物在感知地图上的投影,例如,行人、车辆、动物、空中悬浮物等。

在一个实施例中,可以在一个或多个计算机可读取的非临时性存储介质上存储或实施能够执行上述方法的各个步骤的程序指令,使得这样的非临时性存储介质能够在被计算机或其他计算装置(例如处理器)读取时提供相应的程序指令,并使得计算机或其他计算装置能够根据所读取的程序指令执行相应的操作。根据不同的实施例,程序指令能够以诸如源代码、二进制代码、中间代码等各种形式或各种形式的不同组合而实施或存储在非临时性存储介质上。

图6示出根据本公开的实施例的渲染感知地图的装置的示例。如图6所示,根据本公开的实施例的示例装置200可以包括模拟器sim、高精度地图解析器par、处理器pro和渲染器ren。

在一个实施例中,模拟器sim可以包括一个或多个处理器,包括但不限于诸如中央处理单元(cpu)、图形处理器(gpu)等通用的处理器或处理装置和/或专用的处理器或处理装置。模拟器sim可以被配置为生成虚拟目标车辆以及自动驾驶虚拟场景的每个帧。

在一个实施例中,高精度地图解析器par可以包括一个或多个处理器,包括但不限于诸如cpu、gpu等通用的处理器或处理装置和/或专用的处理器或处理装置。高精度地图解析器par可以被配置为解析高精度地图以至少获得以虚拟目标车辆在自动驾驶虚拟场景的当前帧中的当前位置为基准点且在预定范围内的车道线。

在一个实施例中,处理器pro可以包括一个或多个处理器,包括但不限于诸如cpu、gpu等通用的处理器或处理装置和/或专用的处理器或处理装置。处理器pro可以被配置为根据相邻的车道线来确定车道的结构并根据所确定的车道的结构来确定车道是否是可行驶的。在另外的实施例中,处理器pro可以被配置为确定未知区域、障碍物区域和不可行驶区域中的一个或多个

在一个实施例中,渲染器ren可以包括一个或多个处理器,包括但不限于诸如cpu、gpu等通用的处理器或处理装置和/或专用的处理器或处理装置。渲染器ren可以被配置为至少将可行驶的车道渲染为可行驶区域。另外,渲染器ren还可以被配置为渲染未知区域、障碍物区域和不可行驶区域中的一个或多个。在另外的实施例中,渲染器ren还可以被配置为分别渲染不同层的感知地图(例如,图2、图4或图5中的l1和l2)并将不同层的感知地图重叠在一起。

应当理解,图6所示的结构仅是示例性的,而非限制性的。根据本公开的实施例的装置还可以具有其他部件和/或结构。

例如,示例装置200还可以包括动态障碍物模拟器,其可以包括一个或多个处理器,并且可以被配置为在当前帧中的预定范围内生成一个或多个动态障碍物并提供动态障碍物的当前参数值。

例如,根据本公开的实施例的装置可以包括一个或多个处理器(例如cpu和gpu等通用的处理器或处理装置和/或专用的处理器或处理装置),并且这样的一个或多个处理器可以被配置为在启动时至少执行根据本公开的实施例的渲染感知地图的方法,例如示例方法100。

例如,根据本公开的实施例的装置还可以包括i/o接口、网络接口和/或存储器,从而通过有线或无线地方式与其他部件或装置进行信息/数据交互。

例如,根据不同的实施例,装置中的存储器可以包括各种形式的计算机可读写存储介质,例如易失性存储器和/或非易失性存储器。易失性存储器例如可以包括随机存取存储器(ram)、高速缓冲存储器(cache)、片上存储器等。非易失性存储器例如可以包括只读存储器(rom)、硬盘、闪速存储器等。可读写存储介质例如可以包括但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件、或者任意以上的组合。在一个实施例中,存储器可以存储用于指示装置中的一个或多个处理器执行根据本公开的实施例的方法的步骤的程序指令。

另外,如前文所述,根据本公开的实施例的方法和装置也可以应用于实际的车辆自动驾驶控制装置和/或实际的车辆自动驾驶控制算法中,在这样的情况下,根据本公开的实施例的装置中的模拟器或者用于实现相应功能的一个或多个处理器可以被配置为将实际的对象(包括受控车辆、扫描或检测到的诸如行人、车辆、动物、空中悬浮物等动态障碍物)投影到感知地图上,从而形成相应的虚拟对象。

通过根据本公开的实施例的装置,能够在渲染例如车道及车道线等地图元素的同时高效且准确地渲染障碍物的遮挡情况。

贯穿说明书和权利要求书,除非上下文清楚地另有要求,否则措词“包括”、“包含”等应当以与排他性或穷尽性的意义相反的包括性的意义来解释,也就是说,应当以“包括但不限于”的意义来解释。另外,措词“在本文中”、“上文”、“下文”以及相似含义的措词在本申请中使用时应当指作为整体的本申请,而不是本申请的任何具体部分。在上下文允许时,在使用单数或复数的以上描述中的措词也可以分别包括复数或单数。例如,前文所提到的“第一障碍物”或“第二障碍物”可以指一个或多个的“第一障碍物”或“第二障碍物”,并且“另一”也可以表示另外的一个或多个。关于在提及两个或多个项目的列表时的措词“或”,该措词涵盖该措词的以下解释中的全部:列表中的任何项目,列表中的所有项目,以及列表中的项目的任何组合。另外,措词“第一”、“第二”等旨在用于区分,而不是用于强调次序或重要程度。

虽然已经描述了本公开的一些实施例,但是这些实施例仅作为示例而呈现,而不打算限制本公开的范围。实际上,在本文中所描述的方法和系统可以采用多种其他形式来实施。另外,可以在不脱离本公开的范围的情况下,在本文中所描述的方法和装置的形式上做出各种省略、替换和改变。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1