
# EasyCalib：一种用于相机与激光雷达高精度全自动外参标定的新型靶标

周志宇 $^{ID}$，IEEE学生会员；高智 $^{ID}$，IEEE会员；曹敏 $^{ID}$；王静石 $^{ID}$；李勇 $^{ID}$，IEEE会员；林志鹏 $^{ID}$；杨文斌 $^{ID}$；王晓楠 $^{ID}$；张启元 $^{ID}$

摘要—精确的外参标定是实现鲁棒的相机-激光探测与测距（LiDAR）融合应用的基础要求。现有的基于靶标的方法存在诸多实际限制：它们需要人工标注、精确的靶标尺寸以及初始外参估计值，对靶标摆放位置的要求复杂，且在不同传感器类型上的适用性有限。据我们所知，目前尚无一种方法能够同时实现完全自动化、无需依赖精确的靶标尺寸和准确的初始化参数，还能同时适用于机械式激光雷达和非重复扫描式固态激光雷达。在本文中，我们提出了EasyCalib——一种用于几乎所有类型相机-LiDAR系统的高精度、全自动外参标定的新型人造靶标。具体而言，我们为机械式激光雷达和固态激光雷达设计了专用的点云分割器，以自动提取EasyCalib特征。通过利用EasyCalib在图像域和点云域中共同可见的角点及中心边缘特征，我们实现了无需初始化、从粗到精且精度极高的外参标定。此外，由于所提出的标定流程不要求靶标严格正交，且能容忍适度的装配偏差，同时标定计算过程中也不涉及靶标尺寸，因此EasyCalib无需

## I. 引言

复杂的制造工艺，也无需预先精确知晓其尺寸。

关键词—标定靶标、外参标定、激光探测与测距（LiDAR）及相机。

在各种传感器中，各有优劣的激光探测与测距（LiDAR）和相机表现出惊人的互补性。近年来，LiDAR-相机融合已成为极具前景的研究方向，能够显著增强机器人在复杂环境中的定位、感知与建图能力 [^17]、[^18]、[^19]、[^20]、[^21]。作为数据融合的关键环节，这些传感器的外参标定也受到了广泛研究，目前已能达到较高精度，并形成了成熟的软件包 [^4]、[^5]、[^8]。

尽管取得了这些进展，现有方法在实际应用中仍面临重大挑战。无目标校准方法[^2]、[^3]、[^4]、[^5]、[^22]依赖于深度不连续边缘、外观统计特征或独立运动等较弱的场景特征，因此极度依赖精确的初始外部参数。在光照条件差、纹理稀少或里程计漂移的情况下，这些方法往往无法正常工作，导致结果不稳定。基于目标的校准方法虽然降低了对初始化的依赖，却引入了其他限制。平面或带孔板[^8]、[^9]、[^10]、[^11]需要被仔细放置于多种姿态下，还需生成密集的点云以检测特征，并手动选择点云区域。基于球体的方法[^12]、[^13]、[^14]要求高精度的制造工艺以及多次观测，一旦目标尺寸出现误差，就会引发系统性的校准偏差。此外，大多数现有目标都是为机械旋转式激光雷达设计的，难以适配扫描模式不均匀的半固态或混合式激光雷达。目前许多校准流程仍需人工标注、依赖已知的目标尺寸、假定初始外部参数良好、需要多个视角来获取足够的约束条件，且无法在各种光照条件和传感器类型下实现稳定的亚像素级精度。

为解决这些局限，我们推出了EasyCalib——一种自行设计的三维三面体目标，由三个呈扇形、颜色分别为红、绿、蓝的亚克力板组成（见图1）。EasyCalib能够实现完全自动的粗到精校准流程。首先，我们提出了一种基于扫描线的聚类方法。

---

![Image](images/b674de338b487b96edcc55cda4dc1314d3ba7b04b51fe8059d88a271be81875a.jpg)

<div style="text-align: center;">Fig. 1. EasyCalib-based extrinsic calibration for LiDAR and the camera. Our core idea is to extract line and centroid features of EasyCalib from two sensors, thus obtaining accurate extrinsic parameters by aligning these features. The red box highlights the structure details of EasyCalib.</div>

该方法可自动在激光雷达点云中定位目标。其次，我们从两种模态中提取紧凑且可靠的特征：在三维空间中，我们通过平面分割来恢复目标平面及其交线特征；在二维图像中，我们利用三值化边缘图上的梯度方向统计信息来定位中心-角点特征。接着，我们利用提取的三维-二维点对对应关系，通过求解透视-点问题来获得稳定的初始化参数。最后，我们通过点到线优化来精炼外部参数，该过程强制投影的三维线与观测到的二维线特征在像素级对齐。重要的是，这一精炼阶段并不依赖于严格的正交性条件或额外的几何先验；它仅最小化匹配特征间的投影残差，因此能够容忍与理想正交装配的偏差。大量实验证明了我们方法的鲁棒性与精确度，以及其在不同激光雷达-相机系统中的适应性。总体而言，我们的贡献如下。

2) 我们开发了一套完全自动的粗到精校准流程。通过结合扫描线聚类、鲁棒特征提取、基于PnP的初始化以及像素级的点到线精炼技术，该系统无需人工干预或初始外部参数估计即可完成精确的外部校准。

1) 我们设计了一种新型校准目标EasyCalib，它由三个呈扇形、带有颜色编码的平面板构成。这种独特的三面体几何结构与RGB布局为激光雷达和相机数据中的可靠检测与特征提取提供了强大的线索，且无需严格的正交装配要求。

3) 大量实验表明，EasyCalib在精度和鲁棒性方面均优于典型的基于目标的方法和无目标方法，并且能够很好地适配各种激光雷达-相机配置。

### 二、相关工作

本节我们将简要回顾基于目标和无目标两种标定方法，并分别阐述它们的优势与局限性。

### A. 无目标的激光雷达-相机外参标定

无目标方法无需预先设置人工标记，而是通过直接对齐激光雷达和相机传感器都能识别的自然特征来优化外参。这类方法通常分为基于特征和基于运动的两类。Yuan等人[^4]以及Liu等人[^5]开发了一款应用广泛的无目标标定工具包，该工具包通过检测点云中的深度不连续边缘，并将其与图像中的视觉纹理边缘匹配，从而形成点-线对应关系以实现外参优化。不过，这些方法对初始参数的准确性要求极高，且在特征提取和匹配过程中容易受到噪声和遮挡的影响，常常导致标定失败。Pandey等人[^2]和Koide等人[^3]提出了一种基于互信息的方法，利用反射强度相似性进行标定。尽管这类方法能达到像素级的精度，但对初始参数的准确性依然十分敏感。另一种基于运动的策略[^22]会分别估计激光雷达和相机的轨迹，再通过对齐轨迹来计算外参。虽然该方法不需要初始值或特征匹配，但由于里程计跟踪可能出现不可预测的错误，其标定精度往往受到限制。为了获得更高精度的外参结果并确保更优的传感器融合性能，与无目标方法相比，基于目标的方法通常更加稳定可靠。

### B. 基于目标的激光雷达-相机外参标定

与无目标方法的不可靠性相比，基于目标的方法为外参标定提供了更稳健、更精确且不受环境影响的解决方案。不过，当前基于目标的方法仍存在若干缺陷（自动化程度有限、制造误差以及对不同传感器类型的适用性受限）。表I总结了主要目标类型的优缺点，下文将逐一讨论。

1) 非三棱镜类方法：平面板是最常用的目标：激光雷达能够可靠地检测到其平面几何特征，相机也可以借助附着的标记（如棋盘格或二维码）实现稳健检测。Zhou等人[^8]和Park等人[^9]通过匹配激光雷达和相机中的平面及线性特征，实现了半自动标定。不过，这些方法仅适用于机械式激光雷达，仍需花费大量时间手动标注激光雷达点云。此外，这些方法还需要可靠的初始激光雷达-相机外参（通常来自手动标定）才能准确对齐特征。Velo2Cam[^10]和FastCalib[^11]在棋盘格上添加孔洞以获取三维孔心特征。然而，这些方法依赖密集的点云，低通道数的激光雷达无法可靠检测到点云中的孔洞特征，因此无法适用。平面板和带孔板均存在……

---

<div style="text-align: center;">TABLE I</div>

<div style="text-align: center;">COMPARISON OF REPRESENTATIVE LIDAR-CAMERA EXTRINSIC CALIBRATION METHODS</div>

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td rowspan="2">Method</td><td rowspan="2">Target/Marker</td><td style='text-align: center; word-wrap: break-word;'>Human Effort</td><td colspan="3">Prior Knowledge</td><td colspan="3">LiDAR Support</td><td style='text-align: center; word-wrap: break-word;'></td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Manual annotation</td><td style='text-align: center; word-wrap: break-word;'>Initial extrinsic</td><td colspan="2">Known target dimension</td><td style='text-align: center; word-wrap: break-word;'>A</td><td style='text-align: center; word-wrap: break-word;'>B</td><td style='text-align: center; word-wrap: break-word;'>C</td><td style='text-align: center; word-wrap: break-word;'>D</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Scaramuzza et al. (2007) [^1]</td><td style='text-align: center; word-wrap: break-word;'>Target-less (natural scenes)</td><td style='text-align: center; word-wrap: break-word;'>✓</td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'>-</td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'>✓</td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'></td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Pandey et al. (2021) [^2]</td><td style='text-align: center; word-wrap: break-word;'>Target-less (mutual information)</td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'>✓</td><td style='text-align: center; word-wrap: break-word;'>-</td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'>✓</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Koide et al. (2023) [^3]</td><td style='text-align: center; word-wrap: break-word;'>Target-less (mutual information)</td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'>✓</td><td style='text-align: center; word-wrap: break-word;'>-</td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'>✓</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Yuan et al. (2021) [^4]</td><td style='text-align: center; word-wrap: break-word;'>Target-less (edge feature)</td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'>✓</td><td style='text-align: center; word-wrap: break-word;'>-</td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'>✓</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Liu et al. (2022) [^5]</td><td style='text-align: center; word-wrap: break-word;'>Target-less (edge feature)</td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'>✓</td><td style='text-align: center; word-wrap: break-word;'>-</td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'>✓</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>SGCalib (2024) [^6]</td><td style='text-align: center; word-wrap: break-word;'>Target-less (semantic)</td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'>-</td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'>✓</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Dhall et al. (2017) [^7]</td><td style='text-align: center; word-wrap: break-word;'>Planar board</td><td style='text-align: center; word-wrap: break-word;'>✓</td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'>✓</td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'>✓</td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'></td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Zhou et al. (2018) [^8]</td><td style='text-align: center; word-wrap: break-word;'>Planar board</td><td style='text-align: center; word-wrap: break-word;'>✓</td><td style='text-align: center; word-wrap: break-word;'>✓</td><td style='text-align: center; word-wrap: break-word;'>✓</td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'>✓</td><td style='text-align: center; word-wrap: break-word;'>✓</td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'></td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Park et al. (2014) [^9]</td><td style='text-align: center; word-wrap: break-word;'>Planar board</td><td style='text-align: center; word-wrap: break-word;'>✓</td><td style='text-align: center; word-wrap: break-word;'>✓</td><td style='text-align: center; word-wrap: break-word;'>✓</td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'>✓</td><td style='text-align: center; word-wrap: break-word;'>✓</td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'></td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Beltrán et al. (2022) [^10]</td><td style='text-align: center; word-wrap: break-word;'>Perforated board</td><td style='text-align: center; word-wrap: break-word;'>✓</td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'>✓</td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'>✓</td><td style='text-align: center; word-wrap: break-word;'>✓</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>FAST-Calib (2025) [^11]</td><td style='text-align: center; word-wrap: break-word;'>Perforated board</td><td style='text-align: center; word-wrap: break-word;'>✓</td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'>✓</td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'>✓</td><td style='text-align: center; word-wrap: break-word;'>✓</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Tóth et al. (2020) [^12]</td><td style='text-align: center; word-wrap: break-word;'>Sphere</td><td style='text-align: center; word-wrap: break-word;'>✓</td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'>✓</td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'>✓</td><td style='text-align: center; word-wrap: break-word;'>✓</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Kümmerle et al. (2018) [^13]</td><td style='text-align: center; word-wrap: break-word;'>Sphere</td><td style='text-align: center; word-wrap: break-word;'>✓</td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'>✓</td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'>✓</td><td style='text-align: center; word-wrap: break-word;'>✓</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Pereira et al. (2016) [^14]</td><td style='text-align: center; word-wrap: break-word;'>Sphere</td><td style='text-align: center; word-wrap: break-word;'>✓</td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'>✓</td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'>✓</td><td style='text-align: center; word-wrap: break-word;'>✓</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Gong et al. (2013) [^15]</td><td style='text-align: center; word-wrap: break-word;'>Trihedron</td><td style='text-align: center; word-wrap: break-word;'>✓</td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'>✓</td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'>✓</td><td style='text-align: center; word-wrap: break-word;'>✓</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Choi et al. (2024) [^16]</td><td style='text-align: center; word-wrap: break-word;'>Trihedron</td><td style='text-align: center; word-wrap: break-word;'>✓</td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'>✓</td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'>✓</td><td style='text-align: center; word-wrap: break-word;'>✓</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>EasyCalib (Ours)</td><td style='text-align: center; word-wrap: break-word;'>Trihedron</td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'>✓</td><td style='text-align: center; word-wrap: break-word;'>✓</td><td style='text-align: center; word-wrap: break-word;'>✓</td><td style='text-align: center; word-wrap: break-word;'>✓</td></tr></table>

