
# EasyColor：无需精确时间同步与外参标定即可实现的反射率辅助密集点云RGB着色方法

周志宇 $^{ID}$，IEEE学生会员；高智 $^{ID}$；李勇 $^{ID}$，IEEE会员；甄航 $^{ID}$，IEEE学生会员

摘要—精确的RGB彩色点云图是3D感知、定位与导航等任务可靠的 데이터基础，也是紧凑的多传感器表征形式。因此，相机与激光雷达之间的高效精准对齐至关重要。然而，现有大多数颜色映射方法都需要精确的时间同步和校准良好的外参，这类着色框架往往难以实际应用。在本文中，我们提出了EasyColor这一精准着色方法，它综合利用激光雷达反射率与视觉约束，有效消除了对两种传感器之间时间同步和外参标定的需求。我们的方法采用即插即用框架：给定图像序列和预先构建的点云图后，我们首先利用激光雷达反射率的强度变化生成2D反射率图像序列；随后通过跨域匹配网络结合透视n点（PnP）求解器，实现反射率图像与相机图像序列的对齐。为了进一步优化相机位姿并确保光度一致性，我们融合了视觉极线几何约束与PnP约束。这种联合优化不仅能生成精度高且光度一致的彩色地图，还能得到优化的相机位姿。大量实验表明，EasyColor无需同步的激光雷达与相机数据及外参，即可实现精准的点云着色。为方便后续研究，经过审稿通过后我们将公开EasyColor及相关数据集。

索引词—定位、建图、传感器融合。

## I. 引言

在自动驾驶与机器人领域，RGB彩色点云图作为可靠的数据基础和紧凑的多传感器表征形式，对3D感知、定位与导航等任务至关重要 [^1]，[^2]，[^3]。过去二十年间，基于单目相机的密集SLAM方法可直接生成彩色地图；但由于视觉里程计的鲁棒性较差且精度有限，最终生成的彩色地图往往不够精准且存在不一致性 [^4]，[^5]。近年来，由于激光雷达能直接提供精确的环境深度信息，基于激光雷达的点云图生成方法逐渐成为主流 [^6]，[^7]。因此，将相机的颜色纹理信息与激光雷达点云相结合以生成精准的彩色点云图，已成为极具前景的研究方向。

因此，为了高效融合相机与激光雷达数据，一些研究尝试将视觉传感器与现有的激光雷达建图系统相结合，从而在提高里程计精度与鲁棒性的同时实现实时彩色移动建图 [^1], [^8]。不过，这些方法通常需要精确的时间同步以及经过良好标定的外参值，以确保相机与激光雷达数据之间的准确对齐（由于这两种传感器的采集速率往往差异显著，实现精确时间同步更为困难）。为避免依赖精确时间同步，已有多项研究在后处理阶段探索离线点云着色方法，即通过将图像序列与密集点云地图对齐来实现。Colmap-PCD [^9] 通过初始视觉里程计获取粗略的3D点云，并与激光雷达点云地图建立点面特征关联以实现数据融合。Koide [^10] 则基于激光雷达反射率生成2D图像，通过与相机图像进行点对点匹配来实现更稳健的对齐。除了上述基于特征的方法外，OmniColor [^11] 通过联合优化视觉里程计与激光雷达里程计来生成高质量的彩色点云地图。不过，这些方法通常都需要可靠的初始相机位姿。尽管Koide利用激光雷达反射率信息实现了相机与激光雷达的点对点对齐，但它并未考虑图像序列间的视觉约束；而基于运动的方法（如OmniColor）又未考虑特征对应关系，因此难以达到高精度的对齐效果，且脆弱的视觉里程计会给着色结果引入噪声与不一致性。

在本文中，我们提出了EasyColor——一种精确且鲁棒的点云着色方法，它综合利用跨域反射率对齐与帧内视觉约束，有效消除了对时间同步和外参标定的需求。我们的方法采用即插即用模式：给定图像序列和预先构建的点云地图后，我们首先利用激光雷达强度的变化生成2D反射率图像序列。随后，借助跨域匹配网络与透视n点（PnP）求解器，将反射率图像与图像序列对齐。为了

---

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

<div style="text-align: center;">Fig. 1. Colorizing results on "CBD_Building_03" sequence of FastLIVO2 dataset [^1]. Our proposed plug-and-play framework for point cloud colorizing requires only reflectivity point cloud map and image sequence as input.</div>

进一步优化相机位姿并确保光度一致性，我们利用相邻相机帧间的光度连续性引入了视觉极线几何约束。我们的联合优化过程能够生成既精确又具有光度一致性的彩色点云地图，如图1所示。本研究的主要贡献总结如下：

- 我们提出了EasyColor这一即插即用框架，仅需预先构建的点云地图和图像序列即可实现精确的点云着色，无需时间同步和外参标定。

- 我们提出了一种有效的联合优化方法，该方法利用跨域反射率对齐与帧内视觉约束，显著提升了颜色映射的一致性与相机位姿精度。

- 在公开基准测试集及我们自行采集的数据集上进行的大量实验表明，与现有最先进方法相比，EasyColor在着色精度与一致性方面表现更优，且兼容大多数激光雷达-相机传感器组合。

### II. 相关工作

在此，我们简要介绍两类相机-激光雷达标定方法，包括它们的实现细节以及各自的优缺点。

### A. 基于特征的相机-激光雷达对齐

实现两种本质上不同的传感器数据对齐的最简单方法，就是检测并关联两类数据中共同存在的目标特征。近年来，多项优秀的外部标定研究通过提取并匹配点云和图像中的边缘特征，实现了像素级的相机-激光雷达对齐[^12]、[^13]。这些方法已被广泛采纳为自动驾驶系统预处理阶段成熟的标定模块。Colmap-PCD[^9]与我们提出的方法类似，它同样以点云地图和粗略的初始相机位姿作为输入，通过推导2D-3D线对应关系来迭代最小化重投影误差，从而实现精确的相机位姿估计。然而，仅依赖几何边缘特征会导致这类方法在无结构或纹理匮乏的环境中（如隧道、走廊和平整墙面）可靠性不足，限制了其在任意场景下用于在线对齐的应用能力。此外，由于上述方法依赖精确的初始相机位姿，因此用户友好性较差，实际应用难度也更高。

为了摆脱对精确初始位姿的依赖，同时提升对齐算法在恶劣环境下的鲁棒性，部分研究开始探索利用激光雷达与相机数据间的互信息，例如激光雷达的反射强度与相机图像的照明纹理。Pandey[^14]、[^15]通过最大化激光雷达反射率与图像光度特征间的互信息，提升了激光雷达-相机对齐的鲁棒性。Koide[^10]则直接从激光雷达反射信息中生成类2D图像的数据，通过与RGB图像进行点对点匹配来实现稳健的配准。不过，这些方法仅考虑了两种传感器单帧数据间的约束，并未纳入图像序列中连续帧之间的极线约束。

