掌桥专利:专业的专利平台
掌桥专利
首页

一种车辆轨迹简化方法、装置、存储介质和电子设备

文献发布时间:2023-06-19 19:28:50


一种车辆轨迹简化方法、装置、存储介质和电子设备

技术领域

本申请涉及数据处理技术领域,具体涉及一种车辆轨迹简化方法、装置、存储介质和电子设备。

背景技术

随着全球定位系统(GPS)的大范围应用以及智慧城市的不断发展,大量的车辆轨迹数据在日常生活中正在日益积累,并被应用于生活中的各个领域。在智慧安防领域中,车辆轨迹数据主要被应用于车辆追踪,驾驶行为分析等方面。然而,面对如此海量的车辆轨迹数据,如何对其进行有效的简化已成为了一个备受关注的热点。

发明内容

为解决现有存在的技术问题,本申请实施例提供一种车辆轨迹简化方法、装置、存储介质和电子设备,可以有效地简化车辆轨迹数据。

为达到上述目的,本申请实施例的技术方案是这样实现的:

第一方面,本申请实施例提供一种车辆轨迹简化方法,包括:

获取车辆轨迹数据;所述车辆轨迹数据中包括多个轨迹点;

按照轨迹点在所述车辆轨迹数据中的顺序,遍历所述车辆轨迹数据中除第一个轨迹点以外的每个轨迹点,在遍历结束后将目标数组中的轨迹点作为简化后的车辆轨迹数据;

其中,每遍历到一个轨迹点则执行以下操作:

确定遍历到的目标轨迹点与所述目标数组中最后一个轨迹点之间的第一距离;所述目标数组中的第一个轨迹点为所述车辆轨迹数据中的第一个轨迹点;

若所述第一距离不小于设定阈值,则确定所述目标轨迹点与设定直线之间的第二距离;所述设定直线为所述目标数组中最后一个轨迹点与所述目标数组中倒数第二个轨迹点之间的连线;若所述第二距离大于所述设定阈值,且所述目标数组中不包括所述目标轨迹点的前一个轨迹点,则将所述目标轨迹点的前一个轨迹点加入至所述目标数组;或者,

若所述第一距离不小于所述设定阈值,则分别确定所述目标轨迹点与所述目标数组中最后一个轨迹点之间的第三距离,以及所述目标轨迹点的前一个轨迹点与所述目标数组中最后一个轨迹点之间的第四距离;若所述第三距离小于所述第四距离,且所述目标数组中不包括所述目标轨迹点的前一个轨迹点,则将所述目标轨迹点的前一个轨迹点加入至所述目标数组。

本申请实施例提供的车辆轨迹简化方法,在获取到车辆轨迹数据后,可以按照轨迹点在车辆轨迹数据中的顺序,遍历车辆轨迹数据中除第一个轨迹点以外的每个轨迹点,在遍历结束后将目标数组中的轨迹点作为简化后的车辆轨迹数据。其中,每遍历到一个轨迹点则执行以下操作:在确定目标轨迹点与目标数组中最后一个轨迹点之间的第一距离不小于设定阈值时,可以确定目标轨迹点与目标数组中最后一个轨迹点和倒数第二个轨迹点进行连线得到的直线之间的第二距离,若第二距离大于设定阈值,且目标数组中不包括目标轨迹点的前一个轨迹点,则将目标轨迹点的前一个轨迹点加入至目标数组;或者,在确定目标轨迹点与目标数组中最后一个轨迹点之间的第一距离不小于设定阈值时,可以分别确定目标轨迹点与目标数组中最后一个轨迹点之间的第三距离,以及目标轨迹点的前一个轨迹点与最后一个轨迹点之间的第四距离,若第三距离小于第四距离,目标数组中不包括目标轨迹点的前一个轨迹点,则将目标轨迹点的前一个轨迹点加入至目标数组。由于可以根据轨迹点间距离、方向角等特征提取出车辆轨迹数据中的关键点,从而可以有效地对车辆轨迹数据进行简化,保留车辆轨迹数据中的车辆拐弯或折返的关键点,剔除掉冗余数据,以降低后续对车辆轨迹数据进行应用分析的数据量,进而可以提高后续对数据进行分析和处理的效率。

在一种可选的实施例中,所述方法还包括:

若所述第二距离大于所述设定阈值,且所述目标数组中包括所述目标轨迹点的前一个轨迹点,则将所述目标轨迹点加入至所述目标数组;或者,

若所述第三距离小于所述第四距离,且所述目标数组中包括所述目标轨迹点的前一个轨迹点,则将所述目标轨迹点加入至所述目标数组。

在该实施例中,若第二距离大于设定阈值,且目标数组中包括目标轨迹点的前一个轨迹点,则将目标轨迹点加入至目标数组;或者,若第三距离小于第四距离,且目标数组中包括目标轨迹点的前一个轨迹点,则将目标轨迹点加入至目标数组。由于当目标轨迹点满足设定条件,且目标数组中不包括有目标轨迹点的前一个轨迹点时,可以将目标轨迹点的前一个轨迹点加入至目标数组,而当目标轨迹点满足设定条件,且目标数组中包括有目标轨迹点的前一个轨迹点时,可以将目标轨迹点加入至目标数组,从而可以使得不会重复将满足条件的轨迹点加入到目标数组中,提升对车辆轨迹数据进行简化的简化效果。