$^{A}$ 低通道数机械式激光雷达（如Velodyne VLP-16）。

$^{B}$ 高通道机械式激光雷达（如Velodyne HDL-64）。

$^{C}$ 非重复扫描式固态激光雷达（如Livox Avia和Mid360）。

$^{D}$ 需要密集的点云数据（即性能取决于目标物/结构上是否产生足够密集的回波）。

表示不适用（未使用物理目标物，因此无需目标物尺寸信息）。

几何约束需位于同一平面上，因此通常需要从不同视角进行多次观测才能获得足够的约束条件。球形目标物在图像和点云中均易于检测其中心，可用于实现二维到三维的点对应关系，但至少需要四组激光雷达-相机数据对[^12]、[^13]、[^14]。此外，这些方法依赖精确的目标物尺寸来进行外部参数估计与优化，这会增加目标物的制造复杂度，还可能引入系统性的校准误差。在本研究中，我们设计了一种新型目标物EasyCalib，它克服了现有目标物的局限性，能够为几乎所有类型的激光雷达-相机系统实现全自动、鲁棒且高精度的外部参数校准。

2) 基于三棱镜的方法：由于具有丰富的几何特征，正交三棱镜结构已被广泛应用于相机-激光雷达校准。Gong等人[^15]利用现实环境中的天然三棱镜角（如建筑角落），通过运动约束分别恢复其在相机和激光雷达坐标系中的姿态，进而得到相机-激光雷达的相对姿态。不过，Gong的方法对激光雷达点云的稀疏程度以及观测表面的光照和纹理条件较为敏感。此外，由于该方法主要依赖外部姿态估计，未强制进行像素级特征对齐，因此难以实现高精度校准。Choi等人[^16]提出了一种独特的三棱镜目标物：一个正交的三面盒，每个面上都贴有棋盘格图案。与Gong等人的方法[^15]类似，他们的方法通过先估计激光雷达和相机相对于目标物的姿态，再推导二者的相对变换关系，从而间接完成外部参数校准。得益于已知的棋盘格尺寸和相互正交的平面，Choi的方法无需依赖运动约束即可获得精确的相对姿态。不过，该方法存在几处明显的局限性：首先，与Gong的方法一样，它未强制进行像素级特征对齐，限制了可实现的精度；其次，它需要用户手动指定激光雷达和相机坐标系的轴向方向，这不仅不便，在实际操作中还容易引入人为误差。

### III. 我们的方法

我们在此详细介绍所提出的校准方法，其流程如图2所示。首先，我们针对不同类型的激光雷达设计了定制化的点云聚类算法，并利用几何规律识别出EasyCalib的各个部分。随后，利用EasyCalib的二维和三维角点特征，实现外部参数的全自动且鲁棒的初始估计。最后，利用EasyCalib的中心线特征进行精细的点线优化，从而达到亚像素级的精度。

### A. EasyCalib的制造复杂度

EasyCalib对制造工艺的要求极低。对于常见的校准目标，如平面板[^8]、[^9]以及球体[^12]、[^13]、[^14]，要实现高精度的校准，需要精确已知的板长和板宽以及球体半径，同时要求平面具有严格的平整度、球体具有严格的圆度。这是因为它们的几何与尺寸参数会直接参与校准计算，任何制造误差都会引入系统偏差，从而降低最终校准精度。相比之下，EasyCalib在进行外部校准时，并不需要预先掌握精确的几何或尺寸信息。实际上，EasyCalib甚至不要求三块平面板必须严格正交；它只需能标出中心交线和角点特征即可。平面板的形状也不受限制，扇形设计只是为了更好地凸显中心线特征，实际应用中它可以呈任意形状。关于EasyCalib的尺寸，需要注意的是：如果尺寸过小，点云中落在平面板上的点数可能不足，从而导致无法提取平面特征。因此，需调整其尺寸，确保足够多的点能在激光雷达的有效扫描范围内落在平面板上。在我们的实际应用中，将EasyCalib的三块扇形板的半径设为38.8厘米，这样就能保证它们在15米的激光雷达扫描范围内正常工作。

---

![Image](images/04b879b2826a8771207db822b244252badf15910337ac5c534644977d96618e4.jpg)

<div style="text-align: center;">Fig. 2. Overview of the proposed EasyCalib calibration pipeline. Given at least three synchronized LiDAR-camera data pairs, we first segment the EasyCalib target from the LiDAR point cloud via scan-line clustering and structural regularization (Section III-B). We then extract 3-D plane/center-line/corner features from the target and 2-D edge/center-corner features from the trinarized image (Section III-C). A PnP solver provides a coarse extrinsic initialization, which is further refined by a point-to-line reprojection optimization to achieve subpixel alignment (Section III-D).</div>

EasyCalib的这三块扇形板无需严格正交；它只需能标出中心交线和角点特征即可。平面板的形状也不受限制，扇形设计只是为了更好地凸显中心线特征，实践中它可以是任意形状。关于EasyCalib的尺寸，需要注意的是：如果尺寸过小，点云中落在平面板上的点数可能不足，进而导致无法提取平面特征。因此，需调整其尺寸，确保足够多的点能在激光雷达的有效扫描范围内落在平面板上。在我们的实际应用中，将EasyCalib的三块扇形板的半径设为38.8厘米，这样就能保证它们在15米的激光雷达扫描范围内正常工作。

### B. 点云中的两阶段目标分割

为避免耗时的手动标注，我们为校准目标开发了两阶段分割模块。首先，针对不同类型的激光雷达，利用定制算法对点云进行全局聚类；随后，通过结构正则化步骤识别出包含校准目标的聚类。

1) 点云聚类：对于机械式激光雷达（如Velodyne VLP-16），受[^23]的启发，我们提出了一种自适应扫描线聚类算法。如图3(a)所示，我们首先根据每个点的水平和垂直扫描角度，在点云上构建二维索引矩阵（行数对应扫描线数，列数为4000）。接着，对每个索引单元格内的所有点取平均值，仅保留一个点，这样既去除了重复点，又消除了异常噪声。

对于每一行，我们通过依次计算空间距离来判断这些点是否属于同一聚类。

![Image](images/eb045032150c000614404d93ef75f616e68f6ea7e2aa0cd71a9301e8c003cdad.jpg)

<div style="text-align: center;">Fig. 3. Single-frame scan-line clustering for sparse LiDAR point cloud. (a) Structured indexing groups points by scan line and assigns an ordered index along each line. (b) Intraline clustering forms 1-D clusters by connecting neighboring points whose spacing is below an adaptive threshold. (c) Endpoint merging connects adjacent 1-D clusters within the same scan line when their endpoints are compatible. (d) Interline clustering merges clusters across neighboring scan lines to produce final 3-D clusters.</div>

行内相邻索引点之间的空间距离[如图3(b)所示]。二维索引矩阵中第一列和最后一列的扫描点在空间中也可能相邻，因此我们需要计算端点与第一个点之间的空间距离。若它们相邻，则它们分别所属的聚类会被合并为一个聚类[详情可见图3(c)]。最终，如图3(d)所示，对于行$i (i \geq 1)$中的每个扫描点，会计算它与行$0 \sim (i - 1)$中同列点的欧几里得距离；若它们相邻（距离小于给定阈值$\sigma$），该扫描点就会被归入点数较多的那个聚类。此外，目标点云密度会随着……

---

![Image](images/d2bfb13ab16c319a314b61da1ee99c3b09b6174ca5449815cf5994aa421c97f7.jpg)

<div style="text-align: center;">Fig. 4. Point-cloud sparsity of the LiDAR target observations as the scanning distance increases. (a) 1, (b) 2, (c) 3, and (d) 4 m.</div>

 $$ \sigma=2r\tan\frac{\theta_{v}}{2} $$

其中r为扫描距离，$\theta_{v}$为从传感器中心测量的扫描点与水平面之间的垂直角度。

对于非重复性激光雷达（如Livox Mid-360和Avia），由于点云在空间中是均匀分布的，我们采用区域生长的空间聚类方法来获得更稳定的结果。

2) 结构正则化：完成点云聚类后，我们应用定制化的正则化步骤来识别包含EasyCalib的聚类。首先，我们提取每个聚类中包含的所有平面特征。对于恰好产生三个平面的聚类，设这些平面的法向量为$\mathbf{n}_1, \mathbf{n}_2, \mathbf{n}_3$，平面中心点坐标为$\mathbf{p}_1, \mathbf{p}_2, \mathbf{p}_3$。我们将聚类中心定义为$\mathbf{p}_c = (\mathbf{p}_1 + \mathbf{p}_2 + \mathbf{p}_3)/3$。随后我们计算两个一致性指标。

   $$ E_{\mathrm{a n g}}=\max_{i<j}\left|\mathbf{n}_{i}^{T}\mathbf{n}_{j}\right|,\quad E_{\mathrm{d i s t}}=\max_{i}\left|\left(\mathbf{p}_{i}-\mathbf{p}_{c}\right)^{T}\mathbf{n}_{i}\right|. $$

如果满足以下条件，则该聚类会被选为标定目标。

 $$ E_{\mathrm{a n g}}<\tau_{\mathrm{a n g}}\quad\mathrm{a n d}\quad E_{\mathrm{d i s t}}<\tau_{\mathrm{d i s t}} $$

在实际应用中，我们将$\tau_{\text{ang}} = 0.2$和$\tau_{\text{dist}} = 0.08$设为特定数值（单位：米），这些数值是通过大量实验评估得出的。我们在第IV-B节中通过敏感性研究进一步验证了这些阈值的鲁棒性。

### C. 粗略外参标定

激光雷达与相机之间的初始外参依赖于2D-3D对应点的提取。得益于EasyCalib的结构设计，其中心点在点云和图像中都表现出显著的几何和纹理特征。下面我们将详细介绍EasyCalib中心角点的自动提取方法。

1) 针对点云数据：在分离出标定目标后（详见第III-B节），通过平面拟合提取其主要结构特征。由于EasyCalib目标具有三面体结构，这一过程能够可靠地识别出三个相互正交的平面。

<div style="text-align: center;">TABLE II</div>

<div style="text-align: center;">TARGET SEGMENTATION SR UNDER DIFFERENT THRESHOLD SETTINGS. EASY: SIMULATION SCENES; HARD: REAL-WORLD CLUTTERED SCENES. EACH SETTING IS EVALUATED OVER 50 TRIALS IN EACH SCENARIO (EASY/HARD). BEST RESULTS ARE HIGHLIGHTED AS FIRST, AND SECOND-BEST AS SECOND</div>

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td style='text-align: center; word-wrap: break-word;'>Adaptive $\sigma$</td><td style='text-align: center; word-wrap: break-word;'>$\tau_{{ang}}$</td><td style='text-align: center; word-wrap: break-word;'>$\tau_{{dist}}$ (m)</td><td style='text-align: center; word-wrap: break-word;'>SR $_{{Easy}}$ (%)</td><td style='text-align: center; word-wrap: break-word;'>SR $_{{Hard}}$ (%)</td><td style='text-align: center; word-wrap: break-word;'>SR $_{{All}}$ (%)</td></tr><tr><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'>0.10</td><td style='text-align: center; word-wrap: break-word;'>0.08</td><td style='text-align: center; word-wrap: break-word;'>98</td><td style='text-align: center; word-wrap: break-word;'>90</td><td style='text-align: center; word-wrap: break-word;'>94</td></tr><tr><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'>0.30</td><td style='text-align: center; word-wrap: break-word;'>0.08</td><td style='text-align: center; word-wrap: break-word;'>98</td><td style='text-align: center; word-wrap: break-word;'>90</td><td style='text-align: center; word-wrap: break-word;'>94</td></tr><tr><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'>0.20</td><td style='text-align: center; word-wrap: break-word;'>0.05</td><td style='text-align: center; word-wrap: break-word;'>100</td><td style='text-align: center; word-wrap: break-word;'>88</td><td style='text-align: center; word-wrap: break-word;'>94</td></tr><tr><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'>0.20</td><td style='text-align: center; word-wrap: break-word;'>0.12</td><td style='text-align: center; word-wrap: break-word;'>98</td><td style='text-align: center; word-wrap: break-word;'>92</td><td style='text-align: center; word-wrap: break-word;'>95</td></tr><tr><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'>0.20</td><td style='text-align: center; word-wrap: break-word;'>0.08</td><td style='text-align: center; word-wrap: break-word;'>100</td><td style='text-align: center; word-wrap: break-word;'>90</td><td style='text-align: center; word-wrap: break-word;'>95</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>✓</td><td style='text-align: center; word-wrap: break-word;'>0.10</td><td style='text-align: center; word-wrap: break-word;'>0.08</td><td style='text-align: center; word-wrap: break-word;'>100</td><td style='text-align: center; word-wrap: break-word;'>90</td><td style='text-align: center; word-wrap: break-word;'>95</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>✓</td><td style='text-align: center; word-wrap: break-word;'>0.30</td><td style='text-align: center; word-wrap: break-word;'>0.08</td><td style='text-align: center; word-wrap: break-word;'>98</td><td style='text-align: center; word-wrap: break-word;'>92</td><td style='text-align: center; word-wrap: break-word;'>95</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>✓</td><td style='text-align: center; word-wrap: break-word;'>0.20</td><td style='text-align: center; word-wrap: break-word;'>0.05</td><td style='text-align: center; word-wrap: break-word;'>100</td><td style='text-align: center; word-wrap: break-word;'>90</td><td style='text-align: center; word-wrap: break-word;'>95</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>✓</td><td style='text-align: center; word-wrap: break-word;'>0.20</td><td style='text-align: center; word-wrap: break-word;'>0.12</td><td style='text-align: center; word-wrap: break-word;'>98</td><td style='text-align: center; word-wrap: break-word;'>92</td><td style='text-align: center; word-wrap: break-word;'>95</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>✓</td><td style='text-align: center; word-wrap: break-word;'>0.20</td><td style='text-align: center; word-wrap: break-word;'>0.08</td><td style='text-align: center; word-wrap: break-word;'>100</td><td style='text-align: center; word-wrap: break-word;'>92</td><td style='text-align: center; word-wrap: break-word;'>96</td></tr></table>

