[code] [video]

我本科毕设课题是激光雷达与相机的外参标定,最近抽空整理了一下当时完成的标定工具,这篇博客的目的也是来介绍一下这个标定工具(目前已经开源)。

介绍

在当时的研究现状(两年前,现在应该也大差不差)中,主要有基于特征对应关系的方法、基于运动观测的方法、基于最大化互信息的方法和还有少数基于神经网络的方法。在实际进行标定时,我们一般在乎的是标定方法的两个指标——精度和自动化程度,精度也就是标定的外参有多么精确,一般可以通过投影来定性的来看出来,自动化程度指的是这种方法在标定时需要进行什么操作(比如特定的数据录制要求),以及需要满足什么前提条件(比如特定的标定板)等等。目前四种标定方法的特点如下表所示(个人调研结果)。

ps: 现在也有一些基于特征的方法尽可能地提高了自动化程度(比如有一些自动提取特征的操作)

精度和自动化程度这两个指标肯定是精度更重要咯,毕竟是精度直接决定了之后传感器融合的一个效果。所以我本科毕设就是一种基于特征的标定方法,同时尽可能地在工程角度上提高自动化程度。

原理

基于特征的方法原理也比较简单,实际上就是构建并求解一个PnP问题

如何构建PnP问题呢?

需要找到n对3d-2d点对,也就是要分别要在点云和图像中提取特征,并确定特征间的对应关系,一般选择的特征是标定板上一些特殊的位置点,比如角点(这也是为什么基于特征的方法一般都需要使用标定板的原因)。

获取图像角点特征:本项目使用了AprilTag检测算法来自动检测标定板角点(前提是标定板刚好被ApriTag码全部覆盖,如下图所示)

如果标定板上没有满足条件的AprilTag码,本项目Qt界面也提供了手动选择角点的功能,这使得本项目适用于一般的矩形标定板。

获取点云角点特征:本项目对滤波后的点云进行平面提取,得到标定板点云后,进一步构建几何问题优化得到标定板角点(参考extrinsic_lidar_camera_calibration),如下图所示

PnP问题的求解

在得到对应的特征点后,标定的外参可以通过求解PnP问题得到,PnP问题的求解有P3P, DLT, EPnP以及非线性优化等方法可以使用,如果不考虑求解速度的话,建议使用P3P, DLT或者EPnP来获得初值,然后再进行非线性优化(这也是本项目使用的方法)。

效果

本项目的Qt界面如下图所示,详细使用视频见Bilibili链接

最后的标定效果,如下图所示


Supporters

Stargazers repo roster for @HITSZ-NRSL/lidar_camera_calibrator

Forkers repo roster for @HITSZ-NRSL/lidar_camera_calibrator