针对车道中心线的处理方法、装置、电子设备及存储介质与流程

未命名 08-13 阅读:67 评论:0


1.本技术涉及车道线处理技术领域,尤其涉及针对车道中心线的处理方法、装置、电子设备及存储介质。


背景技术:

2.随着导航、自动驾驶等技术的逐渐成熟,由于高精地图能够提供更好的精度使得其的应用也越来越广泛。
3.高精地图在应用过程中,经常会涉及到对车道中心线的平滑处理。相关技术中,常采用欧拉螺线来平滑车道中心线,欧拉螺线也称羊角螺线,公式如下:
[0004][0005]
其中,c(k)的函数值为螺线的x坐标,s(k)的函数值为螺线的y坐标,t为输入弧长,弧线上的曲率呈线性变化,点(c(k),s(k))处的曲率为2t,因此螺线可以用于车道中心线的平滑处理中。
[0006]
由上述公式可以看出,积分结果为曲线上的点的坐标,计算每个坐标点时均需要将之前的弧线再次积分。那么,在平滑车道线过程中,会导致计算量大,降低车道中心线的处理速度。


技术实现要素:

[0007]
为克服相关技术中存在的问题,本技术提供一针对车道中心线的处理方法、装置、电子设备及存储介质,以降低计算量,提高车道中心线的处理速度。
[0008]
本技术第一方面提供针对车道中心线的处理方法,包括:
[0009]
确定第一车道中心线和第二车道中心线之间的旋转弧度;
[0010]
在预加载的缓存文件中确定小于所述旋转弧度且与所述旋转弧度最接近的第一弧度,或者等于所述旋转弧度的第一弧度;其中,所述缓存文件包括由零到第二弧度之间多个弧度的弧长和坐标点,所述多个弧度中任意两个相邻弧度之间间隔相等,所述第二弧度大于或等于所述第一弧度;
[0011]
从所述缓存文件中获取由零到所述第一弧度之间的多个弧度下的坐标点;
[0012]
若所述旋转弧度等于所述第一弧度,则依次连接所述坐标点生成目标螺线;
[0013]
若所述旋转弧度大于所述第一弧度,则从所述缓存文件中获取所述第一弧度的第一弧长,控制螺线生成程序基于所述第一弧长生成所述第一弧度到所述旋转弧度之间的螺线,获取与所述旋转弧度对应的坐标点;
[0014]
依次连接由零到所述旋转弧度之间的多个弧度的所述坐标点,生成目标螺线;其中,所述目标螺线用于连接所述第一车道中心线和所述第二车道中心线。
[0015]
可选地,还包括:
[0016]
设定由零到第二弧度的弧度区间,对所述弧度区间进行划分使得任意两个相邻弧度之间间隔相等;
[0017]
控制所述螺线生成程序生成由零到所述第二弧度之间的螺线,并在生成所述螺线过程中,分别记录所述多个弧度下的弧长和坐标点,生成缓存文件;
[0018]
控制所述螺线生成程序预加载所述缓存文件。
[0019]
可选地,还包括:
[0020]
对所述缓存文件中的所述多个弧度按照由小到大的顺序排序。
[0021]
可选地,所述在生成所述螺线过程中,分别记录所述多个弧度下的弧长和坐标点,生成缓存文件,包括:
[0022]
在生成所述螺线过程中,记录弧度为零对应的弧长和坐标点;
[0023]
以弧度为零开始,基于预设的分片弧长利用弧长累积公式确定当前分片对应的弧长;
[0024]
基于所述弧长利用积分公式确定所述当前分片对应的坐标点;
[0025]
基于所述弧长和与所述弧长对应的曲率利用弧度累积公式确定当前分片对应的累计弧度;
[0026]
判断所述累计弧度是否在目标弧度对应的阈值范围内,若是,记录所述目标弧度与所述弧长和所述坐标点的对应关系,并将所述目标弧度替换为所述多个弧度中的下一弧度,若否,不执行记录操作;其中,所述目标弧度非零,且依次为所述多个弧度;
[0027]
返回基于预设的分片弧长利用弧长累积公式确定当前分片对应的弧长的步骤重新执行,直至记录到所述第二弧度的弧长和坐标点结束,并将记录的对应关系存储到缓存文件中。
[0028]
可选地,所述确定第一车道中心线和第二车道中心线之间的旋转弧度,包括:
[0029]
获取第一车道中心线和第二车道中心线之间的旋转角度;
[0030]
基于所述旋转角度确定旋转弧度。
[0031]
本技术第二方面提供针对车道中心线的处理装置,包括:
[0032]
第一确定单元,用于确定第一车道中心线和第二车道中心线之间的旋转弧度;
[0033]
第二确定单元,用于在预加载的缓存文件中确定小于所述旋转弧度且与所述旋转弧度最接近的第一弧度,或者等于所述旋转弧度的第一弧度;其中,所述缓存文件包括由零到第二弧度之间多个弧度的弧长和坐标点,所述多个弧度中任意两个相邻弧度之间间隔相等,所述第二弧度大于或等于所述第一弧度;
[0034]
第一获取单元,用于从所述缓存文件中获取由零到所述第一弧度之间的多个弧度下的坐标点;
[0035]
第一连接单元,用于若所述旋转弧度等于所述第一弧度,则依次连接所述坐标点生成目标螺线;
[0036]
第一获取单元,用于若所述旋转弧度大于所述第一弧度,则从所述缓存文件中获取所述第一弧度的第一弧长,控制螺线生成程序基于所述第一弧长生成所述第一弧度到所述旋转弧度之间的螺线,获取与所述旋转弧度对应的坐标点;
[0037]
第二连接单元,用于依次连接由零到所述旋转弧度之间的多个弧度的所述坐标点,生成目标螺线;其中,所述目标螺线用于连接所述目标螺线连接所述第一车道中心线和
所述第二车道中心线。
[0038]
可选地,还包括:
[0039]
第一设定单元,用于设定由零到第二弧度的弧度区间,对所述弧度区间进行划分使得任意两个相邻弧度之间间隔相等;
[0040]
第一生成单元,用于控制所述螺线生成程序生成由零到所述第二弧度之间的螺线,并在生成所述螺线过程中,分别记录所述多个弧度下的弧长和坐标点,生成缓存文件;
[0041]
第一加载单元,用于控制所述螺线生成程序预加载所述缓存文件。
[0042]
可选地,其特征在于,还包括:
[0043]
第一排序单元,用于对所述缓存文件中的所述多个弧度按照由小到大的顺序排序。
[0044]
可选地,所述第一生成单元,包括:
[0045]
第一记录模块,用于控制所述螺线生成程序生成由零到所述第二弧度之间的螺线,在生成所述螺线过程中,记录弧度为零对应的弧长和坐标点;
[0046]
第一确定模块,用于以弧度为零开始,基于预设的分片弧长利用弧长累积公式确定当前分片对应的弧长;
[0047]
第二确定模块,用于基于所述弧长利用积分公式确定所述当前分片对应的坐标点;
[0048]
第三确定模块,用于基于所述弧长和与所述弧长对应的曲率利用弧度累积公式确定当前分片对应的累计弧度;
[0049]
第一判断模块,用于判断所述累计弧度是否在目标弧度对应的阈值范围内;
[0050]
其中,所述第一记录模块,还用于在所述累计弧度在所述目标弧度对应的阈值范围内下,记录所述目标弧度与所述弧长和所述坐标点的对应关系,将所述对应关系存储到缓存文件中,并将所述目标弧度替换为所述多个弧度中的下一弧度;所述目标弧度非零,且依次为所述多个弧度;
[0051]
第一控制模块,用于在记录对应关系后,或所述累计弧度不在所述目标弧度对应的阈值范围内下,控制所述第一确定单元重新执行基于预设的分片弧长利用弧长累积公式确定当前分片对应的弧长的步骤,直至记录到所述第二弧度的弧长和坐标点结束。
[0052]
可选地,所述第一确定单元,包括:
[0053]
第一获取模块,用于获取第一车道中心线和第二车道中心线之间的旋转角度;
[0054]
第一确定模块,用于基于所述旋转角度确定旋转弧度。
[0055]
本技术第三方面提供一种电子设备,包括:
[0056]
处理器;以及
[0057]
存储器,其上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器执行如上所述的方法。
[0058]
本技术第四方面提供一种非暂时性机器可读存储介质,其上存储有可执行代码,当所述可执行代码被电子设备的处理器执行时,使所述处理器执行如上所述的方法。
[0059]
本技术提供了针对车道中心线的处理方法,若旋转弧度等于第一弧度,则无需进行螺线积分预算,直接基于从预加载的缓存文件中获取零到第一弧度之间的多个弧度下的坐标点进行连接就能够生成目标螺线;若旋转弧度大于第一弧度,则只需进行第一弧度到
目标弧度之间的螺线积分运算即可,再结合从缓存文件中获取的零到第一弧度之间的多个弧度下的坐标点来生成目标螺线,该目标螺线用于连接第一车道中心线和第二车道中心线,由于能够直接从缓存文件中获取由零到第一弧度之间的多个弧度下的坐标点,因此无需计算从零到第一弧度之间的坐标点,减少了积分的运算量,提高了螺线的生成速度,进而提高了车道中心线的处理速度。
[0060]
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本技术。
附图说明
[0061]
通过结合附图对本技术示例性实施方式进行更详细的描述,本技术的上述以及其它目的、特征和优势将变得更加明显,其中,在本技术示例性实施方式中,相同的参考标号通常代表相同部件。
[0062]
图1是本技术实施例示出的欧拉螺线的示意图;
[0063]
图2是本技术一个方法实施例示出的针对车道中心线的处理方法的流程示意图;
[0064]
图3是本技术一个方法实施例示出的车道中心线的示意图;
[0065]
图4是本技术另一方法实施例示出的针对车道中心线的处理方法的流程示意图;
[0066]
图5是本技术又一方法实施例示出的针对车道中心线的处理方法的部分流程示意图;
[0067]
图6是本技术一个装置实施例示出的针对车道中心线的处理装置的结构示意图;
[0068]
图7是本技术另一装置实施例示出的针对车道中心线的处理装置的结构示意图;
[0069]
图8是本技术又一装置实施例示出的第一生成单元的结构示意图;
[0070]
图9是本技术再一实施例示出的电子设备的结构示意图。
具体实施方式
[0071]
下面将参照附图更详细地描述本技术的优选实施方式。虽然附图中显示了本技术的优选实施方式,然而应该理解,可以以各种形式实现本技术而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本技术更加透彻和完整,并且能够将本技术的范围完整地传达给本领域的技术人员。
[0072]
在本技术使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本技术。在本技术和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
[0073]
应当理解,尽管在本技术可能采用术语“第一”、“第二”、“第三”等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本技术范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本技术的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
[0074]
相关技术中,在基于欧拉螺线平滑车道中心线过程中,由附图1可以看出,计算每
个坐标点时均需要将之前的弧线再次积分,从而导致了计算量大,降低了车道中心线的处理速度。
[0075]
针对上述问题,本技术实施例提供了针对车道中心线的处理方法,以减低计算量,提高车道中心线的处理速度。
[0076]
以下结合附图详细描述本技术实施例的技术方案。
[0077]
本技术一个方法实施例提供了针对车道中心线的处理方法,如图2所示,该方法可以包括如下步骤:
[0078]
步骤201:确定第一车道中心线和第二车道中心线之间的旋转弧度;
[0079]
第一车道中心线和第二车道中心线分别对应车道的中心,即两个车道线中间的线成为车道中心线。
[0080]
车辆在行驶到路口时,当需要拐弯或掉头时,需要从一条车道行驶到另一条车道,那么两个车道中一条车道中的车道中心线称之为第一车道中心线,另一条车道中的车道中心线称之为第二车道中心线,为了实现车辆的拐弯或掉头,需要连接第一车道中心线和第二车道中心线,那么需要先获取第一车道中心线和第二车道中心线之间的旋转弧度。
[0081]
而两个车道中心线之间的旋转弧度可以基于两个车道中心线之间的旋转角度确定,因此,在一些实施例中,确定第一车道中心线和第二车道中心线之间的旋转弧度,可以包括如下过程:
[0082]
(1.1)获取第一车道中心线和第二车道中心线之间的旋转角度;
[0083]
旋转角度基于相关技术提供的计算方式确定,本技术不再详细赘述。
[0084]
(1.2)基于所述旋转角度确定旋转弧度;
[0085]
为了便于理解,将用于连接第一车道中心线和第二车道中线的车道中心线称之为连接部分,连接部分可以由对称的两部分螺线连接组成,因此本技术只需生成针对连接部分的一部分的螺线即可,那么,旋转弧度也对应于旋转角度对应的弧度的一半。
[0086]
因此在基于旋转角度确定旋转弧度过程中,可以基于角度与弧度的对应关系将旋转角度转换为弧度,然后取一半作为旋转弧度。
[0087]
为便于理解,以附图3进行举例说明,以车辆掉头为例,第一车道中心线和第二车道中心线之间的旋转角度为180
°
,对应的弧度为π,那么,旋转角度为π/2,本技术只需生成0~π/2的螺线即可,然后将两个0~π/2的螺线经过变化后连接起来即可;以车辆转弯为例,第一车道中心线和第二车道中心线之间的旋转角度为100
°
,对应的弧度为100π/180,对应的旋转弧度为5π/18=(100π/180)/2,本技术只需生成0~5π/18的螺线即可,然后将两个0~5π/18的螺线经过变化后连接起来即可。
[0088]
步骤202:在预加载的缓存文件中确定小于所述旋转弧度且与所属旋转弧度最接近的第一弧度,或者等于所述旋转弧度的第一弧度;
[0089]
其中,所述缓存文件包括由零到第二弧度之间多个弧度的弧长和坐标点,所述多个弧度中任意两个相邻弧度之间间隔相等,第二弧度大于或等于第一弧度。
[0090]
本技术中的缓存文件中记录的多个弧度的弧长和坐标点是螺线生成程序基于欧拉螺线公式预先获取的。为了便于螺线的生成,提前记录螺线生成程序在生成零到第二弧度之间的螺线过程中各个指定的弧度下的弧长和坐标点,并存储到缓存文件中。在控制螺线生成程序生成针对车道中心线的目标螺线前预加载该缓存文件,从而能够直接利用到缓
存文件中记录的弧长和坐标点。
[0091]
也就是说,缓存文件中预先记录了由零到第二弧度之间的多个弧度的弧长和坐标点,而第二弧度的具体数值本技术不做限定,可以基于实际情况设定。例如,基于平滑处理车道中心线的常见场景来设定第二弧度的具体数值,一般情况下,由于车道掉头对应的旋转角度为180
°
,对应该旋转角度,可以将第二弧度设定为π/2。当然,为了应对其他场景,也可以将第二弧度设定的大一些,例如,将第二弧度设定为π。
[0092]
而由零到第二弧度之间的任意两个相邻弧度的弧度间隔本技术也不做具体限定,可以根据实际情况进行设定。例如,可以设定角度间隔1
°
,那么对应的弧度间隔为π/180,即任意两个相邻弧度之间间隔π/180;当然,为了提高平滑车道中心线的精度,可以将角度间隔设定的更小一些,例如,设定角度间隔0.5
°
,那么对应的弧度间隔为0.5π/180,即任意两个相邻弧度之间间隔0.5π/180。
[0093]
可以理解的是,一个坐标点至少由x轴坐标点和y轴坐标点构成。
[0094]
如下表1,对应于缓存文件中记录的零到π之间多个弧度的弧长和坐标点,且任意两个相邻弧度之间间隔π/180。
[0095]
表1
[0096]
弧度输入t值(弧长)x坐标y坐标000.0000000.000000π/1800.1321214243759720.1321069280558340.0007685817519719682π/1800.1870992958137940.1868094966265180.00217371517449296

