sfm三维重建源码_多视图几何三维重建实战系列之COLMAP

本文详细介绍了基于多视图几何的三维重建技术,特别是使用COLMAP进行三维重建的流程,包括数据采集、稀疏重建、深度图估计和稠密重建四个步骤。通过实际操作演示,讲解了COLMAP在稀疏重建和深度图估计中的应用,并分析了其在深度图完整度和连续性方面的问题。此外,还提供了DTU和Tanks and Temples数据集的使用情况,以及自采数据的要求。
摘要由CSDN通过智能技术生成

f91ebb49c018c757412cb516365bc14c.png
作者:浩南
来源:公众号 @3D视觉工坊
链接:多视图几何三维重建实战系列之COLMAP

为了方便大家了解基于多视图立体的三维重建技术,更重要的是能亲手利用开源数据集或者自己采集的影像跑一遍流程,进而对整个流程更为熟悉,本文整理了近年来几种经典的基于传统方法和基于深度学习方法的三维重建技术Pipeline,并详细介绍从多视图影像到深度图估计,再到恢复三维点云的整个过程。

因为三维重建原理复杂,且各种软件或代码之间接口变化多样,无法一言蔽之,因此作者打算分为四篇文章介绍四种经典的三维重建技术Pipeline。分别为:1)传统方法(COLMAP)2)深度学习方法(COLMAP + MVSNet)3)传统方法(COLMAP + OpenMVS)4)深度学习方法(COLMAP + R-MVSNet)多视图几何三维重建实战系列之COLMAP1.概述作为计算机视觉的核心问题,基于多视图立体(以下简称为”MVS”)的三维重建技术已经广泛应用于3D打印、离线地图重建和文物修复等行业应用中。本文先整体介绍三维重建流程(第二节),在介绍传统方法COLMAP的实际操作流程(第三节),最后根据输出结果对COLMAP的重建效果进行分析(第四节)。(注意,这个系列选用的三维重建方式均为基于深度图融合的方法。)2.三维重建流程基于MVS的三维重建技术流程包括以下步骤:数据采集,稀疏重建,深度图估计和稠密重建(图1)。

416c402b411f06fb6d43f1666663dafc.png
图1 基于MVS的三维重建技术流程

对于数据采集。多视角数据来源广泛,我们主要使用的是开源数据集和自采数据进行试验。对于稀疏重建。我们主要利用SfM进行稀疏重建。SfM,(Structure From Motion,从运动中恢复结构),是一种从一组不同视角下拍摄的无序或有序影像中,同时恢复场景三维结构和相机姿态的技术。本文主要以增量式SfM为主,目的是得到场景中的相机姿态和表示场景结构的稀疏点云(图2)。增量式SfM选择无序影像进行特征匹配,并进行几何纠正、三角测量恢复稀疏点云结构,通过已有点云重新估计相对姿态,再进行局部和全局的BA优化。之后逐步向已有的结构中增加视角或影像,进行三角测量和姿态估计,再进行BA优化修正结构数据,最后输出全部的相机参数和稀疏三维点云。

22c79edb4c2fb1437cb684ab701b1c6c.png
图2 增量式SfM结构图

对于深度图估计,目的是恢复参考影像的深度信息。基于MVS的深度图估计,主流传统方法的流程(图3)是:首先,对一个参考影像,筛选用于和参考影像配对计算视差的原始影像(以下,被选中的影像被称为代表。整个代表集合用候选集表示)。其次,参考视差计算的经典框架,计算参考影像上第个特征对应的匹配代价,在通过代价聚合,计算深度值,最后进行深度过滤,优化初始深度图。

a206ebe35da8ad5c566278a9b92e41fb.png
图2 增量式SfM结构图

对于稠密重建,目的是恢复场景的稠密点云。利用深度图配准原理融合深度图,恢复稠密点云。3.COLMAP实际操作以传统方法COLMAP为例,介绍的三维重建的实际操作,行文结构按照数据采集、稀疏重建、深度图估计、稠密重建等四个步骤,希望读者可以参考本节,利用开源数据集或者自采数据,跑通基于传统方法(COLMAP)的三维重建技术。3.1数据集3.1.1数据采集1)DTU数据集DTU数据集[1]是针对于MVS而专门拍摄并处理的室内数据集(图4)。利用一个搭载可调节亮度灯的工业机器臂对一个物体进行多视角的拍摄,每个物体所拍的视角都经过严格控制,所以可以获取每个视角的相机内、外参数。

35c99581c6f549b288c5b890a237e3d0.png
图4 DTU原始数据集

整个数据集由1

  • 2
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值