Ubuntu终端跑colmap实验记录——生成sparse和poses_bounds.npy

目录

前言:

colmap生成sparse

[1.打开工程进行自动重建(不需要)------just 避雷!](#1.打开工程进行自动重建(不需要)——just 避雷!)

2.单步重建------生成sparse图像

[2.1 提取特征点](#2.1 提取特征点)

[2.2 特征点匹配](#2.2 特征点匹配)

[2.3 稀疏重建](#2.3 稀疏重建)

3.使用LLFF生成poses_bounds.npy


前言:

我一直习惯使用autodl的服务器,在上面配置了nerfstudio的环境,详细可以看我的这篇博客:

Windows&&Linux跑通BAD-RFs实战__无数踩坑坑坑记录_python 安装 ns-train-CSDN博客

而我现在需要使用自己合成的数据集去运行Bad-NeRF,发现仅仅只是输入图象视角是不行的,还是需要使用colmap生成sparse和poses_bounds.npy形成视角数据。因为colmap需要使用GUI可视化界面,所以我尝试了用VNCViewer可视化autodl界面,但是始终显示"没有加密的界面",一直黑屏,遂放弃。所以我尝试使用终端进行文件生成。这是一条记录贴,可以作为使用自己的数据集训练bad-nerf的参考。

colmap生成sparse

参考文献:

一文搞懂ubuntu下colmap的使用方法_ubuntu colmap-CSDN博客

这里面介绍的步骤很全面,但是对于bad-nerf而言有些不是很需要,比如生成dense文件夹。

1.打开工程进行自动重建(不需要)------just 避雷!

代码:

复制代码
DATASET_PATH=/path/to/project  #工程文件夹里必须包含一个叫做images的文件夹,里面放着重建所需要的图片

colmap automatic_reconstructor \
 
     --workspace_path $DATASET_PATH \
 
     --image_path $DATASET_PATH/images

这一步要跑很久,我从凌晨一点跑到早上七点还是没有跑出来,最后生成的图像位姿数据也是很少,试了几次每一次生成位姿的图像都只有三张或者四张。(生成位姿图像名称的步骤详见3节)

最后尝试删去这步之后100张图象生成了80张图像的位姿数据。

2.单步重建------生成sparse图像

2.1 提取特征点

代码:

复制代码
DATASET_PATH=/path/to/dataset

./colmap feature_extractor \
   --database_path $DATASET_PATH/database.db \  # 输出:特征点保存至数据库database.db
   --image_path $DATASET_PATH/images            # 输入:多视图图像

这一步顺利运行!

2.2 特征点匹配

复制代码
./colmap exhaustive_matcher \
   --database_path $DATASET_PATH/database.db    # 输入输出:数据库文件database.db

2.3 稀疏重建

复制代码
mkdir $DATASET_PATH/sparse    # 新建sparse文件夹
./colmap mapper \
    --database_path $DATASET_PATH/database.db \    # 输入:数据库文件database.db
    --image_path $DATASET_PATH/images \            # 输入:多视图图像
    --output_path $DATASET_PATH/sparse             # 输出:`sparse`文件夹

最后在目标路径上生成了如下路径的文件:

复制代码
└── sparse        # 稀疏重建结果
    └── 0
        ├── cameras.bin        # 相机内参
        ├── images.bin         # 相机位姿
        ├── points3D.bin       # 稀疏3D点
        └── project.ini

3.使用LLFF生成poses_bounds.npy

用cd命令转到nerfstudio文件夹下,下载LLFF,命令如下:

复制代码
# autodl上需要科学上网从Github上直接git下载,博主下载到nerf-pytorch下
git clone https://github.com/Fyusion/LLFF.git
# 激活虚拟环境
conda activate nerfstudio
# eg: conda activate nerf_mvs
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple scikit-image
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple imageio

然后进入LLFF文件夹下的imgs2poses.py文件,新增如下内容,default='里面是sparse所在目录的绝对路径',并将参数'scenedir'修改为是'--scenedir'。

注意!这里新增的default内容的上一级目录下的image文件夹命名必须是images。

然后输入以下命令运行img2poses.py:

复制代码
# 注意要在imgs2poses.py所在目录执行命令
python imgs2poses.py
# 或者附带imgs2poses.py的路径
python XXXX\imgs2poses.py
# eg: python LLFF\imgs2poses.py

最后出现了很多人经常出现的错误:

根据这位博主的解决方案,在LLFF/llff/poses/pose_utils.py下加入了这段代码:

复制代码
    #---------输出匹配到位姿的图片名---------
    for i in np.argsort(names):
       print(names[i],end=' ')
    #---------输出匹配到位姿的图片名---------

最后显示出了计算出位姿的图像名称,把没有生成的图像删除,重新运行第二节的命令,但是还是出现了一样的错误。

根据这位博主的解决方案修改了LLFF/llff/pose_utils.py的内容,最后这种结果才算成功!

(我的结果忘记截图了,生成了Depth stats巴拉巴拉的算成功,并且对应文件夹下生成了poses_bounds.npy文件)

生成之后就可以用自己的数据集使用BAD-NeRF力!!!

相关推荐
十年磨一剑~3 小时前
LVDS 背光控制问题排查与 DTS 修正文档
linux·ubuntu
拜小白3 小时前
【论文解读】NadirFloorNet:用少量已配准全景图重建多房间户型图
计算机视觉·全景图
wukong60264 小时前
迈富时、泓动数据、智推时代GEO的功能价格效果对比
经验分享
辰辰观影4 小时前
户外无信号内存小怎么缓存看视频?省内存教程分享
论文阅读·经验分享
Zentceh6 小时前
PixelClean 这类 AI 降噪算法是怎么工作的?从 RAW 域到 GAN 色彩重建的技术拆解
图像处理·人工智能·科技·算法·计算机视觉·车载系统·智能硬件
小草cys6 小时前
ubuntu忘记密码怎么重置
安全·ubuntu·密码重置
云半S一7 小时前
Agent 学习总结一
经验分享·笔记·学习·agent
从小白到软工8 小时前
4-1 指针
c语言·开发语言·数据结构·经验分享·ai编程
宋明河8 小时前
windows与ubuntu双系统主机下ubuntu访问windows磁盘是只读
linux·windows·ubuntu
ss.li9 小时前
rppg阅读笔记 2026.10.15
图像处理·python·计算机视觉