一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于行为树的车道检测方法、装置和服务器与流程

2021-08-31 17:44:00 来源:中国专利 TAG:车道 说明书 检测方法 装置 驾驶
基于行为树的车道检测方法、装置和服务器与流程

本说明书属于自动驾驶技术领域,尤其涉及基于行为树的车道检测方法、装置和服务器。



背景技术:

在许多自动驾驶场景中,常常需要对车辆当前的车道、车道线等进行识别。

但是,基于现有的车道检测方法往往无法高效、精准地识别出上述车道信息。并且,现有方法大多也不支持并行算法,使得车道信息的识别过程通常会较为繁琐、耗时较长。进而导致无法有效地配合车辆行驶的实时规划,也不适用于对时效性要求较高的自动驾驶场景。

针对上述问题,目前尚未提出有效的解决方案。



技术实现要素:

本说明书提供了一种基于行为树的车道检测方法、装置和服务器,以能够较为精准、高效地识别并确定出目标车辆当前时间点的车道、车道线等车道信息,并基于该车道信息及时地对该目标车辆进行针对性的控制,以保证目标车辆的行驶安全。

本说明书实施例提供了一种基于行为树的车道检测方法,包括:

获取目标车辆当前时间点的行驶环境数据;

根据所述行驶环境数据,获取当前时间点的车道的环境特征;

调用预设的车道检测模型处理所述当前时间点的车道的环境特征,以得到目标车辆当前时间点的车道信息;其中,所述预设的车道检测模型为预先构建好的基于行为树的算法模型;

根据当前时间点的车道信息,控制目标车辆行驶。

在一些实施例中,所述预设的车道检测模型包括多个子树;其中,所述多个子树中的各个子树分别用于识别车道的一种维度属性;所述子树至少包含有一个第一级顺序节点,以及与第一级顺序节点相连的至少一个判断支路;所述判断支路用于对一种维度属性中的一个属性类别进行判断处理得到对应的属性类别判断结果;所述第一级顺序节点用于基于判断支路输出的属性类别判断结果确定并输出对应维度属性的属性识别结果;所述预设的车道检测模型用于根据第一级顺序节点输出的属性识别结果确定并输出相应的车道信息。

在一些实施例中,所述判断支路至少包含有控制节点和第二级顺序节点;其中,所述控制节点保存有与该判断支路对应的转换条件;

相应的,所述判断支路通过所述控制节点根据当前时间点的车道的环境特征和转换条件进行判断处理,并通过第二级顺序节点输出当前时间点的属性类别判断结果。

在一些实施例中,所述控制节点还保存有历史属性识别结果;

相应的,所述控制节点用于根据当前时间点的车道的环境特征、转换条件,以及历史属性识别结果,进行当前时间点的判断处理。

在一些实施例中,所述判断支路还包含有修饰器节点;其中,所述修饰器节点保存有控制参数;所述控制参数用于对判断支路的判断处理规则进行控制。

在一些实施例中,所述控制参数包括以下至少之一:开关启动标记、开关关闭标记、判断处理次数、权重系数。

在一些实施例中,所述维度属性包括:功能属性和/或位置属性。

在一些实施例中,在所述维度属性为功能属性的情况下,所述属性识别结果包括以下至少之一:汇入车道、汇出车道、应急车道、匝道、正常行驶道。

在一些实施例中,在所述维度属性为位置属性的情况下,所述属性识别结果包括以下至少之一:靠右位置、中间位置、靠左位置。

在一些实施例中,在获取目标车辆当前时间点的行驶环境数据之前,所述方法还包括:

获取目标路段的信息数据,并确定目标驾驶场景;

根据所述目标路段的信息数据和目标驾驶场景,构建多个第一级顺序节点、多个控制节点,并组合连接所述多个第一级顺序节点、多个控制节点,得到行为树;

根据所述目标路段的信息数据和目标驾驶场景,为所述行为树中的控制节点配置相应的转换条件,以得到所述预设的车道检测模型。

本说明书实施例还提供了一种基于行为树的车道检测装置,包括:

第一获取模块,用于获取目标车辆当前时间点的行驶环境数据;

第二获取模块,用于根据所述行驶环境数据,获取当前时间点的车道的环境特征;

调用模块,用于调用预设的车道检测模型处理所述当前时间点的车道的环境特征,以得到目标车辆当前时间点的车道信息;其中,所述预设的车道检测模型为预先构建好的基于行为树的算法模型;

控制模块,用于根据当前时间点的车道信息,控制目标车辆行驶。

本说明书实施例还提供了一种服务器,包括处理器以及用于存储处理器可执行指令的存储器,所述处理器执行所述指令时实现:获取目标车辆当前时间点的行驶环境数据;根据所述行驶环境数据,获取当前时间点的车道的环境特征;调用预设的车道检测模型处理所述当前时间点的车道的环境特征,以得到目标车辆当前时间点的车道信息;其中,所述预设的车道检测模型为预先构建好的基于行为树的算法模型;根据当前时间点的车道信息,控制目标车辆行驶。

本说明书实施例还提供了一种计算机存储介质,其上存储有计算机指令,所述指令被执行时实现以下内容:获取目标车辆当前时间点的行驶环境数据;根据所述行驶环境数据,获取当前时间点的车道的环境特征;调用预设的车道检测模型处理所述当前时间点的车道的环境特征,以得到目标车辆当前时间点的车道信息;其中,所述预设的车道检测模型为预先构建好的基于行为树的算法模型;根据当前时间点的车道信息,控制目标车辆行驶。

本说明书实施例提供了一种基于行为树的车道检测方法、装置和服务器,基于该方法,具体实施前,可以预先根据目标路段的信息数据以及目标驾驶场景,构建好对应的基于行为树的预设的车道检测模型;具体实施时,可以先根据目标车辆当前时间点的行驶环境数据获取得到当前时间点的车道环境特征;再调用预设的车道检测模型处理上述车道的环境特征,以得到目标车辆当前时间点的车道、车道线等车道信息;并根据车道信息所反映出目标车辆真实的车道状况,控制目标车辆的行驶。从而可以通过引入并利用行为树的优点特性,较为精准、高效地识别确定出目标车辆当前时间点的车道信息,并基于该车道信息及时地对该目标车辆进行针对性控制,以保证目标车辆的行驶安全,同时也能够较好地适用于时效性要求较高的自动驾驶场景。

附图说明

为了更清楚地说明本说明书实施例,下面将对实施例中所需要使用的附图作简单地介绍,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是应用本说明书实施例提供的基于行为树的车道检测方法的系统的结构组成的一个实施例的示意图;

图2是在一个场景示例中,应用本说明书实施例提供的基于行为树的车道检测方法的一种实施例的示意图;

图3是本说明书的一个实施例提供的基于行为树的车道检测方法的流程示意图;

图4是在一个场景示例中,应用本说明书实施例提供的基于行为树的车道检测方法的一种实施例的示意图;

图5是本说明书的一个实施例提供的服务器的结构组成示意图;

图6是本说明书的一个实施例提供的基于行为树的车道检测装置的结构组成示意图;

图7是在一个场景示例中,应用本说明书实施例提供的基于行为树的车道检测方法的一种实施例的示意图;

