ทันที NGP (เพียง NERF) ใน Pytorch+Cuda ที่ผ่านการฝึกอบรมด้วย Pytorch-Lightning ( คุณภาพสูงด้วยความเร็วสูง ) repo นี้มีจุดมุ่งหมายที่จะให้อินเทอร์เฟซ Pytorch ที่กระชับเพื่ออำนวยความสะดวกในการวิจัยในอนาคตและรู้สึกขอบคุณถ้าคุณสามารถแบ่งปันได้ (และการอ้างอิงได้รับการชื่นชมอย่างมาก)!
วิดีโอตัวแทนอื่น ๆ อยู่ใน Gallery.md
การใช้งานนี้มีข้อกำหนด ที่เข้มงวด เนื่องจากการพึ่งพาห้องสมุดอื่น ๆ หากคุณพบปัญหาการติดตั้งเนื่องจากฮาร์ดแวร์/ซอฟต์แวร์ไม่ตรงกันฉันกลัวว่า ไม่มีความตั้งใจ ที่จะสนับสนุนแพลตฟอร์มที่แตกต่างกัน (คุณยินดีที่จะมีส่วนร่วม)
โคลน repo นี้โดย git clone https://github.com/kwea123/ngp_pl
Python> = 3.8 (แนะนำให้ติดตั้งผ่าน Anaconda ให้ใช้ conda create -n ngp_pl python=3.8 เพื่อสร้างสภาพแวดล้อม conda และเปิดใช้งานโดย conda activate ngp_pl )
Libraries Python
pip install torch==1.11.0 --extra-index-url https://download.pytorch.org/whl/cu113torch-scatter ตามคำแนะนำของพวกเขาtinycudann ตามคำแนะนำของพวกเขา (ส่วนขยาย pytorch)apex ตามคำแนะนำของพวกเขาpip install -r requirements.txt CUDA Extension: อัปเกรด pip เป็น> = 22.1 และเรียกใช้ pip install models/csrc/ (โปรดเรียกใช้สิ่งนี้ทุกครั้งที่คุณ pull รหัส)
ดาวน์โหลดชุดข้อมูลที่ประมวลผลล่วงหน้า ( Synthetic_NeRF , Synthetic_NSVF , BlendedMVS , TanksAndTemples ) จาก NSVF อย่าเปลี่ยนชื่อโฟลเดอร์ เนื่องจากมีการแก้ไขที่ยากใน Dataloader ของฉัน
ดาวน์โหลดข้อมูลจากที่นี่
สำหรับข้อมูลที่กำหนดเองเรียกใช้ colmap และรับโฟลเดอร์ sparse/0 ซึ่งมี cameras.bin , images.bin และ points3D.bin รองรับข้อมูลต่อไปนี้ด้วยรูปแบบ colmap:
ดาวน์โหลดข้อมูลจากที่นี่ ในการแปลงภาพ HDR เป็นภาพ LDR สำหรับการฝึกอบรมให้เรียกใช้ python misc/prepare_rtmv.py <path/to/RTMV> มันจะสร้าง images/ โฟลเดอร์ภายใต้โฟลเดอร์แต่ละฉากและจะใช้ภาพเหล่านี้เพื่อฝึกอบรม (และทดสอบ)
Quickstart: python train.py --root_dir <path/to/lego> --exp_name Lego
มันจะฝึกฉากเลโก้เป็นเวลา 30k ขั้นตอน (แต่ละขั้นตอนด้วยรังสี 8192) และทำการทดสอบหนึ่งครั้งในตอนท้าย กระบวนการฝึกอบรมควรเสร็จสิ้นภายในเวลาประมาณ 5 นาที (ออมการทดสอบภาพช้าเพิ่ม --no_save_test เพื่อปิดการใช้งาน) การทดสอบ PSNR จะแสดงในตอนท้าย
ตัวเลือกเพิ่มเติมสามารถพบได้ใน opt.py
สำหรับการฝึกอบรมชุดข้อมูลสาธารณะอื่น ๆ โปรดดูสคริปต์ภายใต้ benchmarking
ใช้ test.ipynb เพื่อสร้างภาพ รุ่นเลโก้ pretrained มีให้ที่นี่
การใช้ GUI: เรียกใช้ python show_gui.py ตามด้วย hyperparameters เดียวกัน ที่ใช้ในการฝึกอบรม ( dataset_name , root_dir ฯลฯ ) และ เพิ่มเส้นทางจุดตรวจสอบ ด้วย --ckpt_path <path/to/.ckpt>
ฉันเปรียบเทียบคุณภาพ (การทดสอบโดยเฉลี่ย PSNR บน Synthetic-NeRF ) และความเร็วการอนุมาน (ในฉาก Lego ) เทียบกับการทำงานพร้อมกัน Torch-NGP (การตั้งค่าเริ่มต้น) และกระดาษทั้งหมดที่ผ่านการฝึกอบรมประมาณ 5 นาที:
| วิธี | avg psnr | FPS | GPU |
|---|---|---|---|
| คบเพลิง NGP | 31.46 | 18.2 | 2080 TI |
| ของฉัน | 32.96 | 36.2 | 2080 TI |
| กระดาษทันที NGP | 33.18 | 60 | 3090 |
สำหรับคุณภาพของฉันดีกว่า Torch-NGP เล็กน้อย แต่ผลลัพธ์อาจผันผวนในการวิ่งที่แตกต่างกัน
สำหรับความเร็วของฉันเร็วกว่า Torch-NGP แต่ก็ยังเร็วเพียงครึ่งเดียวเท่าที่ NGP ทันที ความเร็วขึ้นอยู่กับฉาก (ถ้าฉากส่วนใหญ่ว่างเปล่าความเร็วจะเร็วขึ้น)




