Vincent Sitzmann*, Julien NP Martel*, Alexander W. Bergman, David B. Lindell, Gordon Wetzstein
มหาวิทยาลัยสแตนฟอร์ด *หมายถึงการมีส่วนร่วมที่เท่าเทียมกัน
นี่คือการดำเนินการอย่างเป็นทางการของบทความ "การเป็นตัวแทนของระบบประสาทโดยนัยพร้อมฟังก์ชั่นการเปิดใช้งานเป็นระยะ"
หากคุณต้องการทดลองกับไซเรนเราได้เขียน colab มันค่อนข้างครอบคลุมและมาพร้อมกับการใช้ไซเรนแบบดร็อปอิน ไม่จำเป็นต้องติดตั้งอะไรเลยและผ่านคุณสมบัติการทดลอง / ไซเรนต่อไปนี้:
นอกจากนี้คุณยังสามารถเล่นอารอนด์กับไซเรนตัวเล็ก ๆ โต้ตอบได้โดยตรงในเบราว์เซอร์ผ่านสนามเด็กเล่น Tensorflow ที่นี่ ขอบคุณ David Cato ที่ใช้สิ่งนี้!
หากคุณต้องการทำซ้ำผลลัพธ์ทั้งหมด (รวมถึง baselines) ที่แสดงในกระดาษวิดีโอ, เมฆจุดและไฟล์เสียงสามารถพบได้ที่นี่
จากนั้นคุณสามารถตั้งค่าสภาพแวดล้อม conda ด้วยการพึ่งพาทั้งหมดเช่น:
conda env create -f environment.yml
conda activate siren
รหัสถูกจัดระเบียบดังนี้:
The directory experiment_scripts
contains one script per experiment in the paper.
ในการตรวจสอบความคืบหน้ารหัสการฝึกอบรมจะเขียนบทสรุป Tensorboard ลงใน "บทสรุป" "ไดเรกทอรีย่อยใน Logging_root
การทดสอบภาพสามารถทำซ้ำได้ด้วย
python experiment_scripts/train_img.py --model_type=sine
ตัวเลขในกระดาษถูกสร้างขึ้นโดยการสกัดภาพจากบทสรุป Tensorboard ตัวอย่างรหัสวิธีการทำสิ่งนี้สามารถพบได้ในสคริปต์ make_figures.py
พื้นที่เก็บข้อมูล GitHub นี้มาพร้อมกับทั้ง "การนับ" และ "Bach" คลิปเสียงภายใต้./data
พวกเขาสามารถได้รับการฝึกฝนด้วย
python experiment_scipts/train_audio.py --model_type=sine --wav_path=<path_to_audio_file>
ลำดับวิดีโอ "Bikes" มาพร้อมกับ Scikit-Video และไม่จำเป็นต้องดาวน์โหลด วิดีโอแมวสามารถดาวน์โหลดได้ด้วยลิงก์ด้านบน
เพื่อให้พอดีกับโมเดลกับวิดีโอ Run
python experiment_scipts/train_video.py --model_type=sine --experiment_name bikes_video
สำหรับการทดลองปัวซองมีสามสคริปต์แยกกัน: หนึ่งรายการสำหรับการสร้างภาพจากการไล่ระดับสี (train_poisson_grad_img.py) จาก Laplacian (train_poisson_lapl_image.py) และรวมภาพสองภาพ
การทดลองบางอย่างใช้งานโดยใช้ BSD500 Datast ซึ่งคุณสามารถดาวน์โหลดได้ที่นี่
เพื่อให้พอดีกับฟังก์ชั่นระยะทางที่ลงนาม (SDF) กับไซเรนคุณต้องใช้ pointcloud ในรูปแบบ. xYZ ก่อนอื่นซึ่งมีบรรทัดฐานพื้นผิว หากคุณมีไฟล์ตาข่าย / Ply เท่านั้นสิ่งนี้สามารถทำได้ด้วยเครื่องมือโอเพนซอร์ซ 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
สิ่งนี้จะบันทึกจุดตรวจสอบอย่างสม่ำเสมอในไดเรกทอรีที่ระบุโดย RootPath ในสคริปต์ในไดเรกทอรีย่อย "Experiment_1" โดยทั่วไปแล้ว batch_size จะถูกปรับให้พอดีกับหน่วยความจำทั้งหมดของ GPU ของคุณ การทดลองของเราแสดงให้เห็นว่าด้วยเสียงไซเรนที่ซ่อนเร้น 256, 3 ชั้นหนึ่งสามารถตั้งค่าขนาดแบทช์ระหว่าง 230-250'000 สำหรับ Nvidia GPU ที่มีหน่วยความจำ 12GB
ในการตรวจสอบ SDF ที่ติดตั้งกับคลาวด์จุด 3D ตอนนี้เราจำเป็นต้องสร้างตาข่ายจากชุด SDF ระดับศูนย์ สิ่งนี้ดำเนินการกับสคริปต์อื่นที่ใช้อัลกอริทึมการเดินขบวนลูกบาศก์ (ดัดแปลงจาก DeepsDF GitHub Repo) และสร้างตาข่ายที่บันทึกไว้ในรูปแบบไฟล์. สามารถเรียกได้ด้วย:
python experiments_scripts/test_single_sdf.py --checkpoint_path=<path_to_the_checkpoint_of_the_trained_model> --experiment_name=experiment_1_rec
สิ่งนี้จะช่วยประหยัดไฟล์. Sply เป็น "reconstruction.ply" ใน "Experiment_1_rec" (เป็นผู้ป่วยขั้นตอนการเดินขบวน meshing จะใช้เวลาสักครู่;)) ในกรณีที่เครื่องที่คุณใช้สำหรับการสร้างใหม่นั้นไม่มี RAM เพียงพอ สคริปต์จะหยุด หากเป็นกรณีนี้โปรดใช้ตัวเลือก -ความละเอียด = 512 ในบรรทัดคำสั่งด้านบน (ตั้งค่าเป็น 1600 โดยค่าเริ่มต้น) ที่จะสร้างตาข่ายขึ้นใหม่ที่ความละเอียดเชิงพื้นที่ต่ำกว่า
ไฟล์. Sply สามารถมองเห็นได้โดยใช้ซอฟต์แวร์เช่น MeshLab (ภาพข้ามแพลตฟอร์มและตัวแก้ไขสำหรับรุ่น 3D)
การทดลองสมการ Helmholtz และ Wave สามารถทำซ้ำได้ด้วย Train_wave_equation.py และ Train_helmholtz.py สคริปต์
เรากำลังใช้ Torchmeta ที่ยอดเยี่ยมในการใช้งาน Hypernetworks เราตระหนักว่ามีรายงานทางเทคนิคซึ่งเราลืมอ้างอิง - มันจะทำให้มันเป็นเวอร์ชันพร้อมกล้อง!
หากคุณพบว่างานของเรามีประโยชน์ในการวิจัยของคุณโปรดอ้างอิง:
@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}
}
หากคุณมีคำถามใด ๆ โปรดส่งอีเมลถึงผู้เขียน