1.本技术涉及传感器外参标定领域,特别是涉及相机和激光雷达的外参标定方法、系统及可读存储介质。
背景技术:2.智能车使用多种传感器联合实现车辆对于环境物体的感知以及车辆对于自身位置的定位。其中相机可以对环境产生准确的2d检测,lidar可以对环境产生准确的3d检测,两者对于同一个物体的观测,需要通过两个传感器之间的外参进行统一,两者外参的准确与否,决定了智能车对于环境感知的准确性以及车辆定位的准确性,最终影响到整体车辆的安全性。
3.目前智能车厂商普遍采用的外参标定方法为离线标定,此种方法需要车辆在预先布置好的标定车间进行数据采集,离线完成相机与lidar的在线标定,接下来需要人工进行结果审核。此种方法依赖事先布置好的标定车间,同时需要人工干预,标定过程漫长复杂,耗时耗力。
4.当传感器外参标定完毕后,随着时间推移,两种传感器之间势必会发生位置变换,此时为了更新车辆外参结果,需要重新将车辆开进标定场所进行标定,对车辆运营造成了负面影响。
技术实现要素:5.本技术主要提供一种相机和激光雷达的外参标定方法、系统及可读存储介质,解决了现有技术中无法对相机和激光雷达进行在线外参标定的问题。
6.为解决上述技术问题,本技术第一方面提供了相机和激光雷达的外参标定方法,包括:获取相机拍摄的包含检测目标的二维图像以及激光雷达对于检测目标进行感知得到的第一点云;基于选定的多组外参试验值分别将第一点云投影到二维图像中,以形成与每组外参试验值对应的第二点云;将每个第二点云中的落在检测目标所在的第一区域内的数据点对应的三维点作为第三点云;计算第三点云的熵值;基于熵值从多组外参试验值中选择最佳外参值。
7.为解决上述技术问题,本技术第二方面提供了一种车辆系统,包括相互耦接的处理器和存储器;所述存储器中存储有计算机程序,所述处理器用于执行所述计算机程序以实现如上述第一方面提供的相机和激光雷达的外参标定方法。
8.为解决上述技术问题,本技术第三方面提供了一种计算机可读存储介质,计算机可读存储介质存储有程序数据,所述程序数据被处理器执行时,实现上述第一方面提供的相机和激光雷达的外参标定方法。
9.本技术的有益效果是:区别于现有技术的情况,本技术利用相机拍摄包含检测目标的二维图像以及利用激光雷达对于检测目标进行感知得到的第一点云,基于选定的多组外参试验值,分别将第一点云投影到二维图像中,以形成与每组外参试验值对应的第二点
云,将每个第二点云中的落在检测目标所在的第一区域内的数据点作为第三点云,根据第三点云的熵值从多组外参试验值中选择最佳外参值。上述方式以激光雷达对检测目标的感应得到的点云数据,基于每组外参试验值下在二维图像相应区域的投影的熵值为依据,来从多组外参试验值中选取最佳外参值,以实现对相机和激光雷达之间外参的在线标定,准确度高,便捷高效。
附图说明
10.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
11.图1是本技术相机和激光雷达的外参标定方法一实施例的流程示意框图;
12.图2是本技术步骤s11一实施例的流程示意框图;
13.图3是本技术步骤s14一实施例的流程示意框图;
14.图4是本技术车辆系统一实施例的结构示意框图;
15.图5是本技术车辆系统另一实施例的结构示意框图;
16.图6是本技术计算机可读存储介质一实施例的结构示意框图。
具体实施方式
17.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本技术的一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
18.本技术中的术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。此外,术语“包括”和“具有”以及他们任何形变,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
19.在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本技术的至少一个实施例中。在说明书中的各个位置出现该短语不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解是,本文所描述的实施例可以与其他实施例结合。
20.请参阅图1,图1是本技术相机和激光雷达的外参标定方法一实施例的流程示意框图。需注意的是,若有实质上相同的结果,本实施例并不以图1所示的流程顺序为限。本实施例包括以下步骤:
21.s11:获取相机拍摄的包含检测目标的二维图像以及激光雷达对于检测目标进行感知得到的第一点云。
22.可选的是,本步骤相机和激光雷达同步触发,在一些实施例中,触发时间间隔小于
20毫秒可以认定为同步触发。二维图像中,包含检测目标及周围环境的像素信息,第一点云中,则包含激光雷达对于检测目标感知得到的外观表面的点数据。
23.其中,本技术的外参标定方法可用于车辆系统中,车辆设有相机和激光雷达,车辆在行驶过程中,可对周围环境中的物体利用相机和激光雷达进行像素信息及点云信息的获取,周围环境中的物体即可成为检测目标,检测目标例如是其他车辆、路障、警示标志牌等,本实施例以其他车辆为检测目标来获取二维图像和第一点云。
24.请参阅图2,图2是本技术步骤s11一实施例的流程示意框图。需注意的是,若有实质上相同的结果,本实施例并不以图2所示的流程顺序为限。本实施例包括以下步骤:
25.s111:获取激光雷达感知到的当前环境的第四点云。
26.本步骤获取的第四点云,包括激光雷达对于整体环境的感知得到的所有点云数据,不仅包括检测目标的点云数据,还包括当前环境中除检测目标外的其他物体的点云数据。
27.s112:基于当前外参值将第四点云投影到二维图像中,以获得第五点云。
28.其中,第四点云为激光雷达的坐标系下的3d点,第五点云投影到二维图像中的2d点。
29.将第四点云投影到二维图像中,具体是基于相机的内参、当前外参值构建投影矩阵,再基于投影矩阵将第四点云中的各个数据点在雷达坐标系下的三维坐标转换为二维图像坐标系下的二维坐标。
30.具体而言,通过以下方式将第四点云中的数据点投影到二维图像的得到第五点云中各数据点的位置:
[0031][0032]
其中,i为单位矩阵,uv为将第五点云在二维图像的位置,k为相机的内参,为相机和激光雷达之间的外参,为当前外参的旋转矩阵,为当前外参的平移向量,p
l
为第四点云中个数据点的三维坐标向量。
[0033]
s113:基于第一区域确定第二区域,其中第二区域包含第一区域且第二区域的范围大于第一区域。
[0034]
其中,第一区域为二维图像中检测目标所在的区域,第一区域的边缘即为二维图像中检测目标的轮廓,检测目标比如是其他车辆,则检测目标所在的区域则是车辆所在的区域。
[0035]
本步骤之前,可通过对包含检测目标的二维图像进行语义分割或边界框检测,以确定出检测目标所在的第一区域。
[0036]
其中,第二区域包含第一区域,并且还包括第一区域外与第一区域外边界的距离在预设范围内的区域。在一实施例中,第二区域的确定方式为:以第一区域的边缘向外的预设距离处,作为第二区域的边缘,在另外的实施例中,第二区域的范围还可以其他方式确定,只要是能够将第一区域囊括在内即可。
[0037]
s114:将第五点云中的落在第二区域内的数据点作为第一点云。
[0038]
本步骤将第五点云中落在第二区域内的第一点云,作为激光雷达对检测目标进行感知得到的的数据点。
[0039]
其中,第一点云为第五点云落在第二区域内的2d点对应的3d点。
[0040]
本实施例首先获取激光雷达对于当前环境进行感知的第四点云,再将第四点云投影到二维图像中,得到第五点云;并通过第一区域确定检测目标大致所在的第二区域,确定第五点云中落在第二区域的点对应的3d点为第一点云,该第一点云包括激光雷达对于检测目标进行感知的数据点。
[0041]
s12:基于选定的多组外参试验值分别将第一点云投影到二维图像中,以形成与每组外参试验值对应的第二点云。
[0042]
其中,外参试验值和当前外参数据的均可表示为state=[roll,pitch,yaw,x,y,z]的形式,其是通过对外参的旋转矩阵进行欧拉角变换,再与平移向量进行拼接而成的。其中包括三个旋转参量roll、pitch、yaw,以及三个平移参量x、y、z。
[0043]
可选地,此步骤之前,在优化上限和优化下限所限定的优化空间内,获取多组外参试验值。
[0044]
其中,优化上限确定了外参试验值中每个维度的参量roll、pitch、yaw、x、y、z的取值上限,优化下限确定了外参试验值中每个维度的参量roll、pitch、yaw、x、y、z的取值下限,在优化空间内,能够确定有限组外参试验值。
[0045]
具体而言,优化上限例如可表示为[a1,b1,c1,x1,y1,z1],优化下限可表示为[a2,b2,c2,x2,y2,z2],其中a1、a2分别对应参量roll的取值上限和取值下限,b1、b2分别为参量pitch的取值上限和取值下限,c1、c2分别为参量yaw的取值上限和取值下限,x1、x2分别为参量x的取值上限和取值下限,y1、y2分别为参量y的取值上限和取值下限,z1、z2分别为参量z的取值上限和取值下限。如此,上述优化上限和优化下限组成一优化空间,[roll,pitch,yaw,x,y,z]中每个维度的参量以设定间隔在其取值上限和取值下限的范围内取值,有有限个取值可能,即可得到有限组外参试验值。
[0046]
在一实施例中,优化上限和优化下限根据当前外参值确定。具体而言,优化上限中各维度的取值,按照当前外参值按照上述方式变换后,分别对各旋转参量加上/减去设定角度转换量,以得到外参状态值各旋转参量的取值上限/下限,以及,对各平移参量加上/减去设定距离转换量,以得到外参状态值各平移参量的优化上限/下限。可以理解的是,对于各维度的旋转参量而言,其加上/减去设定角度转换量可以相同也可以不同,同样地,对于各维度的平移参量而言,其加上/减去设定距离转换量的具体数值可以相同也可以不同。本实施例的多组外参试验值以当前外参值为中心生成,当前外参值的变动较小时,能够快速在优化空间内确定最佳的外参试验值来更新当前外参,处理速度快,准确度高。
[0047]
与步骤s212类似地,通过下述1)~2)的方式将第一点云投影到二维图像中:
[0048]
1)基于相机的内参以及每组外参试验值分别构建投影矩阵。其中,每组外参试验值用于表征相机对应的相机坐标系与激光雷达所对应的雷达坐标系之间的变换关系。
[0049]
其中投影矩阵的构建方式如下:
[0050][0051]
上式中,k为相机的内参,r即旋转矩阵t即平移向量i为单位矩阵,k
×
[r|
t]构建得到的投影矩阵。
[0052]
2)基于投影矩阵将第一点云中的各数据点在雷达坐标系下的三维坐标转换成二维图像所对应的图像坐标系下的二维坐标。
[0053]
将第一点云中的各数据点投影到二维图像中,其二维坐标为:uv=k[r|t]p
l
。
[0054]
s13:将每个第二点云中的落在检测目标所在的第一区域内的数据点对应的三维点作为第三点云。
[0055]
其中,第二点云落在第一区域中的数据点对应的3d点为第三点云,第三点云视为在该外参试验值下,激光雷达对检测目标进行感知得到的数据点,通过以下步骤对第三点云进行熵计算,即可从确定外参试验值中选出最佳外参。
[0056]
s14:计算第三点云的熵值。
[0057]
其中,熵值由第三点云中的数据点的聚集度表征,其中聚集度越大熵值越小。
[0058]
请参阅图3,图3是本技术步骤s14一实施例的流程示意框图。需注意的是,若有实质上相同的结果,本实施例并不以图3所示的流程顺序为限。本实施例包括以下步骤:
[0059]
s141:对第三点云进行网格化,以形成多个网格。
[0060]
本步骤可利用pcl点云库的voxelgrid滤波器体素化网格的方法,在第三点中创建三维体素栅格,以作为本实施例中的网格。
[0061]
其中,可利用函数句法:void setleafsize(float ix,float ly,float lz),通过ix、ly、lz分别设置体素栅格在x、y、z三个方向上的尺寸。网格尺寸例如可以是0.02m
×
0.02m
×
0.02m的网格大小,网格尺寸还可以有其他设置方式,此处的网格设置方式仅为示例性说明。
[0062]
s142:统计第三点云中的数据点所落入的网格数量。
[0063]
根据前一步骤的网格化方式,第三点云中的数据点落入部分网格中。本步骤统计第三点云中的数据点所落入的网格数量,即统计所有网格中,包含第三点云的数据点大于或等于1的网格数量。
[0064]
s143:以数据点所落入的网格数量表征熵值。
[0065]
其中,数据点所落入的网格数量越大,则熵值越大,表明第三点云越分散。
[0066]
在另一实施例中,还可首先确定第三点云的质心,计算第三点云中所有数据点与该质心的距离平均值,以该距离平均值作为第三点云的熵值。其中,质心的确定方式如下:
[0067][0068]
上式中,n为第三点云的数据点数量,(xi,yi,zi)为各数据点在雷达坐标系下的坐标,pc为质心坐标。
[0069]
在其他的实施例中,还可先对相机拍摄获得的二维图像进行语义分割或检测,得到检测目标所在的第一区域,再对激光雷达感知到的当前环境的第四点云进行语义分割,获得检测目标所在的三维区域,将该三维区域投影到二维图像中,得到该三维区域对应的第三区域,计算第三区域的中心点与第一区域的中心点之间的距离,亦可得到第三点云的熵值。
[0070]
s15:基于熵值从多组外参试验值中选择最佳外参值。
[0071]
其中,熵值越小的,表明第三点云聚集度越高,相应的外参试验值的准确度越高。因此,本步骤选取该熵值最小对应的外参试验值作为最佳外参值,对相机和激光雷达之间的外参进行重新标定。
[0072]
区别于现有技术,本技术在优化空间内,利用相应的外参试验值将当前外参值下获取到的检测目标的第一点云,分别投影到二维图像中检测目标所在区域,得到第三点云,以第三点云的熵值最小为优化目标,在优化空间内选取最佳外参值,作为新外参对相机和激光雷达之间的外参进行重新标定,实现了相机和激光雷达的在线外参标定,无需将车辆开回特定标定场所进行参数标定,准确度高,且便捷高效。
[0073]
请参阅图4,图4是本技术车辆系统一实施例的结构示意框图。其中,车辆系统100包括相机141和激光雷达142,相机141用于拍摄当前环境的二维图像,二维图像中包含检测目标的像素信息,激光雷达142用于对当前环境进行感知。
[0074]
可选地,在车辆的行驶过程中,相机141和激光雷达142以其他车辆作为检测目标来获取二维图像和第一点云。
[0075]
其中,车辆系统100还包括获取模块110、数据处理模块120。获取模块110用于获取相机141拍摄的包含检测目标的二维图像以及激光雷达142对于检测目标进行感知得到的第一点云;数据处理模块120用于基于选定的多组外参试验值分别将第一点云投影到二维图像中,以形成与每组外参试验值对应的第二点云;将每个第二点云中的落在检测目标所在的第一区域内的数据点对应的三维点作为第三点云;计算第三点云的熵值;最后基于熵值从多组外参试验值中选择最佳外参值。
[0076]
其中,获取模块110还用于获取激光雷达142感知到的当前环境的第四点云。
[0077]
数据处理模块120还用于基于当前外参值将第四点云投影到二维图像中,以获得第五点云,基于第一区域确定第二区域,其中第二区域包含第一区域且第二区域的范围大于第一区域,将第五点云中的落在第二区域内的数据点作为第一点云。
[0078]
其中,数据处理模块120还用于基于优化上限和优化下限对当前外参值进行调整,以获得多组外参试验值。
[0079]
其中,数据处理模块120还用于基于相机141的内参以及每组外参试验值分别构建投影矩阵,其中每组外参试验值用于表征相机141对应的相机坐标系与激光雷达142所对应的雷达坐标系之间的变换关系,然后基于投影矩阵将第一点云中的各数据点在雷达坐标系下的三维坐标转换成二维图像所对应的图像坐标系下的二维坐标。
[0080]
其中,数据处理模块120还用于对第一区域进行网格化,以形成多个网格;统计第三点云中的数据点所落入的网格数量;以数据点所落入的网格数量表征熵值,其中数据点所落入的网格数量越大,则熵值越大。
[0081]
其中,数据处理模块120还用于确定第三点云的质心,并计算第三点云中每个数据点与质心的距离的平均值,以平均值作为第三点云的熵值。
[0082]
关于各处理执行的各步骤的具体方式请参照上述本技术相机和激光雷达的外参标定方法实施例的各步骤的描述,在此不再赘述。
[0083]
请参阅图5,图5是本技术车辆系统另一实施例的结构示意框图。该车辆系统200包括相互耦接的处理器210和存储器220,存储器220中存储有计算机程序,处理器210用于执行计算机程序以实现上述各实施例所述的相机和激光雷达的外参标定方法。
[0084]
关于处理执行的各步骤的描述请参照上述本技术相机和激光雷达的外参标定方法实施例的各步骤的描述,在此不再赘述。
[0085]
存储器220可用于存储程序数据以及模块,处理器210通过运行存储在存储器220的程序数据以及模块,从而执行各种功能应用以及数据处理。存储器220可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如点云数据处理功能、图像处理功能等)等;存储数据区可存储根据车辆系统200的使用所创建的数据(比如图像数据、点云数据、外参状态值、当前外参等)等。此外,存储器220可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器220还可以包括存储器控制器,以提供处理器210对存储器220的访问。
[0086]
在本技术的各实施例中,所揭露的方法、系统,可以通过其它的方式实现。例如,以上所描述的车辆系统200的各实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,系统或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0087]
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施方式方案的目的。
[0088]
另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0089]
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中。
[0090]
参阅图6,图6为本技术计算机可读存储介质一实施例的结构示意框图,计算机可读存储介质300存储有程序数据310,程序数据310被执行时实现如上述相机和激光雷达的外参标定方法各实施例的步骤。
[0091]
关于处理执行的各步骤的描述请参照上述本技术相机和激光雷达的外参标定方法实施例的各步骤的描述,在此不再赘述。
[0092]
计算机可读存储介质300可以是u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0093]
以上所述仅为本技术的实施例,并非因此限制本技术的专利范围,凡是利用本技术说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本技术的专利保护范围内。