neuralangelo论文复现(Nvidia)

记录在论文复现过程中遇到的一些问题和解决方法

文献:https://research.nvidia.com/labs/dir/neuralangelo/?ref=blog.runpod.io

github代码:https://github.com/nvlabs/neuralangelo?tab=readme-ov-file

这里需要强调一下,本项目的显存需求大,低性能卡带不动,我是用的是RTX 3090显卡

1.项目安装

# 1.将项目克隆到本地
git clone https://github.com/NVlabs/neuralangelo
cd neuralangelo

# 2.安装虚拟环境和依赖
conda env create --file neuralangelo.yaml
conda activate neuralangelo

安装虚拟环境和依赖我选择Anaconda安装虚拟环境,出错易修改;
这里遇到两个问题:

1.依赖库的版本冲突,根据文件neuralangelo.yaml安装的虚拟环境里面已经安装了python3.8,这里我的系统python是3.7,在查询python版本时还是3.7,因此这里需要在.bashrc中配置环境变量,重新启用虚拟环境时就是python3.8了;

vim ~/.bashrc
# 插入
export PATH="~/anaconda3/envs/neurangelo/bin":$PATH
source ~/.bashrc

2.安装tiny-cuda-nn失败,失败的代码块就是这行;

# neuralangelo.yaml
  - pip:
    - -r requirements.txt
# requirement.txt
git+https://github.com/NVlabs/tiny-cuda-nn/#subdirectory=bindings/torch

这里失败的原因是gcc版本太低,需要升级高版本的gcc,我的系统是Ubuntu18.04,gcc版本是7.5.0,这里需要更新到9.0以上版本,并不是官方文档的8.0以上版本就行,服务器在没有root权限下升级gcc可以参考这篇文章:https://blog.youkuaiyun.com/weixin_52703185/article/details/141964767。

2.数据预处理

(1)首先安装colmap,我是用的是conda安装,在训练过程中暂时没遇到问题;

conda install colmap

(2)初始化colmap模块

git submodule update --init --recursive

(3)预处理,将视频文件放到neurlangelo文件中

SEQUENCE=lego
PATH_TO_VIDEO=lego.mp4
DOWNSAMPLE_RATE=2
SCENE_TYPE=object
bash projects/neuralangelo/scripts/preprocess.sh ${SEQUENCE} ${PATH_TO_VIDEO} ${DOWNSAMPLE_RATE} ${SCENE_TYPE}

3.运行neurangelo

EXPERIMENT=toy_example
GROUP=example_group
NAME=example_name
CONFIG=projects/neuralangelo/configs/custom/${EXPERIMENT}.yaml
GPUS=4  # use >1 for multi-GPU training!
torchrun --nproc_per_node=${GPUS} train.py \
    --logdir=logs/${GROUP}/${NAME} \
    --config=${CONFIG} \
    --show_pbar

这里的训练过程是不会自动结束,因为在配置文件中设置的迭代次数是9999999999999,需要手动结束,结束后也可以回复训练,需要添加–chechpoiont和–resume参数:

EXPERIMENT=toy_example
GROUP=example_group
NAME=example_name
CONFIG=projects/neuralangelo/configs/custom/${EXPERIMENT}.yaml
CHECKPOINT_PATH=logs/example_group/example_name/xxx.pt
GPUS=4  # use >1 for multi-GPU training!
torchrun --nproc_per_node=${GPUS} train.py \
    --logdir=logs/${GROUP}/${NAME} \
    --config=${CONFIG} \
    --show_pbar
    --checkpoint=${CHECKPOINT_PATH} \
    --resume

4.isosurface extraction

CHECKPOINT=logs/${GROUP}/${NAME}/xxx.pt
OUTPUT_MESH=xxx.ply
CONFIG=logs/${GROUP}/${NAME}/config.yaml
RESOLUTION=2048
BLOCK_RES=128
GPUS=4  # use >1 for multi-GPU mesh extraction
torchrun --nproc_per_node=${GPUS} projects/neuralangelo/scripts/extract_mesh.py \
    --config=${CONFIG} \
    --checkpoint=${CHECKPOINT} \
    --output_file=${OUTPUT_MESH} \
    --resolution=${RESOLUTION} \
    --block_res=${BLOCK_RES}

最后生成.ply文件,可以使用MeshLab打开,到这就可以看到一个效果了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值