【论文笔记】Stereo Camera Localization in 3D LiDAR Maps
随着 3D 光探测和测距 (LiDAR) 传感器的出现,同步定位和映射 (SLAM) 技术蓬勃发展,因此准确的 3D 地图很容易获得。许多研究人员将注意力转向先前获得的 3D 地图中的定位。在本文中,我们提出了一种新颖且轻量级的仅相机视觉定位算法,该算法涉及先前 3D LiDAR 地图中的定位。我们的目标是在 GPS 信号不可靠的城市环境中使用视觉来实现消费者级别的全球定位系统 (GPS) 精度。通过利用立体相机,立体视差图的深度与 3D LiDAR 地图匹配。通过最小化深度残差来估计完整的六自由度 (DOF) 相机姿态。在视觉跟踪的支持下,为定位提供了良好的初始猜测,所提出的深度残差成功应用于相机姿态估计。我们的方法在线运行,因为平均定位误差与最先进的方法产生的误差相当。我们使用 KITTI 数据集将所提出的方法验证为独立的定位器,并使用我们自己的数据集作为 SLAM 框架中的模块进行验证。
方法
我们提出了一种能够根据先前给定的 3D 地图定位立体相机的系统。 我们假设提供了初始相机姿势,并在给出粗略的初始猜测的情况下执行定位。 图 2 显示了所提出的定位器的示意图。 我们的系统由四个模块组成。 在预处理中,对从地图中获取的原始数据和立体图像流进行处理,以用于后面的跟踪和定位模块。 在深度图生成中,深度图是通过使用立体视差来生成的。 在局部地图提取中,从全局地图中提取将与深度图匹配的局部3D地图。 为了确定相机姿态的初始猜测,在定位之前添加跟踪。 在该模块中估计连续图像帧之间的相对位姿。 然后,通过使用跟踪过程中的局部图、深度图和假定位姿来估计 6 DOF 相机位姿。
局部地图提取
在包含大尺度点云的全局地图中,我们需要提取全局地图中可以从当前相机位置观察到的局部区域的点。 我们把这个全局地图点的子部分定义为局部地图。局部地图的提取是通过八叉树[18]实现的。八叉树是一种基于树的数据结构,通常用于包含三维点云。 八叉树中的每个节点都有八个子节点,代表八个子立方体。通过使用八叉树可以进行快速的空间划分和搜索。 点云库(PCL)[19]提供了八叉树和各种相邻的搜索方法。 为了提取当前相机姿势周围的点,在半径搜索范围内的邻居被用来进行局部地图的提取。
主要策略是利用当前立体流中的深度图。 构建的深度图主要用于即将进行的跟踪和定位。 在深度图生成的第一步中,视差图是通过 OpenCV [20] 提供的立体半全局 blob 匹配 (SGBM) 创建的。 SGBM [21] 是一种立体匹配技术,它通过最小化由基于互信息的逐像素成本和全局平滑成本组成的能量函数来估计视差。 通过这个 SGBM 可以获得一个密集的立体视差图。 然后,通过 [22] 估计场景深度,这消除了依赖于范围的统计偏差三角测量。
定位
视觉定位是通过匹配地图点和从立体相机获得的当前深度图来执行的。 虽然目标能量函数与(5)相同,但深度残差 rDis 如下所述。
这个深度残差在定位模块中被优化,而不是之前在跟踪阶段采用的强度残差(6)。 深度残差定义为地图点的深度与对应的立体深度之间的差值。 通过TCM将mappointpi转换为相机坐标后,可以得到图点的深度为T(ξ)TCM·pi,表示转换后的图点的z轴值。对于对应的立体深度, 相机坐标中的点通过相机投影函数π(·)投影到图像坐标上,然后通过深度映射D(·)得到深度。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)