这里写目录标题
Abstract
LiDAR深度增强的单目VO。包含帧帧位姿估计和滑动窗口BA。
I. INTRODUCTION AND RELATED WORK
VSLAM是使用相机观测环境来同时估计环境的3D结构和相机自运动的问题。最常见的解决方法是BA。但是BA同时优化所有相机位姿和路标,消耗太大。为了实现实时的VSLAM,很多优化算法被提出。VSLAM结构如图所示。包括特征提取,特征预处理,帧帧运动估计,尺度估计,BA和回环检测。由于本文专注于LiDAR辅助的单目里程计,因此不包含回环检测。

常见的VSLAM解决方案依赖双目相机。但是基于双目相机的VSLAM需要准确的相机标定。Krevso等人[12]提出通过分解场学习双目相机的标定偏差。Geiger等人[7]提出了一种在平移估计中的标定误差补偿方法。相比之下,LiDAR不需要额外的外参标定,可以得到准确的点云深度。因此,我们想要组合LiDAR准确的深度估计和相机的强大特征跟踪能力。
我们提出一种从LiDAR中提取图片中特征点的深度的新方法。具体地,我们拒绝不满足局部平面假设的外点,并特殊考虑了地面点。为了达到实时表现,我们仔细设计了先验估计,路标选择和关键帧选择。本文中,我们没有使用任何LiDAR-SLAM算法,因为我们想推动LiDAR深度测量和VO组合的研究边界。
II. BLOCK A AND B: FEATURE EXTRACTION AND PREPROCESSING
- A. 特征提取和预处理
特征提取包括特征跟踪和特征关联。特征跟踪使用viso2库中使用的方法(它包括非最大抑制,通过流动的异常值排除和子像素优化),在30-40ms内提取2000个特征对应。然后需要剔除动态的特征点。为此,我们先建立语义图片[21],然后在每个特征点周围寻找语义属于动态的点的个数,如果大于一定阈值,则认为该特征点也属于动态点。
III. BLOCK S: SCALE ESTIMATION
为了估计尺度,需要从LiDAR中提取特征点的深度。在本工作中,我们使用单帧激光点云来获得特征点的深度。虽然这导致更少可用的点云数据由于没有使用累积点云,但是这也避免了对运动估计的依赖。
A. Approach
B. Selecting the Neighborhood

图中. 矩形框自适应大小。对于每个特征点(绿色),矩形框至少包含两根扫描线的激光点(红点),如中图所示;而不能只包含一根扫描线中的点。
为了提取特征点周围的局部平面:选择领域
有序节点(直接从点云中提取领域)
无序节点(使用LIDAR点在图像上的投影,并在特征点周围的图像平面中选择矩形大小)
C. Foreground Segmentation

