Ha-NeRF: Hallucinated Neural Radiance Fields in the Wild 代码复现与解读

简介: Ha-NeRF: Hallucinated Neural Radiance Fields in the Wild 代码复现与解读

code:

GitHub - rover-xingyu/Ha-NeRF: [CVPR 2022] Ha-NeRF😆: Hallucinated Neural Radiance Fields in the Wild

[CVPR 2022] Ha-NeRF😆: Hallucinated Neural Radiance Fields in the Wild - GitHub - rover-xingyu/Ha-NeRF: [CVPR 2022] Ha-NeRF😆: Hallucinated Neural Radiance Fields in the Wild

https://github.com/rover-xingyu/Ha-NeRF

本机环境: python 3.6.3,torch 1.8.1+cu102,pytorch-lightning 1.1.5              

一 代码复现

第一步:搭建环境

conda create -n HaNeRF python=3.6
conda activate HaNeRF
pip install -r requirements.txt

第二步:准备数据集

Ha_NeRF所用数据集与NeRF_W 所用数据集一致。


可从以下链接下载原始scenen 数据集

IMC-PT 2020 dataset | Kwang Moo Yi @ UBC

Kwang Moo Yi @ UBC: Image Matching Challenge PhotoTourism (IMC-PT) 2020 dataset project page

https://www.cs.ubc.ca/~kmyi/imw2020/data.html

如下:

ae28c4f9b3fd45cab7c03135f83dbc7d.png

并从以下链接下载用于训练测试的文件名的tsv文件。

NeRF in the Wild

https://nerf-w.github.io/

文件下载后存放在,data文件夹下的ICM-PT中,如下。

3decaaa9f11c4079b5f5a4b8af580c8d.png

接着运行如下代码,生成文件存放在cache中,后续训练使用。

python prepare_phototourism.py --root_dir  D:\NeRF\nerf_pl-nerfw\data\IMC-PT\brandenburg_gate\ --img_downscale 2

可能会出现error如下:

OMP: Error #15: Initializing libiomp5md.dll, but found libiomp5md.dll already initialized.

解决方案:

程序前添加以下两个语句解决:

import os
os.environ["KMP_DUPLICATE_LIB_OK"]="TRUE"

第三步: 训练网络

python  train_mask_grid_sample.py   --root_dir ./data/IMC-PT/brandenburg_gate/brandenburg_gate/brandenburg_gate/ --dataset_name phototourism  --save_dir save  --img_downscale 2 --use_cache   --N_importanc
e 64 --N_samples 64  --num_epochs 20 --batch_size 1024  --optimizer adam --lr 5e-4 --lr_scheduler cosine  --exp_name exp_HaNeRF_Brandenburg_Gate  --N_emb_xyz 15 --N_vocab 1500 --use_mask --maskrs_max 5e-2 --maskrs_min 6e-3 --maskrs_
k 1e-3 --maskrd 0  --encode_a --N_a 48 --weightKL 1e-5 --encode_random --weightRecA 1e-3 --weightMS 1e-6  --num_gpus 1

第四步:测试+渲染图片

python eval.py --root_dir ./data/IMC-PT/brandenburg_gate/ --save_dir save  --dataset_name phototourism --scene_name HaNeRF_Trevi_Fountain --split test_test --img_downscale 2 --N_samples 256 --N_importance 256 --N_emb_xyz 15 --N_vocab 1500 --encode_a  --ckpt_path save/ckpts/HaNeRF_Brandenburg_Gate/epoch=19.ckpt  --chunk 16384 --img_wh 320 240

该步骤可创建文件夹 {save_dir}/results/{dataset_name}/{scene_name},保存渲染的图片。

212e1abca4b54d85beaf1b62566f626d.png

第五步: 指标测试

python eval_metric.py  --root_dir ./data/IMC-PT/brandenburg_gate/  --save_dir save  --dataset_name phototourism --scene_name HaNeRF_Brandenburg_Gate  --split test_test --img_downscale 2  --img_wh 320 240

eval_metric.py是基于eval.py 渲染出的图片来计算相关指标。该步将创建{save_dir}/results/{dataset_name}/{scene_name}  文件夹,并存放指标度量结果。44a101de3a6f4b218202056529f418f3.png

第六步:生成重建视频

使用hallucinate.py来play Ha-NeRF,在不同的视图中从不同的场景{example_image}中进行重构!它将创建文件夹{save_dir}/hallucination/{scene_name}并渲染幻觉,最后创建一个gif。

python hallucinate.py  --save_dir save  --ckpt_path save/ckpts/HaNeRF_Trevi_Fountain/epoch=19.ckpt   --chunk 16384   --example_image artworks  --scene_name artworks_2_fountain

二  代码解读

 


目录
相关文章
vue3进入页面全屏
vue3进入页面全屏
307 0
|
分布式计算 Hadoop Shell
|
10月前
|
IDE 开发工具 Android开发
Flutter 框架的优点
综上所述,Flutter框架以其跨平台一致性、高性能表现、丰富的组件和插件生态、热重载等诸多优点,为移动应用开发带来了全新的体验和强大的开发能力,成为了越来越多开发者的首选框架。
|
Linux Windows
Nomachine 最简安装与使用指南
这是一篇2022年Nomachine软件的极简安装与使用指南,包括Windows和Linux系统下的安装步骤,以及如何在Windows系统上通过Nomachine远程控制Linux系统的方法。
Nomachine 最简安装与使用指南
|
人工智能 安全 Go
使用阿里云服务网格 ASM LLMProxy 插件保障大模型用户数据安全
本文介绍如何使用ASM LLMProxy动态为LLM请求添加API_KEY、使用模式匹配以及私有大模型判别请求敏感信息并根据判别结果拒绝请求等功能,帮助用户提升LLM场景下的安全水位。
|
缓存 Linux
更新yum源的保姆级教程(有手就行)
更新yum源的保姆级教程(有手就行)
|
机器学习/深度学习 并行计算 PyTorch
【已解决】RuntimeError: CUDA error: device-side assert triggeredCUDA kernel errors might be asynchronous
【已解决】RuntimeError: CUDA error: device-side assert triggeredCUDA kernel errors might be asynchronous
|
机器学习/深度学习 数据可视化 TensorFlow
NeRF系列(2):NeRF in the wild : Neural Radiance Fields for Unconstrained Photo Collections论文解读与公式推导
NeRF系列(2):NeRF in the wild : Neural Radiance Fields for Unconstrained Photo Collections论文解读与公式推导
684 0
|
自然语言处理 并行计算 PyTorch
基于Pytorch中安装torchvision简单详细完整版
基于Pytorch中安装torchvision简单详细完整版
4920 1
基于Pytorch中安装torchvision简单详细完整版
|
存储 边缘计算 人工智能
边缘计算系统逻辑架构:云、边、端协同,定义及关系
边缘计算系统逻辑架构:云、边、端协同,定义及关系
14347 1
边缘计算系统逻辑架构:云、边、端协同,定义及关系