当前位置: 首页 > news >正文

3D图像重建中Bundle Adjustment的推导与实现

介绍

捆集调整(Bundle Adjustment是一种利用来自多台相机的图像数据同时优化相机位置和姿态以及 3D 点位置的技术。该技术历史相当悠久,于 1958 年由 DC Brown1 首次提出。

最初这是美国空军正在进行的从航拍照片中恢复环境的研究,随着视觉SLAM和SfM的传播,它在日常生活中得到了更广泛的应用。

流行的视觉 SLAM(例如 orb-slam2 和 VINS-Mono)使用图形优化库(例如 ceres、gtsam 和 g2o)来解决捆集调整问题。然而,如果没有正确理解内部原理,很有可能无法改善问题或导致原创研究或开发。

在本文中,再一次介绍捆集调整的理论并推导其方程,同时在不依赖库的情况下理解该理论并从头开始在 Python 中实现它,以加深理解。

什么是捆集调整?

下图显示了从多个摄像机(或多次移动同一台摄像机)捕捉物体的情况。该物体具有在每个摄像机图像中可见的特征点*(例如角落)(红点)。

另一方面,如果我们知道这些特征点在3D空间中的3D位置(3D点)和相机姿态,我们就可以进行计算,将3D空间点投影到相机的2D图像平面上(浅蓝色点)。

然而,最初我们只知道 3D 点位置和相机位姿的近似值。因此,投影出的浅蓝色点和实际的红点不匹配。这个错误被称为重投影错误,用红色虚线表示。捆集调整是一种通过最小化该新投影误差来联合优化 3D 点云位置和每个相机位姿的技术。

 在上

http://www.dtcms.com/a/113210.html

相关文章:

  • Shell脚本笔记
  • Java第三节:新手如何用idea创建java项目
  • #SVA语法滴水穿石# (004)关于 ended 和 triggered 用法
  • Java HttpURLConnection修仙指南:从萌新到HTTP请求大能的渡劫手册
  • #SVA语法滴水穿石# (005)关于 问号表达式(condition ? expr1 : expr2)
  • Arduino示例代码讲解:ADXL3xx 加速传感器
  • Java 类型转换和泛型原理(JVM 层面)
  • 论定制开发开源 AI 智能名片 S2B2C 商城小程序源码在零售变革中的角色与价值
  • 基于sklearn实现文本摘要思考
  • Linux进程间通信——有名管道
  • 【AI论文】基础智能体(Foundation Agents)领域的进展与挑战:从类脑智能到进化型、协作型及安全型系统
  • 数据化管理(二)---寻找零售密码
  • 使用Ubuntu18恢复群晖nas硬盘数据外接usb
  • [自制调试工具]利用模板函数打造通用调试工具
  • 使用OpenFeign实现服务远程调用
  • 数据定义语言
  • 【速写】einops杂记
  • 【数据结构】堆
  • 【KWDB创作者计划】_KaiwuDB 2.1.0 单节点裸机部署
  • 续-算法-数学知识
  • 数据结构【栈和队列附顺序表应用算法】
  • GenerationMixin:generate
  • MIPI与DVP接口摄像头:深度解析与应用指南
  • 素数的判断方法
  • Mysql explain中列的解析
  • SortedSet结构之用户积分实时榜单实战
  • WordPress图标设置插件,免费功能小巧
  • 武装自己的Kali
  • 轨道交通装备三维检测与轻量化设计
  • Cookie、Session、Token、JWT的区别和使用场景