激光雷达与双目摄像头的外参标定方法、装置及设备
技术领域
本申请涉及智能驾驶技术领域,特别是涉及一种激光雷达与双目摄像头的外参标定方法、装置及设备。
背景技术
随着智能驾驶技术的发展,车载传感器的功能也越来越强大,常见的传感器包括激光雷达以及摄像头,其中,激光雷达用于获取车辆周围的物体的三维位置信息,摄像头用于获取物体的二维信息以及颜色信息等。通过对激光雷达以及摄像头进行外参标定以使得其对应的信息可以相互融合,从而使得智能驾驶车辆能够更加准确地感知周围的物体,从而保证智能驾驶的安全性。
现有技术通过利用激光雷达拟合出的多个特征点与摄像头对应的特征点之间的相互关系求得转换矩阵及外参,然而,该方法需要先利用激光雷达点云拟合出特征点,该过程存在一定的误差,另外,在处理过程中需要较多的特征点才能得到较为准确的外参,从而使得该方法操作过程较为繁琐,且准确率不高。
发明内容
基于此,有必要针对现有技术存在的问题,提供一种更加方便准确的激光雷达与双目摄像头的外参标定方法、装置及设备。
一种激光雷达与双目摄像头的外参标定方法,包括:
获取通过所述激光雷达得到的点云数据,以及通过所述双目摄像头得到的图像数据;
根据所述图像数据得到对应的点云图;
获取所述激光雷达与所述双目摄像头的初始外参,根据所述初始外参对所述点云数据进行坐标转换,得到摄像头坐标系下的点云数据,所述初始外参为根据所述激光雷达与所述双目摄像头的相对姿态得到;
根据所述图像数据对应的点云图以及所述摄像头坐标系下的点云数据进行配准处理,根据配准处理结果得到所述激光雷达与所述双目摄像头之间的转换矩阵。
在其中一个实施例中,所述图像数据包括左目图像数据以及右目图像数据;
根据所述图像数据得到对应的点云图,包括:
根据所述左目图像数据以及右目图像数据得到包含深度信息的图片;
对所述包含深度信息的图片进行格式转换处理,得到对应的点云图。
在其中一个实施例中,对所述包含深度信息的图片进行格式转换处理,得到对应的点云图之后,还包括:对所述点云图进行体素滤波下采样处理。
在其中一个实施例中,根据所述初始外参对所述点云数据进行坐标转换,得到摄像头坐标系下的点云数据,包括:
根据所述初始外参得到对应的初始转换矩阵;
根据所述初始转换矩阵,对对所述点云数据进行坐标转换,得到摄像头坐标系下的点云数据。
在其中一个实施例中,所述图像数据对应的点云图以及所述摄像头坐标系下的点云数据的配准处理包括粗配准处理以及精配准处理。
在其中一个实施例中,所述精配准处理,包括以下步骤:
根据所述点云图建立对应的K-维树;
根据所述点云数据以及所述K-维树,构建对应的损失函数;
通过列文伯格-马夸特算法进行内部迭代,得到转换矩阵的局部最优解;
根据所述转换矩阵的局部最优解对所述点云数据进行修正,得到修正后的点云数据;
根据所述修正后的点云数据以及所述损失函数得到对应的损失值,当所述损失值小于预设阈值时,确定精配准处理完成;否则,根据所述修正后的点云数据以及所述K-维树更新所述损失函数,并返回所述通过列文伯格-马夸特算法进行内部迭代,得到转换矩阵的局部最优解的步骤。
在其中一个实施例中,根据配准处理结果得到所述激光雷达与所述双目摄像头之间的转换矩阵,包括:
对所述初始外参对应的初始转换矩阵以及内部迭代过程中得到的转换矩阵的所有局部最优解进行乘法运算,并将对应的运算结果作为所述激光雷达与所述双目摄像头之间的转换矩阵。
一种激光雷达与双目摄像头的外参标定装置,包括:
数据获取模块,用于获取通过所述激光雷达得到的点云数据,以及通过所述双目摄像头得到的图像数据;
数据处理模块,用于根据所述图像数据得到对应的点云图;获取所述激光雷达与所述双目摄像头的初始外参,根据所述初始外参对所述点云数据进行坐标转换,得到摄像头坐标系下的点云数据,所述初始外参为根据所述激光雷达与所述双目摄像头的相对姿态得到;
信息配准模块,用于根据所述图像数据对应的点云图以及所述摄像头坐标系下的点云数据进行配准处理,根据配准处理结果得到所述激光雷达与所述双目摄像头之间的转换矩阵。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述方法的步骤。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述方法的步骤。
上述激光雷达与双目摄像头的外参标定方法、装置及设备,获取通过激光雷达得到的点云数据,以及通过双目摄像头得到的图像数据;根据图像数据得到对应的点云图;获取激光雷达与双目摄像头的初始外参,根据初始外参对点云数据进行坐标转换,得到摄像头坐标系下的点云数据,初始外参为根据激光雷达与双目摄像头的相对姿态得到;根据图像数据对应的点云图以及摄像头坐标系下的点云数据进行配准处理,根据配准处理结果得到激光雷达与双目摄像头之间的转换矩阵。通过对激光雷达点云数据进行坐标转换,并将转换后的点云数据与双目摄像头对应的点云图进行配准处理,得到对应的转换矩阵,从而可以更加方便准确地进行激光雷达与双目摄像头的外参标定。
附图说明
图1为一个实施例中激光雷达与双目摄像头的外参标定方法的流程示意图。
图2为一个实施例中通过半全局匹配算法得到深度信息的原理示意图。
图3为一个实施例中根据双目摄像头的图像数据得到的点云图。
图4为一个实施例中根据激光雷达的点云数据得到的点云图。
图5为一个实施例中双目摄像头与激光雷达的配准图。
图6为一具体场景中激光雷达与双目摄像头图片的标定结果图。
图7为另一具体场景中激光雷达与双目摄像头图片的标定结果图。
图8为一个实施例中激光雷达与双目摄像头的外参标定装置的结构示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
对于智能驾驶车辆来说,通过多种车载传感器采集足够多的车辆周围物体信息是保障车辆行驶安全的重要手段,多种车载传感器之间的信息融合可以使得车辆能够更加准确的感知周围的环境,在不同车载传感器之间的信息融合过程中,传感器之间的外参标定是最重要的部分。以激光雷达和摄像头为例,一个正确的外参将使两种传感器之间的信息融合通过简单的投射即可对应上,而有一定误差的外参将会使两种传感器检测到的障碍物造成匹配误差,特别是距离越远,匹配的误差将放大,影响信息的正确融合。
本申请针对现有技术中激光雷达与摄像头外参标定过程繁琐、且准确率低的问题,提出一种利用激光雷达得到的点云数据以及双目摄像头得到的图像数据进行数据处理、匹配的外参标定方法,可以更加方便准确低得到激光雷达和双目摄像头的外参。
在一个实施例中,如图1所示,提供一种激光雷达与双目摄像头的外参标定方法,以该方法应用于可以进行外参标定的处理器为例进行解释说明,该方法包括以下步骤:
步骤S100,获取通过激光雷达得到的点云数据,以及通过双目摄像头得到的图像数据。
处理器在进行外参标定时,同时获取激光雷达以及双目摄像头得到的数据。处理器可以是直接同时采集激光雷达和双目摄像头的数据,也可以是通过中介设备采集激光雷达和双目摄像头的数据,然后该中介设备将采集的数据发送至处理器。
步骤S200,根据图像数据得到对应的点云图。
处理器在获取通过双目摄像头得到的图像数据后,根据该图像数据得到对应的点云图,得到的点云图用于后续配准处理。
步骤S300,获取激光雷达与双目摄像头的初始外参,根据初始外参对点云数据进行坐标转换,得到摄像头坐标系下的点云数据,初始外参为根据激光雷达与双目摄像头的相对姿态得到。
处理器在获取通过激光雷达得到的点云数据之后,继续获取根据激光雷达与双目摄像头的相对姿态得到的初始外参,根据该初始外参得到对应的初始转换矩阵,并根据该初始外参对应的初始转换矩阵对点云数据进行坐标转换,以将该点云数据转换为摄像头坐标系下的点云数据。初始外参可以是通过人工测量的激光雷达与双目摄像头之间的粗略初始外参。
步骤S400,根据图像数据对应的点云图以及摄像头坐标系下的点云数据进行配准处理,根据配准处理结果得到激光雷达与双目摄像头之间的转换矩阵。
处理器在根据图像数据得到对应的点云图、以及对点云数据进行坐标转换后,根据图像数据对应的点云图以及摄像头坐标系下的点云数据进行配准处理,并根据配准处理结果得到激光雷达与双目摄像头之间的转换矩阵,从而完成激光雷达与双目摄像头之间的外参标定。
本实施例通过对激光雷达点云数据进行坐标转换,并将转换后的点云数据与双目摄像头对应的点云图进行配准处理,得到对应的转换矩阵,从而可以更加方便准确地进行激光雷达与双目摄像头的外参标定。
在一个实施例中,由于激光雷达获取的点云数据为通过360度全景扫描得到的数据,而双目摄像头获取的图像数据为某一固定方位的图像数据,例如可以是车辆正前方的数据,因此,在获取通过激光雷达得到的点云数据,以及通过双目摄像头得到的图像数据之后,在进行数据处理之前,还包括:对点云数据进行滤波处理,得到与图像数据相同方位的点云数据。
在一个实施例中,对于双目摄像头来说,图像数据包括左目图像数据以及右目图像数据。根据图像数据得到对应的点云图,包括:根据左目图像数据以及右目图像数据得到包含深度信息的图片;对包含深度信息的图片进行格式转换处理,得到对应的点云图。
具体地,在进行图像数据采集时,可以选择深度信息较为丰富的场景区域,例如可以是包含有树木等杆状物的区域,从而便于后期检查标定效果;然后通过双目摄像头采集该场景的左目图像以及右目图像,并根据左目图像以及右目图像,通过半全局匹配算法得到包含深度信息的图片。
如图2所示,为通过半全局匹配算法得到深度信息的原理示意图,图中P是待测物体上的某一点,OR与OT是双目摄像头(两个相机规格相同)的两个光心,点P在相机感光器上的成像点分别为P1和P2(相机的成像平面经过旋转后放在镜头前方),f为相机焦距,B为两光心的中心距,Z为深度信息,成像点P1到成像点P2的距离为B-(XR-XT),则根据相似三角形原理,有:
其中,为第一个相机对应的第一感光器(光心为OR)的宽度(图中未示出),为成像点P1到第一感光器光心OR的偏移(图中未示出);为第二个相机对应的第二感光器(光心为OT)宽度(图中未示出),为成像点P2到第二感光器光心OT的偏移(图中未示出)。
在得到深度信息Z后,结合深度信息Z结合像素坐标X和Y得到对应的点云图。
在一个实施例中,对包含深度信息的图片进行格式转换处理,得到对应的点云图之后,还包括:对点云图进行体素滤波下采样处理。体素滤波尺寸大小可以设置为0.2m左右,通过体素滤波下采样处理,可以减少点云数据的数量,并同时仍保持点云的形状特征。
在一个实施例中,根据初始外参对点云数据进行坐标转换,得到摄像头坐标系下的点云数据,包括:根据初始外参得到对应的初始转换矩阵;根据初始转换矩阵,对对点云数据进行坐标转换,得到摄像头坐标系下的点云数据。
具体地,可以通过人工测量获取激光雷达与双目摄像头直接的粗略初始外参,粗略初始外参包括双目摄像头相对与激光雷达的X、Y、Z轴的坐标以及分别绕这三个坐标轴的旋转姿态角:roll(横摆角)、pitch(俯仰角)以及yaw(航向角),然后利用上述粗略初始外参得到4x4的初始转换矩阵K,通过该初始转换矩阵K对点云数据进行坐标转换,从而将激光雷达的点云数据转换为摄像头坐标系下的点云数据。
在一个实施例中,图像数据对应的点云图以及摄像头坐标系下的点云数据的配准处理包括粗配准处理以及精配准处理。通过粗配准处理以及精配准处理的结合处理,可以提高配准的精确度。
在一个实施例中,在进行精配准处理时,配准方法为利用K-维树搜索最近匹配点结合列文伯格-马夸特算法(LM)得到最优解,从而得到激光雷达与双目摄像头之间的转换矩阵。
在一个实施例中,精配准处理,包括以下步骤:
根据点云图建立对应的K-维树;
根据点云数据以及K-维树,构建对应的损失函数;
通过列文伯格-马夸特算法进行内部迭代,得到转换矩阵的局部最优解;
根据转换矩阵的局部最优解对点云数据进行修正,得到修正后的点云数据;
根据修正后的点云数据以及损失函数得到对应的损失值,当损失值小于预设阈值时,确定精配准处理完成;否则,根据修正后的点云数据以及K-维树更新损失函数,并返回通过列文伯格-马夸特算法进行内部迭代,得到转换矩阵的局部最优解的步骤。
具体地,定义通过激光雷达得到的点云数据为L,初始转换矩阵为K,则摄像头坐标系下的点云数据L’为:L’=L*K,根据图像数据得到的点云图为C,首先对点云数据L’以及点云图C进行粗配准处理,然后进行精配准处理,精配准处理过程如下:
(1)根据点云图C建立K-维树。
(2)对点云数据L’中的每个点,在K-维树中最近邻查询得到其在点云图C中的最近邻点,最近邻阈值约为0.1m~0.5m之间,从而分别建立最初的对应点云蔟和,其中,点云蔟M和点云蔟N中下标为i的点是相互对应的最近点,并建立损失函数:
其中,S为点云簇中配对点的个数。
(3)设置全为0的初始配准参数,得到初始转换矩阵,利用列文伯格-马夸特算法(LM)对转换矩阵进行迭代得到局部最优解,然后利用对点云数据L’进行变换得到点云数据。
(4)再对点云数据中的每个点在K-维树中最近邻查询得到其在点云图C中的最近邻点,建立对应点云蔟和,利用列文伯格-马夸特算法(LM)结合相同的参数对损失函数进行迭代,得到局部最优解,然后利用对点云数据进行变换得到点云数据。
(5)按照上述处理过程进行循环处理,直至损失函数的损失值F小于预设阈值为止,可以确定精配准处理完成,并得到一系列的最优解,其中,预设阈值可以为0.0025m~0.09m。
在一个实施例中,根据配准处理结果得到激光雷达与双目摄像头之间的转换矩阵,包括:对初始外参对应的初始转换矩阵以及内部迭代过程中得到的转换矩阵的所有局部最优解进行乘法运算,并将对应的运算结果作为激光雷达与双目摄像头之间的转换矩阵。
在精配准处理完成后,根据初始外参对应的初始转换矩阵K,以及通过精配准处理得到的一系列的最优解,则激光雷达与双目摄像头之间的转换矩阵为:
在得到激光雷达与双目摄像头之间的转换矩阵之后,将初始的通过激光雷达得到的点云数据L通过转换矩阵进行转换得到,并得到和点云图C的最终配准图,最后将通过双目摄像头的内参投射到双目摄像头的图片上即可。
在一个实施例中,提供激光雷达与双目摄像头的外参标定的具体实例。
如图3所示,为根据双目摄像头的图像数据得到的点云图,图4为根据激光雷达的点云数据得到的点云图,图5为双目摄像头与激光雷达的配准图,图6为一具体场景中激光雷达与双目摄像头图片的标定结果图(图中交叉的直线为激光雷达的点云投影),图7为另一具体场景中激光雷达与双目摄像头图片的标定结果图。通过图6和图7可以看出,通过本申请中的方法进行激光雷达与双目摄像头的外参标定,标定效果好,标定准确度高。
在一个实施例中,在进行精配准时,也可以是采用其他配准方法,例如,可以是采用PCL库中封装好的ICP(Iterative Closest Point,迭代最近点)算法及其变种算法进行双目摄像头与激光雷达的配准。
应该理解的是,虽然图1的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图8所示,提供一种激光雷达与双目摄像头的外参标定装置,该装置包括:数据获取模块100、数据处理模块200以及信息配准模块300。
数据获取模块100用于获取通过激光雷达得到的点云数据,以及通过双目摄像头得到的图像数据;
数据处理模块200用于根据图像数据得到对应的点云图;获取激光雷达与双目摄像头的初始外参,根据初始外参对点云数据进行坐标转换,得到摄像头坐标系下的点云数据,初始外参为根据激光雷达与双目摄像头的相对姿态得到;
信息配准模块300用于根据图像数据对应的点云图以及摄像头坐标系下的点云数据进行配准处理,根据配准处理结果得到激光雷达与双目摄像头之间的转换矩阵。
关于激光雷达与双目摄像头的外参标定装置的具体限定可以参见上文中对于激光雷达与双目摄像头的外参标定方法的限定,在此不再赘述。上述激光雷达与双目摄像头的外参标定装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:获取通过激光雷达得到的点云数据,以及通过双目摄像头得到的图像数据;根据图像数据得到对应的点云图;获取激光雷达与双目摄像头的初始外参,根据初始外参对点云数据进行坐标转换,得到摄像头坐标系下的点云数据,初始外参为根据激光雷达与双目摄像头的相对姿态得到;根据图像数据对应的点云图以及摄像头坐标系下的点云数据进行配准处理,根据配准处理结果得到激光雷达与双目摄像头之间的转换矩阵。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:根据左目图像数据以及右目图像数据得到包含深度信息的图片;对包含深度信息的图片进行格式转换处理,得到对应的点云图。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:对点云图进行体素滤波下采样处理。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:根据初始外参得到对应的初始转换矩阵;根据初始转换矩阵,对对点云数据进行坐标转换,得到摄像头坐标系下的点云数据。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:根据点云图建立对应的K-维树;根据点云数据以及K-维树,构建对应的损失函数;通过列文伯格-马夸特算法进行内部迭代,得到转换矩阵的局部最优解;根据转换矩阵的局部最优解对点云数据进行修正,得到修正后的点云数据;根据修正后的点云数据以及损失函数得到对应的损失值,当损失值小于预设阈值时,确定精配准处理完成;否则,根据修正后的点云数据以及K-维树更新损失函数,并返回通过列文伯格-马夸特算法进行内部迭代,得到转换矩阵的局部最优解的步骤。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:对初始外参对应的初始转换矩阵以及内部迭代过程中得到的转换矩阵的所有局部最优解进行乘法运算,并将对应的运算结果作为激光雷达与双目摄像头之间的转换矩阵。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:获取通过激光雷达得到的点云数据,以及通过双目摄像头得到的图像数据;根据图像数据得到对应的点云图;获取激光雷达与双目摄像头的初始外参,根据初始外参对点云数据进行坐标转换,得到摄像头坐标系下的点云数据,初始外参为根据激光雷达与双目摄像头的相对姿态得到;根据图像数据对应的点云图以及摄像头坐标系下的点云数据进行配准处理,根据配准处理结果得到激光雷达与双目摄像头之间的转换矩阵。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:根据左目图像数据以及右目图像数据得到包含深度信息的图片;对包含深度信息的图片进行格式转换处理,得到对应的点云图。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:对点云图进行体素滤波下采样处理。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:根据初始外参得到对应的初始转换矩阵;根据初始转换矩阵,对对点云数据进行坐标转换,得到摄像头坐标系下的点云数据。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:根据点云图建立对应的K-维树;根据点云数据以及K-维树,构建对应的损失函数;通过列文伯格-马夸特算法进行内部迭代,得到转换矩阵的局部最优解;根据转换矩阵的局部最优解对点云数据进行修正,得到修正后的点云数据;根据修正后的点云数据以及损失函数得到对应的损失值,当损失值小于预设阈值时,确定精配准处理完成;否则,根据修正后的点云数据以及K-维树更新损失函数,并返回通过列文伯格-马夸特算法进行内部迭代,得到转换矩阵的局部最优解的步骤。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:对初始外参对应的初始转换矩阵以及内部迭代过程中得到的转换矩阵的所有局部最优解进行乘法运算,并将对应的运算结果作为激光雷达与双目摄像头之间的转换矩阵。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(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)等。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。