光学仪器  2019, Vol. 41 Issue (6): 79-86   PDF    
智能汽车激光雷达和相机数据融合系统标定
许小徐, 黄影平, 胡兴     
上海理工大学 光电信息与计算机工程学院,上海 200093
摘要: 智能汽车采用激光雷达和相机的数据融合实现对环境的感知,针对数据融合中不同传感器坐标系的联合标定问题提出了特征点法和棋盘格法两种标定方法。特征点法采用专门设计的标定模板,提取若干对激光雷达和图像对应点,建立约束方程组,采用最小二乘法求解结果。棋盘格法采用张正友标定法获取相机的内部参数,利用棋盘格平面在两个坐标系的一致性,建立约束方程组,采用线性方法求解两个坐标系的外部参数初始解,再用非线性优化方法进一步优化。利用两种方法得到的标定结果将激光雷达点投影到图像上并比较其对准精度。实验表明,两种方法都可以获取各传感器坐标系之间的位置关系,其投影对准误差分别为特征点法3.03 像素和棋盘格法2.33 像素。
关键词: 标定    激光雷达    相机    传感器融合    
Calibration of lidar-camera fusion system for intelligent vehicles
XU Xiaoxu, HUANG Yingping, HU Xing     
School of Optical-Electrical and Computer Engineering, University of Shanghai for Science and Technology, Shanghai 200093, China
Abstract: Intelligent vehicles use a lidar-camera sensor fusion system to perceive the environment. Two calibration methods, feature point method and checkerboard method, are proposed for the joint calibration of different sensor coordinate systems in the data fusion. The feature-point method employs a tailored calibration template to extract several pairs of corresponding points, and solves the constraint equations for the calibration parameters in virtue of the least square method. The checkerboard method employs Zhang’s calibration method to obtain the intrinsic parameters of the camera. And then, equations are derived by using the consistency of the checkerboard plane in lidar and camera coordinate systems, solving the extrinsic parameters between the two coordinates using a linear method. The result is further refined by a nonlinear optimization method. The lidar points are projected onto the image plane by using the calibration results obtained from the two methods. Experiments demonstrate that the two methods are capable of obtaining the accurate position parameters between the coordinate systems of each sensor. The projection alignment errors are 3.03 pixels for the feature point method and 2.33 pixels for the checkerboard method.
Key words: calibration    lidar    camera    sensor fusion    
引 言

智能汽车采用相机和激光雷达实现对环境的感知。通过这些传感器的数据融合,可以发挥各个传感器的特点提高环境识别的可靠性[1]。数据融合的前提是传感器的联合标定,标定就是要找到传感器坐标系之间的位置关系,据此可以将不同传感器的数据在空间上准确地对应起来。

现有的激光雷达和相机联合标定方法可以分为两类:特征点匹配法和棋盘格标定法。特征点匹配法采用特殊图形的标定板提取激光雷达采集到的三维点和对应的相机得到的二维图像点,建立约束方程,优化计算相机位姿,其本质是相机位姿估计的PNP(perspective-n-point)问题[2-3]。该方法无需求解相机的内参数,标定精度主要取决于特征点对的提取精度[4-7]。刘大学[6]针对单线激光雷达,设计了一种带刻度的平面标定模板,利用激光雷达点拟合直线求交点,获得特征点坐标,再根据标定板上的刻度,手动标注出特征点位置,以便在图像中找出对应的图像坐标。该方法适用于单线激光雷达的标定,且需要手动标注特征点,易引入操作误差,且标定板制作过程复杂。Park等[7]针对32线激光雷达设计了一种三角形平面标定板,利用激光雷达扫描在标定板上的边缘点拟合直线方程,再利用直线的交点求出三角形的顶点作为特征点,对应图像中特征点采用图像角点检测的方法求出。该方法仅适用于32线或者扫描层数较多的激光雷达,对于四线激光雷达,可供拟合的边缘点数量少,所以拟合出的直线误差会很大;并且由于提取的是边缘点,对激光雷达的扫描角度分辨率要求较高。基于棋盘格的标定方法最早由华盛顿大学机器人研究室Zhang等[8]提出,通过相机和雷达多角度观测棋盘格平面,利用棋盘格平面在两个坐标系的一致性,根据约束条件用线性方法求解外部参数,再用非线性方法[9-10]进一步优化。Osgood等[11-12]详细介绍了Nelder-Mead优化方法在激光雷达和相机标定问题上的应用。项志宇等[13]基于Zhang等[8]的方法做出改进,采用平面拟合增加了方法的鲁棒性。该类方法只能标定外部参数,相机的内参数要采用张正友法[14]求解。

