因子场
项目主页 | 论文
本仓库包含了论文《因子场:神经场及其他的统一框架》和《字典场:学习神经基分解》的PyTorch实现。我们的工作提出了一个用于建模和表示信号的新框架,我们还观察到字典场具有诸如改善近似质量、紧凑性、更快的训练速度以及能够泛化到未见过的图像和3D场景等优势。
安装
在Ubuntu 20.04 + Pytorch 1.13.0上测试通过
安装环境:
conda create -n FactorFields python=3.9
conda activate FactorFields
conda install -c "nvidia/label/cuda-11.7.1" cuda-toolkit
conda install pytorch==1.13.0 torchvision==0.14.0 torchaudio==0.13.0 pytorch-cuda=11.7 -c pytorch -c nvidia
pip install -r requirements.txt
可选安装tiny-cuda-nn,仅当你想运行基于哈希网格的表示时才需要。
conda install -c "nvidia/label/cuda-11.7.1" cuda-toolkit
pip install git+https://github.com/NVlabs/tiny-cuda-nn/#subdirectory=bindings/torch
快速开始
请确保你下载了相应的数据集并将其内容解压到data
文件夹中。
图像
训练脚本位于scripts/2D_regression.ipynb
,配置文件位于configs/image.yaml
。
SDF
训练脚本位于scripts/sdf_regression.ipynb
,配置文件位于configs/sdf.yaml
。
NeRF
训练脚本位于train_per_scene.py
:
python train_per_scene.py configs/nerf.yaml defaults.expname=lego dataset.datadir=./data/nerf_synthetic/lego
泛化图像
训练脚本位于2D_set_regression.ipynb
泛化NeRF
python train_across_scene.py configs/nerf_set.yaml
更多示例
以NeRF为例的命令说明:
model.basis_dims=[4, 4, 4, 2, 2, 2]
调整每个层级的通道数,共6个层级,总共18个通道。model.basis_resos=[32, 51, 70, 89, 108, 128]
表示特征嵌入的分辨率。model.freq_bands=[2.0, 3.2, 4.4, 5.6, 6.8, 8.0]
表示在每个层级的坐标变换函数中应用的频率参数。model.coeff_type
表示系数场表示,可以是以下之一:[none, x, grid, mlp, vec, cp, vm]。model.basis_type
表示基场表示,可以是以下之一:[none, x, grid, mlp, vec, cp, vm, hash]。model.basis_mapping
表示坐标变换,可以是以下之一:[x, triangle, sawtooth, trigonometric]。请注意,如果你想使用正交投影,请选择cp或vm基类型,因为它们会自动使用正交投影函数。model.total_params
控制总模型大小。需要注意的是,模型的大小能力由model.basis_resos和model.basis_dims决定。total_params参数主要影响系数的能力。exportation.render_only
训练后可以通过将此标签设置为1来渲染项目。请同时指定defaults.ckpt
标签。exportation....
你可以通过将相应的标签设置为1来指定是否在训练后渲染[render_test, render_train, render_path, export_mesh]
的项目。
一些预定义的配置(如occNet、DVGO、nerf、iNGP、EG3D)可以在README_FactorField.py
中找到。
版权
- 夏日 - 版权归Johan Hendrik Weissenbruch和荷兰国立博物馆所有。
- 火星 - 版权归NASA所有。
- 爱因斯坦 - 版权归Orren Jack Turner所有。
- 戴珍珠耳环的少女 - 修复版权归Koorosh Orooj所有(CC BY-SA 4.0)。
引用
如果您发现我们的代码或论文有帮助,请考虑引用以下两篇论文:
@article{Chen2023factor,
title={Factor Fields: A Unified Framework for Neural Fields and Beyond},
author={Chen, Anpei and Xu, Zexiang and Wei, Xinyue and Tang, Siyu and Su, Hao and Geiger, Andreas},
journal={arXiv preprint arXiv:2302.01226},
year={2023}
}
@article{Chen2023SIGGRAPH,
title={{Dictionary Fields: Learning a Neural Basis Decomposition}},
author={Anpei, Chen and Zexiang, Xu and Xinyue, Wei and Siyu, Tang and Hao, Su and Andreas, Geiger},
booktitle={International Conference on Computer Graphics and Interactive Techniques (SIGGRAPH)},
year={2023}}