nope-nerf代码复现

代码地址

GitHub - ActiveVisionLab/nope-nerf: (CVPR 2023) NoPe-NeRF: Optimising Neural Radiance Field with No Pose Prior

进行环境配置(时间有点久,耐心等待)

git clone https://github.com/ActiveVisionLab/nope-nerf.git
cd nope-nerf
conda env create -f environment.yaml
conda activate nope-nerf

建议先更新一下conda

conda update -n base -c defaults conda

数据预处理

支持三种数据集

1.Tanks数据集

每个场景都包含图像、DPT 和 COLMAP 姿势的单眼深度估计。点击链接会下载压缩包,然后在nope-nerf项目新建data文件夹,把压缩包解压到里面。

2.NeRF LLFF 数据集

提供 NeRF LLFF 数据集的配置文件。可以点击链接下载数据集并将其解压缩到data目录中。

3.自定义数据集

想使用自己的图像序列和自定义相机内部函数,则需要将intrinsics.npz文件添加到场景目录中。配置文件的一个示例是configs/Test/images.yaml(将自己的数据添加到data/Test/images目录中)。

单目图像的深度图生成:

单目深度图生成:可以先从Vision Transformers for Dense Prediction提供的这个链接下载预训练的DPT模型到DPT目录。点击this link 跳转到链接下载。

生成深度图需要修改configs/preprocess.yaml文件里面的'path'和,‘scene',

然后运行指令:

python preprocess/dpt_depth.py configs/preprocess.yaml

报错:

VIDIA GeForce RTX 3090 with CUDA capability sm_86 is not compatible with the current PyTorch installation. The current PyTorch install supports CUDA capabilities sm_37 sm_50 sm_60 sm_61 sm_70 sm_75 compute_37. If you want to use the NVIDIA GeForce RTX 3090 GPU with PyTorch, please check the instructions at https://pytorch.org/get-started/locally/ warnings.warn(incompatible_device_warn.format(device_name, capability, " ".join(arch_list), device_name))

这属于幸福的烦恼:显卡算力太高而pytorch版本太低不支持

RTX 3090 使用的 CUDA 计算能力是 sm_86,而当前的 PyTorch 安装只支持 sm_37, sm_50, sm_60, sm_61, sm_70, sm_75, compute_37 这些计算能力。

解决这个问题的方法是升级 PyTorch 到一个支持 sm_86 计算能力的版本。

查看cuda版本和pytorch版本,cuda=11.3,pytorch=1.7

上pytorch官网查看(安装)最新版本的cuda以及对应的pytorch

直接pip安装:

pip install torch==1.10.0+cu111 torchvision==0.11.0+cu111 torchaudio==0.10.0 -f https://download.pytorch.org/whl/torch_stable.html

参考链接:幸福的烦恼:显卡算力太高而pytorch版本太低不支持

继续运行生成深度图指令,生成dpt文件夹里面有.npz的深度文件和深度图

可以看出生成深度图质量还不错:

 

训练

 从头开始训练新模型:

python train.py configs/Tanks/Francis.yaml

 可以在其中替换configs/Tanks/Francis.yaml其他配置文件。

报错:

Traceback (most recent call last): File "/media/root/f34190af-0449-4d32-87e3-0a55e032ed3b/LT/nope-nerf/train.py", line 12, in <module> from torch.utils.tensorboard import SummaryWriter File "/home/dy/anaconda3/envs/nope-nerf/lib/python3.9/site-packages/torch/utils/tensorboard/__init__.py", line 4, in <module> LooseVersion = distutils.version.LooseVersion AttributeError: module 'distutils' has no attribute 'version' 去报错目录打开__init__.py文件,注释以下代码:

 问题解决,开始训练

报错:CUDA out of memory.

RuntimeError: CUDA out of memory. Tried to allocate 2.91 GiB (GPU 0; 23.70 GiB total capacity; 1.45 GiB already allocated; 1.42 GiB free; 1.51 GiB reserved in total by PyTorch) If reserved memory is >> allocated memory try setting max_split_size_mb to avoid fragmentation. See documentation for Memory Management and PYTORCH_CUDA_ALLOC_CONF

自己去找一下多卡运行的代码修改一下train.py文件

 

 可以运行啦!

可以使用tensorboard在http://localhost:6006上监控训练过程:

进入out/Tanks/Francis/logs/目录,打开终端,进入虚拟环境,输入以下指令,打开生成的网址

tensorboard --logdir ./

可以进行可视化啦!

 

 评估

1.评估图像质量和深度:

python evaluation/eval.py configs/Tanks/Francis.yaml

评估深度:添加--depth. 请注意,需要自己添加地面真实深度图。

2.评估姿势:

python evaluation/eval_poses.py configs/Tanks/Francis.yaml

 要可视化估计和地面真实轨迹:添加--vis

可视化

1.新视图合成

python vis/render.py configs/Tanks/Francis.yaml

在out文件夹生成rendring的视角和深度图

img

depth

 2.位姿可视化(估计位姿)

python vis/vis_poses.py configs/Tanks/Francis.yaml

 

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值