在一种可选的实施例中,所述方法还包括:

若所述第三距离小于所述第四距离,则标记新加入至所述目标数组的轨迹点为折返点;

在遍历完所有轨迹点后,根据各个折返点,将所述目标数组分成多个折返数组;每个折返数组中包括多个轨迹点;

对每个折返数组分别进行简化,得到每个简化后的折返数组,并将每个简化后的折返数组进行合并,得到简化后的目标数组。

在该实施例中,若第三距离小于第四距离,则标记新加入至目标数组的轨迹点为折返点,并且在遍历完所有轨迹点后,可以根据各个折返点,将目标数组分成多个折返数组,再对每个折返数组分别进行简化,得到每个简化后的折返数组,然后将每个简化后的折返数组进行合并,得到简化后的目标数组。从而可以对简化后的车辆轨迹数据进一步地进行简化,进一步提升对车辆轨迹数据进行简化的简化效果。

在一种可选的实施例中,所述根据各个折返点,将所述目标数组分成多个折返数组,包括:

将所述目标数组中每两个折返点之间的轨迹点,与所述每两个折返点中的后一个折返点作为一个折返数组。

在该实施例中,可以将目标数组中每两个折返点之间的轨迹点,与每两个折返点中的后一个折返点作为一个折返数组。从而可以根据各个确定的折返点将目标数组进行分段,得到多个折返数组,进而可以分别对每个折返数组中包括的轨迹点进行简化,提升对车辆轨迹数据进行简化的效率和简化效果。

在一种可选的实施例中,所述对每个折返数组分别进行简化,得到每个简化后的折返数组,包括:

针对每个折返数组,分别执行以下操作:

保留所述折返数组中第一个轨迹点和最后一个轨迹点,并将所述第一个轨迹点和所述最后一个轨迹点进行连线,得到线段;

确定所述第一个轨迹点和所述最后一个轨迹点之间距离所述线段最远的轨迹点,并确定所述轨迹点与所述线段之间的距离,若所述距离大于第一距离阈值,则保留所述轨迹点,否则剔除所述第一个轨迹点和所述最后一个轨迹点之间的所有轨迹点;

若所述轨迹点被保留,则将所述轨迹点分别与所述第一个轨迹点和所述最后一个轨迹点进行连线,得到对应的线段,并重复执行确定距离所述线段最远的轨迹点,并确定所述轨迹点与所述线段之间的距离,若所述距离大于所述第一距离阈值,则保留所述轨迹点,否则剔除进行连线的轨迹点之间的所有轨迹点的过程,直至进行连线的两个轨迹点之间不包含有轨迹点为止;

根据所有保留的轨迹点和所述折返数组中第一个轨迹点,以及最后一个轨迹点,得到简化后的折返数组。

在该实施例中,对于每个折返数组,可以将折返数组中的第一个轨迹点和最后一个轨迹点保留下来,并将第一个轨迹点和最后一个轨迹点进行连线,得到线段,在确定出第一个轨迹点和最后一个轨迹点之间距离线段最远的轨迹点后,同时确定出该轨迹点与线段之间的距离,若该距离大于第一距离阈值,则保留该轨迹点,否则可以将第一个轨迹点和最后一个轨迹点之间的所有轨迹点剔除掉。并且,若该轨迹点被保留,则可以将该轨迹点分别与第一个轨迹点和最后一个轨迹点进行连线,得到对应的线段,并重复执行确定距离线段最远的轨迹点,并确定轨迹点与线段之间的距离,若距离大于第一距离阈值,则保留轨迹点,否则剔除进行连线的轨迹点之间的所有轨迹点的过程,直至进行连线的两个轨迹点之间不包含有轨迹点为止。最后根据所有保留的轨迹点和折返数组中第一个轨迹点,以及最后一个轨迹点,可以得到简化后的折返数组。从而可以对分别对每个折返数组中包含的轨迹点进行简化,进一步简化车辆轨迹数据中长距离小角度变化的中间点,提升简化效果。

在一种可选的实施例中,所述方法还包括:

若所述第一距离不小于所述设定阈值,且所述目标数组中只有一个轨迹点,以及所述目标数组中不包括所述目标轨迹点的前一个轨迹点,则将所述目标轨迹点的前一个轨迹点加入至所述目标数组;或

若所述第一距离不小于所述设定阈值,且所述目标数组中只有一个轨迹点,以及所述目标数组中包括所述目标轨迹点的前一个轨迹点,则将所述目标轨迹点加入至所述目标数组。

