一种雷达与相机的标定以及坐标转换方法与流程

未命名 10-08 阅读:78 评论:0


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.图1是根据本发明实施例一提供的一种雷达与相机的标定方法的流程图;
30.图2是根据本发明实施例二提供的一种雷达与相机的标定方法的流程图;
31.图3是根据本发明实施例三提供的一种雷达与相机的标定方法的流程图;
32.图4a是根据本发明实施例三提供的一种簇的展示示例图;
33.图4b是根据本发明实施例三提供的一种轮廓点列表中各轮廓点的展示示例图;
34.图4c是根据本发明实施例三提供的一种角点的展示示例图;
35.图5是根据本发明实施例四提供的一种雷达与相机的坐标转换方法的流程图;
36.图6是根据本发明实施例五提供的一种雷达与相机的标定装置的结构示意图;
37.图7是根据本发明实施例六提供的一种雷达与相机的坐标转换装置的结构示意图;
38.图8是根据本发明实施例七提供的一种电子设备的结构示意图。
具体实施方式
39.为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
40.需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
41.实施例一
42.图1为本发明实施例一提供了一种雷达与相机的标定方法的流程图,本实施例可适用于对雷达和相机进行联合标定情况,该方法可以由雷达与相机的标定装置来执行,该雷达与相机的标定装置可以采用硬件和/或软件的形式实现,该雷达与相机的标定装置可配置于电子设备中。如图1所示,该方法包括:
43.s101、获取至少一帧点云数据及各点云数据对应的图像数据,点云数据由雷达采集标定板得到,图像数据由图像采集装置采集标定板得到。
44.在本实施例中,雷达可以是激光雷达,毫米波雷达、超声波雷达等;图像采集装置可以是照相机、录像机等;雷达和图像采集装置在标定过程中需保持相对位置不变,因此可
以通过机械结构对雷达和图像采集装置进行固定,以保持其之间的空间相对位置不变。在标定时,首先固定雷达和图像采集装置,然后雷达和图像采集装置的采集范围内在布置标定板,控制雷达和图像采集装置进行拍摄,采集点云数据和图像数据,可以控制雷达和图像采集装置按照一定的频率采集标定板在同一位置的多个点云数据和图像数据。移动标定板,采集标定板在其他位置的点云数据和图像数据。本技术移动标定板时,可以控制标定板由近到远(即距离雷达和图像采集装置越来越远),尽可能保证标定板均匀分布在空间各处,并保持标定板在雷达和图像采集装置的完整可视范围内(即标定板移动过程中的多个位置均匀分布在图像采集装置和雷达所能采集到的空间中)。本技术实施例中的雷达与图像采集装置在采集点云数据和图像数据时,可以通过雷达与图像采集装置的厂商提供的软件开发包工具sdk进行实时数据的获取。
45.本步骤获取的点云数据及点云数据对应的图像数据,可以是每帧数据对应标定板的一个位置,也可以是每个位置对应多帧数据。本技术实施例可以直接获取雷达所采集的至少一帧点云数据,以及每帧点云数据对应的图像数据,点云数据对应的图像数据可以根据点云数据的采集时间确定,例如,同一采集时间的图像数据和点云数据为对应数据,或者采集时间差在一定范围内为对应数据,等等。
46.s102、针对每帧点云数据,对点云数据进行处理,得到标定板对应的点云数据,将标定板对应的点云数据平移旋转到预设平面,得到对应的第一点云数据。
47.在本实施例中,预设平面可以是预先确定的一个平面,例如,xoy面;第一点云数据具体可以理解为形成标定板的各点在预设平面上对应的坐标数据。
48.对于每帧点云数据,均可以采用s102-s103步骤确定其所采集的标定板的角点的坐标。对点云数据进行处理,过滤点云数据中无效数据,保留标定板对应的点云数据,过滤方式可以是采用滤波器进行过滤,获取通过预设的规则、范围等参数进行过滤,得到形成标定板的点云数据,即标定板对应的点云数据。将标定板对应的点云数据进行平移、旋转操作,将其转换到预设平面,转换可以采用将点云数据乘以转换矩阵的方式实现,转换矩阵可以根据标定板对应的点云数据所在的平面确定。
49.s103、对各第一点云数据进行聚类,得到至少一个簇,根据各簇中的第二点云数据确定各簇的轮廓点坐标,根据各轮廓点坐标确定轮廓点列表,根据各轮廓点列表确定板定板的点云角点坐标。
50.在本实施例中,第二点云数据具体可以理解为簇中的点云数据;轮廓点坐标可以理解为标定板的轮廓点的坐标;轮廓点列表具体可以理解为由标定板的一条边的轮廓的各点构成的列表;点云角点坐标具体可以理解为标定板的角点的点云坐标,即雷达所采集的角点的坐标,角点即标定板的各个顶点,角点的数量取决于标定板的形状,以标定板为矩形为例,角点的数量为4个。
51.具体的,根据预先确定的聚类算法对各第一点云数据进行聚类,过滤掉离群点,得到至少一个簇,聚类算法可以是dbscan聚类算法。每个簇中包括的点云数据为第二点云数据,对于每个簇,比较簇中的第二点云数据的横纵坐标,或者通过比较点与点之间的距离等方式确定轮廓点坐标。每个簇中的轮廓点坐标的数量至少为2个;统计各轮廓点坐标,并根据预设规则、算法等方法确定构成一条边的轮廓点,根据此部分轮廓点的轮廓点坐标形成轮廓点列表,本技术实施例中的轮廓点列表的数量取决于标定板的形状,标定板有几条边,
相应的就有几个轮廓点列表。根据轮廓点列表中的轮廓点确定标定板的边,根据各边的交点确定标定板的点云角点坐标。
52.s104、根据各图像数据确定图像角点坐标,根据各点云角点坐标和图像角点坐标确定雷达与图像采集装置的转换关系。
53.在本实施例中,图像角点坐标具体可以理解为图像采集装置所采集的标定板的角点的坐标,图像角点坐标为图像采集装置的坐标系下的坐标;雷达与图像采集装置的转换关系可以是转换矩阵,用于将雷达所采集的点云数据与图像采集装置所采集的数据转换到同一坐标系下。
54.具体的,对图像数据进行处理,确定每个图像数据中的角点的图像角点坐标,可以通过算法、神经网络模型等进行角点识别,也可以人工选择出图像角点坐标,例如,接收用户通过单击、双击等操作,根据用户操作确定用户所选择的点的坐标,将其作为图像角点坐标。对于每一组对应的点云数据和图像数据,由于其拍摄的是同一位置的同一个标定板,所以其坐标在世界空间中应该是一致的,因此,两个坐标之间存在一定的转换关系。根据各点云角点坐标和图像角点坐标计算转换关系矩阵,得到雷达与图像采集装置的转换关系;对于得到的转换关系矩阵,还可以进行进一步优化得到雷达与图像采集装置的转换关系,此种方式准确度更高。
55.本发明实施例提供了一种雷达与相机的标定方法,解决了相机与雷达联合标定时不准确的问题,在获取点云数据及其对应的图像数据后,首先对点云数据进行处理,过滤掉无效点云,保留有效点云,得到标定板对应的点云数据;并通过旋转、平移操作将标定板对应的点云数据移动至预设平面,得到第一点云数据;对第一点云数据进行聚类得到簇,根据各簇中的第二点云数据确定各簇的轮廓点坐标,根据轮廓点坐标形成轮廓点列表,进而根据轮廓点列表确定标定板的点云角点坐标,自动确定标定板的角点的坐标,且结果准确;通过图像数据确定图像角点坐标,最后根据各点云角点坐标和图像角点坐标确定雷达与图像采集装置的转换关系,完成雷达与相机的标定,本技术实施例提供的标定方法标定过程简单,且标定结果准确。
56.实施例二
57.图2为本发明实施例二提供的一种雷达与相机的标定方法的流程图,本实施例在上述实施例的基础上进行细化。如图2所示,该方法包括:
58.s201、获取至少一帧点云数据及各点云数据对应的图像数据,点云数据由雷达采集标定板得到,图像数据由图像采集装置采集标定板得到。
59.作为本实施例的一个可选实施例,本可选实施例进一步将获取各点云数据对应的图像数据优化为:
60.a1、针对每帧点云数据,确定点云数据对应的时间戳。
61.雷达在采集点云数据后,对点云数据进行保存,在保存时同时对点云数据进行时间戳标记,时间戳可以保存在点云数据的相关属性信息中,也可以在点云数据对应的文件命名中,等等,时间戳可以用于表示点云数据的采集时间。在本执行设备进行标定时从点云数据的相应存储空间获取点云数据,同时获取到点云数据的时间戳。
62.a2、根据时间戳筛选出点云数据对应的图像数据。
63.同理,图像采集装置在采集到图像数据后,对图像数据进行保存,在保存时同时对
图像数据进行时间戳标记,时间戳可以保存在图像数据的相关属性信息中,也可以在图像数据对应的文件命名中,等等,时间戳可以用于表示图像数据的采集时间。在本执行设备进行标定时,可以从图像数据的存储空间获取所有图像数据,然后根据时间戳进行筛选,确定点云数据对应的图像数据,或者,直接根据时间戳从图像数据的存储空间筛选出点云数据所对应的图像数据。根据时间戳对图像数据进行筛选的方式可以是根据时间戳确定与点云数据时间最接近的图像数据,作为点云数据对应的图像数据。
64.以激光雷达为例,图像采集装置的频率较激光雷达较高,但实时性较低,因此可以通过标记时间戳的方式,以激光雷达数据为基准,选取最近的相机帧来采集数据。
65.s202、针对每帧点云数据,根据标定板对应的点云范围对点云数据进行过滤,确定候选点云。
66.在本实施例中,候选点云具体可以理解为对点云数据进行初步过滤后所得到的点云数据。点云数据由多个(x,y,z)点组成,单位mm,方向以激光雷达正方向为准。在获取点云数据后,需要从中筛选出标定板相关的点云。可以预先设置点云数据,也可以人工输入或者选择点云范围。示例性的,可以使用pcl点云处理库提供的直通滤波初步限制点云范围,通过opencv滑动条滑动选择x、y、z三个坐标轴的坐标的最大值和最小值,得到候选点云,通过上述方式可以实时调节并显示限制范围后的点云。
67.s203、对候选点云进行过滤,确定目标点云。
68.在本实施例中,目标点云具体可以理解为对点云再次过滤后得到的标定板的点云。由于雷达的接收器的误差,以及光波干扰的相关原因,初步筛选出的候选点云附近还存在少许杂点,因此进一步对候选点云进行过滤,过滤方式可以预先选择,通过过滤掉无效点得到目标点云。
69.示例性的,可以通过统计滤波器对候选点云进行过滤。统计滤波器对每个点的邻域进行一个统计分析,可以得到该点到它所有临近点的平均距离。假设得到最后所有点的数据是高斯分布,其形状由均值和标准差决定,平均距离在标准范围(以均值和标准差定义)之外的,视为离群点。由于标定板实体为一个整体,波动点零散分布于标定板周围,视这些点为离群点,用统计滤波器将离群点去除。图中绿色点为平面内点,而其余彩色点为平面外点。
70.s204、根据目标点云进行平面拟合,确定拟合平面的平面方程,根据平面方程筛选出平面内点云。
71.在本实施例中,平面内点云即处于拟合平面的平面内的目标点云。预先设置平面拟合算法,根据平面拟合算法对目标点云进行平面拟合,得到拟合平面的平面方程ax+by+cz+d=0;根据平面方程对应的范围对目标点云进行筛选,过滤掉超出拟合平面的点,进一步筛选出平面内点云。
72.s205、将平面内点云投影到拟合平面上,得到标定板对应的点云数据。
73.由于此时的目标点云实际上可能处于不同平面,为了便于后续的平移、旋转等处理,因此需要将平面内点云重新投影到拟合平面上,可以通过创建投影器的方式对平面内点云进行投影,得到标定板对应的点云数据,处于同一三维空间平面。
74.s206、从标定板对应的点云数据中筛选出基准点,将标定板对应的点云数据减去基准点坐标,得到平移后的点云数据。
75.通过步骤s206-s208对标定板点云数据进行平移、旋转处理,实现点云数据的降维。
76.在本实施例中,基准点具体可以理解为在平移时,用作参考的坐标点;基准点坐标具体可以理解为基准点的坐标。从标定板对应的点云数据中随机选择一个点云数据作为基准点,相应可以确定基准点的坐标;将标定板对应的其余所有点云数据的坐标分别减去基准点坐标(x、y、z三个坐标均进行相减),得到的数据即为平移后的点云数据。
77.例如,根据已知拟合平面的平面方程ax+by+cz+d=0,得到平面过原点的法线方程cz+d=0。取原平面任意一点(x0,y0,z0)为基准点,将拟合平面内所有点减去该点坐标,可以得到平移后的点云数据,以及新的平面方程ax+by+cz=0,实现了将标定板平面平移至原点所在平面,并且平移后平面法线与x轴、y轴共同交于原点。
78.s207、根据拟合平面的平面方程确定第一旋转矩阵和第二旋转矩阵。
79.在本实施例中,第一旋转矩阵和第二旋转矩阵均为一个平面旋转至另一个平面所采用的矩阵。预先确定第一旋转矩阵和第二旋转矩阵的表达式,第一旋转矩阵和第二旋转矩阵的表达式中均包括未知参数,未知参数通常为角度;构建旋转矩阵与旋转前后的平面的法向量之间的关系,通过运算确定旋转矩阵的参数的计算式,将拟合平面的平面方程的参数带入旋转矩阵的参数的计算公式中进行计算,得到旋转矩阵的参数,进而得到旋转矩阵,即第一旋转矩阵和第二旋转矩阵。
80.作为本实施例的一个可选实施例,本可选实施例进一步将根据拟合平面的平面方程确定第一旋转矩阵和第二旋转矩阵,优化为:
81.b1、根据拟合平面的平面方程确定平面法向量,根据平面法向量确定第一旋转参数,并基于第一旋转参数确定第一旋转矩阵。
82.在本实施例中,第一旋转参数具体可以理解为第一旋转矩阵中的参数,通常为角度。预先确定第一旋转参数的计算公式,第一旋转参数的计算公式中的参数包括了平面法向量的坐标,因此,在确定平面法向量后,将其带入计算公式,可以得到第一旋转参数,将第一旋转参数带入到第一旋转矩阵的表达式中,得到第一旋转矩阵。
83.示例性的,本技术实施例提供一种第一旋转矩阵的确定方式:
84.根据向量点积的定义,原始的拟合平面的平面法向量为(a,b,c),要使得旋转后的平面的法向量在xz平面上,则有(a',b',c')
·
(0,1,0)=0,其中,(a',b',c')是旋转后的法向量。
85.第一旋转矩阵的表达式为第一旋转参数为θ;
86.将拟合平面的平面法向量代入下述公式中:
[0087][0088]
得acosθ+csinθ=0,解得θ=-arctan(a/c);
[0089]
因此,在已知平面法向量后,可以确定第一旋转参数θ,并基于第一旋转参数确定
第一旋转矩阵。
[0090]
b2、根据第一旋转参数确定旋转后平面的法向量,根据旋转后平面的法向量确定第二旋转参数,并基于第二旋转参数确定第二旋转矩阵。
[0091]
将第一旋转参数和拟合平面的平面法向量带入上面的公式中进行计算,得到旋转后平面的法向量(a',b

,c

),将旋转后的平面的法向量带入到第二旋转参数的计算公式中,得到第二旋转参数,将第二旋转参数带入到第二旋转矩阵的表达式中,得到第二旋转矩阵。
[0092]
示例性的,第二旋转矩阵的表达式为φ为第二旋转参数;
[0093]
第二旋转参数的计算公式如下:
[0094][0095]
解得φ=-arctan(b

/c

),在已知旋转后平面的法向量(a

,b

,c

)后,将其带入到公式中,计算得到φ,将φ带入到第二旋转矩阵的表达式中,得到第二旋转矩阵。本方法可以实现将平面旋转至xoy面。
[0096]
s208、基于第一旋转矩阵和第二旋转矩阵将平移后的点云数据旋转到预设平面,得到对应的第一点云数据。
[0097]
将第一旋转矩阵与平移后的点云数据相乘,实现第一次旋转,得到第一次旋转后的坐标,然后将叠旋转矩阵与第一次旋转后的坐标进行相乘,得到的坐标即为第一点云数据。以上述的旋转矩阵的计算过程为例,第一点云数据所在的预设平面为xoy平面,也可以选择其他平面的法向量进行计算,将点云数据平移、旋转至其他平面。
[0098]
示例性的,以平移后的点云数据的坐标为(x',y',z')为例,将此点可以通过下述方式旋转至xoy平面。
[0099][0100][0101]
其中,(x1,y1,z1)为第一次旋转后的点云坐标;(x2,y2,z2)为第二次旋转后的点云坐标,为预设平面的坐标,在预设平面为xoy面时,z2=0。
[0102]
s209、对各第一点云数据进行聚类,得到至少一个簇,根据各簇中的第二点云数据确定各簇的轮廓点坐标,根据各轮廓点坐标确定轮廓点列表,根据各轮廓点列表确定板定板的点云角点坐标。
[0103]
s210、根据各图像数据确定图像角点坐标,根据各点云角点坐标和图像角点坐标
确定雷达与图像采集装置的转换关系。
[0104]
在确定图像角点坐标时,可以根据点云角点坐标的排列顺序依次确定图像角点坐标,可以人工手动选择,依次点击选择图像中的角点,确定图像角点坐标。
[0105]
获得了多帧的点云角点坐标和图像角点坐标后,通过单目标定,可以获取相机内参参数。本技术以将雷达采集的点云数据转换到图像坐标系下为例,求解3d到2d的rt矩阵,可以采用最小二乘法进行优化。
[0106]
假设有n个标定板的角点,在雷达所采集点云角点坐标为(xi,yi,zi),雷达所采集的点云角点坐标在世界坐标系下;图像采集装置所采集的图像角点坐标为(ui,vi)。则3d到
[0107][0108]
2d的转换关系矩阵为:
[0109]
其中,f
x
和fy是相机在横向和纵向上的焦距,c
x
,cy是像素坐标系原点的位置,r
ij
和ti是旋转矩阵和平移向量中包含的参数。
[0110]
将转换矩阵表示成向量形式,可得:
[0111][0112]
设上式为ax=b,则最小二乘解为x=(a
t
a)-1at
b。通过上式可以得到旋转矩阵r,以及平移向量t。其中,
[0113]
为了确保求解的矩阵满足旋转矩阵和平移向量的要求,采用svd分解方法对矩阵进行修正,将求解出的旋转矩阵r进行svd分解,得到r=usv
t
,其中u和v是正交矩阵,s是对角矩阵。然后将r重新构造为r=uv
t
,并将平移向量t除以σ1,即t’=t/σ1。这样得到的旋转矩阵r和平移向量t’即为所求的雷达和图像采集装置的转换关系。
[0114]
本发明实施例提供了一种雷达与相机的标定方法,解决了相机与雷达联合标定时不准确的问题,在获取点云数据及其对应的图像数据后,首先对点云数据进行处理,通过两
次过滤操作过滤掉无效点云,保留有效点云,得到标定板对应的点云数据,提高点云数据的准确性;并通过筛选基准点对点云数据进行平移,并根据拟合平面的平面方程确定第一旋转矩阵和第二旋转矩阵,并基于第一旋转矩阵和第二旋转矩阵对点云数据进行旋转,将标定板对应的点云数据旋转至预设平面,得到第一点云数据,方便后续计算标定板的角点坐标,并提高角点坐标计算的准确性;对第一点云数据进行处理确定标定板的点云角点坐标,自动确定标定板的角点的坐标,且结果准确;通过图像数据确定图像角点坐标,最后根据各点云角点坐标和图像角点坐标确定雷达与图像采集装置的转换关系,完成雷达与相机的标定,本技术实施例提供的标定方法标定过程简单,且标定结果准确。
[0115]
实施例三
[0116]
图3为本发明实施例三提供的一种雷达与相机的标定方法的流程图,本实施例在上述实施例的基础上进行细化。如图3所示,该方法包括:
[0117]
s301、获取至少一帧点云数据及各点云数据对应的图像数据,点云数据由雷达采集标定板得到,图像数据由图像采集装置采集标定板得到。
[0118]
s302、针对每帧点云数据,对点云数据进行处理,得到标定板对应的点云数据,将标定板对应的点云数据平移旋转到预设平面,得到对应的第一点云数据。
[0119]
s303、对各第一点云数据进行聚类,得到至少一个簇。
[0120]
以通过dbscan的聚类算法对第一点云数据进行聚类为例。通过dbscan的聚类算法对二维的第一点云数据进行聚类(忽略均为0的z坐标),dbscan聚类算法的公式推导如下:
[0121]
a.定义距离函数d(i,j)
[0122][0123]
其中,xi,yi表示点i的横坐标和纵坐标,xj,yj表示点j的横坐标和纵坐标。
[0124]
b.找到每个点的ε-邻域n
ε(i)[0125]nε
(i)={j:d(i,j)≤ε}
[0126]
其中,ε是dbscan算法的一个参数,表示以点i为中心的半径大小。对于每个样本点i,将其所有距离小于等于ε的点都放入其ε-邻域中。
[0127]
c.划分点的类型:核心点、边界点、噪声点
[0128]
对于每个样本点i,根据其ε-邻域中点的数量,将其划分为以下三种类型之一:
[0129]
核心点:如果n
ε
(i)中至少有minpts个点(minpts是dbscan算法的另一个参数,表示一个簇中最少需要的样本点数),则点i为核心点。
[0130]
边界点:如果n
ε
(i)中少于minpts个点,但存在一个核心点j,使得点i在j的ε-邻域中,则点i为边界点。
[0131]
噪声点:如果既不是核心点也不是边界点,则点i为噪声点。
[0132]
d.构建簇
[0133]
对于每个核心点i,将其与所有在其ε-邻域内的核心点合并为同一个簇。同时,将所有与这些核心点相邻的边界点也加入该簇。重复这个过程直到所有的核心点都被访问过为止。如果某些点不能分配给任何簇,则它们被标记为噪声点。
[0134]
算法流程如下:
[0135]
1.对于每个样本点i(x,y),找到其ε-邻域n
ε
(i)。
[0136]
2.如果n
ε
(i)中至少有minpts个点,则将点i标记为核心点,并将n
ε
(i)中的所有点分配给i所在的簇。
[0137]
3.对于所有未被分配的点,将其标记为噪声点或者边界点。如果点i在某个核心点j的ε-邻域中,将其分配到j所在的簇中,否则将其标记为噪声点。
[0138]
4.重复步骤3直到所有点都被分配到某个簇中或者被标记为噪声点为止。
[0139]
通过上述方法进行聚类,可以得到至少一个簇。
[0140]
s304、针对每个簇,根据簇中的第二点云数据确定中心点。
[0141]
对于每个簇,均通过s304-s207确定簇的轮廓点坐标。针对每个簇,确定簇中所包含的所有第二点云数据,根据第二点云数据的坐标值计算中心点,例如,计算各点坐标的平均值,得到的即为中心点。
[0142]
s305、计算每个第二点云数据与中心点之间的第一距离,将距离最远的第一距离对应的第二点云数据确定为第一个轮廓点。
[0143]
在本实施例中,第一距离具体可以理解为第二点云数据与中心点之间的距离。根据距离计算公式计算簇中的每个第二点云数据与中心点之间的距离,得到第一距离;比较各第一距离,确定最大值,即距离最远的第一距离,将此第一距离对应的第二点云数据确定为第一个轮廓点。
[0144]
s306、计算每个第二点云数据与第一个轮廓点之间的第二距离,将距离最远的第二距离对应的第二点云数据确定为第二个轮廓点。
[0145]
在本实施例中,第二距离具体可以理解为第二点云数据与第一个轮廓点之间的距离。以第一个轮廓点为起点,根据距离计算公式计算簇中的每个第二点云数据与第一个轮廓点之间的距离,得到第二距离;比较各第二距离,确定最大值,即距离最远的第二距离,将此第二距离对应的第二点云数据确定为第二个轮廓点。
[0146]
s307、根据第一个轮廓点的坐标和第二个轮廓点的坐标确定簇的轮廓点坐标。
[0147]
第一个轮廓点的坐标和第二个轮廓点的坐标即为簇的轮廓点坐标。
[0148]
s308、以第一个簇中的一个轮廓点为起点。
[0149]
选择第一个簇中的一个轮廓点作为起点,可以随机选择一个,也可以设置一定的规则进行筛选,例如,选择横坐标较小的轮廓点作为起点。本技术实施例中的各簇可以按照一定规则排序,例如,按照从左到右的顺序排列。
[0150]
s309、计算下一个簇中轮廓点与起点之间的距离,将距离最近的轮廓点作为目标轮廓点,确定目标轮廓点与起点之间的直线方向。
[0151]
在本实施例中,目标轮廓点具体可以理解为用于确定轮廓点列表的轮廓点。确定第一个簇的下一个簇中的轮廓点,分别计算两个轮廓点与起点之间的距离,比较计算得到的距离,将距离最近的轮廓点作为目标轮廓点,通过计算目标轮廓点与起点之间的角度、直线的斜率等方式确定直线方向,例如,目标轮廓点的坐标为(3,4),起点的坐标为(2,3),可以确定直线方向是起点指向右上方。
[0152]
s310、若直线方向发生改变且所有目标轮廓点的数量满足要求,基于起点对应的轮廓点和直线方向一致的各目标轮廓点生成轮廓点列表,将最新的目标轮廓点作为新的起点,返回执行s309的步骤。
[0153]
在确定直线方向后,判断直线方向是否发生了改变,第一个直线方向由于没有上
一个直线方向,因此,默认没有发生改变;确定两个或更多的直线方向后,根据上一个直线方向判断直线方向是否改变,若直线方向相比于上一次确定的直线方向发生了改变,判断此时累计得到的目标轮廓点的数量是否满足要求,目标轮廓点的数量满足要求可以是数量不少于一定阈值,且小于簇的总数量,阈值可以根据簇的总数量确定,例如簇的总数量的一半。若满足要求,则确定起始的第一个起点对应的轮廓点,以及此时所确定的直线方向一致的目标轮廓点(即除最后一个目标轮廓点以外的其他目标轮廓点),根据所确定的轮廓点以及目标轮廓点生成轮廓点列表。
[0154]
将此时确定的最新的目标轮廓点作为新的起点,返回执行s309,确定直线方向。由于在方法执行过程中,本步骤可能已经确定了多个目标轮廓点,在确定新的起点时,均以最新一个目标轮廓点(即最后确定的目标轮廓点)作为新的起点。在仅确定了一个目标轮廓点的情况下,直接将此目标轮廓点作为新的起点。本技术在确定目标轮廓点后还可以对目标轮廓点的数量进行累计,以便后续判断使用。
[0155]
在生成一个轮廓点列表后,将此时得到的最后一个目标轮廓点作为新的起点,并返回执行s309步骤,重新计算方向,确定新的轮廓点列表。本技术时实施例在确定轮廓点列表的过程中,一旦形成轮廓点列表,此轮廓点列表中的各轮廓点可以不再参与计算,目标轮廓点的数量也重新进行累计。本技术实施例还可以通过判断最新的目标轮廓点所在簇在所有簇中的位置,若直线方向发生改变且最新的目标轮廓点所在簇的位置满足要求时,基于起点对应的轮廓点和各目标轮廓点生成轮廓点列表。例如,最新的目标轮廓点所在簇在所有簇中的位置为中间位置,考虑到标定板的形状以及簇的总数量为奇数还是偶数,此时的中间位置可以是大概位置,不一定是绝对中间。
[0156]
s311、若直线方向发生改变且目标轮廓点的数量不满足要求,过滤掉目标轮廓点,将未过滤掉的最新的目标轮廓点作为新的起点,返回执行s309的步骤。
[0157]
若直线方向发生改变,且目标轮廓点的数量不满足要求,可以认为是误差原因,将此目标轮廓点过滤掉,此目标轮廓点不添加至轮廓点列表中,也不参与角点坐标的计算。
[0158]
s312、若直线方向未发生改变且目标轮廓点不为最后一个簇中的轮廓点,将最新的目标轮廓点作为新的起点,返回执行s309的步骤。
[0159]
若直线方向未发生改变,判断目标轮廓点是否在最后一个簇中,若否,将最新的一个目标轮廓点作为新的起点,返回执行s309的步骤。
[0160]
s313、若直线方向未发生改变且目标轮廓点为最后一个簇中的轮廓点,基于起点对应的轮廓点和各目标轮廓点生成轮廓点列表。
[0161]
s314、判断是否遍历所有轮廓点,若否,执行s315;若是,执行s316。
[0162]
若直线方向未发生改变,且此时目标轮廓点为最后一个簇中的轮廓点,此时可以确定构成标定板的一条边的所有点均已确定,根据此时的起点及起点之后的直线方向一致的目标轮廓点生成轮廓点列表。
[0163]
需要知道的是,本技术在生成一个轮廓点列表时,根据第一个起点、直线方向一致的最后一个目标轮廓点、及其之间的其他目标轮廓点,形成轮廓点列表。在形成一个轮廓点列表后,重新确定新的第一个起点,和直线方向一致的最后一个目标轮廓点。
[0164]
在遍历到最后一个簇中的轮廓点后,判断是否所有簇中的所有轮廓点均被遍历到,若是,执行s316,此时所有轮廓点列表均已生成。若否,执行s315。
[0165]
s315、以第一个簇中的另一个轮廓点为新的起点,返回执行s309的步骤。
[0166]
s316、确定所有轮廓点列表均已生成。
[0167]
若并未遍历完所有的轮廓点,由于此时已经遍历到最后一个簇,因此,可以重新回到第一个簇开始遍历,以第一个簇中的另一个轮廓点为新的起点,重复执行s309的步骤进行直线方向的确定,以生成其他的轮廓点列表。
[0168]
示例性的,图4a提供了一种簇的展示示例图,每个簇中均包括了两个轮廓点,下面举例说明生成轮廓点列表的过程。图中的黑色圆点均为轮廓点,矩形表示一个簇,每个簇中有两个轮廓点。第一个簇401中的轮廓点4011作为起点,计算第二个簇402(即下一个簇)中的轮廓点4021和轮廓点4022与轮廓点4011之间的距离,将距离最近的轮廓点4021作为目标轮廓点,确定目标轮廓点与起点之间的直线方向为右上方,本技术实施例中的直线方向以起点指向目标轮廓点的方向为例;此时只有一个直线方向,默认直线方向未发生改变,将目标轮廓点(即轮廓点4021)作为新的起点,计算其与第三个簇403中的轮廓点4031和轮廓点4032之间的距离,将距离最近的轮廓点4031作为新的目标轮廓点,确定此目标轮廓点(轮廓点4031)与起点(轮廓点4021)之间的直线方向为右上方,此时可以确定直线方向未发生改变,且目标轮廓点不为最后一个簇中的轮廓点,将目标轮廓点(轮廓点4031)作为新的起点,继续确定直线方向是否发生改变。如图4a所示,在起点为轮廓点4071时,其对应的目标轮廓点为轮廓点4081,此时直线方向为右下方,直线方向发生了改变,且目标轮廓点的数量为7个(从轮廓点4021到轮廓点4081),与簇的总数量的一半大致相同,满足要求,基于第一个起点(轮廓点4011)和未改变直线方向前的各目标轮廓点(轮廓点4021到轮廓点4071),即将轮廓点4011到轮廓点4071的所有目标轮廓点形成第一个轮廓点列表,此轮廓点列表中存储的是板定板的左上边轮廓的轮廓点。
[0169]
重新将最后一个确定的目标轮廓点(轮廓点4081)作为新的起点,再次计算直线方向,一直到最后一个簇中的轮廓点,直线方向一直未发生改变,由于目标轮廓点已经为最后一个簇中的轮廓点(轮廓点4131),将轮廓点4081到轮廓点4131的之间的目标轮廓点形成第二个轮廓点列表,此轮廓点列表中存储的是板定板的右上边轮廓的轮廓点。
[0170]
此时未遍历所有轮廓点,重新以第一个簇中的另一个轮廓点4012作为新的起点,重新计算直线方向,如图4a所示,轮廓点4012到轮廓点4042之间的直线方向为右下方;在以轮廓点4042为起点,计算4042与目标轮廓点4052之间的直线方向时,直线方向为右上方,直线方向发生了改变,但是,此时目标轮廓点的数量为4(从轮廓点4022到轮廓点4052)个,不满足要求,过滤掉目标轮廓点4052,以目标轮廓点4042为起点,计算轮廓点4042与目标轮廓点4062之间的直线方向,方向未发生改变,继续计算轮廓点4062与目标轮廓点4072之间的直线方向,此时直线方向发生了改变,目标轮廓点的数量为6(从轮廓点4022到轮廓点4072)个,满足要求,基于轮廓点4012、轮廓点4022、轮廓点4032、轮廓点4042、轮廓点4062形成第三个轮廓点列表,此轮廓点列表中存储的是板定板的右下边轮廓的轮廓点
[0171]
继续以轮廓点4072作为新的起点确定直线方向,基于轮廓点4072到轮廓点4132形成第四个轮廓点列表,此时所有轮廓点均被遍历一次,确定所有轮廓点列表均已生成,此轮廓点列表中存储的是板定板的左下边轮廓的轮廓点。
[0172]
通过上述步骤可以确定多个轮廓点列表,以标定板为矩形为例,轮廓点列表的数量为4个。
[0173]
s317、对各轮廓点列表中的轮廓点进行直线拟合,确定轮廓线的直线方程。
[0174]
针对每个轮廓点列表,根据轮廓点列表中的所有轮廓点进行直线拟合,直线拟合的方式可以是最小二乘法,通过拟合得到轮廓线的直线方程。本技术实施例中的轮廓点列表可以按照上下、左右的方式排序,依次得到对应方向的直线方程。
[0175]
示例性的,直线方程为y=ax+b,其中,a为斜率,b为截距;最小二乘法公式为:
[0176][0177][0178]
其中,xi和yi是直线上的点的横坐标和纵坐标,n是轮廓点列表中轮廓点的数量。
[0179]
对于每个簇,按照从左到右、从上到下的顺序排列,然后将轮廓点分类,分别将在左上、左下、右上和右下的轮廓点放到一个列表中,形成轮廓点列表。对于每个轮廓点列表,可以使用最小二乘法进行直线拟合,得到一个直线的斜率和截距,进而得到直线方程。
[0180]
s318、根据各轮廓点的直线方程计算交点,得到角点坐标。
[0181]
以四个轮廓点列表分别为左上、右上、右下和左下为例,则对于每个角点,可以通过以下方式计算坐标:
[0182]
1.左上角点:取左上和右上直线的交点,即为左上角点的角点坐标;
[0183]
2.右上角点:取右上和右下直线的交点,即为右上角点的角点坐标;
[0184]
3.右下角点:取右下和左下直线的交点,即为右下角点的角点坐标;
[0185]
4.左下角点:取左下和左上直线的交点,即为左下角点的角点坐标。
[0186]
示例性的,图4b提供了一种轮廓点列表中各轮廓点的展示示例图,图中的黑色的圆点为轮廓点41,图中仅示例性的标出几个,其余类似的点均为轮廓点41;图4c提供了一种角点的展示示例图,图中的各星号表示角点42,图中包括了4个角点42。
[0187]
s319、基于第一旋转矩阵和第二旋转矩阵对各角点坐标进行逆变换,得到变换后的角点坐标。
[0188]
由于本技术实施例用于计算角点坐标的坐标数据为经过了平移和旋转处理后的数据,因此在确定角点坐标后,需要将其旋转平移至原平面上。
[0189]
基于第一旋转矩阵和第二旋转矩阵对各角点坐标进行逆变换,第一旋转矩阵和第二旋转矩阵为标定板对应的点云数据平移旋转到预设平面时所用的旋转矩阵,通过两次逆旋转,得到变换后的角点坐标。
[0190]
s320、将各变换后的角点坐标加上基准点坐标,得到点云角点坐标。
[0191]
将各变换后的角点坐标的x、y和z加上基准点坐标,得到点云角点坐标。本技术实施例在确定点云角点坐标的过程中,对标定板对应的点云数据先进行了平移和旋转,使其处于预设平面中,然后进行聚类处理,并根据形成的轮廓点列表得到角点坐标,最后对得到的角点坐标逆变换至原始的平面中,得到点云角点坐标。
[0192]
s321、根据各图像数据确定图像角点坐标,根据各点云角点坐标和图像角点坐标确定雷达与图像采集装置的转换关系。
[0193]
本发明实施例提供了一种雷达与相机的标定方法,解决了相机与雷达联合标定时
不准确的问题,在得到第一点云数据后,首先对第一点云数据进行聚类得到簇,进一步根据各簇中的第二点云数据计算距离,确定各簇的轮廓点坐标,然后根据轮廓点坐标进行分析,自动确定轮廓点列表,进而根据轮廓点列表进行直线拟合,并根据拟合出的直线方程的交点确定标定板的角点坐标,最后对角点坐标进行逆变换,得到点云角点坐标,标定板的角点的坐标的整个确定过程均为自动进行,节省人工资源,提高效率,且结果准确,可以降低误差影响;最后根据各点云角点坐标和图像角点坐标确定雷达与图像采集装置的转换关系,完成雷达与相机的标定,本技术实施例提供的标定方法标定过程简单,且标定结果准确。
[0194]
实施例四
[0195]
图5为本发明实施例四提供了一种雷达与相机的坐标转换方法的流程图,本实施例可适用于对雷达和相机进行坐标转换的情况,该方法可以由雷达与相机的坐标转换装置来执行,该雷达与相机的坐标转换装置可以采用硬件和/或软件的形式实现,该雷达与相机的坐标转换装置可配置于电子设备中。如图5所示,该方法包括:
[0196]
s501、获取待转换点云数据,待转换点云数据通过雷达采集。
[0197]
在本实施例中,待转换点云数据具体可以理解为具有坐标转换需求的点云数据;待转换点云数据由雷达进行采集,雷达与图像采集装置的相对位置关系不变,即与标定过程中的相对位置相同。若相对位置发生改变,需重新标定。
[0198]
雷达可以按照一定的频率采集待转换点云数据,每次采集完成后,均可以传输给本执行设备,进行实时的坐标转换;也可以采集完成后进行存储,满足传输条件后,批量向本执行设备传输,统一进行处理;还可以每次采集完成后均传输给本执行设备,本执行设备在满足处理条件后再统一进行处理。
[0199]
s502、根据雷达与图像采集装置的转换关系对待转换点云数据进行坐标转换,得到目标数据,其中,雷达与图像采集装置的转换关系根据本发明实施例任一项所述的雷达与相机的坐标标定方法确定。
[0200]
在本实施例中,目标数据为雷达采集的点云在图像采集装置的坐标系下的坐标。预先在标定过程中确定雷达与图像采集装置的转换关系,将待转换点云数据通过雷达与图像采集装置的转换关系进行坐标转换,得到的数据即为目标数据。
[0201]
图像采集装置可以与雷达同时采集数据,并进行数据对齐,例如,根据时间戳确定对应的点云数据和图像数据。在确定目标数据后,此时的图像数据与目标数据在同一坐标系下,因此可以进行障碍物识别,以及智能驾驶控制等。
[0202]
本发明实施例的雷达与相机的坐标转换方法,可以对雷达采集的点云数据进行坐标转换,通过采用本技术任意实施例提供的方法确定雷达与图像采集装置的转换关系,进行点云数据的坐标转换,由于标定结果准确,因此在进行坐标转换时,可以得到准确的目标数据,可以应用在对数据主准确度较高的场景中,应用场景更加广泛;应用在智能驾驶领域中,安全性更高,用户体验也更好。
[0203]
实施例五
[0204]
图6为本发明实施例五提供的一种雷达与相机的标定装置的结构示意图。如图6所示,该装置包括:数据获取模块61、第一点云数据确定模块62、角点坐标确定模块63和转换关系确定模块64;
[0205]
其中,数据获取模块61,用于获取至少一帧点云数据及各所述点云数据对应的图
像数据,所述点云数据由雷达采集标定板得到,所述图像数据由图像采集装置采集标定板得到;
[0206]
第一点云数据确定模块62,用于针对每帧点云数据,对所述点云数据进行处理,得到标定板对应的点云数据,将所述标定板对应的点云数据平移旋转到预设平面,得到对应的第一点云数据;
[0207]
角点坐标确定模块63,用于对各所述第一点云数据进行聚类,得到至少一个簇,根据各所述簇中的第二点云数据确定各所述簇的轮廓点坐标,根据各所述轮廓点坐标确定轮廓点列表,根据各所述轮廓点列表确定板定板的点云角点坐标;
[0208]
转换关系确定模块64,用于根据各所述图像数据确定图像角点坐标,根据各所述点云角点坐标和图像角点坐标确定所述雷达与图像采集装置的转换关系。
[0209]
本发明实施例提供了一种雷达与相机的标定装置,解决了相机与雷达联合标定时不准确的问题,在获取点云数据及其对应的图像数据后,首先对点云数据进行处理,过滤掉无效点云,保留有效点云,得到标定板对应的点云数据;并通过旋转、平移操作将标定板对应的点云数据移动至预设平面,得到第一点云数据;对第一点云数据进行聚类得到簇,根据各簇中的第二点云数据确定各簇的轮廓点坐标,根据轮廓点坐标形成轮廓点列表,进而根据轮廓点列表确定标定板的点云角点坐标,自动确定标定板的角点的坐标,且结果准确;通过图像数据确定图像角点坐标,最后根据各点云角点坐标和图像角点坐标确定雷达与图像采集装置的转换关系,完成雷达与相机的标定,本技术实施例提供的标定方法标定过程简单,且标定结果准确。
[0210]
可选的,数据获取模块61,包括:
[0211]
时间戳确定单元,用于针对每帧点云数据,确定所述点云数据对应的时间戳;
[0212]
图像数据确定单元,用于根据所述时间戳筛选出所述点云数据对应的图像数据。
[0213]
可选的,第一点云数据确定模块62,包括:
[0214]
候选点云确定单元,用于根据标定板对应的点云范围对所述点云数据进行过滤,确定候选点云;
[0215]
目标点云确定单元,用于对所述候选点云进行过滤,确定目标点云;
[0216]
平面拟合单元,用于根据所述目标点云进行平面拟合,确定拟合平面的平面方程,根据所述平面方程筛选出平面内点云;
[0217]
投影单元,用于将所述平面内点云投影到拟合平面上,得到标定板对应的点云数据。
[0218]
可选的,第一点云数据确定模块62,包括:
[0219]
平移单元,用于从所述标定板对应的点云数据中筛选出基准点,将所述标定板对应的点云数据减去所述基准点坐标,得到平移后的点云数据;
[0220]
旋转矩阵确定单元,用于根据拟合平面的平面方程确定第一旋转矩阵和第二旋转矩阵;
[0221]
旋转单元,用于基于所述第一旋转矩阵和第二旋转矩阵将所述平移后的点云数据旋转到预设平面,得到对应的第一点云数据。
[0222]
可选的,旋转矩阵确定单元,具体用于根据拟合平面的平面方程确定平面法向量,根据所述平面法向量确定第一旋转参数,并基于所述第一旋转参数确定第一旋转矩阵;根
据所述第一旋转参数确定旋转后平面的法向量,根据所述旋转后平面的法向量确定第二旋转参数,并基于所述第二旋转参数确定第二旋转矩阵。
[0223]
可选的,角点坐标确定模块63,包括:
[0224]
中心点确定单元,用于针对每个簇,根据所述簇中的第二点云数据确定中心点;
[0225]
第一轮廓点确定单元,用于计算每个第二点云数据与中心点之间的第一距离,将距离最远的第一距离对应的第二点云数据确定为第一个轮廓点;
[0226]
第二轮廓点确定单元,用于计算每个第二点云数据与第一个轮廓点之间的第二距离,将距离最远的第二距离对应的第二点云数据确定为第二个轮廓点;
[0227]
轮廓点坐标确定单元,用于根据所述第一个轮廓点的坐标和第二个轮廓点的坐标确定所述簇的轮廓点坐标。
[0228]
可选的,角点坐标确定模块63,包括:
[0229]
直线方向确定单元,用于以第一个簇中的一个轮廓点为起点,计算下一个簇中轮廓点与起点之间的距离,将距离最近的轮廓点作为目标轮廓点,确定所述目标轮廓点与起点之间的直线方向;
[0230]
第一列表形成单元,用于若直线方向发生改变且所有目标轮廓点的数量满足要求,基于起点对应的轮廓点和直线方向一致的各目标轮廓点生成轮廓点列表,将最新的目标轮廓点作为新的起点,返回执行计算下一个簇中轮廓点与起点之间的距离,将距离最近的轮廓点作为目标轮廓点,确定所述目标轮廓点与起点之间的直线方向的步骤;
[0231]
轮廓点过滤单元,用于若直线方向发生改变且所述目标轮廓点的数量不满足要求,过滤掉所述目标轮廓点,将未过滤掉的最新的目标轮廓点作为新的起点,返回执行计算下一个簇中轮廓点与起点之间的距离,将距离最近的轮廓点作为目标轮廓点,确定所述目标轮廓点与起点之间的直线方向的步骤;
[0232]
起点更新单元,用于若直线方向未发生改变且目标轮廓点不为最后一个簇中的轮廓点,将最新的目标轮廓点作为新的起点,返回执行计算下一个簇中轮廓点与起点之间的距离,将距离最近的轮廓点作为目标轮廓点,确定所述目标轮廓点与起点之间的直线方向的步骤;
[0233]
第二列表形成单元,用于若直线方向未发生改变且目标轮廓点为最后一个簇中的轮廓点,基于起点对应的轮廓点和各目标轮廓点生成轮廓点列表,判断是否遍历所有轮廓点,若是,确定所有轮廓点列表均已生成;否则,以第一个簇中的另一个轮廓点为新的起点,返回执行计算下一个簇中轮廓点与起点之间的距离,将距离最近的轮廓点作为目标轮廓点,确定所述目标轮廓点与起点之间的直线方向的步骤。
[0234]
可选的,角点坐标确定模块63,包括:
[0235]
直线拟合单元,用于对各所述轮廓点列表中的轮廓点进行直线拟合,确定轮廓线的直线方程;
[0236]
交点计算单元,用于根据各所述轮廓点的直线方程计算交点,得到角点坐标;
[0237]
逆变换单元,用于基于所述第一旋转矩阵和第二旋转矩阵对各所述角点坐标进行逆变换,得到变换后的角点坐标;
[0238]
角点坐标确定单元,用于将各所述变换后的角点坐标加上基准点坐标,得到点云角点坐标。
[0239]
本发明实施例所提供的雷达与相机的标定装置可执行本发明任意实施例所提供的雷达与相机的标定方法,具备执行方法相应的功能模块和有益效果。
[0240]
实施例六
[0241]
图7为本发明实施例六提供的一种雷达与相机的坐标转换装置的结构示意图。如图7所示,该装置包括:待转换数据获取模块71和坐标转换模块72;
[0242]
其中,待转换数据获取模块71,用于获取待转换点云数据,所述待转换点云数据通过雷达采集;
[0243]
坐标转换模块72,用于根据雷达与图像采集装置的转换关系对所述待转换点云数据进行坐标转换,得到目标数据,其中,所述雷达与图像采集装置的转换关系根据本发明任意实施例所述的雷达与相机的坐标标定方法确定。
[0244]
本发明实施例的雷达与相机的坐标转换方法,可以对雷达采集的点云数据进行坐标转换,通过采用本技术任意实施例提供的方法确定雷达与图像采集装置的转换关系,进行点云数据的坐标转换,由于标定结果准确,因此在进行坐标转换时,可以得到准确的目标数据,可以应用在对数据主准确度较高的场景中,应用场景更加广泛;应用在智能驾驶领域中,安全性更高,用户体验也更好。
[0245]
本发明实施例所提供的雷达与相机的坐标转换装置可执行本发明任意实施例所提供的雷达与相机的坐标转换方法,具备执行方法相应的功能模块和有益效果。
[0246]
实施例七
[0247]
图8为本发明实施例七提供的一种电子设备80的结构示意图,该电子设备可以用来实施本发明的实施例所提供的方法。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备(如头盔、眼镜、手表等)和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本发明的实现。
[0248]
如图8所示,电子设备80包括至少一个处理器81,以及与至少一个处理器81通信连接的存储器,如只读存储器(rom)82、随机访问存储器(ram)83等,其中,存储器存储有可被至少一个处理器执行的计算机程序,处理器81可以根据存储在只读存储器(rom)82中的计算机程序或者从存储单元88加载到随机访问存储器(ram)83中的计算机程序,来执行各种适当的动作和处理。在ram 83中,还可存储电子设备80操作所需的各种程序和数据。处理器81、rom 82以及ram 83通过总线84彼此相连。输入/输出(i/o)接口85也连接至总线84。
[0249]
电子设备80中的多个部件连接至i/o接口85,包括:输入单元86,例如键盘、鼠标等;输出单元87,例如各种类型的显示器、扬声器等;存储单元88,例如磁盘、光盘等;以及通信单元89,例如网卡、调制解调器、无线通信收发机等。通信单元89允许电子设备80通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
[0250]
处理器81可以是各种具有处理和计算能力的通用和/或专用处理组件。处理器81的一些示例包括但不限于中央处理单元(cpu)、图形处理单元(gpu)、各种专用的人工智能(ai)计算芯片、各种运行机器学习模型算法的处理器、数字信号处理器(dsp)、以及任何适当的处理器、控制器、微控制器等。处理器81执行上文所描述的各个方法和处理,例如雷达
与相机的标定方法或雷达与相机的坐标转换方法。
[0251]
在一些实施例中,雷达与相机的标定方法或雷达与相机的坐标转换方法可被实现为计算机程序,其被有形地包含于计算机可读存储介质,例如存储单元88。在一些实施例中,计算机程序的部分或者全部可以经由rom 82和/或通信单元89而被载入和/或安装到电子设备80上。当计算机程序加载到ram 83并由处理器81执行时,可以执行上文描述的雷达与相机的标定方法或雷达与相机的坐标转换方法的一个或多个步骤。备选地,在其他实施例中,处理器81可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行雷达与相机的标定方法或雷达与相机的坐标转换方法。
[0252]
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、芯片上系统的系统(soc)、负载可编程逻辑设备(cpld)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
[0253]
用于实施本发明的方法的计算机程序可以采用一个或多个编程语言的任何组合来编写。这些计算机程序可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,使得计算机程序当由处理器执行时使流程图和/或框图中所规定的功能/操作被实施。计算机程序可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
[0254]
在本发明的上下文中,计算机可读存储介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的计算机程序。计算机可读存储介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。备选地,计算机可读存储介质可以是机器可读信号介质。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或快闪存储器)、光纤、便捷式紧凑盘只读存储器(cd-rom)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
[0255]
为了提供与用户的交互,可以在电子设备上实施此处描述的系统和技术,该电子设备具有:用于向用户显示信息的显示装置(例如,crt(阴极射线管)或者lcd(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给电子设备。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
[0256]
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部
件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(lan)、广域网(wan)、区块链网络和互联网。
[0257]
计算系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与vps服务中,存在的管理难度大,业务扩展性弱的缺陷。
[0258]
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发明中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本发明的技术方案所期望的结果,本文在此不进行限制。
[0259]
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。

技术特征:
1.一种雷达与相机的标定方法,其特征在于,包括:获取至少一帧点云数据及各所述点云数据对应的图像数据,所述点云数据由雷达采集标定板得到,所述图像数据由图像采集装置采集标定板得到;针对每帧点云数据,对所述点云数据进行处理,得到标定板对应的点云数据,将所述标定板对应的点云数据平移旋转到预设平面,得到对应的第一点云数据;对各所述第一点云数据进行聚类,得到至少一个簇,根据各所述簇中的第二点云数据确定各所述簇的轮廓点坐标,根据各所述轮廓点坐标确定轮廓点列表,根据各所述轮廓点列表确定板定板的点云角点坐标;根据各所述图像数据确定图像角点坐标,根据各所述点云角点坐标和图像角点坐标确定雷达与图像采集装置的转换关系。2.根据权利要求1所述的方法,其特征在于,获取各所述点云数据对应的图像数据,包括:针对每帧点云数据,确定所述点云数据对应的时间戳;根据所述时间戳筛选出所述点云数据对应的图像数据。3.根据权利要求1所述的方法,其特征在于,所述对所述点云数据进行处理,得到标定板对应的点云数据,包括:根据标定板对应的点云范围对所述点云数据进行过滤,确定候选点云;对所述候选点云进行过滤,确定目标点云;根据所述目标点云进行平面拟合,确定拟合平面的平面方程,根据所述平面方程筛选出平面内点云;将所述平面内点云投影到拟合平面上,得到标定板对应的点云数据。4.根据权利要求3所述的方法,其特征在于,所述将所述标定板对应的点云数据平移旋转到预设平面,得到对应的第一点云数据,包括:从所述标定板对应的点云数据中筛选出基准点,将所述标定板对应的点云数据减去所述基准点坐标,得到平移后的点云数据;根据拟合平面的平面方程确定第一旋转矩阵和第二旋转矩阵;基于所述第一旋转矩阵和第二旋转矩阵将所述平移后的点云数据旋转到预设平面,得到对应的第一点云数据。5.根据权利要求4所述的方法,其特征在于,所述根据拟合平面的平面方程确定第一旋转矩阵和第二旋转矩阵,包括:根据拟合平面的平面方程确定平面法向量,根据所述平面法向量确定第一旋转参数,并基于所述第一旋转参数确定第一旋转矩阵;根据所述第一旋转参数确定旋转后平面的法向量,根据所述旋转后平面的法向量确定第二旋转参数,并基于所述第二旋转参数确定第二旋转矩阵。6.根据权利要求1所述的方法,其特征在于,所述根据各所述簇中的第二点云数据确定各所述簇的轮廓点坐标,包括:针对每个簇,根据所述簇中的第二点云数据确定中心点;计算每个第二点云数据与中心点之间的第一距离,将距离最远的第一距离对应的第二点云数据确定为第一个轮廓点;
计算每个第二点云数据与第一个轮廓点之间的第二距离,将距离最远的第二距离对应的第二点云数据确定为第二个轮廓点;根据所述第一个轮廓点的坐标和第二个轮廓点的坐标确定所述簇的轮廓点坐标。7.根据权利要求1所述的方法,其特征在于,所述根据各所述轮廓点坐标确定轮廓点列表,包括:以第一个簇中的一个轮廓点为起点,计算下一个簇中轮廓点与起点之间的距离,将距离最近的轮廓点作为目标轮廓点,确定所述目标轮廓点与起点之间的直线方向;若直线方向发生改变且所有目标轮廓点的数量满足要求,基于起点对应的轮廓点和直线方向一致的各目标轮廓点生成轮廓点列表,将最新的目标轮廓点作为新的起点,返回执行计算下一个簇中轮廓点与起点之间的距离,将距离最近的轮廓点作为目标轮廓点,确定所述目标轮廓点与起点之间的直线方向的步骤;若直线方向发生改变且所述目标轮廓点的数量不满足要求,过滤掉所述目标轮廓点,将未过滤掉的最新的目标轮廓点作为新的起点,返回执行计算下一个簇中轮廓点与起点之间的距离,将距离最近的轮廓点作为目标轮廓点,确定所述目标轮廓点与起点之间的直线方向的步骤;若直线方向未发生改变且目标轮廓点不为最后一个簇中的轮廓点,将最新的目标轮廓点作为新的起点,返回执行计算下一个簇中轮廓点与起点之间的距离,将距离最近的轮廓点作为目标轮廓点,确定所述目标轮廓点与起点之间的直线方向的步骤;若直线方向未发生改变且目标轮廓点为最后一个簇中的轮廓点,基于起点对应的轮廓点和各目标轮廓点生成轮廓点列表,判断是否遍历所有轮廓点,若是,确定所有轮廓点列表均已生成;否则,以第一个簇中的另一个轮廓点为新的起点,返回执行计算下一个簇中轮廓点与起点之间的距离,将距离最近的轮廓点作为目标轮廓点,确定所述目标轮廓点与起点之间的直线方向的步骤。8.根据权利要求4所述的方法,其特征在于,所述根据各所述轮廓点列表确定板定板的点云角点坐标,包括:对各所述轮廓点列表中的轮廓点进行直线拟合,确定轮廓线的直线方程;根据各所述轮廓点的直线方程计算交点,得到角点坐标;基于所述第一旋转矩阵和第二旋转矩阵对各所述角点坐标进行逆变换,得到变换后的角点坐标;将各所述变换后的角点坐标加上基准点坐标,得到点云角点坐标。9.一种雷达与相机的坐标转换方法,其特征在于,包括:获取待转换点云数据,所述待转换点云数据通过雷达采集;根据雷达与图像采集装置的转换关系对所述待转换点云数据进行坐标转换,得到目标数据,其中,所述雷达与图像采集装置的转换关系根据权利要求1-8任一项所述的雷达与相机的坐标标定方法确定。10.一种雷达与相机的标定装置,其特征在于,包括:数据获取模块,用于获取至少一帧点云数据及各所述点云数据对应的图像数据,所述点云数据由雷达采集标定板得到,所述图像数据由图像采集装置采集标定板得到;第一点云数据确定模块,用于针对每帧点云数据,对所述点云数据进行处理,得到标定
板对应的点云数据,将所述标定板对应的点云数据平移旋转到预设平面,得到对应的第一点云数据;角点坐标确定模块,用于对各所述第一点云数据进行聚类,得到至少一个簇,根据各所述簇中的第二点云数据确定各所述簇的轮廓点坐标,根据各所述轮廓点坐标确定轮廓点列表,根据各所述轮廓点列表确定板定板的点云角点坐标;转换关系确定模块,用于根据各所述图像数据确定图像角点坐标,根据各所述点云角点坐标和图像角点坐标确定雷达与图像采集装置的转换关系。11.一种雷达与相机的坐标转换装置,其特征在于,包括:待转换数据获取模块,用于获取待转换点云数据,所述待转换点云数据通过雷达采集;坐标转换模块,用于根据雷达与图像采集装置的转换关系对所述待转换点云数据进行坐标转换,得到目标数据,其中,所述雷达与图像采集装置的转换关系根据权利要求1-8任一项所述的雷达与相机的坐标标定方法确定。12.一种电子设备,其特征在于,所述电子设备包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-9中任一项所述方法。13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现权利要求1-9中任一项所述的方法。

技术总结
本发明公开了一种雷达与相机的标定以及坐标转换方法;该标定方法包括:获取至少一帧点云数据及各点云数据对应的图像数据;针对每帧点云数据,对点云数据进行处理,得到标定板对应的点云数据,将标定板对应的点云数据平移旋转到预设平面,得到对应的第一点云数据;对各第一点云数据进行聚类,得到至少一个簇,根据各簇中的第二点云数据确定各簇的轮廓点坐标,根据各轮廓点坐标确定轮廓点列表,根据各轮廓点列表确定板定板的点云角点坐标;根据各图像数据确定图像角点坐标,根据各点云角点坐标和图像角点坐标确定雷达与图像采集装置的转换关系,解决了相机与雷达联合标定时不准确的问题,标定过程简单,且标定结果准确。且标定结果准确。且标定结果准确。


技术研发人员:韩昊轩 方书晨 王孝润 岳莹莹 窦殿松 王祥 郑一辰
受保护的技术使用者:北京星云互联科技有限公司
技术研发日:2023.05.22
技术公布日:2023/10/6
版权声明

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

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

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

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

分享:

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

相关推荐