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

转弯轨迹识别方法及相应的设备、存储介质和产品与流程

2022-02-20 14:38:33 来源:中国专利 TAG:


1.本发明属于轨迹数据处理领域,具体为转弯轨迹识别及相应的设备、存储介质和产品。


背景技术:

2.在路口识别领域中,识别并且得到转弯部分的轨迹至关重要。难过图像识别等方式对轨迹进行处理不能直接联系位置数据,存在多种不足。因此,需要一种基于位置数据识别转弯轨迹的方法。


技术实现要素:

3.为了基于位置数据识别转弯轨迹,本发明提供了一种转弯轨迹识别方法及计算机可读存储介质、计算机程序产品。
4.本发明所采用的技术方案如下:
5.一方面,提供了一种转弯轨迹识别方法,包括以下步骤:
6.定义滑动窗口的大小为n,定义窗口滑动的条件参数m,定义第一角度阈值;
7.获得轨迹数据,其中,每项轨迹数据包括角度数据;
8.a、逐一比较所述轨迹数据中相邻的两条数据的角度,找到角度差超过所述第一角度阈值的两条相邻的数据,得到作为转弯轨迹的第一端点;
9.b、若第一端点在当前窗口中的位置超过所述条件参数m,则将窗口向后滑动一定步长,或者将当前窗口的大小临时向后扩大;
10.c、若第一端点在当前窗口中的位置未超过所述条件参数m,则找到当前窗口中角度差超过所述第一角度差阈值的最后两个相邻的数据,得到作为转弯轨迹的第二端点;
11.d、所述第一端点、第二端点及两者之间数据为描述一段转弯轨迹的数据集。
12.再一方面,提供了一种计算机程序产品,包括计算机程序/指令,该计算机程序/指令被处理器执行时实现所述转弯轨迹识别方法的步骤。
13.又一方面,提供了一种电子设备,包括存储器、处理器及存储在存储器上的计算机程序,其特征在于,所述处理器执行所述计算机程序以实现所述转弯轨迹识别方法的步骤。
14.与现有技术相比,本发明的有益效果主要包括:通过滑动窗口算法分析车辆的轨迹数据获得转弯轨迹,可将转弯轨迹直接用于轨迹的后续处理和计算,且提高了效率,相对于图像识别等算法占用计算资源更少。除上述有益效果外,本发明的其他有益效果还可参见实施例部分的具体内容。
附图说明
15.图1为实施例的路口识别方法的流程框图。
16.图2为实施例中采用滑动移窗算法的对一个窗口分析集进行分析以获得换向数据集的框图。
17.图3为实施例中滑动移窗算法的滑动步骤示意图。
18.图4为实施例中一段转弯轨迹的示意图。
19.图5为实施例的路口识别更新方法的流程框图。
20.图6为实施例中关于路口中心位置lxoi的判断和处理步骤的流程示意图。
21.图7为实施例中关于路口中心位置rxoi的判断和处理步骤的流程示意图。
22.图8为实施例中一十字路口及该路口处的两条行驶轨迹的示意图。
23.图9为实施例中一丁字路口及该路口处的两条行驶轨迹的示意图。
24.图10为实施例中一不规则路口及该路口处的两条行驶轨迹的示意图。
25.图11为实施例的电子设备的装置结构示意图。
具体实施方式
26.以下结合附图和具体实施例对本发明进一步说明。
27.本发明中,各步骤的序号、编号是便于阅读的标记,这些标记不应当理解为对时序或者逻辑序列约束,各步骤之间的先后顺序可在能够实现相应功能或者目的的情况下适当调整。
28.实施例1
29.参考图1所示,本实施例的路口识别方法,包括以下步骤:
30.s10、获取数据:获得目标区域内的车辆的轨迹数据。
31.所述目标区域是待识别其中的路口信息的区域,可以是如厂区等相对独立的区域,也可以是市政公共区域,在本发明中不作限制。
32.所述轨迹数据是包括多种类型的数据集合,这些数据是由车辆在所述目标区域内行驶时产生的。轨迹数据具体包括车辆的位置数据、车辆的速度及车辆的行驶方向,可采用例如gps、北斗等通过卫星定位的车载设备获得。
33.在本发明中,述及对行驶方向的处理和分析时,可将行驶方向理解为与之对应的数据。此外,行驶方向也可以理解为车辆的速度方向。
34.作为一种优选的实施方式,通常是以一定的间隔周期采集数据,例如每10s采集一条数据。如此,对于一车辆的行驶轨迹,可基于时轴构建一含时的数据集予以描述。在本实施例中,作为一种示例,所述描述行驶轨迹的数据集表达如下:
35.{{tim[i],loc[i],dir[i],vol[i]}|i=1,2,3,

},其中:
[0036]
tim表示时标,loc表示车辆的位置,dir表示车辆的行驶方向,vol表示车辆的速度;
[0037]
{tim[i],loc[i],dir[i],vol[i]}表示一条在tim[i]时的数据。
[0038]
s20、分析所述轨迹数据。
[0039]
本发明中,路口识别所主要处理的数据为位置数据及行驶方向。定义速度上限阈值,例如60码。作为一种优选地方式,所述速度数据主要作为数据有效性的特征量,速度超过所述上限阈值时的位置数据及行驶方向均视为无效数据,进而将所述轨迹数据中无效数据剔除。
[0040]
对于一条行驶轨迹而言,可能存在多个转变换向,因此,首先需要找出该条行驶轨迹中的全部换向数据集,其中,换向数据集是描述车辆在转向过程的起始至结束的数据。
[0041]
在本实施例中,作为一种方式,采用滑动移窗算法得出换向数据集的步骤具体如下:
[0042]
参考图2所示,定义滑动窗口的大小为n,在完成查找出当前换向数据集前,窗口滑动的步长最小值为m 1,显然,n、m均为自然数。以上述10s为采集周期,则n的取值较佳地为30-40,此时该窗口可覆盖一个路口转弯的轨迹,本实施例中优选n=35。根据采集周期等其他信息的不同,可以适当的对n、m进行调整。其中,兼顾效率和准确度时,较佳地,m=5。
[0043]
s211、在所述数据集{{tim[i],loc[i],dir[i],vol[i]}|i=1,2,3,

}中,选择tim[i]-tim[i 35]所对应的35条数据作为窗口分析集,参考表1。所述dir[i]用角度表示。
[0044]
表1窗口分析集
[0045]
时间标签角度/
°
(以正北方向为0
°
)角度差/
°
(tim[i k 1]-tim[i k])tim[i]92/...
……
tim[i 3]85/tim[i 4]80-5tim[i 5]69-11tim[i 6]55-14
………
tim[i 30]25/tim[i 31]13-12tim[i 32]5-8tim[i 33]0-5tim[i 34]00
[0046]
本步骤中:初始时,i的值通常为1;角度差(tim[i k 1]-tim[i k])表示在时轴上相邻的两条数据的角度差。
[0047]
此外,本发明中,在针对数据进行描述时,时间标签tim[i]视为主键,可理解为指代其对应的1条数据,对应参考表1中的一行数据。
[0048]
定义第一角度差阈值,用于判断轨迹中发生的转向属于经过路口转向或者属于其他情形的小角度转向。在本实施例中,第一角度差阈值设定为10
°