### B. 基于运动的相机-激光雷达对齐

近期基于运动的相机-激光雷达对齐技术取得了进展，能够高效整合视觉与几何信息以实现高质量的点云着色。Ve等人[^16]提出了一种离线的即插即用式着色方法，但该方法通过插值获取相机位姿，精度较低。OmniColor[^11]通过基于两者的共视区域联合优化相机与激光雷达位姿，实现了精准的点云着色。不过，这两种方法都缺乏两种传感器间的特征级对齐。FastLIVO2[^1]和R3LIVE[^17]等SLAM方法集成了相机、激光雷达和IMU传感器，以提升定位精度与鲁棒性，同时顺带生成彩色点云。然而，若没有严格的相机-激光雷达时间同步，这些方法无法得到精准的着色结果。为了结合跨域特征对齐与模态内帧间约束来提升相机与激光雷达的对齐精度，我们从[^10]和[^11]中汲取灵感：具体而言，我们构建基于反射率的跨域约束以实现模态间的特征对齐，同时建立连续相机帧间的极线约束，从而确保整个图像序列对齐过程中的几何一致性。

### III. 问题定义

在本节中，我们定义了点云着色的概念并介绍了相关符号。设 $\mathcal{L} = \{(L \mathbf{1}_m, r_m)\}_{m=1}^{N_L}$ 为输入的激光雷达点云，其中 $L \mathbf{1}_m \in \mathbb{R}^3$ 表示三维坐标，$r_m \in \mathbb{R}$ 表示传感器通过官方ROS驱动程序测得的反射率（无需预处理）。

---

![Image](images/470e0e563675a3d93517da0d0435c8e81f3ffdae29d0691304e6d4a859b99cab.jpg)

<div style="text-align: center;">Fig. 2. Overview of the EasyColor framework. Given a pre-built point cloud map and an image sequence, we can get optimized camera poses and colorized point cloud map. The main technical modules include reflectivity image generation, cross-domain image matching, camera pose joint optimization, and point cloud colorization.</div>

设 $\mathcal{I} = \{\mathbf{I}_i\}_{i=1}^{N_I}$ 为输入的图像序列，$^W\mathbf{T}_{C_i} = (^W\mathbf{R}_{C_i},^W\mathbf{t}_{C_i}) \in SE(3)$ 为相机位姿。我们假设采集过程中场景是静止的。

该问题定义如下：给定输入图像序列 $\mathcal{I}$、激光雷达点云地图 $\mathcal{L}$（一般的SLAM算法即可满足点云地图的精度要求），以及粗略的激光雷达-相机外参值 $^C\hat{\mathbf{T}}_L$，我们的目标是估算最优相机位姿 $^W\mathbf{T}_{C_i}$，并用相机图像序列 $\mathcal{L}$ 中的对应RGB信息对点云地图 $\mathcal{I}$ 进行着色。借助相机内参 $\mathbf{K}$，相机位姿能将密集激光雷达点云地图中的三维点投影到二维图像平面上。与那些需要时间和空间同步的图像及激光雷达序列的激光雷达-相机里程计方法不同，EasyColor仅需预先构建好的激光雷达地图和图像序列即可运行，无需严格的时间同步或高精度的外参。

### 四、我们的EASYCOLOR框架

接下来我们将详细介绍所提出的EasyColor框架的细节，其流程如图2所示。输入数据包括预先构建的点云地图、图像序列以及初始相机位姿。主要技术模块包括点云反射率图像生成、跨域图像匹配、相对位姿联合优化以及点云着色。

### A. 反射率图像生成

为了生成用于稳健的激光雷达-相机关联的二维反射率图像序列，我们根据公式(1)将激光雷达点 $l_{m}$ 投影到图像平面上。

 $$ \mathbf{p}_{m}=\begin{cases}{\Pi\left(\mathbf{K},{^{C}\hat{\mathbf{T}}}_{L}{^{L}}l_{m}\right),}&{i=1,2}\\ {\Pi\left(\mathbf{K},{^{C_{i-1}}\bar{\mathbf{T}}}_{W}{^{L}}l_{m}\right),}&{i>2}\\ \end{cases} $$

其中，$\mathbf{p}_m \in \mathbb{R}^2$ 是对应图像平面中第 m 个激光雷达点的像素坐标$\mathbf{P}_i$，而$\Pi(\mathbf{K}, \cdot)$ 则是针孔投影函数（利用相机内参矩阵$\mathbf{K}$），该函数可将激光雷达坐标系中的三维点映射到图像平面的二维像素坐标。EasyColor会处理两张连续的RGB图像以及点云图。

![Image](images/ef0191dee271e2aa6c4b40cdcaf095e32e54a86e0544727ca55020bdad6933c5.jpg)

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

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

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

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

<div style="text-align: center;">Fig. 3. Details of reflectivity image generation. (a) Camera image of the scene. (b) Original reflectivity image, (c) Reflectivity image after histogram equalization. (d) Reflectivity image after gamma correction.</div>

由于激光雷达和相机通常是刚性连接的，对于初始帧 $\mathbf{I}_1$ 和 $\mathbf{I}_2$，我们可以利用粗略的外参直接获得反射率图像 $\mathbf{P}_1$ 和 $\mathbf{P}_2$。对于后续的图像帧，则可利用前一帧优化得到的相机位姿 $\mathbf{T}_{C_{i-1}}$ 来生成反射率图像。为避免多个激光雷达点被投影到同一个像素上，我们为每个像素仅保留深度最小的激光雷达点。

投影完成后，我们便得到了与相机图像分辨率及序列长度均相同的反射率图像序列 $\mathcal{P} = \{\mathbf{P}_i | i = 1 \ldots N_I\}$。如图3所示，原始反射率图像可能存在孔洞和噪声，且对比度往往较低。为解决这一问题，我们使用直方图均衡化和伽马校正（$\gamma = 0.5$）来增强图像质量，从而为其后续的激光雷达-相机特征关联提供可靠基础，如图3所示。

### B. 跨域图像匹配

得益于高质量反射率图像序列的生成（详见第IV-A节），我们无需再…

---

![Image](images/900d311998cd50611eb8da63d4cecab8ded6c4f5dad5830f0e5f1da464e27dcc.jpg)

<div style="text-align: center;">Fig. 4. Comparison of different cross-domain image matching methods.</div>

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