设提取出的这三个平面分别为$\Pi_{1}$、$\Pi_{2}$和$\Pi_{3}$，它们的方程可表示为：

 $$ \mathbf{\Pi}_{i}:\mathbf{n}_{i}^{T}\mathbf{x}+d_{i}=0,\quad i=1,2,3 $$

其中，$\mathbf{n}_{i}$和$d_{i}$分别表示第i个平面的单位法向量以及该平面到原点的有向距离。

为了获取目标的中心线，需要计算平面$\Pi_i$和$\Pi_j$的两两交线，其表达式为：

 $$ \mathbf{L}_{ij}=\left\{\mathbf{x}\in\mathbb{R}^{3}\ \middle|\ \mathbf{x}=\mathbf{p}_{ij}+\lambda\left(\mathbf{n}_{i}\times\mathbf{n}_{j}\right),\ \lambda\in\mathbb{R}\right\} $$

式中，$\mathbf{p}_{ij}$是同时位于这两个平面上的点，$\mathbf{n}_i \times \mathbf{n}_j$则给出了垂直于这两个法向量的方向向量。通过最小化点到三条交线的欧几里得距离平方和，即可得到EasyCalib的3D中心角点。

 $$ \mathbf{X}_{i}=\underset{\mathbf{x}}{\arg\min}\left[\operatorname{dist}^{2}\left(\mathbf{x},L_{12}\right)+\operatorname{dist}^{2}\left(\mathbf{x},L_{23}\right)+\operatorname{dist}^{2}\left(\mathbf{x},L_{13}\right)\right] $$

其中，$\text{dist}^2(\mathbf{x}, L)$表示3D空间中的欧几里得点到直线距离的平方。这一公式能够生成几何稳定性较高的3D参考点，用于建立2D-3D对应关系。

2) 针对图像数据：如图2所示，我们首先对输入图像应用自适应基于颜色的三值化处理，利用EasyCalib标定板的独特RGB图案。根据RGB分量占优情况，每个像素会被归类为三种颜色类别之一。

   $$ k^{*}=\underset{k\in\{R,G,B\}}{\arg\max}\;\frac{\rho_{k}}{\rho_{R}+\rho_{G}+\rho_{B}} $$

其中，$\rho_{k}$表示第k个颜色通道的强度。这种归一化比值能够有效应对光照变化，因为它关注的是相对颜色占比而非绝对强度值。得到的三值化标签图会被映射为单通道强度图像，其中三个类别分别对应$\{0, 127, 255\}$，此举既增强了标定板的结构显著性，又抑制了背景杂讯。

随后使用Canny算子进行边缘检测[^24]。在此步骤之前，会先应用轻度高斯平滑处理（$\sigma = 1.0$）以减轻像素级噪声，同时设定Canny阈值。

---

<div style="text-align: center;">TABLE III</div>

<div style="text-align: center;">CALIBRATION ERROR [TRANSLATION (CM) AND ROTATION (DEG)] OF DIFFERENT METHODS UNDER THREE SENSOR SETUPS (A–C) WITH THREE TARGET PLACEMENTS (A–C) ON THE SIMULATION DATASET. BEST RESULTS ARE HIGHLIGHTED AS FIRST, AND SECOND-BEST AS SECOND</div>

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td rowspan="2">Method</td><td colspan="6">Sensor setup A</td><td colspan="6">Sensor setup B</td><td colspan="6">Sensor setup C</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>$t_x$</td><td style='text-align: center; word-wrap: break-word;'>$t_y$</td><td style='text-align: center; word-wrap: break-word;'>$t_z$</td><td style='text-align: center; word-wrap: break-word;'>$r_x$</td><td style='text-align: center; word-wrap: break-word;'>$r_y$</td><td style='text-align: center; word-wrap: break-word;'>$r_z$</td><td style='text-align: center; word-wrap: break-word;'>$t_x$</td><td style='text-align: center; word-wrap: break-word;'>$t_y$</td><td style='text-align: center; word-wrap: break-word;'>$t_z$</td><td style='text-align: center; word-wrap: break-word;'>$r_x$</td><td style='text-align: center; word-wrap: break-word;'>$r_y$</td><td style='text-align: center; word-wrap: break-word;'>$r_z$</td><td style='text-align: center; word-wrap: break-word;'>$t_x$</td><td style='text-align: center; word-wrap: break-word;'>$t_y$</td><td style='text-align: center; word-wrap: break-word;'>$t_z$</td><td style='text-align: center; word-wrap: break-word;'>$r_x$</td><td style='text-align: center; word-wrap: break-word;'>$r_y$</td><td style='text-align: center; word-wrap: break-word;'>$r_z$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Placement A</td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'></td></tr><tr><td style='text-align: center; word-wrap: break-word;'>FastCalib [^11]</td><td style='text-align: center; word-wrap: break-word;'>18.47</td><td style='text-align: center; word-wrap: break-word;'>18.83</td><td style='text-align: center; word-wrap: break-word;'>21.92</td><td style='text-align: center; word-wrap: break-word;'>1.63</td><td style='text-align: center; word-wrap: break-word;'>1.27</td><td style='text-align: center; word-wrap: break-word;'>1.49</td><td style='text-align: center; word-wrap: break-word;'>12.76</td><td style='text-align: center; word-wrap: break-word;'>13.87</td><td style='text-align: center; word-wrap: break-word;'>18.73</td><td style='text-align: center; word-wrap: break-word;'>1.37</td><td style='text-align: center; word-wrap: break-word;'>0.96</td><td style='text-align: center; word-wrap: break-word;'>1.66</td><td style='text-align: center; word-wrap: break-word;'>10.94</td><td style='text-align: center; word-wrap: break-word;'>11.33</td><td style='text-align: center; word-wrap: break-word;'>16.18</td><td style='text-align: center; word-wrap: break-word;'>1.18</td><td style='text-align: center; word-wrap: break-word;'>0.88</td><td style='text-align: center; word-wrap: break-word;'>1.29</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Sphere [^12]</td><td style='text-align: center; word-wrap: break-word;'>✗</td><td style='text-align: center; word-wrap: break-word;'>✗</td><td style='text-align: center; word-wrap: break-word;'>✗</td><td style='text-align: center; word-wrap: break-word;'>✗</td><td style='text-align: center; word-wrap: break-word;'>✗</td><td style='text-align: center; word-wrap: break-word;'>✗</td><td style='text-align: center; word-wrap: break-word;'>✗</td><td style='text-align: center; word-wrap: break-word;'>✗</td><td style='text-align: center; word-wrap: break-word;'>✗</td><td style='text-align: center; word-wrap: break-word;'>✗</td><td style='text-align: center; word-wrap: break-word;'>✗</td><td style='text-align: center; word-wrap: break-word;'>✗</td><td style='text-align: center; word-wrap: break-word;'>✗</td><td style='text-align: center; word-wrap: break-word;'>✗</td><td style='text-align: center; word-wrap: break-word;'>✗</td><td style='text-align: center; word-wrap: break-word;'>✗</td><td style='text-align: center; word-wrap: break-word;'>✗</td><td style='text-align: center; word-wrap: break-word;'>✗</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Trihedron [^16]</td><td style='text-align: center; word-wrap: break-word;'>21.09</td><td style='text-align: center; word-wrap: break-word;'>18.74</td><td style='text-align: center; word-wrap: break-word;'>11.23</td><td style='text-align: center; word-wrap: break-word;'>1.71</td><td style='text-align: center; word-wrap: break-word;'>1.18</td><td style='text-align: center; word-wrap: break-word;'>1.34</td><td style='text-align: center; word-wrap: break-word;'>12.61</td><td style='text-align: center; word-wrap: break-word;'>14.55</td><td style='text-align: center; word-wrap: break-word;'>10.52</td><td style='text-align: center; word-wrap: break-word;'>1.22</td><td style='text-align: center; word-wrap: break-word;'>1.03</td><td style='text-align: center; word-wrap: break-word;'>1.72</td><td style='text-align: center; word-wrap: break-word;'>13.24</td><td style='text-align: center; word-wrap: break-word;'>11.21</td><td style='text-align: center; word-wrap: break-word;'>9.79</td><td style='text-align: center; word-wrap: break-word;'>1.29</td><td style='text-align: center; word-wrap: break-word;'>0.84</td><td style='text-align: center; word-wrap: break-word;'>1.35</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>EasyCalib (Ours)</td><td style='text-align: center; word-wrap: break-word;'>3.32</td><td style='text-align: center; word-wrap: break-word;'>3.08</td><td style='text-align: center; word-wrap: break-word;'>12.63</td><td style='text-align: center; word-wrap: break-word;'>0.12</td><td style='text-align: center; word-wrap: break-word;'>0.05</td><td style='text-align: center; word-wrap: break-word;'>0.07</td><td style='text-align: center; word-wrap: break-word;'>1.90</td><td style='text-align: center; word-wrap: break-word;'>2.30</td><td style='text-align: center; word-wrap: break-word;'>11.37</td><td style='text-align: center; word-wrap: break-word;'>0.10</td><td style='text-align: center; word-wrap: break-word;'>0.04</td><td style='text-align: center; word-wrap: break-word;'>0.14</td><td style='text-align: center; word-wrap: break-word;'>2.10</td><td style='text-align: center; word-wrap: break-word;'>1.80</td><td style='text-align: center; word-wrap: break-word;'>10.93</td><td style='text-align: center; word-wrap: break-word;'>0.11</td><td style='text-align: center; word-wrap: break-word;'>0.06</td><td style='text-align: center; word-wrap: break-word;'>0.10</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Placement B</td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'></td></tr><tr><td style='text-align: center; word-wrap: break-word;'>FastCalib [^11]</td><td style='text-align: center; word-wrap: break-word;'>19.64</td><td style='text-align: center; word-wrap: break-word;'>18.12</td><td style='text-align: center; word-wrap: break-word;'>24.27</td><td style='text-align: center; word-wrap: break-word;'>1.78</td><td style='text-align: center; word-wrap: break-word;'>1.36</td><td style='text-align: center; word-wrap: break-word;'>1.58</td><td style='text-align: center; word-wrap: break-word;'>13.93</td><td style='text-align: center; word-wrap: break-word;'>14.26</td><td style='text-align: center; word-wrap: break-word;'>19.08</td><td style='text-align: center; word-wrap: break-word;'>1.49</td><td style='text-align: center; word-wrap: break-word;'>1.07</td><td style='text-align: center; word-wrap: break-word;'>1.83</td><td style='text-align: center; word-wrap: break-word;'>11.86</td><td style='text-align: center; word-wrap: break-word;'>12.14</td><td style='text-align: center; word-wrap: break-word;'>17.46</td><td style='text-align: center; word-wrap: break-word;'>1.26</td><td style='text-align: center; word-wrap: break-word;'>0.97</td><td style='text-align: center; word-wrap: break-word;'>1.39</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Sphere [^12]</td><td style='text-align: center; word-wrap: break-word;'>✗</td><td style='text-align: center; word-wrap: break-word;'>✗</td><td style='text-align: center; word-wrap: break-word;'>✗</td><td style='text-align: center; word-wrap: break-word;'>✗</td><td style='text-align: center; word-wrap: break-word;'>✗</td><td style='text-align: center; word-wrap: break-word;'>✗</td><td style='text-align: center; word-wrap: break-word;'>✗</td><td style='text-align: center; word-wrap: break-word;'>✗</td><td style='text-align: center; word-wrap: break-word;'>✗</td><td style='text-align: center; word-wrap: break-word;'>✗</td><td style='text-align: center; word-wrap: break-word;'>✗</td><td style='text-align: center; word-wrap: break-word;'>✗</td><td style='text-align: center; word-wrap: break-word;'>✗</td><td style='text-align: center; word-wrap: break-word;'>✗</td><td style='text-align: center; word-wrap: break-word;'>✗</td><td style='text-align: center; word-wrap: break-word;'>✗</td><td style='text-align: center; word-wrap: break-word;'>✗</td><td style='text-align: center; word-wrap: break-word;'>✗</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Trihedron [^16]</td><td style='text-align: center; word-wrap: break-word;'>19.21</td><td style='text-align: center; word-wrap: break-word;'>18.43</td><td style='text-align: center; word-wrap: break-word;'>12.04</td><td style='text-align: center; word-wrap: break-word;'>1.92</td><td style='text-align: center; word-wrap: break-word;'>1.31</td><td style='text-align: center; word-wrap: break-word;'>1.46</td><td style='text-align: center; word-wrap: break-word;'>14.07</td><td style='text-align: center; word-wrap: break-word;'>14.12</td><td style='text-align: center; word-wrap: break-word;'>11.08</td><td style='text-align: center; word-wrap: break-word;'>1.28</td><td style='text-align: center; word-wrap: break-word;'>1.13</td><td style='text-align: center; word-wrap: break-word;'>1.89</td><td style='text-align: center; word-wrap: break-word;'>11.76</td><td style='text-align: center; word-wrap: break-word;'>12.37</td><td style='text-align: center; word-wrap: break-word;'>10.19</td><td style='text-align: center; word-wrap: break-word;'>1.39</td><td style='text-align: center; word-wrap: break-word;'>0.92</td><td style='text-align: center; word-wrap: break-word;'>1.44</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>EasyCalib (Ours)</td><td style='text-align: center; word-wrap: break-word;'>3.51</td><td style='text-align: center; word-wrap: break-word;'>3.27</td><td style='text-align: center; word-wrap: break-word;'>13.38</td><td style='text-align: center; word-wrap: break-word;'>0.13</td><td style='text-align: center; word-wrap: break-word;'>0.06</td><td style='text-align: center; word-wrap: break-word;'>0.08</td><td style='text-align: center; word-wrap: break-word;'>2.01</td><td style='text-align: center; word-wrap: break-word;'>2.39</td><td style='text-align: center; word-wrap: break-word;'>12.29</td><td style='text-align: center; word-wrap: break-word;'>0.11</td><td style='text-align: center; word-wrap: break-word;'>0.05</td><td style='text-align: center; word-wrap: break-word;'>0.15</td><td style='text-align: center; word-wrap: break-word;'>2.19</td><td style='text-align: center; word-wrap: break-word;'>1.93</td><td style='text-align: center; word-wrap: break-word;'>11.53</td><td style='text-align: center; word-wrap: break-word;'>0.12</td><td style='text-align: center; word-wrap: break-word;'>0.07</td><td style='text-align: center; word-wrap: break-word;'>0.11</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Placement C</td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'></td></tr><tr><td style='text-align: center; word-wrap: break-word;'>FastCalib [^11]</td><td style='text-align: center; word-wrap: break-word;'>5.82</td><td style='text-align: center; word-wrap: break-word;'>4.73</td><td style='text-align: center; word-wrap: break-word;'>6.11</td><td style='text-align: center; word-wrap: break-word;'>0.24</td><td style='text-align: center; word-wrap: break-word;'>0.17</td><td style='text-align: center; word-wrap: break-word;'>0.22</td><td style='text-align: center; word-wrap: break-word;'>3.75</td><td style='text-align: center; word-wrap: break-word;'>3.62</td><td style='text-align: center; word-wrap: break-word;'>4.19</td><td style='text-align: center; word-wrap: break-word;'>0.21</td><td style='text-align: center; word-wrap: break-word;'>0.16</td><td style='text-align: center; word-wrap: break-word;'>0.27</td><td style='text-align: center; word-wrap: break-word;'>2.92</td><td style='text-align: center; word-wrap: break-word;'>2.53</td><td style='text-align: center; word-wrap: break-word;'>2.84</td><td style='text-align: center; word-wrap: break-word;'>0.19</td><td style='text-align: center; word-wrap: break-word;'>0.14</td><td style='text-align: center; word-wrap: break-word;'>0.23</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Sphere [^12]</td><td style='text-align: center; word-wrap: break-word;'>2.97</td><td style='text-align: center; word-wrap: break-word;'>2.58</td><td style='text-align: center; word-wrap: break-word;'>3.14</td><td style='text-align: center; word-wrap: break-word;'>0.11</td><td style='text-align: center; word-wrap: break-word;'>0.05</td><td style='text-align: center; word-wrap: break-word;'>0.04</td><td style='text-align: center; word-wrap: break-word;'>1.41</td><td style='text-align: center; word-wrap: break-word;'>1.87</td><td style='text-align: center; word-wrap: break-word;'>2.18</td><td style='text-align: center; word-wrap: break-word;'>0.12</td><td style='text-align: center; word-wrap: break-word;'>0.06</td><td style='text-align: center; word-wrap: break-word;'>0.08</td><td style='text-align: center; word-wrap: break-word;'>1.72</td><td style='text-align: center; word-wrap: break-word;'>1.14</td><td style='text-align: center; word-wrap: break-word;'>1.27</td><td style='text-align: center; word-wrap: break-word;'>0.15</td><td style='text-align: center; word-wrap: break-word;'>0.09</td><td style='text-align: center; word-wrap: break-word;'>0.12</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Trihedron [^16]</td><td style='text-align: center; word-wrap: break-word;'>12.80</td><td style='text-align: center; word-wrap: break-word;'>11.50</td><td style='text-align: center; word-wrap: break-word;'>13.90</td><td style='text-align: center; word-wrap: break-word;'>0.46</td><td style='text-align: center; word-wrap: break-word;'>0.33</td><td style='text-align: center; word-wrap: break-word;'>0.42</td><td style='text-align: center; word-wrap: break-word;'>9.50</td><td style='text-align: center; word-wrap: break-word;'>9.10</td><td style='text-align: center; word-wrap: break-word;'>10.70</td><td style='text-align: center; word-wrap: break-word;'>0.40</td><td style='text-align: center; word-wrap: break-word;'>0.29</td><td style='text-align: center; word-wrap: break-word;'>0.45</td><td style='text-align: center; word-wrap: break-word;'>8.10</td><td style='text-align: center; word-wrap: break-word;'>7.24</td><td style='text-align: center; word-wrap: break-word;'>8.45</td><td style='text-align: center; word-wrap: break-word;'>0.34</td><td style='text-align: center; word-wrap: break-word;'>0.26</td><td style='text-align: center; word-wrap: break-word;'>0.31</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>EasyCalib (Ours)</td><td style='text-align: center; word-wrap: break-word;'>3.06</td><td style='text-align: center; word-wrap: break-word;'>2.61</td><td style='text-align: center; word-wrap: break-word;'>3.21</td><td style='text-align: center; word-wrap: break-word;'>0.08</td><td style='text-align: center; word-wrap: break-word;'>0.01</td><td style='text-align: center; word-wrap: break-word;'>0.01</td><td style='text-align: center; word-wrap: break-word;'>1.36</td><td style='text-align: center; word-wrap: break-word;'>1.91</td><td style='text-align: center; word-wrap: break-word;'>2.25</td><td style='text-align: center; word-wrap: break-word;'>0.06</td><td style='text-align: center; word-wrap: break-word;'>0.01</td><td style='text-align: center; word-wrap: break-word;'>0.19</td><td style='text-align: center; word-wrap: break-word;'>1.68</td><td style='text-align: center; word-wrap: break-word;'>1.17</td><td style='text-align: center; word-wrap: break-word;'>1.21</td><td style='text-align: center; word-wrap: break-word;'>0.13</td><td style='text-align: center; word-wrap: break-word;'>0.08</td><td style='text-align: center; word-wrap: break-word;'>0.16</td></tr></table>

