Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >经典/深度SfM有关问题的整理[通俗易懂]

经典/深度SfM有关问题的整理[通俗易懂]

作者头像
全栈程序员站长
发布于 2022-08-31 07:04:22
发布于 2022-08-31 07:04:22
1.4K0
举报

大家好,又见面了,我是你们的朋友全栈君。

  这篇博客主要是记录一些实践或看论文过程中遇到的一些不好理解的问题及解释。 Q1:SfM里的尺度不变性指的是什么? A1:一般定义下,尺度不变性是指体系经过尺度变换后,其某一特性不变。比如,特征点检测算法SIFT,其检测到的特征点的尺度不变性是通过图像金字塔来实现的。这样,不管原图的尺度是多少,在包含了所有尺度的尺度空间下都能找到那些稳定的极值点,这样就做到了尺度不变。关于SIFT尺度不变性的更详细讲解,可以参考这篇博客Q2:单目相机SfM重建结果的尺度是怎么确定的? A2:传统方法中,单目重建是无法获取重建场景的尺度信息的。因此,要确定重建的尺度,需要使用额外的手段。比如:

  1. 已知某些物体的真实物理尺寸(或人为添加一个便于估算尺寸的物体一起进行重建),将其应用到重建出的三维空间中。
  2. 有其他传感器的辅助,比如深度传感器、LiDAR等可以提供参考。

Q3:在初始化的时候,我们需要通过两张匹配的图像来使用对极几何约束求解相机外参。那么,已知图像对应匹配点,使用归一化八点法求出来的是E矩阵还是F矩阵? A3:在相机内参未知的情况下,如果使用的是像素坐标的对应点,那么求解出来的是F矩阵。在opencv上就有已经实现好的函数findFundamentalMat。然后,如果要进一步求解外参R和t,就需要获得E矩阵,然后通过E=t×R进行求解。E矩阵则需要通过其与F矩阵的关系来求解,即E=KTFK。但是,前面说到,相机内参是未知的。所以我们需要假设一个相机内参,可以设fx=fy=cx=w/2,cy=h/2。这里,w和h分别是图像的宽度和高度。虽然这样结果并不准确(这是必然的),但是这也算是未知内参情况下的一种切实可行的解决方案,且随着加入图像的增多以及BA的不断优化,重建的结果也会越来越好。 Q4:图像的畸变是在BA时候才开始考虑的,那在初始化(第一次三角化和pnp)的时候怎么办? A4:如果没有对相机进行标定,或者重建的图像是一些网图的话,那么初始化的时候确实是没有考虑图像畸变的,这确实会造成不正确的结果。但是,对于增量式SfM而言,一开始其结果都是不准确的,需要靠后期不断加入新图像,不断进行BA来进行优化。 Q5:深度学习方法中,图像的特征金字塔是怎么匹配的? A5:特征金字塔的构建方法一般是,将原图作为最底层的图像(分辨率最高),然后依次进行下采样,获得更高层的图像。在匹配时,将所有下采样得到的图像再上采样到与原始图像相同尺寸的大小,然后全部concatenate在一起,进行下一步处理。比如BANet就用到了图像金字塔。 Q6:什么是逆深度空间,为什么要用逆深度空间? A6:逆深度(Inverse depth)是近年来SLAM研究中出现的一种广泛使用的参数化技巧。它使用深度的倒数(也就是逆深度)来进行参数化,因为逆深度的分布更贴近高斯分布。在实际应用中,逆深度也具有更好的数值稳定性,从而逐渐成为一种通用的技巧。其他常用的参数化方式,比如用(x, y, z)表示三维点坐标,xyz三个参数都是离散随机的;而使用图像坐标(u, v)再加上一个深度信息d,也可以表示三维点坐标。 Q7:深度学习论文中的warp是指什么? A7:warp就是将一个图像上的点变换到另一张图像上。比如在构建cost volume的时候,会需要将源图像上的像素点,通过一系列虚拟平面,warp到目标图像上,然后计算其代价。 Q8:每个虚拟平面上的每个像素点的值是什么? A8:每个像素点的值为该点的损失(cost)。 Q9:平面扫描(plane sweep)时的一系列虚拟平面和左右视图是一样大小的吗? A9:通常假设的一系列虚拟平面是垂直于目标视图z轴的,这样的话,这些虚拟平面就和目标视图的长宽是一样的了。而在将源视图warp到目标视图上的时候,若其坐标范围超出了目标视图的长宽,则直接舍弃;而虚拟平面上没有cost(即没有对应点)的地方通常设为0。 Q10:增量式SfM重建出的场景尺度是由初始匹配对的尺度决定的。通常SfM重建出的尺度与场景的实际尺度是不同的,那么,该如何将重建尺度与实际尺度进行统一? A10:SfM在进行三维重建时,并没有除图像以外的其他位置、或比例尺信息,本质上是在一个任意坐标系下进行三维重建的。因此,重建的结果与实际的场景之间相差一个相似变换(尺度、旋转、平移)。可以通过控制点或者GNSS信息进行绝对定向,也可以通过已知物体的真实尺度与重建尺度,进行缩放求解。 Q11:如果已经拥有一个场景重建的真值,现在又重建了一个三维场景,如何将新的场景与真值进行尺度、位置等的配准? A11:首先分别求解两个点云场景的坐标重心,然后分别获得两个重心到对应场景最远的一个点,将其连成一条线。基于这两条向量就能实现缩放旋转的配准了。当然这样误差可能会比较大,可以通过取更多的点来进一步减小误差。 Q12:track就是特征点吗? A12:一个track是同一三维点在不同图像上被观测到的对应像素点,将这些像素点合起来称为track。track被观测到的次数越多表示这个三维点越稳健。在OpenMVG里,track只有2的三维点是会被直接舍弃掉的。