<div style="text-align: center;">Fig. 5. Details of our proposed camera pose joint optimization framework.</div>

我们直接对相机图像和点云这两种差异显著的数据模态进行特征关联。取而代之的是，我们通过间接关联反射率和相机图像序列来建立可靠的激光雷达-相机关联对。尽管仍存在域间隙，但由于两者均为二维图像，我们可以利用现有的跨域图像匹配网络来实现稳健的特征匹配。在本研究中，我们比较了几种主流的图像匹配方法，包括SuperGlue [^18]、LoFTR [^19]、XFeat [^20]以及MINIMA [^21]。我们在收集的数据集上评估了这些匹配方法的性能，结果如图4所示。

我们发现MINIMA [^21]在准确性和鲁棒性之间提供了最佳平衡，即便在特征视觉上难以区分时也能产生可靠的匹配结果。因此，我们采用MINIMA进行跨域匹配。在生成反射率图像时，我们会保留索引图，以便将二维-二维匹配转换为二维-三维对应关系。

### C. 相机位姿联合优化

提取二维-三维对应关系后，PnP可以直接提供精确的相机-激光雷达相对位姿估计。然而，仅依赖PnP得到的位姿虽然在空间上平滑，却不足以实现精确的上色，从而导致帧与帧之间出现细微的颜色不一致现象。为解决这一问题，EasyColor采用了一种联合优化方法，将相机-激光雷达PnP约束与帧间极线约束相结合，如图5所示。这种联合优化的公式进一步强化了光度一致性，从而生成更加连贯的彩色点云。

激光雷达-相机PnP约束：给定通过跨域匹配获得的第i帧的二维-三维对应关系$\{\{\mathbf{u}_j^i, \mathbf{X}_j^i\}\}_{j=1}^{N_c}$以及第$\{\{\mathbf{u}_k^{i+1}, \mathbf{X}_k^{i+1}\}\}_{k=1}^{N_c}$帧的对应关系$i+1$，其中$\mathbf{X}_k^{(i)} \in \mathbb{R}^3$表示世界坐标系W中的三维点，$\mathbf{u}_k^{(i)} \in \mathbb{R}^2$为其对应的图像坐标。设两个相机位姿分别为$W_{C_i}$、$W_{C_{i+1}} \in SE(3)$，其逆矩阵记为$C_i\mathbf{T}_W = (W_{C_i})^{-1}, C_{i+1}\mathbf{T}_W = (W_{C_{i+1}})^{-1}$。结合内参矩阵$\mathbf{K}$，PnP残差定义为：

 $$ \mathcal{E}_{\mathrm{pnp}}^{i}=\sum_{j=1}^{N_{c}^{i}}\Big\|\mathbf{u}_{j}^{i}-\Pi\Big(\mathbf{K},~^{C_{i}}\mathbf{T}_{W}\tilde{\mathbf{X}}_{j}^{i}\Big)\Big\|_{\boldsymbol{\Sigma}_{\mathrm{pnp}}^{i}}^{2} $$

 $$ \mathcal{E}_{\mathrm{pnp}}^{i+1}=\sum_{k=1}^{N_{c}^{i+1}}\Big\|\mathbf{u}_{k}^{i+1}-\Pi\Big(\mathbf{K},C_{i+1}\mathbf{T}_{W}\tilde{\mathbf{X}}_{k}^{i+1}\Big)\Big\|_{\boldsymbol{\Sigma}_{\varepsilon_{\mathrm{pnp}}^{i+1}}}^{2} $$

其中$\tilde{\mathbf{X}} = [\mathbf{X}^\top, 1]^\top$为齐次三维点，而$\|\mathbf{e}\|_{\Sigma}^2 = \mathbf{e}^\top \boldsymbol{\Sigma}^{-1} \mathbf{e}$。

基于极线几何的相对旋转：为确保连续帧之间的几何一致性，我们根据视觉特征对应关系$\mathbf{E}_{i,i+1}$来估计本质矩阵$\{(\mathbf{u}_l^i, \mathbf{u}_l^{i+1})\}_{l=1}^{N_v}$。利用归一化坐标$\tilde{\mathbf{x}}_l^i = \mathbf{K}^{-1}\tilde{\mathbf{u}}_l^i$、$\tilde{\mathbf{x}}_l^{i+1} = \mathbf{K}^{-1}\tilde{\mathbf{u}}_l^{i+1}$，我们有：

 $$ \begin{array}{r}{\tilde{\mathbf{x}}_{l}^{i+1\top}\mathbf{E}_{i,i+1}\tilde{\mathbf{x}}_{l}^{i}=0,\quad\mathbf{E}_{i,i+1}=[\mathbf{t}_{\mathrm{r e l}}]_{\times}\mathbf{R}_{\mathrm{r e l}}}\end{array} $$

通过分解可得到相对旋转$\mathbf{R}_{\text{rel}} \in SO(3)$和平移方向$\mathbf{t}_{\text{rel}} \in \mathbb{S}^2$。由于平移量仅能确定到比例尺度，因此我们仅将$\mathbf{R}_{\text{rel}}$作为可靠的约束条件。设由两个全局位姿推导出的相对旋转为$C_{i+1} \mathbf{R}_{C_i} = W \mathbf{R}_{C_{i+1}}^\top W \mathbf{R}_{C_i}$。此时旋转一致性误差定义为：

 $$ \begin{array}{r}{\mathcal{E}_{\mathrm{r o t}}=\left\|\mathrm{L o g}\left(\mathbf{R}_{\mathrm{r e l}}^{\top C_{i+1}}\mathbf{R}_{C_{i}}\right)\right\|_{\mathbf{\Sigma}\varepsilon_{\mathrm{r o t}}}^{2}}\end{array} $$

其中$\mathrm{Log}: SO(3) \to \mathbb{R}^3$表示李代数对数映射，用于以三维向量的形式衡量旋转差异。

总体目标：联合优化问题可表述为：

 $$ \min_{\boldsymbol{\xi}_{i},\boldsymbol{\xi}_{i+1}}\ \mathcal{E}_{pnp}^{i}+\mathcal{E}_{pnp}^{i+1}+\lambda\ \mathcal{E}_{rot} $$