图8是在一个场景示例中,应用本说明书实施例提供的基于行为树的车道检测方法的一种实施例的示意图。

具体实施方式

为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。

本说明书实施例提供一种基于行为树的车道检测方法,所述基于行为树的车道检测方法具体可以应用于包含有云端服务器和目标车辆的系统中。具体可以参阅图1所示。

在本实施例中,所述云端服务器具体可以包括一种应用于网络平台一侧,能够实现数据传输、数据处理等功能的后台服务器。具体的,所述云端服务器例如可以为一个具有数据运算、存储功能以及网络交互功能的电子设备。或者,所述云端服务器也可以为运行于该电子设备中,为数据处理、存储和网络交互提供支持的软件程序。在本实施例中,并不具体限定所述云端服务器所包含的服务器的数量。所述云端服务器具体可以为一个服务器,也可以为几个服务器,或者,由若干服务器形成的服务器集群。

在本实施例中,所述目标车辆具体可以包括一种应用于用户一侧,设置有诸如摄像头、传感器等环境感知设备,以及处理器等数据处理设备,能够实现数据采集、数据传输等功能的智能车辆。

在本实施例中,目标车辆的司机(可以记为用户)在驾驶目标车辆前往目的地之前,可以在目标车辆内置的通信交互设备中设置好目的地位置。相应的,目标车辆可以生成并向云端服务器发送初始化请求。其中,该初始化请求具体可以携带有用户设置的目的地位置,以及目标车辆自动采集的当前位置(记为起始地位置)。

云端服务器可以从初始化请求中提取出目的地位置和起始地位置,并通过查询地图数据库,获取由起始地位置指向目的地位置的目标路段的信息数据。同时,上述初始化请求中还可以进一步携带有目标车辆的车辆标识(例如,目标车辆的车牌号等)、用户的用户标识(例如,用户的驾驶证号等)。相应的,云端服务器可以根据目标车辆的车辆标识、用户的用户标识查询平台的信息数据库,以获取目标车辆的车辆信息,以及用户的用户信息;进而可以根据目标车辆的车辆信息和用户的用户信息,确定出对应的目标驾驶场景。

接着,云端服务器可以根据目标路段的信息数据,和目标驾驶场景,构建得到相应的基于行为树的预设的车道检测模型。

具体的,首先,云端服务器可以根据目标路段的信息数据和目标驾驶场景,生成多个第一级顺序节点、多个控制节点。并根据预设的组合规则组合多个第一级顺序节点、多个控制节点,得到多个子树。其中,每一个子树用于识别确定车道的一种维度属性。再组合多个子树,得到行为树。

然后,云端服务器可以根据目标路段的信息数据和目标驾驶场景,为行为树中的各个控制节点分别配置相应的转换条件(或者称判断条件),从而可以得到预设的车道检测模型。

参阅图2所示,在上述预设的车道检测模型中,每一个子树至少包含有一个第一级顺序节点,以及与该第一级顺序节点连接的一个或多个判断支路。其中,每一个判断支路至少包含有一个控制节点,每一个控制节点具体可以保存有用作判断依据的转换条件。每一个判断支路还可以包含有一个第二级顺序节点。

相应的,具体运行时,判断支路可以通过该支路上的控制节点根据转换条件进行判断处理,并通过该支路上的第二级顺序节点输出对应维度属性下的一个属性类别判断结果(例如,是或否)。

此外,上述控制节点进一步还可以保存有历史属性识别结果,例如,在最近的几个历史时间点所确定的属性识别结果。上述控制节点还可以保存有其他内容的历史车道消息。

其中,同一个子树中的第一级顺序节点的层级高于第二级顺序节点。且第二级顺序节点输出的属性类别判断结果会汇总到所在子树中的第一级顺序节点。

具体运行时,每一个子树中的第一级顺序节点可以根据该子树的一个或多个判断支路通过各自的第二级顺序节点输出的属性类别判断结果,确定并输出其中的一个属性类别作为所对应的维度属性下的属性识别结果。

在本场景示例中,所构建的预设的车道检测模型具体可以包含有两个子树:子树1和子树2。其中,子树1用于识别确定车道的功能属性,子树2用于识别确定车道的位置属性。

进一步,子树1具体可以包含有5个不同的判断子路,分别记为:判断支路1-1(独立负责汇入车道这种属性类别的判断处理)、判断支路1-2(独立负责汇出车道这种属性类别的判断处理)、判断支路1-3(独立负责应急车道这种属性类别的判断处理)、判断支路1-4(独立负责匝道这种属性类别的判断处理)、判断支路1-5(独立负责正常行驶道这种属性类别的判断处理)。上述5个判断支路并列与第一级顺序节点1相连。第一级顺序节点1用于确定并输出基于功能属性的属性识别结果,可以记为第一属性识别结果。

类似的,子树2具体可以包含有3个不同的判断支路,分别记为:判断支路2-1(独立负责靠右位置这种属性类别的判断处理)、判断支路2-2(独立负责中间位置这种属性类别的判断处理)、判断支路2-3(独立负责靠左位置这种属性类别的判断处理)。上述3个判断支路并列与第一级顺序节点2相连。第一级顺序节点2用于确定并输出基于位置属性的属性识别结果,可以记为第二属性识别结果。

预设的车道检测模型可以综合上述第一属性识别结果、第二属性识别结果两种不同维度属性下的属性识别结果,确定并输出最终的车道信息。

具体实施时,云端服务器在按照上述方式构建出预设的车道检测模型之后,可以将该预设的车道检测模型发送给目标车辆。目标车辆可以将所接收到的预设的车道检测模型存储于目标车辆本地,完成初始化处理。

这样后续目标车辆在行驶过程中,即使在无网的环境下,也可以利用本地存储的预设的车道检测模型采用离线的方式实时或定时地进行车道检测。

在用户通过人工驾驶或者自动驾驶等方式驾驶目标车辆从起始点出发前往目的地的过程中。目标车辆可以实时或定时地调用预设的车道检测模型来对目标车辆当前的车道情况进行检测,以便对目标车辆的行驶及时地进行针对性的控制和调整。

以对当前时间点的车道信息的检测确定为例。首先,目标车辆可以采集当前时间点的行驶环境数据。

具体的,例如,目标车辆可以通过摄像头拍摄当前时间点所在位置周围道路的照片,作为当前时间点的行驶环境数据。

接着,目标车辆可以先利用根据当前时间点的行驶环境数据,提取出当前时间点的车道的环境特征。其中,上述车道的环境特征具体可以包括以下至少之一:车道线的位置(例如,车道线在道路照片中的位置坐标等)、车道线的形状(例如,是鱼骨线、路沿、锥形桶封锁线、虚线,或者实线等)、车道线的颜色(例如,白色,或者黄色等)。

具体的,例如,目标车辆可以利用预先训练好的图像识别模型处理当前时间点的行驶环境数据,以提取出当前时间点的车道环境特征。

然后,目标车辆可以调用存储于本地的预设的车道检测模型处理上述当前时间点的车道的环境特征,以得到目标车辆当前时间点的车道信息。

