GPO:快速、准确地进行单眼SLAM初始化的全局平面优化
2020-09-07 15:48 计算机视觉life 阅读(594) 评论(0) 编辑 收藏 举报GPO:快速、准确地进行单眼SLAM初始化的全局平面优化
摘要
初始化对于单目SLAM来说是必须的。本文重点研究了一种基于平面特征的单目SLAM初始化方法。该算法从滑动窗口的单应矩阵估计开始,然后通过全局平面优化(global plane optimization, GPO)获取相机位姿和平面法线。3D点可以通过使用平面约束恢复,无需三角化(or三角测量)。本文提出的方法充分利用了多帧的平面信息,避免了单应矩阵分解中的模糊性。我们在收集来的棋盘数据集上参照基准方法的实现,验证了我们的算法,并进行了广泛的分析。实验结果表明,我们的方法在准确度和实时性两方面都优于调优后的基准方法。
背景介绍
单目SLAM旨在从单个输入的视频流中,同时估计相机轨迹、重建未知环境。其被广泛应用于增强现实(AR)和自动驾驶领域。为了引导单目SLAM系统,通常必须进行初始化。在初始化期间,相机位姿和初始地图是为后续的跟踪和建图建造的。不良的初始化会减慢系统的收敛速度,甚至导致定位的失败。
单目SLAM的一般初始化方法基于本征矩阵(or基础矩阵)分解。然后通过三角化获得三维地图。接着,使用PnP算法估计其他帧的位姿。整个过程之后可以进行增量式局部SFM。
然而,这种初始化机制有一些缺陷。首先,需要足够大的视差才能进行准确的三角化,并且不能通过纯旋转估计特征点深度(译者注:因为会导致基础矩阵自由度下降);其次,由于SfM问题的规模很大,需要很长时间才能收敛;最后,人造长江通常由地面和前面之类的平面结构组成,导致本征矩阵的退化。
为了处理平面规则性,一些方法估计两帧之间的单应矩阵,而不是本征矩阵。但是,单应矩阵分解的几何模糊性使得设计适应不同应用的良好选择策略变得很棘手。此外,上面所有的系统只使用了两帧的观测。如果我们可以利用更多来自平面场景的帧的信息,就有望获得更准确的估计。
为了解决所有的这些问题,我们提出了一种快速、准确的单目SLAM初始化方法。在我们的方法中,我们首先使用RANSAC估计第一帧和当前帧之间的滑动窗口中的单应矩阵。然后,我们使用全局平面优化(GPO)最小化对应点关于平面法线和缩放平移的二维重投影误差。最后,我们使用平面方程估计平面上的3D点。我们方法的核心是通过使用所有帧的信息来避免单应矩阵的分解。我们还重建了平面地图,并且无需三角化。此外,通过减少优化中的参数数量,我们的算法获得了显著的实时改进。
本文核心思想
本文提出的方法都在具有(相机)轨迹和平面度量信息的棋盘数据集上进行了验证。我们复现了几种效果不错的多帧基准方法,包括基于聚类和基于优化的方法。我们说明了本文提出的GPO在精度和实时性上都由于其他的初始化方法。
最后,总结一下我们的贡献:
- 我们开发了一种新的针对单目SLAM的初始化方法,据我们所知,这是第一种完全利用了多帧平面信息的SLAM初始化方法。
- 我们提出了几种初始化基线(baseline),并进行了详细的实验以验证我们的方法。
- 我们提出了新的关于平面估计准确性方面的评估指标,以解决绝对平移误差标准的局限性。
初始化方法如下图所示:
优化过程如下图所示:
实验结果如下:
总结一下
在本文中,我们提出了一种新的基于平面特征的单目SLAM初始化方法GPO。通过联合多帧平面信息,我们的方法避免了三角化和单应矩阵分解的负担。我们在棋盘数据集上验证了系统的性能。实验结果表明,该方法在准确度和时间效率上均优于基线方法。
本文由计算机视觉life公众号从零开始学习SLAM知识星球翻译。
欢迎加入公众号读者群一起和同行交流,目前有SLAM、检测分割识别、三维视觉、医学影像、GAN、自动驾驶、计算摄影、算法竞赛等微信群(以后会逐渐细分),请扫描下面微信号加群,备注:”昵称+学校/公司+研究方向“,例如:”张三 + 上海交大 + 视觉SLAM“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。请勿在群内发送广告,否则会请出群,谢谢理解~
投稿、合作也欢迎联系:simiter@126.com
长按关注计算机视觉life
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 周边上新:园子的第一款马克杯温暖上架
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
· 使用C#创建一个MCP客户端