多视图三维重建-SFM简介

背景

掌握传统的多视图三维重建基本流程

总体流程

多视图三维重建的Pipieline如下图,总共分为四个步骤:

  1. 拍摄场景多视角的图像
  2. 建立这些图像之间的联系(Data Association)
  3. SFM稀疏重建
  4. MVS稠密重建
    在这里插入图片描述

Data Association

建立图像之间的联系主要包含以下4个步骤:1)特征提取;2)特征匹配;3)基于几何的特征对验证;4)特征建树
1)图像的特征提取。
1.1)全局特征描述子
· Color histogram颜色直方图
在这里插入图片描述
· GIST feature
首先, 在4个尺度和8个方向上设置Gabor滤波器,并对图像做滤波,得到32个滤波后图像。
其次, 对滤波后图像分成44个区域,计算每个区域内像素均值。
最后, 得到4
844=512个区域均值组成的特征向量,即为Gist512特征。
1.2)局部特征描述子
· SIFT & SURF & DSP-SIFT
在这里插入图片描述
· BRIEF
一种二进制描述、不具备旋转不变性,不具备尺度不变性
在这里插入图片描述
· OBR
ORB特征在速度方面相较于SIFT、SURF已经有明显的提升
同时,保持了特征子具有旋转与尺度不变性
2)特征匹配
特征匹配具有两条路线:
2.1)Matching
① 每个图像分别提取全部的特征
② 图像和图像之间搜索最佳匹配特征(最佳匹配也可能是误匹配)
③ 进一步SSD、SAD、NCC等块匹配方式来验证
2.2)Tracking
① 图像1中提取特征A
② 在图像2中,临近的图像位置处,寻找完全相同的特征A
③ 在图像3中再次寻找完全相同的特征A(在连续视频帧中、或两两拍摄场景的位置相差不多时有效)
3)基于几何的特征对验证
基于对极约束:图像中的一个点p1,在另一个图像中的匹配点p2,必然在极线L2上
在这里插入图片描述
由对极几何的约束关系,将特征对中不满足几何约束的误匹配点剔除,如下图中红色线描述的特征对
在这里插入图片描述
关于对极约束的描述,若是一般的场景下,匹配点对P1-P2之间满足如下用基础矩阵描述的关系:
在这里插入图片描述
当物体是一个接近平面的对象时,可利用平面单应性矩阵H(单应性变换 Homography Estimation)来表达两个视图中点的关系
在这里插入图片描述
在这里插入图片描述
根据已有的特征点对, 由于是存在误匹配点对的,因此,通常基于RANSAC来选择若干点对P1-P2求解稳定的F或H,然后利用F或H建立的对极约束,剔除不满足几何约束的特征点对。如下表所示,根据场景类型是通用的、平面类的、全景类的,使用合理的模型进行特征对验证。
在这里插入图片描述
F矩阵是一个3*3的矩阵,秩为2,且没有尺度信息,因此自由度为7,典型的解法是使用归一化8点法来获取求解最佳近似F矩阵。值得注意的是:系数矩阵的正则化和反正则化,其次,SVD得到的解不是最终解,需要进一步最佳估计满足F矩阵特质的解
在这里插入图片描述
基础矩阵F和本质矩阵E之间关系如下
在这里插入图片描述
在内参矩阵初始化后是已知的状态,那么根据F可以估计得到E矩阵,再由E矩阵和旋转矩阵R和平移量t满足的如下关系,来分解得到R,t
在这里插入图片描述
[ t x ] [t_x] [tx]是平移量的反对称矩阵,对于E进行SVD分解,在四对解中,带入实际的点,判断点和相机坐标系正、反方向的关系,获取正解
在这里插入图片描述
对于单应性矩阵H分解得到R,t的过程可以参考之前的博文H分解得到RT
4)特征建树
所有图像的特征描述建立搜索树,以便新的下一帧图像进行特征匹配时,快速的找到对应的特征及所在的图像ID

SFM稀疏重建

SFM(Structure From Motion)
· Structure —— 指场景的几何结构
· Motion —— 指相机从多个角度来获取场景图像的过程
· 输入:多角度同一场景的图像
· 输出:场景内物体的三维坐标、相机的位姿参数

在Data Association中,我们能够获取两两视图之间的R,t相对关系,接下来我们需要获取场景内关键点的三维坐标,以及各个视图的绝对位姿信息。主要有如下三个策略
在这里插入图片描述
在这里插入图片描述

  • 增量式SFM
    Incremental Reconstruction的主要步骤包含:Initialization, Image Registration, Triangulation, Bundle Adjustment, Outlier Filtering, Reconstruction.
    在这里插入图片描述
    1)Initialization.
    1.1) Choose two non-panoramic views ( 𝑡 ≠ 0). 指从所有的多视角中,挑选两个非全景拍摄的视图作为起始位置。
    1.2) Triangulate inlier correspondences. 已知两两视图之间的R,t关系,在初始化内参已知的情况下、特征点对也已经匹配完成,就可以进行两两视图之间的特征点三维重建。

在这里插入图片描述
1.3)Bundle adjustment. 上述过程是在初始化内参情况下完成的,为了进一步获取精确的内、外参数和三维点坐标,需要利用已知的特征点二维坐标,对两两视图系统进行优化。
2)Absolute camera registration.
2.1)Find 2D-3D correspondences. 两两视图完成上述初始化工作后,当第三幅视图进入计算时,首先根据特征匹配,找到图像1和图像3,图像2和图像3的特征匹配点对。
在这里插入图片描述
2.2)Solve Perspective-n-Point problem. 根据Initialization过程中重建得到的三维点,以及图像3中的匹配点,就能建立3D-2D的对应关系,由此利用PnP来求解图像3的绝对位姿。参考之前的博文,PnP的一些总结
在这里插入图片描述

