Multi-View Stereo: A Tutorial笔记(一)

本文探讨了多视图立体(MVS)与结构从运动(SFM)在三维重建领域的关键技术与流程,包括图像采集、相机模型、SFM、束调整(BA)及MVS等内容,重点介绍了光度一致性与高效优化算法。

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

       通过SFM获得相机的姿态和特征点的位置后(若采用单目可能还存在尺度不确定问题)对于重建问题还远远不够,因为特征点往往是一些稀疏的点,因此下一步是通过MVS获得重建目标的稠密表示。业内神书Multiple View Geometry in Computer Vision 当然是权威,但作为初学不免有些杂糅,所以参考furukawa 的MVS教程。

本书主要讨论两个内容:光度一致性的鲁棒实现;高效的优化算法。

chapter 1:introduction

MVS的pipeline主要有如下过程:

·图像采集

·计算每副图像的相机的内外参数(SFM)

·通过获得的内外参数与对应的图像重建三维几何(这里作者用3D geometry表示,感觉对于平面问题还是很难解决,往下看再回来修改此处)

·材质纹理映射

下面分别介绍这几个步骤

1.1 图像采集

       其实我觉得可以分为有序和无序两种,有序的是采集可控,包括光照条件可控和采集序列可控。从互联网上采集同类别图像或者从不同设备不同空间时间获得的图像都为无序图像。一天建成罗马项目和百度的萨德满都复原计划都为无序图像重建。

       本节也提到了SLAM和SFM的关系:SFM主要计算无序图像(这里的无序不是我上面提到的,他是指时间上无序,对应的有序图像为视频序列),由于只是建图,所以对实时性要求不高通常离线操作。VSLAM主要是实时的从视频序列中获得相机的位姿有时也会实时建图但通常稠密地图效果很差。

1.2 相机投射模型

       相机物理模型不做介绍,其可分为内参和外参,内参K通过标定可以获得,外参就需要SFM的知识。

其中内参:


是x、y方向的焦距,s是传感器的倾斜角度,是相机坐标到图像坐标的平移量。

外参分为旋转矩阵R和平移向量T,但时这种表示只能相乘没有加法,但优化问题需要导数,导数需要加法,所以通常用流行的李群和李代数表示,可参考高翔的博客。



通常情况下我们假设针孔相机模型的s=0,   所以这里我们只需求解7个参数即可。

1.3 SFM

     SFM就是通过特征匹配和对极几何求解相机的姿态和特征点空间位置,这里还不确定里面的优化方法是否和SLAM一样。

     其pipeline如下:

     



SFM不是本文的重点所以未多做介绍。

1.4 Bundle Adjustment

    给定某副图像的相机参数,和路标点,以及路标点j在图像i上的投影计算重投影误差



是所有能观测到路标j的相机,这个很重要,其实不是所有的路标都能被相机观测到,这就使之后的BA求解具有稀疏性,从而可以避免大型矩阵的暴力求逆过程。

一般用平方根误差来表述:



用BA优化的另一个好处是可以添加更多的传感器约束方程,如GPS、IMU的融合,本文没给公式,从其他论文摘抄一个



后面两项分别是IMU和GPS数据,但是这个公式没有加惩罚想系数不知道为什么。等用到再去深究。

1.5 MVS

MVS是当双目立体视觉发展到一定程度后自然产生的问题,其主要是解决SFM的重建过于稀疏问题。一副图像上的一个像素,找到另一幅图像对应的像素。其需要两个过程:

·找到另一幅图像对应像素的高效方法

·一个测量上述方法找到的对应点的匹配程度

如果相机的内外参不知道,如光流法,对于像素的匹配是在二维平面上搜索。当知道了相机的内外参之后,通过几何约束匹配点可从极线上进行一维搜索。

对于测量匹配点的相似程度我们叫做photo-consistency将在第二章进行说明。

cd C:\Program Files\FlightGear fgfs --fg-root=C:\Program Files\FlightGear\data --aircraft=ufo --in-air --fdm=null --telnet=5501 --telnet=5502 --telnet=5503 --disable-ai-traffic --disable-real-weather-fetch --disable-random-objects --disable-terrasync --disable-clouds --disable-sound --disable-panel --disable-hud --disable-specular-highlight --timeofday=noon --prop:/sim/rendering/multi-sample-buffers=1 --prop:/sim/rendering/multi-samples=2 --prop:/sim/rendering/draw-mask-clouds=false --prop:/sim/rendering/draw-mask-terrain=true --prop:/sim/rendering/draw-mask-objects=true --prop:/sim/rendering/draw-mask-lights=true --prop:/sim/rendering/draw-mask-internal=true --prop:/sim/rendering/draw-mask-cockpit=true --prop:/sim/rendering/draw-mask-effects=true --prop:/sim/rendering/draw-mask-overlay=true --prop:/sim/rendering/draw-mask-world=true --prop:/sim/rendering/draw-mask-panel=true --prop:/sim/rendering/draw-mask-vr=true --prop:/sim/rendering/draw-mask-2d=true --prop:/sim/rendering/draw-mask-3d=true --prop:/sim/rendering/draw-mask-sky=true --prop:/sim/rendering/draw-mask-shadows=true --prop:/sim/rendering/draw-mask-cabin=true --prop:/sim/rendering/draw-mask-weather=true --prop:/sim/rendering/draw-mask-stereo=true --prop:/sim/rendering/draw-mask-internal-cockpit=true --prop:/sim/rendering/draw-mask-internal-windows=true --prop:/sim/rendering/draw-mask-internal-instruments=true --prop:/sim/rendering/draw-mask-internal-overlay=true --prop:/sim/rendering/draw-mask-internal-effects=true --prop:/sim/rendering/draw-mask-internal-lights=true --prop:/sim/rendering/draw-mask-internal-world=true --prop:/sim/rendering/draw-mask-internal-panel=true --prop:/sim/rendering/draw-mask-internal-3d=true --prop:/sim/rendering/draw-mask-internal-sky=true --prop:/sim/rendering/draw-mask-internal-cabin=true --prop:/sim/rendering/draw-mask-internal-weather=true --prop:/sim/rendering/draw-mask-internal-stereo=true --prop:/sim/rendering/draw-mask-internal-shadow=true --prop:/sim/rendering/draw-mask-internal-stall=true --prop:/sim/rendering/draw-mask-internal-aoa=true --prop:/sim/rendering/draw-mask-internal-thermal=false --prop:/sim/rendering/draw-mask-internal-ice=false --prop:/sim/rendering/draw-mask-internal-glass=true --prop:/sim/rendering/draw-mask-internal-dead=true --prop:/sim/rendering/draw-mask-internal-reflection=true程序显示错误unknown command-line option: enable-hud-2d怎么解决
05-10
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值