[0049]
s212、在时轴上,逐一判断相邻的两条数据tim[i]与tim[i 1]的角度差是否超过所述第一角度阈值,当找到角度差超过所述第一角度阈值的两条相邻的数据时,视为找到车辆转向的起始点。
[0050]
参考表1的数据,tim[i]-tim[i 3]时,轨迹的角度变化较小,此时不能判定是否为一般意义上的转向,可能的情况包括但不限于换道、或者简单的调整车辆位置等。tim[i 4]-tim[i 5]时,轨迹的角度变化为11
°
,超过所述第一角度差阈值,具体可将tim[i 4]作为起始点st1。
[0051]
容易理解的是,上述步骤中,选取了tim[i]作为起始点,但是,本发明针对角度差超过所述第一角度阈值的tim[i]与tim[i 1],选取tim[i]作为起始点,或者选取tim[i 1]作为起始点不作限制。
[0052]
若分析至tim[i 25]对应的数据为起始点,则(i 25)-(i)=25》m,当前的窗口分析
集未覆盖一个完整的路口转弯轨迹,此时,从tim[i 25]起选取tim[i 25]-tim[i 59]对应的数据,并更新窗口分析集,也即,在行驶轨迹的数据集中,窗口分析集向沿时轴滑动的步长为25。
[0053]
参考图3所示,若分析至tim[i k]所对应的数据为起始点,则(i k)-(i)=k》m,窗口分析集向沿时轴滑动的步长为k。例如,行驶轨迹的数据集中若包括200条数据,前5条数据tim[1]-tim[5]均未找到起始点,图3中的j的值取0,在tim[8]找到起始点st,则从tim[8]起重新选取tim[8]-tim[42]所对应的数据作为窗口分析集。
[0054]
应理解,窗口滑动的步长是不确定的,所述参数m是为了确证当前窗口内的数据有效覆盖,以避免例如在当前窗口内的第32、33条数据找到时,当前窗口内的剩余数据仅仅有第34、35条,不能覆盖一段完整的转弯轨迹。从窗口内的第1条数据起,超过m条数据找到起始点就滑动一次窗口,且步长为从该第1条数据起至起始点之间的数据量,保证对轨迹进行连续分析,同时保证窗口内找到起始点时,该起始点位于窗口内的前m项数据,起始点后,有n-m条数据,足以覆盖一段完整的转弯轨迹。
[0055]
或者,也可以获得所述起始点与当前窗口中第1项数据的距离为n1,将当前窗口的大小临时向后扩大n1。例如图3中的j的值取0,在tim[8]找到起始点st。起始点st与当前窗口中第1项数据的距离n1为8,应理解,此处所指距离是第1项数据至起始点st的数据数量,而非实际的长度距离。如此,窗口内起始点st后原有27项数据,将当前窗口的大小临时向后扩大8项,使得起始点st后仍然有35项数据,足以覆盖一段完整的转弯轨迹。
[0056]
如上所述,自tim[i]起,5条数据内找到了起始点st1后;或者,超过5条数据找到了起始点st1,滑动一定步长,更新窗口分析集后;执行步骤s213。
[0057]
s213、在当前的窗口分析集中,以与步骤s212相似逐一比较,查找最后一对轨迹的角度变化超过所述第一角度差阈值的数据,视为找到转弯的终止点。
[0058]
参考表1的数据,可从前往后依次遍历,再找到超过所述第一角度差阈值的最后一个角度差为12
°
,对应为tim[i 30]、tim[i 31]的两条数据。或者,也可以从最后一条数据tim[i 34]向前查找,第一个超过所述第一角度差阈值的角度差所对应的tim[i 30]、tim[i 31]两条数据。
[0059]
与所述起始点st1的选取相同,本发明不对具体tim[i k]、tim[i k 1]的两条数据作限定,其中,k为正整数。本实施例中,优选tim[i k 1],即上述tim[i 31]为终止点en1。
[0060]
通过步骤s212、s213,找到了轨迹上的一处转弯处的起始点st1和终止点en1,st1