对于不适用于传感器设置A的方法，我们会稍微移动传感器，并利用激光雷达里程计来积累更密集的点云，以支持其运行。其中，“×”表示该方法在相应设置下无法产生有效的标定结果。

这些参数会根据中值梯度大小自适应选择，以维持边缘的连续性。

边缘提取之后，通过分析以每个候选边缘像素$\mathcal{N}(\mathbf{u}, r)$为中心的圆形邻域$\mathbf{u} = (x, y)^T$内的梯度方向分布来确定二维中心点角。邻域半径的设置与图像分辨率成正比，以确保在不同分辨率下都能保持一致的行为：$r = \lceil \kappa \min(W, H) \rceil$，其中$W \times H$表示图像尺寸。在所有实验中，缩放因子均固定为$\kappa = 0.01$。对于$\mathbf{u}' = (x', y')^T$中的每个边缘像素$\mathcal{N}(\mathbf{u}, r)$，其相对方向计算如下：

 $$ \theta\left(\mathbf{u}^{\prime},\mathbf{u}\right)=\arctan2\left(y^{\prime}-y,\ x^{\prime}-x\right) $$

随后将其累积到$[-\pi,\pi)$上的方向直方图中。我们通过直方图中的非极大值抑制来检测出三个主要峰值，并保留角度间隔最小的前3个峰值。如果这些峰值大致等距分布（约为$\mathbf{x}_i$）且覆盖足够的角度范围，表明这是三条结构边缘的交点，此时该像素即被选为中心点角$120^\circ$。如果找到的可靠峰值少于三个（例如由于遮挡或颜色退化），则会排除该候选点以避免误判。完整流程总结在算法1中。

3) 基于PnP的粗略外参估计：给定n对二维-三维对应点$\{\mathbf{x}_i, \mathbf{X}_i\}_{i=1}^n$，通过求解PnP优化问题来估计初始的相机-激光雷达外参参数。

   $$ {^{C}\hat{\mathbf{T}}_{L}}=\underset{{^{C}\mathbf{T}_{L}}}{\arg\min}\sum_{i=1}^{n}\left\|\mathbf{x}_{i}-\Pi\left({^{C}\mathbf{T}_{L}}\mathbf{X}_{i}\right)\right\|_{2}^{2} $$

其中$\Pi(\cdot)$表示相机投影函数，它将相机坐标系中的三维点$\mathbf{p} = [X, Y, Z]^T$映射到图像平面，例如在针孔模型$\Pi(\mathbf{p}) = [u, v]^T$和$u = f_x X/Z + c_x$下即为$v = f_y Y/Z + c_y$。为提高对潜在异常值的鲁棒性，我们采用RANSAC-PnP框架[^25]、[^26]来获取可靠的初始估计$C\hat{\mathbf{T}}_L$。

```pseudo
// Algorithm 1: 2-D Center Corner Test by the Direction Histogram

Input: Edge map E (Canny; edge pixels are 255), candidate pixel  $\mathbf{u} = (x, y)$, radius  r

Output: true if  $\mathbf{u}$ is a center-corner, otherwise false

1:  $\mathcal{D} \leftarrow \emptyset$

2: for all  $\mathbf{u}' = (x', y') \in \mathcal{N}(\mathbf{u}, r)$ do

3: if  $\|\mathbf{u}' - \mathbf{u}\| > r \cdot \mathbf{o} \cdot \mathbf{E}(\mathbf{u}') \neq 255$ then

4: continue

5: end if

6:  $\mathcal{D} \leftarrow \mathcal{D} \cup \{\arctan 2(y' - y, x' - x)\}$

7: end for

8: if  $|\mathcal{D}| < 10$ then

9: return false

10: end if

11: Build a circular histogram  h with  $B=9$ bins over  $[-\pi, \pi)$ from  $\mathcal{D}$.

12: Detect peak bins  $\mathcal{P}$ by local maxima with  $h[i] > 0.2|\mathcal{D}|$.

13: if  $|\mathcal{P}| \neq 3$ then

14: return false

15: end if

16: Sort the three peak bins  $i_1 < i_2 < i_3$, with counts  $c_1, c_2, c_3$.

17: Compute circular intervals  $d_1 = (i_2 - i_1) \bmod B$,  $d_2 = (i_3 - i_2) \bmod B$,  $d_3 = (i_1 - i_3) \bmod B$.

18:  $d_{\min} \leftarrow \min(d_1, d_2, d_3)$,  $d_{\max} \leftarrow \max(d_1, d_2, d_3)$,  $p \leftarrow \frac{c_1 + c_2 + c_3}{|\mathcal{D}|}$.

19: return  $\left(\frac{d_{\min}}{d_{\max}} > 0.8\right) \land (p > 0.9)$.

```

### D. 精细外参标定

如图2的优化部分所示，我们首先利用$c\hat{\mathbf{T}}_L$将点云中心线特征投影到对应的图像上。众所周知，一旦有精确的初始外参估计，图像边缘特征与投影后的点云边缘特征应当高度对齐。因此，对于每个三维边缘点$\mathbf{P}_i$，我们会寻找其在空间上最近的图像边缘点$\mathbf{q}_i$，并根据$\mathbf{n}_i$所在的区域计算其局部法向量$\mathbf{q}_i$。对于每一组边缘点对……

---

我们构建点到线的残差。

 $$ \mathbf{e}_{i}=\mathbf{n}_{i}^{T}\left(\Pi\left({}^{C}\mathbf{T}_{L}\mathbf{P}_{i}\right)-\mathbf{q}_{i}\right). $$

接着，我们利用式(14)中的点到线残差$e_i$构建加权最小二乘问题。为了在$\mathrm{SE}(3)$上实现基于李代数的优化，我们用一个六维扭曲向量$\boldsymbol{\xi} = (\boldsymbol{\phi}^T \mathbf{t}^T)^T \in \mathbb{R}^6$来参数化外参变换，其中$\boldsymbol{\phi} \in \mathbb{R}^3$和$\mathbf{t} \in \mathbb{R}^3$分别表示旋转和平移，可写为$^C \mathbf{T}_L(\boldsymbol{\xi}) = \exp(\boldsymbol{\xi}^\wedge) \in \mathrm{SE}(3)$。我们采用左扰动更新方式$^C \mathbf{T}_L \leftarrow \exp(\delta \boldsymbol{\xi}^\wedge)^C \mathbf{T}_L$。

