Intensity-SLAM: Intensity Assisted Localization and Mapping for Large Scale Environment

IEEE ROBOTICS AND AUTOMATION LETTERS-2021 开源

零碎知识点

1.同时利用lidar的几何和强度信息进行slam,强度信息贯穿在前端里程计部分和后端优化部分。

2.强度信息对于鲁棒的回环检测非常有用;

3.文章首先分析了强度测量的物理模型,然后在里程计部分将强度代价引入了几何代价中,最后将基于强度的回环检测和后端优化结合起来一块优化。

4.建立强度图展示强度分布;

5.ICP方法对噪声很敏感,在自动驾驶中的噪声(路旁的树木的测量值)会很明显,进而导致定位漂移;

6.在DeepICP中,基于端到端学习的3D点云配准寻找机器人的位姿,强度通道和几何通道被引入深度特征提取(DFE)层以找到关键点。不是搜索最近的点,而是使用对应点生成 (CPG) 层根据一组候选者之间的学习匹配概率生成关键点对应关系,这使得反向传播成为可能。

7.“Intensity-assisted ICP for fast registration of 2D-LIDAR”提出用于2D-LIDAR快速配准的强度辅助的ICP,引入目标函数,根据空间距离和强度残差确定初始刚体变换估计,使得算法可以在单核CPU上实时运行。

8.“Towards intensity-augmented slam with LiDAR and ToF sensors”将强度模型纳入稀疏束调整(SBA)估计问题,分析了强度测量的物理模型,提出了一种增强3D定位、强度和表面法线的新测量模型。在较少的地标点下实现了相同的精度。

本文方法

 1.强度校准

激光雷达发射激光束后可以测量到耗费时间以及反射信号的能量,所以可以利用强度信息。

强度值由接收到的激光束能量与发射的激光束能量之间的比率确定,接收功率P_r的物理原理可以确定为:

 强度测量

### Intensity-SLAM 技术概述 Intensity-SLAM 是一种基于图像强度信息的 SLAM 方法,它通常属于直接法(Direct Method),即不依赖于提取特征点来进行匹配,而是直接利用像素灰度值的变化来优化相机的姿态和地图。这种方法的优点在于能够充分利用图像中的所有信息,而不局限于少数特征点,因此在某些场景下具有更高的鲁棒性和精度。 #### 直接法的核心原理 直接法通过最小化光度误差(photometric error)来估计相机的运动和深度。具体来说,假设两个时刻 \( t_1 \) 和 \( t_2 \) 的图像分别为 \( I_{t_1} \) 和 \( I_{t_2} \),则可以通过寻找使以下目标函数最小化的参数 \( T \) 来估计相机的变换矩阵: \[ E(T) = \sum_{x \in \Omega} \|I_{t_1}(x) - I_{t_2}(T(x))\|^2 \] 其中 \( x \) 表示像素位置,\( \Omega \) 是感兴趣区域[^4]。 这种优化过程可以直接应用于单目、双目或多目视觉系统,并且可以扩展到稠密重建领域。例如,在 BPVO(Bit-Plane Visual Odometry)中实现了类似的思路,其核心是对光照变化敏感的情况进行了特殊设计[^3]。 --- ### 实现资源推荐 以下是几个可能与 Intensity-SLAM 或者直接法相关的实现和技术教程: 1. **BPVO 库** - 地址: https://github.com/halismai/bpvo - 描述: 这是一个实时立体视觉里程计库,支持半稠密直接对齐方法。虽然主要面向双目数据,但它提供了许多关于如何处理图像强度差异的技术细节,适合深入学习直接法的思想。 2. **DSO (Direct Sparse Odometry)** - 地址: https://github.com/raulmur/ORB_SLAM2/tree/master/DirectSparseOdometry - 描述: DSO 是一个经典的直接稀疏视觉里程计算法,专注于高效地使用亮度信息完成姿态估计和深度恢复。尽管它是稀疏表示形式,但仍然保留了许多直接法的关键特性[^5]。 3. **LSD-SLAM** - 地址: http://vision.in.tum.de/research/vslam/lsdslam - 描述: LSD-SLAM 提供了一种半稠密的地图构建方式,同样采用了直接法的理念。它的特点是能够在低纹理环境下表现良好,同时保持较高的运行效率。 4. **ORB-SLAM 变体** - 资源地址: https://github.com/JzHuai0108/ORB_SLAM - 描述: 尽管 ORB-SLAM 更倾向于特征点法,但在一些变体版本中尝试融合了直接法的部分优势。这为理解两种方法之间的联系提供了一个很好的切入点[^1]。 --- ### 示例代码片段 下面展示一段简单的 Python 伪代码,模拟直接法的基本框架: ```python import numpy as np def photometric_error(image_t1, image_t2, transformation_matrix): """ 计算光度误差。 参数: image_t1: 前一帧图像 (numpy array) image_t2: 当前帧图像 (numpy array) transformation_matrix: 相机变换矩阵 (4x4 numpy matrix) 返回: float 类型的总误差值 """ total_error = 0 for pixel in selected_pixels: projected_pixel = transform(pixel, transformation_matrix) if is_valid(projected_pixel): # 检查投影后的像素是否有效 intensity_diff = abs(image_t1[pixel] - image_t2[projected_pixel]) total_error += intensity_diff**2 return total_error def optimize_transformation(initial_guess, images_pair): """ 使用梯度下降或其他优化器调整变换矩阵。 """ best_transform = initial_guess min_error = float('inf') for iteration in range(max_iterations): current_error = photometric_error(*images_pair, best_transform) if current_error < min_error: min_error = current_error update(best_transform) # 更新变换 return best_transform ``` 上述代码仅作为概念演示,实际应用需考虑更多因素如数值稳定性、多线程并行加速等。 --- ###
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值