2.3)Triangulate new points. 图像1-图像3,图像2-图像3两两组合,重建新的三维点
在这里插入图片描述
3)Bundle Adjustment. 将三个视图的图像、三维点、相机内外参数再次进行系统优化。
4)Outlier filtering. 剔除重投影误差过大的点;剔除重建点三维坐标无穷大的点
在这里插入图片描述
增量式SFM就是在每一次新的视图进入计算时,都要重复的匹配、重建和捆绑调整,因此,准确性和鲁棒性比较高

  • 全局式SFM
    全局SFM是完成所有的两两视图重建后,再统一进行BA捆绑优化,效率高,但稳定性低
    在这里插入图片描述

  • 分组式SFM
    分组式SFM根据先验将图像进行分组,每一个组内进行增量式SFM或全局式SFM,然后融合所有组的三维信息
    在这里插入图片描述
    将三种策略的SFM的对比如下
    在这里插入图片描述

Challenges

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/578433.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据可视化Grafana Windows 安装使用教程(中文版)

1.跳转连接 天梦星服务平台 (tmxkj.top)https://tmxkj.top/#/site?url 2.下载应用程序 官网地址:Grafana get started | Cloud, Self-managed, Enterprisehttps://grafana.com/get/ 3.修改配置文件 grafana\conf\defaults 4.启动\bin\目录下serve应用程序 浏…

PyCharm中配置PyQt5并添加外部工具

Qt Designer、PyUIC和PyRcc是Qt框架下的三个重要工具,总的来说,这三个工具各司其职,相辅相成,能显著提升Qt开发的速度与效率。 Qt Designer:是一个用于创建图形用户界面的工具,可轻松构建复杂的用户界面。…

政安晨:【Keras机器学习实践要点】(九)—— 保存、序列化和导出模型

政安晨的个人主页:政安晨 欢迎 👍点赞✍评论⭐收藏 收录专栏: TensorFlow与Keras机器学习实战 希望政安晨的博客能够对您有所裨益,如有不足之处,欢迎在评论区提出指正! 这篇文章是保存、序列化和导出模型的完整指南。 …

绿联 安装PDF工具

这是一个强大的本地托管的基于 Web 的 PDF 操作工具,使用 docker,允许您对 PDF 文件执行各种操作,例如拆分、合并、转换、重组、添加图像、旋转、压缩等。这个本地托管的 Web 应用程序最初是 100% ChatGPT 制作的应用程序,现已发展…

【动手学深度学习-pytorch】-9.3深度循环神经网络

到目前为止,我们只讨论了具有一个单向隐藏层的循环神经网络。 其中,隐变量和观测值与具体的函数形式的交互方式是相当随意的。 只要交互类型建模具有足够的灵活性,这就不是一个大问题。 然而,对一个单层来说,这可能具有…

绿联 安装Uptime Kuma - 一款开源的服务器监控和状态检测工具

Uptime Kuma 功能简介 Uptime Kuma 是一款开源的服务器监控和状态检测工具,它帮助您跟踪服务器的可用性、性能和健康状态。 主要功能: 服务器监控 Uptime Kuma 可以监控多个服务器,包括 Web 服务器、数据库服务器、应用程序服务器等。 它会定…

mysql 常见运算符

学习了mysql数据类型,接下来学习mysql常见运算符。 2,常见运算符介绍 运算符连接表达式中各个操作数,其作用是用来指明对操作数所进行的运算。运用运算符 可以更加灵活地使用表中的数据,常见的运算符类型有:算…

什么是搜索引擎(SEO)爬虫它们是如何工作的?

什么是搜索引擎(SEO)爬虫&它们是如何工作的? 你的网站上有蜘蛛🕷️。别抓狂!我说的不是真正的八条腿的蜘蛛🕷️。 我指的是搜索引擎优化爬虫。他们是实现SEO的机器人。每个主要的搜索引擎都使用爬虫来…

CXL事务层(续)

3.2 CXL.cache 3.2.1 概览 CXL.cache协议将设备和主机之间的交互定义为多个请求,每个请求至少有一条相关的响应消息,有时还有数据传输。该接口在每个方向上由三个通道组成:请求(Request)、响应(Response&…

前端-css-01

1.CSS 长度单位和颜色设置 1.1CSS 中的长度单位 px 像素 em 字体大小的倍数(字体默认是16px) % 百分比 1.2CSS 中的颜色设置方式 1.2.1使用颜色名表示颜色 red、orange、yellow、green、cyan、blue、purple、pink、deeppink、skyblue、greenyellow .…

Unity类银河恶魔城学习记录11-7 p109 Aplly item modifiers源代码

Alex教程每一P的教程原代码加上我自己的理解初步理解写的注释,可供学习Alex教程的人参考 此代码仅为较上一P有所改变的代码 【Unity教程】从0编程制作类银河恶魔城游戏_哔哩哔哩_bilibili ItemData_Equipment.cs using System.Collections; using System.Collecti…

高风险IP来自哪里:探讨IP地址来源及其风险性质

在网络安全领域,高风险IP地址是指那些可能涉及恶意活动或网络攻击的IP地址。了解这些高风险IP地址的来源可以帮助网络管理员更好地识别和应对潜在的安全威胁。本文将探讨高风险IP地址的来源及其风险性质,并提供一些有效的应对措施。 风险IP查询&#xf…