具体实施时,目标车辆可以将当前时间点的车道的环境特征作为模型输入,输入至预设的车道检测模型中。运行该预设的车道检测模型,得到对应的模型输出,作为当前时间点的车道信息。

具体的,例如,预设的车道检测模型具体运行时,输入至预设的车道检测模型的当前时间点的车道的环境特征可以以并行的方式分别流入子树1和子树2中进行处理。以流入子树1的情况为例。当前时间点的环境特征又可以以并行的方式分别流入判断支路1-1、判断支路1-2、判断支路1-3、判断支路1-4、判断支路1-5这5个不同的判断支路中。

相应的,5个判断支路可以基于并行算法,分别利用各自支路上的控制节点,根据输入支路的当前时间点的车道的环境特征,以及保存于该控制节点的对应该支路的转换条件,独立进行判断处理,以高效地确定并输出所负责处理的属性类别判断结果。例如,判断支路1-2可以确定并输出当前时间点的车道是否属于汇出车道,作为对应的当前时间点的属性类别判断结果。

其中,上述子树1中的每一个控制节点具体可以保存有在当前时间点之前的连续的多个历史时间点(例如,当前时间点之前的第一个时间点、当前时间点之前的第二个时间点等)的属性识别结果(即,历史属性识别结果)。

具体的,例如,判断支路1-4上的控制节点还保存有当前时间点之前的第一个时间点的属性识别结果为:汇出车道。相应的,具体运行时,该控制节点会同时根据转换条件,当前时间点的车道的环境特征,以及当前时间点之前的第一个时间点的属性识别结果(汇出车道),来进行判断处理,以确定出对应匝道这种属性类别的属性类别判断结果为“是”(或者记为1)还是“否”(或者记为0)。

具体的,在当前时间点,判断支路1-4可以通过该支路上的第二级顺序节点输出对应的属性类别判断结果为“是”。同时,其他4个判断支路则分别通过各自支路上的第二级顺序节点输出所对应的属性类别判断结果为“否”。进一步,子树1上的第一级顺序节点可以汇总并根据该子树中的5个判断支路分别通过各自的第二级顺序节点输出的属性类别判断结果,最终确定并输出为唯一的一个属性类别“匝道”作为当前时间点的功能属性下的属性识别结果,可以记为当前时间点的第一属性识别结果。

类似的,预设的车道检测模型可以通过子树2基于当前时间点之前的第一个时间点的属性识别结果(中间位置)的前提下,根据当前时间点的车道的环境特征基于相应的转换条件所得到的位置属性下的3个属性类别判断结果,再由子树2中的第一级顺序节点基于上述3个属性类别判断结果,确定出当前时间点目标车辆的车道已经由中间位置转换为了靠左位置,得到当前时间点的位置属性下的属性识别结果,可以记为当前时间点的第二属性识别结果。

进而,预设的车道检测模型可以综合上述两种属性识别结果,得到并确定出当前时间点的车道信息。

目标车辆可以根据当前时间点的车道信息及时地确定出当前时间点的车道状况:在功能属性上,车道由汇出车道转换为了匝道;在位置属性上,车道由中间位置转换为了靠左位置。

进一步,目标车辆可以根据当前时间点的车道信息,生成与该车道信息相匹配的目标控制策略。进而可以根据目标控制策略,及时地对当前目标车辆的行驶进行针对性的控制。

从而可以有效地确定并根据具体的车道状况,实时或定时地对目标车辆的行驶规划进行针对性的控制和调整,以保证目标车辆可以安全、可靠地从初始点行驶至目的地。

参阅图3所示,本说明书实施例提供了一种基于行为树的车道检测方法,其中,该方法具体可以应用于服务器一侧。具体实施时,该方法可以包括以下内容:

s301:获取目标车辆当前时间点的行驶环境数据;

s302:根据所述行驶环境数据,获取当前时间点的车道的环境特征;

s303:调用预设的车道检测模型处理所述当前时间点的车道的环境特征,以得到目标车辆当前时间点的车道信息;其中,所述预设的车道检测模型为预先构建好的基于行为树的算法模型;

s304:根据当前时间点的车道信息,控制目标车辆行驶。

通过上述实施例,可以利用基于行为树的预设的车道检测模型,采用并行算法处理当前时间点的环境特征,从而可以较为高效地确定出目标车辆当前时间点的车道信息;进而可以基于目标车辆当前时间点的车道信息,及时、有效对目标车辆的行驶进行针对性的控制,能够较好地适用于时效性要求较高的自动驾驶场景,保证车辆的行驶安全。

在一些实施例中,上述行驶环境数据具体可以是包含有目标车辆所在位置周围道路的图片。具体的,可以是通过摄像头所拍摄到的包含有周围道路的照片,也可以是从摄像头所采集的监控视频中所截取出的包含有周围道路的截图。

在一些实施例中,上述车道的环境特征,具体可以理解为一种基于行驶环境数据提取得到的较为表层的,与车道相关的图像特征。

在一些实施例中,车道的环境特征具体可以包括以下至少之一:车道线的位置、车道线的形状、车道线的颜色等等。

在一些实施例中,具体的,上述车道线的形状可以包括以下至少之一:鱼骨线,路沿,锥形桶封锁线,虚线,实线等等。上述车道线的颜色可以包括以下至少之一:白色、黄色、蓝色等等。上述车道线的位置具体可以包括基于行驶环境数据所确定出的车道线或者车道线上的关键点的位置坐标等。

当然,需要说明的是,上述所列举的车道的环境特征只是一种示意性说明。具体实施时,根据具体的环境状况和处理需求,上述车道的环境特征还可以包括其他类型的特征数据。对此,本说明书不作限定。

在一些实施例中,具体实施时,可以调用常规的图像识别模型处理上述行驶环境数据,以提取得到相应的车道的环境特征。

在一些实施例中,上述车道信息具体可以包括以下至少之一:能够反映道路上的车道线的信息、能够反映车辆所在车道的信息,以及能够反映车道与车道线的位置偏离情况的信息等等。

在一些实施例中,上述预设的车道检测模型具体可以理解为一种基于行为树结构的,支持并行算法,能够基于相应的决策逻辑,快速、准确地确定出车辆的车道信息的算法模型。

其中,上述行为树(behaviortree,简称bt)具体可以理解为一种由多个节点,能够较好地描述出整个ai的决策逻辑的树状结构。

区别于常规的有限状态机(fsm,finitestatemachine),基于行为树可以在逻辑体量相同的情况下,有效地减少程序运行时间,并且增加后期优化调整的灵活性。

具体的,一方面,行为树相对于有限状态机而言,有限状态机中的不同状态之间往往是存在较为闭合、紧密的耦合连接的。例如,在修改有限状态机中的某一个状态到另一个状态的判断处理所基于的一种转换条件时,往往会同时对该状态到另一个状态的所涉及到的所有判断处理所基于的所有的转换条件都产生影响。导致后续对有限状态机的调整和优化变得较为繁琐,不够灵活。相反,对于行为树,在进行上述修改时,由于某一个状态到另一个状态的判断处理是通过多个相互独立的判断支路以并联的方式构成的。因此,在修改一个状态到另一个状态的判断处理所基于的一种转换条件时,只对该转换条件所对应的一个判断支路产生影响,而不会对其他判断支路,以及其他判断支路所基于的转换条件产生影响,从而可以使得对行为树的调整和优化变得更加的灵活、便捷。