其中 $\boldsymbol{\xi}_{i}, \boldsymbol{\xi}_{i+1} \in \mathbb{R}^6$ 是 $SE(3)$、$^W\mathbf{T}_{C_i}^w$ 和 $^W\mathbf{T}_{C_{i+1}}^w$ 的李代数参数化形式，$\lambda > 0$ 是一个权重因子。该优化问题通过列文伯格-马夸特算法求解。为简化起见，协方差矩阵 $(\boldsymbol{\Sigma}_{\mathcal{E}_{pmp}^i}, \boldsymbol{\Sigma}_{\mathcal{E}_{pro1}^i}, \boldsymbol{\Sigma}_{\mathcal{E}_{rot}^i})$ 均被设为单位矩阵。由于不同残差项具有不同的数值尺度，因此采用 $\lambda$ 来平衡它们的相对贡献。实践中我们设定 $\lambda = 1$，该值经实验验证能够很好地平衡像素级的PnP重投影误差（通常为0.01–0.1像素）与李代数旋转差异（通常为0.01–0.1弧度）。

这种联合优化策略能够确保估计出的相机位姿既与激光雷达-相机对应关系一致，又能保留帧间的视觉几何结构。

关键帧选择机制：为避免任何阶段中的异常值对最终优化结果产生影响，我们设计了关键帧选择机制，确保只有符合条件的帧对才会被送入联合优化模块以及后续的点云着色模块。我们对……

---

候选帧对 $(i, i+1)$ 的可靠性通过复合内点比来衡量。

 $$ S_{i,i+1}~=~\frac{N_{i n l i e r}^{i}+N_{i n l i e r}^{i+1}}{N_{c}^{i}+N_{c}^{i+1}} $$

其中 $N_{inlier}^{(\cdot)}$ 是PnP-RANSAC返回的内点数量，$N_{c}^{(\cdot)}$ 是每帧对应的2D-3D对应点总数。当且仅当 $S_{i,i+1} \geq \tau_s$ 时，该帧对才会被接受为关键帧对，此处 $\tau_s \in [0,1]$ 是预先设定的可靠性阈值（我们将其设为0.6）。

### D. 点云着色

获得优化后的相机位姿后，我们就可以将激光雷达点投影到每个相机帧的图像平面上，从而得到对应的像素坐标。然而，由于激光雷达和相机的物理机制不同，直接的3D到2D投影可能会导致处于不同深度的多个激光雷达点对应到同一个像素上，进而引发颜色溢出现象。此外，受相机分辨率限制，具有深度不连续性的激光雷达边缘点很容易被错误地投影到不恰当的像素坐标上（即便相机位姿非常精确）。为解决这些问题，我们提出了两种策略：颜色溢出检测和不可靠边缘区域移除。具体细节如下：

颜色溢出检测：给定优化后的相机位姿，我们将激光雷达点 $\{L\mathbf{l}_m\}_{m=1}^{N_L}$ 投影到图像平面上，得到一组投影点 $\mathcal{P} = \{(\mathbf{p}_m, d_m, \mathrm{idx}_m)\}_{m=1}^N$，其中 $\mathbf{p}_m = (u_m, v_m) \in \mathbb{R}^2$ 是通过 $\mathbf{p}_m = \mathbf{\Pi}(\mathbf{K}^W \mathbf{T}_{C_i}^L \mathbf{l}_m)$ 得到的像素坐标，$d_m \in \mathbb{R}^+$ 是相机坐标系下的深度，$\mathrm{idx}_m$ 则是激光雷达图中原始点的索引。

我们为每个投影点定义一个邻域函数。对于给定投影位置 $\mathbf{p}$ 及半径 r，邻域定义为 $N(p, r) = \{(u', v') \in \mathbb{Z}^2 \mid |u' - u| \leq r, |v'| - v| \leq r\}$。对于每个像素位置 $\mathbf{q} = (u', v')$，我们维护一个深度缓冲区 $D: \mathbb{Z}^2 \to \mathbb{R}^+$ 和点索引缓冲区 $I: \mathbb{Z}^2 \to \mathbb{N}$。为确保计算效率，我们采用分块并行处理策略，将图像划分为多个块 $\mathcal{B} = \{B_k\}_{k=1}^K$。对于每个投影点 $\mathbf{p}_m$ 和每个块 $B_k$，我们仅更新交集区域 $\mathcal{R}_k(\mathbf{p}_m) = B_k \cap \mathcal{N}(\mathbf{p}_m, r)$ 内的像素对应的深度缓冲区。深度缓冲区的更新规则如下：

 $$ D(\mathbf{q})=\min(D(\mathbf{q}),d_{m})\quad for\mathbf{q}\in\mathcal{R}_{k}(\mathbf{p}_{m}) $$

一旦找到更近的点，我们也会更新点索引缓冲区 $I(\mathbf{q}) = \mathrm{idx}_{m}$。这样就能确保每个像素都能从几何位置上最近的激光雷达点获取颜色信息，既防止了颜色溢出现象，又能通过并行块处理来保持计算效率。

不可靠边缘区域去除：对于深度缓冲区D中的每个像素位置 $\mathbf{q} = (x, y)$，我们计算深度梯度度量值 $G(\mathbf{q})$，该度量值会考虑两种不连续性：物体边界和天空区域（具体细节见图6）。首先，我们计算 $3 \times 3$ 邻域内的局部最大深度梯度：

 $$ G_{l o c a l}(\mathbf{q})=\max_{(\delta x,\delta y)\in\mathcal{N}_{3\times3}}|D(\mathbf{q})-D(\mathbf{q}+(\delta x,\delta y))| $$

其中 $\mathcal{N}_{3\times3} = \{(\delta x, \delta y) | |\delta x|, |\delta y| \leq 1, (\delta x, \delta y) \neq (0, 0)\}$ 代表 $3\times 3$ 邻域。其次，我们检测天空区域。

![Image](images/e57f25edc594ebeaa4ebd8ba75a5f92dd79abddbc26c0d26fa1be6355a2ccd1b.jpg)

<div style="text-align: center;">Fig. 6. Illustration of two types of unreliable edge region detection.</div>

![Image](images/de26aed2801dc743b99be1cc81d436ee54c29a8a857870408c83d85ef33a2d29.jpg)

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

![Image](images/ecf5dbe1717e42f86ad5971e48f690870f64b03fcd527e3aa000689ad5b797a3.jpg)

![Image](images/c374cc65775d961d0450c01a08c2394628333f65f3ea681dd059988421bc186e.jpg)

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

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

<div style="text-align: center;">Fig. 7. Edge detection results. (a) Camera image. (b) Depth image generated by EasyColor. (c) Detected unreliable edge regions (blue line is sky edge, red line is object edge).</div>

![Image](images/da48204e371e49a448b61fcda4162d558a7d1df710418761b149d5c8b9ef6115.jpg)

![Image](images/255975464be9c12f29575bbec80c0177496ecfcf8141320a11c70fc86165a24d.jpg)

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