ซ้าย: Torch-NGP ขวา: ของฉัน
ในการเรียกใช้มาตรฐานให้ใช้สคริปต์ภายใต้ benchmarking
สิ่งต่อไปนี้เป็นผลลัพธ์ของฉันที่ได้รับการฝึกฝนโดยใช้ 1 RTX 2080 TI (ผลลัพธ์เชิงคุณภาพที่นี่):
| ไมโครโฟน | ฟิคัส | เก้าอี้ | ฮอทด็อก | วัสดุ | กลอง | เรือ | เลโก้ | AVG | |
|---|---|---|---|---|---|---|---|---|---|
| PSNR | 35.59 | 34.13 | 35.28 | 37.35 | 29.46 | 25.81 | 30.32 | 35.76 | 32.96 |
| SSIM | 0.988 | 0.982 | 0.984 | 0.980 | 0.944 | 0.933 | 0.890 | 0.979 | 0.960 |
| LPIPS | 0.017 | 0.024 | 0.025 | 0.038 | 0.070 | 0.076 | 0.133 | 0.022 | 0.051 |
| FPS | 40.81 | 34.02 | 49.80 | 25.06 | 20.08 | 37.77 | 15.77 | 36.20 | 32.44 |
| เวลาฝึกอบรม | 3m9s | 3M12S | 4m17s | 5m53s | 4m55s | 4m7s | 9m20s | 5m5s | 5m00s |
| ผู้ปลูกไวน์ | การเดินกลไฟ | คางคก | หุ่นยนต์ | จักรยาน | วัง | ยานอวกาศ | วิถีชีวิต | AVG | |
|---|---|---|---|---|---|---|---|---|---|
| PSNR | 31.64 | 36.47 | 35.57 | 37.10 | 37.87 | 37.41 | 35.58 | 34.76 | 35.80 |
| SSIM | 0.962 | 0.987 | 0.980 | 0.994 | 0.990 | 0.977 | 0.980 | 0.967 | 0.980 |
| LPIPS | 0.047 | 0.023 | 0.024 | 0.010 | 0.015 | 0.021 | 0.029 | 0.044 | 0.027 |
| FPS | 47.07 | 75.17 | 50.42 | 64.87 | 66.88 | 28.62 | 35.55 | 22.84 | 48.93 |
| เวลาฝึกอบรม | 3M58S | 3M44S | 7M22S | 3M25S | 3M11S | 6m45s | 3M25S | 4M56S | 4M36S |
| อิก | รถบรรทุก | โรงนา | หนอนผีเสื้อ | ตระกูล | AVG | |
|---|---|---|---|---|---|---|
| PSNR | 28.30 | 27.67 | 28.00 | 26.16 | 34.27 | 28.78 |
| *FPS | 10.04 | 7.99 | 16.14 | 10.91 | 6.16 | 10.25 |
*ประเมินผล test-traj
| *หยก | *น้ำพุ | อักขระ | รูปปั้น | AVG | |
|---|---|---|---|---|---|
| PSNR | 25.43 | 26.82 | 30.43 | 26.79 | 27.38 |
| ** fps | 26.02 | 21.24 | 35.99 | 19.22 | 25.61 |
| เวลาฝึกอบรม | 6m31s | 7M15S | 4m50s | 5m57s | 6m48s |
*ฉันเปลี่ยนพื้นหลังด้วยตนเองจากสีดำเป็นสีขาวดังนั้นจำนวนจึงไม่สามารถเทียบได้โดยตรงกับที่อยู่ในเอกสาร
** ประเมินผล test-traj