180π/1801.790707812546180.6628614879352360.894833982604009
[0097]
当确定了旋转弧度后,则从缓存文件中确定与所述旋转弧度最接近的弧度。需说明的是,在缓存文件中确定与旋转弧度最接近的弧度包含两种情况,一种是能够从缓存文件中直接确定与旋转弧度相等的弧度,那么将该弧度确定为第一弧度;另一种是,缓存文件中未记载有与旋转弧度相等的弧度,那么则需要从缓存文件中确定小于旋转弧度且与旋转弧度最接近的弧度,将该弧度确定为第一弧度。
[0098]
步骤203:从所述缓存文件中获取由零到所述第一弧度之间的多个弧度下的坐标点;
[0099]
步骤204:若所述旋转弧度等于所述第一弧度,则依次连接所述坐标点生成目标螺线;
[0100]
若缓存文件中记录有与旋转角度相等的第一弧度,那么则无需再针对旋转角度进行螺线积分运算,直接将获取的由零到第一弧度之间的多个弧度下的坐标点连接即可生成目标螺线,该目标螺线用于连接第一车道中心线和第二车道中心线所用。
[0101]
步骤205:若所述旋转弧度大于所述第一弧度,则从所述缓存文件中获取所述第一弧度的第一弧长,控制螺线生成程序基于所述第一弧长生成所述第一弧度到所述旋转弧度之间的螺线,获取与所述旋转弧度对应的坐标点;
[0102]
若缓存文件中未记录有与旋转角度相等的弧度,那么在确定了小于旋转弧度且与旋转弧度最接近的第一弧度后,只需进行第一弧度到旋转弧度之间的螺线积分运算即可,即获取第一弧度对应的第一弧长,从而控制螺线生成程序基于第一弧长生成第一弧度到旋
转弧度之间的螺线,获取与旋转弧度对应的坐标点。
[0103]
步骤206:依次连接由零到所述旋转弧度之间的多个弧度的所述坐标点,生成目标螺线。
[0104]
其中,所述目标螺线用于连接所述第一车道中心线和所述第二车道中心线。
[0105]
目标螺线作为第一车道中心线和第二车道中心线的连接部分的一半,由附图3可以看出,连接部分的两半是对称的,因此,基于目标螺线能够确定出连接部分的另一半,从而实现第一车道中心线和第二车道中心线的连接。
[0106]
在一些实施例中,该方法还可以包括:基于所述目标螺线连接所述第一车道中心线和所述第二车道中心线。
[0107]
由此可见,本实施例中,若旋转弧度等于第一弧度,则无需进行螺线积分预算,直接基于从预加载的缓存文件中获取零到第一弧度之间的多个弧度下的坐标点进行连接就能够生成目标螺线;若旋转弧度大于第一弧度,则只需进行第一弧度到目标弧度之间的螺线积分运算即可,再结合从缓存文件中获取的零到第一弧度之间的多个弧度下的坐标点来生成目标螺线,该目标螺线用于连接第一车道中心线和第二车道中心线,由于能够直接从缓存文件中获取由零到第一弧度之间的多个弧度下的坐标点,因此无需计算从零到第一弧度之间的坐标点,减少了积分的运算量,提高了螺线的生成速度,进而提高了车道中心线的处理速度。
[0108]
本技术另一方法实施例提供了针对车道中心线的处理方法,如图4所示,该方法包括如下步骤:
[0109]
步骤401:设定由零到第二弧度的弧度区间,对所述弧度区间进行划分,使得任意两个相邻弧度之间间隔相等;
[0110]
第二弧度的具体数值本技术不做限定,可以基于实际情况设定。例如,基于平滑处理车道中心线的常见场景来设定第二弧度的具体数值,一般情况下,由于车道掉头对应的旋转角度为180
°
,对应该旋转角度,可以将第二弧度设定为π/2。当然,为了应对其他场景,也可以将第二弧度设定的大一些,例如,将第二弧度设定为π。
[0111]
而由零到第二弧度之间的任意两个相邻弧度的弧度间隔本技术也不做具体限定,可以根据实际情况进行设定。例如,可以设定角度间隔1
°
,那么对应的弧度间隔为π/180,即任意两个相邻弧度之间间隔π/180;当然,为了提高平滑车道中心线的精度,可以将间隔设定的更小一些,例如,设定角度间隔0.5
°
,那么对应的弧度间隔为0.5π/180,即任意两个相邻弧度之间间隔0.5π/180。
[0112]
步骤402:控制所述螺线生成程序生成由零到所述第二弧度之间的螺线,并在生成所述螺线过程中,分别记录所述多个弧度下的弧长和坐标点,生成缓存文件;
[0113]
步骤401-402为预先生成缓存文件的过程,预先生成的缓存文件可以直接应用到螺线生成程序中,后续在针对车道线处理过程中,直接使用该缓存文件即可,无需再次生成缓存文件,也就是说,在第二弧度指定的情况下,只生成一次缓存文件即可。
[0114]
在控制所述螺线生成程序生成由零到所述第二弧度之间的螺线的过程,会进行积分迭代循环,在这个过程中记录从零到所述第二弧度之间下多个弧度对应的弧长以及坐标点。
[0115]
步骤403:控制所述螺线生成程序预加载所述缓存文件;
[0116]
在一些实施例中,预加载缓存文件后,还可以包括:对所述缓存文件中的所述多个弧度按照由小到大的顺序排序。通过排序,便于后续弧度的判断,进一步提高螺线的生成速度。
[0117]
步骤404:确定第一车道中心线和第二车道中心线之间的旋转弧度;
[0118]
步骤405:在预加载的缓存文件中确定小于所述旋转弧度且与所述旋转弧度最接近的第一弧度,或者等于所述旋转弧度的第一弧度;
[0119]
其中,所述缓存文件包括由零到第二弧度之间多个弧度的弧长和坐标点,所述多个弧度中任意两个相邻弧度之间间隔相等,所述第二弧度大于或等于所述第一弧度。
[0120]
步骤406:从所述缓存文件中获取由零到所述第一弧度之间的多个弧度下的坐标点;
[0121]
步骤407:若所述旋转弧度等于所述第一弧度,则依次连接所述坐标点生成目标螺线;
[0122]
步骤408:若所述旋转弧度大于所述第一弧度,则从所述缓存文件中获取所述第一弧度的第一弧长,控制螺线生成程序基于所述第一弧长生成所述第一弧度到所述旋转弧度之间的螺线,获取与所述旋转弧度对应的坐标点;
[0123]
步骤409:依次连接由零到所述旋转弧度之间的多个弧度的所述坐标点,生成目标螺线。
[0124]
其中,所述目标螺线用于连接所述目标螺线连接所述第一车道中心线和所述第二车道中心线。
[0125]
本实施例中,通过预先生成并加载缓存文件,使得在确定了旋转弧度后,能够从缓存文件中获取坐标点,具体的,若旋转弧度等于第一弧度,则无需进行螺线积分预算,直接基于从预加载的缓存文件中获取零到第一弧度之间的多个弧度下的坐标点进行连接就能够生成目标螺线;若旋转弧度大于第一弧度,则只需进行第一弧度到目标弧度之间的螺线积分运算即可,再结合从缓存文件中获取的零到第一弧度之间的多个弧度下的坐标点来生成目标螺线,该目标螺线用于连接第一车道中心线和第二车道中心线,由于能够直接从缓存文件中获取由零到第一弧度之间的多个弧度下的坐标点,因此无需计算从零到第一弧度之间的坐标点,减少了积分的运算量,提高了螺线的生成速度,进而提高了车道中心线的处理速度。
[0126]
本技术又一方法实施例提供了针对车道中心线的处理方法,本实施例主要描述缓存文件的具体生成过程,具体的,如图5所示,该过程可以包括步骤:
[0127]
步骤501:设定由零到第二弧度的弧度区间,对所述弧度区间进行划分使得任意两个相邻弧度之间间隔相等;
[0128]
步骤502:控制所述螺线生成程序生成由零到所述第二弧度之间的螺线,并在生成所述螺线过程中,记录弧度为零对应的弧长和坐标点;
[0129]
步骤503:以弧度为零开始,基于预设的分片弧长利用弧长累积公式确定当前分片对应的弧长;
[0130]
该分片弧长为对螺线进行指定弧长的分片从而积分使用,具体的,分片弧长的数值可在螺线生成程序中设定。
[0131]
弧长累计公式如下:
[0132]
curve=basecurve+dsubstep*i
[0133]
其中,curve对应当前分片下的弧长,basecurve对应当前分片之前的累计弧长,dsubstep对应弧微分dt;i对应当前分片所处位置,即对应第i片;
[0134]
步骤504:基于所述弧长利用积分公式确定所述当前分片对应的坐标点;
[0135]
积分公式如下:
[0136]
cx=cos(curve*curve)*dsubstep;
[0137]
cy=sin(curve*curve)*dsubstep;
[0138]
cx对应x坐标即c(k)的值,cy坐标对应y坐标即s(k)的值,curve对应弧长,dsubstep对应弧微分dt;
[0139]
步骤505:基于所述弧长和与所述弧长对应的曲率利用弧度累积公式确定当前分片对应的累计弧度;
[0140]
曲率=2t,其中,t为弧长;
[0141]
而弧长*曲率=弧度,对应的弧度累计公式如下:
[0142]
radadder2=radadder1+dsubstep*curve*2
[0143]
其中,radadder2为当前分片对应的累计弧度,radadder1为当前分片之前的累计弧度,dsubstep*curve*2对应当前分片对应的弧度;
[0144]
步骤506:判断所述累计弧度是否在目标弧度对应的阈值范围内,若是,进入步骤507;若否,不执行记录操作,返回步骤503中的基于预设的分片弧长利用弧长累积公式确定当前分片对应的弧长的步骤重新执行;
[0145]
其中,所述目标弧度非零,且依次为由零到第二弧度之间下划分的多个弧度,所述目标弧度在记录所述对应关系后被替换为所述多个弧度的下一弧度。
[0146]
步骤507:记录所述目标弧度与所述弧长和所述坐标点的对应关系,将所述对应关系存储到缓存文件中,并将所述目标弧度替换为所述多个弧度中的下一弧度,返回步骤503中的基于预设的分片弧长利用弧长累积公式确定当前分片对应的弧长的步骤重新执行,直至记录到所述第二弧度的弧长和坐标点结束;
[0147]
其中,所述目标弧度非零,且依次为零到第二弧度的弧度区间下划分的多个弧度,该目标弧度在记录了对应关系后替换为所述多个弧度的下一弧度。
[0148]
上述阈值范围本技术不做限定,例如,可以在目标弧度的基础上增加一指定数值形成由目标弧度到目标弧度+指定数值的阈值范围。因为在螺线生成程序执行过程中无法保证生成的累计弧度恰好等于目标弧度,因此通过设定阈值范围,保证该过程的正常执行。
[0149]
可以理解的是,弧度为零下,弧度与弧长和坐标点的对应关系也存储在缓存文件中。缓存文件中存储了由零到第二弧度下多个弧度的弧长和坐标点的对应关系。
[0150]
以上述表1为例,设定由零到π的弧度区间,并按照每隔π/180的间隔将该区间划分为多个弧度,控制所述螺线生成程序生成由零到π之间的螺线,并在生成所述螺线过程中,记录弧度为零对应的弧长为0和坐标点为0;以弧度为零开始,基于预设的分片弧长利用弧长累积公式确定当前分片对应的弧长,基于所述弧长利用积分公式确定所述当前分片对应的坐标点,基于所述弧长和与所述弧长对应的曲率利用弧度累积公式确定当前分片对应的累计弧度;先设定目标弧度为π/180,判断累计弧度是否在π/180对应的阈值范围内,若是,记录π/180与确定的弧长和坐标点的对应关系,并将所述目标弧度替换为2π/180,返回基于
预设的分片弧长利用弧长累积公式确定当前分片对应的弧长的步骤重新执行;若否,不进行记录操作,并返回基于预设的分片弧长利用弧长累积公式确定当前分片对应的弧长的步骤重新执行;通过重复执行与记录,当记录到π对应的弧长和坐标点后,该缓存文件的生成过程结束。
[0151]
与前述应用功能实现方法实施例相对应,本技术还提供了针对车道中心线的处理装置、电子设备及相应的实施例。
[0152]
本技术一个装置实施例提供了针对车道中心线的处理装置,如图6所示,该装置包括:第一确定单元110、第二确定单元120、第一获取单元130、第一连接单元140、第一获取单元150以及第二连接单元160;其中:
[0153]
第一确定单元110,用于确定第一车道中心线和第二车道中心线之间的旋转弧度;
[0154]
在一些实施例中,第一确定单元140,包括:第一获取模块和第一确定模块(图6中未示出);其中:第一获取模块,用于获取第一车道中心线和第二车道中心线之间的旋转角度;第一确定模块,用于基于所述旋转角度确定旋转弧度。
[0155]
第二确定单元120,用于在预加载的缓存文件中确定小于所述旋转弧度且与所述旋转弧度最接近的第一弧度,或者等于所述旋转弧度的第一弧度;
[0156]
其中,所述缓存文件包括由零到第二弧度之间多个弧度的弧长和坐标点,所述多个弧度中任意两个相邻弧度之间间隔相等,所述第二弧度大于或等于所述第一弧度;
[0157]
第一获取单元130,用于从所述缓存文件中获取由零到所述第一弧度之间的多个弧度下的坐标点;
[0158]
第一连接单元140,用于若所述旋转弧度等于所述第一弧度,则依次连接所述坐标点生成目标螺线;
[0159]
第一获取单元150,用于若所述旋转弧度大于所述第一弧度,则从所述缓存文件中获取所述第一弧度的第一弧长,控制螺线生成程序基于所述第一弧长生成所述第一弧度到所述旋转弧度之间的螺线,获取与所述旋转弧度对应的坐标点;
[0160]
第二连接单元160,用于依次连接由零到所述旋转弧度之间的多个弧度的所述坐标点,生成目标螺线;
[0161]
其中,所述目标螺线用于连接所述目标螺线连接所述第一车道中心线和所述第二车道中心线。
[0162]
由此可见,本实施例中,若旋转弧度等于第一弧度,则无需进行螺线积分预算,直接基于从预加载的缓存文件中获取零到第一弧度之间的多个弧度下的坐标点进行连接就能够生成目标螺线;若旋转弧度大于第一弧度,则只需进行第一弧度到目标弧度之间的螺线积分运算即可,再结合从缓存文件中获取的零到第一弧度之间的多个弧度下的坐标点来生成目标螺线,该目标螺线用于连接第一车道中心线和第二车道中心线,由于能够直接从缓存文件中获取由零到第一弧度之间的多个弧度下的坐标点,因此无需计算从零到第一弧度之间的坐标点,减少了积分的运算量,提高了螺线的生成速度,进而提高了车道中心线的处理速度。
[0163]
本技术另一装置实施例提供了针对车道中心线的处理装置,如图7所示,该装置可以包括:第一设定单元170、第一生成单元180、第一加载单元190、第一确定单元110、第二确定单元120、第一获取单元130、第一连接单元140、第一获取单元150以及第二连接单元160;
其中:
[0164]
第一设定单元170,用于设定由零到第二弧度的弧度区间,对所述弧度区间进行划分使得任意两个相邻弧度之间间隔相等;
[0165]
第一生成单元180,用于控制所述螺线生成程序生成由零到所述第二弧度之间的螺线,并在生成所述螺线过程中,分别记录所述多个弧度下的弧长和坐标点,生成缓存文件;
[0166]
第一加载单元190,用于控制所述螺线生成程序预加载所述缓存文件;
[0167]
在一些实施例中,该装置还可以包括第一排序单元(图7中未示出),第一排序单元,用于对所述缓存文件中的所述多个弧度按照由小到大的顺序排序。
[0168]
第一确定单元110,用于确定第一车道中心线和第二车道中心线之间的旋转弧度;
[0169]
第二确定单元120,用于在预加载的缓存文件中确定小于所述旋转弧度且与所述旋转弧度最接近的第一弧度,或者等于所述旋转弧度的第一弧度;
[0170]
其中,所述缓存文件包括由零到第二弧度之间多个弧度的弧长和坐标点,所述多个弧度中任意两个相邻弧度之间间隔相等,所述第二弧度大于或等于所述第一弧度。
[0171]
第一获取单元130,用于从所述缓存文件中获取由零到所述第一弧度之间的多个弧度下的坐标点;
[0172]
第一连接单元140,用于若所述旋转弧度等于所述第一弧度,则依次连接所述坐标点生成目标螺线;
[0173]
第一获取单元150,用于若所述旋转弧度大于所述第一弧度,则从所述缓存文件中获取所述第一弧度的第一弧长,控制螺线生成程序基于所述第一弧长生成所述第一弧度到所述旋转弧度之间的螺线,获取与所述旋转弧度对应的坐标点;
[0174]
第二连接单元160,用于依次连接由零到所述旋转弧度之间的多个弧度的所述坐标点,生成目标螺线;
[0175]
其中,所述目标螺线用于连接所述目标螺线连接所述第一车道中心线和所述第二车道中心线。
[0176]
本技术又一装置实施例提供了第一生成单元的具体实施方式,如图8所示,第一生成单元180包括:第一记录模块1801、第一确定模块1802、第二确定模块1803、第三确定模块1804、第一判断模块1805以及第一控制模块1806;其中:
[0177]
第一记录模块1801,用于控制所述螺线生成程序生成由零到所述第二弧度之间的螺线,在生成所述螺线过程中,记录弧度为零对应的弧长和坐标点;
[0178]
第一确定模块1802,用于以弧度为零开始,基于预设的分片弧长利用弧长累积公式确定当前分片对应的弧长;
[0179]
第二确定模块1803,用于基于所述弧长利用积分公式确定所述当前分片对应的坐标点;
[0180]
第三确定模块1804,用于基于所述弧长和与所述弧长对应的曲率利用弧度累积公式确定当前分片对应的累计弧度;
[0181]
第一判断模块1805,用于判断所述累计弧度是否在目标弧度对应的阈值范围内;
[0182]
其中,所述第一记录模块1801,还用于在所述累计弧度在所述目标弧度对应的阈值范围内下,记录所述目标弧度与所述弧长和所述坐标点的对应关系,将所述对应关系存
储到缓存文件中,并将所述目标弧度替换为所述多个弧度中的下一弧度;
[0183]
其中,所述目标弧度非零,且依次为所述多个弧度。
[0184]
第一控制模块1806,用于在记录对应关系后,或所述累计弧度不在所述目标弧度对应的阈值范围内下,控制所述第一确定单元重新执行基于预设的分片弧长利用弧长累积公式确定当前分片对应的弧长的步骤,直至记录到所述第二弧度的弧长和坐标点结束。
[0185]
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不再做详细阐述说明。
[0186]
图9是本技术再一装置实施例示出的电子设备的结构示意图。
[0187]
参见图9,电子设备1000包括存储器1010和处理器1020。
[0188]
处理器1020可以是中央处理单元(central processing unit,cpu),还可以是其他通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
[0189]
存储器1010可以包括各种类型的存储单元,例如系统内存、只读存储器(rom),和永久存储装置。其中,rom可以存储处理器1020或者计算机的其他模块需要的静态数据或者指令。永久存储装置可以是可读写的存储装置。永久存储装置可以是即使计算机断电后也不会失去存储的指令和数据的非易失性存储设备。在一些实施方式中,永久性存储装置采用大容量存储装置(例如磁或光盘、闪存)作为永久存储装置。另外一些实施方式中,永久性存储装置可以是可移除的存储设备(例如软盘、光驱)。系统内存可以是可读写存储设备或者易失性可读写存储设备,例如动态随机访问内存。系统内存可以存储一些或者所有处理器在运行时需要的指令和数据。此外,存储器1010可以包括任意计算机可读存储媒介的组合,包括各种类型的半导体存储芯片(dram,sram,sdram,闪存,可编程只读存储器),磁盘和/或光盘也可以采用。在一些实施方式中,存储器1010可以包括可读和/或写的可移除的存储设备,例如激光唱片(cd)、只读数字多功能光盘(例如dvd-rom,双层dvd-rom)、只读蓝光光盘、超密度光盘、闪存卡(例如sd卡、min sd卡、micro-sd卡等等)、磁性软盘等等。计算机可读存储媒介不包含载波和通过无线或有线传输的瞬间电子信号。
[0190]
存储器1010上存储有可执行代码,当可执行代码被处理器1020处理时,可以使处理器1020执行上文述及的方法中的部分或全部。
[0191]
上文中已经参考附图详细描述了本技术的方案。在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详细描述的部分,可以参见其他实施例的相关描述。本领域技术人员也应该知悉,说明书中所涉及的动作和模块并不一定是本技术所必须的。另外,可以理解,本技术实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减,本技术实施例装置中的模块可以根据实际需要进行合并、划分和删减。
[0192]
此外,根据本技术的方法还可以实现为一种计算机程序或计算机程序产品,该计算机程序或计算机程序产品包括用于执行本技术的上述方法中部分或全部步骤的计算机程序代码指令。
[0193]
或者,本技术还可以实施为一种非暂时性机器可读存储介质(或计算机可读存储
介质、或机器可读存储介质),其上存储有可执行代码(或计算机程序、或计算机指令代码),当所述可执行代码(或计算机程序、或计算机指令代码)被电子设备(或电子设备、服务器等)的处理器执行时,使所述处理器执行根据本技术的上述方法的各个步骤的部分或全部。
[0194]
本领域技术人员还将明白的是,结合这里的申请所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。
[0195]
附图中的流程图和框图显示了根据本技术的多个实施例的系统和方法的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标记的功能也可以以不同于附图中所标记的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0196]
以上已经描述了本技术的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