在该实施例中,当第一距离不小于设定阈值,且目标数组中只有一个轨迹点,以及目标数组中不包括目标轨迹点的前一个轨迹点时,可以将目标轨迹点的前一个轨迹点加入至目标数组,当第一距离不小于设定阈值,且目标数组中只有一个轨迹点,以及目标数组中包括目标轨迹点的前一个轨迹点时,可以将目标轨迹点加入至目标数组。由于可以根据遍历到的目标轨迹点与目标数组中最后一个轨迹点之间的距离是否大于设定阈值,来确定是否将目标轨迹点剔除,并且,当该距离小于设定阈值时,剔除目标轨迹点,当该距离大于设定阈值时,可以将目标轨迹点或目标轨迹点的前一个轨迹点加入至目标数组,从而可以提取出车辆轨迹数据中的关键点,提升对车辆轨迹数据进行简化的简化效果。

第二方面,本申请实施例还提供了一种车辆轨迹简化装置,包括:

轨迹数据获取单元,用于获取车辆轨迹数据;所述车辆轨迹数据中包括多个轨迹点;

轨迹数据简化单元,用于按照轨迹点在所述车辆轨迹数据中的顺序,遍历所述车辆轨迹数据中除第一个轨迹点以外的每个轨迹点,在遍历结束后将目标数组中的轨迹点作为简化后的车辆轨迹数据;其中,每遍历到一个轨迹点则执行以下操作:确定遍历到的目标轨迹点与所述目标数组中最后一个轨迹点之间的第一距离;所述目标数组中的第一个轨迹点为所述车辆轨迹数据中的第一个轨迹点;若所述第一距离不小于设定阈值,则确定所述目标轨迹点与设定直线之间的第二距离;所述设定直线为所述目标数组中最后一个轨迹点与所述目标数组中倒数第二个轨迹点之间的连线;若所述第二距离大于所述设定阈值,且所述目标数组中不包括所述目标轨迹点的前一个轨迹点,则将所述目标轨迹点的前一个轨迹点加入至所述目标数组;或者,若所述第一距离不小于所述设定阈值,则分别确定所述目标轨迹点与所述目标数组中最后一个轨迹点之间的第三距离,以及所述目标轨迹点的前一个轨迹点与所述目标数组中最后一个轨迹点之间的第四距离;若所述第三距离小于所述第四距离,且所述目标数组中不包括所述目标轨迹点的前一个轨迹点,则将所述目标轨迹点的前一个轨迹点加入至所述目标数组。

在一种可选的实施例中,所述轨迹数据简化单元,还用于:

若所述第二距离大于所述设定阈值,且所述目标数组中包括所述目标轨迹点的前一个轨迹点,则将所述目标轨迹点加入至所述目标数组;或者,

若所述第三距离小于所述第四距离,且所述目标数组中包括所述目标轨迹点的前一个轨迹点,则将所述目标轨迹点加入至所述目标数组。

在一种可选的实施例中,所述轨迹数据简化单元,还用于:

若所述第三距离小于所述第四距离,则标记新加入至所述目标数组的轨迹点为折返点;

在遍历完所有轨迹点后,根据各个折返点,将所述目标数组分成多个折返数组;每个折返数组中包括多个轨迹点;

对每个折返数组分别进行简化,得到每个简化后的折返数组,并将每个简化后的折返数组进行合并,得到简化后的目标数组。

在一种可选的实施例中,所述轨迹数据简化单元,还用于:

将所述目标数组中每两个折返点之间的轨迹点,与所述每两个折返点中的后一个折返点作为一个折返数组。

在一种可选的实施例中,所述轨迹数据简化单元,还用于:

针对每个折返数组,分别执行以下操作:

保留所述折返数组中第一个轨迹点和最后一个轨迹点,并将所述第一个轨迹点和所述最后一个轨迹点进行连线,得到线段;

确定所述第一个轨迹点和所述最后一个轨迹点之间距离所述线段最远的轨迹点,并确定所述轨迹点与所述线段之间的距离,若所述距离大于第一距离阈值,则保留所述轨迹点,否则剔除所述第一个轨迹点和所述最后一个轨迹点之间的所有轨迹点;

若所述轨迹点被保留,则将所述轨迹点分别与所述第一个轨迹点和所述最后一个轨迹点进行连线,得到对应的线段,并重复执行确定距离所述线段最远的轨迹点,并确定所述轨迹点与所述线段之间的距离,若所述距离大于所述第一距离阈值,则保留所述轨迹点,否则剔除进行连线的轨迹点之间的所有轨迹点的过程,直至进行连线的两个轨迹点之间不包含有轨迹点为止;

根据所有保留的轨迹点和所述折返数组中第一个轨迹点,以及最后一个轨迹点,得到简化后的折返数组。

在一种可选的实施例中,所述轨迹数据简化单元,还用于:

若所述第一距离不小于所述设定阈值,且所述目标数组中只有一个轨迹点,以及所述目标数组中不包括所述目标轨迹点的前一个轨迹点,则将所述目标轨迹点的前一个轨迹点加入至所述目标数组;或

若所述第一距离不小于所述设定阈值,且所述目标数组中只有一个轨迹点,以及所述目标数组中包括所述目标轨迹点的前一个轨迹点,则将所述目标轨迹点加入至所述目标数组。

第三方面,本申请实施例还提供了一种电子设备,包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的计算机程序,当所述计算机程序被所述处理器执行时,使得所述处理器实现上述第一方面的车辆轨迹简化方法。

