当前位置:   article > 正文

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处理的文件内容排版大致如下:

  1. cy(总文件夹名称)
  2. |
  3. | images
  4. | | |-- 0001.jpg
  5. | | |-- 0002.png
  6. | | ...
  7. |
  8. | images_colmap.db
  9. |
  10. | sparse
  11. | |0
  12. | | |-- cameras.bin
  13. | | |-- images.bin
  14. | | |-- points3D.bin
  15. | | |-- cproject.ini

三、将数据转换成LLFF格式

1、下载LLFF代码

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

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

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

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

2、运行LLFF代码

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

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

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

四、转换成DTU格式

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

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

  1. cyxk(总文件夹名称)
  2. |
  3. | images
  4. | | |-- 0001.jpg
  5. | | |-- 0002.png
  6. | | ...
  7. |
  8. | images_colmap.db
  9. |
  10. | sparse
  11. | |0
  12. | | |-- cameras.bin
  13. | | |-- images.bin
  14. | | |-- points3D.bin
  15. | | |-- cproject.ini
  16. |
  17. | cameras_sphere.npz
  18. |
  19. | poses_bounds.npy
  20. |
  21. | sparse_points.ply
  22. |
  23. |
  24. |

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

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/372570
推荐阅读
相关标签
  

闽ICP备14008679号