另一方面,由于在行为树中某一个状态到另一个状态的判断处理是通过多个相互独立的判断支路以并联的方式构成的。因此,行为树结构相对于有限状态机更适合于引入并利用并行算法通过并行计算的方式同时对多个维度属性的状态并行进行判断处理。从而能够更加高效、快速地确定出车辆的车道信息,具有更好的时效性,可以应对数据处理量相对较大、地图路况相对较复杂的情景,也更适合对时效性要求较高的自动驾驶场景。

此外,行为树还可以通过相对较简单的改写适应自动驾驶对算法的实时规划(real-timeplanning),并行算法(parallelalgorithm)等需求。基于行为树,还可以通过调整各个判断支路上的修饰器节点进行相对更加灵活、多样的调整和优化。

在一些实施例中,具体的,所述预设的车道检测模型具体可以包括多个子树;其中,所述多个子树中的各个子树分别用于识别车道的一种维度属性;所述子树至少包含有一个第一级顺序节点,以及与第一级顺序节点相连的至少一个判断支路;所述判断支路用于对一种维度属性中的一个属性类别进行判断处理得到对应的属性类别判断结果;所述第一级顺序节点用于基于判断支路输出的属性类别判断结果确定并输出对应维度属性的属性识别结果;所述预设的车道检测模型用于根据第一级顺序节点输出的属性识别结果确定并输出相应的车道信息。

在一些实施例中,在基于行为树的预设的车道检测模型中,参阅图4所示,所述判断支路至少可以包含有控制节点和第二级顺序节点;其中,所述控制节点具体可以保存有与该判断支路对应的转换条件;相应的,所述判断支路具体可以通过所述控制节点根据当前时间点的车道的环境特征和转换条件进行判断处理,以输出当前时间点的属性类别判断结果。在同一个子树中,第一级顺序节点的层级高于第二级顺序节点。

在一些实施例中,具体运行预设的车道检测模型时,在通过第一级顺序节点确定并输出当前时间点的属性识别结果的同时,还可以在每一个判断支路上的控制节点中保存下当前时间点的属性识别结果。

在一些实施例中,在基于行为树的预设的车道检测模型中,所述控制节点具体还可以保存有历史属性识别结果;相应的,所述控制节点具体可以用于当前时间点的车道的环境特征、转换条件,以及历史属性识别结果,进行当前时间点的判断处理。

其中,上述历史属性识别结果具体可以理解为在当前时间点之前的最近一个或多个历史时间点的属性识别结果。

通过上述实施例,控制节点可以根据子树中的判断支路基于当前时间点的车道的环境特征以及该支路相应的转换条件,同时还结合了历史属性识别结果,即根据一段时间的车道变换情况,而不是单纯地只依靠一个时间点的数据,通过进行判断处理,精准地确定出当前时间点的属性类别判断结果。进一步,第一级顺序节点也可以基于上述属性类别判断结果,确定并输出准确度更高的属性识别结果。

此外,通过利用上述保存于控制节点中的历史属性识别结果来进行当前时间点的判断处理,还可以有效地减少目标车辆在行驶过程中由于发生诸如颠簸等情况时,基于平面假设对图像上点进行imu坐标系转换时所产生的误差,从而可以有效地避免像现有方法那样由于是基于有误差的结果所生成的车道信息,导致自动驾驶的车辆偏离道路的中间位置,进而产生压线等安全隐患。

在一些实施例中,上述控制节点除了可以保存有历史属性识别结果之外,还可以同时保存有其他的历史关联数据。例如,历史属性类别判断结果、历史车道的环境特征,以及不同历史属性识别结果之间的间隔时长等等。相应的,在预设的车道检测模型具体运行的过程中,控制节点可以根据当前时间点的属性类别判断结果,同时结合历史属性识别结果,以及上述历史关联数据,能够更加精准地进行相应的判断处理,以得到准确度更高的属性类别判断结果。

在一些实施例中,所述维度属性具体可以包括:功能属性和/或位置属性等。

在一些实施例中,上述功能属性具体可以理解为一种能够反映行驶道路上车道线的功能类型的属性。上述位置属性具体可以理解为一种能够反映车辆行驶车道与行驶道路上车道线之间的相对位置关系的属性。

在一些实施例中,在所述维度属性为功能属性的情况下,所述属性识别结果具体可以包括以下至少之一:汇入车道、汇出车道、应急车道、匝道、正常行驶道等。

在一些实施例中,在所述维度属性为位置属性的情况下,所述属性识别结果具体可以包括以下至少之一:靠右位置、中间位置、靠左位置等。

当然,需要说明的是,上述所列举的维度属性只是一种示意性说明。具体实施时,根据具体情况和处理需求,还可以包含有其他类型的维度属性。例如,维度属性还可以包括:道路场景属性。具体的,在所述维度属性为道路类型属性的情况下,所述属性识别结果具体可以包括以下至少之一:高速场景、城区场景、村镇场景、园区场景、码头场景等。

需要说明的是,在基于行为树的预设的车道检测模型中,一个子树对应上述一种维度属性的判断处理;一个子树中的一个判断支路对应该维度属性下的一种属性类别(对应该维度属性下的一种具体类型的属性识别结果)的判断处理;每一个子树可以通过该子树的第一级顺序节点基于该子树中的判断支路输出的属性类别判断结果,最终输出唯一的一个属性类别作为属性识别结果。

在一些实施例中,在基于行为树的预设的车道检测模型中,参阅图4所示,所述判断支路进一步还可以包含有修饰器节点;其中,所述修饰器节点具体可以保存有控制参数;所述控制参数具体可以用于对判断支路的判断处理规则进行相应控制。

在一些实施例中,所述控制参数具体可以包括以下至少之一:开关启动标记、开关关闭标记、判断处理次数、权重系数等。

具体的,例如,一个子树原本包含有3个并联的判断支路,分别记为:判断支路a、判断支路b和判断支路c。但是,根据目标路段的信息数据、用户的具体要求,以及具体的目标驾驶场景,为了更好地保证目标车辆的驾驶安全,可以有针对性地将与驾驶安全关联更紧密的判断支路a中的修饰器节点所保存的判断处理次数由原来的1次调整为3次。从而可以使得在具体运行预设的车道检测模型时,可以有选择性地使用更多的计算资源对判断支路a进行更多次的处理判断,以便可以使得判断支路a最终输出的属性类别判断结果具有更高的精度和可靠性。

相反,考虑到判断支路b所负责处理判断的属性类别判断结果对驾驶安全的影响相对较小,且本身也不会对目标车辆的行驶产生较大影响,为了保证整体的处理效率,可以有针对性地将判断支路b中的修饰器节点所保存的开关指示参数由原来的开关启动标记,修改为开关关闭标记。从而可以使得在具体运行预设的车道检测模型时,不会浪费计算资源对判断支路b进行处理判断。