1) 残差定义：对于激光雷达中的每个点$\mathbf{P}_{i}$（位于激光雷达坐标系中），其在相机坐标系中的坐标为……

   $$ \mathbf{p}_{i}=\left[X_{i}Y_{i}Z_{i}\right]^{T}={}^{C}\mathbf{T}_{L}\left(\boldsymbol{\xi}\right)\mathbf{P}_{i}. $$

令$\Pi(\cdot)$表示相机投影函数。我们定义……

 $$ \mathbf{f}_{i}\left(\boldsymbol{\xi}\right)=\Pi\left(\mathbf{p}_{i}\right)=\Pi\binom{C}{\mathbf{T}_{L}}\left(\boldsymbol{\xi}\right)\mathbf{P}_{i}\rangle\in\mathbb{R}^{2} $$

以及点到直线的残差（图像中的有符号距离）如下：

 $$ \boldsymbol{e}_{i}=\boldsymbol{n}_{i}^{T}\left(\mathbf{f}_{i}\left(\boldsymbol{\xi}\right)-\boldsymbol{q}_{i}\right) $$

其中 $n_i \in \mathbb{R}^2$ 是对应图像线的单位法向量，而 $q_i \in \mathbb{R}^2$ 是该线上的任意一点。

 $${^{C}}\mathbf{\bar{T}}_{L}=\underset{^{c}\mathbf{T}_{L}}{\operatorname*{arg\,min}}\sum_{i}\frac{1}{2}e_{i}^{T}\mathbf{w}_{i}^{-1}e_{i}$$

其中 $^{C}\mathbf{T}_{L}$ 是最优的外参估计值。在本研究中，我们设定 $\mathbf{w}_{i} = \mathbf{I}$。

2) 通过链式法则求解析雅可比矩阵：$e_i$ 关于 $\xi$ 的雅可比矩阵为

   $$ \boldsymbol{J}_{p l_{i}}=\frac{\partial\boldsymbol{e}_{i}}{\partial\boldsymbol{\xi}}=\boldsymbol{n}_{i}^{T}\frac{\partial\mathbf{f}_{i}}{\partial\boldsymbol{\xi}}=\boldsymbol{n}_{i}^{T}\boldsymbol{J}_{f_{i}} $$

其中

 $$ J_{f_{i}}=\frac{\partial\mathbf{f}_{i}}{\partial\boldsymbol{\xi}}=\underbrace{\frac{\partial\Pi\left(\mathbf{p}_{i}\right)}{\partial\mathbf{p}_{i}}}_{J_{\Pi}}\underbrace{\frac{\partial\mathbf{p}_{i}}{\partial\boldsymbol{\xi}}}_{J_{\mathrm{S E}(3)}}. $$

假设采用针孔模型（为简洁起见省略主点），则有 $\Pi([X,Y,Z]^T) = [f_x X/Z, f_y Y/Z]^T$，因此，

 $$ \boldsymbol{J}_{\Pi}=\left[\begin{matrix}{\frac{f_{x}}{Z_{i}}}&{0}&{-\frac{f_{x}X_{i}}{Z_{i}^{2}}}\\ {0}&{\frac{f_{y}}{Z_{i}}}&{-\frac{f_{y}Y_{i}}{Z_{i}^{2}}}\\ \end{matrix}\right]. $$

在左侧微扰 $^C\mathbf{T}_L \leftarrow \exp(\delta\xi^\wedge)^C\mathbf{T}_L$ 下，$\mathbf{p}_i$ 的一阶变化量为 $\delta\mathbf{p}_i \approx [\delta\phi]_\times \mathbf{p}_i + \delta\mathbf{t}$，由此可得到标准的 SE(3) 雅可比矩阵。

 $$ \boldsymbol{J}_{\mathrm{S E}(3)}=\frac{\partial\mathbf{p}_{i}}{\partial\boldsymbol{\xi}}=\left[-\left[\mathbf{p}_{i}\right]_{\times}\mathbf{I}_{3\times3}\right] $$

其中 $[\cdot]_{\times}$ 表示斜对称矩阵。

结合式 (16)–(18)，我们得到闭式解 $J_{f_i} \in \mathbb{R}^{2 \times 6}$。

 $$ \boldsymbol{J}_{f_{i}}=\left[\begin{array}{c c c c}\frac{-f_{x}X_{i}Y_{i}}{Z_{i}^{2}}&f_{x}+\frac{f_{x}X_{i}^{2}}{Z_{i}^{2}}&\frac{-f_{x}Y_{i}}{Z_{i}}&\frac{f_{x}}{Z_{i}}\\ -f_{y}-\frac{f_{y}Y_{i}^{2}}{Z_{i}^{2}}&\frac{f_{y}X_{i}Y_{i}}{Z_{i}^{2}}&\frac{f_{y}X_{i}}{Z_{i}}&0\quad\frac{f_{y}}{Z_{i}}\quad\frac{-f_{y}Y_{i}}{Z_{i}^{2}}\end{array}\right]. $$

最后，我们利用高斯-牛顿算法求解式 (14)，从而得到精度达到亚像素级的优化后外参参数 $^C\bar{T}_L$。

![Image](images/d10d6ad228ffb6bee9ef2db8881b8dd3aca15fcd517f8d9b8c6bf308f520182f.jpg)

<div style="text-align: center;">(a)</div>

![Image](images/d3f9b3daab97024fac0c281a1560fe827252a7b8bb63fc1a9f8786c71ac7ffd6.jpg)

<div style="text-align: center;">(b)</div>

<div style="text-align: center;">Fig. 5. (a) Our simulation environment built on Gazebo. (b) Calibration scene in the real world.</div>

### IV. 实验结果

为了全面验证 EasyCalib 的适用性，我们在仿真环境和真实环境中均开展了实验。图 5 展示了仿真与真实场景下的实验配置。我们将传感器分为三种配置：机械式激光雷达（Velodyne VLP-16）以及两种非重复扫描激光雷达（Livox Mid-360 和 Livox Avia）。对于所有配置，相机均采用标准针孔模型。对于鱼眼或广角相机等其他类型的相机，可通过通用畸变校正模型将图像轻松矫正为针孔模型；因此，我们并未针对不同的相机配置开展单独实验。

### A. 评估指标

由于是否具备真实外参数据，我们对仿真实验和真实实验中的标定精度采用了不同的评估方式。

1) 仿真实验（有真实值对照）：在仿真中，真实的激光雷达-相机外参变换 $^C\mathbf{T}_L^{gt}$ 是已知的。给定估计的外参 $^C\mathbf{T}_L$ 后，我们统计各分量的平移误差。

   $$ \Delta\mathbf{t}=\left[\Delta t_{x}~\Delta t_{y}~\Delta t_{z}\right]^{T}={}^{C}\mathbf{\overline{{t}}}_{L}-{}^{C}\mathbf{t}_{L}^{gt} $$

以及总体平移误差 $e_t = \|\Delta \mathbf{t}\|_2$。

对于旋转部分，我们计算相对旋转 $\Delta\mathbf{R} = (^C\mathbf{R}_L^{gt})^T C\mathbf{\bar{R}}_L$。我们将 $\Delta r_x$ 转换为欧拉角增量（横滚角、俯仰角、偏航角），从而得出各分量的旋转误差（$\Delta r_y$、$\Delta r_z$、$\Delta\mathbf{R}$），以及总体旋转误差。

 $$ e_{r}=\operatorname{a r c c o s}\left(\frac{\operatorname{t r}\left(\Delta\mathbf{R}\right)-1}{2}\right). $$

2) 真实环境实验（无可靠真实值对照）：在真实环境实验中，我们无法像仿真实验那样直接量化绝对的标定精度。相反，真实环境的评估旨在检验多次试验中所估计外参的可重复性、稳定性和实际一致性。具体而言，我们在相同设置下多次运行标定程序（例如使用不同的数据对、随机子集或重复采集），并分析所估计的 6 自由度位姿的变化情况。设 $\boldsymbol{\xi}_k = \left[\phi_k^T \mathbf{t}_k^T\right]^T$ 为第 k 次试验得到的外参估计值，其中 $\boldsymbol{\phi}_k$ 表示

---

横滚-俯仰-偏航角，而 $t_{k}$ 表示平移量。我们计算各分量的样本均值和标准差。

 $$ \mu_{j}=\frac{1}{K}\sum_{k=1}^{K}\xi_{k,j},\qquad\sigma_{j}=\sqrt{\frac{1}{K-1}\sum_{k=1}^{K}\left(\xi_{k,j}-\mu_{j}\right)^{2}} $$

其中 $j \in \{t_x, t_y, t_z, r_x, r_y, r_z\}$，K 表示试验次数。我们报告 $\sigma_{t_x}, \sigma_{t_y}, \sigma_{t_z}$ 和 $\sigma_{r_x}, \sigma_{r_y}, \sigma_{r_z}$，用以量化实际场景中估计的外参稳定性。

3) 目标分割评估：我们使用成功率（SR）来评估目标分割效果。如果分割阶段输出的聚类结果能与校准目标匹配，则该帧被视为成功；否则视为失败。成功率的定义如下：

   $$ SR=\frac{N_{succ}}{N_{all}} $$

其中 $N_{all}$ 表示测试帧总数，$N_{succ}$ 表示正确选中目标聚类的帧数。实践中，我们通过将所选聚类与仿真中的真实目标关联进行比对来确定是否成功；对于少量实际场景帧，则通过人工检查（或目标可见性验证）来判断。

### B. 目标分割评估

我们利用成功率来评估所提出的目标分割方法的鲁棒性。如果管道能选出正确的目标聚类，并为后续的粗校准提供有效的二维-三维对应关系，则该次试验视为成功。我们考虑两种场景：简单场景（仿真环境）和复杂场景（现实世界中的杂乱环境）。每种场景下各进行 50 次试验。

表二总结了在不同结构正则化阈值组合（$\tau_{ang}$、$\tau_{dist}$）以及是否启用自适应聚类阈值 $\sigma$ 时的成功率。总体而言，在广泛的 $(\tau_{ang}, \tau_{dist})$ 范围内，成功率均保持较高水平，这表明分割过程对这些参数并不过于敏感。在简单场景中，大多数设置下的成功率都能达到 $\geq 98\%$。在复杂场景中，由于杂乱环境和类似三棱镜的干扰物存在，成功率略有下降，但不同阈值设置间的性能差异仍较小。

启用自适应 $\sigma$ 能获得最佳的整体性能，并提升鲁棒性，尤其是在复杂场景中。图 6 进一步表明，自适应阈值处理能在不同目标距离下产生更一致的聚类结果，而固定阈值在较远距离时更容易出现碎片化现象。在实际杂乱环境中，失败情况主要出现在严重遮挡/部分扫描条件下，或是强背景结构引发模糊的三棱镜候选物时；此时该方法倾向于拒绝不确定的检测结果，而非输出不可靠的对应关系。

### C. 粗校准性能

1) 角点特征提取：我们在多种成像条件下评估所提出的二维角点特征检测方法，包括正常/低光照环境以及不同程度的遮挡情况。如图 7 所示，我们的方法在所有测试案例中都能可靠地定位中心角点特征。

![Image](images/fa3a2f87badc83277be24a7c816a14002708676e986aa00c8396675f356b5245.jpg)

<div style="text-align: center;">Fig. 6. Target clustering results for a mechanical LiDAR at different distances. Left column: results using adaptive thresholding; right column: results without adaptive thresholding. The same color denotes the same cluster.</div>

相应的梯度方向直方图显示出三个主要峰值，且角度间隔大致相等，这与预期的三面交线特征相符，从而直观地验证了检测结果的准确性。图8进一步展示了不同类型激光雷达提取的三维边缘与平面特征。尽管低通道数的Velodyne VLP-16采集到的数据点极为稀疏，但所提出的算法流程仍能稳定地恢复目标平面及其交线，生成一致的三维角点特征。这种鲁棒性源于我们基于几何特性的分割与结构正则化方法，它们利用三面约束来抑制异常值并补偿较低的点云密度。总体而言，这些结果证明所提出的特征提取方法不仅能在复杂的视觉条件下保持稳定性，还能在从稀疏的机械式扫描仪到密集的固态激光雷达等多种传感器上通用。

2) 特征匹配评估：我们通过匹配率来评估粗校准的质量，匹配率定义为经粗外部参数投影后，能够与二维图像边缘匹配的三维边缘点的百分比（即在图像中满足固定像素容差的最近邻点）。图9展示了针对每种目标放置方式及三种激光雷达，在20次试验中的匹配率分布情况。

总体而言，Mid-360和Avia的匹配率始终高于稀疏程度更高的VLP-16，而VLP-16虽然匹配率稍低，但稳定性较好且方差较小。具有深度多样性的放置方式（“4种不同深度”和“3种不同深度”）表现优于相同深度的放置方式，

---

![Image](images/ea3e486ba8c8578da9979eb38c213508807b11d17e010695c3404547f2f8be5e.jpg)

![Image](images/6fefba20bb1f0e1cd3c0d983fa3ba47478736de32a0560710ca1ba52e419f572.jpg)