技术特征:
1.针对车道中心线的处理方法,其特征在于,包括:确定第一车道中心线和第二车道中心线之间的旋转弧度;在预加载的缓存文件中确定小于所述旋转弧度且与所述旋转弧度最接近的第一弧度,或者等于所述旋转弧度的第一弧度;其中,所述缓存文件包括由零到第二弧度之间多个弧度的弧长和坐标点,所述多个弧度中任意两个相邻弧度之间间隔相等,所述第二弧度大于或等于所述第一弧度;从所述缓存文件中获取由零到所述第一弧度之间的多个弧度下的坐标点;若所述旋转弧度等于所述第一弧度,则依次连接所述坐标点生成目标螺线;若所述旋转弧度大于所述第一弧度,则从所述缓存文件中获取所述第一弧度的第一弧长,控制螺线生成程序基于所述第一弧长生成所述第一弧度到所述旋转弧度之间的螺线,获取与所述旋转弧度对应的坐标点;依次连接由零到所述旋转弧度之间的多个弧度的所述坐标点,生成目标螺线;其中,所述目标螺线用于连接所述第一车道中心线和所述第二车道中心线。2.根据权利要求1所述的方法,其特征在于,还包括:设定由零到第二弧度的弧度区间,对所述弧度区间进行划分使得任意两个相邻弧度之间间隔相等;控制所述螺线生成程序生成由零到所述第二弧度之间的螺线,并在生成所述螺线过程中,分别记录所述多个弧度下的弧长和坐标点,生成缓存文件;控制所述螺线生成程序预加载所述缓存文件。3.根据权利要求2所述的方法,其特征在于,还包括:对所述缓存文件中的所述多个弧度按照由小到大的顺序排序。4.根据权利要求2所述的方法,其特征在于,所述在生成所述螺线过程中,分别记录所述多个弧度下的弧长和坐标点,生成缓存文件,包括:在生成所述螺线过程中,记录弧度为零对应的弧长和坐标点;以弧度为零开始,基于预设的分片弧长利用弧长累积公式确定当前分片对应的弧长;基于所述弧长利用积分公式确定所述当前分片对应的坐标点;基于所述弧长和与所述弧长对应的曲率利用弧度累积公式确定当前分片对应的累计弧度;判断所述累计弧度是否在目标弧度对应的阈值范围内,若是,记录所述目标弧度与所述弧长和所述坐标点的对应关系,并将所述目标弧度替换为所述多个弧度中的下一弧度,若否,不执行记录操作;其中,所述目标弧度非零,且依次为所述多个弧度;返回基于预设的分片弧长利用弧长累积公式确定当前分片对应的弧长的步骤重新执行,直至记录到所述第二弧度的弧长和坐标点结束,并将记录的对应关系存储到缓存文件中。5.根据权利要求1所述的方法,其特征在于,所述确定第一车道中心线和第二车道中心线之间的旋转弧度,包括:获取第一车道中心线和第二车道中心线之间的旋转角度;基于所述旋转角度确定旋转弧度。6.针对车道中心线的处理装置,其特征在于,包括:
第一确定单元,用于确定第一车道中心线和第二车道中心线之间的旋转弧度;第二确定单元,用于在预加载的缓存文件中确定小于所述旋转弧度且与所述旋转弧度最接近的第一弧度,或者等于所述旋转弧度的第一弧度;其中,所述缓存文件包括由零到第二弧度之间多个弧度的弧长和坐标点,所述多个弧度中任意两个相邻弧度之间间隔相等,所述第二弧度大于或等于所述第一弧度;第一获取单元,用于从所述缓存文件中获取由零到所述第一弧度之间的多个弧度下的坐标点;第一连接单元,用于若所述旋转弧度等于所述第一弧度,则依次连接所述坐标点生成目标螺线;第一获取单元,用于若所述旋转弧度大于所述第一弧度,则从所述缓存文件中获取所述第一弧度的第一弧长,控制螺线生成程序基于所述第一弧长生成所述第一弧度到所述旋转弧度之间的螺线,获取与所述旋转弧度对应的坐标点;第二连接单元,用于依次连接由零到所述旋转弧度之间的多个弧度的所述坐标点,生成目标螺线;其中,所述目标螺线用于连接所述目标螺线连接所述第一车道中心线和所述第二车道中心线。7.根据权利要求6所述的装置,其特征在于,还包括:第一设定单元,用于设定由零到第二弧度的弧度区间,对所述弧度区间进行划分使得任意两个相邻弧度之间间隔相等;第一生成单元,用于控制所述螺线生成程序生成由零到所述第二弧度之间的螺线,并在生成所述螺线过程中,分别记录所述多个弧度下的弧长和坐标点,生成缓存文件;第一加载单元,用于控制所述螺线生成程序预加载所述缓存文件。8.根据权利要求7所述的装置,其特征在于,还包括:第一排序单元,用于对所述缓存文件中的所述多个弧度按照由小到大的顺序排序。9.根据权利要求7所述的装置,其特征在于,所述第一生成单元,包括:第一记录模块,用于控制所述螺线生成程序生成由零到所述第二弧度之间的螺线,在生成所述螺线过程中,记录弧度为零对应的弧长和坐标点;第一确定模块,用于以弧度为零开始,基于预设的分片弧长利用弧长累积公式确定当前分片对应的弧长;第二确定模块,用于基于所述弧长利用积分公式确定所述当前分片对应的坐标点;第三确定模块,用于基于所述弧长和与所述弧长对应的曲率利用弧度累积公式确定当前分片对应的累计弧度;第一判断模块,用于判断所述累计弧度是否在目标弧度对应的阈值范围内;其中,所述第一记录模块,还用于在所述累计弧度在所述目标弧度对应的阈值范围内下,记录所述目标弧度与所述弧长和所述坐标点的对应关系,将所述对应关系存储到缓存文件中,并将所述目标弧度替换为所述多个弧度中的下一弧度;所述目标弧度非零,且依次为所述多个弧度;第一控制模块,用于在记录对应关系后,或所述累计弧度不在所述目标弧度对应的阈值范围内下,控制所述第一确定单元重新执行基于预设的分片弧长利用弧长累积公式确定当前分片对应的弧长的步骤,直至记录到所述第二弧度的弧长和坐标点结束。
10.根据权利要求6所述的装置,其特征在于,所述第一确定单元,包括:第一获取模块,用于获取第一车道中心线和第二车道中心线之间的旋转角度;第一确定模块,用于基于所述旋转角度确定旋转弧度。11.一种电子设备,其特征在于,包括:处理器;以及存储器,其上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器执行如权利要求1-5中任一项所述的方法。12.一种非暂时性机器可读存储介质,其上存储有可执行代码,当所述可执行代码被电子设备的处理器执行时,使所述处理器执行如权利要求1-5中任一项所述的方法。

技术总结
本申请是关于针对车道中心线的处理方法、装置、电子设备及存储介质,包括:确定旋转弧度;在预加载的缓存文件中确定小于旋转弧度,与旋转弧度最接近的第一弧度,或者等于旋转弧度的第一弧度;从缓存文件中获取由零到第一弧度之间的多个弧度下的坐标点;若旋转弧度等于第一弧度,依次连接坐标点生成目标螺线;若旋转弧度大于第一弧度,控制螺线生成程序基于获取的第一弧长生成第一弧度到所述旋转弧度之间的螺线,获取与旋转弧度对应的坐标点,依次连接由零到旋转弧度之间的多个弧度的坐标点,生成目标螺线;目标螺线用于连接所第一车道中心线和所述第二车道中心线;本申请减少了积分的运算量,提高了螺线的生成速度,提高了车道中心线的处理速度。中心线的处理速度。中心线的处理速度。


技术研发人员:王红铅 贾双成 万如 朱磊 张现法
受保护的技术使用者:智道网联科技(北京)有限公司
技术研发日:2023.03.03
技术公布日:2023/8/9
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