又例如,预设的车道检测模型在运行时,还可以先根据控制节点所保存的上一个时间点的历史属性识别结果,结合判断处理经验,预测经过一个时间点后,基于上一个时间点的历史属性识别结果,分别转换到子树中的判断支路a、判断支路b和判断支路c所对应的属性类别的概率值。如果根据上述概率值,可以确定出在一个时间点后,是无法从上一个时间点的历史属性识别结果转换为判断支路c所对应的属性类别时,可以有针对性地将判断支路c上修饰器节点所保存的开关指示参数由原来的开关启动标记,修改为开关关闭标记。

通过上述实施例,可以利用判断支路中修饰器节点,通过修改修饰器节点所保存的控制参数,更加灵活、便捷地对预设的车道检测模型所涉及到的数据处理进行针对性调整,以满足用户多样化的车道检测需求。

此外,利用上述修饰器节点,可以通过设置和修改所保存的控制参数,起到辅助判断的作用。在一些情况下,针对数据处理过程中信息传递可能存在延迟、丢失,甚至重复等问题,还可以利用修饰器节点起到对信息传递的过滤平滑作用,以保证输入信息的稳定、安全。

在一些实施例中,在基于行为树的预设的车道检测模型中,不同的子树之间可以是并联的,也可以是串联的,还可以是混联的。

具体的,例如,预设的车道检测模型中的子树1和子树2是并联的,预设的车道检测模型最终输出的车道信息实际上是子树1和子树2各自输出的第一属性识别结果和第二属性识别结果的组合。

又例如,在一些情况下,预设的车道检测模型中的子树1和子树2还可以是串联的,其中,子树1输出的第一属性识别结果可以作为子树2的输入,预设的车道检测模型最终输出的车道信息实际上是子树2基于子树1输出的第一属性识别结果所输出的第二属性识别结果。

再例如,在另一些情况下,预设的车道检测模型可以包含有子树1、子树2和子树3。其中,子树1和子树2串联,子树1和子树2串联后的整体与子树3并联,可以理解为该预设的车道检测模型中子树1、子树2和子树3是混联的。预设的车道检测模型最终输出的车道信息实际上是子树2基于子树1输出的第一属性识别结果所输出的第二属性识别结果,与子树3单独输出的第三属性识别结果的组合。

在一些实施例中,在基于行为树的预设的车道检测模型中,参阅图4所示,在控制节点之后还可以连接有状态节点。其中,上述状态节点保存有状态指示参数。上述状态指示参数用于表征所在的判断支路的当前时间点的判断处理状态。

具体的,在判断支路还没有确定并输出当前时间点的属性识别结果的情况下,上述状态参数可以保持为处理中。

在判断支路正常确定并输出当前时间点的属性识别结果的情况下,上述状态参数可以更新为处理完成。相应的,预设的车道检测模型可以根据处理成功的状态参数,触发进行后续进一步的数据处理,例如,确定并输出最终的车道信息。

在判断支路超过预设时长无法正常确定并输出当前时间点的属性识别结果的情况下,上述状态参数可以更新为处理错误。相应的,预设的车道检测模型在检测到状态节点中处理错误的状态参数时,可以触发进行回调检查,以找出导致处理错误的原因,并对相关数据和/或模型进行修正,以便后续该判断支路能够正常地确定并输出属性识别结果。

在一些实施例中,在获取目标车辆当前时间点的行驶环境数据之前,所述方法具体实施时,还可以包括以下内容:

s1:获取目标路段的信息数据,并确定目标驾驶场景;

s2:根据所述目标路段的信息数据和目标驾驶场景,构建多个第一级顺序节点、多个控制节点,并组合连接所述多个第一级顺序节点、多个控制节点,得到行为树;

s3:根据所述目标路段的信息数据和目标驾驶场景,为所述行为树中的控制节点配置相应的转换条件,以得到所述预设的车道检测模型。

通过上述实施例,可以预先构建得到与目标路段的信息数据,以及目标驾驶场景相匹配的基于行为树的预设的车道检测模型,进而可以将该预设的车道检测模型存储于本地,这样后续可以在本地调用该预设的车道检测模型以离线的方式实时或定时地检测并获取相应的车道信息。

在一些实施例中,在具体配置行为树时,还可以根据目标驾驶场景,以及用户的具体需求,在上述判断支路中增加相应的修饰器节点,和/或,在控制节点之后增加相应的状态节点,以得到能够满足用户多样化需求的预设的车道检测模型。

在一些实施例中,上述根据当前时间点的车道信息,控制目标车辆行驶,具体实施时,可以包括以下内容:根据当前时间点的车道信息,生成相匹配的目标控制策略;根据所述目标控制策略,控制目标车辆的行驶。

具体的,例如,可以根据车道信息,控制目标车辆在当前时间点所识别出的车道线的合适位置处行驶,避免目标车辆偏离车道,从而可以达到对目标车辆所行驶的车道的维度,保证目标车辆的行驶安全。

通过上述实施例,可以根据所确定出的车道信息,及时地调整并控制目标车辆的行驶,保证目标车辆的行驶安全。

由上可见,基于本说明书实施例提供的基于行为树的车道检测方法,具体实施前,可以预先根据目标路段的信息数据以及目标驾驶场景,构建好对应的基于行为树的预设的车道检测模型;具体实施时,可以先根据目标车辆当前时间点的行驶环境数据获取得到当前时间点的车道环境特征;再调用预设的车道检测模型处理上述车道的环境特征,以得到目标车辆当前时间点的车道信息;并根据车道信息所反映出目标车辆真实的车道状况,控制目标车辆的行驶。从而可以通过引入并利用行为树的特性,能够较好地适用自动驾驶场景,较为精准、高效地识别确定出目标车辆当前时间点的车道信息,并基于该车道信息及时地对该目标车辆进行针对性控制,以保证目标车辆的行驶安全。

本说明书实施例还提供一种服务器,包括处理器以及用于存储处理器可执行指令的存储器,所述处理器具体实施时可以根据指令执行以下步骤:获取目标车辆当前时间点的行驶环境数据;根据所述行驶环境数据,获取当前时间点的车道的环境特征;调用预设的车道检测模型处理所述当前时间点的车道的环境特征,以得到目标车辆当前时间点的车道信息;其中,所述预设的车道检测模型为预先构建好的基于行为树的算法模型;根据当前时间点的车道信息,控制目标车辆行驶。

为了能够更加准确地完成上述指令,参阅图5所示,本说明书实施例还提供了另一种具体的服务器,其中,所述服务器包括网络通信端口501、处理器502以及存储器503,上述结构通过内部线缆相连,以便各个结构可以进行具体的数据交互。

其中,所述网络通信端口501,具体可以用于获取目标车辆当前时间点的行驶环境数据。

所述处理器502,具体可以用于根据所述行驶环境数据,获取当前时间点的车道的环境特征;调用预设的车道检测模型处理所述当前时间点的车道的环境特征,以得到目标车辆当前时间点的车道信息;其中,所述预设的车道检测模型为预先构建好的基于行为树的算法模型;根据当前时间点的车道信息,控制目标车辆行驶。

所述存储器503,具体可以用于存储相应的指令程序。

