DSO全家桶(三)——DSO前端:初始化

本文详细介绍了DSO初始化过程中的关键步骤,包括利用KD-Tree和FLANN建立最近邻索引,以及在DSO中如何应用它们。在DSO初始化时,首先提取图像梯度点,然后构建KD-Tree并使用FLANN进行近似最近邻搜索,以关联不同金字塔层级的点,为后续的跟踪和深度传播做准备。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 DSO初始化流程

  嗨,各位读者朋友们好!今天我们接着讲DSO全家桶中的第三讲——初始化。

  这一讲的内容相对来说会简单一些,因为笔者会将初始化阶段的运动估计移到下一讲:DSO全家桶(四)——前端:前端跟踪中去讲,因为本质上这两个跟踪的方法比较接近,就没有必要赘述了。

  在第二讲中,我们已经介绍了DSO提取梯度点的策略,那么这一讲就接着后续的操作,讲讲这些梯度点会怎么用。对于单目SLAM来说,我们通常至少需要两个帧才可以完成初始化,DSO也不例外。

  那么,我们先看看DSO初始化阶段的主要流程:

                                                图1. DSO初始化流程

  1. 对第一帧的图像金字塔提取梯度点,并将每个点的逆深度值初始化为1,并设置每个点的外点阈值;

  2. 对步骤1中的每一个梯度点构建最近邻(makeNN)索引,在同一层中找到10个与其距离最接近的点构建邻域关系。通过在下一层的NN索引中,找到与当前点距离最小的点,设置为parent点,目的是关联当前层与下一层,便于光流金字塔和逆深度值的传播;

  3. 输入第二帧图像,将第一帧初始化的梯度点投影到当前帧中构建残差,并采用光流金字塔对初始相对运动进行估计,这部分内容我们会在下一讲详细介绍;

  4. 将第一帧设置为关键帧,加入滑动窗口中;

  5. 统计第一帧所有点的逆深度值,并计算归一化尺度因子,用于将相对位移归一化;

  6. 遍历所有点,对所有点创建未成熟点,根据阈值条件判断可否进行激活;

  7. 为所有可激活的点设置逆深度值,值得注意的是,DSO设置了两个逆深度值,一个是有尺度因子的,一个是没有尺度的;

  8. 设置两帧各自的初始位姿;<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值