本文对特征点匹配法以及棋盘格标定方法都进行了研究。针对Park等[7]的方法对激光雷达的层数和扫描角分辨率要求较高的不足,设计了一种新的标定模板,利用平面拟合的方式求取特征点,获取的特征点更加可靠。棋盘格法借鉴了Zhang等[8]和项等[13]的方法,针对他们没有通过实验验证标定精度的不足,本文设计了对标定结果的标靶验证实验,采用靶标在图像上实际的对准效果来验证标定结果的准确性。

1 融合系统标定原理

图1为激光雷达坐标系OC-XCYCZC、相机坐标系OL-XLYLZL和图像坐标系O-XY之间的关系。θxθyθz为激光雷达坐标系相对于相机坐标系在x, y, z方向的旋转角度,(cxcycz)为平移向量,(u0v0)为图像中心的像素坐标,f为相机的焦距。

图 1 各坐标系关系图 Figure 1 Diagram of related coordinate systems

设空间中一点P在激光雷达坐标系坐标为(XLYLZL),在相机坐标系坐标为(XCYCZC),则有

$ \left[ {\begin{array}{*{20}{c}} {{X_{{\rm{C}}}}}\\ {{Y_{\rm{C}}}}\\ {{Z_{\rm{C}}}} \end{array}} \right] = {{R}}\left[ {\begin{array}{*{20}{c}} {{\rm{}}{X_{\rm{L}}}}\\ {{\rm{}}{Y_{\rm{L}}}}\\ {{\rm{}}{Z_{\rm{L}}}} \end{array}} \right] + \left[ {\begin{array}{*{20}{c}} {{c_x}}\\ {{c_{\rm{y}}}}\\ {{c_{\rm{z}}}} \end{array}} \right] \!=\! \left[ {\begin{array}{*{20}{c}} {{R}}&{{T}}\\ {\bf{0}}&{\bf{1}} \end{array}} \right]\left[ {\begin{array}{*{20}{c}} {\begin{array}{*{20}{c}} {{\rm{}}{X_{\rm{L}}}}\\ {{\rm{}}{Y_{\rm{L}}}} \end{array}}\\ {\begin{array}{*{20}{c}} {{\rm{}}{Z_{\rm{L}}}}\\ 1 \end{array}} \end{array}} \right] \!\!\!$ (1)

式中: ${{T}} = \left[ {\begin{array}{*{20}{c}}{{c_{{x}}}}\\{{c_{{y}}}}\\{{c_{{z}}}}\end{array}} \right]$ 是两个坐标系之间的平移向量;R是旋转矩阵,有R=RxRyRz

$ \begin{split} & {{{R}}_{{x}}} = \left[ {\begin{array}{*{20}{c}} {1}\\ {0}\\ {0} \end{array}\begin{array}{*{20}{c}} {0}\\ {\cos \left({ - {\theta _{{x}}}} \right)}\\ { - \sin \left({ - {\theta _{{x}}}} \right)} \end{array}\begin{array}{*{20}{c}} {0}\\ {\sin \left({ - {\theta _{{x}}}} \right)}\\ {\cos \left({ - {\theta _{{x}}}} \right)} \end{array}} \right]\\ & {{{R}}_{{y}}} = \left[ {\begin{array}{*{20}{c}} {\cos \left({ - {\theta _{{y}}}} \right)}\\ {0}\\ {\sin \left({ - {\theta _{{y}}}} \right)} \end{array}\begin{array}{*{20}{c}} {0}\\ 1\\ {0} \end{array}\begin{array}{*{20}{c}} { - \sin \left({ - {\theta _{{y}}}} \right)}\\ {0}\\ {\cos \left({ - {\theta _{{y}}}} \right)} \end{array}} \right]\\ & {{{R}}_{{z}}} = \left[ {\begin{array}{*{20}{c}} {\cos \left({ - {\theta _{{z}}}} \right)}\\ { - \sin \left({ - {\theta _{{z}}}} \right)}\\ {0} \end{array}\begin{array}{*{20}{c}} {\sin \left({ - {\theta _{{z}}}} \right)}\\ {\cos \left({ - {\theta _{{z}}}} \right)}\\ {0} \end{array}\begin{array}{*{20}{c}} {0}\\ {0}\\ 1 \end{array}} \right] \end{split} $