基于深度划分的平面拟合。如果不事先将点云按照深度划分区间,拟合的平面可能出错(如左图所示)。点云按照深度划分区间后,减少了拟合错误平面的可能。
D. Plane Fit
从前景分割的点中,我们选择三个面积最大的三角形F∆来稳定估计。 如果F∆的面积太小,我们将不使用深度估计来避免错误估计深度。 然后,我们将平面拟合到F∆,用于深度估计
E. Special Case: Points on Ground Plane
IV. BLOCK C: FRAME TO FRAME ODOMETRY
V. BLOCK D: BACKEND
数据累积和时间推断是提高准确性和鲁棒性的重要步骤。 特别是对于此处介绍的深度测量稀疏的方法而言,通过许多帧收集的数据的联合优化使其不易出错。 因此,我们在后端对关键帧执行BA,关键部分如下:
- 关键帧选择策略
- 地标选择策略
- 成本函数
- 鲁棒性度量
A. Why is Selection Important?
在离线过程中,可以将“BA”建模为一个大的优化问题,共同解决所有地标和姿势。 由于具有最高的准确性,因此具有很高的复杂性,从而导致无法使用在线视觉里程计。 为了减少计算成本,在优化窗口中解决了“BA”问题,从问题中删除了以前的姿势和地标。 由于这样可以使误差在本地最小化,因此与完全BA相比,加窗方法的漂移更大。 我们处于两难境地:一方面,优化窗口应尽可能长以减少漂移,另一方面,对于更长的窗口,复杂性将急剧增加。 为了以低成本获得最好的结果,必须使信息的密度最大化。与其使用所有可能的数据,不如在保留携带正确位姿估计所需信息的集合的同时,排除不必要的测量值。
B. Keyframe Selection
C. Landmark Selection
D. Landmark Depth Insertion
E. Robustification and Problem Formulation
argmin P j ∈ P , l i ∈ L , d i ∈ D w 0 ∥ ν ( P 1 , P 0 ) ∥ 2 2 + ∑ i ∑ j w 1 ρ ϕ ( ∥ ϕ i , j ( l i , P i ) ∥ 2 2 ) + w 2 ρ ξ ( ∥ ξ i , j ( l i , P j ) ∥ 2 2 ) \operatorname{argmin}_{P_{j} \in \mathcal{P}, l_{i} \in \mathcal{L}, d_{i} \in \mathcal{D}} w_{0}\left\|\nu\left(P_{1}, P_{0}\right)\right\|_{2}^{2}+\sum_{i} \sum_{j} w_{1} \rho_{\phi}\left(\left\|\phi_{i, j}\left(l_{i}, P_{i}\right)\right\|_{2}^{2}\right)+w_{2} \rho_{\xi}\left(\left\|\xi_{i, j}\left(l_{i}, P_{j}\right)\right\|_{2}^{2}\right) argminPj∈P,li∈L,di∈Dw0∥ν(P1,P0)∥22+i∑j∑w1ρϕ(∥ϕi,j(li,Pi)∥22)+w2ρξ(∥ξi,j(li,Pj)∥22)
其中 P 0 P_{0} P0 和 P 1 P_{1} P1 分别是滑动窗口中最旧两帧的位姿,
ν ( P 1 , P 0 ) = ∥ translation ( P 0 − 1 P 1 ) ∥ 2 2 − s \nu\left(P_{1}, P_{0}\right)=\| \text { translation }\left(P_{0}^{-1} P_{1}\right) \|_{2}^{2}-s ν(P1,P0)=∥ translation (P0−1P1)∥22−s
s s s是优化前最旧两帧的相对平移。所以第一项 ν ( P 1 , P 0 ) \nu\left(P_{1}, P_{0}\right) ν(P1,P0)约束了最旧两帧的平移在优化前后不能变化太大。第二项 ϕ i , j ( l i , P j ) = l ˉ i , j − π ( l i , P j ) \phi_{i, j}\left(l_{i}, P_{j}\right)=\bar{l}_{i, j}-\pi\left(l_{i}, P_{j}\right) ϕi,j(li,Pj)=lˉi,j−π(li,Pj) 是重投影误差。第三项 ξ i , j ( l i , P j ) \xi_{i, j}\left(l_{i}, P_{j}\right) ξi,j(li,Pj) 是深度误差,具体形式如下:
(4)该项约束了优化后的深度与B部分尺度估计的深度 d ^ i , j \hat{d}_{i, j} d^i,j差别不能过大。
ξ i , j ( l i , P j ) = { 0 , if l i has no depth estimate d ^ i , j − [ 0 0 1 ] τ ( l i , P j ) , else \xi_{i, j}\left(l_{i}, P_{j}\right)=\left\{\begin{array}{l} 0, \quad \text { if } l_{i} \text { has no depth estimate } \\ \hat{d}_{i, j}-\left[\begin{array}{lll} 0 & 0 & 1 \end{array}\right] \tau\left(l_{i}, P_{j}\right), \quad \text { else } \end{array}\right. ξi,j(li,Pj)={
0, if li has no depth estimate d^i,j−[001]τ(li,Pj), else
VI. RESULTS AND EVALUATION
VII. CONCLUSIONS
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/229478.html原文链接:https://javaforall.net