![Image](images/9e351fa9a465bcb30bd61065e2604cd06f25ec323c6b01d5dd33b26af555583c.jpg)

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

<div style="text-align: center;">Fig. 8. The left figure shows reliable scores calculation. (a) shows the results without keyframe optimization. (b) shows the optimized result.</div>

通过计算更大邻域 $\mathcal{N}_{k \times k}$ 内无效深度像素的比例来实现，该邻域的内核大小设为k（此处我们设定 $k = 10$）：

 $$ R_{s k y}(\mathbf{q})=\frac{|\{(\delta x,\delta y)\in\mathcal{N}_{10\times10}|D(\mathbf{q}+(\delta x,\delta y))=\infty\}|}{|\mathcal{N}_{10\times10}|} $$

最终的梯度度量值结合了这两个部分：

 $$ G(\mathbf{q})=\max\left(G_{l o c a l}(\mathbf{q}),\alpha\cdot\mathbb{I}(R_{s k y}(\mathbf{q})>\tau_{r})\right) $$

其中 $\mathbb{I}(\cdot)$ 是指示函数，$\tau_r$ 是无效比例阈值，$\alpha$ 是权重因子。梯度值超过深度不连续阈值 $\tau_d$ 的像素会被标记为不可靠的边缘区域，从而被排除在着色过程之外（边缘检测结果见图7）。这种策略能有效识别出包括物体边界和天空边缘在内的问题区域，确保只有可靠的点-像素对应关系才会被用于最终的着色。

### V. 实验结果

为了全面验证EasyColor的性能，我们在公开数据集（KITTI-360 [^22]、FAST-LIVO2 [^1] 和 MaRSLVIG [^23]）以及我们自行采集的数据集上进行了大量的定量和定性分析（图9展示了我们的传感器套件，其中旋转式激光雷达能帮助我们高效获取密集点云）。

---

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

<div style="text-align: center;">TRANSLATION ERROR (%) AND ROTATION ERROR (DEGREE/M) OF DIFFERENT METHODS ON THE KITTI-360 DATASET [^22]. BEST RESULTS IN BOLD.</div>

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td style='text-align: center; word-wrap: break-word;'>Method</td><td style='text-align: center; word-wrap: break-word;'>$0000^{{1}}$</td><td style='text-align: center; word-wrap: break-word;'>0002</td><td style='text-align: center; word-wrap: break-word;'>0003</td><td style='text-align: center; word-wrap: break-word;'>0004</td><td style='text-align: center; word-wrap: break-word;'>0005</td><td style='text-align: center; word-wrap: break-word;'>0006</td><td style='text-align: center; word-wrap: break-word;'>0007</td><td style='text-align: center; word-wrap: break-word;'>0008</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Colmap-PCD</td><td style='text-align: center; word-wrap: break-word;'>$-{}^{{2}}$</td><td style='text-align: center; word-wrap: break-word;'>-</td><td style='text-align: center; word-wrap: break-word;'>0.99 / 0.0107</td><td style='text-align: center; word-wrap: break-word;'>-</td><td style='text-align: center; word-wrap: break-word;'>2.29 / 0.0097</td><td style='text-align: center; word-wrap: break-word;'>2.61 / 0.0140</td><td style='text-align: center; word-wrap: break-word;'>2.08 / 0.0116</td><td style='text-align: center; word-wrap: break-word;'>-</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>EasyColor (w/o $enhance^{{3}}$)</td><td style='text-align: center; word-wrap: break-word;'>0.88 / 0.0027</td><td style='text-align: center; word-wrap: break-word;'>0.28 / 0.0015</td><td style='text-align: center; word-wrap: break-word;'>0.22 / 0.0012</td><td style='text-align: center; word-wrap: break-word;'>0.32 / 0.0017</td><td style='text-align: center; word-wrap: break-word;'>0.25 / 0.0014</td><td style='text-align: center; word-wrap: break-word;'>0.29 / 0.0016</td><td style='text-align: center; word-wrap: break-word;'>0.23 / 0.0013</td><td style='text-align: center; word-wrap: break-word;'>0.27 / 0.0015</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>EasyColor (w/o $epipolar^{{4}}$)</td><td style='text-align: center; word-wrap: break-word;'>0.11 / 0.0016</td><td style='text-align: center; word-wrap: break-word;'>0.21 / 0.0081</td><td style='text-align: center; word-wrap: break-word;'>0.17 / 0.0058</td><td style='text-align: center; word-wrap: break-word;'>0.24 / 0.0073</td><td style='text-align: center; word-wrap: break-word;'>0.19 / 0.0092</td><td style='text-align: center; word-wrap: break-word;'>0.34 / 0.0049</td><td style='text-align: center; word-wrap: break-word;'>0.18 / 0.0009</td><td style='text-align: center; word-wrap: break-word;'>0.20 / 0.0011</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>EasyColor (w/o $keyframe^{{5}}$)</td><td style='text-align: center; word-wrap: break-word;'>1.91 / 0.0279</td><td style='text-align: center; word-wrap: break-word;'>1.09 / 0.0744</td><td style='text-align: center; word-wrap: break-word;'>1.11 / 0.0672</td><td style='text-align: center; word-wrap: break-word;'>0.71 / 0.0099</td><td style='text-align: center; word-wrap: break-word;'>2.72 / 0.0803</td><td style='text-align: center; word-wrap: break-word;'>1.53 / 0.0209</td><td style='text-align: center; word-wrap: break-word;'>1.20 / 0.0592</td><td style='text-align: center; word-wrap: break-word;'>2.37 / 0.0971</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>EasyColor (Full)</td><td style='text-align: center; word-wrap: break-word;'>0.16 / 0.0008</td><td style='text-align: center; word-wrap: break-word;'>0.19 / 0.0010</td><td style='text-align: center; word-wrap: break-word;'>0.15 / 0.0007</td><td style='text-align: center; word-wrap: break-word;'>0.22 / 0.0012</td><td style='text-align: center; word-wrap: break-word;'>0.11 / 0.0047</td><td style='text-align: center; word-wrap: break-word;'>0.20 / 0.0011</td><td style='text-align: center; word-wrap: break-word;'>0.16 / 0.0008</td><td style='text-align: center; word-wrap: break-word;'>0.18 / 0.0010</td></tr></table>

$^{1}$ “0000”指的是KITTI-360数据集中的“2013_05_28_drive_0000”序列。$^{2}$ 着色系统无法在该序列上运行。

$^{3}$ 反射率图像增强（直方图与伽马校正）。$^{4}$ 视觉极线约束。$^{5}$ 关键帧选择机制。

