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

车挂偏航角的确定方法、装置、计算机设备和存储介质与流程

2022-09-14 21:43:11 来源:中国专利 TAG:


1.本技术涉及数据处理技术领域,特别是涉及一种车挂偏航角的确定方法、装置、计算机设备和存储介质。


背景技术:

2.在很多场景中,自动驾驶的某些车辆(由车头和车挂构成的车辆,如物流卡车)需要实时确定挂车的偏航角,来帮助完成精准驾车或行驶。
3.传统技术中,一般是通过实时采集车辆的点云数据,对点云进行筛选,将点云数据转换为二维平面上的点集,然后将点集拟合成一条直线,根据该直线确定夹角。
4.然而,传统技术方案中,对点云进行筛选时,根据点的坐标是否落入挂车边缘的点到坐标系原点的距离,也就是仅根据车辆的尺寸信息来进行筛选。该方案容易受到周围其他车辆形成的侧面点云的干扰、。


技术实现要素:

5.基于此,有必要针对上述技术问题,提供一种车挂偏航角的确定方法、装置、计算机设备和存储介质。
6.一种车挂偏航角的确定方法,方法包括:
7.获取第一点云数据,第一点云数据为当前车辆当前帧的点云数据;
8.获取历史直线参数,并根据历史直线参数确定搜索范围,历史直线参数为根据当前车辆历史帧的点云数据确定的当前车辆历史帧的车挂的边缘线的参数;
9.根据搜索范围、车挂的宽度以及第一点云数据,确定最优直线对,并根据最优直线对,确定第二点云数据;
10.根据第二点云数据确定目标直线,并根据目标直线确定偏航角。
11.在其中一个实施例中,上述的历史帧包括前一帧,上述的历史直线参数包括前一帧中车挂的两侧边缘线中目标边缘线的参数,上述的根据历史直线参数确定搜索范围,包括:
12.根据前一帧中车挂的目标边缘线的参数以及预设阈值,确定当前帧中目标边缘线的参数的范围值,得到搜索范围。
13.在其中一个实施例中,上述的根据搜索范围、上述的车挂的宽度以及上述的第一点云数据,确定最优直线对,并根据最优直线对,确定第二点云数据,包括:
14.将第一点云数据对应的三维点云投影到二维平面中,得到投影点云;
15.根据搜索范围以及预设的搜索间隔,确定各预测直线参数;
16.根据各预测直线参数以及当前车辆的车挂宽度,确定多对直线对;
17.根据投影点云中距离各直线对在第一预设范围内的点,确定各直线对的质量;
18.根据各直线对的质量,确定最优直线对;
19.根据投影点云确定距离最优直线对在第二预设范围内的点,得到第二点云数据。
20.在其中一个实施例中,上述的将第一点云数据对应的三维点云投影到二维平面中,得到投影点云,包括:
21.根据第一点云数据以及预先训练的图数据网络模型,得到第三点云数据,图神经网络模型用于对第一点云数据进行非线性变换,得到各点的类别标签值,以便根据各点的类别标签值对各点进行过滤,得到第三点云数据;
22.将第三点云数据对应的三维点云投影到二维平面中,得到投影点云。
23.在其中一个实施例中,上述的方法还包括:
24.根据第一点云数据中各点的坐标值、当前车辆的位姿以及当前车辆的尺寸信息,对第一点云数据进行过滤,得到第四点云数据;
25.上述的根据第一点云数据以及预先训练的图数据网络模型,得到第三点云数据,包括:
26.根据第四点云数据以及预先训练的图数据网络模型,得到第三点云数据。
27.在其中一个实施例中,上述的根据投影点云中距离各直线对在第一预设范围内的点,确定各直线对的质量,包括:
28.将各直线对第一预设范围内的投影点云投影至对应的直线对上,得到各直线对上的各目标投影点;
29.根据各直线对上的各目标投影点构成的连续性关系,确定各直线对的质量。
30.在其中一个实施例中,上述的根据第二点云数据确定目标直线,并根据目标直线确定偏航角,包括:
31.根据随机抽样一致性算法对第二点云数据进行预设数目次迭代抽样;
32.根据最小二乘法对各次抽取的点云数据进行直线拟合,确定各次迭代对应的直线;
33.根据各次抽取的点云数据确定各次迭代对应的直线的质量,并根据各次迭代对应的直线的质量确定目标直线;
34.根据目标直线与当前车辆的车头中轴线的夹角,得到偏航角。
35.一种挂车偏航角的确定装置,方法包括:
36.第一获取模块,用于获取第一点云数据,第一点云数据为当前车辆当前帧的点云数据;
37.第二获取模块,用于获取历史直线参数,并根据历史直线参数确定搜索范围,历史直线参数为根据当前车辆历史帧的点云数据确定的当前车辆历史帧的车挂的边缘线的参数;
38.确定模块,用于根据搜索范围、车挂的宽度以及第一点云数据,确定最优直线对,并根据最优直线对,确定第二点云数据;
39.处理模块,用于根据第二点云数据确定目标直线,并根据目标直线确定偏航角。
40.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:
41.获取第一点云数据,第一点云数据为当前车辆当前帧的点云数据;
42.获取历史直线参数,并根据历史直线参数确定搜索范围,历史直线参数为根据当前车辆历史帧的点云数据确定的当前车辆历史帧的车挂的边缘线的参数;
43.根据搜索范围、车挂的宽度以及第一点云数据,确定最优直线对,并根据最优直线对,确定第二点云数据;
44.根据第二点云数据确定目标直线,并根据目标直线确定偏航角。
45.一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
46.获取第一点云数据,第一点云数据为当前车辆当前帧的点云数据;
47.获取历史直线参数,并根据历史直线参数确定搜索范围,历史直线参数为根据当前车辆历史帧的点云数据确定的当前车辆历史帧的车挂的边缘线的参数;
48.根据搜索范围、车挂的宽度以及第一点云数据,确定最优直线对,并根据最优直线对,确定第二点云数据;
49.根据第二点云数据确定目标直线,并根据目标直线确定偏航角。
50.上述车挂偏航角的确定方法、装置、计算机设备和存储介质,通过获取第一点云数据,第一点云数据为当前车辆当前帧的点云数据;获取历史直线参数,并根据历史直线参数确定搜索范围,历史直线参数为根据当前车辆历史帧的点云数据确定的当前车辆历史帧的车挂的边缘线的参数;根据搜索范围、车挂的宽度以及第一点云数据,确定最优直线对,并根据最优直线对,确定第二点云数据;根据第二点云数据确定目标直线,并根据目标直线确定偏航角。本技术通过对直线的搜索,实现对点云数据的过滤,对直线进行搜索时是成对搜索的,这更符合挂车的两侧边缘线的结构,对过滤后的点云进行直线拟合,得到目标直线。具体而言,本技术利用历史直线参数确定直线的搜索范围,初步缩小了搜索范围,加快直线的确定速度。另外,本技术通过结合车挂的宽度,搜索时同时搜索车挂两侧的一对边缘线,可以有效减少由其他噪点所带来的干扰的问题。而传统技术在对点云进行过滤时,是根据点的坐标值以及车的尺寸信息进行过滤,这种过滤方式不够精细化,可能使得带入很多的噪点。例如,当存在雷达反射噪点或周围其他车直线噪点的情况,点云中可能存在两条以上直线,如果仅仅搜索一条直线可能会导致其他车的侧面点云被保留,而造成干扰。
附图说明
51.图1为一个实施例中车挂偏航角的确定方法的应用环境图;
52.图2为一个实施例中车挂偏航角的确定方法的流程示意图;
53.图3为一个实施例中当前车辆的第一点云数据所在坐标系的示意图;
54.图4为一个实施例中根据搜索范围、车挂的宽度以及第一点云数据,确定最优直线对,并根据最优直线对,确定第二点云数据步骤的流程示意图;
55.图5为一个实施例中对第一点云数据进行筛选,得到第二点云数据的示意图;
56.图6为一个实施例中图神经网络模型对第一点云数据进行过滤的示意图;
57.图7为一个实施例中确定直线质量的原理示意图;
58.图8为一个实施例中最优直线对的结构示意图;
59.图9为一个实施例中根据第二点云数据确定目标直线,并根据目标直线确定偏航角步骤的流程示意图;
60.图10为另一个实施例中车挂偏航角的确定方法的流程示意图;
61.图11为一个实施例中挂车偏航角的确定装置的结构框图;
62.图12为一个实施例中计算机设备的内部结构图。
具体实施方式
63.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。
64.请参考图1,图1为本技术一示例性实施例提供的一种车挂偏航角的确定方法的应用环境示意图。如图1所示,该应用环境中包括当前车辆100,当前车辆100包括车挂101。该当前车辆100上还安装有激光雷达扫描设备102。当前车辆100在执行自动驾驶的行驶过程中,激光雷达扫描设备102对当前车辆100进行实时扫描,得到第一点云数据,第一点云数据为当前车辆当前帧的点云数据。当前车辆100上装载有智能终端,该智能终端可以获取激光雷达扫描设备102所采集的第一点云数据,获取历史直线参数,并根据历史直线参数确定搜索范围,历史直线参数为根据当前车辆历史帧的点云数据确定的当前车辆历史帧的车挂的边缘线的参数;根据搜索范围、车挂101的宽度以及第一点云数据,确定最优直线对,并根据最优直线对,确定第二点云数据;根据第二点云数据确定目标直线,并根据目标直线确定偏航角,以实现本技术的车挂偏航角的确定方法。
65.在一个实施例中,如图2所示,提供了一种车挂偏航角的确定方法,以该方法应用于图1中的智能终端为例进行说明,包括以下步骤:
66.s11、获取第一点云数据,第一点云数据为当前车辆当前帧的点云数据。
67.本技术中,上述的第一点云数据为当前车辆在执行自动驾驶过程中,安装于当前车辆上的激光雷达扫描设备实时扫描得到的当前车辆当前帧的点云数据。其中,激光雷达扫描设备可以为一个或者多个。一种实施方式中,可以在当前车辆的左右后视镜旁边各设置一个激光雷达扫描设备。
68.具体的,第一点云数据为当前车辆当前帧的对应各点的坐标值、颜色信息、反射强度信息以及平面法向量等。
69.当前车辆在执行自动驾驶过程中,激光雷达扫描设备实时扫描当前车辆,得到第一点云数据,并将第一点云数据发送至智能终端,由智能终端执行对第一点云数据的处理。本技术中的激光雷达扫描设备可以为雷达传感器,该雷达传感器可以为一个,也可以包括左右两个,同时采集两部分的点云数据,也可以为其他数目个,在此不做具体限定。
70.s12、获取历史直线参数,并根据历史直线参数确定搜索范围,历史直线参数为根据当前车辆历史帧的点云数据确定的当前车辆历史帧的车挂的边缘线的参数。
71.如图3所示,图3为一种实施例中,当前车辆的第一点云数据所在坐标系的示意图。在图3中,当前车辆30包括车头31以及车挂32。本技术中,激光雷达扫描设备所扫描得到的点云数据为三维空间中的点,各点的坐标值为三维坐标。当前车辆的车头的位姿可以由硬件提供,本技术中的所有点云数据处于以车头为中心的局部坐标系之下。在图3中,本技术的第一点云数据处于以车头31的中轴线为y轴,车头31的中心点为原点,与y轴垂直的直线为x轴,与xy平面垂直的直线为z轴(图未示)的三维坐标系下。
72.本技术中,上述的当前车辆可以包括车头以及车挂。车挂包括两侧的边缘线。本技术,实时对当前车辆进行扫描,得到各帧的点云数据,并对各帧的点云数据进行处理,得到
各帧的点云数据对应的直线参数。其中,历史直线参数为当前车辆的历史帧对应的直线参数,该直线为当前车辆的车挂的两侧的边缘线,历史直线参数具体可以包括直线与y轴的夹角以及直线在x轴上的截距。另一种实施方式中,该历史直线参数也可以为直线的斜率以及直线与x轴的夹角等其他可以确定一条直线的参数,在此不做具体限定。
73.本技术中,上述的搜索范围可以为偏航角的范围值以及直线在x轴上的截距的范围值。该偏航角即为上述的直线与y轴的夹角。假设当前帧为第t帧,则上述的历史帧可以为第t-1帧或者第t-2帧或者第t-n帧等。也可以为多帧,在此不做具体限定。一般而言,取t-1帧作为这里的历史帧来确定上述的搜索范围。
74.本技术在根据根据历史直线参数确定搜索范围时,可以分别根据历史直线参数中的直线与y轴的夹角以及直线在x轴上的截距来确定当前帧中直线与y轴的夹角的范围值以及当前帧中直线在x轴上的截距的范围值。
75.s13、根据搜索范围、车挂的宽度以及第一点云数据,确定最优直线对,并根据最优直线对,确定第二点云数据。
76.本技术中,上述的最优直线对为根据搜索范围、车挂的宽度以及第一点云数据对车挂的两侧的边缘线进行预测得到的一对直线。
77.本技术在对第一点云数据进行筛选过滤时,是通过对直线进行搜索来过滤的,在对直线进行搜索时,是成对进行搜索的,即搜索时结合车挂的宽度,同时搜索车挂两侧的一对直线,这样可以使得算法更为鲁棒,过滤更加精准。具体的,根据上述的搜索范围可以得到当前帧对应的车挂两侧的边缘线的直线参数的范围值,根据该范围值可以确定多条直线,进一步根据车挂宽度可以对多对直线进行过滤,得到上述的最优直线对,过滤掉距离该最优直线对距离太远的点,得到第二点云数据。
78.s14、根据第二点云数据确定目标直线,并根据目标直线确定偏航角。
79.本技术中,上述的目标直线即为上述的车挂的其中一侧的边缘线,根据该目标直线与y轴的夹角,可以得到上述的偏航角。
80.根据第二点云数据确定目标直线,可以通过对第二点云数据的坐标值进行直线拟合,得到上述的目标直线。
81.在其中一个实施例中,上述的历史帧包括前一帧,历史直线参数包括前一帧中车挂的两侧边缘线中目标边缘线的参数,根据历史直线参数确定搜索范围,包括:
82.根据前一帧中车挂的目标边缘线的参数以及预设阈值,确定当前帧中目标边缘线的参数的范围值,得到搜索范围。
83.本技术中,假设上述的历史直线参数为前一帧中车挂的目标边缘线与y轴的夹角以及在x轴上的截距。假设当前帧为t时刻的帧,历史帧为t-1时刻对应的帧,第t-1时刻对应的历史直线参数分别为直线与y轴的夹角为30度,在x轴上的截距为1米,则根据该历史直线参数可以确定搜索范围为,t时刻的目标边缘线与y轴的夹角的范围值[30-δθ,30 δθ],其中,δθ为可设置的参数,当前帧的目标边缘线在x轴上的截距的范围为[1-δx,1 δx]米,其中δx为可设置的参数。
[0084]
需要说明的是,在特殊情况下,比如t=0时,t-1时刻则没有任何结果,此时我们使用最大搜索范围,即偏航角的范围为[-90,90]度,目标直线在x轴截距的范围为[1-δw,1 δw]米,其中δw是可设置的参数。此外,若由于遮挡等特殊情况导致t-1时刻没有结果,但
是t-δt时刻(δt是可以设置的参数,比如2)有结果时,我们则利用t-δt时刻对应的目标边缘是按的参数确定搜索范围,并动态扩大搜索范围。例如,可以简单地让上述的δθ以及δx扩大为原来的δt倍。
[0085]
本技术中,通过该实施方式,可以结合历史时刻的信息,缩小搜索范围,加速了搜索过程。
[0086]
在其中一个实施例中,如图4所示,上述的根据搜索范围、车挂的宽度以及第一点云数据,确定最优直线对,并根据最优直线对,确定第二点云数据,可以包括:
[0087]
s41、将第一点云数据对应的三维点云投影到二维平面中,得到投影点云;
[0088]
s42、根据搜索范围以及预设的搜索间隔,确定各预测直线参数;
[0089]
s43、根据各预测直线参数以及当前车辆的车挂宽度,确定多对直线对;
[0090]
s44、根据投影点云中距离各直线对在第一预设范围内的点,确定各直线对的质量;
[0091]
s45、根据各直线对的质量,确定最优直线对;
[0092]
s46、根据投影点云确定距离最优直线对在第二预设范围内的点,得到第二点云数据。
[0093]
本技术中,上述的将第一点云数据对应的三维点云投影到二维平面中,得到投影点云,可以包括:
[0094]
将第一点云数据的各点投影到xy平面,得到xy平面上的各投影点云。具体的,丢弃各点的x、y以及z坐标中的z坐标,得到各点在xy平面下的投影点云,其中每个投影点包含(x,y)坐标。
[0095]
上述的搜索间隔为预先设定的数值。本技术中,例如,设定偏航角的搜索间隔为10度,两侧边缘线在x轴上的截距的搜索间隔为0.5米。当搜索范围为偏航角的范围为[20,40]度,两侧边缘线中的其中一条边缘线在x轴上的截距的范围为[0.5,1.5]米时。则可以得到各预测直线参数的组合包括:
[0096]
(20度,0.5米)、(30度,0.5米)、(40度,0.5米)、(20度,1.0米)、(30度,1.0米)、(40度,1.0米)、(20度,1.5米)、(30度,1.5米)以及(40度,1.5米)。
[0097]
进一步的,对于每一个预测直线参数的组合,可以在点云中作出相应的直线,再根据车挂的宽度可以作出每一条直线成对的另一条直线,由此可以确定多对直线对。
[0098]
进一步的,上述的根据投影点云中距离各直线对在第一预设范围内的点,确定各直线对的质量,可以包括:
[0099]
获取投影点云中距离各直线对在第一预设范围内的点,根据获取到的各点评估每条直线对的质量。
[0100]
选取质量最好的一对直线作为上述的最优直线对。
[0101]
其中,根据获取到的各点评估每条直线对的质量可以根据直线周围的点数来评估,也可以根据有效直线长度来进行评估。上述的第一预设范围可以为根据实际需求设定。
[0102]
上述的根据投影点云确定距离最优直线对在第二预设范围内的点,得到第二点云数据,可以包括:
[0103]
根据各投影点到最优直线对的距离,过滤掉距离最优直线对在第二预设范围以外的点,得到第二点云数据。
[0104]
其中,上述的第二预设范围可以根据实际需求进行设定。
[0105]
请参考图5,图5为一种实施例中,对第一点云数据进行筛选,得到第二点云数据的示意图。在图5中,包括当前车辆80、车头81以及头挂82。还包括对第一点云数据进行筛选保留下来的点83(以圆形示意)、被过滤掉的点84(以矩形示意)以及最优直线对85。由图5可知,被保留下来的各点83在最优直线对85的第二预设范围以内,构成了第二点云数据。
[0106]
本技术中,通过该实施方式,通过对直线的搜索实现对第一点云数据的过滤,利用了车挂的宽度,搜索时同时搜索一对直线,当存在雷达反射噪点或周围其他车直线噪点的情况,点云中可能存在两条以上直线。此时,如果仅仅搜索一条直线可能会导致其他车的侧面点云被保留,而造成干扰。本技术同时结合了历史信息缩小了搜索范围,加快了搜索速度。
[0107]
在其中一个实施例中,上述的将第一点云数据对应的三维点云投影到二维平面中,得到投影点云,可以包括:
[0108]
根据第一点云数据以及预先训练的图数据网络模型,得到第三点云数据,图神经网络模型用于对第一点云数据进行非线性变换,得到各点的类别标签值,以便根据各点的类别标签值对各点进行过滤,得到第三点云数据;
[0109]
将第三点云数据对应的三维点云投影到二维平面中,得到投影点云。
[0110]
本技术中,上述的图神经网络模型可以为一类可用于处理点云的算法的统称,通常可以执行点云语义分割任务的网络都可以被训练来作为该图神经网络模型。比如,常见的图神经网络模型有:pointnet、pointnet 以及pointtransformer等。
[0111]
上述的根据第一点云数据以及预先训练的图数据网络模型,得到第三点云数据,可以包括:
[0112]
通过图神经网络模型对第一点云数据进行处理,得到各点对应的类别标签值;
[0113]
根据各点对应的类别标签值利用sigmoid函数将类别标签值缩放到(0,1)区间;
[0114]
将缩放后的取值与预设阈值进行比对,将缩放后的取值大于预设阈值的点,确定为噪点,删除各噪点,得到第三点云数据。
[0115]
其中,sigmoid函数也叫logistic函数,用于隐层神经元输出,取值范围为(0,1),它可以将一个实数映射到(0,1)的区间,可以用来做二分类。
[0116]
具体的,将第一点云数据输入图神经网络模型。假设包括m1个点,每个点包含(x,y,z)的三维坐标。通过图神经网络模型的多层非线性变换,最终可以将每个点映射至一维空间,得到预测的每个点的类别标签值。为了获得每个点属于噪音的概率,利用sigmoid函数将类别标签值的取值缩放到(0,1)区间,将缩放后的取值与预设阈值进行比对,若概率大于预设阈值(比如0.5),则该点被认为是噪点。
[0117]
请参考图6,图6为一种实施例中,图神经网络模型对第一点云数据进行过滤的示意图。在图6中,当前车辆50包括车头51以及车挂52。图5中的圆形代表的点53为过滤后留下的点,矩形代表的点54为被图神经网络过滤掉的点。
[0118]
本技术中,上述的图神经网络模型通过对各点计算类别标签值,起到编码每个点的语义信息的作用,包括局部几何结构(如拓扑结构、曲率以及密度等)和全局上下文(如左右俩侧车挂上点的对称性),有助于区分车挂侧面平面上的雷达点与雨水、轮胎以及树叶上的雷达噪点。车挂周围的噪点会影响候选目标直线的确定结果,进而导致偏航角预测的误
差增大。传统技术中未利用图神经网络模型对点云数据进行过滤,丢失了点云的三维结构,很难过滤掉这些具有特殊几何语义的噪点。
[0119]
在其中一个实施例中,上述的方法还可以包括:
[0120]
根据第一点云数据中各点的坐标值、当前车辆的位姿以及当前车辆的尺寸信息,对第一点云数据进行过滤,得到第四点云数据;
[0121]
根据第一点云数据以及预先训练的图数据网络模型,得到第三点云数据,包括:
[0122]
根据第四点云数据以及预先训练的图数据网络模型,得到第三点云数据。
[0123]
本技术中,上述的当前车辆的位姿可以包括当前车辆的位置以及旋转。上述的当前车辆的尺寸信息可以包括当前车辆的长、宽以及高度。在将第一点云数据输入图神经网络模型之前,还可以对第一点云数据进行一次过滤操作。具体而言,本技术根据各点的z坐标值过滤掉不属于挂车高度范围内的点。根据各点的x以及y坐标值、车头和车挂的尺寸过滤掉距离车挂太远的点,过滤后得到第三点云数据,将该第三点云数据输入图神经网络模型进行处理。
[0124]
本技术通过该实施方式可以对第一点云数据进行初步过滤,根据各点的坐标值以及当前车辆的尺寸筛选出明显不属于当前车辆上的点,本技术通过多次过滤,使得后续的数据处理结果更加精准。
[0125]
在其中一个实施例中,上述的根据投影点云中距离各直线对在第一预设范围内的点,确定各直线对的质量,可以包括:
[0126]
将各直线对第一预设范围内的投影点云投影至对应的直线对上,得到各直线对上的各目标投影点;
[0127]
根据各直线对上的各目标投影点之间的距离,确定各直线对的质量。
[0128]
请参考图7,图7为一种实施例中,确定直线质量的示意图。在图7中,包括各直线对中的其中一条直线61、直线周围的点62(以三角形示意)以及63(以圆形示意)。其中,62为在第一预设范围以外的点,63为第一预设范围内的点。本技术中,对于直线质量的估计,如图7所示,将距离各直线在上述的第一预设范围内的点63用于评估直线质量。所有距离各直线在第一预设范围内的点63会被沿着垂直直线的方向投影到对应直线上,得到各目标投影点64,64具体包括点a、b、c、d、e以及f,其中,bc、cd以及de的长度相等。进一步以每个目标投影点64为圆心、以预设数值为半径,作一个固定半径的圆,圆形区域65内的所有点算作每个目标投影点的邻居,圆心与其对应的邻居的连线被视为边。相加所有边的长度,同时删除重叠部分的边的长度,得到各直线的有效长度。将各直线的有效长度与其成对的那条直线的有效长度相加,得到各对直线的有效长度。
[0129]
需要说明的是,如果某个点为孤立点,即以该点为圆心,以预设数值为半径作圆的圆形区域内无其他点,则对于这样的独立点,在计算有效长度时,需加上一个预先设定的固定参数。如上图7中,该直线的有效长度为2e be的长度。其中,e是预先设定的固定参数。
[0130]
本技术中,每次搜索时,同时计算一对直线的质量,并将其相加作为该次搜索总的有效长度,然后选出有效长度最长的一对直线作为最优直线对。
[0131]
本技术中,在计算每条直线的质量的时候,显式建模了直线的结构,将各直线周围的点投影到该直线上计算有效长度,可以减小密集噪音的影响。
[0132]
请参考图8,图8为一种实施例中,最优直线对的结构示意图。在图8中,包括直线对
71以及直线对72。其中,直线对71为根据传统的技术方案得到的最优直线对。直线对72为根据本技术的技术方案得到的直线对。
[0133]
传统的技术方案(比如霍夫变换)中通常使用点的数量来评估直线质量的优劣,得到的最优直线对如图7中的直线对71。采用本技术的技术方案计算直线对的质量,可以得到最优直线对72。从图7可以看出,虽然直线对71包含更多点,但其有效长度小于直线对72。因此,根据本技术的技术方案可以得出直线对72的质量明显优于直线对71。
[0134]
在其中一个实施例中,如图9所示,上述的根据第二点云数据确定目标直线,并根据目标直线确定偏航角,可以包括:
[0135]
s91、根据随机抽样一致性算法对第二点云数据进行预设数目次迭代抽样;
[0136]
s92、根据最小二乘法对各次抽取的点云数据进行直线拟合,确定各次迭代对应的直线;
[0137]
s93、根据各次抽取的点云数据确定各次迭代对应的直线的质量,并根据各次迭代对应的直线的质量确定目标直线;
[0138]
s94、根据目标直线与当前车辆的车头中轴线的夹角,得到偏航角。
[0139]
本技术中,上述的目标直线为车挂两侧的其中一条直线。本技术得到最优直线对周围的第二点云数据之后,将第二点云数据作ransac(随机抽样一致性算法)处理。ransac算法通过子集采样迭代式地过滤掉两边的噪点。
[0140]
例如,假设第二点云数据中,有l个点处于距离左侧车挂边缘线的第二阈值范围内,有r个点处于距离右侧车挂边缘线的第二阈值范围内。对于左右两侧的点,我们分别进行ransac过滤。针对左侧的l个点,我们先从中随机抽取l1-1个点,对该l1-1个点的点云数据利用最小二乘法进行直线拟合,得到一条直线,计算该直线的质量m1,计算直线质量的过程如上文,在此不做具体赘述。值得注意的是,为了使得ransac的过滤更加精细化,此时计算直线质量时确定直线周围点的阈值通常小于之前所述的直线搜索步骤所设定的值。然后,我们利用该直线过滤掉l个点中距离该直线过远的点,过滤方式如上文,过滤后剩余l1-2个点。接着,我们利用剩余的l1-2个点重复上述步骤。重复的步骤包括利用最小二乘法进行直线拟合,计算直线质量和从l个点中过滤得到距离新直线较近的点。直到某次重复后得到的直线质量不如前一次或者超过最大重复次数限制时,我们停止重复,完成本次迭代。其中,重复次数是可以设定的参数。
[0141]
完成第一次完整迭代后,再从l个点中随机抽取l2-1个点,重新进行迭代。
[0142]
以此类推,可以得到各次抽样迭代后最终对应的直线的质量m1、m2、m3...mn。根据各次抽样迭代后得到的直线的质量,选出质量最优的直线作为针对左侧l个点的ransac结果。同理,我们可以获得右侧r个点的ransac结果,并从左右ransac结果中选出质量最优的直线,得到目标直线。
[0143]
本技术中,由于在确定第二点云数据的过程中,即直线搜索的过程中总是把直线周围的点保留下来,考虑到时间效率,这个距离的阈值会设置较大,因此可能存在一些偏离的噪点。如果直接使用最小二乘法,那么最后估计出来的结果会存在少量偏差,因此,使用ransac算法可以进行精细化处理,减少偏差。
[0144]
如图10所示,本技术的一种可能的实施方式中,上述的车挂偏航角的确定方法,可以包括如下步骤:
[0145]
s101、获取第一点云数据;
[0146]
s102、根据第一点云数据中各点的坐标值、当前车辆的位姿以及当前车辆的尺寸信息,对第一点云数据进行过滤,得到第四点云数据;
[0147]
s103、根据第四点云数据以及预先训练的图数据网络模型,得到第三点云数据;
[0148]
s104、将第三点云数据对应的三维点云投影到二维平面中,得到投影点云;
[0149]
s105、获取历史直线参数,并根据历史直线参数确定搜索范围;
[0150]
s106、根据搜索范围、车挂的宽度以及投影点云,确定最优直线对,并根据最优直线对以及投影点云,确定第二点云数据;
[0151]
s107、利用ransac算法以及最小二乘法对第二点云数据进行处理,确定目标直线,并根据目标直线确定偏航角。
[0152]
本技术中,常见的密集噪点有雨水噪点、树叶噪点、雷达反射噪点。当这些噪点距离车挂侧面较近或者呈现出类似平面的结构时,上述的图神经网络模型可能难以过滤他们。而ransac算法由于具有随机性,有可能无法覆盖所有区域,相比上述的图神经网络模型而言不够稳定,因此在上述的图神经网络模型与ransac算法中间添加步骤s94到s96的直线搜索的步骤,可以增加ransac算法搜索的稳定性,即降低由于ransac随机性导致的可能的误差的上限,另外,本技术利用车挂宽度和直线有效长度可以进一步减少噪点影响。
[0153]
在一个实施例中,如图11所示,提供了一种挂车偏航角的确定装置,包括:第一获取模块11、第二获取模块12、确定模块13和处理模块,其中:
[0154]
第一获取模块11,用于获取第一点云数据,第一点云数据为当前车辆当前帧的点云数据;
[0155]
第二获取模块12,用于获取历史直线参数,并根据历史直线参数确定搜索范围,历史直线参数为根据当前车辆历史帧的点云数据确定的当前车辆历史帧的车挂的边缘线的参数;
[0156]
确定模块13,用于根据搜索范围、车挂的宽度以及第一点云数据,确定最优直线对,并根据最优直线对,确定第二点云数据;
[0157]
处理模块14,用于根据第二点云数据确定目标直线,并根据目标直线确定偏航角。
[0158]
在其中一个实施例中,上述的历史帧包括前一帧,上述的历史直线参数包括前一帧中车挂的两侧边缘线中目标边缘线的参数,上述的第二获取模块12可以根据前一帧中车挂的目标边缘线的参数以及预设阈值,确定当前帧中目标边缘线的参数的范围值,得到搜索范围。
[0159]
在其中一个实施例中,上述的确定模块13可以将第一点云数据对应的三维点云投影到二维平面中,得到投影点云,根据搜索范围以及预设的搜索间隔,确定各预测直线参数,根据各预测直线参数以及当前车辆的车挂宽度,确定多对直线对,根据投影点云中距离各直线对在第一预设范围内的点,确定各直线对的质量,根据各直线对的质量,确定最优直线对,根据投影点云确定距离最优直线对在第二预设范围内的点,得到第二点云数据。
[0160]
在其中一个实施例中,上述的确定模块13还可以根据第一点云数据以及预先训练的图数据网络模型,得到第三点云数据,图神经网络模型用于对第一点云数据进行非线性变换,得到各点的类别标签值,以便根据各点的类别标签值对各点进行过滤,得到第三点云数据,将第三点云数据对应的三维点云投影到二维平面中,得到投影点云。
[0161]
在其中一个实施例中,上述的挂车偏航角的确定装置还包括过滤模块(图未示),该过滤模块可以根据第一点云数据中各点的坐标值、当前车辆的位姿以及当前车辆的尺寸信息,对第一点云数据进行过滤,得到第四点云数据,上述的确定模块13还可以根据第四点云数据以及预先训练的图数据网络模型,得到第三点云数据。
[0162]
在其中一个实施例中,上述的确定模块13还可以将各直线对第一预设范围内的投影点云投影至对应的直线对上,得到各直线对上的各目标投影点,根据各直线对上的各目标投影点之间的距离,确定各直线对的质量。
[0163]
在其中一个实施例中,上述的处理模块14可以根据随机抽样一致性算法对第二点云数据进行预设数目次迭代抽样,根据最小二乘法对各次抽取的点云数据进行直线拟合,确定各次迭代对应的直线,根据各次抽取的点云数据确定各次迭代对应的直线的质量,并根据各次迭代对应的直线的质量确定目标直线,根据目标直线与当前车辆的车头中轴线的夹角,得到偏航角。
[0164]
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图12所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储智能家居设备的运行数据等数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现编译虚拟机的资源分配方法。
[0165]
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:获取第一点云数据,第一点云数据为当前车辆当前帧的点云数据;获取历史直线参数,并根据历史直线参数确定搜索范围,历史直线参数为根据当前车辆历史帧的点云数据确定的当前车辆历史帧的车挂的边缘线的参数;根据搜索范围、车挂的宽度以及第一点云数据,确定最优直线对,并根据最优直线对,确定第二点云数据;根据第二点云数据确定目标直线,并根据目标直线确定偏航角。
[0166]
在一个实施例中,上述的历史帧包括前一帧,上述的历史直线参数包括前一帧中车挂的两侧边缘线中目标边缘线的参数,处理器执行计算机程序实现上述的根据历史直线参数确定搜索范围步骤时,具体实现以下步骤:
[0167]
根据前一帧中车挂的目标边缘线的参数以及预设阈值,确定当前帧中目标边缘线的参数的范围值,得到搜索范围。
[0168]
在一个实施例中,处理器执行计算机程序实现上述的根据搜索范围、车挂的宽度以及第一点云数据,确定最优直线对,并根据最优直线对,确定第二点云数据步骤时,具体实现以下步骤:
[0169]
将第一点云数据对应的三维点云投影到二维平面中,得到投影点云;
[0170]
根据搜索范围以及预设的搜索间隔,确定各预测直线参数;
[0171]
根据各预测直线参数以及当前车辆的车挂宽度,确定多对直线对;
[0172]
根据投影点云中距离各直线对在第一预设范围内的点,确定各直线对的质量;
[0173]
根据各直线对的质量,确定最优直线对;
[0174]
根据投影点云确定距离最优直线对在第二预设范围内的点,得到第二点云数据。
[0175]
在一个实施例中,处理器执行计算机程序实现上述的将第一点云数据对应的三维点云投影到二维平面中,得到投影点云步骤时,具体实现以下步骤:
[0176]
根据第一点云数据以及预先训练的图数据网络模型,得到第三点云数据,图神经网络模型用于对第一点云数据进行非线性变换,得到各点的类别标签值,以便根据各点的类别标签值对各点进行过滤,得到第三点云数据;
[0177]
将第三点云数据对应的三维点云投影到二维平面中,得到投影点云。
[0178]
在一个实施例中,处理器执行计算机程序时,具体还实现以下步骤:
[0179]
根据第一点云数据中各点的坐标值、当前车辆的位姿以及当前车辆的尺寸信息,对第一点云数据进行过滤,得到第四点云数据;
[0180]
处理器执行计算机程序实现上述的根据第一点云数据以及预先训练的图数据网络模型,得到第三点云数据步骤时,具体实现以下步骤:
[0181]
根据第四点云数据以及预先训练的图数据网络模型,得到第三点云数据。
[0182]
在一个实施例中,处理器执行计算机程序实现上述的根据投影点云中距离各直线对在第一预设范围内的点,确定各直线对的质量步骤时,具体实现以下步骤:
[0183]
将各直线对第一预设范围内的投影点云投影至对应的直线对上,得到各直线对上的各目标投影点;
[0184]
根据各直线对上的各目标投影点之间的距离,确定各直线对的质量。
[0185]
在一个实施例中,处理器执行计算机程序实现上述的根据第二点云数据确定目标直线,并根据目标直线确定偏航角步骤时,具体实现以下步骤:
[0186]
根据随机抽样一致性算法对第二点云数据进行预设数目次迭代抽样;
[0187]
根据最小二乘法对各次抽取的点云数据进行直线拟合,确定各次迭代对应的直线;
[0188]
根据各次抽取的点云数据确定各次迭代对应的直线的质量,并根据各次迭代对应的直线的质量确定目标直线;
[0189]
根据目标直线与当前车辆的车头中轴线的夹角,得到偏航角。
[0190]
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:获取第一点云数据,第一点云数据为当前车辆当前帧的点云数据;获取历史直线参数,并根据历史直线参数确定搜索范围,历史直线参数为根据当前车辆历史帧的点云数据确定的当前车辆历史帧的车挂的边缘线的参数;根据搜索范围、车挂的宽度以及第一点云数据,确定最优直线对,并根据最优直线对,确定第二点云数据;根据第二点云数据确定目标直线,并根据目标直线确定偏航角。
[0191]
在一个实施例中,上述的历史帧包括前一帧,上述的历史直线参数包括前一帧中车挂的两侧边缘线中目标边缘线的参数,计算机程序被处理器执行实现上述的根据历史直线参数确定搜索范围步骤时,具体实现以下步骤:
[0192]
根据前一帧中车挂的目标边缘线的参数以及预设阈值,确定当前帧中目标边缘线的参数的范围值,得到搜索范围。
[0193]
在一个实施例中,计算机程序被处理器执行实现上述的根据搜索范围、车挂的宽
度以及第一点云数据,确定最优直线对,并根据最优直线对,确定第二点云数据步骤时,具体实现以下步骤:
[0194]
将第一点云数据对应的三维点云投影到二维平面中,得到投影点云;
[0195]
根据搜索范围以及预设的搜索间隔,确定各预测直线参数;
[0196]
根据各预测直线参数以及当前车辆的车挂宽度,确定多对直线对;
[0197]
根据投影点云中距离各直线对在第一预设范围内的点,确定各直线对的质量;
[0198]
根据各直线对的质量,确定最优直线对;
[0199]
根据投影点云确定距离最优直线对在第二预设范围内的点,得到第二点云数据。
[0200]
在一个实施例中,计算机程序被处理器执行实现上述的将第一点云数据对应的三维点云投影到二维平面中,得到投影点云步骤时,具体实现以下步骤:
[0201]
根据第一点云数据以及预先训练的图数据网络模型,得到第三点云数据,图神经网络模型用于对第一点云数据进行非线性变换,得到各点的类别标签值,以便根据各点的类别标签值对各点进行过滤,得到第三点云数据;
[0202]
将第三点云数据对应的三维点云投影到二维平面中,得到投影点云。
[0203]
在一个实施例中,计算机程序被处理器执行时,具体还实现以下步骤:
[0204]
根据第一点云数据中各点的坐标值、当前车辆的位姿以及当前车辆的尺寸信息,对第一点云数据进行过滤,得到第四点云数据;
[0205]
计算机程序被处理器执行实现上述的根据第一点云数据以及预先训练的图数据网络模型,得到第三点云数据步骤时,具体实现以下步骤:
[0206]
根据第四点云数据以及预先训练的图数据网络模型,得到第三点云数据。
[0207]
在一个实施例中,计算机程序被处理器执行实现上述的根据投影点云中距离各直线对在第一预设范围内的点,确定各直线对的质量步骤时,具体实现以下步骤:
[0208]
将各直线对第一预设范围内的投影点云投影至对应的直线对上,得到各直线对上的各目标投影点;
[0209]
根据各直线对上的各目标投影点之间的距离,确定各直线对的质量。
[0210]
在一个实施例中,计算机程序被处理器执行实现上述的根据第二点云数据确定目标直线,并根据目标直线确定偏航角步骤时,具体实现以下步骤:
[0211]
根据随机抽样一致性算法对第二点云数据进行预设数目次迭代抽样;
[0212]
根据最小二乘法对各次抽取的点云数据进行直线拟合,确定各次迭代对应的直线;
[0213]
根据各次抽取的点云数据确定各次迭代对应的直线的质量,并根据各次迭代对应的直线的质量确定目标直线;
[0214]
根据目标直线与当前车辆的车头中轴线的夹角,得到偏航角。
[0215]
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括
随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。
[0216]
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
[0217]
以上实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术专利的保护范围应以所附权利要求为准。
再多了解一些

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

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

相关文献