P对应的图像坐标为(u, v),则有

$ \begin{split} {Z_{\rm{C}}}\left[ {\begin{array}{*{20}{c}} {u}\\ v\\ 1 \end{array}} \right] =\qquad\qquad\qquad\qquad\qquad\qquad\qquad\quad\\ \left[ { \begin{array}{*{20}{c}} {\dfrac{1}{{{\rm{d}}x}}}&0&{{u_0}}\\ 0&{\dfrac{1}{{{\rm{d}}}y}}&{{v_0}}\\ 0&0&1 \end{array}} \right]\left[ {\begin{array}{*{20}{c}} {f}\\ {0}\\ {0} \end{array}\begin{array}{*{20}{c}} {0}\\ {f}\\ {0} \end{array}\begin{array}{*{20}{c}} {0}\\ {0}\\ {1} \end{array}\begin{array}{*{20}{c}} 0\\ 0\\ 0 \end{array}} \right]\left[ {\begin{array}{*{20}{c}} {\begin{array}{*{20}{c}} {{X_{\rm{C}}}}\\ {{Y_{\rm{C}}}} \end{array}}\\ {\begin{array}{*{20}{c}} {{Z_{\rm{C}}}}\\ 1 \end{array}} \end{array}} \right] =\\ \left[ {\begin{array}{*{20}{c}} {{f_{{x}}}}\\ 0\\ 0 \end{array}\begin{array}{*{20}{c}} 0\\ {{f_{{y}}}}\\ 0 \end{array}\begin{array}{*{20}{c}} {{u_0}}\\ {{v_0}}\\ 1 \end{array}\begin{array}{*{20}{c}} {0}\\ 0\\ 0 \end{array}} \right]\left[ {\begin{array}{*{20}{c}} {\begin{array}{*{20}{c}} {{X_{\rm{C}}}}\\ {{Y_{\rm{C}}}} \end{array}}\\ {\begin{array}{*{20}{c}} {{Z_{\rm{C}}}}\\ 1 \end{array}} \end{array}} \right] = {{K}}\left[ {\begin{array}{*{20}{c}} {\begin{array}{*{20}{c}} {{X_{\rm{C}}}}\\ {{Y_{\rm{C}}}} \end{array}}\\ {\begin{array}{*{20}{c}} {{Z_{\rm{C}}}}\\ 1 \end{array}} \end{array}} \right]\quad \end{split} $ (2)

式中:dx和dy表示图像中1个像素在xy轴方向的物理尺寸; ${{K}} = \left[ {\begin{array}{*{20}{c}}{{f_{{x}}}}\\{0}\\{0}\end{array}\begin{array}{*{20}{c}}{0}\\{{f_{{y}}}}\\{0}\end{array}\begin{array}{*{20}{c}}{{u_0}}\\{{v_0}}\\{1}\end{array}\begin{array}{*{20}{c}}{0}\\0\\0\end{array}} \right]$ ,是相机的内参数矩阵。

将式(1)代入式(2)可得

$ {Z_{\rm{C}}}\left[ {\begin{array}{*{20}{c}} {u}\\ v\\ 1 \end{array}} \right] = {{K}}\left[ {\begin{array}{*{20}{c}} {{R}}&{{T}}\\ {\bf{0}}&{\bf{1}} \end{array}} \right]\left[ {\begin{array}{*{20}{c}} {\begin{array}{*{20}{c}} {{X_{\rm{L}}}}\\ {{Y_{\rm{L}}}} \end{array}}\\ {\begin{array}{*{20}{c}} {{Z_{\rm{L}}}}\\ 1 \end{array}} \end{array}} \right] = {{A}}\left[ {\begin{array}{*{20}{c}} {\begin{array}{*{20}{c}} {{X_{\rm{L}}}}\\ {{Y_{\rm{L}}}} \end{array}}\\ {\begin{array}{*{20}{c}} {{Z_{\rm{L}}}}\\ 1 \end{array}} \end{array}} \right] $ (3)