![Image](images/f34e4270149af7201233cd436850853332ee0800a00241db6b61ea626bcb28a8.jpg)

<div style="text-align: center;">Fig. 9. Our mobile mapping system. It consists of a Velodyne VLP-16 LiDAR mounted on motor platform and an omnidirectional camera.</div>

我们将全景图像进行畸变校正，并将其视为针孔图像。在公开数据集中，相机和激光雷达的采样频率均为10 Hz，我们在所有实验中都设置了0.1秒的时间偏移，以验证EasyColor并不要求严格的时间同步。我们自行搭建的系统拍摄图像的频率为2 Hz，激光雷达为10 Hz。若能从CAD图纸中获取粗略的外参数据，我们就采用这些数据；否则就使用官方提供的外参文件。需要注意的是，LVBA [^24] 和 OmniColor [^11] 并未公开发布，因此未纳入直接对比范畴。我们对运行时间进行了分析，并对所有基准方法都做了参数调优。所有实验均在配备Intel Core i9-12900KF（3.2 GHz）处理器和32 GB内存的电脑上开展。

### A. 定量分析

在本节中，我们将优化后的相机位姿与KITTI-360数据集中的真实相机位姿进行对比，通过评估相机位姿的精度来间接衡量点云着色的准确性。我们还计算了重投影图像与对应相机图像之间的PSNR和SSIM值，以便进行更直接的定量和视觉评估。

姿态精度：如表I所示，EasyColor在几乎所有序列中实现的平移和旋转误差都明显低于Colmap-PCD，其中平移误差从超过2%降低至0.1–0.3%范围内，旋转误差则从$10^{-2}$度/降至约$10^{-3}$度/。消融实验结果表明这两个模块都是必不可少的：若移除反射率增强模块（包括直方图均衡化和伽马校正），误差会升高30–50%；而若舍弃极线约束，旋转精度的下降幅度甚至可达一个数量级。关键帧选择机制能使姿态精度提升一个数量级。通过整合这两个模块，完整版模型能始终维持最低的误差水平，这一结果充分证明了

![Image](images/9ee813e9e21766135910dd73d88f329ddaae215a15bbdad58655e97f33fc8772.jpg)

<div style="text-align: center;">Fig. 10. Results of projecting colored point cloud generated by different methods on various public datasets onto image plane. Baseline result is obtained by coloring the point cloud using FastLIO2 [^6] and official extrinsic file. A manual 0.1 s time offset was added to ensure a fair comparison.</div>

外观线索与几何约束的协同作用，是实现精准姿态估计和上色的关键。

投影精度：我们通过将上色后的点云重新投影到相机图像平面，并利用PSNR和SSIM指标将其与原始相机图像进行对比，来评估投影精度。图10展示了投影结果的示例，表II则列出了实测的PSNR/SSIM数值。结果显示，与基线方法和Colmap-PCD相比，EasyColor在大多数序列上都能取得更高的PSNR和/或SSIM值，这表明其颜色恢复能力更出色。

### B. 定性分析

我们在FastLIVO2数据集以及自行采集的数据集上进行了定性评估。除此之外，我们还对点云上色效果进行了定性分析。

---

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

<div style="text-align: center;">Fig. 11. Qualitative comparison of point cloud colorization results on FastLIVO2 dataset (CBD and main building sequence) and our self-recorded dataset (Scene A and Scene B). The reflectivity point cloud map for FastLIVO2 dataset is built using FastLIO2 [^6], while the map for our dataset is generated with FastLIO2 [^6] using our sensor suite (as shown in Fig. 9). Yellow boxes highlight unoptimized details. Red boxes highlight optimized details.</div>

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

<div style="text-align: center;">QUANTITATIVE COMPARISON (PSNR/SSIM). BEST RESULTS IN BOLD.</div>

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td rowspan="2">Dataset</td><td rowspan="2">Sequence</td><td colspan="2">Colmap-PCD</td><td colspan="2">$Baseline^{1}$</td><td colspan="2">Ours (full)</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>PSNR</td><td style='text-align: center; word-wrap: break-word;'>SSIM</td><td style='text-align: center; word-wrap: break-word;'>PSNR</td><td style='text-align: center; word-wrap: break-word;'>SSIM</td><td style='text-align: center; word-wrap: break-word;'>PSNR</td><td style='text-align: center; word-wrap: break-word;'>SSIM</td></tr><tr><td rowspan="2">FastLIVO</td><td style='text-align: center; word-wrap: break-word;'>hku1</td><td style='text-align: center; word-wrap: break-word;'>15.44</td><td style='text-align: center; word-wrap: break-word;'>0.65</td><td style='text-align: center; word-wrap: break-word;'>15.86</td><td style='text-align: center; word-wrap: break-word;'>0.66</td><td style='text-align: center; word-wrap: break-word;'>20.54</td><td style='text-align: center; word-wrap: break-word;'>0.84</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>hku2</td><td style='text-align: center; word-wrap: break-word;'>15.00</td><td style='text-align: center; word-wrap: break-word;'>0.70</td><td style='text-align: center; word-wrap: break-word;'>14.25</td><td style='text-align: center; word-wrap: break-word;'>0.58</td><td style='text-align: center; word-wrap: break-word;'>19.12</td><td style='text-align: center; word-wrap: break-word;'>0.79</td></tr><tr><td rowspan="3">FastLIVO2</td><td style='text-align: center; word-wrap: break-word;'>CBD_build</td><td style='text-align: center; word-wrap: break-word;'>16.27</td><td style='text-align: center; word-wrap: break-word;'>0.72</td><td style='text-align: center; word-wrap: break-word;'>15.87</td><td style='text-align: center; word-wrap: break-word;'>0.69</td><td style='text-align: center; word-wrap: break-word;'>18.64</td><td style='text-align: center; word-wrap: break-word;'>0.78</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Main_build</td><td style='text-align: center; word-wrap: break-word;'>13.21</td><td style='text-align: center; word-wrap: break-word;'>0.50</td><td style='text-align: center; word-wrap: break-word;'>10.46</td><td style='text-align: center; word-wrap: break-word;'>0.26</td><td style='text-align: center; word-wrap: break-word;'>20.17</td><td style='text-align: center; word-wrap: break-word;'>0.72</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Cul_center</td><td style='text-align: center; word-wrap: break-word;'>$-^{2}$</td><td style='text-align: center; word-wrap: break-word;'>–</td><td style='text-align: center; word-wrap: break-word;'>15.10</td><td style='text-align: center; word-wrap: break-word;'>0.75</td><td style='text-align: center; word-wrap: break-word;'>17.95</td><td style='text-align: center; word-wrap: break-word;'>0.80</td></tr><tr><td rowspan="3">MaRSLVIG</td><td style='text-align: center; word-wrap: break-word;'>HKisland</td><td style='text-align: center; word-wrap: break-word;'>14.64</td><td style='text-align: center; word-wrap: break-word;'>0.71</td><td style='text-align: center; word-wrap: break-word;'>11.64</td><td style='text-align: center; word-wrap: break-word;'>0.50</td><td style='text-align: center; word-wrap: break-word;'>17.11</td><td style='text-align: center; word-wrap: break-word;'>0.75</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>AMvalley</td><td style='text-align: center; word-wrap: break-word;'>18.20</td><td style='text-align: center; word-wrap: break-word;'>0.88</td><td style='text-align: center; word-wrap: break-word;'>17.50</td><td style='text-align: center; word-wrap: break-word;'>0.85</td><td style='text-align: center; word-wrap: break-word;'>18.05</td><td style='text-align: center; word-wrap: break-word;'>0.67</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>AMtown</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;'>15.90</td><td style='text-align: center; word-wrap: break-word;'>0.77</td><td style='text-align: center; word-wrap: break-word;'>17.80</td><td style='text-align: center; word-wrap: break-word;'>0.83</td></tr><tr><td rowspan="3">Ours</td><td style='text-align: center; word-wrap: break-word;'>Scene 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;'>11.80</td><td style='text-align: center; word-wrap: break-word;'>0.42</td><td style='text-align: center; word-wrap: break-word;'>19.00</td><td style='text-align: center; word-wrap: break-word;'>0.70</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Scene B</td><td style='text-align: center; word-wrap: break-word;'>13.00</td><td style='text-align: center; word-wrap: break-word;'>0.70</td><td style='text-align: center; word-wrap: break-word;'>12.40</td><td style='text-align: center; word-wrap: break-word;'>0.46</td><td style='text-align: center; word-wrap: break-word;'>19.50</td><td style='text-align: center; word-wrap: break-word;'>0.66</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Scene 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;'>13.70</td><td style='text-align: center; word-wrap: break-word;'>0.50</td><td style='text-align: center; word-wrap: break-word;'>20.30</td><td style='text-align: center; word-wrap: break-word;'>0.84</td></tr></table>

