NeuS(隐式重建)自制数据集流程(LLFF、DTU)

参考

【三维重建】【深度学习】【数据集】基于COLMAP制作自己的NeuS(DTU格式)数据集

https://github.com/Totoro97/NeuS/tree/main/preprocess_custom_data

一、视频抽帧成照片

参考链接:四、自建数据集渲染

这一部分主要参考我上面发的链接,之前是自制instant-ngp数据集时使用的,主要将你拍摄的视频抽帧成不同视角下的图片,并且生成transform.josn文件,在自制NeuS数据集时不需要transform.josn文件,因此只需要将抽帧的图片放到自己后续步骤的文件夹即可。

二、利用colmap进行特征提取、匹配和稀疏点云重建

1、创建工程

点击File -> New project 以新建一个项目。(将抽帧好的图片放进这个文件夹)

注:首先要确定好自己的文件名称,然后在project窗口处导入刚刚抽帧好的图片,Database处明确自己的文件路径,将自己数据集的database进行命名:****.db。这样工程就创建完成了。

2、特征提取与特征匹配

特征提取,点击Processing -> Feature extraction,Camera model选择SIMPLE_PINHOLE,其他配置使用默认配置即可,点击Extract后,自动开始提取图片特征。特征匹配后关闭窗口。

特征匹配,点击Processing -> Feature matching,使用默认配置直接点击Run进行特征匹配。

待特征匹配完毕后关闭窗口。

3、稀疏点云重建

点击Reconstruction -> Start reconstruction进行重建。

4、保存项目

在创建项目的文件夹中先创建两个文件夹:sparse/0。然后将项目的信息保存在0文件夹中,最终经过colmap处理的文件内容排版大致如下:

cy(总文件夹名称)
 |
 | images
 |     |  |-- 0001.jpg       
 |     |  |-- 0002.png
 |     |      ...
 |      
 | images_colmap.db
 | 
 | sparse
 |     |0
 |     |  |-- cameras.bin     
 |     |  |-- images.bin    
 |     |  |-- points3D.bin     
 |     |  |-- cproject.ini     

三、将数据转换成LLFF格式

1、下载LLFF代码

http://git clone https://github.com/Fyusion/LLFF.git

注:在接下来的步骤中要把自己的conda环境切换成NeuS的环境

有些依赖项缺失需要下载:

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple scikit-image
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple imageio

2、运行LLFF代码

我们主要用的是LLFF中的imgs2poses.py文件,我先将自己的数据集放在LLFF文件夹中,imgs2poses.py文件中的代码我没有修改,我主要对数据集文件夹的位置进行调整。

将数据集的位置调整好后就可以运行代码了,要在LLFF文件夹内进行运行哦
python imgs2poses.py "data/cyxk"

运行后结束会显示Done with imgs2poses,并且生成pose_bounds.npy文件。由于我的窗口给关闭了,没法直观性的截图给大家看,请uu们谅解一下。一般我在这遇到的错误就是没有找到数据集的图片,所以为了保险起见先将自己的数据集放在LLFF文件夹内,然后再剪切到指定的位置中去。

四、转换成DTU格式

这一部分我主要参考转成DTU数据的格式

并且这位博主也提供了将LLFF数据格式转换成DTU格式的代码,在这里我也不过多赘述啦,最后会生成cameras_sphere.npz文件。最后数据集的整体格式如下:

cyxk(总文件夹名称)
 |
 | images
 |     |  |-- 0001.jpg       
 |     |  |-- 0002.png
 |     |      ...
 |      
 | images_colmap.db
 | 
 | sparse
 |     |0
 |     |  |-- cameras.bin     
 |     |  |-- images.bin    
 |     |  |-- points3D.bin     
 |     |  |-- cproject.ini     
 | 
 | cameras_sphere.npz
 | 
 | poses_bounds.npy
 | 
 | sparse_points.ply
 | 
 | 
 | 

做到这一步,自制的NeuS数据集已经完成了,可以用自己的数据集进行训练,但是NeuS中的DTU数据集中含有掩码图像,我们这没有,因此在训练的时候采用无掩码监督进行训练,其中在NeuS源码中的dataset.py文件中要进行修改,一定要检查输入的图像有没有改成.jpg存放图像的文件夹和代码中的路径有没有不一致的情况,一些细节还是需要注意的。

最后再次感谢博主:牙牙要健康

  • 20
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

XINYU W

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值