式中: ${{A}} = {{K}}\left[ {{\rm{}}\begin{array}{*{20}{c}}{{R}}&{{T}}\\{\bf{0}}&{\bf{1}}\end{array}} \right]$ A也可以表示为一个3×4的矩阵 $\left[ {\begin{array}{*{20}{c}}{{n_{11}}}&{{n_{12}}}&{\begin{array}{*{20}{c}}{{n_{13}}}&{{n_{14}}}\end{array}}\\{{n_{21}}}&{{n_{21}}}&{\begin{array}{*{20}{c}}{{n_{23}}}&{{n_{24}}}\end{array}}\\{{n_{31}}}&{{n_{32}}}&{\begin{array}{*{20}{c}}{{n_{33}}}&{{n_{34}}}\end{array}}\end{array}} \right]$

因此将激光雷达测量点(XLYLZL)对应到图像点(u, v)的问题,转化为求取10个参数(cxcyczθxθyθzu0v0fx,fy),或者求解矩阵A 的过程。下述基于特征点的标定方法是求解A, 基于棋盘格的标定方法是直接求解10个参数。

2 基于特征点的标定方法 2.1 特征点标定方法原理

通过提取若干对激光雷达与图像特征点,建立约束方程组,求解矩阵A中的12个元素。式(3)展开可得

$ {\rm{}}{Z_{\rm{C}}}u = {n_{11}}{X_{\rm{L}}} + {n_{12}}{Y_{\rm{L}}} + {n_{13}}{Z_{\rm{L}}} + {n_{14}} $ (4)
$ {\rm{}}{Z_{\rm{C}}}v = {n_{21}}{X_{\rm{L}}} + {n_{22}}{Y_{\rm{L}}} + {n_{23}}{Z_{\rm{L}}} + {n_{24}} $ (5)
$ {\rm{}}{Z_{\rm{C}}}{\rm{ = }}{n_{31}}{X_{\rm{L}}}{\rm{ + }}{n_{32}}{Y_{\rm{L}}}{\rm{ + }}{n_{33}}{Z_{\rm{L}}}{\rm{ + }}{n_{34}} $ (6)

将式(6)代入式(4)和式(5)得到两个方程

$ \begin{split} & u\left( {{n_{31}}{X_{\rm{L}}}{\rm{ + }}{n_{32}}{Y_{\rm{L}}}{\rm{ + }}{n_{33}}{Z_{\rm{L}}}{\rm{ + }}{n_{34}}} \right) = \\ & {n_{11}}{X_{\rm{L}}} + {n_{12}}{Y_{\rm{L}}} + {n_{13}}{Z_{\rm{L}}} + {n_{14}} \end{split} $ (7)
$ \begin{split} &v \left( {{n_{31}}{X_{\rm{L}}}{\rm{ + }}{n_{32}}{Y_{\rm{L}}}{\rm{ + }}{n_{33}}{Z_{\rm{L}}}{\rm{ + }}{n_{34}}} \right) = \\ & {n_{21}}{X_{\rm{L}}} + {n_{22}}{Y_{\rm{L}}} + {n_{23}}{Z_{\rm{L}}}{\rm{ + }}{n_{24}} \end{split} $ (8)

也就是说一对特征点可以建立两个方程。设有n组特征点,则可建立2n个方程:

$ \left[ \begin{array}{*{20}{c}} &{{x}_{1}} &{{y}_{1}} &{{z}_{1}} &1 &0 &0 &0 &0 &-{{u}_{1}}{{x}_{1}} &-{{u}_{1}}{{y}_{1}} &-{{u}_{1}}{{z}_{1}} &-{{u}_{1}} \\ &0 &0 &0 &0 &{{x}_{1}} &{{y}_{1}} &{{z}_{1}} &1 &-{{v}_{1}}{{x}_{1}} &-{{v}_{1}}{{y}_{1}} &-{{v}_{1}}{{z}_{1}} &-{{v}_{1}} \\ & {} & {} & {} & {} & {} & {} & \cdots & {} & {} & {} & {} & {} \\ &{{x}_{n}} &{{y}_{n}} &{{z}_{n}} &1 &0 &0 &0 &0 &-{{u}_{n}}{{x}_{n}} &-{{u}_{n}}{{y}_{n}} &-{{u}_{n}}{{z}_{n}} &-{{u}_{n}} \\ &0 &0 &0 &0 &{{x}_{n}} &{{y}_{n}} &{{z}_{n}} &1 &-{{v}_{n}}{{x}_{n}} &-{{v}_{n}}{{y}_{n}} &-{{v}_{n}}{{z}_{n}} &-{{v}_{n}} \end{array} \right]{{ A}_{12*1}}=0 $ (9)