$^{1}$ 基线结果是使用FastLIO2 [^6] 对点云进行上色，并采用官方提供的外参文件所得。为确保对比公平，我们手动添加了0.1秒的时间偏移量。

$^{2}$ 该序列上无法运行上色系统。

FastLIVO2数据集：FastLIVO2 [^1] 数据集提供了校准良好且时间同步的点云与图像数据。为证明EasyColor无需严格的时间同步和外参校准即可正常工作，我们并未使用时间戳和外参文件。相反，我们首先构建了反射率点云地图，再将其与图像序列一同作为输入。图11表明，与未经优化的基线方法相比，EasyColor显著提升了点云上色质量；其中基线结果是利用FastLIO2 [^6] 提供的位姿以及官方外参文件对点云进行上色所得。

自行采集的数据集：EasyColor支持大多数激光雷达-相机传感器组合。理论上，只要拥有包含反射率强度信息的密集点云地图以及对应的相机图像序列，便可利用EasyColor进行点云上色。图11展示了在我们自行采集的数据集（由图9中的传感器组合采集）上的上色结果。未经优化的基线方法直接采用SLAM算法（此处我们使用FastLIO2）提供的位姿以及经过良好校准的外参值（此处我们采用了Koide的研究成果 [^10] ）来对点云进行上色。

![Image](images/b2ddcf66acee308febeeb7cd1f2aaa67109871656b6f4634aea1c27d663d6ca1.jpg)

<div style="text-align: center;">Fig. 12. Colorization comparison. (a) and (c) show colorizing result without bleeding detection and edge removal. (b) and (d) show our proposed colorizing result. White boxes highlight details (zoom in for details).</div>

如您可在图11中看到的那样，与未经优化的基线方法相比，EasyColor显著提升了点云上色质量。

点云上色：在图12中，我们专门分析了点云上色性能。可以明显看出，我们设计的色彩溢出检测与不可靠边缘区域去除策略，有效消除了色彩溢出和不可靠边缘区域的影响，从而生成了一致性更好的彩色点云地图。

### C. 运行时分析

我们对EasyColor的各个模块进行了详细的运行时分析，结果汇总于表三。由于Colmap-PCD等相关方法采用全局优化策略，无法与EasyColor直接比较，因此此处仅分析EasyColor的运行时表现。每个处理周期的总耗时——即利用两帧连续的RGB图像为点云图着色的时间——在FastLIVO2数据集上约为1.98秒，在自行采集的数据集上约为2.47秒。耗时最长的阶段是跨域图像匹配，分别需要约1.18秒和1.29秒。

---

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

<div style="text-align: center;">RONTIME ANALYSIS (BEST RESULTS IN BOLD, SECONDS PER PROCESSING CYCLE*)</div>

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td style='text-align: center; word-wrap: break-word;'>Processing Stage</td><td style='text-align: center; word-wrap: break-word;'>FastLIVO2</td><td style='text-align: center; word-wrap: break-word;'>Self-recorded</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Reflectivity Image Generation</td><td style='text-align: center; word-wrap: break-word;'>0.36</td><td style='text-align: center; word-wrap: break-word;'>0.52</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Image Enhancement</td><td style='text-align: center; word-wrap: break-word;'>$0.01 \times 2^{{**}}$</td><td style='text-align: center; word-wrap: break-word;'>$0.08 \times 2$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Projection &amp; Indexing</td><td style='text-align: center; word-wrap: break-word;'>$0.17 \times 2$</td><td style='text-align: center; word-wrap: break-word;'>$0.18 \times 2$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Cross-Domain Matching</td><td style='text-align: center; word-wrap: break-word;'>1.18</td><td style='text-align: center; word-wrap: break-word;'>1.29</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Joint Optimization</td><td style='text-align: center; word-wrap: break-word;'>0.21</td><td style='text-align: center; word-wrap: break-word;'>0.41</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Point Cloud Colorization</td><td style='text-align: center; word-wrap: break-word;'>0.23</td><td style='text-align: center; word-wrap: break-word;'>0.25</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Depth Buffer Processing</td><td style='text-align: center; word-wrap: break-word;'>0.15</td><td style='text-align: center; word-wrap: break-word;'>0.16</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.08</td><td style='text-align: center; word-wrap: break-word;'>0.09</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Total</td><td style='text-align: center; word-wrap: break-word;'>1.98</td><td style='text-align: center; word-wrap: break-word;'>2.47</td></tr></table>

 $^{*}$ EasyColor的每个处理周期指的是为点云图着色的过程，该过程需要使用两帧连续的RGB图像。

