colmap+openmvs进行三维重建流程全记录

2023-10-12 09:50

本文主要是介绍colmap+openmvs进行三维重建流程全记录,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

windows下的colmap+openmvs进行三维重建流程全记录

1.colmap安装与配置

可参考:https://blog.csdn.net/weixin_44153180/article/details/129334018?spm=1001.2014.3001.5501

2.openmvs安装与配置

可参考:https://blog.csdn.net/rdw1246010462/article/details/121040949

以下步骤建立在已经有colmap和openmvs的可执行程序的条件下

3.colmap生成密集点云

首先新建一个文件夹pro, 在pro文件夹内新建一个image文件夹,把需要用来重建的影像放进去。
运行colmap的可执行文件,点击 File->New Project, Database那一栏点击new,在pro文件夹下新建一个test.db文件,文件路径不要有中文,Images那一栏点击select,选择刚才建的image文件夹,点击save保存
在这里插入图片描述
在界面中点击processing->Feature extraction,选择camera model 为PINHOLE,其他的默认参数就行,点击 Extract, 等待执行完毕
在这里插入图片描述
执行完成后,点击Processing->Feature matching,默认参数就行,点击 Run,等待执行完毕。
在这里插入图片描述
匹配完成后,点击Reconstruction ->Start reconstruction ,这一步就是SFM,执行完毕后得到类似于下面这样的稀疏点云。

在这里插入图片描述
在之前的image文件夹的同级目录下新建一个dense文件夹。
在这里插入图片描述
点击Reconstruction ->Dense reconstruction, 点击select, 选择刚才新建的dense文件夹,这里将要保存的就是dense重建的结果。依次点击Undistortion, Stereo, Fusion, 顺次执行完毕.在这里插入图片描述
等待执行结束后,在colmap界面中点击File->export model as txt , 选择文件夹dense下的sparse文件夹,这是把.bin类型的sfm相关的文件转成txt格式,openmvs只支持txt格式的,所以必须转。转换后得到的文件
在这里插入图片描述
特别注意:打开cameras.txt看一下,如果相机模型是Pinhole,是可以的,如果不是改成pinhole,这里不管你之前选的是不是pinhole,这里都可以直接改没关系,因为openmvs只支持pinhole结果的模型。

4.openmvs 重建纹理模型

在这里插入图片描述
因为我是源码编译的,可以在vs2019中打开openmvs项目
首先,右键 InterfaceCOLMAP,设为启动项目
并且打开项目属性,在配置属性->调试->命令参数中填入对应的参数
在这里插入图片描述
如果没有编译源码,而是直接用了编译好的可执行程序,那就在控制台入openMVS_sample的bin文件夹,执行命令:

InterfaceCOLMAP.exe -i G:\study\Dataset\Zeche\colmappro\dense -o G:\study\Dataset\Zeche\colmappro\dense\scene.mvs --image-folder G:\study\Dataset\Zeche\colmappro\dense\images

这时可以看到dense文件夹下生成了scene.mvs文件
接着可以执行mesh reconstruction, mesh refine , texture等操作
mesh reconstrction
命令参数为:

-w G:\study\Dataset\Zeche\colmappro\dense -i G:\study\Dataset\Zeche\colmappro\dense\scene.mvs -o G:\study\Dataset\Zeche\colmappro\dense\mesh.mvs

如果image不在当前文件夹,这里通过 -w 选项指定workspace的路径
mesh refine
命令参数为:

-w G:\study\Dataset\Zeche\colmappro\dense -i mesh.mvs -o refinemesh.mvs

这一步运行时间比较久,且占用内存巨大。我的电脑带不动,出现了报错,算了跳过这一步
在这里插入图片描述
Meshtexture

-i G:\study\Dataset\Zeche\colmappro\dense\mesh.mvs -w G:\study\Dataset\Zeche\colmappro\dense

运行完之后,下载一个meshlab查看可视化结果,下载地址:
https://github.com/cnr-isti-vclab/meshlab/releases

5.mesh 结果

