发明内容
有鉴于此,本公开至少提供一种外参标定方法、装置、电子设备及存储介质。
第一方面,本公开提供了一种外参标定方法,包括:
获取设置在目标设备上的主雷达设备和辅雷达设备分别采集的点云数据;
将所述点云数据划分为地面点云数据和非地面点云数据;
基于所述主雷达设备和所述辅雷达设备分别对应的所述地面点云数据、和所述非地面点云数据,确定所述辅雷达设备对应的位移信息和欧拉角信息,其中,所述位移信息包含所述辅雷达设备与所述主雷达设备在不同方向上的位移偏差值,所述欧拉角信息包含所述辅雷达设备与所述主雷达设备在不同方向上的角度偏差值;
基于所述位移信息和欧拉角信息,生成所述辅雷达设备对应的坐标转换矩阵。
采用上述方法,通过对获取的主雷达设备采集的点云数据和辅雷达设备采集的点云数据进行划分,确定主雷达设备对应的地面点云数据、和非地面点云数据,以及确定辅雷达设备对应的地面点云数据、和非地面点云数据,由于地面是固定的平面,故可以将地面作为基准面,通过地面点云数据、和非地面点云数据,较准确的确定辅雷达设备对应的位移信息和欧拉角信息,进而可以基于位移信息和欧拉角信息,生成辅雷达设备对应的坐标转换矩阵,在无需特定场景和无需人工介入的情况下,实现了主雷达设备与辅雷达设备之间的外参标定,提高了外参标定的准确度和效率。
一种可能的实施方式中,针对所述主雷达设备采集的所述点云数据,所述将所述点云数据划分为地面点云数据和非地面点云数据,包括:
基于所述点云数据指示的点云点的高度信息,按照点云点的高度从低到高的顺序选择多个初始点云点,并确定所述多个初始点云点对应的平均高度;
基于每个初始点云点的高度与所述平均高度的高度差,从所述多个初始点云点中确定多个初始地面点云点;
基于确定的所述多个初始地面点云点对应的点云数据,确定所述主雷达设备对应的地面点云数据和非地面点云数据。
上述方法中,由于地面点云点的高度应该是较低的,且地面点云点的高度信息一致,故这里可以利用高度信息对初始点云点进行筛选,较准确的确定多个初始地面点云点,进而基于确定的多个初始地面点云点对应的点云数据,可以较准确的确定主雷达设备对应的地面点云数据和非地面点云数据。
一种可能的实施方式中,所述基于确定的所述多个初始地面点云点对应的点云数据,确定所述主雷达设备对应的地面点云数据和非地面点云数据,包括:
将所述多个初始地面点云点对应的点云数据存储至地面点云点集合中,基于所述地面点云点集合中当前包含的点云数据,生成目标平面拟合参数信息;
基于所述目标平面拟合参数信息,从所述主雷达设备采集的点云数据中筛选出中间地面点云点的点云数据和中间非地面点云点的点云数据;
将所述地面点云点集合中当前包含的点云数据删除,并将本次筛选得到的所述中间地面点云点的点云数据存储至所述地面点云点集合中,返回至基于所述地面点云点集合中当前包含的点云数据,生成目标平面拟合参数信息的步骤,直至满足预设截止条件为止;
将最后一次筛选后的所述中间地面点云点的点云数据,确定为最终划分的所述主雷达设备对应的地面点云数据;将最后一次筛选后的所述中间非地面点云点的点云数据,确定为最终划分的所述主雷达设备对应的非地面点云数据。
这里,通过多次筛选的方式,可以较准确的将主雷达设备的点云数据划分为地面点云数据和非地面点云数据。
一种可能的实施方式中,所述预设截止条件包括:筛选次数等于设置的次数阈值,和/或,本次筛选后生成的所述目标平面拟合参数信息与上一次筛选后生成的所述目标平面拟合参数信息的差异值小于设置的差异阈值。
一种可能的实施方式中,所述基于所述目标平面拟合参数信息,从所述主雷达设备采集的点云数据中筛选出中间地面点云点的点云数据和中间非地面点云点的点云数据,包括:
基于所述主雷达设备采集的点云数据中每个点云点的点云数据和所述目标平面拟合参数,确定每个点云点与所述目标平面拟合参数信息对应的目标平面之间的距离;
基于各个点云点与所述目标平面之间的距离和设置的距离阈值,从所述主雷达设备采集的点云数据中筛选出中间地面点云点的点云数据和中间非地面点云点的点云数据。
这里,可以利用点云点与目标平面之间的距离和设置的距离阈值,判断该点云点是否为目标平面上的内点,即判断该点云点是否为中间地面点云点,若点云点与目标平面之间的距离小于距离阈值,则该点云点是中间地面点云点。
一种可能的实施方式中,针对所述辅雷达设备采集的点云数据,所述将所述点云数据划分为地面点云数据和非地面点云数据,包括:
从所述辅雷达设备采集的点云数据中随机选择三个点云点的点云数据,基于选择的所述三个点云点的点云数据,确定所述三个点云点构成的平面的中间平面拟合参数信息;
基于所述中间平面拟合参数信息对所述辅雷达设备采集的点云数据进行筛选,确定中间地面点云数据和中间非地面点云数据,并统计所述中间地面点云数据中包含的地面点云点的数量;
重复N次从所述辅雷达设备采集的点云数据中随机选择三个点云点的点云数据,到所述统计所述中间地面点云数据包含的地面点云点的数量的步骤;其中,N为正整数;
基于N次确定的中间平面拟合参数信息、中间地面点云数据、中间非地面点云数据、和所述中间地面点云数据中包括的地面点云点的数量,确定所述辅雷达设备对应的地面点云数据和非地面点云数据。
由于主雷达设备与辅雷达设备的安装位置和/或安装角度不同,故使用不同的方法,分别对主雷达设备和辅雷达设备的点云数据进行划分,提高划分后得到的地面点云数据和非地面点云数据的准确度。
一种可能的实施方式中,所述基于N次确定的中间平面拟合参数信息、中间地面点云数据、中间非地面点云数据、和所述中间地面点云数据包括的地面点云点的数量,确定所述辅雷达设备对应的地面点云数据和非地面点云数据,包括:
确定N个所述中间地面点云数据包括的地面点云点的数量中的最大数量;
在所述最大数量大于设置的数量阈值的情况下,将最大数量对应的所述中间地面点云数据、和所述中间非地面点云数据,确定为所述辅雷达设备对应的所述地面点云数据和所述非地面点云数据。
考虑到,地面在点云数据对应的现实场景中的面积是较大的,其他平面比地面的面积小,故可以通过确定N个中间地面点云数据包括的地面点云点的数量中的最大数量,在该最大数量大于设置的数量阈值时,将最大数量对应的中间地面点云数据、中间非地面点云数据,确定为辅雷达设备对应的地面点云数据、非地面点云数据。
一种可能的实施方式中,在将所述点云数据划分为地面点云数据和非地面点云数据之后,所述方法还包括:
对所述主雷达设备和所述辅雷达设备对应的所述地面点云数据、所述非地面点云数据进行降采样处理,生成所述主雷达设备和所述辅雷达设备分别对应的处理后的所述地面点云数据、和处理后的非地面点云数据;
基于所述主雷达设备和所述辅雷达设备分别对应的所述地面点云数据、和所述非地面点云数据,确定所述辅雷达设备对应的位移信息和欧拉角信息,包括:
基于所述主雷达设备和所述辅雷达设备分别对应的所述处理后的地面点云数据、和所述处理后的非地面点云数据,确定所述辅雷达设备对应的位移信息和欧拉角信息。
采用上述方法,可以分别对主雷达设备和辅雷达设备对应的地面点云数据、非地面点云数据进行降采样处理,去除无用的噪点,提高确定的位移信息和欧拉角信息的效率和准确度。
一种可能的实施方式中,在将所述点云数据划分为地面点云数据和非地面点云数据之后,还包括:
确定所述地面点云数据对应的平面拟合参数信息;
所述基于所述主雷达设备和所述辅雷达设备分别对应的所述地面点云数据、和所述非地面点云数据,确定所述辅雷达设备对应的位移信息和欧拉角信息,包括:
基于所述主雷达设备和所述辅雷达设备分别对应的所述地面点云数据、和所述非地面点云数据,以及所述地面点云数据对应的所述平面拟合参数信息,确定所述辅雷达设备对应的位移信息和欧拉角信息。
一种可能的实施方式中,所述基于所述主雷达设备和所述辅雷达设备分别对应的所述地面点云数据、和所述非地面点云数据,以及所述地面点云数据对应的所述平面拟合参数信息,确定所述辅雷达设备对应的位移信息和欧拉角信息,包括:
基于所述主雷达设备对应的所述地面点云数据和所述平面拟合参数信息,以及所述辅雷达设备对应的所述地面点云数据和所述平面拟合参数信息,确定所述欧拉角信息中的翻滚角和俯仰角、以及所述位移数据中的高度值;
基于所述主雷达设备对应的所述非地面点云数据、所述辅雷达设备对应的所述非地面点云数据、和设置的初始参数,确定所述欧拉角信息中的偏航角、和所述位移数据中的长度值和宽度值,其中,所述初始参数包括初始偏航角、初始长度值、初始宽度值。
由于翻滚角、俯仰角和高度值与地面点云数据有关,而偏航角、长度值和宽度值与非地面点云数据有关,故这里使用基于主雷达设备和辅雷达设备分别对应的地面点云数据、平面拟合参数信息,确定欧拉角信息中的翻滚角和俯仰角、以及位移数据中的高度值;以及使用主雷达设备和辅雷达设备分别对应的非地面点云数据和设置的初始参数,确定欧拉角信息中的偏航角、和位移数据中的长度值和宽度值。
一种可能的实施方式中,所述基于所述主雷达设备对应的所述地面点云数据和所述平面拟合参数信息,以及所述辅雷达设备对应的所述地面点云数据和所述平面拟合参数信息,确定所述欧拉角信息中的翻滚角和俯仰角、以及所述位移数据中的高度值,包括:
基于所述主雷达设备对应的所述平面拟合参数和所述辅雷达设备对应的所述平面拟合参数,确定待调整翻滚角、待调整俯仰角、以及待调整高度值;
基于所述主雷达设备对应的所述地面点云数据和所述辅雷达设备对应的所述地面点云数据,对所述待调整翻滚角、所述待调整俯仰角、以及所述待调整高度值进行调整,生成所述欧拉角信息中的翻滚角和俯仰角、以及所述位移数据中的高度值。
一种可能的实施方式中,所述基于所述主雷达设备对应的所述非地面点云数据、所述辅雷达设备对应的所述非地面点云数据、和设置的初始参数,确定所述欧拉角信息中的偏航角、和所述位移数据中的长度值和宽度值,包括:
基于所述主雷达设备对应的所述非地面点云数据、所述辅雷达设备对应的所述非地面点云数据、和设置的初始参数中的初始偏航角,生成待调整偏航角;
将所述待调整偏航角确定为所述欧拉角信息中的所述偏航角,将所述初始参数中的所述初始长度值、所述初始宽度值,确定为所述位移数据中的长度值和宽度值。
采用上述方法,可以在生成待调整偏航角后,将待调整偏航角确定为欧拉角信息中的偏航角,将初始参数中的初始长度值、初始宽度值,确定为位移数据中的长度值和宽度值,确定过程较为简单,提高偏航角、长度值和宽度值的确定效率。
一种可能的实施方式中,所述基于所述主雷达设备对应的所述非地面点云数据、所述辅雷达设备对应的所述非地面点云数据、和设置的初始参数,确定所述欧拉角信息中的偏航角、和所述位移数据中的长度值和宽度值,包括:
基于所述主雷达设备对应的所述非地面点云数据、所述辅雷达设备对应的所述非地面点云数据、和设置的初始参数中的初始偏航角,生成待调整偏航角;
基于所述主雷达设备对应的所述非地面点云数据、所述辅雷达设备对应的所述非地面点云数据、和设置的点云配准方法,对所述初始长度值、所述初始宽度值、和所述待调整偏航角进行优化,生成所述欧拉角信息中的偏航角、和所述位移数据中的长度值和宽度值。
采用上述方法,在生成待调整偏航角后,基于主雷达设备对应的非地面点云数据、辅雷达设备对应的非地面点云数据、和设置的点云配准方法,对初始长度值、初始宽度值、和待调整偏航角进行优化,生成较精准的欧拉角信息中的偏航角、和位移数据中的长度值和宽度值。
一种可能的实施方式中,所述基于所述主雷达设备对应的所述非地面点云数据、所述辅雷达设备对应的所述非地面点云数据、和设置的初始参数中的初始偏航角,生成待调整偏航角,包括:
将所述初始偏航角作为目标偏航角,将设置的所述初始偏航角对应的初始匹配阈值作为目标匹配阈值,基于设置的迭代参数、确定的迭代次数、和所述目标偏航角,确定与所述迭代次数匹配的目标偏航角集合;
基于所述主雷达设备对应的所述非地面点云数据、所述辅雷达设备对应的所述非地面点云数据,确定所述目标偏航角集合中每个中间偏航角的匹配分值,并确定各个中间偏航角对应的所述匹配分值中的最大匹配分值,其中,所述匹配分值用于表征在基于该中间偏航角对所述辅雷达设备对应的所述非地面点云数据进行调整后,调整后的非地面点云数据与所述主雷达设备对应的所述非地面点云数据的重合程度;
在所述最大匹配分值大于所述目标匹配阈值的情况下,更新迭代次数,并将所述最大匹配分值对应的中间偏航角作为目标偏航角,将所述最大匹配分值作为目标匹配阈值,返回至基于设置的迭代参数、确定的迭代次数、和所述目标偏航角,确定与所述迭代次数匹配的目标偏航角集合的步骤;
在所述最大匹配分值小于或等于所述目标匹配阈值的情况下,更新迭代次数,返回至基于设置的迭代参数、确定的迭代次数、和所述目标偏航角,确定与所述迭代次数匹配的目标偏航角集合的步骤;
在所述迭代次数大于设置的目标次数的情况下,将多个所述最大匹配分值中的最大分值对应的目标偏航角,确定为所述待调整偏航角。
采用上述方法,通过多次迭代的方法确定待调整偏航角,在迭代的过程中,不断的优化目标偏航角和目标匹配阈值,使得迭代过程不断优化,进而可以较准确的确定待调整偏航角。
一种可能的实施方式中,所述方法还包括:
利用生成的所述坐标转换矩阵,对所述辅雷达设备对应的所述点云数据进行调整,生成调整后的点云数据;
基于所述主雷达设备采集的所述点云数据和所述辅雷达设备对应的所述调整后的点云数据,确定所述目标设备所处的现实场景中包括的目标对象的检测结果。
采用上述方法,可以利用生成的坐标转换矩阵,对辅雷达设备对应的点云数据进行调整,生成调整后的点云数据,由于生成的坐标转换矩阵的准确率较高,使得生成的调整后的点云数据较为准确,进而提高了目标对象的检测结果的准确度。
一种可能的实施方式中,所述方法还包括:
利用生成的所述坐标转换矩阵,对所述辅雷达设备对应的所述点云数据进行调整,生成调整后的点云数据;
基于所述主雷达设备采集的所述点云数据和所述辅雷达设备对应的所述调整后的点云数据,控制所述目标设备。
采用上述方法,可以利用生成的坐标转换矩阵,对辅雷达设备对应的点云数据进行调整,生成调整后的点云数据,由于生成的坐标转换矩阵的准确率较高,使得生成的调整后的点云数据较为准确,进而可以较精准的控制目标设备,提高目标设备的安全性能。
以下装置、电子设备等的效果描述参见上述方法的说明,这里不再赘述。
第二方面,本公开提供了一种外参标定装置,包括:
获取模块,用于获取设置在目标设备上的主雷达设备和辅雷达设备分别采集的点云数据;
划分模块,用于将所述点云数据划分为地面点云数据和非地面点云数据;
确定模块,用于基于所述主雷达设备和所述辅雷达设备分别对应的所述地面点云数据、和所述非地面点云数据,确定所述辅雷达设备对应的位移信息和欧拉角信息,其中,所述位移信息包含所述辅雷达设备与所述主雷达设备在不同方向上的位移偏差值,所述欧拉角信息包含所述辅雷达设备与所述主雷达设备在不同方向上的角度偏差值;
生成模块,用于基于所述位移信息和欧拉角信息,生成所述辅雷达设备对应的坐标转换矩阵。
第三方面,本公开提供一种电子设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行如上述第一方面或任一实施方式所述的外参标定方法的步骤。
第四方面,本公开提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如上述第一方面或任一实施方式所述的外参标定方法的步骤。
为使本公开的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本公开实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本公开的实施例的详细描述并非旨在限制要求保护的本公开的范围,而是仅仅表示本公开的选定实施例。基于本公开的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
自动驾驶领域中常用的传感器设备可以包括:摄像头、毫米波雷达、激光雷达等。其中,传感器设备存在对应的坐标系,比如传感器设备A对应的坐标系可以为以该传感器设备A的安装位置为原点建立的坐标系,即设置在同一车辆上的不同传感器设备对应不同的坐标系,而传感器设备得到的检测数据是在该设备对应的坐标系下的数据,不同的传感器设备得到的检测数据对应不同的坐标系,使得不同传感器设备得到的检测数据无法进行融合,因此,需要将各个传感器设备得到的检测数据转换到一个统一的坐标系下,完成传感器设备间的外参标定。
一般的,可以通过手动标定的方法,实现传感器设备间的外参标定,具体实现时,可以通过用户的视线来确定当前标定外参的好坏结果(即确定两帧点云数据经外参转换到同一坐标系下的匹配重叠程度),进而指导下一步的外参调整方向,但是通过手动标定的方式需要人工的介入,容易引入误差,使得标定较慢且标定的精度较低。故为了解决上述问题,本公开实施例提供了一种外参标定方法。
针对以上方案所存在的缺陷,均是发明人在经过实践并仔细研究后得出的结果,因此,上述问题的发现过程以及下文中本公开针对上述问题所提出的解决方案,都应该是发明人在本公开过程中对本公开做出的贡献。
下面将结合本公开中附图,对本公开中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本公开的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本公开的实施例的详细描述并非旨在限制要求保护的本公开的范围,而是仅仅表示本公开的选定实施例。基于本公开的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
为便于对本公开实施例进行理解,首先对本公开实施例所公开的一种外参标定方法进行详细介绍。本公开实施例所提供的外参标定方法的执行主体一般为具有一定计算能力的计算机设备,该计算机设备例如包括:终端设备或服务器或其它处理设备,终端设备可以为用户设备(User Equipment,UE)、移动设备、用户终端、终端、蜂窝电话、无绳电话、个人数字助理(Personal Digital Assistant,PDA)、手持设备、计算设备、车载设备、可穿戴设备等。在一些可能的实现方式中,该外参标定方法可以通过处理器调用存储器中存储的计算机可读指令的方式来实现。
参见图1所示,为本公开实施例所提供的外参标定方法的流程示意图,该方法包括S101-S104,其中:
S101,获取设置在目标设备上的主雷达设备和辅雷达设备分别采集的点云数据;
S102,将点云数据划分为地面点云数据和非地面点云数据;
S103,基于主雷达设备和辅雷达设备分别对应的地面点云数据、非地面点云数据,确定辅雷达设备对应的位移信息和欧拉角信息,其中,位移信息包含辅雷达设备与主雷达设备在不同方向上的位移偏差值,欧拉角信息包含辅雷达设备与主雷达设备在不同方向上的角度偏差值;
S104,基于位移信息和欧拉角信息,生成辅雷达设备对应的坐标转换矩阵。
采用上述方法,通过对获取的主雷达设备采集的点云数据和辅雷达设备采集的点云数据进行划分,确定主雷达设备对应的地面点云数据、和非地面点云数据,以及确定辅雷达设备对应的地面点云数据、和非地面点云数据,由于地面是固定的平面,故可以将地面作为基准面,通过地面点云数据、和非地面点云数据,较准确的确定辅雷达设备对应的位移信息和欧拉角信息,进而可以基于位移信息和欧拉角信息,生成辅雷达设备对应的坐标转换矩阵,在无需特定场景和无需人工介入的情况下,实现了主雷达设备与辅雷达设备之间的外参标定,提高了外参标定的准确度和效率。
下述对S101-S104进行详细说明。
针对S101:
这里,主雷达设备和辅雷达设备可以为激光雷达,其中,主雷达设备与辅雷达设备的型号可以相同、也可以不同,比如,主雷达设备可以为64线激光雷达,辅雷达设备可以为16线激光雷达。主雷达设备和辅雷达设备可以设置在目标设备上的不同位置,目标设备可以为机器人、车辆等。比如,在目标设备为车辆时,主雷达设备可以设置在车辆的车顶正中间位置处,辅雷达设备可以安装在车辆的两侧。其中,主雷达设备和辅雷达设备的安装位置仅为示例性说明。
在将主雷达设备和辅雷达设备安装在目标设备上之后,可以获取主雷达设备采集的目标场景的点云数据,以及辅雷达设备采集的目标场景的点云数据,采集的点云数据中包括多个点云点的三维坐标信息,还可以包括多个点云点的颜色信息、反射强度信息等。其中,目标场景可以为现实场景中的任一场景。
针对S102:
可以将主雷达设备采集的点云数据划分为地面点云数据和非地面点云数据,同时将辅雷达设备采集的点云数据划分为地面点云数据和非地面点云数据。一种可选实施方式中,还可以确定主雷达设备对应的地面点云数据的平面拟合参数信息,以及确定辅雷达设备对应的地面点云数据的平面拟合参数信息。其中,地面点云数据的平面拟合参数信息为地面点云数据中多个点云点所构成的平面对应的平面拟合参数信息。
由于主雷达设备和辅雷达设备的安装位置和/或安装角度的差异,故需要通过不同的方法分别对主雷达设备和辅雷达设备采集的点云数据进行划分。
首先对将主雷达设备采集的点云数据划分为地面点云数据和非地面点云数据的过程进行具体说明。
一种可选实施方式中,参见图2所示,针对主雷达设备采集的点云数据,将点云数据划分为地面点云数据和非地面点云数据,包括:
S201,基于点云数据指示的点云点的高度信息,按照点云点的高度从低到高的顺序选择多个初始点云点,并确定多个初始点云点对应的平均高度。
S202,基于每个初始点云点的高度与平均高度的高度差,从多个初始点云点中确定多个初始地面点云点。
S203,基于确定的多个初始地面点云点对应的点云数据,确定主雷达设备对应的地面点云数据和非地面点云数据。
上述方法中,由于地面点云点的高度较低,且地面点云点的高度信息一致,故这里可以利用高度信息对初始点云点进行筛选,较准确的确定多个初始地面点云点,进而基于确定的多个初始地面点云点对应的点云数据,可以较准确的区分确定主雷达设备对应的地面点云数据和非地面点云数据。
在S201中,点云数据中包括多个点云点的三维坐标信息,基于每个点云点的三维坐标信息指示的高度信息,将多个点云点按照从低到高的顺序进行排序,并从排序后的多个点云点中按照从低到高的顺序,选择高度较低的NLPR个初始点云点,其中,NLPR为正整数,且NLPR的值可以根据需要进行设置。并可以根据NLPR个初始点云点中每个初始点云点的高度信息,确定多个初始点云点对应的平均高度。
在S202中,将NLPR个初始点云点中每个初始点云点的高度信息与平均高度相减,确定每个初始点云点与平均高度的高度差,在该高度差小于设置的高度阈值时,则该初始点云点为初始地面点云点;在该高度差大于或等于设置的高度阈值时,则该初始点云点不是初始地面点云点,进而可以从多个初始点云点中确定多个初始地面点云点。
在S203中,在一种可选实施方式中,基于确定的多个初始地面点云点对应的点云数据,确定主雷达设备对应的地面点云数据和非地面点云数据,包括:
步骤A1、将多个初始地面点云点对应的点云数据存储至地面点云点集合中,基于地面点云点集合中当前包含的点云数据,生成目标平面拟合参数信息。
步骤A2、基于目标平面拟合参数信息,从主雷达设备采集的点云数据中筛选出中间地面点云点的点云数据和中间非地面点云点的点云数据。
步骤A3、将地面点云点集合中当前包含的点云数据删除,并将本次筛选得到的中间地面点云点的点云数据存储至地面点云点集合中,返回至基于地面点云点集合中当前包含的点云数据,生成目标平面拟合参数信息的步骤,直至满足预设截止条件为止。
步骤A4、将最后一次筛选后的中间地面点云点的点云数据,确定为最终划分的主雷达设备对应的地面点云数据;将最后一次筛选后的中间非地面点云点的点云数据,确定为最终划分的主雷达设备对应的非地面点云数据。
这里,通过多次筛选的方式,可以较准确的将主雷达设备的点云数据划分为地面点云数据和非地面点云数据。
在步骤A1中,可以设置地面点云点集合,并将初始地面点云点对应的点云数据存储至地面点云点集合中。再可以基于地面点云点集合中的点云数据,生成地面点云点集合中的点云数据对应的目标平面拟合参数。其中,确定目标平面拟合参数的方法有多种,此处不进行具体限定。比如,可以使用随机抽样一致性Ransac算法确定目标平面拟合参数。
在步骤A2中,可以利用目标平面拟合参数信息,对主雷达设备采集的点云数据进行筛选,得到主雷达设备对应的中间地面点云点的点云数据和中间非地面点云点的点云数据。
其中,基于目标平面拟合参数信息,从主雷达设备采集的点云数据中筛选出中间地面点云点的点云数据和中间非地面点云点的点云数据,包括:
步骤A21、基于主雷达设备采集的点云数据中每个点云点的点云数据和目标平面拟合参数信息,确定每个点云点与目标平面拟合参数信息对应的目标平面之间的距离。
步骤A22、基于各个点云点与目标平面之间的距离和设置的距离阈值,从主雷达设备采集的点云数据中筛选出中间地面点云点的点云数据和中间非地面点云点的点云数据。
在确定了目标平面拟合参数信息之后,可以基于主雷达设备采集的点云数据中每个点云点的点云数据和目标平面拟合参数信息,计算每个点云点与目标平面拟合参数信息对应的目标平面之间的距离。
针对每个点云点,在该点云点对应的距离小于设置的距离阈值时,则该点云点为中间地面点云点;在该点云点对应的距离大于或等于设置的距离阈值时,则该点云点为中间非地面点云点。进而,从主雷达设备采集的点云数据中筛选出了中间地面点云点的点云数据和中间非地面点云点的点云数据。
这里,可以利用点云点与目标平面之间的距离和设置的距离阈值,判断该点云点是否为目标平面上的内点,即判断该点云点是否为中间地面点云点,若点云点与目标平面之间的距离小于距离阈值,则该点云点是中间地面点云点。
在步骤A3中,可以先将地面点云点集合中当前包含的点云数据删除,再将本次筛选得到的中间地面点云点的点云数据存储至地面点云点集合中,此刻,地面点云点集合中包含有本次筛选后的中间地面点云点的点云数据;返回至基于地面点云点集合中当前包含的点云数据,生成目标平面拟合参数信息的步骤,即利用本次筛选后的中间地面点云点的点云数据,重新确定目标平面拟合参数信息。使用重新确定的目标平面拟合参数信息再次对主雷达设备采集的点云数据进行筛选,直至满足预设截止条件为止。
这里,预设截止条件可以包括:一、筛选次数等于设置的次数阈值,其中,次数阈值可以根据实际需要进行设置。二、在本次筛选后生成的目标平面拟合参数信息与上一次筛选后生成的目标平面拟合参数信息的差异值小于设置的差异阈值。
示例性的,若本次筛选后生成的目标平面拟合参数信息为An、Bn、Cn、Dn,上一次筛选后生成的目标平面拟合参数信息为An-1、Bn-1、Cn-1、Dn-1,则可以针对每个参数信息设置对应的差异阈值,比如,设置的差异阈值可以为Amax、Bmax、Cmax、Dmax,在每个参数信息之间的差异值小于设置的差异阈值时,即An与An-1的差异值小于Amax,Bn与Bn-1的差异值小于Bmax,Cn与Cn-1的差异值小于Cmax,以及Dn与Dn-1的差异值小于Dmax,则确定满足筛选终止条件二。或者,也可以设置一个差异阈值,在每个参数信息之间的差异值的和小于设置的差异阈值时,则确定满足筛选终止条件二。或者,还可以设置一个差异阈值,在每个参数信息之间的差异值的平方和小于设置的差异阈值时,则确定满足筛选终止条件二。其中,判断本次筛选后生成的目标平面拟合参数信息与上一次筛选后生成的目标平面拟合参数信息的差异值小于设置的差异阈值的过程有多种,此处仅为示例性说明。
在步骤A4中,可以将最后一次筛选后的中间地面点云点的点云数据,确定为最终划分的主雷达设备对应的地面点云数据;将最后一次筛选后的中间非地面点云点的点云数据,确定为最终划分后的主雷达设备对应的非地面点云数据,即确定了主雷达设备对应的地面点云数据和非地面点云数据。一种实施方式中,还可以将最后一次筛选后生成的目标平面拟合参数信息,确定为主雷达设备的地面点云数据对应的平面拟合参数信息。
其次对将辅雷达设备采集的点云数据划分为地面点云数据和非地面点云数据的过程进行具体说明。
一种可选实施方式中,针对辅雷达设备采集的点云数据,将点云数据划分为地面点云数据和非地面点云数据,包括:
步骤B1、从辅雷达设备采集的点云数据中随机选择三个点云点的点云数据,基于选择的三个点云点的点云数据,确定三个点云点构成的平面的中间平面拟合参数信息。
步骤B2、基于中间平面拟合参数信息对辅雷达设备采集的点云数据进行筛选,确定中间地面点云数据和中间非地面点云数据,并统计中间地面点云数据中包含的地面点云点的数量。
步骤B3、重复N次从辅雷达设备采集的点云数据中随机选择三个点云点的点云数据,到统计中间地面点云数据包含的地面点云点的数量的步骤,即重读N次步骤B1至步骤B2;其中,N为正整数。
步骤B4、基于N次确定的中间平面拟合参数信息、中间地面点云数据、中间非地面点云数据、和中间地面点云数据中包括的地面点云点的数量,确定辅雷达设备对应的地面点云数据和非地面点云数据。
由于主雷达设备与辅雷达设备的安装位置和/或安装角度不同,故使用不同的方法,分别对主雷达设备和辅雷达设备的点云数据进行划分,提高划分后得到的地面点云数据和非地面点云数据的准确度。
在步骤B1中,辅雷达设备采集的点云数据中包括多个点云点的点云数据,从辅雷达设备对应的多个点云点中随机选择三个点云点,基于选择的三个点云点的点云数据,确定该三个点云点构成的平面的中间平面拟合参数信息。
在步骤B2中,基于确定的中间平面拟合参数信息对辅雷达设备采集的点云数据进行筛选,确定辅雷达设备对应的中间地面点云数据和中间非地面点云数据,并统计中间地面点云数据中包含的地面点云点的数量。
示例的,可以计算辅雷达设备采集的点云数据中每个点云点与中间平面拟合参数信息对应的目标平面之间的距离,在该距离小于设置的距离阈值时,确定该点云点为中间地面点云点;在该距离大于或等于设置的距离阈值时,则确定该点云点为中间非地面点云点。
在步骤B3中,可以重复N次步骤B1和步骤B2,其中,N为正整数,N的值可以根据需要进行设置,比如,N可以为1000。每重复一次步骤B1和步骤B2,可以得到一次筛选结果,在重复N次步骤B1和步骤B2后,可以得到N次筛选结果,即可以得到辅雷达设备对应的N个中间地面点云数据、N个中间非地面点云数据、以及N个中间地面点云数据对应的数量。
在步骤B4中,作为一可选实施方式,基于N次确定的中间平面拟合参数信息、中间地面点云数据、中间非地面点云数据、和中间地面点云数据包括的地面点云点的数量,确定辅雷达设备对应的地面点云数据、和非地面点云数据,可以包括:
步骤B41、确定N个中间地面点云数据包括的地面点云点的数量中的最大数量。
步骤B42、在最大数量大于设置的数量阈值的情况下,将最大数量对应的中间地面点云数据、和中间非地面点云数据,确定为辅雷达设备对应的地面点云数据、和非地面点云数据。
这里,可以先确定N个中间地面点云数据包括的地面点云点的数量中的最大数量,即确定N个数量中的最大值。若该最大数量大于设置的数量阈值,则将最大数量对应的中间地面点云数据确定为辅雷达设备对应的地面点云数据;将最大数量对应的中间非地面点云数据确定为辅雷达设备对应的非地面点云数据;一种实施方式中,还可以将最大数量对应的平面拟合参数信息确定为辅雷达设备对应的平面拟合参数信息。
在最大数量小于或等于设置的数量阈值的情况下,可以返回至步骤B1,重新执行步骤B1至步骤B4的过程。
即在最大数量小于或等于设置的数量阈值的情况下,第二次执行重复N次步骤B1和步骤B2的过程,判断第二次得到的N个数量中的最大数量是否大于设置的数量阈值,若第二次得到的N个数量中的最大数量仍然小于或等于设置的数量阈值,则第三次执行重复N次步骤B1和步骤B2的过程,直至第M次执行重复N次步骤B1和步骤B2的过程后截止,其中,M为正整数,M的值可以根据需要进行设置。
若第M次重复N次步骤B1和步骤B2的过程后,得到的N个数量中的最大数量仍然小于或等于设置的数量阈值时,则可以从M个最大数量中选择最大值,将选择的最大值对应的中间地面点云数据、和中间非地面点云数据,确定为辅雷达设备对应的地面点云数据、和非地面点云数据。
考虑到,地面在点云数据对应的现实场景中的面积是较大的,其他平面比地面的面积小,故可以通过确定N个中间地面点云数据包括的地面点云点的数量中的最大数量,在该最大数量大于设置的数量阈值时,将最大数量对应的中间地面点云数据、中间非地面点云数据、和中间平面拟合参数,确定为辅雷达设备对应的地面点云数据、非地面点云数据、和平面拟合参数信息。
针对S103:
在确定了主雷达设备对应的地面点云数据、和非地面点云数据,以及辅雷达设备对应的地面点云数据、和非地面点云数据之后,可以基于主雷达设备和辅雷达设备分别对应的地面点云数据、和非地面点云数据,确定辅雷达设备对应的位移信息和欧拉角信息。其中,位移信息包含辅雷达设备与主雷达设备在不同方向上的位移偏差值,比如,位移信息包含辅雷达设备与主雷达设备在长度方向上的位移偏差值、在宽度方向上的位移偏差值、在高度方向上的位移偏差值;欧拉角信息包含辅雷达设备与主雷达设备在不同方向上的角度偏差值。
在将点云数据划分为地面点云数据和非地面点云数据之后,该方法还包括:对主雷达设备和辅雷达设备对应的地面点云数据、和非地面点云数据进行降采样处理,生成主雷达设备和辅雷达设备分别对应的处理后的地面点云数据、和处理后的非地面点云数据。
基于主雷达设备和辅雷达设备分别对应的地面点云数据、和非地面点云数据,确定辅雷达设备对应的位移信息和欧拉角信息,包括:基于主雷达设备和辅雷达设备分别对应的处理后的地面点云数据、和处理后的非地面点云数据,确定辅雷达设备对应的位移信息和欧拉角信息。
采用上述方法,可以分别对主雷达设备和辅雷达设备对应的地面点云数据、非地面点云数据进行降采样处理,去除无用的噪点,提高确定的位移信息和欧拉角信息的效率和准确度。
这里,可以对主雷达设备对应的地面点云数据和非地面点云数据进行降采样处理,得到主雷达设备对应的处理后的地面点云数据和处理后的非地面点云数据;以及对辅雷达设备对应的地面点云数据和非地面点云数据进行降采样处理,生成辅雷达设备对应的处理后的地面点云数据和处理后的非地面点云数据。比如,降采样处理的方法可以为体素滤波等。
进而,可以基于主雷达设备对应的处理后的地面点云数据和处理后的非地面点云数据、以及辅雷达设备对应的处理后的地面点云数据和处理后的非地面点云数据,确定辅雷达设备对应的位移信息和欧拉角信息。
一种可能的实施方式中,在将点云数据划分为地面点云数据和非地面点云数据之后,还包括:确定地面点云数据对应的平面拟合参数信息。
在S103中,基于主雷达设备和辅雷达设备分别对应的地面点云数据、和非地面点云数据,确定辅雷达设备对应的位移信息和欧拉角信息,包括:基于主雷达设备和辅雷达设备分别对应的地面点云数据、和非地面点云数据,以及地面点云数据对应的平面拟合参数信息,确定辅雷达设备对应的位移信息和欧拉角信息。
一种可选实施方式中,参见图3所示,基于主雷达设备和辅雷达设备分别对应的地面点云数据、和非地面点云数据,以及地面点云数据对应的平面拟合参数信息,确定辅雷达设备对应的位移信息和欧拉角信息,包括:
S301,基于主雷达设备对应的地面点云数据和平面拟合参数信息,以及辅雷达设备对应的地面点云数据和平面拟合参数信息,确定欧拉角信息中的翻滚角和俯仰角、以及位移数据中的高度值。
S302,基于主雷达设备对应的非地面点云数据、辅雷达设备对应的非地面点云数据、和设置的初始参数,确定欧拉角信息中的偏航角、和位移数据中的长度值和宽度值,其中,初始参数包括初始偏航角、初始长度值、初始宽度值。
由于翻滚角、俯仰角和高度值与地面点云数据有关,而偏航角、长度值和宽度值与非地面点云数据有关,故这里使用基于主雷达设备和辅雷达设备分别对应的地面点云数据、平面拟合参数信息,确定欧拉角信息中的翻滚角和俯仰角、以及位移数据中的高度值;以及使用主雷达设备和辅雷达设备分别对应的非地面点云数据和设置的初始参数,确定欧拉角信息中的偏航角、和位移数据中的长度值和宽度值。
这里,可以使用主雷达设备对应的地面点云数据、平面拟合参数信息,以及辅雷达设备对应的地面点云数据、平面拟合参数信息,确定欧拉角信息中的翻滚角(roll角)和俯仰角(pitch角)、以及位移数据中的高度值(z值)。
再可以基于主雷达设备对应的非地面点云数据、辅雷达设备对应的非地面点云数据、和设置的初始参数,确定欧拉角信息中的偏航角(yaw角)、和位移数据中的长度值(x值)和宽度值(y值)。
其中,初始参数包括初始偏航角、初始长度值、初始宽度值,还可以包括初始高度值;初始偏航角为人工测量得到的辅雷达设备与主雷达设备之间在水平面上的安装偏差角度;初始长度值为人工测量得到的辅雷达设备与主雷达设备之间在长度方向上的初始偏差值;初始宽度值为人工测量得到的辅雷达设备与主雷达设备之间在宽度方向上的初始偏差值;初始高度值为人工测量得到的辅雷达设备与主雷达设备在高度方向上的初始偏差值。由于初始翻滚角和初始俯仰角难以测量得到,故初始参数中不设置初始翻滚角和初始俯仰角。
一种可选实施方式中,S301中,基于主雷达设备对应的地面点云数据和平面拟合参数信息,以及辅雷达设备对应的地面点云数据和平面拟合参数信息,确定欧拉角信息中的翻滚角和俯仰角、以及位移数据中的高度值,包括:
S3011,基于主雷达设备对应的平面拟合参数和辅雷达设备对应的平面拟合参数,确定待调整翻滚角、待调整俯仰角、以及待调整高度值。
S3012,基于主雷达设备对应的地面点云数据和辅雷达设备对应的地面点云数据,对待调整翻滚角、待调整俯仰角、以及待调整高度值进行调整,生成欧拉角信息中的翻滚角和俯仰角、以及位移数据中的高度值。
在S3011中,若主雷达设备对应的平面拟合参数为A1、B1、C1、D1,辅雷达设备对应的平面拟合参数为A2、B2、C2、D2,则确定主雷达设备对应的地面的第一平面方程为A1x+B1y+C1z+D1=0,主雷达设备对应的地面的第一法向量为(A1、B1、C1);以及确定辅雷达设备对应的地面的第二平面方程为A2x+B2y+C2z+D2=0,辅雷达设备对应的地面的第二法向量为(A2、B2、C2);考虑到主雷达设备和辅雷达设备对应的法向量应该一致,故可以基于第一法向量和第二法向量,可以确定待调整翻滚角、待调整俯仰角;进而可以基于待调整翻滚角、待调整俯仰角、主雷达设备对应的地面点云数据、和辅雷达设备对应的地面点云数据,确定待调整高度值,即基于待调整翻滚角和待调整俯仰角对辅雷达设备对应的地面的第二平面方程进行调整,使得调整后的第二平面方程与第一平面方程是平行关系,计算调整后的第二平面方程与第一平面方程之间的距离,该距离即为确定的待调整高度值。
在S3012中,可以利用点到面的迭代最近点(Iterative Closest Point,ICP)算法,基于主雷达设备对应的地面点云数据和辅雷达设备对应的地面点云数据,对待调整翻滚角、待调整俯仰角、以及待调整高度值进行调整,生成欧拉角信息中的翻滚角和俯仰角、以及位移数据中的高度值;或者,可以利用点到面的ICP算法,基于降采样处理后得到的主雷达设备的处理后的地面点云数据和辅雷达设备的处理后的地面点云数据,对待调整翻滚角、待调整俯仰角、以及待调整高度值进行调整,生成欧拉角信息中的翻滚角和俯仰角、以及位移数据中的高度值。
具体实现时,可以将待调整翻滚角、待调整俯仰角、待调整高度值、以及降采样处理后得到的主雷达设备对应的处理后的地面点云数据和辅雷达设备对应的处理后的地面点云数据,输入至点到面的ICP算法中,生成欧拉角信息中的翻滚角和俯仰角、以及位移数据中的高度值。
这里,初始参数值中可以包括初始高度值,在确定了位移数据中的高度值之后,可以将确定的高度值与初始高度值进行比较,若确定的高度值与初始高度值之间的偏差小于高度偏差阈值时,则确定位移数据中的高度值符合要求;若确定的高度值与初始高度值之间的偏差大于或等于高度偏差阈值时,则确定位移数据中的高度值不符合要求,并确定初始高度值是否有误,或者重新确定位移数据中的高度值;或者,可以更改目标设备的位置,再重新确定位移数据中的高度值。
采用上述方法,可以先通过主雷达设备对应的平面拟合参数和辅雷达设备对应的平面拟合参数,确定待调整翻滚角、待调整俯仰角、以及待调整高度值,该待调整翻滚角、待调整俯仰角、以及待调整高度值为粗略值;为了得到较精准的翻滚角、俯仰角和高度值,可以利用主雷达设备对应的地面点云数据和辅雷达设备对应的地面点云数据,对待调整翻滚角、待调整俯仰角、以及待调整高度值进行调整,生成欧拉角信息中的翻滚角和俯仰角、以及位移数据中的高度值。
一种可选实施方式中,S302中,基于主雷达设备对应的非地面点云数据、辅雷达设备对应的非地面点云数据、和设置的初始参数,确定欧拉角信息中的偏航角、和位移数据中的长度值和宽度值,包括:
S3021、基于主雷达设备对应的非地面点云数据、辅雷达设备对应的非地面点云数据、和设置的初始参数中的初始偏航角,生成待调整偏航角。
S3022、将待调整偏航角确定为欧拉角信息中的偏航角,将初始参数中的初始长度值、初始宽度值,确定为位移数据中的长度值和宽度值。
这里,可以先基于主雷达设备对应的非地面点云数据、辅雷达设备对应的非地面点云数据、和设置的初始参数中的初始偏航角,生成待调整偏航角。再将待调整偏航角确定为欧拉角信息中的偏航角,将初始参数中的初始长度值、初始宽度值,确定为位移数据中的长度值和宽度值。
采用上述方法,可以在生成待调整偏航角后,将待调整偏航角确定为欧拉角信息中的偏航角,将初始参数中的初始长度值、初始宽度值,确定为位移数据中的长度值和宽度值,确定过程较为简单,提高偏航角、长度值和宽度值的确定效率。
另一种可选实施方式中,S302中,基于主雷达设备对应的非地面点云数据、辅雷达设备对应的非地面点云数据、和设置的初始参数,确定欧拉角信息中的偏航角、和位移数据中的长度值和宽度值,可以包括:
S3023、基于主雷达设备对应的非地面点云数据、辅雷达设备对应的非地面点云数据、和设置的初始参数中的初始偏航角,生成待调整偏航角。
S3024、基于主雷达设备对应的非地面点云数据、辅雷达设备对应的非地面点云数据、和设置的点云配准方法,对初始长度值、初始宽度值、和待调整偏航角进行优化,生成欧拉角信息中的偏航角、和位移数据中的长度值和宽度值。
这里,可以先基于主雷达设备对应的非地面点云数据、辅雷达设备对应的非地面点云数据、和设置的初始参数中的初始偏航角,生成待调整偏航角。再可以利用设置的点云配准方法(正态分布变换算法),基于主雷达设备对应的非地面点云数据、辅雷达设备对应的非地面点云数据、和设置的点云配准方法,对初始长度值、初始宽度值、和待调整偏航角进行优化,生成欧拉角信息中的偏航角、和位移数据中的长度值和宽度值。
这里还可以利用设置的点云配准方法,基于主雷达设备采集的点云数据和辅雷达设备采集的点云数据,对初始长度值、初始宽度值、待调整偏航角、和S301中生成的翻滚角、俯仰角、高度值进行优化,生成优化后的欧拉角信息和位移数据。
采用上述方法,在生成待调整偏航角后,基于主雷达设备对应的非地面点云数据、辅雷达设备对应的非地面点云数据、和设置的点云配准方法,对初始长度值、初始宽度值、和待调整偏航角进行优化,生成较精准的欧拉角信息中的偏航角、和位移数据中的长度值和宽度值。
一种可选实施方式中,基于主雷达设备对应的非地面点云数据、辅雷达设备对应的非地面点云数据、和设置的初始参数中的初始偏航角,生成待调整偏航角,包括:
步骤C1、将初始偏航角作为目标偏航角,将设置的初始偏航角对应的初始匹配阈值作为目标匹配阈值,基于设置的迭代参数、确定的迭代次数、和目标偏航角,确定与迭代次数匹配的目标偏航角集合;
步骤C2、基于主雷达设备对应的非地面点云数据、辅雷达设备对应的非地面点云数据,确定目标偏航角集合中每个中间偏航角的匹配分值,并确定各个中间偏航角对应的匹配分值中的最大匹配分值,其中,匹配分值用于表征在基于该中间偏航角对辅雷达设备对应的非地面点云数据进行调整后,调整后的非地面点云数据与主雷达设备对应的非地面点云数据的重合程度;
步骤C3、在最大匹配分值大于目标匹配阈值的情况下,更新迭代次数,并将最大匹配分值对应的中间偏航角作为目标偏航角,将最大匹配分值作为目标匹配阈值,返回至基于设置的迭代参数、确定的迭代次数、和目标偏航角,确定与迭代次数匹配的目标偏航角集合的步骤;
步骤C4、在最大匹配分值小于或等于目标匹配阈值的情况下,更新迭代次数,返回至基于设置的迭代参数、确定的迭代次数、和目标偏航角,确定与迭代次数匹配的目标偏航角集合的步骤;
步骤C5、在迭代次数大于设置的目标次数的情况下,将多个最大匹配分值中的最大分值对应的目标偏航角,确定为待调整偏航角。
在步骤C1中,可以将初始偏航角作为目标偏航角,将设置的初始偏航角对应的初始匹配阈值作为目标匹配阈值,基于设置的迭代参数、确定的迭代次数、和目标偏航角,确定与迭代次数匹配的目标偏航角集合。其中,设置的迭代参数包括目标次数N、偏航角分辨率集合Res={res,res/2,……,res/2N-1}、搜索半径范围集合Half={half,half/2,……,half/2N-1}。比如,res可以为5°,half可以为10。
可以根据下述公式(1)确定与迭代次数匹配的目标偏航角集合:
search={yaw-Half[n]×Res[n],yaw-Half[n-1]×Res[n],…,yaw,yaw+Half[n]×Res[n]};(1)
其中,n为确定的迭代次数,yaw为目标偏航角。
假设yaw=10°,res=5°,half=10,确定迭代次数为1(即以初始偏航角作为目标偏航角进行第一次迭代),则Half[n]=10,Half[n-1]=9,Res[n]=5°,根据公式(1)可以确定目标偏航角集合为:{-40°,-35°,-20°,…,10°,15°,…,60°};若确定的迭代次数为2,则Half[n]=5,Half[n-1]=4;Res[n]=2.5°,或者,Res[n]=3°,根据公式(1)可以确定目标偏航角集合为:{-5°,-2°,1°,…,10°,13°,…,25°}。
在步骤C2中,可以基于主雷达设备对应的非地面点云数据、辅雷达设备对应的非地面点云数据,确定目标偏航角集合中每个中间偏航角的匹配分值。其中,匹配分值可以用于表征在基于该中间偏航角对辅雷达设备对应的非地面点云数据进行调整后,调整后的非地面点云数据与主雷达设备对应的非地面点云数据的重合程度。
具体的,针对目标偏航角集合中的每个中间偏航角,基于该中间偏航角对辅雷达设备对应的非地面点云数据进行调整,生成调整后的非地面点云数据;从主雷达设备对应的非地面点云数据中,确定与调整后的非地面点云数据中的每个点云点匹配的点云点,计算调整后的非地面点云数据中各个点云点与匹配的点云点之间的距离和,基于该距离和,确定该中间偏航角对应的匹配分值。比如,匹配分值可以为:s=-l,其中,s为中间偏航角对应的匹配分值,l为距离和。示例性的,可以通过ICP算法确定每个中间偏航角对应的匹配分值。
进而可以确定本次迭代过程中,目标偏航角集合中各个中间偏航角对应的匹配分值中的最大匹配分值。判断最大匹配分值是否大于本次迭代对应的目标匹配阈值,若是,则执行步骤C3的过程;若否,则执行步骤C4的过程。
针对步骤C3,在最大匹配分值大于目标匹配阈值时,更新迭代次数,比如若本次迭代次数为1,则更新后的迭代次数为2。并将最大匹配分值对应的中间偏航角作为目标偏航角,将最大匹配分值作为目标匹配阈值,返回至基于设置的迭代参数、确定的迭代次数、和目标偏航角,确定与迭代次数匹配的目标偏航角集合的步骤,即基于设置的迭代参数、确定的迭代次数(更新后的迭代次数)、和目标偏航角(最大匹配分值对应的中间偏航角),再次进行迭代过程。
针对步骤C4,在最大匹配分值小于或等于目标匹配阈值时,更新迭代次数,比如若本次迭代次数为1,则更新后的迭代次数为2。返回至基于设置的迭代参数、确定的迭代次数(更新后的迭代次数)、和目标偏航角,确定与迭代次数匹配的目标偏航角集合的步骤,即下一次迭代过程中的目标偏航角和目标匹配阈值,与本次迭代过程中的目标偏航角和目标匹配阈值相同。
在步骤C5中,在迭代次数大于设置的目标次数时迭代过程终止,并将多个最大匹配分值中的最大分值对应的目标偏航角,确定为待调整偏航角。
采用上述方法,通过多次迭代的方法确定待调整偏航角,在迭代的过程中,不断的优化目标偏航角和目标匹配阈值,使得迭代过程不断优化,进而可以较准确的确定待调整偏航角。
针对S104:
这里,可以基于位移信息和欧拉角信息,生成辅雷达设备对应的坐标转换矩阵。即可以基于欧拉角信息生成旋转矩阵,再基于旋转矩阵、位移信息,生成辅雷达设备对应的坐标转换矩阵。
一种可选实施方式中,方法还包括:利用生成的坐标转换矩阵,对辅雷达设备对应的点云数据进行调整,生成调整后的点云数据;基于主雷达设备采集的点云数据和辅雷达设备对应的调整后的点云数据,确定目标设备所处的现实场景中包括的目标对象的检测结果。
这里,可以利用确定的坐标转换矩阵,对辅雷达设备对应的点云数据进行调整,生成调整后的点云数据。将主雷达设备采集的点云数据与辅雷达设备对应的调整后的点云数据进行融合,基于融合后的点云数据,确定目标设备所处的现实场景中包括的目标对象的检测结果,比如目标对象可以为行人、动物、物体等,即可以确定现实场景中包括的每个目标对象的位置信息和类别。
采用上述方法,可以利用生成的坐标转换矩阵,对辅雷达设备对应的点云数据进行调整,生成调整后的点云数据,由于生成的坐标转换矩阵的准确率较高,使得生成的调整后的点云数据较为准确,进而提高了目标对象的检测结果的准确度。
一种可选实施方式,方法还包括:利用生成的坐标转换矩阵,对辅雷达设备对应的点云数据进行调整,生成调整后的点云数据;基于主雷达设备采集的点云数据和辅雷达设备对应的调整后的点云数据,控制目标设备。
这里,目标设备可以为行驶装置,行驶装置可以为自动驾驶车辆、装有高级驾驶辅助系统(Advanced Driving Assistance System,ADAS)的车辆、或者机器人等。示例性的,可以利用确定的坐标转换矩阵,对辅雷达设备对应的点云数据进行调整,生成调整后的点云数据。并将主雷达设备采集的点云数据与辅雷达设备对应的调整后的点云数据进行融合,基于融合后的点云数据,确定目标设备所处的现实场景中包括的目标对象的检测结果,最后基于每个目标对象的检测结果,控制目标设备。比如,可以控制目标设备的加速、减速、转向、制动等,或者可以播放语音提示信息,以提示驾驶员控制目标设备加速、减速、转向、制动等。
采用上述方法,可以利用生成的坐标转换矩阵,对辅雷达设备对应的点云数据进行调整,生成调整后的点云数据,由于生成的坐标转换矩阵的准确率较高,使得生成的调整后的点云数据较为准确,进而可以较精准的控制目标设备,提高目标设备的安全性能。
本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的撰写顺序并不意味着严格的执行顺序而对实施过程构成任何限定,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。
基于相同的构思,本公开实施例还提供了一种外参标定装置,参见图4所示,为本公开实施例提供的外参标定装置的架构示意图,包括获取模块401、划分模块402、确定模块403、生成模块404,具体的:
获取模块401,用于获取设置在目标设备上的主雷达设备和辅雷达设备分别采集的点云数据;
划分模块402,用于将所述点云数据划分为地面点云数据和非地面点云数据;
确定模块403,用于基于所述主雷达设备和所述辅雷达设备分别采集的所述地面点云数据、和所述非地面点云数据,确定所述辅雷达设备对应的位移信息和欧拉角信息,其中,所述位移信息包含所述辅雷达设备与所述主雷达设备在不同方向上的位移偏差值,所述欧拉角信息包含所述辅雷达设备与所述主雷达设备在不同方向上的角度偏差值;
生成模块404,用于基于所述位移信息和欧拉角信息,生成所述辅雷达设备对应的坐标转换矩阵。
一种可能的实施方式中,针对所述主雷达设备采集的点云数据,所述划分模块402,在将所述点云数据划分为地面点云数据和非地面点云数据时,用于:
基于所述点云数据指示的点云点的高度信息,按照点云点的高度从低到高的顺序选择多个初始点云点,并确定所述多个初始点云点对应的平均高度;
基于每个初始点云点的高度与所述平均高度的高度差,从所述多个初始点云点中确定多个初始地面点云点;
基于确定的所述多个初始地面点云点对应的点云数据,确定所述主雷达设备对应的地面点云数据和非地面点云数据。
一种可能的实施方式中,所述划分模块402,在基于确定的所述多个初始地面点云点对应的点云数据,确定所述主雷达设备对应的地面点云数据和非地面点云数据时,用于:
将所述多个初始地面点云点对应的点云数据存储至地面点云点集合中,基于所述地面点云点集合中当前包含的点云数据,生成目标平面拟合参数信息;
基于所述目标平面拟合参数信息,从所述主雷达设备采集的点云数据中筛选出中间地面点云点的点云数据和中间非地面点云点的点云数据;
将所述地面点云点集合中当前包含的点云数据删除,并将本次筛选得到的所述中间地面点云点的点云数据存储至所述地面点云点集合中,返回至基于所述地面点云点集合中当前包含的点云数据,生成目标平面拟合参数信息的步骤,直至满足预设截止条件为止;
将最后一次筛选后的所述中间地面点云点的点云数据,确定为最终划分的所述主雷达设备对应的地面点云数据;将最后一次筛选后的所述中间非地面点云点的点云数据,确定为最终划分的所述主雷达设备对应的非地面点云数据。
一种可能的实施方式中,所述预设截止条件包括:筛选次数等于设置的次数阈值,和/或,本次筛选后生成的所述目标平面拟合参数信息与上一次筛选后生成的所述目标平面拟合参数信息的差异值小于设置的差异阈值。
一种可能的实施方式中,所述划分模块402,在基于所述目标平面拟合参数信息,从所述主雷达设备采集的点云数据中筛选出中间地面点云点的点云数据和中间非地面点云点的点云数据时,用于:
基于所述主雷达设备采集的点云数据中每个点云点的点云数据和所述目标平面拟合参数,确定每个点云点与所述目标平面拟合参数信息对应的目标平面之间的距离;
基于各个点云点与所述目标平面之间的距离和设置的距离阈值,从所述主雷达设备采集的点云数据中筛选出中间地面点云点的点云数据和中间非地面点云点的点云数据。
一种可能的实施方式中,针对辅雷达设备采集的点云数据,所述划分模块402,在将点云数据划分为地面点云数据和非地面点云数据时,用于:
从所述辅雷达设备采集的点云数据中随机选择三个点云点的点云数据,基于选择的所述三个点云点的点云数据,确定所述三个点云点构成的平面的中间平面拟合参数信息;
基于所述中间平面拟合参数信息对所述辅雷达设备采集的点云数据进行筛选,确定中间地面点云数据和中间非地面点云数据,并统计所述中间地面点云数据中包含的地面点云点的数量;
重复N次从所述辅雷达设备采集的点云数据中随机选择三个点云点的点云数据,到所述统计所述中间地面点云数据包含的地面点云点的数量的步骤;其中,N为正整数;
基于N次确定的中间平面拟合参数信息、中间地面点云数据、中间非地面点云数据、和所述中间地面点云数据中包括的地面点云点的数量,确定所述辅雷达设备对应的地面点云数据和非地面点云数据。
一种可能的实施方式中,所述划分模块402,在基于N次确定的中间平面拟合参数信息、中间地面点云数据、中间非地面点云数据、和所述中间地面点云数据包括的地面点云点的数量,确定所述辅雷达设备对应的地面点云数据和非地面点云数据时,用于:
确定N个中间地面点云数据包括的地面点云点的数量中的最大数量;
在所述最大数量大于设置的数量阈值的情况下,将最大数量对应的所述中间地面点云数据、和所述中间非地面点云数据,确定为所述辅雷达设备对应的所述地面点云数据和所述非地面点云数据。
一种可能的实施方式中,在将所述点云数据划分为地面点云数据和非地面点云数据之后,所述装置还包括:降采样模块405,用于:
对所述主雷达设备和所述辅雷达设备对应的所述地面点云数据、所述非地面点云数据进行降采样处理,生成所述主雷达设备和所述辅雷达设备分别对应的处理后的地面点云数据、和处理后的非地面点云数据;
所述确定模块403,在基于所述主雷达设备和所述辅雷达设备分别对应的所述地面点云数据、和所述非地面点云数据,确定所述辅雷达设备对应的位移信息和欧拉角信息时,用于:
基于所述主雷达设备和所述辅雷达设备分别对应的所述处理后的地面点云数据、和所述处理后的非地面点云数据,确定所述辅雷达设备对应的位移信息和欧拉角信息。
一种可能的实施方式中,在将所述点云数据划分为地面点云数据和非地面点云数据之后,还包括:参数确定模块406,用于:
确定所述地面点云数据对应的平面拟合参数信息;
所述确定模块403,在基于所述主雷达设备和所述辅雷达设备分别对应的所述地面点云数据、和所述非地面点云数据,确定所述辅雷达设备对应的位移信息和欧拉角信息时,用于:
基于所述主雷达设备和所述辅雷达设备分别对应的所述地面点云数据、和所述非地面点云数据,以及所述地面点云数据对应的所述平面拟合参数信息,确定所述辅雷达设备对应的位移信息和欧拉角信息。
一种可能的实施方式中,所述确定模块403,在基于所述主雷达设备和所述辅雷达设备分别对应的所述地面点云数据、和所述非地面点云数据,确定所述辅雷达设备对应的位移信息和欧拉角信息时,用于:
基于所述主雷达设备对应的所述地面点云数据和所述平面拟合参数信息,以及所述辅雷达设备对应的所述地面点云数据和所述平面拟合参数信息,确定所述欧拉角信息中的翻滚角和俯仰角、以及所述位移数据中的高度值;
基于所述主雷达设备对应的所述非地面点云数据、所述辅雷达设备对应的所述非地面点云数据、和设置的初始参数,确定所述欧拉角信息中的偏航角、和所述位移数据中的长度值和宽度值,其中,所述初始参数包括初始偏航角、初始长度值、初始宽度值。
一种可能的实施方式中,所述确定模块403,在基于所述主雷达设备对应的所述地面点云数据和所述平面拟合参数信息,以及所述辅雷达设备对应的所述地面点云数据和所述平面拟合参数信息,确定所述欧拉角信息中的翻滚角和俯仰角、以及所述位移数据中的高度值时,用于:
基于所述主雷达设备对应的所述平面拟合参数和所述辅雷达设备对应的所述平面拟合参数,确定待调整翻滚角、待调整俯仰角、以及待调整高度值;
基于所述主雷达设备对应的所述地面点云数据和所述辅雷达设备对应的所述地面点云数据,对所述待调整翻滚角、所述待调整俯仰角、以及所述待调整高度值进行调整,生成所述欧拉角信息中的翻滚角和俯仰角、以及所述位移数据中的高度值。
一种可能的实施方式中,所述确定模块403,在基于所述主雷达设备对应的所述非地面点云数据、所述辅雷达设备对应的所述非地面点云数据、和设置的初始参数,确定所述欧拉角信息中的偏航角、和所述位移数据中的长度值和宽度值时,用于:
基于所述主雷达设备对应的所述非地面点云数据、所述辅雷达设备对应的所述非地面点云数据、和设置的初始参数中的初始偏航角,生成待调整偏航角;
将所述待调整偏航角确定为所述欧拉角信息中的所述偏航角,将所述初始参数中的所述初始长度值、所述初始宽度值,确定为所述位移数据中的长度值和宽度值。
一种可能的实施方式中,所述确定模块403,在基于所述主雷达设备对应的所述非地面点云数据、所述辅雷达设备对应的所述非地面点云数据、和设置的初始参数,确定所述欧拉角信息中的偏航角、和所述位移数据中的长度值和宽度值时,用于:
基于所述主雷达设备对应的所述非地面点云数据、所述辅雷达设备对应的所述非地面点云数据、和设置的初始参数中的初始偏航角,生成待调整偏航角;
基于所述主雷达设备对应的所述非地面点云数据、所述辅雷达设备对应的所述非地面点云数据、和设置的点云配准方法,对所述初始长度值、所述初始宽度值、和所述待调整偏航角进行优化,生成所述欧拉角信息中的偏航角、和所述位移数据中的长度值和宽度值。
一种可能的实施方式中,所述确定模块403,在基于所述主雷达设备对应的所述非地面点云数据、所述辅雷达设备对应的所述非地面点云数据、和设置的初始参数中的初始偏航角,生成待调整偏航角时,用于:
将所述初始偏航角作为目标偏航角,将设置的所述初始偏航角对应的初始匹配阈值作为目标匹配阈值,基于设置的迭代参数、确定的迭代次数、和所述目标偏航角,确定与所述迭代次数匹配的目标偏航角集合;
基于所述主雷达设备对应的所述非地面点云数据、所述辅雷达设备对应的所述非地面点云数据,确定所述目标偏航角集合中每个中间偏航角的匹配分值,并确定各个中间偏航角对应的所述匹配分值中的最大匹配分值,其中,所述匹配分值用于表征在基于该中间偏航角对所述辅雷达设备对应的所述非地面点云数据进行调整后,调整后的非地面点云数据与所述主雷达设备对应的所述非地面点云数据的重合程度;
在所述最大匹配分值大于所述目标匹配阈值的情况下,更新迭代次数,并将所述最大匹配分值对应的中间偏航角作为目标偏航角,将所述最大匹配分值作为目标匹配阈值,返回至基于设置的迭代参数、确定的迭代次数、和所述目标偏航角,确定与所述迭代次数匹配的目标偏航角集合的步骤;
在所述最大匹配分值小于或等于所述目标匹配阈值的情况下,更新迭代次数,返回至基于设置的迭代参数、确定的迭代次数、和所述目标偏航角,确定与所述迭代次数匹配的目标偏航角集合的步骤;
在所述迭代次数大于设置的目标次数的情况下,将多个所述最大匹配分值中的最大分值对应的目标偏航角,确定为所述待调整偏航角。
一种可能的实施方式中,所述装置还包括:检测模块407,用于:
利用生成的所述坐标转换矩阵,对所述辅雷达设备对应的所述点云数据进行调整,生成调整后的点云数据;
基于所述主雷达设备采集的所述点云数据和所述辅雷达设备对应的所述调整后的点云数据,确定所述目标设备所处的现实场景中包括的目标对象的检测结果。
一种可能的实施方式中,所述装置还包括:控制模块408,用于:
利用生成的所述坐标转换矩阵,对所述辅雷达设备对应的所述点云数据进行调整,生成调整后的点云数据;
基于所述主雷达设备采集的所述点云数据和所述辅雷达设备对应的所述调整后的点云数据,控制所述目标设备。
在一些实施例中,本公开实施例提供的装置具有的功能或包含的模板可以用于执行上文方法实施例描述的方法,其具体实现可以参照上文方法实施例的描述,为了简洁,这里不再赘述。
基于同一技术构思,本公开实施例还提供了一种电子设备。参照图5所示,为本公开实施例提供的电子设备的结构示意图,包括处理器501、存储器502、和总线503。其中,存储器502用于存储执行指令,包括内存5021和外部存储器5022;这里的内存5021也称内存储器,用于暂时存放处理器501中的运算数据,以及与硬盘等外部存储器5022交换的数据,处理器501通过内存5021与外部存储器5022进行数据交换,当电子设备500运行时,处理器501与存储器502之间通过总线503通信,使得处理器501在执行以下指令:
获取设置在目标设备上的主雷达设备和辅雷达设备分别采集的点云数据;
将所述点云数据划分为地面点云数据和非地面点云数据;
基于所述主雷达设备和所述辅雷达设备分别对应的所述地面点云数据、和所述非地面点云数据,确定所述辅雷达设备对应的位移信息和欧拉角信息,其中,所述位移信息包含所述辅雷达设备与所述主雷达设备在不同方向上的位移偏差值,所述欧拉角信息包含所述辅雷达设备与所述主雷达设备在不同方向上的角度偏差值;
基于所述位移信息和欧拉角信息,生成所述辅雷达设备对应的坐标转换矩阵。
此外,本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述方法实施例中所述的外参标定方法的步骤。其中,该存储介质可以是易失性或非易失的计算机可读取存储介质。
本公开实施例还提供一种计算机程序产品,该计算机程序产品承载有程序代码,所述程序代码包括的指令可用于执行上述方法实施例中所述的外参标定方法的步骤,具体可参见上述方法实施例,在此不再赘述。
其中,上述计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一个可选实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一个可选实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(Software Development Kit,SDK)等等。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本公开所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本公开各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上仅为本公开的具体实施方式,但本公开的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应以权利要求的保护范围为准。