Q13:本质矩阵E与基础矩阵F有什么关系,它们与像素点和归一化坐标点之间怎么对应? A13:有如下三个等式:

E=t[×]R F=K-TEK-1 x2TEx1=p2TFp1=0

  其中,R和t分别是第二个相机的旋转矩阵和平移向量,t[×]则是向量t的反对称矩阵,K是相机内参,x表示归一化平面上的点,p表示像素坐标系下的像素点,p与x之间存在关系p=Kx。 Q14:如何将重建出来的场景与真值进行对齐? A14:SfM重建出来的场景是尺度未定的,与真值(如果有的话)之间会相差一个相似变换,这个相似变换的求解及代码可以参考相机对齐方法介绍及实现代码(相似变换,包含旋转R、平移t、尺度s)。 *未完待续,如果还有其他问题,后续会再进行补充。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/151330.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
SLAM面试问题大全
秋招求职,职位意向 SLAM 相关:做自动驾驶, AR/VR,自主移动机器人面试过程必然有相应问题抛出。
用户9831583
2022/06/16
1.1K1
SLAM面试问题大全
SFM原理简介「建议收藏」
小孔模型成的是倒像,为了表述与研究的方便,我们常常将像面至于小孔之前,且到小孔的距离仍然是焦距f,这样的模型与原来的小孔模型是等价的,只不过成的是正像,符合人的直观感受。 在这种情况下,往往将小孔称作光心(Optical Center)。
全栈程序员站长
2022/06/24
2.5K0
SFM原理简介「建议收藏」
机器视觉-相机内参数和外参数
一句话就是世界坐标到像素坐标的映射,当然这个世界坐标是我们人为去定义的,标定就是已知标定控制点的世界坐标和像素坐标我们去解算这个映射关系,一旦这个关系解算出来了我们就可以由点的像素坐标去反推它的世界坐标,当然有了这个世界坐标,我们就可以进行测量等其他后续操作了~上述标定又被称作隐参数标定,因为它没有单独求出相机的内部参数,如相机焦虑,相机畸变系数等~一般来说如果你仅仅只是利用相机标定来进行一些比较简单的视觉测量的话,那么就没有必要单独标定出相机的内部参数了~至于相机内部参数如何解算,相关论文讲的很多~
小白学视觉
2022/02/14
9870
机器视觉-相机内参数和外参数
SFM算法流程
Figure1:Block diagram of structure from motion
全栈程序员站长
2022/08/31
1.8K0
SFM算法流程
基础矩阵,本质矩阵,单应性矩阵讲解
最近公众号组织了ORB-SLAM2理论与代码的学习会,正常进行中,有兴趣的可以积极参与第三期:一起来学SLAM
点云PCL博主
2019/08/08
9.2K0
基础矩阵,本质矩阵,单应性矩阵讲解
KinectFusion基于深度的实时稠密三维重建&TSDF开山之作
论文信息:Newcombe R A, Izadi S, Hilliges O, et al. KinectFusion: Real-time dense surface mapping and tracking[C]//2011 10th IEEE International Symposium on Mixed and Augmented Reality. IEEE, 2011: 127-136.
3D视觉工坊
2021/01/04
1.8K0
KinectFusion基于深度的实时稠密三维重建&TSDF开山之作
基于深度学习的单目深度估计综述
深度估计是计算机视觉领域的一个基础性问题,其可以应用在机器人导航、增强现实、三维重建、自动驾驶等领域。而目前大部分深度估计都是基于二维RGB图像到RBG-D图像的转化估计,主要包括从图像明暗、不同视角、光度、纹理信息等获取场景深度形状的Shape from X方法,还有结合SFM(Structure from motion)和SLAM(Simultaneous Localization And Mapping)等方式预测相机位姿的算法。其中虽然有很多设备可以直接获取深度,但是设备造价昂贵。也可以利用双目进行深度估计,但是由于双目图像需要利用立体匹配进行像素点对应和视差计算,所以计算复杂度也较高,尤其是对于低纹理场景的匹配效果不好。而单目深度估计则相对成本更低,更容易普及。
计算机视觉
2021/03/17
2K0
基于深度学习的单目深度估计综述
ORB-SLAM3 细读单目初始化过程(上)
学习ORB-SLAM3单目视觉SLAM中,发现有很多知识点需要展开和深入,同时又需要对系统有整体的认知,为了强化记忆,记录该系列笔记,为自己图方便,也希望对大家有所启发。
3D视觉工坊
2020/12/11
1.4K0
ORB-SLAM3 细读单目初始化过程(上)
基于深度学习的单目深度估计综述
文章:Monocular Depth Estimation Based On Deep Learning: An Overview
3D视觉工坊
2020/12/11
2.8K0
基于深度学习的单目深度估计综述
来聊聊双目视觉的基础知识(视察深度、标定、立体匹配)
人类具有一双眼睛,对同一目标可以形成视差,因而能清晰地感知到三维世界。因此,计算机的一双眼睛通常用双目视觉来实现,双目视觉就是通过两个摄像头获得图像信息,计算出视差,从而使计算机能够感知到三维世界。一个简单的双目立体视觉系统原理图如图 1 所示。
AI算法修炼营
2020/07/22
13.8K0
来聊聊双目视觉的基础知识(视察深度、标定、立体匹配)
相机标定——张正友棋盘格标定法
其中,R为旋转矩阵,t为平移向量,因为假定在世界坐标系中物点所在平面过世界坐标系原点且与Zw轴垂直(也即棋盘平面与Xw-Yw平面重合,目的在于方便后续计算),所以zw=0,可直接转换成式1的形式。其中变换矩阵
全栈程序员站长
2022/08/24
7K0
相机标定——张正友棋盘格标定法
双眼可以测距和建立立体环境,双摄像头可以吗?
这方面一直是计算机视觉的研究热点,并且已经有了不错的成果!本人研究生阶段主要做三维重建,简单写一些自己所了解的。
3D视觉工坊
2023/04/30
7460
双眼可以测距和建立立体环境,双摄像头可以吗?
SIFT算法详解
如果你学习SIFI得目的是为了做检索,也许 OpenSSE 更适合你,欢迎使用。
bear_fish
2018/09/19
5.1K0
SIFT算法详解
现实虚拟化:从三维重建到逆渲染(Inverse Rendering)
原文:https://zhuanlan.zhihu.com/p/568205134
一点人工一点智能
2023/02/02
1.8K0
现实虚拟化:从三维重建到逆渲染(Inverse Rendering)
原创 | 《相机标定》深入理解原理与实战(一)
首先来看相机标定的意义,我们都知道,我们拍摄的图片是二维的,但是真实世界是三维的。一个场景是如何从三维变成二维的呢?相机起到的就是这个作用。我们可以把相机看成一个函数,输入是一个三维的场景,输出是我们获得的二维的图片,这里可以认为是灰度图。我们平时看到的 RGB 彩色图是通过 RGB 三通道来实现的,每个通道可以认为是一张灰度图。从三维世界到二维世界的这个映射关系是不可逆的,也就是说无法仅通过一张二维图来得到真实的三维世界。
数据派THU
2021/09/29
3.9K0
原创 | 《相机标定》深入理解原理与实战(一)
三维重建技术综述
来源丨https://blog.csdn.net/qq_30815237/article/details/91897736
3D视觉工坊
2021/01/13
2.8K0
三维重建技术综述
基于特征点的视觉全局定位技术
作者简介:英年早肥,美团无人配送平台,地图与定位组成员,负责视觉定位、里程计相关算法,致力于在流浪地球前实现自动驾驶
美团无人配送
2019/04/26
3.9K0
基于特征点的视觉全局定位技术
基于单目视觉的三维重建算法综述
三维计算机视觉在计算机视觉是偏基础的方向,随着2010年阿凡达在全球热映以来,三维计算机视觉的应用从传统工业领域逐渐走向生活、娱乐、服务等,比如AR/VR,SLAM,自动驾驶等都离不开三维视觉的技术。
SIGAI学习与实践平台
2019/03/01
4.9K0
基于单目视觉的三维重建算法综述
无需相机信息,UniDepth 自提示相机模块,仅从单一图像跨领域重建度量3D场景 !
精确的逐像素深度估计对于理解几何场景结构至关重要,其应用包括3D建模[10]、机器人学[11, 63]和自动驾驶车辆[38, 51]。然而,为了有效地进行3D重建,提供可靠的度量尺度深度输出是必要的,这促使了单目度量深度估计(MMDE)这一具有挑战性和内在不适定问题的任务。
未来先知
2024/08/08
7170
无需相机信息,UniDepth 自提示相机模块,仅从单一图像跨领域重建度量3D场景 !
多楼层室内环境下的三维几何重建
在智能制造、AR、机器人、室内导航等领域,三维重建都有很广泛的应用前景。随着消费级RGB-D相机的普及,三维重建的应用场景也得到了进一步的扩展。奥比中光自主研发的深度相机Astra Pro的成本相对较低,同时也可以方便、快捷地对物体进行3D成像,并且具有精度高的优点。针对三维重建相关技术进行研究和加以应用,必将极大程度地促进计算机视觉等领域的发展,并进一步深度影响工业生产活动以及人们的生活方式。
点云PCL博主
2021/09/15
1.3K0
多楼层室内环境下的三维几何重建
推荐阅读
相关推荐
SLAM面试问题大全
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档