第四方面,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时,实现上述第一方面的车辆轨迹简化方法。

第二方面、第三方面或第四方面中任意一种实现方式所带来的技术效果可参见第一方面的实现方式所带来的技术效果,此处不再赘述。

附图说明

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

图1a为本申请实施例提供的一种车辆轨迹简化方法的流程示意图;

图1b为本申请实施例提供的另一种车辆轨迹简化方法的流程示意图;

图2为本申请实施例提供的另一种车辆轨迹简化方法的流程示意图;

图3为本申请实施例提供的一种车辆轨迹数据的示意图;

图4为本申请实施例提供的另一种车辆轨迹数据的示意图;

图5为本申请实施例提供的一种折返数组的示意图;

图6为本申请实施例提供的一种简化后的折返数组的示意图;

图7为本申请实施例提供的一种简化后的轨迹点数对比的折线图;

图8为本申请实施例提供的一种简化车辆轨迹数据的耗时对比的折线图;

图9a为本申请实施例提供的一种简化车辆轨迹的示意图;

图9b为本申请实施例提供的另一种简化车辆轨迹的示意图;

图9c为本申请实施例提供的另一种简化车辆轨迹的示意图;

图10为本申请实施例提供的一种车辆轨迹简化装置的结构示意图;

图11为本申请实施例提供的一种电子设备的结构示意图。

具体实施方式

为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。

需要说明的是,本申请的文件中涉及的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

下面结合附图及具体实施例对本申请作进一步详细的说明。

下文中所用的词语“示例性”的意思为“用作例子、实施例或说明性”。作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。在本申请实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。

本申请实施例提供了一种车辆轨迹简化方法,如图1a所示,包括如下步骤:

步骤S101,获取车辆轨迹数据。

其中,该车辆轨迹数据中可以包括多个轨迹点。

在该实施例中,获取到的车辆轨迹数据可以是车辆本身主动发出的定位轨迹信息,也可以是基于交通、天网、智慧城市等监控网络识别采集到的轨迹数据。

步骤S102,按照轨迹点在车辆轨迹数据中的顺序,遍历车辆轨迹数据中除第一个轨迹点以外的每个轨迹点,在遍历结束后将目标数组中的轨迹点作为简化后的车辆轨迹数据。

在步骤S102中,可以按照轨迹点在车辆轨迹数据中的顺序,遍历车辆轨迹数据中除第一个轨迹点以外的每个轨迹点,并在遍历结束后,将目标数组中的轨迹点作为简化后的车辆轨迹数据。

其中,每遍历到一个轨迹点,可以按照图1b示出的过程执行操作。如图1b所示,可以包括如下步骤:

步骤S1021,确定遍历到的目标轨迹点与目标数组中最后一个轨迹点之间的第一距离。

其中,目标数组中的第一个轨迹点为车辆轨迹数据中的第一个轨迹点。

并且,可以确定第一距离是否小于设定阈值,在第一距离不小于设定阈值时,可以判断目标轨迹点是否满足下列两个条件之一:

步骤S10221,若第一距离不小于设定阈值,则确定目标轨迹点与设定直线之间的第二距离。

条件一:当第一距离不小于设定阈值时,确定目标轨迹点与设定直线之间的第二距离。

其中,设定直线为目标数组中最后一个轨迹点与目标数组中倒数第二个轨迹点之间的连线。

步骤S10231,若第二距离大于设定阈值,且目标数组中不包括目标轨迹点的前一个轨迹点,则将目标轨迹点的前一个轨迹点加入至目标数组。

步骤S10222,若第一距离不小于设定阈值,则分别确定目标轨迹点与目标数组中最后一个轨迹点之间的第三距离,以及目标轨迹点的前一个轨迹点与目标数组中最后一个轨迹点之间的第四距离。

条件二:当第一距离不小于设定阈值时,可以分别确定目标轨迹点与目标数组中最后一个轨迹点之间的第三距离,以及目标轨迹点的前一个轨迹点与目标数组中最后一个轨迹点之间的第四距离。

步骤S10232,若第三距离小于第四距离,且目标数组中不包括目标轨迹点的前一个轨迹点,则将目标轨迹点的前一个轨迹点加入至目标数组。

在一种实施例中,当目标轨迹点与设定直线之间的第二距离大于设定阈值,且目标数组中包括目标轨迹点的前一个轨迹点时,可以将目标轨迹点加入至目标数组;当目标轨迹点与目标数组中最后一个轨迹点之间的第三距离小于目标轨迹点的前一个轨迹点与目标数组中最后一个轨迹点之间的第四距离,且目标数组中包括目标轨迹点的前一个轨迹点时,可以将目标轨迹点加入至目标数组。

并且,在确定目标轨迹点与目标数组中最后一个轨迹点之间的第三距离小于目标轨迹点的前一个轨迹点与目标数组中最后一个轨迹点之间的第四距离时,可以标记新加入至目标数组的轨迹点为折返点。在遍历完所有轨迹点后,可以根据各个折返点,将目标数组分成多个折返数组,即可以将目标数组中每两个折返点之间的轨迹点,与每两个折返点中的后一个折返点作为一个折返数组。其中,每个折返数组中包括多个轨迹点。

