python 稠密重建_使用openMVG+PMVS实现视觉三维重建

本文介绍了如何使用开源库openMVG和PMVS进行视觉三维重建,详细阐述了从稀疏点云到稠密点云的重建过程,并提供了Ubuntu16上的安装步骤和一个城堡重建的实例,最后讨论了常见问题和避障应用中的点云融合。

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

一、什么是视觉三维重建?

我们知道,照相机的原理是将一个三维场景投影到二维平面。所谓视觉三维重建,顾名思义就是从已有的二维图像中复原原始三维场景。

三维重建的原理大致如下:

首先,通过多角度拍摄或者从视频中提取得到一组图像序列,将这些图像序列作为三维重建系统的输入;

然后分析多个视角的图像,根据纹理特征提取出稀疏特征点(稀疏点云),通过这些特征点估计相机位置和参数;

在得到相机参数并完成特征点匹配后,就可以获得更稠密的点云(这些点可以附带颜色,从远处看就像还原了物体本身一样,但从近处能明显看出它们只是一些点);

最后根据这些点重建物体表面,并进行纹理映射,就还原出三维场景和物体了。

基于图像的三维重建基本流程

多张图像的特征点匹配

多视图稠密重建(MVS)

目前,有不少开源的三维重建系统,本文简单介绍使用OpenMVG(有CUDA的可以用colmap)+PMVS(OpenMVS安装的坑比较多),实现三维场景的三维重建。

二、OpenMVG/PMVS概述

openMVG (Open Multiple View Geometry):开源多视角立体几何库,这是一个 cv 界处理多视角立体几何的著名开源库,信奉“简单,可维护”,提供了一套强大的接口,每个模块都被测试过,尽力提供一致可靠的体验。

openMVG 实现以下典型应用:

解决多视角立体几何的精准匹配问题;

提供一系列 SfM 需要用到的特征提取和匹配方法;

完整的 SfM 工具链(校正,参估,重建,表面处理等);

openMVG 尽力提供可读性性强的代码,方便开发者二次开发,核心功能是尽量精简的,所以你可能需要其它库来完善你的系统。

CMVS-PMVS(a modified version):将运动结构(SfM)软件的输出作为输入,然后将输入图像分解成一组可管理大小的图像簇。 MVS 软件可以用来独立和并行地处理每个簇,其中来自所有簇的重建不错过任何细节。

常见的多视图三维重建管线:重建稀疏点云-Structure from Motion(Sfm)→重建稠密点云-Multi-View Stereo(MSV)→重建表面-Surface Generation(SG)→纹理映射-Texture Mapping(TM)

在本文中,OpenMVG负责从原始图像到稀疏点云,PMVS负责重建稠密点云、重建表面和纹理映射。我这里还使用了Meshlab查看模型(点云)生成效果。

三、安装OpenMVG+PMVS(Ubuntu16)

OpenMVG安装过程:(参考:openMVG官方BUILD.md)

# 安装依赖

sudo apt-get install libpng-dev libjpeg-dev libtiff-dev libxxf86vm1 libxxf86vm-dev libxi-dev libxrandr-dev graphviz

# 克隆代码

git clone --recursive https://github.com/openMVG/openMVG.git

# configure && build

mkdir openMVG_Build && cd openMVG_Build

cmake -DCMAKE_BUILD_TYPE=RELEASE ../openMVG/src/ -DOpenMVG_BUILD_TESTS=ON

sudo cmake --build . --target install

# test

make test

ctest --output-on-failure -j

# .bashrc

exportPATH=$PATH:/home/work/tools/openMVG_Build/Linux-x86_64-RELEASE/

CMVS-PMVS安装过程:

git clone https://github.com/pmoulon/CMVS-PMVS.git

cd CMVS-PMVS

mkdir build && cd build

cmake ../program/

make

sudo cp main/pmvs2 main/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值