en1及两者之间的数据为描述一个转弯轨迹的换向数据集。本发明中,起始点st和终止点en是对应转弯轨迹的两个端点,并不限定为必须先找到起始点,再找到终止点。
[0061]
若所述轨迹上还有数据未经分析,则可能还存在其他的转弯。此时,进一步地,针对所述得到换向数据集的窗口分析集,从该窗口分析集的后一条数据起,相当于步长为窗口大小,则从tim[i 35]向后选取tim[i 35]-tim[i 69]作为新的窗口分析集,继续分析,重复上述步骤s211、s212、s213,对应的,第二个换向数据集包括起始点st2和终止点en2及两者之间的数据,第三个换向数据集包括起始点st3和终止点en3,以此类推,直至完成对所述轨迹的分析并找出所有转弯处的换向数据集。
[0062]
上述步骤中,窗口滑动操作的一个条件是当前找到起始点所对应的数据相对于当前窗口分析集中第1条数据的位置是否超过所述参数m,另一个条件是完成当前窗口分析集
的分析处理并且找到了转弯轨迹对应的换向数据集,两个条件任意一个满足则滑动窗口。
[0063]
此外,也可以通过聚类算法、回归类算法或者svm(支持向量机)等方式对一条轨迹进行分析,区分并识别出轨迹中的直行轨迹与转弯轨迹,这些算法或者方式均为现有技术,此处不再赘述。识别出转弯轨迹后,即可找到转向的起始点和终止点,以进行后续分析处理。
[0064]
s220、判断换向数据集的类型,包括左转或者右转。设:正北方向为0
°
,且逆时针方向为负方向,顺时针方向为正方向。比较每个换向集的起始点与终止点的角度变化情况,角度增大,则为顺时针方向转动,可理解为向右转向;角度减小,则为逆时针方向转动,可理解为左转向。
[0065]
参考表1的数据,从起始点st1的85
°
至终止点en1的13
°
,角度减小了62
°
,因此,判断结果为左转向,与之对应换向数据集作为发生左转动作的位置数据集l1。
[0066]
继续判断第二个换向数据集,若为左转向,该换向数据集作为发生左转动作的位置数据集l2;若为右转向,该换向数据集作为发生右转动作的位置数据集r1;
[0067]
判断第三个换向数据集,若为左转向,该换向数据集作为发生左转动作的位置数据集l3;若为右转向,该换向数据集作为发生右转动作的位置数据集r2。
[0068]
直至完成所有换向数据集的转向判断。得到表示行驶方向发生左转动作的一个或者多个位置数据集{li|i=1,2,3

},得到表示行驶方向发生右转动作的一个或者多个位置数据集{ri|i=1,2,3

}。
[0069]
在上述步骤中,左转向和右转向是相对的方向,在选取不同参考系以及不同的描述方式存在差异,本领域技术人员能够基于条件和需要还可以作出适应的调整,因此,如何判断行驶方向的变化在本发明中不限于上述方法。
[0070]
通过所述第一角度阈值的筛选,起始点和终止点两个位置处的角度分别至少变化了10
°
,故而移除了车辆在正常姿态调整、换道等情况下作出的小角度转向。
[0071]
定义第二角度阈值,其取值范围大致为150-160
°
,本实施例中,第二角度阈值优选为155
°

[0072]
定义第三角度阈值,其取值范围大致为30-45
°
,本实施例中,第三角度阈值优选为35
°

