当前位置: 首页 > news >正文

使用colmap自制3DGaussian_Splatting数据集

使用说明

colmap一般有两种下载路径:

一是部署安装在linux之类平台的,这种需要进行编译才能够使用;

二是部署在windows平台的,官方提供了编译好的版本,可以直接拿来使用;

本文章针对windows平台,不提供编译安装的教程。

colmap有支持GPU版本和非GPU版本,根据自己的实际情况选择;

在使用colmap之前,如果你的数据集是拍摄的视频,可以使用ffmpeg对视频进行抽帧操作,获得一定数量的图片。这里colmap是针对一系列图片进行拍摄位姿的还原;

Colmap的安装

下载链接:

https://github.com/colmap/colmap/releases   

下载好后直接解压到某个文件夹里即可。如图所示,双击这里的COLMAP.bat脚本就能够直接使用。

但是为了方便后续能够在终端使用colmap,建议将该脚本添加到环境变量,方便后续可以使用colmap指令。

成功添加环境变量后,尝试运行可以得到如下结果:

Colmap的使用

使用colmap自制符合3DGaussian_Splatting数据集的方式有多种,这里提供一种笔者实验成功的方案,后面还有几种方案也会简单聊一下:

方案一:使用官方提供的convert.py脚本

这个脚本会自动调用安装在电脑中的colmap(前提是配置好了环境变量,要不然会识别不到)。如果是部署在远程服务器的,也可以直接将convert.py脚本下载下来。

运行convert.py脚本前,需要保证你的文件夹名称以及结构是这样的(因为这些名称在convert.py脚本中写死了):

注意这里一定要有名为“input”的文件夹,图片名称随意,my_dataset这个文件夹名称也随意;

运行后生成的内容可以先不用管,运行前需要保证整体的文件结构如上图所示。

整理好文件结构后,可以通过如下指令运行:

注意先跳转到含有conver.py的文件目录执行,convert.py也不依赖任何自定义库,能够方便运行。

python convert.py -s my_dataset

运行后的的完整情况就如上图所示,之后就可以将处理好的数据集使用train.py脚本进行训练啦。

方案二:使用colmap的自动重建图像功能

在终端输入:

colmap.bat

或者通过直接双击colmap.bat直接启动colmap的可视化窗口进行数据集处理;

这里使用colmap的自动重建功能制作数据集;

注意底下有一个Dense model的按钮,这里建议把他关闭。使用colmap重建时会有两个选项,一是稀疏重建,二是稠密重建。就笔者个人使用感受来说,稀疏重建得到的数据集,在高斯泼溅的训练还原中,效果已经足够好了。官方使用的也是稀疏重建。

重建完成后会弹出几个确认窗口,点击“OK”即可;

重建后会自动生成拍摄位姿的可视化情况;

笔者这里是使用手机对“放在书本上的一个水杯”进行了旋转一周的拍摄;

通过这种方式也能够获得数据集,但是存在一点小问题,就是这种自动重建生成的数据集,是带畸变的。究其原因,是colmap默认使用的是带畸变的相机模型,这不符合3D高斯泼溅中要求使用无畸变的相机模型。

这个问题或可通过 colmap image_undistorter 指令进行纠正;

可参考文章链接:对于colmap数据集转化的问题_assertionerror: colmap camera model not handled: o-CSDN博客

这里笔者没有进一步实验,感兴趣可自行探索。

方案三:使用colmap逐步制作数据集,设置参数进行约束

整个colmap制作数据集的过程大致包含:

特征提取(feature_extractor)->特征匹配(exhaustive_matcher)->稀疏重建(mapper)->去畸变(image_undistorter),这几个过程colmap提供了对应的指令参数进行处理。

这种方法笔者这里不做进一步的介绍。可以通过colmap --help查询相关指令用法,自行探索。

可能存在的报错

在初次使用colmap时可能存在需要下载一个.bin文件的问题,如果长时间卡在那里无法下载,可以尝试设置临时代理,快速成功下载好该文件。

设置代理的方法可参考链接:

简单聊聊代理服务器-CSDN博客

重建结果展示

colmap相机位姿可视化结果

这里仅使用少量图片,相机位姿如图所示(非全身环绕拍摄):

3DGaussian_Splatting模型重建结果

可以看到,正面效果是非常好的,对于侧面和背面等缺少视角的位置,则重建效果较差。

http://www.dtcms.com/a/331090.html

相关文章:

  • OpenCV 形态学操作
  • spring mvc HttpMessageConverter 消息转换器
  • 性能测试环境的软硬件配置
  • SpringMVC基本原理和配置
  • 进程、进程命令、进程相关编程
  • 19. 什么是 TypedArray
  • Subarray Sums II
  • EtherCAT概念介绍
  • Python入门第1课:环境搭建与第一个程序“Hello World”
  • python学习DAY41打卡
  • 前端已死,AI技术正在重塑前端软件工程师
  • 护照查验接口牢筑跨境场景安全防线-JavaScript集成示例
  • Elasticsearch ABAC 配置:实现动态、细粒度的访问控制
  • 玩转Docker | 使用Docker部署JSON格式化工具ZJSON
  • Java-数构map和set
  • 高效解决 pip install 报错 SSLError: EOF occurred in violation of protocol
  • P5967 [POI 2016] Korale 题解
  • Transformer之多头注意力机制和位置编码(二)
  • Canon PowerShot D30相机 CHDK 固件 V1.4.1
  • 5.Ansible-playbook-模块介绍(知识点补充)
  • 【Postgresql】实现 PostgreSQL 全量审计日志:记录所有 SQL 操作及来源
  • 【C++】细说继承(2w字详解)
  • ROS机器人云实践案例博客建议和范文-AI版本
  • imx6ull-驱动开发篇24——Linux 中断API函数
  • MATLAB绘制各种心形曲线
  • window显示驱动开发—在混合系统中使用跨适配器资源
  • nginx-集成prometheus监控(k8s)
  • GitHub 热榜项目 - 日榜(2025-08-14)
  • 一、linux内存管理学习(1):物理内存探测
  • 京东商品列表API开发指南