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}
}
如果您有任何疑問,請隨時給作者發送電子郵件。