技术领域
[0001] 本发明大体涉及车道检测。
相关背景技术
[0002] 如今,一些车载系统可以实施车道检测。在一些现有的解决方案中,基于依赖于道路上的标记的图像处理技术来检测车道信息。当道路上的标记本身不够清楚或由于恶劣的天气(诸如雾)而模糊时,车道检测可能会受到严重影响。
具体实施方式
[0064] 在下面的详细描述中,参考形成本发明的一部分的附图。在附图中,相似的符号通常标识相似的组件,除非上下文另有规定。在详细描述、附图和权利要求中描述的说明性实施方案并不意味着限制。在不脱离本文所呈现的主题的精神或范围的情况下,可以使用其他实施方案,并且可以进行其他改变。将容易理解,如本文中一般性描述并且在附图中图示的本发明的各方面可以用各种不同的配置进行布置、取代、组合和设计,所有这些配置都被明确地考虑并作为本发明的一部分。
[0065] 在一些安全应用中,诸如盲点警告或车道变换警告,车辆的车道信息是重要的。例如,车道信息可以包括车辆所在的车道或相邻车道上是否有车辆。
[0066] 聚类是以这种方式对一组对象进行分组的过程,即,同一组(称为集群)中的对象彼此比其他组(其他集群)中的对象更相似(在某种意义上或另一方面)。图1是驾驶场景的示意图。参考图1,车辆V0至V4在道路的四个车道上行驶。四个不同的车道可以被认为是四个集群,并且同一车道上的车辆可以被确定为属于同一集群。例如,车辆V0和V3在同一车道上行驶,因此其属于同一集群。此外,表示车辆跟随的路径的车辆的轨迹可以用于指示车辆所在的车道。因此,车辆可以使用基于自身和相邻车辆的轨迹的聚类过程来获得其车道信息。应该注意的是,车辆的相邻车辆可以表示位于车辆的车辆间通信范围内的另一车辆。
[0067] 图2图示根据一个实施方案的车道检测方法100的流程图。
[0068] 参考图2,在S101中,第一车辆生成其轨迹。
[0069] 在一些实施方案中,第一车辆可以基于第一车辆的GPS数据来获得其轨迹。在行驶期间,GPS设备可以提供包括第一车辆的地理坐标和相应时间点的GPS数据。
[0070] 在一些实施方案中,可以通过对第一车辆的GPS数据执行曲线拟合来生成第一车辆的轨迹。曲线拟合技术是本领域公知的,这里不再详细描述。
[0071] 在S103中,第一车辆生成相邻车辆的轨迹。
[0072] 在一些实施方案中,可以基于从相邻车辆接收的相邻车辆的车辆间数据来生成相邻车辆的轨迹。应该注意的是,车辆间数据表示在同一附近地区行驶的车辆之间进行无线交换的数据。在一些实施方案中,车辆间数据可以包括包含相邻车辆的至少一个动态特征的动态数据。在一些实施方案中,动态数据可以包括GPS数据、速度数据或航向数据。在一些实施方案中,车辆间数据可以在诸如基本安全消息(Basic Safety Message,BSM)或合作感知消息(Cooperative Awareness Message,CAM)的车辆安全消息中被传输。
[0073] 在一些实施方案中,第一车辆可以使用与S101相似的曲线拟合技术,基于相邻车辆的GPS数据来生成相邻车辆的轨迹。
[0074] 在一些实施方案中,第一车辆可以基于相邻车辆的速度数据和航向数据以及每个相邻车辆相对于第一车辆的相对位置来生成相邻车辆的轨迹。轨迹检测的详细信息可以参见国际申请号PCT/CN2014/090823。
[0075] 参考图3,图3是根据实施方案的车辆的检测轨迹的示意图。第一车辆V0生成五个车辆V0至V4的五个轨迹L1至L5。轨迹L1、L2、L3和L5是相邻车辆的轨迹,并且轨迹L4是第一车辆V0的轨迹。
[0076] 如上所述,在聚类过程期间,在同一车道上行驶的车辆可以属于一个集群。在实际情况下,车辆可能不会一直在道路的同一车道上行驶。例如,在图3中,车辆V2的轨迹穿过两个车道。显然,轨迹的部分L21在第一车道上,而部分L23在第二车道上,即,部分L21属于一个集群,而部分L23属于另一个集群。穿过两个车道的轨迹的部分L22既不属于第一车道,也不属于第二车道,这可能不会在后续的聚类过程中使用。一般来说,轨迹的异常部分可以对应于车辆的异常驾驶状态。仍然以车辆V2的轨迹L2为例,部分L22指示车辆V2在对应于部分L22的时间段内变换车道。在一些实施方案中,为了确保聚类结果的准确性,可以从轨迹中去除像部分L22的轨迹的异常部分。
[0077] 在S105中,第一车辆从相邻车辆和第一车辆的轨迹中去除异常以获得相邻车辆和第一车辆的校正轨迹。
[0078] 在一些实施方案中,车辆的轨迹中的异常可以表示对应于车辆的异常驾驶状态的车辆的轨迹的一部分。在一些实施方案中,从相邻车辆的轨迹中去除异常可以包括去除对应于相邻车辆的异常驾驶状态下的车辆间数据的轨迹的一部分,即,可以基于车辆间数据来去除异常。
[0079] 图4是图3中所示的轨迹L2的放大视图。可以去除轨迹L2的部分L22以获得要在后续的聚类过程中使用的轨迹L1、L21、L22、L3、L4和L5,如图5中所示。具体来说,第一车辆V0可以基于车辆V2的接收的车辆间数据来去除轨迹L2的部分L22。参考图4,从轨迹L22处的点P1,车辆V2开始变换车道,并且车辆V2在点P2处完成变换车道。第一车辆V0可以基于包含在车辆V2的车辆间数据中的车辆V2的横向加速度和/或航向信息来确定部分L22为异常。此外,当车辆V2变换车道时,车辆V2可以打开转向灯,并且当车辆V2完成变换车道时,车辆V2关闭转向灯。因此,车辆V2将关于打开转向灯的信息和关于关闭转向灯的信息添加到经由车辆间通信发送到相邻车辆的消息中。因此,第一车辆V0可以还基于关于从车辆V2打开/关闭转向灯的信息来确定部分L22为异常。
[0080] 根据上文,在一些实施方案中,在生成相邻车辆和第一车辆的轨迹之后,可以从生成的轨迹中去除异常。
[0081] 可选地,在一些实施方案中,可以从接收的车辆间数据中去除诸如对应于异常驾驶状态的接收的车辆间数据的一部分的异常,并且可以基于已进行异常去除过程的车辆间数据来计算相邻车辆的轨迹。
[0082] 例如,第一车辆可以通过在生成轨迹之前排除在异常驾驶状态期间车辆的数据,直接生成相邻车辆和第一车辆的轨迹(如图5中所示)。
[0083] 在S107中,第一车辆对相邻车辆和第一车辆的校正轨迹执行聚类过程。
[0084] 如上所述,聚类过程使类似的对象能够在同一集群中。
[0085] 考虑到道路的不同车道上的两个车辆之间具有至少一个车道宽度,聚类过程可以依赖于车道宽度。
[0086] 图6是根据实施方案的聚类过程200的流程图。在下文中,可以将聚类过程200描述为实例。
[0087] 在S201中,第一车辆生成集合来携带参考轨迹。
[0088] 在S203中,第一车辆从校正轨迹中选择最侧边的轨迹作为第一参考轨迹,并且将第一参考轨迹确定为属于第一集群。
[0089] 在一些实施方案中,每个校正轨迹可以由同一坐标系下的像y=T(x)的函数表示。为了在校正轨迹中找到最侧边的轨迹,函数y=T(x)可以转换成另一种形式x=T'(y)。在一些实施方案中,可以确定由函数x=T'(y)定义的曲线的y轴上的最大截距,并且可以选择对应于最大截距的轨迹作为最侧边的轨迹。在一些实施方案中,可以确定由函数x=T'(y)定义的曲线的y轴上的最小截距,并且可以选择对应于最小截距的轨迹作为最侧边的轨迹。
[0090] 在一些实施方案中,第一参考轨迹可以被发送到携带参考轨迹的集合。
[0091] 在S205中,第一车辆确定校正轨迹中的一个和第一参考轨迹之间的最长距离是否短于车道宽度,如果是,则过程进入S207;否则,过程进入S209。
[0092] 在一些实施方案中,两个轨迹之间的距离是指分别在两个轨迹上的任何两个点之间的最短距离。
[0093] 在一些实施方案中,相关标准规定车道宽度为3.75米。在一些实施方案中,可以从数字地图获得车道宽度。
[0094] 在S207中,第一车辆确定所有校正轨迹属于第一集群。
[0095] 在一些实施方案中,如果任何校正轨迹和参考轨迹之间的距离短于车道宽度,则所有校正轨迹可以属于一个集群,即,相邻车辆和第一车辆可以在道路的同一车道上行驶。
[0096] 在S209中,第一车辆确定与第一参考轨迹具有最长距离的轨迹为第二参考轨迹并属于第二集群。
[0097] 在一些实施方案中,第二参考轨迹可以被发送到携带参考轨迹的集合。
[0098] 在S211中,第一车辆确定剩余校正轨迹中的一个和集合中携带的参考轨迹之间的最长距离是否长于车道宽度,如果是,则过程进入S213;否则,过程进入S215。
[0099] 在一些实施方案中,轨迹和参考轨迹之间的距离可以表示轨迹和每个参考轨迹之间的距离之和。
[0100] 在S213中,第一车辆确定与集合中携带的参考轨迹具有最长距离的轨迹为第三参考轨迹并属于第三集群,并重复步骤S211。
[0101] 在S215中,第一车辆确定剩余轨迹的集群。
[0102] 在一些实施方案中,如果剩余轨迹和属于一个检测集群的聚类轨迹之间的距离短于车道宽度,则可以将剩余轨迹确定为属于一个检测集群。以这种方式,所有校正轨迹被聚类到检测轨迹。
[0103] 在一些实施方案中,检测集群的数量实际上可以是车道的数量。在一些实施方案中,检测集群的数量可能不等于车道的实际数量,因为例如一个车道可能没有任何车辆在其上行驶。
[0104] 在S217中,基于第一参考轨迹以及第一参考轨迹和每个其他校正轨迹之间的距离,第一车辆确定检测集群的序列。
[0105] 在一些实施方案中,检测集群的序列可以包括沿着垂直于第一车辆的航向的方向的检测集群的分布。
[0106] 在S109中,第一车辆基于聚类结果获得第一车辆所在的车道。
[0107] 基于上述聚类过程,第一车辆获得校正轨迹的集群的数量和其轨迹的序列号。在一些实施方案中,集群可以对应于车道。因此,第一车辆可以基于其轨迹的序列号获得第一车辆所在的车道。
[0108] 在一些实施方案中,集群的数量可能小于车道的数量。例如,参考图7,沿着北方向生成五个轨迹L1'至L5',并且轨迹L4'是第一车辆的轨迹。在聚类过程之后,可以从西到东形成三个集群1、2和3,并且可以确定第一车辆在从西到东的第二车道上行驶。然而,实际上,第一车辆在从西到东的第三车道上行驶。不正确的确定是因为没有车辆在第二车道上行驶。因此,在一些实施方案中可能需要以下步骤。假设第一车辆的轨迹L4'属于集群2,并且相邻的两个集群是集群1和3,则可以计算集群1中的轨迹L4'和轨迹L1'之间的距离以及集群3中的轨迹L4'和轨迹L5'之间的距离。第一车辆可以发现轨迹L4'和L1'之间的距离多于一个车道宽度,这指示西侧的相邻集群1不对应于与第一车辆实际行驶的车道相邻的车道。因此,第一车辆可以确定在附近的西侧的相邻车道上没有车辆行驶。
[0109] 在一些实施方案中,还可以基于数字地图来获得第一车辆所在的车道。例如,如果确定第一车辆属于从西到东的第二集群并且集群的数量为四个,并且在数字地图上呈现的车道的数量也是四个,则第一车辆可以确定其位于从西到东的第二车道。
[0110] 为了更好地理解聚类过程200,结合图5描述详细的实例。
[0111] 参考图5,第一车辆V0可以选择最东的轨迹L5作为参考轨迹,并且确定轨迹L5属于集群1。然后,第一车辆V0计算轨迹L5与轨迹L1、L21、L22、L3和L4中的每个之间的距离,并且确定轨迹L1距轨迹L5最远并属于集群2。然后,第一车辆V0找到距聚类轨迹L1和L5最远的轨迹,即,要找到的轨迹和轨迹L1之间的距离与要找到的轨迹和轨迹L5之间的距离之和应达到最大值。例如,第一车辆V0确定轨迹L22为距聚类轨迹L1和L5最远的轨迹。此外,轨迹L22和L1之间的距离以及轨迹L22和L5之间的距离都大于车道宽度,因此第一车辆V0确定轨迹L22属于集群3。到目前为止,聚类轨迹包括L1、L22和L5。类似地,第一车辆V0可以确定轨迹L3为距聚类轨迹L1、L22和L5最远的轨迹。由于轨迹L3与轨迹L1、L22和L5中的任何一个之间的距离长于车道宽度,所以轨迹L3被确定为属于集群4。然后,在剩余轨迹L21和L4中,轨迹L21和轨迹L4与聚类轨迹L1、L22、L3和L5中的每个之间的距离都不大于车道宽度,因此不可以形成新的集群。通过将轨迹L21与聚类轨迹L1、L22、L3和L5中的每个之间的距离与车道宽度进行比较,第一车辆V0发现轨迹L21与轨迹L1之间的距离短于车道宽度,因此确定轨迹L21属于集群2。类似地,轨迹L4被确定为属于集群4。以这种方式,执行聚类过程。获得四个集群,并将轨迹L1、L21、L22、L3、L4和L5分类为四个集群。基于参考轨迹L5以及参考轨迹L5和轨迹L1、L21、L22、L3和L4中的每个之间的距离,第一车辆V0可以发现从东到西的四个集群分别是集群1、4、3和2。由于第一车辆V0的轨迹L4属于集群4,所以第一车辆V0确定其位于从东到西的第二车道。
[0112] 根据上文,基于主车辆和其相邻车辆的轨迹,可以对轨迹执行聚类过程以获得聚类结果。并且主车辆可以根据聚类结果获得主车辆所在的车道或相邻车道上是否有车辆。
[0113] 图8图示根据一个实施方案的安装在第一车辆上的车道检测系统300的示意性框图。参考图8,车道检测系统300包括定位设备301、通信设备303、处理设备305、显示设备307和存储设备309。
[0114] 在一些实施方案中,定位设备可以用于获得第一车辆的GPS数据。在一些实施方案中,通信设备303可以用于从相邻车辆接收车辆间数据。在一些实施方案中,处理设备305可以用于基于由通信设备303接收的车辆间数据来计算第一车辆所在的车道。在一些实施方案中,显示设备307可以用于向用户呈现车道信息。
[0115] 在一些实施方案中,处理设备305还可以用于:基于相邻车辆的车辆间数据计算相邻车辆的轨迹;基于第一车辆的GPS数据生成第一车辆的轨迹;对相邻车辆和第一车辆的轨迹执行聚类以获得聚类结果;以及基于聚类结果获得第一车辆所在的车道。
[0116] 在一些实施方案中,车辆间数据可以在诸如BSM或CAM的车辆安全消息中被传输。在一些实施方案中,车辆间数据可以包括包含相邻车辆的至少一个动态特征的动态数据。
[0117] 在一些实施方案中,动态数据可以包括相邻车辆的GPS数据。在一些实施方案中,处理设备305可以用于基于相邻车辆的GPS数据生成相邻车辆的轨迹。
[0118] 在一些实施方案中,动态数据可以包括相邻车辆的速度数据和航向数据。在一些实施方案中,车道检测系统300还可以包括用于检测每个相邻车辆相对于第一车辆的相对位置的对象检测传感器。在一些实施方案中,处理设备305可以用于基于相邻车辆的速度数据和航向数据以及每个相邻车辆相对于第一车辆的相对位置来生成相邻车辆的轨迹。
[0119] 在一些实施方案中,处理设备305还可以用于:从相邻车辆的轨迹中去除诸如对应于异常驾驶状态的轨迹的一部分的异常;以及对已进行异常去除过程的轨迹执行聚类。
[0120] 在一些实施方案中,处理设备305可以用于:从接收的动态数据中去除诸如对应于异常驾驶状态的接收的动态数据的一部分的异常;以及基于已进行异常去除过程的动态数据计算相邻车辆的轨迹。
[0121] 在一些实施方案中,处理设备305可以用于基于车道宽度执行聚类。在一些实施方案中,处理设备305还可以用于基于车道宽度来计算第一车辆所在的车道。在一些实施方案中,处理设备305还可以用于基于数字地图来获得第一车辆所在的车道。
[0122] 在一些实施方案中,处理设备305可以用于计算在第一车辆所在的道路上的车道的总数,以及计算在计算的总数中第一车辆所在的车道的序列号。
[0123] 在一些实施方案中,处理设备305可以用于确定在相邻车道上是否有车辆。
[0124] 在一些实施方案中,处理设备305可以是CPU或MCU或DSP等,或其任何组合。存储设备309可以存储操作系统和程序指令。
[0125] 根据一个实施方案,提供一种非暂时性计算机可读介质,其包含用于车道检测的计算机程序。当计算机程序由处理器执行时,其将指示处理器:基于由第一车辆从至少一个相邻车辆接收的车辆间数据来计算第一车辆所在的车道,其中相邻车辆是指位于第一车辆的车辆间通信范围内的另一车辆。
[0126] 在系统方面的硬件和软件实施之间几乎没有区别;硬件或软件的使用通常是代表成本与效率权衡的设计选择。例如,如果实施者确定速度和准确性是最重要的,则实施者可以选择主要硬件和/或固件车辆;如果灵活性是最重要的,则实施者可以选择主要软件实施;或者,再次替代地,实施者可以选择硬件、软件和/或固件的某些组合。
[0127] 尽管本文已经公开了各个方面和实施方案,但是其他方面和实施方案对于本领域技术人员将是显而易见的。本文公开的各个方面和实施方案是为了说明的目的而不是限制性的,其真实范围和精神由以下权利要求表明。