[0073]
进一步地,为了筛除掉头或者连续换道等类似情况的转弯轨迹,还包括步骤:
[0074]
s221、判断各个位置数据集li的起始点至终止点的角度变化是否超过所述第二角度阈值,若超过,则移除该位置数据集li,或者移除对应的换向数据集。
[0075]
s222、判断各个位置数据集li的起始点至终止点的角度变化是否超过所述第三角度阈值,若不超过,则移除该位置数据集li,或者移除对应的换向数据集。
[0076]
起始点至终止点的角度变化是车辆从开始转弯至完成转弯全过程中总的角度变化量。通过第二角度阈值,去除了掉头数据,通过第一角度阈值,去除了会形成大角度转向的例如换道等动作的轨迹。
[0077]
定义路口换向距离阈值,其取值范围大致为120m以内,本实施例中,路口换向距离阈值优选为100m。
[0078]
进一步地,还包括步骤:
[0079]
s223、计算各个位置数据集li的起始点至终止点的距离,并且判断该距离是否超
过所述路口换向距离阈值,若不超过,则该位置数据集li描述了一个路口处的转弯轨迹;若超过,则认为不是该位置数据集li所描述的转弯轨迹不是发生在一个路口的位置处,将该位置数据集li移除。
[0080]
以上筛选步骤也同样适用于位置数据集ri。
[0081]
如此,筛选得到了更加准确地描述路口位置转弯轨迹。
[0082]
s30、计算位置数据集{li|i=1,2,3

}的路口中心位置集{loi|i=1,2,3,

},并且以此构建确定路口的数据集;计算位置数据集{ri|i=1,2,3

}的路口中心位置集{roi|i=1,2,3,

},并且以此构建待确定路口的数据集。
[0083]
位置数据集li、位置数据集ri的计算过程是相同的,此处以所述位置数据集l1为例进行介绍。
[0084]
s311、参考图4所示,自起始点st1至终止点en1,有29条数据,对应29个点的位置。根据每条数据的位置数据,依次计算相邻两个点之间的距离δdi,其中,i=1,2,3,

,p,并且累加以获得整个转弯轨迹的轨迹长度针对位置数据集l1,p=28。在车速等其他参数不同的情况下,p的值也会发生变化。
[0085]
s312、计算这p个距离中δdi,前n个距离之和n从1开始取值,且n的上限为p。
[0086]
s313、比较dn与d/2的大小:
[0087]
若dn《d/2,则n的值加1,重复步骤s312;
[0088]
若dn=d/2,则取tim[i 3 n 1]所对应的数据的位置数据,作为位置数据集l1的路口中心位置lo1;
[0089]
若dn》d/2,则进一步比较|d
n-1-d/2|与|d
n-d/2|的大小:
[0090]
若|d
n-1-d/2|《|d
n-d/2|,则取tim[i 3 n-1 1]所对应的数据的位置数据,作为位置数据集l1的路口中心位置lo1;
[0091]
若|d
n-1-d/2|》|d
n-d/2|,则取tim[i 3 n 1]所对应的数据的位置数据,作为位置数据集l1的路口中心位置lo1。
[0092]
以此类推,获得路口中心位置lo2、路口中心位置lo3
……
路口中心位置ro1、路口中心位置ro2
……
[0093]
左转向轨迹的“路口中心位置lo1、路口中心位置lo2、路口中心位置lo3
……”
构成确定路口的数据集;右转向轨迹的“路口中心位置ro1、路口中心位置ro2
……”
构成待确定路口的数据集。
[0094]
上述步骤中,也可以采用聚类算法等方式对位置数据集进行分析计算,获得路口中心位置。
[0095]
当所述目标区域内的轨迹数据有多条时,识别出的路口数据中可能存在重复。
[0096]
定义第一路口距离阈值,通常情况下,第一路口距离阈值为20m左右。
[0097]
定义第二路口距离阈值,通常情况下,第二路口距离阈值的取值范围为50m左右。
[0098]
进一步地,所述方法还包括判断和处理重复路口数据的步骤:
[0099]
判断待确定路口的数据集中的各路口中心位置roi与确定路口的数据集中的各路口中心位置loi的距离是否小于所述第一路口距离阈值,若小于,则将该路口中心位置roi
从待确定路口的数据集中移出;
[0100]
判断确定路口的数据集中的任意两个路口中心位置loi之间的距离是否小于所述第二路口距离阈值,若小于,则该两个路口中心位置loi视为重复,将该两个路口中心位置loi合并。其中,可通过从确定路口的数据集中移出其中一个重复的路口中心位置loi,或者对重复的路口中心位置loi进行统计处理,例如取平均值;
[0101]
同理,判断待确定路口的数据集中的任意两个路口中心位置roi之间的距离是否小于所述第二路口距离阈值,若小于,则该两个路口中心位置roi视为重复,将该两个路口中心位置roi合并。
[0102]
由于待确定路口的精度相对较差,为了提高其参考价值。在本实施例中对待确定路口的位置进行修正。
[0103]
作为一种实施方式:定义路口中心位置的调整参数,将借助所述调整参数对路口中心位置roi进行调整后再加入待确定路口的数据集。例如,将所述调整参数设定为10m,将路口中心位置roi的位置向左前方向移动10m,具体的移动方向及幅度也可根据路况等因素进行调整。
[0104]
作为另一种实施方式:借助回归算法等方式,对路口中心位置roi进行拟合修正后再加入待确定路口的数据集。
[0105]
实施例2
[0106]
在本实施例中,将实施例1的路口识别方法应用于某一十字路口的一定范围内的轨迹数据,以识别该十字路口的位置。
[0107]
所述十字路口的形状参考图8所示,图中(a)为右转轨迹,(b)为左转轨迹。
[0108]
表2为一车辆经过所述十字路口时向右转的轨迹数据。其中,省略了部分数据。
[0109]
表2一十字路口的右转轨迹的窗口分析集
[0110]
[0111][0112]
表2中:在计算角度差时,针对t5与t6处的数据,角度差为-348
°
,为方便比较表示转向方向为顺时针,在其基础上加360
°
,将其表示为12
°
。同理,若是存在逆时针转向时,例如一条数据的角度为2
°
,其下一条数据为350
°
,两者的角度差为348
°
,为了方便比较表示转向方向为顺时针,在其基础上减360
°
,将其表示为-12
°

