相机雷达外参标定算法调研

0. 简介

相机与激光雷达的外参标定是自动驾驶、机器人等领域的基础工作。精准的标定不仅有助于提高数据融合的效果,还能提升算法的整体性能。随着技术的发展,许多研究者和公司致力于开发高效的标定工具和算法,本文将对无目标标定和有目标标定两种主要的标定方法进行调研。

1. 无目标标定

无目标标定的主要特点是无需使用特定的标定目标,而是利用环境中的自然特征进行标定。以下是几种代表性的无目标标定方法和工具:

  1. Direct Visual Lidar Calibration
    • 该软件包提供了一种通用的激光雷达与相机的标定工具,可以处理各种激光雷达和相机的投影模型。标定过程中不需要标定目标,依赖于环境结构和纹理进行标定。
    • 特点:自动化程度高,不需要初始猜测,精度高且稳健。
    • 链接

34e9d835dcc543d99e7fbf4ad145dcc0.png

  1. MFCalibMFCalib旨在在无靶标环境下实现自动外参标定。该方法结合了从激光雷达(LiDAR)点云中提取的多特征边缘与从图像中提取的自然边缘特征,通过单次数据采集,最小化重投影误差。MFCalib通过对LiDAR光束的建模,有效解决了深度不连续边缘膨胀的问题,展现了出色的适应性,能够在多种室内外场景中快速调整外参,从而克服了传统基于靶标方法的局限性。

MFCalib研究论文链接

cb641c6432574fbebde4e30184307636.png

  1. Livox Camera Calibration整个工作的流程如下:首先,利用Canny算子从图像中提取边缘特征。随后,对雷达点云进行体素化分割,并通过RANSAC聚类算法识别出边缘特征。接着,这些雷达边缘特征被投影到相机矩阵中进行匹配。之后,计算雷达点云的噪声模型,并建立约束关系,确保投影到图像平面上的雷达点和对应的图像特征之间的向量与图像法向量的乘积为零。接下来,将相关公式进行代入和一阶偏导近似,得到雷达点云测量误差的近似公式。最终,采用最小化该误差方差的方法,得到的收敛解即为所需的外参估计。 Livox Camera Calibration

2e70e96526dc4024b10176bc63ba1540.png

 4. MIAS-LCEC:激光雷达-相机外参标定(LCEC)对于智能车辆中的数据融合至关重要。传统上,基于目标的离线方法在该领域一直是首选。然而,这些方法通常对现实环境的适应性较差,主要是因为外参可能因中等冲击或在振动环境中长时间操作而发生显著变化。相比之下,在线无目标的方法提供了更大的适应性,但通常缺乏鲁棒性,主要是因为跨模态特征匹配中的挑战。因此,本文充分挖掘大型视觉模型(LVMs)的潜力,这些模型在计算机视觉和机器人领域,尤其是体感人工智能中,正成为重要趋势,以实现各种挑战场景下的鲁棒和准确的在线无目标LCEC。 MIAS-LCEC工具箱

a303cd9bbf194357920285e4020079bc.png

 5. CalibAnything算法是应用pcl分割点云,sam分割图像,通过匹配物体间重合获取最终外参,算法感知结果应用到标定前端的结合应用 链接

bfa54328bb8c4963bacc84082ecc91d3.png

  1. Extended Lidar Camera Calibration Extended Lidar Camera Calibration 是对livox_camera_calib的扩展版本,适用于旋转式激光雷达(例如:VLP16)。为了使该算法能够在旋转激光雷达上应用,作者增加了预处理过程(FLOAM),以使旋转激光雷达的点云更加稠密。这一改进有助于提高标定的精度和鲁棒性,适应更复杂的环境。

链接

a2c2122e8b564b19a04f3dd3ec7a643a.png

 7.LCCNet LCCNet 是一个在线激光雷达相机自校准网络(LCCNet),可以进行端到端训练并实时预测外部参数。在 LCCNet 中,我们利用成本体积层来表达 RGB 图像特征和从点云投影的深度图像之间的外参。链接

1e681bb1c907776bd5e3e4852167542d.gif

2. 有目标标定

有目标标定是指使用特定的标定板或目标物体进行外参标定。以下是一些常见的有目标标定工具和方法:

  1. Libcbdetect
    • 一个MATLAB实现的棋盘格检测算法,能够自动提取角点到亚像素精度,适用于各种相机类型。
    • 链接

9492633be7d444bf934519ef5a660539.png

  1. Livox-Camera标定工具
    • 提供了手动校准Livox雷达与相机之间外参的方法,基于标定板的角点进行标定,适用于Mid-40、Horizon和Tele-15等设备。
    • 中文文档
    • 链接

1885f912c3d7421c91933327b81a7600.png

  1. Autoware 标定包
    • Autoware框架下的激光雷达与相机标定工具包,封装了多种标定算法,方便开发者使用。
    • 链接

c9aa42c168954bc4859f3c24165fd220.png

  1. ROS 标定工具
    • ROS下的Camera LIDAR Calibration Package,提供了一套完整的标定流程,适用于ROS环境。
    • 链接

8bfa03662d9447fa94a0d073c159cdc1.png

  1. 2D Lidar-Camera工具箱