在本实施例中,所述网络通信端口501可以是与不同的通信协议进行绑定,从而可以发送或接收不同数据的虚拟端口。例如,所述网络通信端口可以是负责进行web数据通信的端口,也可以是负责进行ftp数据通信的端口,还可以是负责进行邮件数据通信的端口。此外,所述网络通信端口还可以是实体的通信接口或者通信芯片。例如,其可以为无线移动网络通信芯片,如gsm、cdma等;其还可以为wifi芯片;其还可以为蓝牙芯片。

在本实施例中,所述处理器502可以按任何适当的方式实现。例如,处理器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(applicationspecificintegratedcircuit,asic)、可编程逻辑控制器和嵌入微控制器的形式等等。本说明书并不作限定。

在本实施例中,所述存储器503可以包括多个层次,在数字系统中,只要能保存二进制数据的都可以是存储器;在集成电路中,一个没有实物形式的具有存储功能的电路也叫存储器,如ram、fifo等;在系统中,具有实物形式的存储设备也叫存储器,如内存条、tf卡等。

本说明书实施例还提供了一种基于上述基于行为树的车道检测方法的计算机存储介质,所述计算机存储介质存储有计算机程序指令,在所述计算机程序指令被执行时实现:获取目标车辆当前时间点的行驶环境数据;根据所述行驶环境数据,获取当前时间点的车道的环境特征;调用预设的车道检测模型处理所述当前时间点的车道的环境特征,以得到目标车辆当前时间点的车道信息;其中,所述预设的车道检测模型为预先构建好的基于行为树的算法模型;根据当前时间点的车道信息,控制目标车辆行驶。

在本实施例中,上述存储介质包括但不限于随机存取存储器(randomaccessmemory,ram)、只读存储器(read-onlymemory,rom)、缓存(cache)、硬盘(harddiskdrive,hdd)或者存储卡(memorycard)。所述存储器可以用于存储计算机程序指令。网络通信单元可以是依照通信协议规定的标准设置的,用于进行网络连接通信的接口。

在本实施例中,该计算机存储介质存储的程序指令具体实现的功能和效果,可以与其它实施方式对照解释,在此不再赘述。

参阅图6所示,在软件层面上,本说明书实施例还提供了一种基于行为树的车道检测装置,该装置具体可以包括以下的结构模块:

第一获取模块601,具体可以用于获取目标车辆当前时间点的行驶环境数据;

第二获取模块602,具体可以用于根据所述行驶环境数据,获取当前时间点的车道的环境特征;

调用模块603,具体可以用于调用预设的车道检测模型处理所述当前时间点的车道的环境特征,以得到目标车辆当前时间点的车道信息;其中,所述预设的车道检测模型为预先构建好的基于行为树的算法模型;

控制模块604,具体可以用于根据当前时间点的车道信息,控制目标车辆行驶。

在一些实施例中,所述预设的车道检测模型包括多个子树;其中,所述多个子树中的各个子树分别用于识别车道的一种维度属性;所述子树至少包含有一个第一级顺序节点,以及与第一级顺序节点相连的至少一个判断支路;所述判断支路用于对一种维度属性中的一个属性类别进行判断处理得到对应的属性类别判断结果;所述第一级顺序节点用于基于判断支路输出的属性类别判断结果确定并输出对应维度属性的属性识别结果;所述预设的车道检测模型用于根据第一级顺序节点输出的属性识别结果确定并输出相应的车道信息。

在一些实施例中,所述判断支路至少包含有控制节点和第二级顺序节点;其中,所述控制节点保存有与该判断支路对应的转换条件;相应的,所述判断支路通过所述控制节点根据当前时间点的车道的环境特征和转换条件进行判断处理,并通过第二级顺序节点输出当前时间点的属性类别判断结果。

在一些实施例中,所述控制节点还保存有历史属性识别结果;相应的,所述控制节点用于根据当前时间点的车道的环境特征、转换条件,以及历史属性识别结果,进行当前时间点的判断处理。

在一些实施例中,所述判断支路还包含有修饰器节点;其中,所述修饰器节点保存有控制参数;所述控制参数用于对判断支路的判断处理规则进行控制。

在一些实施例中,所述控制参数包括以下至少之一:开关启动标记、开关关闭标记、判断处理次数、权重系数等。

在一些实施例中,所述维度属性包括:功能属性和/或位置属性等。

在一些实施例中,在所述维度属性为功能属性的情况下,所述属性识别结果包括以下至少之一:汇入车道、汇出车道、应急车道、匝道、正常行驶道等。

在一些实施例中,在所述维度属性为位置属性的情况下,所述属性识别结果包括以下至少之一:靠右位置、中间位置、靠左位置等。

在一些实施例中,所述装置具体还可以包括构建模块,具体可以用于获取目标路段的信息数据,并确定目标驾驶场景;根据所述目标路段的信息数据和目标驾驶场景,构建多个第一级顺序节点、多个控制节点,并组合连接所述多个第一级顺序节点、多个控制节点,得到行为树;根据所述目标路段的信息数据和目标驾驶场景,为所述行为树中的控制节点配置相应的转换条件,以得到所述预设的车道检测模型。

需要说明的是,上述实施例阐明的单元、装置或模块等,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本说明书时可以把各模块的功能在同一个或多个软件和/或硬件中实现,也可以将实现同一功能的模块由多个子模块或子单元的组合实现等。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

由上可见,本说明书实施例提供的基于行为树的车道检测装置,通过引入并利用行为树的特性,能够较好地适用自动驾驶场景,较为精准、高效地识别确定出目标车辆当前时间点的车道信息,并基于该车道信息及时地对该目标车辆进行针对性控制,以保证目标车辆的行驶安全。

在一个具体的场景示例中,可以应用本说明书实施例提供的基于行为树的车道检测方法利用行为树架构(例如,预设的车道检测模型)对车道线属性进行识别与维护,可以通过利用历史信息(例如,历史属性识别结果)与当前驾驶场景,对车道线、车道的识别与维护进行优化,使之在离线状态下、面对复杂路段,或者实时规划等场景,能够有效地提高自动驾驶道路感知的安全性与稳定性。

在本场景示例中,所使用到的行为树是一种在近年逐渐取代有限状态机的一种架构。在学术上,已经充分证明,任何一种有限状态机都可以被改写为行为树架构。行为树的优势在于可以在逻辑体量相同的情况下,减少程序运行时间,并且增加后期优化的灵活性。除此之外,行为树还可以通过简单的改写适应自动驾驶对算法的实时规划(real-timeplanning),并行算法(parallelalgorithm)等需求。自动驾驶的场景复杂,行为树的架构可以在应对各种场景时不断更新优化,从而达到支持自动驾驶安全识别车道线与车道的需求。

在本场景示例中,具体实施前,需要先考虑好以下几方面内容。

第一方面,需要供一种基于行为树的车道属性识别与维护方法。这里需要明确车道、车道线属性的分类与定义,以及各类车道、车道线相互转换所需要的条件。

首先,需要结合实际路况对车道、车道线属性有明确的分类。这里包括但不仅限于国内外的高速场景、城镇场景、乡村场景、特殊园区场景(如码头,工业园区等)。根据不同的路况特点可以对车道进行多种维度的分类,并对指定维度的每一类有明确的定义。即在某一指定维度,每一条车道都应该拥有不重合的一种属性,当且只当该车道满足一定条件(例如,转换条件)时,才可从一种属性切换为另一种属性。

