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力!!!

相关推荐
Grits43 分钟前
VMware Tools工具安装脚本(CentOS & Ubuntu)
linux·ubuntu·centos
命里有定数2 小时前
Ubuntu问题 -- 允许ssh使用root用户登陆
linux·ubuntu·ssh
yimengsama2 小时前
Node.js | Yarn下载安装与环境配置
前端·经验分享·笔记·npm·node.js·电脑·yarn
yimengsama3 小时前
Node.js | npm下载安装及环境配置教程
前端·经验分享·笔记·webpack·npm·node.js·电脑
xx小寂3 小时前
【ubuntu18.04】vm虚拟机复制粘贴键不能用-最后无奈换版本
ubuntu
宁静致远20213 小时前
VMware 17虚拟Ubuntu 22.04设置共享目录
linux·ubuntu·嵌入式linux开发
week_泽3 小时前
DHCP、DNS域名系统(Domain Name System)、Samba、SSH (Secure Shell)
linux·ubuntu·ssh
醒了就刷牙4 小时前
《Self-Supervised MultiModal Versatile Networks》简要
人工智能·深度学习·学习·计算机视觉
slomay4 小时前
论文PDF页面无法下载PDF
经验分享·pdf