点击相机雷达外参标定算法调研查看全文

干货第一时间送达泡泡点云时空,带你精读点云领域顶级会议文章标题:Automatic LiDAR-Camera Calibration of Extrinsic Parameters Using a Spherical Target作者:Tekla Toth and Zoltan Pusztai and Levente Hajder来源:ICRA2020编译:孙钦审核:王志勇摘要本文调研了不同模态设备的标定过程,这是计算机视觉中的一个重要的步骤。我们提出了一个雷达-相机系统的完全自动的标定方法。我们的方法将球面作为它们的表面,且可以在点云和相机图像中分别精确地检测到该轮廓。在合成和真实数据中的实验表明,我们的自动算法快且鲁棒,它生成了精确的相机雷达。主要贡献 我们揭示了在检测到已校准的相机图像中的椭圆的轮廓,且球的半径已知的情况下,空间中的球心是如何被估计的;我们提出了一个新颖的自动化管道来标定雷达-相机设备。方法流程本文提出的方法的数据管道如上图所示,第1步是基础步骤,它用雷达点云来估计球心(和球的半径); 第2步,利用相机图像估计球心; 第3步,相机雷达间的相对位姿估计。1, 基于雷达数据的球中心估计通过最小化最小二乘误差来估计球心坐标(x0, y0, z0),优化方程如下:分别对优化变量x0, y0, z0, r求偏导有:将式(2)中的r带入另三个方程中,可迭代估计出球心(x0, y0, z0),以及球的半径r。2, 基于相机图像的球心估计当射线与球面相切时,方程在球面边界处只有一个根(或者说两个相同的根),此时可使用一元二次方程判别式有:然后优化估计球面中心,将式(8)写成矩阵的形式有:要估计的数是x0,y0,z0, alpha,半径r是已知的,因为可以从雷达数据中获取它的估计值或者从校准对象(即用于标定球)中拿到。3, 通过点的配准估计相对位姿
04-07
### 基于球体目标的LiDAR与相机自动标定方法 基于球体目标的LiDAR与相机自动标定方法是一种高效且精确的技术,广泛应用于自动驾驶和机器人领域。以下是关于此方法的具体实现细节: #### 方法概述 该方法的核心在于利用一个已知几何形状的目标——通常是球体,在空间中的位置关系来建立LiDAR点云数据与相机图像之间的对应关系[^1]。通过这种方式,可以求解出两者的相对姿态变换矩阵。 #### 实现步骤 1. **准备阶段** - 使用带有固定半径的标准球形靶作为校准工具。 - 将球体放置在视场范围内,确保其能够同时被LiDAR扫描并进入相机视野。 2. **数据采集** - 收集来自LiDAR的三维点云数据以及同步拍摄的彩色/灰度图像。 这些数据应覆盖多个不同的视角以便后续处理更加鲁棒[^3]。 3. **特征提取** - 对于LiDAR点云部分: - 提取属于球面的部分点集合,并拟合出中心坐标 \(C_{lidar}\)[^1]。 - 针对摄像头图片端: - 利用边缘检测算法识别圆形轮廓,进而精确定位圆心像素位置 \(u, v\) 并转换至归一化平面坐标系下形成二维向量形式表示为 \(\mathbf{p}_{cam}=[X,Y]^T\)[^4]。 4. **构建约束方程组** 根据上述两种设备各自测得的结果建立起如下非线性最小二乘问题模型: \[ f(\theta)=||R*\mathbf{T}*C_{lidar}-K[\mathbf{I}|0]\begin{bmatrix} X \\ Y\\ Z=1/\lambda \end{bmatrix} ||_F ^2+\mu *g(\theta) \] 其中\(f(\theta)\)代表总残差平方和;\(R,\mathbf{T}\)分别指代旋转和平移分量组成的数矢量θ待估变量; K表示内禀属性阵列;最后一项μ*g(θ)则用来惩罚超出合理范围内的解决方案以防过适配现象发生。 5. **优化求解** 应用数值迭代技术比如Levenberg-Marquardt或者Gauss-Newton法寻找使目标函数达到全局极小值处对应的最优解即最终所需的刚体运动描述符\[R|\tau\]. 6. **验证精度** 计算重新投影误差以衡量所得结果的好坏程度。值得注意的是仅仅依赖局部区域匹配良好并不足以证明整体一致性因此需综合考量全局表现效果如何。 ```python import numpy as np from scipy.optimize import least_squares def reprojection_error(params, points_lidar, points_cam, intrinsic_matrix): R = params[:9].reshape((3, 3)) T = params[9:].reshape((3,)) projected_points = [] for point in points_lidar: transformed_point = np.dot(R, point.T).T + T normalized_coords = np.divide(transformed_point[:, :2], transformed_point[:, 2:]) pixel_coords = np.dot(intrinsic_matrix, normalized_coords.T).T projected_points.append(pixel_coords) errors = [np.linalg.norm(pjct-pnt) for pjct,pnt in zip(projected_points,points_cam)] return np.array(errors) initial_guess = ... # Initialize with some reasonable values. result = least_squares(reprojection_error, initial_guess, args=(lidar_data,cam_data,K)) extrinsics = result.x.reshape((3,4)) # Extract final transformation matrix from optimized parameters. ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值