包含两张连续RGB图像的点云图。

反射率图像的生成需要执行两次。

![Image](images/10789fd68ed31a9c3cc1d64cd0a92b455ba1a3893c2a85bcc99c5054486d4083.jpg)

<div style="text-align: center;">Fig. 13. A potential failure case of EasyColor. (red: inliers, green: outliers)</div>

上述耗时数据分别对应不同数据集的情况。这一结果与计算设备上GPU的性能密切相关（此处我们选用的是NVIDIA RTX 4060 8 GB显卡）。除匹配阶段外，其他所有模块的处理时间均在0.5秒以内，这显示出EasyColor未来实现实时在线着色的潜力。

### D. 潜在的失效情况

如图13所示，当存在快速的帧间运动、精度极低的粗略外部参数估计值，或时间偏移量过大（超过5秒）时，反射率图像与相机图像之间的共视区域会缩小，导致匹配产生错误结果，进而降低最终的着色效果。重复纹理以及其他会影响图像匹配的因素也可能引入潜在误差。

### VI. 结论

本文提出了EasyColor——一种精确且鲁棒的点云着色方法，该方法综合利用跨域反射率约束与帧内视觉极线约束，有效消除了对相机与激光雷达传感器之间严格时间同步及外部标定的需求，提升了点云着色的鲁棒性与准确性。在未来的工作中，我们将进一步探索将EasyColor与实时移动测绘系统相集成，以实现精确的在线彩色地图绘制。

## 致谢

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

## 参考文献

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

[^2]: K. Ebadi et al., “Present and future of SLAM in extreme environments: The DARPA SubT challenge,” IEEE Trans. Robot., vol. 40, pp. 936–959, 2024.

[^3]: 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. 42, pp. 1–19, Mar. 2024.

[^4]: C. Campos, R. Elvira, J. J. G. Rodríguez, J. M. M. Montiel, and J. D. Tardós, “ORB-SLAM3: An accurate open-source library for visual, visual-inertial, and multimap SLAM,” IEEE Trans. Robot., vol. 37, no. 6, pp. 1874–1890, Dec. 2021.

[^5]: C. Kerl, J. Sturm, and D. Cremers, “Dense visual SLAM for RGB-D cameras,” in Proc. IEEE/RSJ Int. Conf. Intell. Robots Syst., 2013, pp. 2100–2106.

[^6]: W. Xu, Y. Cai, D. He, J. Lin, and F. Zhang, "FAST-LIO2: Fast direct LiDAR-Inertial odometry," IEEE Trans. Robot., vol. 38, no. 4, pp. 2053–2073, Aug. 2022.

[^7]: T. Shan, B. Englot, D. Meyers, W. Wang, C. Ratti, and D. Rus, "LIO-SAM: Tightly-coupled LiDAR inertial odometry via smoothing and mapping," in Proc. IEEE Int. Conf. Intell. Robots Syst., 2020, pp. 5135–5142.

[^8]: T. Shan, B. Englot, C. Ratti, and D. Rus, "LVI-SAM: Tightly-coupled LiDAR-visual-inertial odometry via smoothing and mapping," in Proc. IEEE Int. Conf. Robot. Automat., 2021, pp. 5692–5698.

[^9]: C. Bai, R. Fu, and X. Gao, "Colmap-PCD: An open-source tool for fine image-to-point cloud registration," in Proc. IEEE Int. Conf. Robot. Automat., 2024, pp. 1723–1729.

[^10]: 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. Automat., 2023, pp. 11301–11307.

[^11]: B. Liu et al., “OmniColor: A global camera pose optimization approach of LiDAR-360camera fusion for colorizing point clouds,” in Proc. IEEE Int. Conf. Robot. Autom., 2024, pp. 6396–6402.

[^12]: 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.

[^13]: 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, 2022, Art. no. 8502612.

[^14]: G. Pandey et al., “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.

[^15]: G. Pandey et al., “Automatic extrinsic calibration of vision and LiDAR by maximizing mutual information,” J. Field Robot., vol. 32, no. 5, pp. 696–722, 2015.

[^16]: P. Vechersky, M. Cox, P. Borges, and T. Lowe, “Colourising point clouds using independent cameras,” IEEE Robot. Autom. Lett., vol. 3, no. 4, pp. 3575–3582, Oct. 2018.

[^17]: J. Lin and F. Zhang, "R3LIVE: A robust, real-time, RGB-colored, LiDAR-Inertial-Visual tightly-coupled state estimation and mapping package," in Proc. Int. Conf. Robot. Automat., 2022, pp. 10672–10678.

[^18]: P.-E. Sarlin, D. DeTone, T. Malisiewicz, and A. Rabinovich, “SuperGlue: Learning feature matching with graph neural networks,” in Proc. IEEE/CVF Conf. Comput. Vis. Pattern Recognit., 2020, pp. 4937–4946.

[^19]: J. Sun, Z. Shen, Y. Wang, H. Bao, and X. Zhou, "LoFTR: Detector-free local feature matching with transformers," IEEE/CVF Conf. Comput. Vis. Pattern Recognit., 2021, pp. 8918–8927.

[^20]: G. Potje, F. Cadar, A. Araujo, R. Martins, and E. R. Nascimento, “XFeat: Accelerated features for lightweight image matching,” in Proc. IEEE/CVF Conf. Comput. Vis. Pattern Recognit., 2024, pp. 2682–2691.

[^21]: J. Ren et al., “MINIMA: Modality invariant image matching,” in Proc. Comput. Vis. Pattern Recognit. Conf., Jun. 2025, pp. 23059–23068.

[^22]: Y. Liao, J. Xie, and A. Geiger, "KITTI-360: A novel dataset and benchmarks for urban scene understanding in 2D and 3D," IEEE Trans. Pattern Anal. Mach. Intell., vol. 45, no. 3, pp. 3292–3310, Mar. 2023.

[^23]: H. Li et al., “MARS-LVIG dataset: A multi-sensor aerial robots SLAM dataset for LiDAR-visual-inertial-GNSS fusion,” Int. J. Robot. Res., vol. 43, no. 8, pp. 1114–1127, Jul. 2024.

[^24]: R. Li et al., “LVBA: LiDAR-visual bundle adjustment for RGB point cloud mapping,” Proc. 2025 IEEE Int. Conf. Robot. Autom., Atlanta, GA, USA, 2025, pp. 2041–2047.
