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

相关推荐
struggle20252 小时前
2025开源DouyinLiveRecorder全平台直播间录制工具整合包,多直播同时录制、教学直播录制、教学视频推送、简单易用不占内存
图像处理·计算机视觉·开源·音视频·语音识别
人工智能教学实践3 小时前
【毕业与课程大作业参考】基于 yolov8+pyqt5 界面自适应的表情识别检测系统 demo
人工智能·计算机视觉·目标跟踪
达芬奇科普4 小时前
在线免费快速无痕去除照片海报中的文字logo
经验分享·生活
hunter2062064 小时前
如何监控ubuntu系统某个程序的运行状态,如果程序出现异常,对其自动重启。
linux·chrome·ubuntu
BugNest4 小时前
计算机视觉和图像处理
图像处理·人工智能·机器学习·计算机视觉·ai
泪不是Web妳而流7 小时前
BurpSuite抓包与HTTP基础
网络·经验分享·网络协议·安全·http·网络安全·学习方法
s_little_monster8 小时前
【Linux】从硬件到软件了解进程
linux·运维·服务器·经验分享·笔记·学习·学习方法
Q16849645159 小时前
基于VMware的ubuntu与vscode建立ssh连接
vscode·ubuntu·ssh
davenian9 小时前
< OS 有关 > 阿里云 几个小时前 使用密钥替换 SSH 密码认证后, 发现主机正在被“攻击” 分析与应对
ubuntu·阿里云·ssh·网络攻击·fail2ban
zyhhsss10 小时前
Ubuntu&Windows双系统安装
linux·运维·ubuntu