综上,在任意一个指定维度,每一条车道有且只能有一种属性。以上的设计同样适用与车道线的分类与定义。

在此基础上,上述车道线可以分段赋予属性,但每一段车道线有且只能有一种属性。

其次,还需要明确车道、车道线属性相互转换的条件。车道的属性在出现新路况或变道之前应该是维持稳定。即颠簸,被其他车辆超车等情况不应对当前车道,车道线的属性产生影响。

最终,还需要结合上述的已知信息,生成行为树的顺序节点(例如,第一级顺序节点)与控制节点。其中,顺序节点可以由上述某一指定维度的车道、车道线分类组成;控制节点由上述相互转换条件组成。行为树的根部由顺序节点组成,每一个控制节点构成一个行为树的判断支路。在处理每一个判断支路时可根据情况运用修饰器节点来控制节点的前置条件。状态节点可以用来记录当前控制节点的判断状态。最终,行为树将输出车道、车道线属性等信息(例如,车道信息)。之后经过筛选得到当前车道、车道线的目标属性。

第二方面,还需要提供一种基于行为树的车道、车道线属性识别决策结构。

首先,需要明确车道、车道线属性的分类可以有m个维度(维度属性),例如,可以基于位置、功能等信息都可以对车道、车道线属性进行分类识别。m即为车道、车道线分类的总维度数。这里还可以以某一指定维度的车道、车道线属性为基础生成的n个顺序节点,n即为在该维度下车道,车道线属性分类的总数。该种节点中可以记录有车道、车道线的当前属性信息,以及其他与属性信息相关的基本信息。

之后,可以基于车道属性转换而得到的控制节点与对应的状态节点、修饰器节点。在应对性能不同的硬件设备与车辆时,可以通过调节修饰器节点与收集状态节点的信息对当前行为树架构进行优化升级。

最后,可以输出m个车道属性,即经过不同维度的行为树结构判断,都应得到唯一一个对应的车道属性。故经过筛选后输出的车道属性总数应与车道分类的维度总数相对应。

基于上述方案,具体实施时,可以包括以下步骤:

步骤一,根据应用场景与环境生成多个顺序节点,并根据车辆环境感知数据生成控制节点,多个控制节点中包含了顺序节点是否转化为输出内容的判定条件,根据m个不同的维度生成子树,其中m大于等于1。(例如,构建基于行为树的预设的车道检测模型)

步骤二,根据k帧初始信息,其中k大于等于1,识别当前图像上的车道与车道线属性、位置关系等,作为行为树控制节点的输入信息(例如,车道的环境特征)。这里可以结合传统感知方法对车道进行初步的识别。

步骤三,根据l帧路况信息,其中,l大于1,对车道与车道线历史信息进行收集统计,结合修饰器节点,状态节点对当前指定车道线进行属性维护,这里每一条车道线的维护顺序可以是并行的或是顺序进行的,应结合具体硬件与应用场景决定。

步骤四,根据状态节点的反馈,输出当前指定车道的属性信息(例如,车道信息),从而可以实现对车道的维护、车道线状态与属性信息的识别。

具体实施时,在步骤一中,以高速场景(一种道路场景)为例,从车道功能属性而言,可以得到汇入车道,汇出车道,应急车道,匝道,正常行驶道路等多个顺序节点。这些顺序节点可以是离线设计好的,也可以是在未来各项上线游技术提升之后进行实时判断的。其中,控制节点中储存了车道属性,以及当前车道属性的历史信息,包括但不限于当前车道属性,属性持续的帧数,变化之前的属性等。车道属性变换需要由控制节点进行判定,控制节点中包含了车道属性转换所需要的各项条件,例如汇入车道可以在满足一定条件后成为正常行驶车道,汇出车道可以在满足一定条件后成为匝道等。

在步骤二中,需要根据初始信息对车道,车道线属性进行初步识别。以自动驾驶的传统感知方法为例,可以识别出当前图像上白色实线车道,白色虚线车道,鱼骨线,路沿,锥形桶封锁线等。那么结合这些信息就可以对当前车道的属性进行一个初步的判断,如在白色实线与路沿之间的车道在满足一定条件下,可以判定为应急车道。

在步骤三中,需要根据历史信息对车道线,车道属性信息进行收集与统计。这里是指结合历史信息更新控制节点内所储存的内容,如当前车道属性、属性的维持时间、维持距离等,上一车道属性,上一车道属性的维持时间,维持距离等信息。之后利用控制节点进行属性维护,这里的修饰器起到了辅助判断的作用,在实际场景中,各模块的信息传递可能存在延迟,丢失,甚至重复等问题,这里的修饰器节点起到了对信息传递的过滤平滑作用,保证输入信息的稳定。进入控制节点的判定后,状态节点起到了对控制节点状态的一种记录。这里可以包含正在判定,判定成功,判定失败等结果,甚至可以延展为对判定成功,失败,正在进行的一种原因补充。

在步骤四中,需要通过状态节点的反馈得到车道与车道线的属性信息,这里可以根据需求对所得到的判定结果进行筛选,从而保证车道的属性在同一个维度中有且只有一种。

具体的,例如,参阅图7所示,应用本说明书实施例所提供的基于行为树的车道检测方法,在汇入路段(一种高速场景下的路段类型)中进行车道检测时,可以包括以下步骤。

步骤一,可以假设m=1,即只考虑一个维度,给该维度定义为车道功能维度(例如,功能属性),那么可以事先可以配置生成以下顺序节点(例如,第二级顺序节点):汇入车道,汇出车道,应急车道,匝道,常规车道

步骤二,参阅图7所示,车辆(目标车辆)从左向右行驶过该类路段大概生成50帧图像,那么可以取k=5,即根据最开始的5帧图像数据初步确立车道功能,利用行为树结构(例如,基于行为树的预设的车道检测模型)可以判断得到如下信息:车道a为常规车道,车道b为匝道,车道c为应急车道。

步骤三,这里假设l=2,因此,可以在控制节点内只储存每一条车道之前两帧的功能属性(例如,历史属性识别结果)。具体的,例如,可以按照以下方式对车道与车道线历史信息进行收集统计:车道a左侧车道线:{白色实线,白色实线},车道a:{常规车道,常规车道},车道a右侧车道线:{白色实线,白色实线},车道b:{匝道,匝道},车道b右侧车道线:{白色实线,白色实线},车道c:{应急车道,应急车道},车道c右侧车道线:{路沿,路沿}。

进一步,可以参阅图4所示,自上而下的顺序,历史信息与当前帧信息会被输入到行为树结构中。

具体实施时,由于车道a为常规车道,但依据相关车道规划,在正常行驶不变道的情况下,只有可能转变为:汇入车道,汇出车道或常规车道。所以针对车道a,匝道,应急车道的修饰器节点应设定为“跳过”(例如,将开关指示参数设置为开关关闭标记),即不执行该子树相关的判断,状态节点进入“已完成”状态,顺序节点直接返回“失败”(例如,输出属性类别判断结果为否)。