![Image](images/01b4096478af4925d090fe607498db09449a7316973f7b7015c18660fa2368f1.jpg)

<div style="text-align: center;">(a)</div>

![Image](images/30a44de7a51ba6a54183ce662d32d44d9393790db53e7e552807aceb215dea3f.jpg)

![Image](images/e286d70d37ead837eb6013765df3af1c2046455f77c4e4592e9c361ecc190e3e.jpg)

<div style="text-align: center;">(b)</div>

![Image](images/51f1f60f00b44deb70ccb15e882c75757c0cfe73cad409e08510a0147415d0e0.jpg)

![Image](images/edde962600face162b4dce0f56ecac013b03a68bc5419d2fb81befbbcfa95c0d.jpg)

<div style="text-align: center;">(c)</div>

<div style="text-align: center;">Fig. 7. Qualitative results and intermediate outputs of the proposed 2-D corner feature detection under different imaging conditions, including low-light and occluded scenes. The table on the right shows the gradient-direction statistics of the successfully detected center corner feature. (a) Camera image. (b) Trinarization. (c) Edge detection and 2-D center corner detection.</div>

![Image](images/2470ec987021a8b802fe5325eeea455ddee92f81b7e799be7b899939d4ceba27.jpg)

<div style="text-align: center;">(b)</div>

<div style="text-align: center;">(c)</div>

<div style="text-align: center;">Fig. 8. 3-D edge feature extraction results for different LiDAR types. Points with the same color correspond to the same planar feature. (a) Mid360. (b) Avia. (c) Vlp16.</div>

<div style="text-align: center;">Fig. 9. Feature matching performance after coarse calibration under different target placement settings. The boxplots show the match ratio (matched 2-D–3-D edge correspondences over all 3-D edge points) over 20 trials per setting for three LiDAR types (VLP-16, Mid-360, and Avia). Boxes indicate the interquartile range, the center line denotes the median, and whiskers show the nonoutlier range.</div>

![Image](images/33543dbded3c8423b411c69d2e1f9dd3ef907d2738993cd8b66aa8e9d0f5ef9a.jpg)

这证实了深度变化能为PnP初始化提供更强的几何约束。“8种不同深度”设置下的性能最佳（匹配率超过95%），说明增加观测数量与深度多样性能够进一步提升粗校准的鲁棒性。

![Image](images/ac79727ff7e324c6dda5268f4e444a81a87215ca2766f3862bfb24ab6c6283ba.jpg)

<div style="text-align: center;">Fig. 10. Different target placement settings used to evaluate the performance of various calibration methods. EasyCalib is shown here for illustration, and the same settings are applied to the other methods.</div>

![Image](images/b8a2cf9f1194090e2e7e98e7a02c988e66ab069e77f94da9bc57eaab813365fa.jpg)

<div style="text-align: center;">(a)</div>

![Image](images/076d66d34ddfe6d5405661b00477a4cab71774caa0cddc4b649095f76b154af0.jpg)

<div style="text-align: center;">(b)</div>

![Image](images/e2a297b9fb3b12544aed853842578c41d302249139df29a5fdd1bd843b923d80.jpg)

<div style="text-align: center;">(c)</div>

<div style="text-align: center;">Fig. 11. Our sensor setups. (a) Velodyne VLP-16 LiDAR and MER2630-60U3C camera (3088 × 2064). (b) Livox MID-360 LiDAR and MV-CU013-A0UC camera (1280 × 1024). (c) Livox Avia LiDAR and real sense D455 camera (1280 × 720).</div>

3) 潜在的失效情况：在实际应用中，导致EasyCalib失效的唯一因素是粗校准阶段未能成功完成。由于粗校准依赖于求解PnP问题，当提取的二维-三维对应点不可靠时，就会导致初始外部参数估计错误，进而使后续的精细优化无法收敛到正确解。这种情况通常出现在两种情形下：1）目标被严重遮挡，导致角点处的特征无法被观察到，进而使得二维角点检测失败并引发PnP失效；2）激光雷达对目标的采样极为稀疏，这种情况在低通道数的Velodyne型激光雷达中更为常见——当少于两条扫描线与目标平面相交时，平面分割便不可靠，进而影响三维边缘与中心角点特征的提取，最终导致粗校准失败。

---

![Image](images/b7221f0f907ce1c27f233b5931a92b6820468ea79289c933b35f05ea45326945.jpg)

<div style="text-align: center;">Fig. 12. Point-to-line residual iteration process. White: 2-D edges; red: 3-D centerline features projected onto the image plane; green: residual directions. The first column shows camera images captured under two different lighting conditions. The second column shows the point-to-line residuals constructed from the initial estimate. The fourth column shows the final converged result.</div>

这种情况通常出现在两种情形下：1）目标被严重遮挡，导致角点处的中心-角点特征被阻挡，无法观察到角点周围特有的三色分布，进而使得二维角点检测不可靠，最终导致PnP失败；2）目标上的激光雷达采样点极其稀疏，这种情况在通道数较少的Velodyne型激光雷达中更为常见——当与目标平面相交的扫描线少于两条时，平面分割就会变得不可靠，从而难以提取三维边缘和中心-角点特征，致使粗校准失败。

### D. 精细校准性能

1) 仿真结果：表III报告了在三种传感器设置及三种目标放置方式下（如图10所示）的精细校准精度。放置方式A使用单个目标，放置方式B在同一深度放置多个目标，放置方式C则在不同深度放置多个目标。总体而言，EasyCalib在所有传感器设置下多数自由度的校准精度均最优，这证实了所提出的由粗到精的算法流程以及像素级细化的有效性。

在A和B两种放置场景下，深度相关的平移分量$t_{z}$中出现了显著的异常情况。在这两种情况下，FastCalib [^11]和EasyCalib所产生的$t_{z}$误差均比三面体基线[^16]更大，这一现象归因于受限的深度条件：单个目标（放置场景A）或同一深度的共面目标（放置场景B）会降低对深度分量的可观测性，从而使求解结果更易受对应噪声和初始化的影响。尽管存在这种固有局限，EasyCalib在其余平移和旋转分量上的误差仍明显低于FastCalib，进而实现了更好的整体标定质量。相比之下，基于三面体的方法在大多数分量上产生的误差始终更高。这也在意料之中，因为该方法主要依赖几何结构的跨模态位姿对齐，并未强制要求像素级的重投影一致性，从而限制了其实现精细的亚像素级对齐的能力。最后，放置场景C（具有不同深度的多个目标）提供了更强的几何约束并提升了深度可观测性，在此场景下EasyCalib在所有传感器配置下均保持着最佳的整体性能。

我们还将其与基于球面的方法[^12]进行了比较。虽然球面方法在放置场景C中能达到具有竞争力的精度，甚至在某些自由度上取得最佳结果，但它需要多次观测才能可靠地估计外参（例如多个球面位姿）。因此，在放置场景A和B中，由于可用的数据对无法满足最低要求，球面方法无法生成有效的标定结果。最后，放置场景C（具有不同深度的多个目标）提供了更强的几何约束并提升了深度可观测性，在此场景下EasyCalib在所有传感器配置下均保持着最佳的整体性能。

2) 实际应用场景结果：如图11所示，我们评估了三种实际场景下的传感器配置：机械式Velodyne VLP-16激光雷达（配置A）、半固态Livox Mid-360激光雷达（配置B）以及Livox Avia激光雷达（配置C）。每种激光雷达均与针孔相机配对使用（对于配置C，仅使用了D455相机的单目流）。由于实际场景中无法获得精确的真实外参，我们通过在相同设置下运行EasyCalib共K=20次来评估重复性，并统计各6自由度分量的标准差，具体结果汇总于表IV中。

总体而言，EasyCalib在所有配置下均表现出较强的一致性，旋转分量的标准差低于$0.1^{\circ}$，平移分量的标准差通常处于亚厘米级到几厘米范围内。正如预期，多深度目标放置方式比单目标放置方式能产生更稳定的结果，因为额外的深度多样性提供了更强的几何约束并提升了可观测性。相比之下，单目标放置方式下的深度平移分量$\sigma_{t,c}$方差明显更大，这表明当约束条件有限时，深度方向对误差更为敏感。

---

<div style="text-align: center;">TABLE IV</div>

<div style="text-align: center;">REAL-WORLD REPEATABILITY OF EASYCALIB (WITHOUT RELIABLE GROUND TRUTH). WE REPORT THE SAMPLE STANDARD DEVIATION OF THE ESTIMATED EXTRINSICS OVER  $K = 20$ REPEATED TRIALS UNDER DIFFERENT SETTINGS. SMALLER VALUES INDICATE BETTER REPEATABILITY. BEST RESULTS ARE HIGHLIGHTED AS FIRST, AND SECOND-BEST AS SECOND</div>

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td colspan="2">Target placement</td><td colspan="2">Imaging quality</td><td colspan="2">Sensor setup</td><td colspan="3">Rotation std (deg)</td><td colspan="3">Translation std (cm)</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Single</td><td style='text-align: center; word-wrap: break-word;'>Multiple</td><td style='text-align: center; word-wrap: break-word;'>Poor</td><td style='text-align: center; word-wrap: break-word;'>Good</td><td style='text-align: center; word-wrap: break-word;'>A</td><td style='text-align: center; word-wrap: break-word;'>B</td><td style='text-align: center; word-wrap: break-word;'>C</td><td style='text-align: center; word-wrap: break-word;'>$\sigma_{{r_x}}$</td><td style='text-align: center; word-wrap: break-word;'>$\sigma_{{r_y}}$</td><td style='text-align: center; word-wrap: break-word;'>$\sigma_{{r_z}}$</td><td style='text-align: center; word-wrap: break-word;'>$\sigma_{{t_x}}$</td><td style='text-align: center; word-wrap: break-word;'>$\sigma_{{t_y}}$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>✓</td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'>✓</td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'>✓</td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'>0.070</td><td style='text-align: center; word-wrap: break-word;'>0.068</td><td style='text-align: center; word-wrap: break-word;'>0.066</td><td style='text-align: center; word-wrap: break-word;'>0.63</td><td style='text-align: center; word-wrap: break-word;'>0.66</td><td style='text-align: center; word-wrap: break-word;'>5.32</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>✓</td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'>✓</td><td style='text-align: center; word-wrap: break-word;'>✓</td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'>0.067</td><td style='text-align: center; word-wrap: break-word;'>0.065</td><td style='text-align: center; word-wrap: break-word;'>0.059</td><td style='text-align: center; word-wrap: break-word;'>0.57</td><td style='text-align: center; word-wrap: break-word;'>0.61</td><td style='text-align: center; word-wrap: break-word;'>4.24</td></tr><tr><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'>✓</td><td style='text-align: center; word-wrap: break-word;'>✓</td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'>✓</td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'>0.064</td><td style='text-align: center; word-wrap: break-word;'>0.061</td><td style='text-align: center; word-wrap: break-word;'>0.057</td><td style='text-align: center; word-wrap: break-word;'>0.59</td><td style='text-align: center; word-wrap: break-word;'>0.57</td><td style='text-align: center; word-wrap: break-word;'>0.48</td></tr><tr><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'>✓</td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'>✓</td><td style='text-align: center; word-wrap: break-word;'>✓</td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'>0.053</td><td style='text-align: center; word-wrap: break-word;'>0.052</td><td style='text-align: center; word-wrap: break-word;'>0.061</td><td style='text-align: center; word-wrap: break-word;'>0.55</td><td style='text-align: center; word-wrap: break-word;'>0.58</td><td style='text-align: center; word-wrap: break-word;'>0.46</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>✓</td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'>✓</td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'>✓</td><td style='text-align: center; word-wrap: break-word;'>0.065</td><td style='text-align: center; word-wrap: break-word;'>0.062</td><td style='text-align: center; word-wrap: break-word;'>0.058</td><td style='text-align: center; word-wrap: break-word;'>0.60</td><td style='text-align: center; word-wrap: break-word;'>0.59</td><td style='text-align: center; word-wrap: break-word;'>2.18</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>✓</td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'>✓</td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'>✓</td><td style='text-align: center; word-wrap: break-word;'>0.061</td><td style='text-align: center; word-wrap: break-word;'>0.054</td><td style='text-align: center; word-wrap: break-word;'>0.051</td><td style='text-align: center; word-wrap: break-word;'>0.54</td><td style='text-align: center; word-wrap: break-word;'>0.51</td><td style='text-align: center; word-wrap: break-word;'>2.08</td></tr><tr><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'>✓</td><td style='text-align: center; word-wrap: break-word;'>✓</td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'>✓</td><td style='text-align: center; word-wrap: break-word;'>0.047</td><td style='text-align: center; word-wrap: break-word;'>0.043</td><td style='text-align: center; word-wrap: break-word;'>0.049</td><td style='text-align: center; word-wrap: break-word;'>0.47</td><td style='text-align: center; word-wrap: break-word;'>0.52</td><td style='text-align: center; word-wrap: break-word;'>0.42</td></tr><tr><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'>✓</td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'>✓</td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'>✓</td><td style='text-align: center; word-wrap: break-word;'>0.036</td><td style='text-align: center; word-wrap: break-word;'>0.035</td><td style='text-align: center; word-wrap: break-word;'>0.038</td><td style='text-align: center; word-wrap: break-word;'>0.40</td><td style='text-align: center; word-wrap: break-word;'>0.50</td><td style='text-align: center; word-wrap: break-word;'>0.41</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>✓</td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'>✓</td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'>0.058</td><td style='text-align: center; word-wrap: break-word;'>0.055</td><td style='text-align: center; word-wrap: break-word;'>0.051</td><td style='text-align: center; word-wrap: break-word;'>0.55</td><td style='text-align: center; word-wrap: break-word;'>0.54</td><td style='text-align: center; word-wrap: break-word;'>4.02</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>✓</td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'>✓</td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'>0.052</td><td style='text-align: center; word-wrap: break-word;'>0.049</td><td style='text-align: center; word-wrap: break-word;'>0.042</td><td style='text-align: center; word-wrap: break-word;'>0.47</td><td style='text-align: center; word-wrap: break-word;'>0.46</td><td style='text-align: center; word-wrap: break-word;'>2.94</td></tr><tr><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'>✓</td><td style='text-align: center; word-wrap: break-word;'>✓</td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'>0.053</td><td style='text-align: center; word-wrap: break-word;'>0.046</td><td style='text-align: center; word-wrap: break-word;'>0.038</td><td style='text-align: center; word-wrap: break-word;'>0.46</td><td style='text-align: center; word-wrap: break-word;'>0.47</td><td style='text-align: center; word-wrap: break-word;'>0.37</td></tr><tr><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'>✓</td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'>✓</td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'>0.049</td><td style='text-align: center; word-wrap: break-word;'>0.037</td><td style='text-align: center; word-wrap: break-word;'>0.026</td><td style='text-align: center; word-wrap: break-word;'>0.35</td><td style='text-align: center; word-wrap: break-word;'>0.35</td><td style='text-align: center; word-wrap: break-word;'>0.23</td></tr></table>

