SDFStudio使用过程——自己数据集构建

概要

提示:该篇文章主要讲解SDFStudio定义自己数据集的过程(包含nerfstudio数据集定义过程),SDFStuidio配置过程这里不作介绍,配置见GitHub上的https://github.com/autonomousvision/sdfstudio
在这里插入图片描述

整体流程

  1. 配置 自己的图片数据,这里先介绍图片数据,建立一个文件夹,放入你的环绕拍照的图片数据。(这是dtu里数据示例,仅图片信息)
    在这里插入图片描述

  2. 再进入cmd,进入conda环境,并进入SDFstudio。

C:\Users\viscs>conda activate zlysdfstudio
(zlysdfstudio) C:\Users\viscs>cd sdfstudio
(zlysdfstudio) C:\Users\viscs\sdfstudio>
  1. 来处理你的数据格式:
ns-process-data {images, video} --data {DATA_PATH} --output-dir {PROCESSED_DATA_DIR}

这里我就输入

ns-process-data images --data C:\Users\viscs\sdfstudio\data\new --output-dir C:\Users\viscs\sdfstudio\data\new2
  1. 然后它会运行colmap提取特征,并构建点云,输出transform.json文件。输出结果如下:
    在这里插入图片描述
    在这里插入图片描述
  2. 接下来你可以直接使用nerfstudio进行训练(ns-train nerfacto --data {PROCESSED_DATA_DIR}),也可以将数据进一步处理为这种数据结构:
    在这里插入图片描述
    官网示例代码如下(使用的process_scannet_to_sdfstudio.py 将scannet数据集转为SDFstudio数据集):
python scripts/datasets/process_scannet_to_sdfstudio.py --input_path /your_path/datasets/scannet/scene0050_00 --output_path data/custom/scannet_scene0050_00

而我们是要把nerfstudio数据格式转为sdfstudio数据格式(它提供了如图所示的方法,包括rgbd2sdfsutdio)
在这里插入图片描述
我的代码(错误的,勿用):

python scripts/datasets/process_nerfstudio_to_sdfstudio.py --C:\Users\viscs\sdfstudio\data\new2 --C:\Users\viscs\sdfstudio\data\new3

报错了,这里提示我们需要更多输入信息:
在这里插入图片描述
还需要输入更多的信息,如图所示
在这里插入图片描述
因为我们是colmap生成 这里选colmap 场景选object。等待它处理

python scripts/datasets/process_nerfstudio_to_sdfstudio.py --data C:\Users\viscs\sdfstudio\data\new2 --output-dir C:\Users\viscs\sdfstudio\data\new3 --data-type colmap --scene-type object

在这里插入图片描述
生成了:
在这里插入图片描述
6. 到这一步其实就可以了,但为了精细模型,你可以选择继续去生成depth和normal文件,使得模型更好:
在这里插入图片描述
7. 接下来我们来配置omnidata文件,这里我们用conda新建一个环境,然后再git下来,进入torch文件,按照requirements.txt下载相应的库:

conda create -n testenv -y python=3.8
conda activate testenv
cd C:\Users\viscs\omnidata\omnidata_tools\torch
pip install -r requirements.txt
  1. 下载完相应的库后,接下来,我们把这个预训练模型下载一下:
sh ./tools/download_depth_models.sh
sh ./tools/download_surface_normal_models.sh

由于我是windows且网络环境问题,我选择直接下载文件,让后放到对应的C:\Users\viscs\omnidata\omnidata_tools\torch\pretrained_models文件夹中:
depth的下载地址:

https://drive.google.com/uc?id=1UxUDbEygQ-CMBjRKACw_Xdj4RkDjirB5&confirm=t

normal的下载地址:

https://drive.google.com/uc?id=1wNxVO4vVbDEMEpnAi_jwQObf2MFodcBR
  1. 现在我们再来生成图片depth和normal文件:
    在studio的处理过程如下:
    先进入 sdfstudio的环境
cd C:\Users\viscs\sdfstudio\
python scripts/datasets/extract_monocular_cues.py --task normal --img_path C:\Users\viscs\sdfstudio\data\new3 --output_path C:\Users\viscs\sdfstudio\data\new4 --omnidata_path C:\Users\viscs\omnidata\omnidata_tools\torch --pretrained_models C:\Users\viscs\omnidata\omnidata_tools\torch\pretrained_models
python scripts/datasets/extract_monocular_cues.py --task depth --img_path C:\Users\viscs\sdfstudio\data\new3 --output_path C:\Users\viscs\sdfstudio\data\new4 --omnidata_path C:\Users\viscs\omnidata\omnidata_tools\torch --pretrained_models C:\Users\viscs\omnidata\omnidata_tools\torch\pretrained_models

报错因为图像大小不相等,我们这里改一下源码,因为它后面处理也resize成384了
在这里插入图片描述
注释掉这两个assert就会忽略这个报错了
在这里插入图片描述
运行一下就是结果
在这里插入图片描述

但是我们可以直接用omnidata来进行处理,这样就不用到处切目录了,这里就不做介绍了,直接用官网的代码运行,但结果好像不是sdfstudio出来的numpy数据,适用于自己单独的数据。(img_path 可以是一个具体的图片地址,也可以是一个图像的文件夹)

python demo.py --task $TASK --img_path $PATH_TO_IMAGE_OR_FOLDER --output_path $PATH_TO_SAVE_OUTPUT
python demo.py --task normal --img_path assets/demo/test1.png --output_path assets/
  1. 接下来我们把meta_json粘贴进文件夹new4,也可以在刚才的步骤中直接new3使用new3生成,会覆盖原图:
    在这里插入图片描述
  2. 接下来开始训练:
    似乎使用Neus不需要深度图和法向量?
# Train model on the dtu dataset scan65
ns-train neus-facto --pipeline.model.sdf-field.inside-outside False --vis viewer --experiment-name neus-facto-dtu65 sdfstudio-data --data C:\Users\viscs\sdfstudio\data\new4

# Or you could also train model on the Replica dataset room0 with monocular priors
ns-train neus-facto --pipeline.model.sdf-field.inside-outside True --pipeline.model.mono-depth-loss-mult 0.1 --pipeline.model.mono-normal-loss-mult 0.05 --vis viewer --experiment-name neus-facto-replica1 sdfstudio-data --data data/sdfstudio-demo-data/replica-room0 --include_mono_prior True

在这里插入图片描述

小结

提示:该文总结了如何使用自己的图片数据进行训练以及建模,如果对你有帮助,可以点赞、加个关注。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Self Revolution

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

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

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

打赏作者

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

抵扣说明:

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

余额充值