[0113]
采用实施例1的路口识别方法对表2中的右转轨迹进行处理,主要步骤如下:
[0114]
数据t5、与数据t6的角度为窗口内第1个角度差大于10
°
的两条相邻的数据。由于t5在该窗口中为第5条数据,符合定义,因此找到并且以t5为起始点st2。
[0115]
数据t13、与数据t14的角度为窗口内倒数第1个角度差大于10
°
的两条相邻的数据。因此找到并且以t14为终止点en2。
[0116]
因此,数据t5-数据t14为一个换向数据集。从数据t5至数据t14累计角度变化77
°
,且为增大,因此,对应的轨迹是右转轨迹。经实施例1中步骤s30的计算,可得到对应的路口中心位置ro为数据t10的位置[121.434511,31.389365]。
[0117]
以百度地图数据获得表2所对应的路口中心位置为[121.43434,31.389381]。
[0118]
经过经纬度距离换算,得到路口中心位置ro[121.434511,31.389365]与百度地图数据所得的路口中心位置[121.43434,31.389381]相距16.3m。纬度距离换算为现有技术,本发明对此不作限制,也不再赘述。
[0119]
表3为一车辆经过所述十字路口时向左转的轨迹数据。其中,省略了部分数据。
[0120]
表3一十字路口的左转轨迹的窗口分析集
[0121]
标签左转轨迹(经纬度)角度/
°
(正北方向为0
°
)相邻点的角度差/
°
t1121.434574,31.388789348/t2121.434565,31.3888553502t3121.434543,31.3889263500t4121.434516,31.3890033500t5121.434507,31.3890463500t6121.434462,31.389146338-12t7121.434453,31.389204330-8t8121.434426,31.389269321-9t9121.434399,31.389331315-6t10121.43434,31.389373308-7t11121.434264,31.389389299-9t12121.434197,31.3894287-12t13121.434138,31.3894278-9t14121.434062,31.389377266-12t15121.433963,31.389346261-5t16121.433918,31.3893352610t17121.433792,31.389298260-1t18121.433581,31.389213258-2t19121.433231,31.3890942580t20121.432791,31.3889132591t21121.432642,31.3888632590t22121.432247,31.3887132590
…………
t35
………
[0122]
采用实施例1的路口识别方法对表3中的左转轨迹进行处理,主要步骤如下:
[0123]
数据t5、与数据t6的角度为窗口内第1个角度差大于10
°
的两条相邻的数据。由于t5在该窗口中为第5条数据,符合定义,因此找到并且以t5为起始点st3。
[0124]
数据t13、与数据t14的角度为窗口内倒数第1个角度差大于10
°
的两条相邻的数据。因此找到并且以t14为终止点en3。
[0125]
因此,数据t5-数据t14为一个换向数据集。从数据t5至数据t14累计角度变化84
°
,且为减小,因此,对应的轨迹是左转轨迹。经实施例1中步骤s30的计算,可得到对应的路口中心位置lo为数据t10的位置[121.43434,31.389373]。
[0126]
以百度地图数据获得表3所对应的路口中心位置为[121.43434,31.389381]。表2所对应的轨迹与表3所对应的轨迹发生在同一路口。
[0127]
经过经纬度距离换算,得到路口中心位置lo[121.43434,31.389373]与百度地图数据所得的路口中心位置[121.43434,31.389381]相距0.88m。
[0128]
可见,在忽略百度地图数据自身的误差的情况下,左转轨迹所确定的路口位置对右转轨迹所确定的路口位置的精度大大提高,精度在1m左右。
[0129]
实施例3
[0130]
在本实施例中,将实施例1的路口识别方法应用于某一丁字路口的一定范围内的轨迹数据,以识别该十字路口的位置。
[0131]
所述丁字路口的形状参考图9所示,图中(a)为右转轨迹,(b)为左转轨迹。
[0132]
表4为一车辆经过所述丁字路口时向右转的轨迹数据。其中,省略了部分数据。
[0133]
表4一丁字路口的右转轨迹的窗口分析集
[0134][0135][0136]
采用实施例1的路口识别方法对表4中的右转轨迹进行处理,主要步骤如下:
[0137]
数据t4、与数据t5的角度为窗口内第1个角度差大于10
°
的两条相邻的数据。由于t4在该窗口中为第4条数据,符合定义,因此找到并且以t4为起始点st4。
[0138]
数据t12、与数据t13的角度为窗口内倒数第1个角度差大于10
°
的两条相邻的数据。因此找到并且以t13为终止点en4。
[0139]
因此,数据t4-数据t13为一个换向数据集。从数据t4至数据t13累计角度变化98
°
,且为增大,因此,对应的轨迹是右转轨迹。经实施例1中步骤s30的计算,可得到对应的路口中心位置ro为数据t19的位置[114.118334,22.56586]。
[0140]
以百度地图数据获得表4所对应的路口中心位置为[114.118401,22.565989]。
[0141]
经过经纬度距离换算,得到路口中心位置ro[114.118334,22.56586]与百度地图数据所得的路口中心位置[114.118401,22.565989]相距15.89m。
[0142]
表5为一车辆经过所述十字路口时向左转的轨迹数据。其中,省略了部分数据。
[0143]
表5一丁字路口的左转轨迹的窗口分析集
[0144][0145][0146]
表5中:在计算角度差时,针对t12与t13处的数据,角度差为347
°
,为方便比较表示转向方向为逆时针,在其基础上减360
°
,将其表示为-13
°

