

SDFStudio เป็นเฟรมเวิร์กแบบครบวงจรและแบบแยกส่วนสำหรับการสร้างพื้นผิวโดยปริยายของระบบประสาทซึ่งสร้างขึ้นบนโครงการ Nerfstudio ที่ยอดเยี่ยม เราให้การดำเนินการแบบครบวงจรของวิธีการสร้างพื้นผิวโดยนัยสำคัญสามวิธี: Unisurf, VolsDF และ Neus SDFStudio ยังรองรับการแสดงฉากต่าง ๆ เช่น MLPS, Tri-Plane และ Multi-Res คุณลักษณะกริดและกลยุทธ์การสุ่มตัวอย่างหลายจุดเช่นการสุ่มตัวอย่างแบบนำทางพื้นผิวเช่นเดียวกับใน Unisurf และการสุ่มตัวอย่างแบบไกด์นำเที่ยว voxel-surface จาก NeuralReconw มันรวมความก้าวหน้าล่าสุดในพื้นที่เช่นการใช้ประโยชน์ของตัวชี้นำตาข้างเดียว (MONOSDF), การทำให้เป็นมาตรฐานเรขาคณิต (UnisURF) และความสอดคล้องหลายมุมมอง (GEO-NEUS) ต้องขอบคุณการใช้งานแบบรวมและแบบแยกส่วน SDFStudio ทำให้ง่ายต่อการถ่ายโอนแนวคิดจากวิธีหนึ่งไปยังอีกวิธีหนึ่ง ตัวอย่างเช่น Mono-Neus ใช้ความคิดจาก monosdf ถึง Neus และ Geo-Volsdf ใช้แนวคิดจาก Geo-Neus ไปยัง Volsdf
2023.06.16 : เพิ่ม bakedangelo ซึ่งรวม BakedSDF เข้ากับค่ากรวดเชิงตัวเลขและการฝึกอบรมแบบก้าวหน้าของ Neuralangelo
2023.06.16 : เพิ่ม neus-facto-angelo ซึ่งผสมผสาน neus-facto เข้ากับค่ากรวดเชิงตัวเลขและการฝึกอบรมที่ก้าวหน้าของ Neuralangelo
2023.06.16 : สนับสนุน NeuralAngelo
2023.03.12 : สนับสนุน Bakedsdf
2022.12.28 : สนับสนุนการสร้างพื้นผิว Neural RGB-D
ต้องติดตั้ง CUDA ในระบบ ห้องสมุดนี้ได้รับการทดสอบด้วยเวอร์ชัน 11.3 คุณสามารถค้นหาข้อมูลเพิ่มเติมเกี่ยวกับการติดตั้ง cuda ได้ที่นี่
SDFStudio ต้องการ python >= 3.7 เราขอแนะนำให้ใช้ Conda เพื่อจัดการการพึ่งพา ตรวจสอบให้แน่ใจว่าได้ติดตั้ง conda ก่อนดำเนินการ
conda create --name sdfstudio -y python=3.8
conda activate sdfstudio
python -m pip install --upgrade pipติดตั้ง pytorch ด้วย cuda (repo นี้ได้รับการทดสอบด้วย cuda 11.3) และ tiny-cuda-nn
pip install torch==1.12.1+cu113 torchvision==0.13.1+cu113 -f https://download.pytorch.org/whl/torch_stable.html
pip install git+https://github.com/NVlabs/tiny-cuda-nn/ # subdirectory=bindings/torchgit clone https://github.com/autonomousvision/sdfstudio.git
cd sdfstudio
pip install --upgrade pip setuptools
pip install -e .
# install tab completion
ns-install-cliต่อไปนี้จะฝึกอบรมแบบจำลอง Neus-Facto
# Download some test data: you might need to install curl if your system don't have that
ns-download-data sdfstudio
# Train model on the dtu dataset scan65
ns-train neus-facto --pipeline.model.sdf-field.inside-outside False --vis viewer --experiment-name neus-facto-dtu65 sdfstudio-data --data data/sdfstudio-demo-data/dtu-scan65
# Or you could also train model on the Replica dataset room0 with monocular priors
ns-train neus-facto --pipeline.model.sdf-field.inside-outside True --pipeline.model.mono-depth-loss-mult 0.1 --pipeline.model.mono-normal-loss-mult 0.05 --vis viewer --experiment-name neus-facto-replica1 sdfstudio-data --data data/sdfstudio-demo-data/replica-room0 --include_mono_prior Trueหากทุกอย่างทำงานได้คุณควรเห็นความคืบหน้าการฝึกอบรมต่อไปนี้:

การนำทางไปยังลิงค์ที่ส่วนท้ายของเทอร์มินัลจะโหลด WebViewer (DEVEDOPLE โดย NerfStudio) หากคุณทำงานบนเครื่องระยะไกลคุณจะต้องส่งต่อพอร์ตไปข้างหน้าพอร์ต WebSocket (ค่าเริ่มต้นเป็น 7007) ด้วย RTX3090 GPU ใช้เวลา ~ 15 นาทีสำหรับการทำซ้ำ 20K แต่คุณสามารถเห็นผลลัพธ์การสร้างใหม่ที่เหมาะสมหลังจากการวนซ้ำ 2K ใน WebViewer

