Vincent Sitzmann*,Julien NP Martel*,Alexander W. Bergman,David B. Lindell,Gordon Wetzstein
斯坦福大学 *表示同等贡献
这是本文“具有定期激活功能的隐式神经表示”的官方实施。
如果您想尝试一下警笛,我们写了一个colab。这是非常全面的,并带有无融资,Siren的倒入实施。它不需要安装任何内容,并且可以通过以下实验 /警笛属性:
您也可以通过Tensorflow Playground在此处的浏览器中交互作用的Arond播放Arond。感谢大卫·卡托(David Cato)实施了这一点!
如果您想重现论文中显示的所有结果(包括基线),则可以在此处找到视频,点云和音频文件。
然后,您可以设置一个具有所有依赖项的Conda环境:
conda env create -f environment.yml
conda activate siren
该代码的组织如下:
目录experiment_scripts
每个实验中包含一个脚本。
为了监视进度,训练代码将张板摘要写入logging_root中的“摘要”“子目录”。
图像实验可以通过
python experiment_scripts/train_img.py --model_type=sine
纸上的数字是通过从张板摘要中提取图像来制作的。示例代码如何执行此操作可以在make_figures.py脚本中找到。
该GitHub存储库都带有./data下的“计数”和“ Bach”音频剪辑。
他们可以接受
python experiment_scipts/train_audio.py --model_type=sine --wav_path=<path_to_audio_file>
“自行车”视频序列带有Scikit-Video,而无需下载。猫视频可以通过上面的链接下载。
要适合模型到视频,请运行
python experiment_scipts/train_video.py --model_type=sine --experiment_name bikes_video
对于Poisson实验,有三个独立的脚本:一个用于从其梯度中重建图像(train_poisson_grad_img.py),来自其laplacian(train_poisson_lapl_image.py),并结合了两个图像(train_poisson_gradcomp_img.py)。
一些实验是使用BSD500 Datast运行的,您可以在此处下载。
为了将签名的距离功能(SDF)与警报器拟合,首先需要以.xyz格式的PointCloud,其中包括表面正常。如果您只有网格 / ply文件,则可以使用开源工具meshlab来完成。
为了重现我们的结果,我们从3D Stanford Model存储库中提供了泰国雕像的模型,也提供了在此处下载的论文中使用的客厅。
要开始训练警报器,请运行:
python experiments_scripts/train_single_sdf.py --model_type=sine --point_cloud_path=<path_to_the_model_in_xyz_format> --batch_size=250000 --experiment_name=experiment_1
这将定期将检查点保存在脚本中的rootpath指定的目录中,在子目录的“ perveriment_1”中。通常调整批次_size以适合您的GPU的整个内存。我们的实验表明,使用256,3隐藏的层警笛,可以将批处理大小设置为具有12GB内存的NVIDIA GPU的230-250'000之间。
要检查拟合到3D点云的SDF,我们现在需要从SDF的零级集合创建网格。这是使用另一个使用Marting Cubes算法(根据DeepSDF GitHub Repo进行了改编)的脚本执行的,并创建了以.ply文件格式保存的网格。可以用:
python experiments_scripts/test_single_sdf.py --checkpoint_path=<path_to_the_checkpoint_of_the_trained_model> --experiment_name=experiment_1_rec
这将使.ply文件作为“ reconstruction。脚本可能会冻结。如果是这种情况,请在上面的命令行中使用选项-Resolution = 512(默认设置为1600),该选项将以较低的空间分辨率重建网格。
可以使用Meshlab(3D型号的跨平台可视化器和编辑器)等软件可视化.ply文件。
可以使用train_wave_equation.py和train_helmholtz.py脚本来复制Helmholtz和Wave方程实验。
我们正在使用出色的Torchmeta来实现超网。我们意识到有一份技术报告,我们忘了引用 - 它将其制成相机就绪版本!
如果您发现我们的工作对您的研究有用,请引用:
@inproceedings{sitzmann2019siren,
author = {Sitzmann, Vincent
and Martel, Julien N.P.
and Bergman, Alexander W.
and Lindell, David B.
and Wetzstein, Gordon},
title = {Implicit Neural Representations
with Periodic Activation Functions},
booktitle = {arXiv},
year={2020}
}
如果您有任何疑问,请随时给作者发送电子邮件。