![Image](images/693604232564a202bd58f23ae63ae1df279fc7c052225f9c9e07fbed9eb272e1.jpg)

<div style="text-align: center;">Fig. 13. Convergence process of point-to-line reprojection error of different sensor setups.</div>

3) 鲁棒性分析：为了验证EasyCalib在精细校准阶段的收敛行为，我们跟踪了不同传感器设置下公式(10)中的点线重投影残差$e_i$。图12显示，我们的方法能够产生稳定的特征匹配结果，并能在不同光照条件下快速对齐这些特征。如图13所示，得益于精确的粗略初始化（见第III-C节），优化过程能迅速降低残差，通常在3–4次高斯-牛顿迭代后便达到稳定水平。我们仍绘制了更多迭代次数以可视化收敛后的趋势，并确认残差保持稳定且无振荡现象。在实现中，求解器采用标准的停止准则：当目标函数的相对变化量（或更新范数$|\Delta\xi|$）低于预设容差，或达到最大迭代次数时，求解器便会终止。

我们还注意到在设置A中残差幅度较大。这主要是由于设置A中使用的MER2630-60U3C相机分辨率更高（3088 × 2064），

![Image](images/dc9f98cf2ac902d7e74d98cd93cc9dba63cea83d5c0d731b6f25fb05fad895b5.jpg)

<div style="text-align: center;">Fig. 14. Orthogonality sensitivity in simulation. We introduce angular deviations  $90^{\circ} \pm \Delta\theta$ to the trihedron interplane angles and compare  $e_t$ and  $e_r$ under three sensor setups. EasyCalib remains stable, while Choi et al. [^16] degraded notably as  $\Delta\theta$ increases.</div>

从而导致以像素为单位的重投影残差自然大于分辨率较低的设置B/C中的残差（相机规格详见图11）。重要的是，尽管尺度不同，所有设置均表现出相同的快速收敛行为和稳定的收敛后残差。

4) 对三面体正交性的敏感性：我们通过有意破坏仿真中三面体的正交性，进一步评估其对不完美目标制造/放置的鲁棒性。对于每个偏差等级$\Delta\theta$，我们随机扰动

---

![Image](images/f855eee289e50a64fdee5f86caa259e98ac1a6ab8c3d6ed6dfe82b71b1ad9afc.jpg)

<div style="text-align: center;">Fig. 15. Visualization of calibration result projections under different sensor setups. We show the projection results of the coarse and fine calibration on both simulated and real-world data, with the projected points colored by depth. Zoomed-in view for details. (a) Reprojection results on our simulation datasets. (b) Reprojection results on our self-recorded datasets.</div>

![Image](images/4a7e4b38c6a9126cc4850d75e78797f7bb2f4448a183ea2d85a8259294db53e1.jpg)

<div style="text-align: center;">Fig. 16. Point cloud colorized using the estimated extrinsics from FastCalib [^11], Sphere [^12], Trihedron [^16], and EasyCalib (from left to right). The red box and green box highlight the same region for better comparison.</div>

每对平面之间的二面角（即$90^{\circ} \pm \Delta \theta$），同时保持其他设置不变，并报告相对于真实外参的平移和旋转误差（$e_t$和$e_r$）。图14总结了在三种传感器设置下EasyCalib与Choi等人提出的基于三面体的方法[^16]的结果。

随着$\Delta\theta$的增加，Choi等人提出的方法[^16]在所有设置中均显示出$e_r$和$e_t$的明显退化趋势，且在非正交性较高时波动更大。这是意料之中的，因为其初始化依赖于正交三面体的假设来对齐激光雷达和相机的位姿；一旦目标偏离正交性，估计的跨模态位姿对齐就会产生偏差，进而导致误差迅速增大。相比之下，EasyCalib对正交性偏差几乎不敏感：$e_r$保持在较低水平，而$e_t$被限制在1米以内，仅呈现轻微的非单调变化而非持续上升趋势。这种特性表明EasyCalib并不严格依赖正交性，在实际中能够容忍角度偏差，这在制造公差和非理想目标放置情况下尤为有益。最后，尽管由于传感器特性不同，不同传感器设置下的绝对误差大小略有差异，但同一趋势始终成立：EasyCalib能保持稳定的性能，而Choi等人提出的方法[^16]对非正交性则高度敏感。

### E. 校准结果评估

1) 重投影：如图15所示，我们可以观察到经过粗略校准后，点云投影已大致与图像边缘特征对齐，尽管仍存在某些

---

![Image](images/c1c91a6c25af41ddd7529daf9099fb4dccb174818b434884b8fcf5eff8d6872e.jpg)

![Image](images/e816229b7ca1c8824f2158be769a81eb9b7591e916c86a71b2f962f0d8155f3b.jpg)

<div style="text-align: center;">(a)</div>

<div style="text-align: center;">(b)</div>

<div style="text-align: center;">Fig. 17. We build (a) indoor and (b) outdoor colored point-cloud maps using FastLIVO2 [^27] with the extrinsic parameters estimated by EasyCalib. The highlighted regions show fine-grained details: in indoor scenes, the edges of walls, cabinets, and plants are clearly reconstructed; in outdoor scenes, detailed structures such as vehicles and building facades are well preserved. These results demonstrate the high accuracy and practical applicability of our method.</div>

尽管仍存在明显的偏差（例如，略微超出边缘轮廓或某些区域的轻微错位），但这证明了粗略估计的可靠性。经过精细校准后，投影结果会更紧密地贴合图像边缘，这表明我们的方法能有效提升校准精度。

2) RGB彩色映射：为了尽量减少评估中的额外误差来源，我们利用固态激光雷达的非重复扫描特性，通过精准定位Livox Avia来获取密集的环境点云。随后，我们使用不同校准方法估算出的外参对点云进行着色。如图16所示，EasyCalib在边界区域的对齐效果明显更佳，尤其是在标记边缘和沙发轮廓等细节丰富的区域。虽然某些边缘处仍可见轻微的色彩溢出现象，但EasyCalib的表现仍优于其他对比方法。

图17进一步展示了利用EasyCalib估算的外参，通过FastLIVO2 [^27]生成的室内RGB彩色点云地图。得益于高精度的外参校准，点云与图像之间的对齐程度显著提升，从而能够清晰还原地图中的细微结构，如墙面边界、柜子边缘以及植物等。这些结果进一步证明了EasyCalib的实用性及其在实际部署中的潜力。

### F. 运行时间分析

我们在配备Intel i7-1360P CPU和16 GB RAM的NUC上测试了EasyCalib的运行时间性能。表V记录了每种传感器配置下重复运行20次的平均运行时间（均值±标准差）。总体而言，EasyCalib能在1秒之内完成所有配置下的完整外参校准，这表明该流程在实际应用中高效且稳定。

<div style="text-align: center;">TABLE V</div>

<div style="text-align: center;">RUNTIME BREAKDOWN OF EASYCALIB UNDER DIFFERENT SENSOR SETUPS. EACH ENTRY IS REPORTED AS MEAN $\pm$STD OVER 20 REPEATED RUNS. TIMES ARE IN SECONDS UNLESS OTHERWISE NOTED</div>

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td style='text-align: center; word-wrap: break-word;'>Calibration stage</td><td style='text-align: center; word-wrap: break-word;'>Setup A</td><td style='text-align: center; word-wrap: break-word;'>Setup B</td><td style='text-align: center; word-wrap: break-word;'>Setup C</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>3D corner extraction</td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'></td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Point-cloud clustering</td><td style='text-align: center; word-wrap: break-word;'>$0.04 \pm 0.01$</td><td style='text-align: center; word-wrap: break-word;'>$0.50 \pm 0.02$</td><td style='text-align: center; word-wrap: break-word;'>$0.20 \pm 0.02$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Structural regularization</td><td style='text-align: center; word-wrap: break-word;'>$0.07 \pm 0.01$</td><td style='text-align: center; word-wrap: break-word;'>$0.15 \pm 0.01$</td><td style='text-align: center; word-wrap: break-word;'>$0.12 \pm 0.01$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Feature extraction</td><td style='text-align: center; word-wrap: break-word;'>$0.03 \pm 0.01$</td><td style='text-align: center; word-wrap: break-word;'>$0.02 \pm 0.01$</td><td style='text-align: center; word-wrap: break-word;'>$0.17 \pm 0.02$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Subtotal</td><td style='text-align: center; word-wrap: break-word;'>$0.14 \pm 0.08$</td><td style='text-align: center; word-wrap: break-word;'>$0.67 \pm 0.04$</td><td style='text-align: center; word-wrap: break-word;'>$0.49 \pm 0.05$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>2D corner extraction</td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'></td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Trinarization</td><td style='text-align: center; word-wrap: break-word;'>$0.05 \pm 0.01$</td><td style='text-align: center; word-wrap: break-word;'>$0.01 \pm 0.00$</td><td style='text-align: center; word-wrap: break-word;'>$0.01 \pm 0.00$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Edge detection</td><td style='text-align: center; word-wrap: break-word;'>$0.18 \pm 0.04$</td><td style='text-align: center; word-wrap: break-word;'>$0.04 \pm 0.01$</td><td style='text-align: center; word-wrap: break-word;'>$0.03 \pm 0.01$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Feature extraction</td><td style='text-align: center; word-wrap: break-word;'>$0.30 \pm 0.08$</td><td style='text-align: center; word-wrap: break-word;'>$0.07 \pm 0.02$</td><td style='text-align: center; word-wrap: break-word;'>$0.05 \pm 0.01$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Subtotal</td><td style='text-align: center; word-wrap: break-word;'>$0.53 \pm 0.12$</td><td style='text-align: center; word-wrap: break-word;'>$0.12 \pm 0.03$</td><td style='text-align: center; word-wrap: break-word;'>$0.09 \pm 0.01$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Coarse calibration (ms)</td><td style='text-align: center; word-wrap: break-word;'>$0.17 \pm 0.01$</td><td style='text-align: center; word-wrap: break-word;'>$0.22 \pm 0.01$</td><td style='text-align: center; word-wrap: break-word;'>$0.11 \pm 0.01$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Fine calibration</td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'></td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Feature matching (ms)</td><td style='text-align: center; word-wrap: break-word;'>$0.05 \pm 0.02$</td><td style='text-align: center; word-wrap: break-word;'>$0.09 \pm 0.03$</td><td style='text-align: center; word-wrap: break-word;'>$0.04 \pm 0.02$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Iterations (#)</td><td style='text-align: center; word-wrap: break-word;'>$3 \pm 1$</td><td style='text-align: center; word-wrap: break-word;'>$4 \pm 1$</td><td style='text-align: center; word-wrap: break-word;'>$4 \pm 1$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Per iteration (ms)</td><td style='text-align: center; word-wrap: break-word;'>$0.03 \pm 0.01$</td><td style='text-align: center; word-wrap: break-word;'>$0.17 \pm 0.12$</td><td style='text-align: center; word-wrap: break-word;'>$0.02 \pm 0.01$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Subtotal (ms)</td><td style='text-align: center; word-wrap: break-word;'>$0.10 \pm 0.03$</td><td style='text-align: center; word-wrap: break-word;'>$0.68 \pm 0.08$</td><td style='text-align: center; word-wrap: break-word;'>$0.10 \pm 0.04$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Total (s)</td><td style='text-align: center; word-wrap: break-word;'>$0.67 \pm 0.14$</td><td style='text-align: center; word-wrap: break-word;'>$0.79 \pm 0.05$</td><td style='text-align: center; word-wrap: break-word;'>$0.58 \pm 0.05$</td></tr></table>

所有配置下的完整外参校准均可在1秒以内完成，这说明该流程在实践中既高效又稳定。