依次经过第一个顺序节点对应汇入车道,修饰器节点设定为“执行一次”,该子树状态节点从“未执行”变为“正在执行”,根据历史信息与当前帧信息判断,当前视野内车道a没有发生与其他车道合并的现象,故当前帧车道a非汇入车道,顺序节点返回“失败”,状态节点返回“已完成”。

第二个顺序节点对应汇出车道,修饰器节点设定为“执行一次”,该子树状态节点从“未执行”变为“正在执行”,根据历史信息与当前帧信息判断,当前视野内车道a没有发生与其他车道分离的现象,故当前帧车道a非汇出车道。顺序节点返回“失败”,状态节点返回“已完成”。

第三个顺序节点对应应急车道,由于修饰器设定为“跳过”,状态节点进入“已完成”状态,顺序节点直接返回“失败”。

第四个顺序节点对应匝道,由于修饰器设定为“跳过”,状态节点进入“已完成”状态,顺序节点直接返回“失败”。

第五个顺序节点对应常规车道,修饰器节点设定为“执行一次”,该子树状态节点从“未执行”变为“正在执行”,根据历史信息与当前帧信息判断,当前视野内车道a没有发生与其他车道分离或合并的现象,左右车道线保持平行关系,故当前帧车道a为常规车道。顺序节点返回“成功”,状态节点返回“已完成”。

至此,车道a当前帧可判定为常规车道。

而车道b为匝道,依据相关车道规划,在正常行驶不变道的情况下,只有可能转变为:汇入车道,匝道。所以针对车道b,汇出车道,应急车道,常规车道的修饰器节点应设定为“跳过”,即不执行该子树相关的判断,状态节点进入“已完成”状态,顺序节点直接返回“失败”。

依次经过第一个顺序节点汇入车道,修饰器节点设定为“执行一次”,该子树状态节点从“未执行”变为“正在执行”,根据历史信息与当前帧信息判断,当前视野内车道b发生了与车道a合并的现象,故当前帧车道b判断为汇入车道,顺序节点返回“成功”,状态节点返回“已完成”。

由于已经成功判断车道b的功能属性,之后的四个顺序节点的子树内状态节点直接更新为“已完成”,无需进行任何判定,顺序节点返回“失败”。至此,车道b当前帧可判定为汇入车道。

车道c为应急车道,依据相关车道规划,在正常行驶不变道的情况下,只有可能转变为:应急车道。所以针对车道c,汇入车道,汇出车道,匝道,常规车道的修饰器节点应设定为“跳过”,即不执行该子树相关的判断,状态节点进入“已完成”状态,顺序节点直接返回“失败”。

依次经过第一个顺序节点汇入车道,由于修饰器设定为“跳过”,状态节点进入“已完成”状态,顺序节点直接返回“失败”。

经过第二个顺序节点汇出车道,由于修饰器设定为“跳过”,状态节点进入“已完成”状态,顺序节点直接返回“失败”。

经过第三个顺序节点应急车道,由于修饰器设定为“执行一次”,该子树状态节点从“未执行”变为“正在执行”,根据历史信息与当前帧信息判断,当前视野内车道c两侧车道线平行,车道宽度符合应急车道宽度,右侧车道线为路沿,左侧车道线为白色实线,顺序节点返回“成功”,状态节点返回“已完成”。

由于已经成功判断车道c的功能属性,之后的两个顺序节点的子树内状态节点直接更新为“已完成”,无需进行任何判定,顺序节点返回“失败”。至此,车道c当前帧可判定为应急车道。

步骤四,根据状态节点的反馈,输出当前指定车道的属性信息,从而维护车道的生成与识别,车道线状态与属性的识别。

对于车道a,状态节点已经全部显示为“已完成”,顺序节点有且只有常规车道输出“成功”,车道a判定并维护为常规车道。

对于车道b,状态节点全部显示为“已完成”,顺序节点有且只有汇入车道输出“成功”,车道b判定并维护为汇入车道。

对于车道c,状态节点全部判定为“已完成”,顺序节点有且只有应急车道输出“成功”,车道c判定并维护为应急车道。

需要补充的是,在上述实施过程中,以上涉及判定条件的内容(如:“当前视野内车道c两侧车道线平行,车道宽度符合应急车道宽度,右侧车道线为匝道,左侧车道线为白色实线”)全部储存在控制节点。修饰器节点可以根据需求设定执行次数或不执行,给实时运行(runtimeuse)增添了灵活性。对于不同于状态机,每一个行为树子树的控制节点条件可以在不影响其他子树的情况下任意修改,子树也可根据需求任意添加或删除,而整体行为树结构几乎不受到影响。

进一步,利用本说明书实施例所提供的基于行为树的车道检测方法还可以对车道对应道路场景下的路段类型(也可以理解一种维度属性)进行智能识别。具体的,可以同时结合之前得到的功能、位置这两个维度生成另一种维度,即路段类型维度(包括汇入路段、修路路段、汇出路段等)。可以参阅图8所示。一个目标路段可以包括多个路段类型。具体实施时,所使用的输入信息与控制节点信息可以从位置维度、功能维度提取得到。

其中,汇入路段的判断条件具体可以包括:有汇入车道,可以稳定检测到由两条车道线交叉组成的三角形区域,且三角的顶角朝向行驶方向,三角的顶角交汇处可观测到汇入点,路段中无修路锥形桶。

修路路段的判断条件具体可以包括:可以持续检测到修路锥形桶,车道线持续被锥形桶遮挡。

汇出路段的判断条件具体可以包括:有汇出车道,可以稳定检测到由两条车道线交叉组成的三角形区域,且三角的顶角朝向与行驶方向相反,三角的顶角交汇处可观测到汇出点,路段中无修路锥形桶。

通过上述场景示例,利用本说明书实施例所提供的基于行为树的车道检测方法可以获得以下的有益效果:基于行为树架构可以使得车道属性识别与维护算法能够有条理的、系统性的优化车道属性维护;提高了车道属性生成与维护的安全性与稳定性;还节省了车道属性生成与维护的计算成本,能够较好地适应于不同场景下自动驾驶技术落地的算法即时性需求;还使得车道属性生成与维护架构的延伸与优化成本降低,能够适用于多种灵活的场景变化,满足用户的多样化需求。

虽然本说明书提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的手段可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的装置或客户端产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境,甚至为分布式数据处理环境)。术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、产品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、产品或者设备所固有的要素。在没有更多限制的情况下,并不排除在包括所述要素的过程、方法、产品或者设备中还存在另外的相同或等同要素。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。

本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内部包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。

本说明书可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构、类等等。也可以在分布式计算环境中实践本说明书,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。

通过以上的实施例的描述可知,本领域的技术人员可以清楚地了解到本说明书可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本说明书的技术方案本质上可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,移动终端,服务器,或者网络设备等)执行本说明书各个实施例或者实施例的某些部分所述的方法。

本说明书中的各个实施例采用递进的方式描述,各个实施例之间相同或相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。本说明书可用于众多通用或专用的计算机系统环境或构建中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的电子设备、网络pc、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。

虽然通过实施例描绘了本说明书,本领域普通技术人员知道,本说明书有许多变形和变化而不脱离本说明书的精神,希望所附的权利要求包括这些变形和变化而不脱离本说明书的精神。

再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献

  • 日榜
  • 周榜
  • 月榜