在这里插入图片描述
我的评价是,略粗糙。。。。可能是没有meshrefine成功的原因…

参考博客

https://blog.csdn.net/tangli_sea/article/details/108569035?spm=1001.2014.3001.5506

这篇关于colmap+openmvs进行三维重建流程全记录的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/195024

相关文章

基于Flask框架添加多个AI模型的API并进行交互

《基于Flask框架添加多个AI模型的API并进行交互》:本文主要介绍如何基于Flask框架开发AI模型API管理系统,允许用户添加、删除不同AI模型的API密钥,感兴趣的可以了解下... 目录1. 概述2. 后端代码说明2.1 依赖库导入2.2 应用初始化2.3 API 存储字典2.4 路由函数2.5 应

Python使用date模块进行日期处理的终极指南

《Python使用date模块进行日期处理的终极指南》在处理与时间相关的数据时,Python的date模块是开发者最趁手的工具之一,本文将用通俗的语言,结合真实案例,带您掌握date模块的六大核心功能... 目录引言一、date模块的核心功能1.1 日期表示1.2 日期计算1.3 日期比较二、六大常用方法详

Python使用DrissionPage中ChromiumPage进行自动化网页操作

《Python使用DrissionPage中ChromiumPage进行自动化网页操作》DrissionPage作为一款轻量级且功能强大的浏览器自动化库,为开发者提供了丰富的功能支持,本文将使用Dri... 目录前言一、ChromiumPage基础操作1.初始化Drission 和 ChromiumPage

Spring AI ectorStore的使用流程

《SpringAIectorStore的使用流程》SpringAI中的VectorStore是一种用于存储和检索高维向量数据的数据库或存储解决方案,它在AI应用中发挥着至关重要的作用,本文给大家介... 目录一、VectorStore的基本概念二、VectorStore的核心接口三、VectorStore的

Jackson库进行JSON 序列化时遇到了无限递归(Infinite Recursion)的问题及解决方案

《Jackson库进行JSON序列化时遇到了无限递归(InfiniteRecursion)的问题及解决方案》使用Jackson库进行JSON序列化时遇到了无限递归(InfiniteRecursi... 目录解决方案‌1. 使用 @jsonIgnore 忽略一个方向的引用2. 使用 @JsonManagedR

使用Folium在Python中进行地图可视化的操作指南

《使用Folium在Python中进行地图可视化的操作指南》在数据分析和可视化领域,地图可视化是一项非常重要的技能,它能够帮助我们更直观地理解和展示地理空间数据,Folium是一个基于Python的地... 目录引言一、Folium简介与安装1. Folium简介2. 安装Folium二、基础使用1. 创建

python之流程控制语句match-case详解

《python之流程控制语句match-case详解》:本文主要介绍python之流程控制语句match-case使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录match-case 语法详解与实战一、基础值匹配(类似 switch-case)二、数据结构解构匹

Nginx如何进行流量按比例转发

《Nginx如何进行流量按比例转发》Nginx可以借助split_clients指令或通过weight参数以及Lua脚本实现流量按比例转发,下面小编就为大家介绍一下两种方式具体的操作步骤吧... 目录方式一:借助split_clients指令1. 配置split_clients2. 配置后端服务器组3. 配

在VSCode中本地运行DeepSeek的流程步骤

《在VSCode中本地运行DeepSeek的流程步骤》本文详细介绍了如何在本地VSCode中安装和配置Ollama和CodeGPT,以使用DeepSeek进行AI编码辅助,无需依赖云服务,需要的朋友可... 目录步骤 1:在 VSCode 中安装 Ollama 和 CodeGPT安装Ollama下载Olla

Python使用DeepSeek进行联网搜索功能详解

《Python使用DeepSeek进行联网搜索功能详解》Python作为一种非常流行的编程语言,结合DeepSeek这一高性能的深度学习工具包,可以方便地处理各种深度学习任务,本文将介绍一下如何使用P... 目录一、环境准备与依赖安装二、DeepSeek简介三、联网搜索与数据集准备四、实践示例:图像分类1.