[0147]
采用实施例1的路口识别方法对表5中的左转轨迹进行处理,主要步骤如下:
[0148]
数据t4、与数据t5的角度为窗口内第1个角度差大于10
°
的两条相邻的数据。由于t4在该窗口中为第4条数据,符合定义,因此找到并且以t4为起始点st5。
[0149]
数据t12、与数据t13的角度为窗口内倒数第1个角度差大于10
°
的两条相邻的数据。因此找到并且以t13为终止点en5。
[0150]
因此,数据t4-数据t13为一个换向数据集。从数据t4至数据t13累计角度变化80
°
,且为减小,因此,对应的轨迹是左转轨迹。经实施例1中步骤s30的计算,可得到对应的路口中心位置lo为数据t9的位置[114.118401,22.565981]。
[0151]
以百度地图数据获得表5所对应的路口中心位置为[114.118401,22.565989]。表4所对应的轨迹与表5所对应的轨迹发生在同一路口。
[0152]
经过经纬度距离换算,得到路口中心位置lo[114.118401,22.565981]与百度地图
数据所得的路口中心位置[114.118401,22.565989]相距1.47m。
[0153]
可见,在忽略百度地图数据自身的误差的情况下,左转轨迹所确定的路口位置对右转轨迹所确定的路口位置的精度大大提高,精度在1m左右。
[0154]
实施例4
[0155]
在本实施例中,将实施例1的路口识别方法应用于某一不规则路口的一定范围内的轨迹数据,以识别该不规则路口的位置。
[0156]
所述丁字路口的形状参考图10所示,图中(a)为右转轨迹,(b)为左转轨迹。
[0157]
表6为一车辆经过所述不规则路口时向右转的轨迹数据。其中,省略了部分数据。
[0158]
表6一不规则路口的右转轨迹的窗口分析集
[0159]
标签右转轨迹(经纬度)角度/
°
(正北方向为0
°
)相邻点的角度差/
°
t1121.519544,31.32868443/t2121.519598,31.328727430t3121.519679,31.328796430t4121.519814,31.328919430t5121.519904,31.329004452t6121.520003,31.3290935712t7121.520043,31.329126710t8121.520079,31.3291437811t9121.520128,31.3291399012t10121.520151,31.32912810010t11121.520196,31.3291081099t12121.520218,31.32909712011t13121.520263,31.3290811222t14121.52033,31.3290641220t15121.520438,31.3290171231t16121.520438,31.3290171230t17121.520811,31.3288481241
…………
t35
………
[0160]
采用实施例1的路口识别方法对表6中的右转轨迹进行处理,主要步骤如下:
[0161]
数据t5、与数据t6的角度为窗口内第1个角度差大于10
°
的两条相邻的数据。由于t5在该窗口中为第5条数据,符合定义,因此找到并且以t5为起始点st5。
[0162]
数据t11、与数据t12的角度为窗口内倒数第1个角度差大于10
°
的两条相邻的数据。因此找到并且以t12为终止点en5。
[0163]
因此,数据t5-数据t12为一个换向数据集。从数据t5至数据t12累计角度变化75
°
,且为增大,因此,对应的轨迹是右转轨迹。经实施例1中步骤s30的计算,可得到对应的路口中心位置ro为数据t8的位置[121.520079,31.329143]。
[0164]
以百度地图数据获得表6所对应的路口中心位置为[121.520079,31.329209]。
[0165]
经过经纬度距离换算,得到路口中心位置ro[121.520079,31.329143]与百度地图
数据所得的路口中心位置[121.520079,31.329209]相距12.22m。
[0166]
表7为一车辆经过所述十字路口时向左转的轨迹数据。其中,省略了部分数据。
[0167]
表7一不规则路口的左转轨迹的窗口分析集
[0168]
标签左转轨迹(经纬度)角度(正北方向为0度) t1121.520132,31.329638195/t2121.520128,31.3295681950t3121.520106,31.329461961t4121.520092,31.3293681960t5121.520092,31.329368195-1t6121.520083,31.329295184-11t7121.52007,31.329202174-10t8121.520061,31.329199163-11t9121.520128,31.32916152-11t10121.520186,31.329129141-11t11121.520245,31.329098131-10t12121.520362,31.329048121-10t13121.520438,31.3290091221t14121.520658,31.3289091231t15121.520847,31.328821241t16121.520972,31.3287631240t17121.52104,31.328728122-2
…………
t35
………
[0169]
采用实施例1的路口识别方法对表7中的左转轨迹进行处理,主要步骤如下:
[0170]
数据t5、与数据t6的角度为窗口内第1个角度差大于10
°
的两条相邻的数据。由于t5在该窗口中为第5条数据,符合定义,因此找到并且以t5为起始点st6。
[0171]
数据t11、与数据t12的角度为窗口内倒数第1个角度差大于10
°
的两条相邻的数据。因此找到并且以t12为终止点en6。
[0172]
因此,数据t5-数据t12为一个换向数据集。从数据t5至数据t12累计角度变化74
°
,且为减小,因此,对应的轨迹是左转轨迹。经实施例1中步骤s30的计算,可得到对应的路口中心位置lo为数据t8的位置[121.520061,31.329199]。
[0173]
以百度地图数据获得表7所对应的路口中心位置为[121.520079,31.329209]。表6所对应的轨迹与表7所对应的轨迹发生在同一路口。
[0174]
经过经纬度距离换算,得到路口中心位置lo[121.520061,31.329199]与百度地图数据所得的路口中心位置[121.520079,31.329209]相距3.39m。
[0175]
可见,结合实施例2、3、4,左转轨迹所确定的路口位置对右转轨迹所确定的路口位置的精度大大提高,大致提高了一个数量级。
[0176]
实施例5
[0177]
基于车辆行驶轨迹识别路口的方法依赖于轨迹数据,一方面,依赖于轨迹数据和
积累,另一方面,随着道路建设或者改建,路口本身可能发生变化,需要在现有的路口数据的基础上进行修正或者更新。
[0178]
本实施例中,可以是基于所述实施例1的路口识别方法得到的路口数据,也可以是基于其他方法得到的路口数据,本发明对此不作限制。
[0179]
参考图5所示,本实施例的路口识别更新方法,包括以下步骤:
[0180]
s40、更新目标区域内的车辆的轨迹数据,或者获取目标区域内的新的轨迹数据。参考实施例1中的步骤s10。
[0181]
s50、分析所述更新后的轨迹数据。参考实施例1中的步骤s20,得到表示行驶方向发生左转动作的一个或者多个位置数据集{lxi|i=1,2,3

},表示行驶方向发生右转动作的一个或者多个位置数据集{rxi|i=1,2,3

}。
[0182]
s60、参考实施例1中的步骤s30,计算位置数据集{lxi|i=1,2,3

}的路口中心位置集{lxoi|i=1,2,3,

},计算位置数据集{rxi|i=1,2,3

}的路口中心位置集{rxoi|i=1,2,3,

}。
[0183]
本实施例中,所述步骤s40、s50、s60的具体步骤和实现方式与实施例1的相关步骤基本相同,可参考实施例1的具体内容,此处不再赘述。
[0184]
本实施例的路口识别更新方法还包括步骤:
[0185]
s70、判断新增路口和更新确定/待确定路口的数据集。
[0186]
参考实施例1中定义的第一路口距离阈值,第二路口距离阈值。
[0187]
结合图6所示,关于路口中心位置lxoi的判断和处理步骤如下。
[0188]
s701、判断每个路口中心位置lxoi所描述的路口是否存在于确定路口的数据集中。
[0189]
当路口中心位置lxoi与一已有的路口中心位置loi的距离不超过所述第二路口距离阈值时,路口中心位置lxoi与路口中心位置loi视为同一路口,也即确定路口的数据集中已经存在路口中心位置lxoi所描述的路口,该路口中心位置lxoi不是新增路口。
[0190]
若当路口中心位置lxoi与任意一个已有的路口中心位置loi的距离均超过所述第二路口距离阈值,则进入下一步骤s702。
[0191]
s702、判断每个路口中心位置lxoi所描述的路口是否存在于待确定路口的数据集中。
[0192]
当路口中心位置lxoi与一个已有的路口中心位置roi的距离不超过所述第一路口距离阈值时,路口中心位置lxoi与路口中心位置roi视为同一路口,待确定路口的数据集中存在路口中心位置lxoi所描述的路口,此时,将路口中心位置roi从待确定路口的数据集中移出,同时,将路口中心位置lxoi表示为路口中心位置loi,加入确定路口的数据集。
[0193]
当路口中心位置lxoi与任意一个已有的路口中心位置roi的距离均超过所述第一路口距离阈值时,路口中心位置lxoi与任意一个已有的路口中心位置loi或者路口中心位置roi均不表示同一路口,确定路口的数据集或者确定路口的数据集中均不存在路口中心位置lxoi所描述的路口,该路口中心位置lxoi是新增路口,将其表示为路口中心位置loi,加入确定路口的数据集。
[0194]
结合图7所示,关于路口中心位置rxoi的判断和处理步骤如下。
[0195]
s703、判断每个路口中心位置rxoi所描述的路口是否存在于确定路口的数据集
中。
[0196]
当路口中心位置rxoi与一已有的路口中心位置loi的距离不超过所述第一路口距离阈值时,路口中心位置rxoi与路口中心位置loi视为同一路口,也即确定路口的数据集中已经存在路口中心位置rxoi所描述的路口,该路口中心位置rxoi不是新增路口。
[0197]
若路口中心位置rxoi与任意一个已有的路口中心位置loi的距离均超过所述第一路口距离阈值,则进入下一步骤s704。
[0198]
s704、判断每个路口中心位置rxoi所描述的路口是否存在于待确定路口的数据集中。
[0199]
当路口中心位置rxoi与任意一个已有的路口中心位置roi的距离均超过所述第二路口距离阈值时,路口中心位置rxoi与任意一个已有的路口中心位置roi均不表示同一路口,待确定路口的数据集中不存在路口中心位置rxoi所描述的路口。该路口中心位置rxoi是新增路口,将其表示为路口中心位置roi,加入待确定路口的数据集。
[0200]
同理,当路口中心位置rxoi与一已有的路口中心位置roi的距离不超过所述第二路口距离阈值时,路口中心位置rxoi与已有的路口中心位置roi表示同一路口,也即待确定路口的数据集中存在路口中心位置rxoi所描述的路口。
[0201]
上述步骤中,s702和s703是可选的步骤,也可以采用实施例1中关于判断和处理重复路口数据的步骤进行替代。
[0202]
实施例6
[0203]
本实施例的计算机可读存储介质,其上存储有计算机程序/指令,该计算机程序/指令被处理器执行时实现所述实施例1的路口识别方法的步骤,或者实现所述实施例2的路口识别更新方法的步骤。
[0204]
实施例7
[0205]
本实施例的计算机程序产品,包括计算机程序/指令,该计算机程序/指令被处理器执行时实现所述实施例1的路口识别方法的步骤,或者实现所述实施例2的路口识别更新方法的步骤。
[0206]
实施例8
[0207]
本实施例的路口数据模型,根据所述实施例1的路口识别方法或者所述实施例2的路口识别更新方法所得到的确定路口的数据集和/或待确定路口的数据集构建而成。
[0208]
具体的,所述确定路口的数据集、待确定路口的数据集中的各个路口中心位置的数据通常为经纬度坐标。可采用geohash算法对目标区域内的位置坐标以及所述各个路口中心位置进行处理,生成对应的geohash码,并且对路口中心位置进行标记,构建路口数据模型。
[0209]
实施例9
[0210]
定义路口区域,例如以每个路口中心位置为圆心,设定一定的半径参数,该半径所覆盖的区域为路口区域。车辆与路口位置之间的距离小于所述半径参数时,视为车辆驶入路口区域。
[0211]
本实施例的路口提醒方法包括步骤:
[0212]
获得车辆位置;
[0213]
根据所述路口数据模型判断车辆位置是否位于路口区域内,若车辆驶入路口区
域,则发出提醒信息。
[0214]
或者,也对所述车辆位置进行geohash处理,并且与所述实施例8的路口数据模型中的数据进行对比,以判断车辆驶入路口区域,正在靠近路口。
[0215]
实施例10
[0216]
本实施例的电子设备包括存储器、处理器及存储在存储器上的计算机程序,处理器、存储器通过系统总线连接,所述电子设备用于接收所述实施例9的路口提醒方法的提醒信息并且通过语音、振动等方式向司机发出提醒,此时,所述提醒信息可理解为通过网络传输的电子信息或者指令;或者,所述处理器执行所述计算机程序以实现所述实施例9的路口提醒方法的步骤,此时,所述提醒信息可理解为语音、振动等警报。
[0217]
实施例11
[0218]
本实施例的电子设备包括存储器、处理器及存储在存储器上的计算机程序,处理器、存储器通过系统总线连接,所述处理器执行所述计算机程序以实现所述实施例5所述的路口识别更新方法的步骤。
[0219]
本发明所提供的各实施例中所使用的对存储器、存储或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(read only memory,rom)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(random access memory,ram)或外部高速缓冲存储器。作为说明而非局限,ram可以是多种形式,比如静态随机存取存储器(static random access memory,sram)或动态随机存取存储器(dynamic random access memory,dram)等。
[0220]
本发明中,各实施例之间可以交叉引用和结合。
[0221]
本发明中的实施例仅用于对本发明进行说明,并不构成对权利要求范围的限制,本领域内技术人员可以想到的其他实质上等同的替代,均在本发明保护范围内。
再多了解一些

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

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

相关文献