运行时间主要受特征提取阶段的影响，尤其是三维角点提取环节。具体而言，点云聚类是配置B中的主要瓶颈（耗时0.50秒），这与其更大且更密集的点集特性相符。配置C由于点密度更高且平面/边缘提取步骤更复杂，因此在三维处理上耗时也更长。相比之下，配置A的三维处理开销较轻。至于二维角点提取，配置A的速度明显慢于配置B/C，主要是因为它采用了分辨率更高的摄像头（见图11），这增加了三值化、边缘检测及角点评分的计算成本。

---

重要的是，报告中的标准差相对于均值而言较小，说明多次运行间的运行时间具有一致性。与数据处理相比，粗略校准和精细校准的计算开销可忽略不计：粗略校准仅需0.1–0.2毫秒，而精细优化在3–4次迭代后即可收敛，总耗时不到1毫秒。这一分析表明，EasyCalib的性能主要受前端特征提取（聚类和图像处理）的限制，而后端优化带来的开销极小，因此能够很好地适应迭代次数的增加。

### V. 结论

在本文中，我们提出了一种新型的人工标定靶标——EasyCalib，它专为相机与激光雷达传感器之间的外部标定而设计。凭借其结构化的几何形状和独特的颜色图案，我们进一步开发出一种完全自动化且鲁棒性强的标定算法，该算法无需人工分割或初始外部参数估计即可达到亚像素级精度。所提出的方法显著简化了标定流程，同时在复杂环境中仍能保证高精度和强鲁棒性。在未来的工作中，我们计划为热红外相机重新设计EasyCalib靶标，通过在三个平面板上集成加热元件来生成独特的热辐射图案，从而实现热成像相机与激光雷达之间的全自动标定。此外，将EasyCalib扩展到多激光雷达系统也将是一个重要方向。我们将利用不同激光雷达观测到的EasyCalib中心线特征，建立三维线对应关系的优化约束，以实现多激光雷达系统的自动外部标定。

## 致谢

本文中的数值计算得到了中国武汉武汉大学超级计算中心的超级计算机系统的支持。

## 参考文献

[^1]: D. Scaramuzza, A. Harati, and R. Siegwart, “Extrinsic self calibration of a camera and a 3D laser range finder from natural scenes,” in Proc. IEEE/RSJ Int. Conf. Intell. Robots Syst., Oct. 2007, pp. 4164–4169.

[^2]: G. Pandey, J. McBride, S. Savarese, and R. Eustice, “Automatic targetless extrinsic calibration of a 3D LiDAR and camera by maximizing mutual information,” in Proc. AAAI Conf. Artif. Intell., vol. 26, no. 1, Sep. 2021, pp. 2053–2059.

[^3]: K. Koide, S. Oishi, M. Yokozuka, and A. Banno, “General, single-shot, target-less, and automatic LiDAR-camera extrinsic calibration toolbox,” in Proc. IEEE Int. Conf. Robot. Autom. (ICRA), May 2023, pp. 11301–11307.

[^4]: C. Yuan, X. Liu, X. Hong, and F. Zhang, “Pixel-level extrinsic self calibration of high resolution LiDAR and camera in targetless environments,” IEEE Robot. Autom. Lett., vol. 6, no. 4, pp. 7517–7524, Oct. 2021.

[^5]: X. Liu, C. Yuan, and F. Zhang, “Targetless extrinsic calibration of multiple small FoV LiDARs and cameras using adaptive voxelization,” IEEE Trans. Instrum. Meas., vol. 71, pp. 1–12, 2022.

[^6]: Z. Lin et al., “SGCalib: A two-stage camera-LiDAR calibration method using semantic information and geometric features,” in Proc. IEEE Int. Conf. Robot. Autom. (ICRA), May 2024, pp. 14527–14533.

[^7]: A. Dhall, K. Chelani, V. Radhakrishnan, and K. M. Krishna, "LiDAR-camera calibration using 3D-3D point correspondences," 2017, arXiv:1705.09785.

[^8]: L. Zhou, Z. Li, and M. Kaess, “Automatic extrinsic calibration of a camera and a 3D LiDAR using line and plane correspondences,” in Proc. IEEE/RSJ Int. Conf. Intell. Robots Syst. (IROS), Oct. 2018, pp. 5562–5569.

[^9]: Y. Park, S. Yun, C. Won, K. Cho, K. Um, and S. Sim, “Calibration between color camera and 3D LiDAR instruments with a polygonal planar board,” Sensors, vol. 14, no. 3, pp. 5333–5353, Mar. 2014.

[^10]: J. Beltrán, C. Guindel, A. de la Escalera, and F. García, “Automatic extrinsic calibration method for LiDAR and camera sensor setups,” IEEE Trans. Intell. Transp. Syst., vol. 23, no. 10, pp. 17677–17689, Oct. 2022.

[^11]: C. Zheng and F. Zhang, "FAST-Calib: LiDAR-camera extrinsic calibration in one second," 2025, arXiv:2507.17210.

[^12]: T. Tóth, Z. Pusztai, and L. Hajder, “Automatic LiDAR-camera calibration of extrinsic parameters using a spherical target,” in Proc. IEEE Int. Conf. Robot. Autom. (ICRA), May 2020, pp. 8580–8586.

[^13]: J. Kümmerle, T. Kühner, and M. Lauer, “Automatic calibration of multiple cameras and depth sensors with a spherical target,” in Proc. IEEE/RSJ Int. Conf. Intell. Robots Syst. (IROS), Oct. 2018, pp. 1–8.

[^14]: M. Pereira, D. Silva, V. Santos, and P. Dias, “Self calibration of multiple LiDARs and cameras on autonomous vehicles,” Robot. Auto. Syst., vol. 83, pp. 326–337, Sep. 2016.

[^15]: X. Gong, Y. Lin, and J. Liu, “3D LiDAR-camera extrinsic calibration using an arbitrary trihedron,” Sensors, vol. 13, no. 2, pp. 1902–1918, Feb. 2013. [Online]. Available: <https://www.mdpi.com/1424-8220/13/2/1902>

[^16]: Y. Choi, J. H. Park, and H.-Y. Jung, “Sample pose augmentation and adaptive weight-based refinement for 3-D LiDAR-camera extrinsic calibration using an orthogonal trihedron,” IEEE Trans. Instrum. Meas., vol. 73, pp. 1–14, 2024.

[^17]: X. Zhao et al., “How challenging is a challenge? CEMS: A challenge evaluation module for SLAM visual perception,” J. Intell. Robotic Syst., vol. 110, no. 1, p. 42, Mar. 2024.

[^18]: Z. Lin, Z. Gao, B. M. Chen, J. Chen, and C. Li, “Accurate LiDAR-camera fused odometry and RGB-colored mapping,” IEEE Robot. Autom. Lett., vol. 9, no. 3, pp. 2495–2502, Mar. 2024.

[^19]: C. Wen et al., “Toward efficient 3-D colored mapping in GPS-/GNSS-denied environments,” IEEE Geosci. Remote Sens. Lett., vol. 17, no. 1, pp. 147–151, Jan. 2020.

[^20]: J.-Y. Han, N.-H. Perng, and H.-J. Chen, "LiDAR point cloud registration by image detection technique," IEEE Geosci. Remote Sens. Lett., vol. 10, no. 4, pp. 746–750, Jul. 2013.

[^21]: N. Liu, X. Zhang, L. Wang, L. Xu, and S. Zhu, “3-D point cloud object completion via RGB images with complex geometric topology in urban scenes,” IEEE Geosci. Remote Sens. Lett., vol. 22, pp. 1–5, 2025.

[^22]: R. Ishikawa, T. Oishi, and K. Ikeuchi, "LiDAR and camera calibration using motions estimated by sensor fusion odometry," in Proc. IEEE/RSJ Int. Conf. Intell. Robots Syst. (IROS), Oct. 2018, pp. 7342–7349.

[^23]: D. Zermas, I. Izzat, and N. Papanikolopoulos, “Fast segmentation of 3D point clouds: A paradigm on LiDAR data for autonomous vehicle applications,” in Proc. IEEE Int. Conf. Robot. Autom. (ICRA), May 2017, pp. 5067–5073.

[^24]: J. Canny, “A computational approach to edge detection,” IEEE Trans. Pattern Anal. Mach. Intell., vols. PAMI-8, no. 6, pp. 679–698, Nov. 1986.

[^25]: L. Ferraz, X. Binefa, and F. Moreno-Noguer, “Very fast solution to the PnP problem with algebraic outlier rejection,” in Proc. IEEE Conf. Comput. Vis. Pattern Recognit., Jun. 2014, pp. 501–508.

[^26]: L. Kneip, H. Li, and Y. Seo, “Upnp: An optimal o(n) solution to the absolute pose problem with universal applicability,” in Proc. Eur. Conf. Comput. Vis., 2014, pp. 127–142.

[^27]: C. Zheng et al., “Fast-livo2: Fast, direct LiDAR-inertial-visual odometry,” IEEE Trans. Robot., vol. 41, pp. 326–346, 2025.

![Image](images/c91be0bdac287777241eabd18b9e8d1bee931951e10d49a802871ddf0abe2a65.jpg)

周志宇（IEEE学生会员）于2024年在中国武汉武汉大学获得工学学士学位，目前在该校遥感信息工程学院攻读博士学位。

他的研究兴趣包括机器人技术、多传感器融合、SLAM、计算机视觉及其应用。

---

![Image](images/adbc2074529cfa6e105185475839dc16b320e3071809cd761f0c4aa38bc9510e.jpg)

高智（IEEE会员）分别于2002年和2007年在中国武汉武汉大学获得工学学士和博士学位。

2008年，他加入新加坡国立大学交互式与数字媒体研究所，担任研究员（A）及项目经理。2014年，他加入新加坡国立大学淡马锡实验室，担任研究科学家（A）及首席研究员。他目前是武汉大学遥感信息工程学院的全职教授。他已在IICV、IEEE Transactions on Pattern Analysis and Machine Intelligence、IEEE Transactions on Industrial Electronics、IEEE Transactions on Geoscience and Remote Sensing、CVPR、ECCV、ACCV、BMVC等顶级期刊和会议上发表了100多篇研究论文。自2019年起，他先后入选湖北省特聘教授计划和国家青年人才计划。他的研究兴趣包括计算机视觉、机器学习、遥感及其应用，尤其专注于智能系统的视觉技术以及基于视觉的智能系统。

曹敏于2000年在中国武汉武汉大学获得学士学位。

![Image](images/c9879548f6f5b4419f4271f2a7fd67f6ca2270ae2d59437abc85e7da90221813.jpg)

他目前是湖北工业大学教授，同时担任武汉光谷兆洋科技有限公司首席执行官。他是摄影测量与遥感领域的高级工程师。他的研究兴趣包括电力自动化、精密工程测量、公路检测以及智能交通系统。

王静石目前在中国上海上海交通大学攻读博士学位。

![Image](images/05f27d7a7797a13e1c5f000d580eb06f2471a3443789e8bb8dc9a57fb4e83644.jpg)

他已在各类期刊和会议上发表或合作发表了超过15篇论文，并拥有五项以上已授权的专利。他的研究方向包括传感器信息处理与多源信息融合。

王先生因其研究贡献曾两次获得省部级奖项。

![Image](images/edaa4575212aca9396b29473e4a4eadbd627f28cf0a738a248de1d120728b25b.jpg)

林志鹏于2017年和2020年分别在中国武汉武汉大学获得测控技术与仪器专业学士学位以及仪器科学与技术专业硕士学位。他目前在香港中文大学工程学院机械与自动化工程系攻读自动化专业博士学位。

他的研究方向包括计算机视觉、深度学习、点云处理以及SLAM技术。

![Image](images/5e5ab3c64dc84acbe26005e9ffa1095d43011980ff26eb23458ec3aa4f7c9ded.jpg)

杨文斌于2024年在中国武汉武汉大学获得工学学士学位，目前在该校遥感与信息工程学院攻读硕士学位。

他的研究方向包括移动机器人、路径规划及其应用。

![Image](images/86487369357574ffba4c4bfc2c5594b464c762076a0448d2ae054b0d1e351f2a.jpg)

王晓楠于2014年在中国武汉武汉大学遥感与信息工程学院获得博士学位。

他的研究方向为近景摄影测量与计算机视觉，主要研究课题是手持式三维扫描仪的数据采集与处理。

![Image](images/bd5a87c36a01c8953d2661792397bf7de35fd9147b078b22c0a154a6a764441e.jpg)

李勇（IEEE会员）于2019年在中国上海上海交通大学获得博士学位。

2019年至2021年，他在香港城市大学计算机科学系担任博士后研究员。2014年至2016年，他曾作为访问学者在美国加州大学圣地亚哥分校生物医学信息学系进修。他目前任职于上海航天控制技术研究所及上海市航空航天智能控制技术重点实验室。他的研究方向包括压缩感知、稀疏表示以及图像/信号处理。

![Image](images/9093afd39cfe81d12533ceb261e5b43c69a346d6459a7f46d16c32f736aed55a.jpg)

张启元于2024年在中国武汉武汉大学遥感与信息工程学院获得博士学位。

他目前就职于海克斯康旗下的武汉中科测绘科技有限公司。他的研究方向包括多传感器融合、SLAM、移动测绘以及三维重建。