在得到多个折返数组后,可以对每个折返数组分别进行简化,得到每个简化后的折返数组,并将每个简化后的折返数组进行合并,得到简化后的目标数组。

具体地,针对每个折返数组,可以分别执行以下操作:

保留折返数组中第一个轨迹点和最后一个轨迹点,并将第一个轨迹点和最后一个轨迹点进行连线,得到线段;

确定第一个轨迹点和最后一个轨迹点之间距离线段最远的轨迹点,并确定轨迹点与线段之间的距离,若距离大于第一距离阈值,则保留轨迹点,否则剔除第一个轨迹点和最后一个轨迹点之间的所有轨迹点;

若轨迹点被保留,则将轨迹点分别与第一个轨迹点和最后一个轨迹点进行连线,得到对应的线段,并重复执行确定距离线段最远的轨迹点,并确定轨迹点与线段之间的距离,若距离大于第一距离阈值,则保留轨迹点,否则剔除进行连线的轨迹点之间的所有轨迹点的过程,直至进行连线的两个轨迹点之间不包含有轨迹点为止;

根据所有保留的轨迹点和折返数组中第一个轨迹点,以及最后一个轨迹点,得到简化后的折返数组。

本申请中的车辆轨迹简化方法可以获取车载终端上传和监控设备采集的车辆轨迹数据,根据轨迹点间距离、方向角以及其他关键特征提取出车辆轨迹数据中的关键点和特征点,进行数据简化,以将数据中的车辆有掉头或较短路段的折返点以及拐弯点保留,将较长路段直线行驶的轨迹中存在的大量的中间轨迹数据剔除。从而可以将海量的车辆轨迹数据中的轨迹点数进行简化,保留轨迹数据中的折返关键点,过滤掉无意义的轨迹点,保证车辆轨迹的基本轮廓,使得简化后的车辆轨迹与原始的车辆轨迹基本吻合,且该吻合度可以通过设置的距离阈值来控制精细程度,降低后续应用分析的数据量,提高后台大数据的分析能力,同时提高前端可视化的展示效率。

在一些实施例中,本申请实施例中的车辆轨迹简化方法还可以按照图2示出的过程进行实现。

如图2所示,可以包括如下步骤:

步骤S201,获取车辆轨迹数据。

该车辆轨迹数据可以是通过车辆中安装的定位装置获取到的定位轨迹信息,也可以是通过监控设备采集到的车辆轨迹数据。并且,车辆轨迹数据中可以包括有多个轨迹点。

步骤S202,将车辆轨迹数据中的第一个轨迹点加入至目标数组,并作为目标数组中的第一个轨迹点。

其中,目标数组中存储的轨迹点为简化后的车辆轨迹数据。并且,可以将车辆轨迹数据中的第一个轨迹点直接作为目标数组中的第一个轨迹点存储。

步骤S203,按照轨迹点在轨迹数据中的顺序,遍历车辆轨迹数据中除第一个轨迹点以外的每个轨迹点,对于遍历到的每个目标轨迹点,确定目标轨迹点与目标数组中最后一个轨迹点之间的第一距离。

步骤S204,确定第一距离是否大于设定阈值;如果否,执行步骤S205;如果是,执行步骤S206。

步骤S205,遍历下一个目标轨迹点。

步骤S206,确定目标数组中是否只有一个轨迹点;如果否,执行步骤S207;如果是,执行步骤S209。

步骤S207,分别确定目标轨迹点与目标数组中最后一个轨迹点和目标数组中倒数第二个轨迹点进行连线得到的设定直线之间的第二距离、目标轨迹点与目标数组中最后一个轨迹点之间的第三距离,以及目标轨迹点的前一个轨迹点与目标数组中最后一个轨迹点之间的第四距离。

在确定目标轨迹点与目标数组中最后一个轨迹点之间的第一距离大于设定阈值,且目标数组中不只包括有一个轨迹点时,可以分别确定出目标轨迹点与目标数组中最后一个轨迹点和目标数组中倒数第二个轨迹点进行连线得到的设定直线之间的第二距离、目标轨迹点与目标数组中最后一个轨迹点之间的第三距离,以及目标轨迹点的前一个轨迹点与目标数组中最后一个轨迹点之间的第四距离。

其中,图3为确定目标轨迹点与目标数组中最后一个轨迹点和目标数组中倒数第二个轨迹点进行连线得到的设定直线之间的第二距离的示意图。如图3所示,目标轨迹点为轨迹点Ot,最后一个轨迹点为轨迹点T1,倒数第二个轨迹点为轨迹点T2,最后一个轨迹点和倒数第二个轨迹点进行连线得到的设定直线为将轨迹点T1与轨迹点T2进行连线得到的直线L,则轨迹点Ot与直线L之间的距离d2即为目标轨迹点与目标数组中最后一个轨迹点和目标数组中倒数第二个轨迹点进行连线得到的设定直线之间的第二距离。

