基于虚拟三面体的摄像机与二维激光测距仪外参数最小解标定新算法
基于虚拟三面体的摄像机与二维激光测距仪外参数最小解标定新算法
胡钊政、赵 斌 、 李 娜 、夏克文
近年来摄像机与激光测距仪(Camera and laser rangefinder, LRF) 被广泛应用在机器人、移动道路测量、智能导航、无人驾驶以及地图勘探等领域[1−3].激光测距仪能获取目标的深度与三维坐标信息, 其作业距离较远且测量精度高, 但是其获取的 LIDAR数据分辨率通常较低. 而从摄像机获取的图像数据则具有数据分辨率高、信息量大等优点, 但是无法有效准确地感知远距离目标的深度与三维信息. 如果能将两种类型的传感器结合在一起, 充分利用两类数据的优点, 则可以很大程度上提高传统算法 (如目标检测、大场景三维重构与纹理映射等) 的准确性与稳定性. 而要实现图像与激光数据融合的第一步也是至关重要的一步就是解决摄像机与激光测距仪之间的外参数标定问题, 即计算两个传感器坐标系之间对应的旋转矩阵与平移矢量.
本文提出了一种基于虚拟三面体的摄像机与激光测距仪外参数最小解标定新算法. 该算法的核心思想是利用三次棋盘格输入构造一个虚拟三面体.算法以虚拟三面体顶点以及激光扫描平面与虚拟三面体的棱的三个交点构造透视三点问题用以计算与摄像机之间的坐标转换关系. 相对于文献 [10] 在对偶空间中构造的 P3P 问题, 本文直接在原始三维空间中构造 P3P 问题, 具有更直观的几何意义, 更利于对 P3P 问题进行求解与分析. 此外, 论文对如何从 P3P 问题多解中求解真解的问题进行深入地研究, 提出一种基于平面物成像区域约束方法来计算真解, 能有效地从多解中计算出真解, 使得最解算法具有更大的实用性与灵活性.
1 本文算法
1.1 坐标系配置
摄像机与激光测距仪外参数标定就是通过图像与激光数据来确定摄像机坐标系与激光测距仪坐标系下之间的坐标变换关系, 使得Q = RP + T其中, R 和 T 为待标定的外参数, Q 与 P 为三维空间中的点在摄像机与激光测距仪坐标系下的三维坐标. 若外参数已经标定, 则可以利用摄像机小孔成像模型, 将激光点映射至成像平面, 实现 LIDAR 数据与图像数据的融合.
在最小解外参数标定算法中, 涉及到的三维坐标系有摄像机坐标系、激光坐标系以及世界坐标系.在激光坐标系下, 所有的 LIDAR 数据点 Z 方向的坐标值为零, 即激光扫描平面为Z = 0 平面. 世界坐标系与摄像机坐标系的配置情况可参考Zhang 标定算法[10]. 利用该算法, 可以从图像数据计算三次输入的棋盘格在摄像机坐标系下的坐标. 设三次输入对应的平面分别为 Π1 = [n1T d1]T, Π2 = [n2T d2]T, Π3 = [n3T d3]T, 其中 ni 与 di 分别为平面 Πi 对应的单位法向量与距离. 利用采集的 LIDAR 数据可以计算出激光扫描平面与棋盘格平面的交线. 在激光坐标系下, 将这三条交线记为 L1, L2, L3. 其中,平面 Πi 与直线 Li 一一对应, 即直线 Li 在平面 Πi上. 实际应用中, 这三条交线都可以根据激光产生的 LIDAR 数据通过直线拟合的方法计算出来. 最小解算法就是从三个平面 (Π1, Π2, Π3) 以及三条交线 (L1, L2, L3) 计算出激光与摄像机之间的旋转矩阵与平移矢量.
1.2 虚拟三面体与 P3P 问题
激光与摄像机在三个不同的时间对同一个棋盘格在三个不同的姿态与位置进行数据采集. 这一过程等同于两个传感器在同一时间对三个不同姿态与位置的棋盘格进行数据采集. 这三个不同位置与姿态的棋盘格在三维空间中可以构造一个虚拟的三面体, 即三面体的每一个面分别对应为三个棋盘格的平面 (见图 2). 本文算法的核心思想就是利用该虚拟三面体重新构造一个三点透视问题(P3P 问题).
究其原因, 是因为传统的 P3P 问题中, 根据摄像机坐标系的配置关系, 图像上的可见点在摄像机坐标系深度值应为正值. 而在本文的 P3P 问题中, 则无深度值为正值的约束, 从而有多达 8 组解, 这与文献的结论是相吻合的.
因为本文中的 P3P 问题是直接从原始的三维空间中构造的, 因此可以很直观地分析 P3P 问题的退化情况, 即两个输入平面平行或者 P3P 问题中的三个交点与顶点构成一个危险圆柱[11]. 可以看到, P3P 问题的解的情况不依赖于传感器的位置, 而仅取决于输入的平面模板之间的相对位置关系. 这也是本文 P3P 问题与传统 P3P 问题的显著区别.
1.3 外参数标定
通过求解 P3P 问题可计算出每个控制点到顶点的距离, 并计算这三个控制点在摄像机坐标系下的三维坐标。上面解决了 3 次棋盘格输入下的最小解外参数标定方法. 针对 N (N > 3) 次棋盘格输入, 可以每次从中选取 3 次输入, 从而可以构造 C3N 个 P3P 问题. 每一个 P3P 问题将产生 3 组对应点, 则 N 次棋盘格输入共可以产生3 × C3N 组对应点. 通过这些对应点可以构造一个超定线性方程组, 最后通过求解方程就可以求解旋转矩阵与平移矢量. 此外, 目前的文献中针对多次棋盘格输入往往通过构造一个优化函数来求解最优化的旋转矩阵与平移矢量. 在求解最优化算法过程中, 初值的确定至关重要. 最小解算法利用最小的输入计算出较精确稳定的解, 可以作为优化算法的初值, 从而提高优化算法的计算效率和精度.
1.4 基于平面物成像区域约束的真解计算
最小解标定算法中的 P3P 的多解问题导致其在实际应用中受到很大的限制. 例如, 文献[10] 中需要增加额外的输入才能确定真解. 本文提出了一种新的几何约束以从多组解中确定真解. 基于最小解的摄像机与激光外参数标定算法的本质就是求解三组直线–平面的配准问题. 在以上的求解过程中, 我们仅约束激光点所在的直线位于平面上, 而对这些激光点所在的线段在平面上的具体位置并未做任何约束. 实际上, 线段应该在棋盘格上, 即线段仅分布在平面上很小的区域 (棋盘格所在的区域) 之内. 也就是说, 除了上文中约束直线在棋盘格所在的平面上, 还可以建立新的几何约束条件, 即约束激光点所在的线段在棋盘格所在的一个较小的区域区间上.
设定棋盘格在成像平面上的区域分别为1, 2, 3 (矩形棋盘格对应的成像区域为四边形). 可以证明: 如果激光点在棋盘格所在的区域内, 经过摄像机成像后, 激光点的图像点亦在 i 内部 (证明过程见附录 A). 为了计算方便, 我们仅需要在约束成像平面上约束激光点的图像在特定的成像区域 (即 i).因此本文将该约束命名为 “平面物成像区域约束”.
有效点数目即不同的解所映射的图像点在三幅图像中棋盘格区域的数目, Ti 为每幅图像中有效点数目的阈值. 附录A 中命题A1 和命题A2 表明: 在理想的情况下 (即没有数据噪声与内外参数标定误差), 真解将会计算得到最多的有效点数目, 即所有投射到棋盘格上的激光点都会被映射到棋盘格的成像区域 (注: 棋盘格外面的点在 LIDAR 点处理中已经被剔除, 即棋盘格外的激光点不会被映射至棋盘格的成像区域). 式(17) 可以计算每个解对应的有效点数目, 其中对应最多有效点数目的解即为外参数标定的真解. 由于图像与激光数据噪声以及标定误差, 导致部分在棋盘格上的数据点不能正确映射到棋盘格上. 因此, 算法设定阈值来考虑这种数据噪声与标定误差带来的影响. 阈值的取值可以根据具体的传感器与计算方法来确定. 在下文实验中, 该阈值设为打在棋盘格上的激光点数目的 60 %.
2 实验结果
2.1 模拟数据实验结果
首先利用模拟数据评测算法在不同条件下的性能, 并将其与文献 中最小解算法进行比较.模拟实验中, 分别用模拟二维激光测距仪与小孔摄像机来产生 LIDAR 数据与图像数据. 其中, 模拟激光测距仪扫描角度设为 100 度, 角分辨率 1度. 模拟摄像机的焦距为 3 920 像素, 主点位置位于 [2 410 1 153]T (像素), 纵横比设为 1, 畸变因子为零. 模拟实验中用到的标定板为棋盘格标定板是由 10 × 10 的黑白方格构成, 每个黑白方格间距离76 mm.
以上外参数数据在实验中作为基准数据. 模拟实验中, 测试标定算法在最小输入 (即 3 张棋盘格平面) 条件下的性能. 随机输入 3 张棋盘格平面, 每张棋盘格标定板都放置于两个传感器的视场中. 实验中对 LIDAR 数据与图像数据分别加不同水平的零均值高斯白噪声. 其中, LIDAR 数据的噪声均方差水平从 2 mm 逐渐增加至 20 mm. 图像数据的噪声均方差为 0.5 个像素, 模拟实际图像的噪声水平. 从加噪的图像数据和激光数据完成外参数标定. 针对LIDAR 数据的不同的噪声水平, 每个噪声水平均独立进行 100 次实验. 每次实验中, 分别利用本文算法及文献算法从噪声数据中计算外参数. 考虑到文献 [10] 中算法无法从 3 次输入中获得真解, 我们在8 组解中选取与真实外参数最接近的那组解作为真解. 本文算法中, 利用平面物成像区域约束来获得真解. 实验结果表明, 本文算法能从总共 1 000 组实验中找到所对应的真解, 所提的平面物成像区域约束能较好地解决多解问题.
实验中分别用三个指标来评价算法性能, 即分别针对旋转矩阵、平移矢量以及摄像机位置等三个方面计算结果进行误差分析. 其中, ˜ 与 T˜ 分别为计算得到的旋转矩阵与平移矢量, u˜ 为旋转矩阵 R˜ 对应的旋转轴 (即旋转矩阵特征值为 1 时对应的特征向量). 通过上式可以计算两个算法各自的外参数标定误差. 实验中, 从每个噪声水平的 100 次实验结果中分别计算这三个误差对应的均值与均方差. 图 3 用 Bar 图的形式给出了两个算法在不同噪声水平下对应的误差的均值与均方差. 本文算法的均值误差整体上低于文献中的算法, 均方差水平略低于文献算法. 本文算法在一定的程度上提高了外参数标定精度与稳定性.
实验中进一步验证本文提出的基于平面物成像区域约束的真解计算方法. 首先, 利用上文的激光与摄像机的参数与配置, 对生成的图像与 LIDAR 数据添加零均值高斯白噪声. 设置图像的噪声水平为0.5 像素. 针对 LIDAR 数据噪声水平分别为 10 mm与 20 mm 的情况, 分别利用本文算法进行 1 000 次独立测试, 计算相应的外参数. 计算结果表明: 针对10 mm 的噪声水平, 算法能从 1 000 次测试中计算出真解, 得到真解的概率为 100 %. 针对 20 mm 的噪声水平, 在 975 次测试中利用本文算法可以得到真解, 得到真解的概率为 97.5 %. 而在剩下的 25 次实验中, 真解对应的有效点数目都不少于 16 个 (平面上激光点总数目为 20), 而假解对应的有效点数目不超过 18 个, 有效点数目相差在 2 个点以内. 这 25次实验中虽然没有计算出真解, 但是真解对应的有效点数目仍然排在第二位. 也就是说, 即使在某些特殊的条件下算法没有计算出最小解, 但是我们仍然可以利用本文提出的平面物成像区域约束将 8 组解降至 2 组解. 从两个噪声水平的实验结果可以发现,本文提出的平面物成像区域约束算法针对噪声水平小的情况能获得更好的计算结果.
最后, 设置棋盘格在不同的位置和姿态, 利用本算法进行 1 140 次实验计算旋转矩阵与平移矢量.其中有 1 108 次实验中能够得到唯一的真解. 另外32 组实验中, 均有两组解, 即一组真解与一组假解,它们对应的有效点数目相同. 也就是说, 本文的真解计算方法能够在 97.2 % 的概率下获得唯一真解. 即使在不能获得唯一真解的情况下, 我们仍然成功地把原来的 8 组解降至 2 组, 仍然具有较大的实用价值. 例如, 文献 [10] 中算法需要利用更多的棋盘格数据输入对 8 组解一一进行验算. 如果利用本文算法剔除假解, 则最多需要对 2 组解进行验算, 大大降低计算复杂度. 需要指出的是, 在给定平面物成像区域约束的条件下, 从理论上分析解的数目需要综合考虑摄像机内参数、摄像机与棋盘格之间的外参数、激光与摄像机外参数、激光点的坐标以及棋盘格大小等. 即使不考虑激光点坐标, 这里面涉及到的变量数目多达 31 个. 因此, 理论上分析解的数目是一个复杂度较高的问题.
2.2 真实数据实验结果
为了进一步验证本文算法, 分别利用公开测试数据与实验室实际采集的数据进行实验. 两组实验中采用不同规格的摄像机、激光测距仪以及标定棋盘格以测试算法在针对不同传感器的标定结果. 实验中分别采用 Sony DFW-VL500 数字摄像机与SICK-PLS 二维激光测距仪产生图像与 LIDAR 数据. 其中, 所产生的图像分辨率为 640 像素 × 480像素. 激光测距仪扫描角度为 180 度, 角度分辨率为1 度, 每次扫描 180 个激光点. 实验中所用的棋盘格包含 12 × 10 个黑白相间的正方形, 每个正方形的边长为 76 mm. 实验中, 摄像机通过 Zhang 算法提前进行标定[8], 对应的焦距为 768 个像素, 主点位置在[319.9 268.5]T (像素). 棋盘格与摄像机坐标系的旋转矩阵与平移矢量都是通过摄像机标定计算得到,它们与 LIDAR 数据一起作为激光与摄像机外参数标定算法的输入. 通过三组图像与激光 LIDAR 数据实现激光与摄像机外参数标定. 由于 算法无法从三组输入中获得真解, 实验中利用第四组棋盘格数据输入从多解中计算真解. 针对本文算法,利用本文所提出的平面物成像区域约束的方法从多解中获得真解.
从两种算法计算得到的外参数标定结果, 可以计算两个旋转矩阵之间的旋转向量的误差为 0.1 度,平移矢量的误差为 12.0 mm, 平移向量的相对误差水平为 1.2 %. 两种算法计算得到的外参数结果具有较好的一致性, 表明本文算法性能上与文献中算法相当.为了进一步验证算法的性能, 实验中还将激光点通过式 (15) 映射至成像平面上, 计算结果见图 4所示. 图4 中, 星号与圆圈分别表示利用本文算法与文献中的算法标定结果的映射结果. 两种算法对应的图像映射结果也有非常好的一致性. 此外, 这些结果也表明本文提出的基于平面物成像区域约束的真解计算方法正确有效.
第 2 组实验利用实验室设备实际采集图像与LIDAR 数据进行激光与摄像机外参数标定. 实验中分别采用德国 SICK 公司 LMS291-S05 二维激光测距仪与 Canon EOS 400D 单反数字摄像机来获取激光 LIDAR 数据与图像数据. 其中, 激光测距仪扫描角度: 100 度, 角分辨率 1 度, 每次扫描 100 个激光点. 摄像机分辨率 3 888 像素 × 2 592 像素. 实验中所用棋盘格包含6 × 6 个黑白相间的正方形, 每个正方形的边长为 40.5 mm. 利用 Zhang 算法对摄像机进行提取标定. 摄像机焦距为 3 963 像素, 主点位置为[2 237.6 1 155.3]T (像素). 同样的, 棋盘格相对于摄像机坐标系外参数是通过摄像机标定计算得到, 它们与 LIDAR 数据一起作为激光与摄像机外参数标定算法的输入. 通过三组图像与激光 LIDAR数据实现激光与摄像机外参数标定. 本文算法中利用平面物成像区域约束的方法从多解中计算得到真解. 而算法中, 利用第四组棋盘格数据输入从多解中计算真解.
通过计算可以得到, 两种算法计算出来的旋转矩阵之间的旋转向量的误差为1.6 度, 平移矢量的误差为 18.6 mm, 平移向量的相对误差水平为 3.6 %.两种算法计算得到的外参数标定结果也非常接近.结果进一步表明本文所提的算法是有效的.
为了进一步验证算法的性能, 实验中还将激光点通过式 (15) 映射至成像平面上, 计算结果如图 5所示. 图5 中, 星号与圆圈分别表示利用本文算法与文献中的算法标定结果的映射结果. 从图中可以看出, 两种算法对应的图像映射结果也有非常好的一致性. 这些结果表明本文提出标定算法能够获得比较准确的, 而本文提出的基于平面物成像区域约束的真解计算方法正确有效.
3 结论
本文提出了一种基于最小解的摄像机与激光测距仪外参数标定新算法. 本文主要贡献有两点: 1)利用三次棋盘格输入构建虚拟三面体, 在原始的三维空间中构造三点透视问题 (P3P). 较之文献 在对偶空间构建 P3P 问题, 本文方法更直接, 具有直观的几何意义, 更利于 P3P 的求解与多解分析; 2) 算法首次提出了利用平面物成像区域约束从P3P多解中计算真解的方法, 使得最小解算法具有更大的实用性与灵活性. 实验中分别利用模拟数据与真实数据对算法进行验证和对比, 结果表明本文算法的性能优于文献中的算法, 所提出的基于平面物成像区域约束方法能有效地从多解中计算出真解.
本文章转自爱学术,如有侵权,请联系删除