Vincent Sitzmann*, Julien NP Martel*, Alexander W. Bergman, David B. Lindell, Gordon Wetzstein
스탠포드 대학교 *는 동등한 기여를 나타냅니다
이것은 논문의 공식적인 구현 "주기적인 활성화 기능을 가진 암시 적 신경 표현"입니다.
사이렌을 실험하고 싶다면 콜랩을 썼습니다. 그것은 매우 포괄적이며 사이렌의 드롭 인 구현이 포함되어 있습니다. 아무것도 설치할 필요가 없으며 다음 실험 / 사이렌 특성을 살펴 봅니다.
여기에서 텐서 플로우 놀이터를 통해 브라우저에서 직접 대화식으로 작은 사이렌으로 Arond를 플레이 할 수도 있습니다. 이것을 구현 한 David Cato에게 감사합니다!
용지에 표시된 모든 결과 (기준선 포함)를 재현하려면 비디오, 포인트 클라우드 및 오디오 파일을 여기에서 찾을 수 있습니다.
그런 다음 SO와 같은 모든 종속성으로 콘다 환경을 설정할 수 있습니다.
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 아래에 "카운팅"및 "바흐"오디오 클립이 모두 제공됩니다.
그들은 훈련을받을 수 있습니다
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)에서 이미지를 재구성하기위한 세 가지 스크립트가 있습니다.
일부 실험은 BSD500 데이터스트를 사용하여 실행되었으며 여기에서 다운로드 할 수 있습니다.
사이렌으로 서명 된 거리 함수 (SDF)를 맞추려면 먼저 표면 정상을 포함하는 .xyz 형식의 PointCloud가 필요합니다. 메쉬 / 플라이 파일 만있는 경우 Open-Source Tool Meshlab으로 수행 할 수 있습니다.
우리의 결과를 재현하기 위해, 우리는 3D Stanford 모델 저장소의 태국 조각상 모델과 여기에서 다운로드하기 위해 종이에 사용 된 거실을 제공합니다.
사이렌 훈련을 시작하려면 달리기 :
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
이렇게하면 스크립트의 루트 경로에 의해 지정된 디렉토리의 하위 디렉토리 "Experiment_1"에 정기적으로 검문소가 저장됩니다. Batch_size는 일반적으로 GPU의 전체 메모리에 맞도록 조정됩니다. 우리의 실험에 따르면 256, 3 숨겨진 층 사이렌에서는 12GB 메모리가있는 NVIDIA GPU의 경우 배치 크기를 230-250'000 사이로 설정할 수 있습니다.
3D 포인트 클라우드에 장착 된 SDF를 검사하려면 이제 SDF의 0 레벨 세트에서 메쉬를 만들어야합니다. 이것은 행진 큐브 알고리즘 (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
"실험 _1_rec"에서 .Ply 파일을 "reconstruction.ple"으로 저장합니다. 스크립트가 얼게 될 것입니다. 이 경우 위의 명령 줄에서 (기본적으로 1600으로 설정) 옵션을 사용하여 공간 해상도에서 메쉬를 재구성 할 수 있습니다.
.Ply 파일은 Meshlab (3D 모델의 크로스 플랫폼 비주얼 라이저 및 편집기)과 같은 소프트웨어를 사용하여 시각화 할 수 있습니다.
Helmholtz 및 Wave 방정식 실험은 Train_wave_equation.py 및 Train_Helmholtz.py 스크립트로 재현 할 수 있습니다.
우리는 Hypernetworks를 구현하기 위해 훌륭한 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}
}
궁금한 점이 있으시면 저자에게 이메일을 보내주십시오.