图4为分别确定目标轨迹点与目标数组中最后一个轨迹点之间的第三距离,以及目标轨迹点的前一个轨迹点与目标数组中最后一个轨迹点之间的第四距离的示意图。如图4所示,目标轨迹为轨迹点Ot,目标轨迹点的前一个轨迹点为轨迹点Ot-1,最后一个轨迹点为轨迹点T1,则轨迹点Ot与轨迹点T1之间的距离d3即为目标轨迹点与目标数组中最后一个轨迹点之间的第三距离,轨迹点Ot-1与轨迹点T1之间的距离d4即为目标轨迹点的前一个轨迹点与目标数组中最后一个轨迹点之间的第四距离。

步骤S208,确定第二距离是否大于设定阈值或第三距离是否小于第四距离;如果否,执行步骤S205;如果是,执行步骤S209。

步骤S209,确定目标数组中是否包括目标轨迹点的前一个轨迹点;如果否,执行步骤S210;如果是,执行步骤S211。

步骤S210,将目标轨迹点的前一个轨迹点加入至目标数组。

步骤S211,将目标轨迹点加入至目标数组。

在确定第二距离不大于设定阈值时,可以继续遍历车辆轨迹数据中的下一个目标轨迹点,以及在确定第三距离不小于第四距离时,也可以继续遍历车辆轨迹数据中的下一个目标轨迹点。

在确定第二距离大于设定阈值或第三距离小于第四距离,且目标数组中不包括目标轨迹点的前一个轨迹点时,可以将目标轨迹点的前一个轨迹点加入至目标数组,并且将目标轨迹点的前一个轨迹点加入至目标数组的末尾。

在确定第二距离大于设定阈值或第三距离小于第四距离,且目标数组中包括目标轨迹点的前一个轨迹点时,可以将目标轨迹点加入至目标数组,并且将目标轨迹点加入至目标数组的末尾。

并且,如果确定目标数组中只有一个轨迹点时,可以判断目标数组中包括的轨迹点是否为目标轨迹点的前一个轨迹点,如果该轨迹点是目标轨迹点的前一个轨迹点,则可以将目标轨迹点加入至目标数组,如果该轨迹点不是目标轨迹点的前一个轨迹点,则可以将目标轨迹点的前一个轨迹点加入至目标数组。

步骤S212,若第三距离小于第四距离,则标记新加入至目标数组的轨迹点为折返点。

步骤S213,在遍历完所有轨迹点后,根据各个折返点,将目标数组分成多个折返数组。

在遍历完所有轨迹点后,可以将目标数组中每两个折返点之间的轨迹点,与每两个折返点中的后一个折返点作为一个折返数组。

步骤S214,对每个折返数组分别进行简化,得到每个简化后的折返数组。

在将目标数组分成多个折返数组后,可以采用拉默-道格拉斯-普克(Ramer–Douglas–Peucker)算法对每个折返数组分别进行简化,得到每个简化后的折返数组。

具体地,针对每个折返数组,分别执行以下操作:

保留折返数组中第一个轨迹点和最后一个轨迹点,并将第一个轨迹点和最后一个轨迹点进行连线,得到线段;

确定第一个轨迹点和最后一个轨迹点之间距离线段最远的轨迹点,并确定轨迹点与线段之间的距离,若距离大于第一距离阈值,则保留轨迹点,否则剔除第一个轨迹点和最后一个轨迹点之间的所有轨迹点;

若轨迹点被保留,则将轨迹点分别与第一个轨迹点和最后一个轨迹点进行连线,得到对应的线段,并重复执行确定距离线段最远的轨迹点,并确定轨迹点与线段之间的距离,若距离大于第一距离阈值,则保留轨迹点,否则剔除进行连线的轨迹点之间的所有轨迹点的过程,直至进行连线的两个轨迹点之间不包含有轨迹点为止;

根据所有保留的轨迹点和折返数组中第一个轨迹点,以及最后一个轨迹点,得到简化后的折返数组。

例如,图5为一个折返数组中所包含的轨迹点,如图5所示,该折返数组中包含有P1、P2、P3、P4、P5、P6、P7和P8共8个轨迹点,则可以对该折返数组作以下操作:

首先,轨迹点P1和轨迹点P8是保留轨迹点,且将轨迹点P1和轨迹点P8进行连线得到线段L1,在轨迹点P1和轨迹点P8之间的剩余轨迹点,即轨迹点P2、P3、P4、P5、P6和P7中找到距离线段L1最远的轨迹点,可以找到该轨迹点为P3,并确定轨迹点P3与线段L1之间的距离d1,假设d1大于第一距离阈值,则轨迹点P3也是保留轨迹点;

然后,将轨迹点P1和轨迹点P3进行连线得到线段L2,将轨迹点P3和轨迹点P8进行连线得到线段L3,在轨迹点P1和轨迹点P3之间的剩余轨迹点中找到距离线段L2最远的轨迹点,可以找到该轨迹点为轨迹点P2,并确定轨迹点P2与线段L2之间的距离d2,假设d2小于第一距离阈值,则可以剔除轨迹点P2;在轨迹点P3和轨迹点P8之间的剩余轨迹点,即轨迹点P4、P5、P6和P7中找到距离线段L3最远的轨迹点,可以找到该轨迹点为轨迹点P5,并确定轨迹点P5与线段L3之间的距离d3,假设d3大于第一距离阈值,则轨迹点P5也是保留轨迹点;