นอกจากนี้ยังเป็นไปได้ที่จะโหลดโมเดลที่ผ่านการฝึกอบรมโดยใช้งาน
ns-train neus-facto --trainer.load-dir {outputs/neus-facto-dtu65/neus-facto/XXX/sdfstudio_models} sdfstudio-data --data data/sdfstudio-demo-data/dtu-scan65 สิ่งนี้จะกลับมาฝึกอบรมโดยอัตโนมัติ หากคุณไม่ต้องการฝึกอบรมต่อให้เพิ่ม --viewer.start-train False กับคำสั่งการฝึกอบรมของคุณ โปรดทราบว่าลำดับคำสั่งของคำสั่งย่อย DataParser จำเป็นต้องมาหลังจากคำสั่งย่อยของโมเดล
เมื่อคุณมีรูปแบบที่ผ่านการฝึกอบรมแล้วคุณสามารถส่งออกตาข่ายและทำให้ตาข่าย
ns-extract-mesh --load-config outputs/neus-facto-dtu65/neus-facto/XXX/config.yml --output-path meshes/neus-facto-dtu65.ply ns-render-mesh --meshfile meshes/neus-facto-dtu65.ply --traj interpolate --output-path renders/neus-facto-dtu65.mp4 sdfstudio-data --data data/sdfstudio-demo-data/dtu-scan65
คุณจะได้รับวิดีโอต่อไปนี้หากทุกอย่างทำงานได้อย่างถูกต้อง
ก่อนอื่นเราต้องสร้างเส้นทางให้กล้องติดตาม สามารถทำได้ในผู้ชมภายใต้แท็บ "เรนเดอร์" ปรับมุมมอง 3 มิติของคุณไปยังตำแหน่งที่คุณต้องการให้วิดีโอเริ่มต้นจากนั้นกด "เพิ่มกล้อง" นี่จะตั้งกรอบคีย์กล้องแรก ดำเนินการต่อไปยังมุมมองใหม่ที่เพิ่มกล้องเพิ่มเติมเพื่อสร้างเส้นทางกล้อง เราจัดเตรียมพารามิเตอร์อื่น ๆ เพื่อปรับแต่งเส้นทางกล้องของคุณต่อไป เมื่อพึงพอใจให้กด "render" ซึ่งจะแสดงโมดอลที่มีคำสั่งที่จำเป็นในการแสดงวิดีโอ ฆ่างานฝึกอบรม (หรือสร้างเทอร์มินัลใหม่หากคุณมีการคำนวณจำนวนมาก) และคำสั่งเพื่อสร้างวิดีโอ
หากต้องการดูตัวเลือกการส่งออกวิดีโอทั้งหมดรัน:
ns-render --helpเราให้บริการรุ่นอื่น ๆ อีกมากมายนอกเหนือจาก Neus-Facto ดูเอกสารประกอบ ตัวอย่างเช่นหากคุณต้องการฝึกอบรมแบบจำลอง Neus ดั้งเดิมให้ใช้คำสั่งต่อไปนี้:
ns-train neus --pipeline.model.sdf-field.inside-outside False sdfstudio-data --data data/sdfstudio-demo-data/dtu-scan65 สำหรับรายการเต็มรูปแบบที่รวมอยู่ใน ns-train --help โปรดดูเอกสารสำหรับคำอธิบายโดยละเอียดเพิ่มเติมสำหรับแต่ละวิธี
แต่ละรุ่นมีพารามิเตอร์มากมายที่สามารถเปลี่ยนแปลงได้มากเกินไปที่จะแสดงรายการที่นี่ ใช้คำสั่ง --help เพื่อดูรายการตัวเลือกการกำหนดค่าทั้งหมด
หมายเหตุคำสั่งของพารามิเตอร์นั้นสำคัญ! ตัวอย่างเช่นคุณไม่สามารถตั้งค่า --machine.num-gpus หลังจากพารามิเตอร์ --data
ns-train neus-facto --help
Nerfstudio สนับสนุนวิธีการที่แตกต่างกันสามวิธีในการติดตามความคืบหน้าการฝึกอบรมโดยใช้ตัวชมเทนซอร์บอร์ดและน้ำหนักและอคติ เครื่องมือสร้างภาพเหล่านี้ยังสามารถใช้ใน SDFStudio คุณสามารถระบุ Visualizer ที่จะใช้โดยการต่อท้าย --vis {viewer, tensorboard, wandb} กับคำสั่งการฝึกอบรม โปรดทราบว่ามีเพียงหนึ่งเดียวเท่านั้นที่ใช้ในแต่ละครั้ง นอกจากนี้ผู้ดูใช้งานได้สำหรับวิธีการที่รวดเร็วเท่านั้น (เช่น NeuS-facto และ NeuS-acc ) สำหรับวิธีการช้ากว่าเช่น NeuS-facto-bigmlp ใช้ตัวบันทึกอื่น ๆ
โปรดดูเอกสารชุดข้อมูลและรูปแบบข้อมูลหากคุณต้องการใช้ชุดข้อมูลที่กำหนดเอง

หากคุณใช้ห้องสมุดนี้หรือค้นหาเอกสารที่เป็นประโยชน์สำหรับการวิจัยของคุณโปรดพิจารณาอ้าง:
@misc { Yu2022SDFStudio ,
author = { Yu, Zehao and Chen, Anpei and Antic, Bozidar and Peng, Songyou and Bhattacharyya, Apratim
and Niemeyer, Michael and Tang, Siyu and Sattler, Torsten and Geiger, Andreas } ,
title = { SDFStudio: A Unified Framework for Surface Reconstruction } ,
year = { 2022 } ,
url = { https://github.com/autonomousvision/sdfstudio } ,
}