式中A12*1 = [n11n12n13n14n21n22n23n24n31n32n33n34]T,一组特征点对应两个方程,求解12个未知数,至少需6组特征点。通常会多取几组特征点,形成过约束方程组,用线性最小二乘法求解[15]

2.2 特征点标定方法步骤

特征点选取的关键是能够可靠地找到激光扫描点和与之对应的图像点。为了做到这一点,本文设计了一种标定板,如图2所示。标定板上存在图中1,2,3,4四个平面,其中平面2,3向后折叠,分别与平面1,4形成一定夹角。图中横向的粗实线,细实线,点划线,虚线为模拟的四层激光雷达的扫描线,P1P2P3三个顶点为待求取的三个特征点。

图 2 特征点法标定板实物图 Figure 2 Calibration template of feature-point method

具体步骤如下:

(1)提取特征点在激光雷达坐标系的坐标

设空间平面方程为Ax+By+Cz+D=0,利用各个平面的激光雷达点,采用线性最小二乘法拟合出4个平面方程Aix +Biy +Ciz +Di=0,其中i表示第i个平面。显然P1点为4个平面的交点,即P1坐标满足如下方程组:

$ \left\{ \!\!\!\!\!\!\!\!\!{\begin{array}{*{20}{c}} {{A_1}x + {B_1}y + {C_1}z + {D_1} = 0}\\ {\begin{array}{*{20}{c}} {{A_2}x + {B_2}y + {C_2}z + {D_2} = 0}\\ {\begin{array}{*{20}{c}} {{A_3}x + {B_3}y + {C_3}z + {D_3} = 0}\\ {{A_4}x + {B_4}y + {C_4}z + {D_4} = 0} \end{array}} \end{array}} \end{array}} \right. $ (10)

采用线性最小二乘法可求解P1的坐标。

根据各个平面的方程可知,其对应的法向量Vi为(AiBiCi),其中i表示第i个平面。根据向量叉乘的定义可知,向量 $\overrightarrow {{P_1}{P_2}} $ 应与V1×V2共线,再结合向量的模 $\left| {\overrightarrow {{P_1}\;{P_2}} } \right|$ ,即可求出该向量。

$ \overrightarrow {{{{P_1}{P_2}}}} = \pm \frac{{{{{V}}_1} \times {{{V}}_2}}}{{\left| {{{{V}}_1} \times {{{V}}_2}} \right|}}\overrightarrow {{P_1}{P_2}} $ (11)

同理可知,

$ \overrightarrow {{P_1}{P_3}} = \pm \frac{{{{{V}}_3} \times {{{V}}_4}}}{{\left| {{{{V}}_3} \times {{{V}}_4}} \right|}}\overrightarrow {{P_1}{P_3}} $ (12)

其中 $\left| {\overrightarrow {{P_1}{P_2}} } \right|$ $\left| {\overrightarrow {{P_1}{P_3}} } \right|$ 在制作标定板时确定,是确定值。式(11)和式(12)中正负号的取值可结合图1所示坐标系。由坐标系可知, $\left| {\overrightarrow {{P_1}{P_2}} } \right|$ 应向y坐标增加的方向,即 $\left| {\overrightarrow {{P_1}{P_2}} } \right|$ y坐标值应大于0,同理 $\left| {\overrightarrow {{P_1}{P_3}} } \right|$ y坐标值应取大于0。

设点P1P2P3的坐标分别为p1p2p3,则有

$ \left\{ {\begin{array}{*{20}{c}} {{p_2} = {p_1} + \overrightarrow {{P_1}{P_2}} }\\ {{p_3} = {p_1} + \overrightarrow {{P_1}{P_3}} } \end{array}} \right. $ (13)

(2)提取特征点图像坐标

在图像中采用角点检测的方法,获得标定板的三个顶点在图像坐标系中的坐标。从而获得三组对应的特征点。

(3)移动标定板的位置,再次求出三组特征点,用六组特征点,按照式(9)建立方程组,用最小二乘法[15]求解矩阵A12*1

为了提高平面的拟合精度,应有足够多的激光雷达点,因此在制作标定板的过程中,应尽量使得标定板的尺寸足够大,从而使每个平面上有足够多的激光扫描点,本文中标定板大小为1.2 m×2.4 m。且在取拟合的散点时应尽量避免取靠近两个平面结合处的点,以保证所取的点位于同一个平面。

3 基于棋盘格的标定方法 3.1 棋盘格法标定原理

图3所示,NCNL分别代表从相机坐标系原点和激光雷达坐标系原点到棋盘格平面的三维垂直向量,NC的模||NC||等于从棋盘格到相机原点的距离,NL的模||NL||等于从棋盘格到激光雷达原点的距离。

图 3 棋盘格法标定原理示意图 Figure 3 Principle diagram of planar checkerboard method

通过张正友标定法[14]求得世界坐标系(棋盘格左上角为原点)到相机坐标系的旋转矩阵R′,以及平移向量T ′,则有

$ {{{N}}_{\rm{C}}} = {{R}}_3'\left({{{R}}_3^{'{{{\rm{T}}}}} \cdot {{T}}'} \right) $ (14)

式中R3表示R′ 第三列。

NL通过激光雷达点云拟合平面获得:采用最小二乘法[15]对激光扫到棋盘格平面上的点拟合平面,设拟合出的平面方程为Ax +By +Cz +D=0,则(ABC)为平面法向量,且(ABC)为单位向量,则

$ {{{N}}_{\rm{L}}} = {[A,B,C]^{{\rm{T}}}}\sqrt D $ (15)

图3可知,NLNC的长度差应当等于平移向量TNL上投影的长度,即

$ \left\| {{{{N}}_{\rm{L}}}} \right\| - \left\| {{{{N}}_{\rm{C}}}} \right\| = {{T}} \cdot {{{n}}_{\rm{L}}} $ (16)

式中nLNL的单位向量, ${{{n}}_{\rm{L}}} = \dfrac{{{{{N}}_{\rm{L}}}}}{{\left\| {{{{N}}_{\rm{L}}}} \right\|}}$ 。一组给定的NLNC提供一组求解T的约束条件,改变棋盘格平面位置,提供多组NLNC,用线性最小二乘法[15]求解T

根据坐标系的变换原理可知,nL在相机坐标系下可以表示为RnL,设NC的单位向量nC, ${{{n}}_{\rm{C}}} = \dfrac{{{{{N}}_{\rm{C}}}}}{{\left\| {{{{N}}_{\rm{C}}}} \right\|}}$

RnLnC平行关系可知,向量RnLnC的内积为1,即

$ {{R}}{{{n}}_{\rm{L}}} \cdot {{{n}}_{\rm{C}}} = 1 $ (17)

一组给定的nLnC提供一组求解R的约束条件,改变棋盘格平面位置,提供多组nLnC,用线性最小二乘法[15]求解R

将以上得到的R,T作为初始解,建立式(18)所示目标函数,使用Levenberg–Marquard(LM)优化方法[8]对初始解进行优化。

$ {\rm{arg}}{}_{{{R}},{{T}}}^{{\rm{min}}}\;\mathop \sum \limits_{i = 1}^n \mathop \sum \limits_{j = 1}^m {\left[{\frac{{{{{N}}_{{\rm{C}},i}}\left({{{R}}{\rm{}}{P_{i,j}}{\rm{}} + {\rm{}}{{T}}} \right)}}{{\left| {\left| {{{{N}}_{{\rm{C}},i}}} \right|} \right|}}{\rm{}} - \left| {\left| {{{{N}}_{{\rm{C}},i}}} \right|} \right|} \right]^2} $ (18)

式中:n表示放置的棋盘格位置数;m表示第i个位置棋盘格上的激光扫描点数。NC, i代表第i个棋盘格位置时相机原点到棋盘格平面的垂直三维向量。Pi,j表示第i个位置的棋盘格上的第j个激光扫描点。

将旋转矩阵转化为旋转角,公式为

$ \begin{split} & {\theta _{{x}}} = {\rm{atan}}2\left( {{r_{32}},{r_{33}}} \right),\\ & {\theta _{{y}}} = {\rm{atan}}2\left( { - {r_{31}},\sqrt {{r_{32}}^2 + {r_{33}}^2} } \right),\\ & {\theta _{{z}}} = {\rm{atan}}2\left( {{r_{21}},{r_{11}}} \right) \end{split} $ (19)

式中rij表示Ri行第j个元素。

3.2 棋盘格法标定步骤

(1)将棋盘格放置在相机和激光雷达共同视场的20个不同位置。

(2)用张正友法求取每个位置棋盘格相对于相机的旋转和平移矩阵,可采用MATLAB标定工具[16]实现,根据式(14)求出每个位置的NC

(3)对每个位置激光扫到棋盘格上的点进行平面拟合,按照式(15)求出每个位置的NL

(4)按照式(16)和式(17)建立约束方程组,用线性最小二乘法[15]求出R,T初始解。

(5)以式(18)为代价函数,采用LM优化方法,优化初始解。

(6)用张正友标定方法求取相机的内参数u0v0fxfy

4 实验结果

激光雷达和相机的安装位置如图4所示。激光雷达为四线激光雷达,水平视野为120°,扫描垂直视野为3.2°,角度分辨率为0.25°。标称的相机内参数为:图像分辨率640 ×480 ,焦距800 像素(6 mm),像素物理尺寸大小7.5 μm。棋盘格标定板采用9×7格,每格大小为171 mm×171 mm。

图 4 相机与激光雷达安装位置图 Figure 4 Installation diagram of the lidar-camera system
4.1 特征点法

按照2.2节描述的方法提取至少6组激光雷达和对应图像特征点坐标,计算得到的矩阵A表1所示。

表 1 实验提取的特征点对与计算结果 Table 1 Extracted feature points and calculated parameters
4.2 棋盘格法

按照3.2节所述方法,将棋盘格放置在20个不同位置,记录每个位置扫在棋盘格上的激光点Pi,j,求取每个位置的NLNC,部分数据记录如表2所示。如3.2节所述,先用最小二乘法[15]求出R,[cxcycz] 的初始解,在初始解的基础上进一步用LM方法[8]优化初始解,得到优化解,结果如表3所示。R与旋转角θxθyθz的转换按照式(19)求得。

表 2 棋盘格平面在部分位置的NLNC及相应位置的部分Pl点坐标示例 Table 2 NL, NC of the checkerboard planes at different positions and Pl at corresponding positions

表 3 参数求解结果 Table 3 Results of the parameters
4.3 校准结果验证

图5所示,采用9个如图中标号1~9所示的细小白色泡沫靶,用可上下移动的细杆支撑,放置在相机和激光雷达共同视场。移动标靶使得激光雷达能够扫描到靶子上,记录各个标靶的雷达点坐标,同时在图像中取标靶图像的中心位置代表靶标位置,读取图像坐标,如表4所示。

图 5 验证实验示意图 Figure 5 Diagram of validation experiment

分别采用特征点法和棋盘格法得到的结果,将激光雷达坐标投影到图像上得到投影的图像坐标,按照式(20)计算投影对准误差,记录如表4所示。

$ {{e}} = \sqrt {{{({u_{{\rm c},i}} - {u_{{\rm a},i}})}^2} + {{({v_{{\rm c},i}} - {v_{{\rm a},i}})}^2}} $ (20)
表 4 特征点法与棋盘格法投影激光雷达点到图像坐标的结果 Table 4 Results of the projection of the two methods

式中[ua,iva,i] 表示第i个标靶实际读取的图像坐标;[uc,ivc,i]为采用标定结果通过坐标转换得到的图像坐标。计算出特征点法的平均误差3.03 像素,棋盘格法的平均误差为2.33 像素。

将激光雷达点云数据分别依据两种方法的实验结果,投影到图像中,如图6所示,可见两种方法的激光点云都能很好地与图像匹配。

图 6 投影激光雷达点到图像 Figure 6 Projection of lidar points to image
5 结 论

特征点标定法可以直接求出标定结果,其结果是一个包含了坐标系外参数和相机内参数的矩阵,利用该矩阵可以将激光雷达坐标转换为图像坐标,但是矩阵内各个参数的物理意义不明显。该方法的核心是准确提取特征点,本文设计的特征点选取方法相对于文献[6],省去了人为标注的过程,特征点选取也更为可靠、简单。相对于文献[7]拟合直线求取特征点的方法,本文采用平面拟合的方法求取特征点,可供采用的激光点数量显著增加,而且可以均衡激光雷达本身的测量误差引起的标定误差,提高了标定的精度。棋盘格法的标定过程需要分两步进行,即分别求取坐标系外参数和相机的内参数,其中相机内参数通过张正友标定法获得,坐标系外参数可以直接获取旋转角度和平移参数。棋盘格法无需人工标注特征点,避免引入手动误差。但是操作过程比较繁琐,需要将棋盘格标定板放置到多个不同位置,处理的数据也比较多。总之,两种方法各有优缺点,实验中棋盘格法的精度略高于特征点法。

参考文献
[1] HALL D L, LLINAS J. An introduction to multisensor data fusion[J]. Proceedings of the IEEE, 1997, 85(1): 6–23. DOI:10.1109/5.554205
[2] ZHENG Y Q, KUANG Y B, SUGIMOTO S, et al. Revisiting the PnP problem: a fast, general and optimal solution[C]//Proceedings of 2013 IEEE International Conference on Computer Vision. Sydney, Australia: IEEE, 2013: 2344 – 2351.
[3] HESCH J A, ROUMELIOTIS S I. A direct least-squares (DLS) method for PnP[C]//Proceedings of 2011 International Conference on Computer Vision. Barcelona, Spain: IEEE, 2011: 383 – 390.
[4] PUSZTAI Z, HAJDER L. Accurate calibration of LiDAR-camera systems using ordinary boxes[C]//Proceedings of 2017 IEEE International Conference on Computer Vision Workshops. Venice, Italy: IEEE, 2017: 394 – 402.
[5] DE SILVA V, ROCHE J, KONDOZ A. Robust fusion of LiDAR and wide-angle camera data for autonomous mobile robots[J]. Sensors, 2018, 18(8): 2730. DOI:10.3390/s18082730
[6] 刘大学. 用于越野自主导航车的激光雷达与视觉融合方法研究[D]. 长沙: 国防科学技术大学, 2009: 43 – 49.
[7] PARK Y, YUN S, WON C S, et al. Calibration between color camera and 3D LIDAR instruments with a polygonal planar board[J]. Sensors, 2014, 14(3): 5333–5353. DOI:10.3390/s140305333
[8] ZHANG Q L, PLESS R. Extrinsic calibration of a camera and laser range finder (improves camera calibration)[C]//Proceedings of 2004 IEEE/RSJ International Conference on Intelligent Robots and Systems. Sendai, Japan: IEEE, 2004: 2301 – 2306.
[9] BELLAVIA S, GRATTON S, RICCIETTI E. A Levenberg–Marquardt method for large nonlinear least-squares problems with dynamic accuracy in functions and gradients[J]. Numerische Mathematik, 2018, 140(3): 791–825. DOI:10.1007/s00211-018-0977-z
[10] OLSSON D M, NELSON L S. The Nelder-Mead simplex procedure for function minimization[J]. Technometrics, 1975, 17(1): 45–51. DOI:10.1080/00401706.1975.10489269
[11] OSGOOD T J, HUANG Y P, YOUNG K. Minimisation of alignment error between a camera and a laser range finder using Nelder-Mead simplex direct search[C]//Proceedings of 2010 IEEE Intelligent Vehicles Symposium. San Diego, CA, USA: IEEE, 2010: 779 – 786.
[12] OSGOOD T J, HUANG Y P. Calibration of laser scanner and camera fusion system for intelligent vehicles using Nelder-Mead optimization[J]. Measurement Science and Technology, 2013, 24(3): 035101. DOI:10.1088/0957-0233/24/3/035101
[13] 项志宇, 郑路. 摄像机与3D激光雷达联合标定的新方法[J]. 浙江大学学报(工学版), 2009, 43(8): 1401–1405. DOI:10.3785/j.issn.1008-973X.2009.08.009
[14] ZHANG Z Y. Flexible camera calibration by viewing a plane from unknown orientations[C]//Proceedings of the Seventh IEEE International Conference on Computer Vision. Kerkyra, Greece: IEEE, 1999: 666 – 673.
[15] KAY S M. 统计信号处理基础——估计与检测理论[M]. 罗鹏飞, 张文明, 刘忠, 等, 译. 北京: 电子工业出版社, 2003.
[16] FETIĆ A, JURIĆ D, OSMANKOVIĆ D. The procedure of a camera calibration using Camera Calibration Toolbox for MATLAB[C]//Proceedings of the 35th International Convention MIPRO. Opatija, Croatia: IEEE, 2012: 1752 – 1757.