继续,可以将轨迹点P3和轨迹点P5进行连线得到线段L4,将轨迹点P5和轨迹点P8进行连线得到线段L5,在轨迹点P3和轨迹点P5之间的剩余轨迹点中找到距离线段L4最远的轨迹点,可以找到该轨迹点为轨迹点P4,并确定轨迹点P4与线段L4之间的距离d4,假设d4小于第一距离阈值,则可以剔除轨迹点P4;在轨迹点P5和轨迹点P8之间的剩余轨迹点,即轨迹点P6和P7中找到距离线段L5最远的轨迹点,可以找到该轨迹点为轨迹点P7,并确定轨迹点P7与线段L5之间的距离d5,假设d5大于第一距离阈值,则轨迹点P7也是保留轨迹点;

再继续,可以将轨迹点P5和轨迹点P7进行连线得到线段L6,在轨迹点P5和轨迹点P7之间的剩余轨迹点中找到距离线段L6最远的轨迹点,可以找到该轨迹点为轨迹点P6,并确定轨迹点P6与线段L6之间的距离d6,假设d6小于第一距离阈值,则可以剔除轨迹点P6;

最后,折返数组中保留的有轨迹点P1、P3、P5、P7和P8,则得到的简化后的折返数组可以如图6所示。

步骤S215,将每个简化后的折返数组进行合并,得到简化后的目标数组。

在得到多个简化后的折返数组后,可以将简化后的折返数组按顺序进行合并,得到简化后的目标数组。该简化后的目标数组为对车辆轨迹数据进行简化的最终输出结果。

在一种实施例中,可以基于本申请提出的车辆轨迹简化方法与标准的Ramer–Douglas–Peucker算法对样本数据进行测试对比,该样本数据为选取的10份十万点以上的车辆轨迹数据。当设置的距离阈值相同时,比较的结果可以如表1所示:

并且,同时可以得到如图7所示的简化点数对比的折线图,以及如图8所示的耗时对比的折线图。从表1和图7中可以看出,本申请提出的车辆轨迹简化方法与标准的Ramer–Douglas–Peucker算法在对相同的样本数据进行测试后,得到的简化点数相差不大。从表1和图8可以看出,本申请提出的车辆轨迹简化方法与标准的Ramer–Douglas–Peucker算法在对相同的样本数据进行测试后,耗时明显降低,且本方法相较于Ramer–Douglas–Peucker算法,耗时降低了28%,效率显著提升。

图9a、图9b和图9c为采用本方法和标准的Ramer–Douglas–Peucker算法分别得到的简化后的结果路径以及原始路径的截取效果图。其中,图9b为图9a中的圆圈部分的放大显示区域,图9c为图9c中的圆圈部分的放大显示区域。且在图9a、图9b和图9c中,实线为原始路径,短虚线为采用标准的Ramer–Douglas–Peucker算法得到的简化后的结果路径,长虚线为采用本方法得到的简化后的结果路径。从图9a、图9b和图9c中可以看出,本方法简化后的路径对原始路径的轮廓显示效果与标准的Ramer–Douglas–Peucker算法简化后的路径相当。

从测试对比结果可以看出,本方法与标准的Ramer–Douglas–Peucker算法相比,对车辆轨迹数据进行简化的简化效果相当,耗时却大大降低,因此,本方法的简化效果较好,简化效率显著提高,优势明显。

与图1a所示的车辆轨迹简化方法基于同一发明构思,本申请实施例中还提供了一种车辆轨迹简化装置。由于该装置是本申请车辆轨迹简化方法对应的装置,并且该装置解决问题的原理与该方法相似,因此该装置的实施可以参见上述方法的实施,重复之处不再赘述。

图10示出了本申请实施例提供的一种车辆轨迹简化装置的结构示意图,如图10所示,该车辆轨迹简化装置包括轨迹数据获取单元1001和轨迹数据简化单元1002。

其中,轨迹数据获取单元1001,用于获取车辆轨迹数据;车辆轨迹数据中包括多个轨迹点;

轨迹数据简化单元1002,用于按照轨迹点在车辆轨迹数据中的顺序,遍历车辆轨迹数据中除第一个轨迹点以外的每个轨迹点,在遍历结束后将目标数组中的轨迹点作为简化后的车辆轨迹数据;其中,每遍历到一个轨迹点则执行以下操作:确定遍历到的目标轨迹点与目标数组中最后一个轨迹点之间的第一距离;目标数组中的第一个轨迹点为车辆轨迹数据中的第一个轨迹点;若第一距离不小于设定阈值,则确定目标轨迹点与设定直线之间的第二距离;设定直线为目标数组中最后一个轨迹点与目标数组中倒数第二个轨迹点之间的连线;若第二距离大于设定阈值,且目标数组中不包括目标轨迹点的前一个轨迹点,则将目标轨迹点的前一个轨迹点加入至目标数组;或者,若第一距离不小于设定阈值,则分别确定目标轨迹点与目标数组中最后一个轨迹点之间的第三距离,以及目标轨迹点的前一个轨迹点与目标数组中最后一个轨迹点之间的第四距离;若第三距离小于第四距离,且目标数组中不包括目标轨迹点的前一个轨迹点,则将目标轨迹点的前一个轨迹点加入至目标数组。

在一种可选的实施例中,轨迹数据简化单元1002,还用于:

若第二距离大于设定阈值,且目标数组中包括目标轨迹点的前一个轨迹点,则将目标轨迹点加入至目标数组;或者,

若第三距离小于第四距离,且目标数组中包括目标轨迹点的前一个轨迹点,则将目标轨迹点加入至目标数组。

在一种可选的实施例中,轨迹数据简化单元1002,还用于:

若第三距离小于第四距离,则标记新加入至目标数组的轨迹点为折返点;

在遍历完所有轨迹点后,根据各个折返点,将目标数组分成多个折返数组;每个折返数组中包括多个轨迹点;

对每个折返数组分别进行简化,得到每个简化后的折返数组,并将每个简化后的折返数组进行合并,得到简化后的目标数组。

在一种可选的实施例中,轨迹数据简化单元1002,还用于:

将目标数组中每两个折返点之间的轨迹点,与每两个折返点中的后一个折返点作为一个折返数组。

在一种可选的实施例中,轨迹数据简化单元1002,还用于:

针对每个折返数组,分别执行以下操作:

保留折返数组中第一个轨迹点和最后一个轨迹点,并将第一个轨迹点和最后一个轨迹点进行连线,得到线段;

确定第一个轨迹点和最后一个轨迹点之间距离线段最远的轨迹点,并确定轨迹点与线段之间的距离,若距离大于第一距离阈值,则保留轨迹点,否则剔除第一个轨迹点和最后一个轨迹点之间的所有轨迹点;

若轨迹点被保留,则将轨迹点分别与第一个轨迹点和最后一个轨迹点进行连线,得到对应的线段,并重复执行确定距离线段最远的轨迹点,并确定轨迹点与线段之间的距离,若距离大于第一距离阈值,则保留轨迹点,否则剔除进行连线的轨迹点之间的所有轨迹点的过程,直至进行连线的两个轨迹点之间不包含有轨迹点为止;

根据所有保留的轨迹点和折返数组中第一个轨迹点,以及最后一个轨迹点,得到简化后的折返数组。

在一种可选的实施例中,轨迹数据简化单元1002,还用于:

若第一距离不小于设定阈值,且目标数组中只有一个轨迹点,以及目标数组中不包括目标轨迹点的前一个轨迹点,则将目标轨迹点的前一个轨迹点加入至目标数组;或

若第一距离不小于设定阈值,且目标数组中只有一个轨迹点,以及目标数组中包括目标轨迹点的前一个轨迹点,则将目标轨迹点加入至目标数组。

与上述方法实施例基于同一发明构思,本申请实施例中还提供了一种电子设备。该电子设备可以用于对车辆轨迹进行简化。在一种实施例中,该电子设备可以是服务器,也可以是终端设备或其他电子设备。在该实施例中,电子设备的结构可以如图11所示,包括存储器1101,通讯模块1103以及一个或多个处理器1102。

存储器1101,用于存储处理器1102执行的计算机程序。存储器1101可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统,以及运行即时通讯功能所需的程序等;存储数据区可存储各种即时通讯信息和操作指令集等。

存储器1101可以是易失性存储器(volatile memory),例如随机存取存储器(random-access memory,RAM);存储器1101也可以是非易失性存储器(non-volatilememory),例如只读存储器,快闪存储器(flash memory),硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD)、或者存储器1101是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器1101可以是上述存储器的组合。

处理器1102,可以包括一个或多个中央处理单元(central processing unit,CPU)或者为数字处理单元等等。处理器1102,用于调用存储器501中存储的计算机程序时实现上述车辆轨迹简化方法。

通讯模块1103用于与终端设备和其他服务器进行通信。

本申请实施例中不限定上述存储器1101、通讯模块1103和处理器1102之间的具体连接介质。本公开实施例在图11中以存储器1101和处理器1102之间通过总线1104连接,总线1104在图11中以粗线表示,其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。总线1104可以分为地址总线、数据总线、控制总线等。为便于表示,图11中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

根据本申请的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述实施例中的车辆轨迹简化方法。

程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。

以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。

相关技术
  • 一种车辆行驶风险预警方法、装置、存储介质及电子设备
  • 一种车辆预警方法、装置、电子设备及存储介质
  • 一种车位确定方法、装置、电子设备、车辆及存储介质
  • 一种车辆定位方法、装置、电子设备及存储介质
  • 无人机迁移轨迹生成方法、装置、电子设备和存储介质
  • 一种预测车辆轨迹的方法、装置、电子设备及存储介质
  • 一种车辆轨迹的处理方法、装置、电子设备及存储介质
技术分类

06120115924703