งานวิจัย · arXiv 2003.08934
NeRF: การแทนฉากด้วยฟิลด์การแผ่รังสีเชิงประสาทสำหรับการสังเคราะห์มุมมองใหม่
NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis
สรุปสามบรรทัด
- 🎯 สังเคราะห์มุมมองใหม่ที่มีความละเอียดสูงและสมจริงของฉาก 3 มิติที่ซับซ้อน โดยไม่จำเป็นต้องใช้ discrete voxel grids หรือ proxy mesh geometry
- 🔧 แทนฉากคงที่ในรูปของฟังก์ชัน 5 มิติแบบต่อเนื่องผ่านโมเดล MLP โดยใช้ positional encoding, differentiable volume rendering และ hierarchical sampling
- 📈 บรรลุผลลัพธ์การสังเคราะห์มุมมองระดับ state-of-the-art ด้วย PSNR สูงถึง 31.01 dB บนชุดข้อมูล synthetic scenes ที่สมจริง พร้อมทั้งบีบอัดการแทนฉากเหลือเพียงประมาณ 5 MB
บทคัดย่อ
เรานำเสนอวิธีที่ให้ผลลัพธ์ระดับ state-of-the-art ในการสังเคราะห์มุมมองใหม่ของฉากที่มีความซับซ้อน โดยการปรับฟังก์ชันฉากเชิงปริมาตรแบบต่อเนื่อง (continuous volumetric scene function) โดยใช้ชุดภาพมุมมองนำเข้าเพียงจำนวนน้อย อัลกอริทึมของเราแทนฉากด้วยโครงข่ายประสาทเทียมแบบ fully-connected (ไม่ใช่คอนโวลูชัน) ซึ่งรับพิกัด 5 มิติแบบต่อเนื่อง (ตำแหน่งในปริภูมิ และทิศทางการมอง ) เป็นอินพุต และให้เอาต์พุตเป็นความหนาแน่นเชิงปริมาตร (volume density) ร่วมกับความเข้มรังสีที่แผ่ออกมาตามทิศทางมุมมอง ณ ตำแหน่งนั้น เราสังเคราะห์ภาพมุมมองใหม่โดยการสุ่มพิกัด 5 มิติตามแนวรังสีของกล้อง และใช้เทคนิค volume rendering แบบดั้งเดิมเพื่อฉายค่าสีและความหนาแน่นของเอาต์พุตให้ออกมาเป็นภาพ เนื่องจากกระบวนการ volume rendering สามารถหาอนุพันธ์ได้โดยธรรมชาติ (naturally differentiable) ข้อมูลนำเข้าเพียงอย่างเดียวที่ต้องใช้ในการปรับโครงข่ายคือชุดภาพถ่ายที่มี camera pose ที่ทราบค่า เราอธิบายถึงวิธีเพิ่มประสิทธิภาพของ neural radiance fields เพื่อเรนเดอร์มุมมองใหม่ที่สมจริงของฉากที่มีรูปทรงเรขาคณิตและรูปลักษณ์ซับซ้อน และแสดงผลการทดลองที่เหนือกว่างานวิจัยก่อนหน้าด้าน neural rendering และการสังเคราะห์มุมมองใหม่ ผลลัพธ์ของการสังเคราะห์มุมมองจะเห็นได้ชัดเจนที่สุดในรูปแบบวิดีโอ ดังนั้นเราจึงแนะนำให้ผู้อ่านดูวิดีโอประกอบเพื่อการเปรียบเทียบที่ชัดเจนยิ่งขึ้น
บทคัดย่อต้นฉบับ (ภาษาอังกฤษ)
We present a method that achieves state-of-the-art results for synthesizing novel views of complex scenes by optimizing an underlying continuous volumetric scene function using a sparse set of input views. Our algorithm represents a scene using a fully-connected (non-convolutional) deep network, whose input is a single continuous 5D coordinate (spatial location and viewing direction ) and whose output is the volume density and view-dependent emitted radiance at that spatial location. We synthesize views by querying 5D coordinates along camera rays and use classic volume rendering techniques to project the output colors and densities into an image. Because volume rendering is naturally differentiable, the only input required to optimize our representation is a set of images with known camera poses. We describe how to effectively optimize neural radiance fields to render photorealistic novel views of scenes with complicated geometry and appearance, and demonstrate results that outperform prior work on neural rendering and view synthesis. View synthesis results are best viewed as videos, so we urge readers to view our supplementary video for convincing comparisons.
คู่มือการอ่าน
ปัญหาและแรงจูงใจ
เดิมทีการสังเคราะห์มุมมองใหม่จากภาพถ่ายต้องพึ่งพาการแทนฉากเชิงปริมาตรแบบไม่ต่อเนื่อง (เช่น voxel grids หรือ multiplane images) หรือ surface meshes อย่างไรก็ตาม discretized voxel grids ทำให้สิ้นเปลืองหน่วยความจำและการคำนวณที่เพิ่มขึ้นแบบกำลังสามตามความละเอียดของภาพ ขณะที่การปรับค่าแบบหาอนุพันธ์ได้โดยใช้เมชก็ประสบปัญหา optimization landscape ที่ไม่เอื้ออำนวยและจำเป็นต้องมีโครงสร้างแบบจำลองเรขาคณิตเริ่มต้นที่ดี ส่วนงานก่อนหน้าที่ใช้ implicit neural scene representations นั้น มักแมปพิกัดไปยัง signed distance functions หรือจุดบนพื้นผิวเดี่ยวโดยตรง ซึ่งจัดการกับเรขาคณิตที่ซับซ้อน ปรากฏการณ์ที่ขึ้นกับทิศทางการมอง (เช่น แสงสะท้อนแบบ specular) และรายละเอียดความถี่สูงได้ยาก ส่งผลให้ภาพที่ได้ดูเบลอหรือเรียบเกินไป
แนวคิดสำคัญ
- Continuous 5D Scene Function: แทนฉากที่อยู่นิ่งเป็นฟังก์ชันต่อเนื่องแบบ implicit โดยแมปตำแหน่ง 3 มิติ และทิศทางการมอง 2 มิติ ไปเป็นความเข้มรังสี RGB ที่แผ่ออกมา และความหนาแน่นเชิงปริมาตร
- Multiview Consistency via Asymmetric Prediction: ทำนายความหนาแน่น จากตำแหน่ง เพียงอย่างเดียว (เนื่องจากเรขาคณิตต้องคงที่ในทุกมุมมอง) ในขณะที่สีที่แผ่ออกมา จะขึ้นอยู่กับทั้งตำแหน่ง และทิศทางการมอง (รองรับการเกิดไฮไลต์แบบ specular และ non-Lambertian)
- High-Frequency Positional Encoding: ก้าวข้ามข้อจำกัดของ MLP ที่มีแนวโน้มเรียนรู้เฉพาะความถี่ต่ำ (spectral bias) โดยการแมปพิกัดนำเข้าที่มีมิติต่ำไปยังปริภูมิที่มีมิติสูงขึ้นโดยใช้ฟังก์ชันฐานไซนูซอยด์ (sinusoidal basis functions)
- Differentiable Volume Rendering & Hierarchical Sampling: ใช้ numerical quadrature เพื่อรวมตัวอย่างแบบต่อเนื่องตามแนวรังสีของกล้องออกมาเป็นค่าสีพิกเซล 2 มิติ ซึ่งสามารถปรับแต่งแบบ end-to-end เทียบกับภาพถ่ายนำเข้า พร้อมทั้งเร่งความเร็วด้วยการสุ่มตัวอย่างแบบลำดับชั้นจากหยาบไปละเอียด (coarse-to-fine hierarchical sampling)
ระเบียบวิธี (พร้อมสมการสำคัญ)
สำหรับรังสีของกล้อง ที่มีขอบเขตระหว่าง near plane และ far plane คือ และ ค่าสีคาดหวังแบบต่อเนื่อง คือ: โดยที่ คือค่า transmittance สะสม
ในการคำนวณเชิงตัวเลข ช่วงต่อเนื่องจะถูกแบ่งออกเป็น ส่วนย่อยและประเมินผลด้วย stratified sampling ซึ่งทำให้ได้ discrete quadrature ที่เทียบเท่ากับการทำ alpha compositing: โดยที่
เพื่อให้สามารถเก็บรายละเอียดเรขาคณิตและพื้นผิวที่มีความถี่สูงได้ ข้อมูลนำเข้าจะถูกแปลงผ่าน positional encoding : โดยใช้ สำหรับ และ สำหรับ
เพื่อประสิทธิภาพในการสุ่มตัวอย่าง NeRF ได้ปรับโครงข่ายสองตัวไปพร้อมๆ กัน (coarse network สุ่มตัวอย่าง จุด และ fine network สุ่มเพิ่มอีก จุด) ค่าน้ำหนักตัวอย่างหยาบ จะทำหน้าที่เป็น piecewise-constant probability density function ตลอดแนวรังสี ซึ่งจะถูกใช้สุ่มจุดตัวอย่างละเอียดต่อไปผ่าน inverse transform sampling
โมเดลทั้งหมดจะถูกฝึกโดยการลดค่า total squared error บนชุดแบตช์ของรังสี :
ผลการทดลอง (พร้อมตัวเลขสำคัญ)
- Realistic Synthetic : NeRF ทำได้ 31.01 dB PSNR, 0.947 SSIM และ 0.081 LPIPS ซึ่งมีประสิทธิภาพเหนือกว่าโมเดลเปรียบเทียบอย่างชัดเจน เช่น NV (26.05 dB), LLFF (24.88 dB) และ SRN (22.26 dB)
- Diffuse Synthetic : NeRF ทำได้ 40.15 dB PSNR และ 0.991 SSIM เมื่อเทียบกับ DeepVoxels (เฉลี่ย 30.55 dB ตามคะแนนรายฉาก) และ LLFF (34.38 dB)
- Real Forward-Facing Scenes: ทำได้ 26.50 dB PSNR ซึ่งสูงกว่า LLFF (24.13 dB) และ SRN (22.84 dB)
- ประสิทธิภาพในการจัดเก็บ: โมเดล NeRF ที่ฝึกเสร็จสมบูรณ์ใช้พื้นที่น้ำหนัก MLP เพียงประมาณ 5 MB เท่านั้น ซึ่งลดขนาดการจัดเก็บลงราว เมื่อเทียบกับการแทนแบบวอกเซลของ LLFF (>15 GB ต่อหนึ่งฉาก)
ข้อจำกัดและประเด็นที่ยังเปิดกว้าง
- เวลาในการฝึกและการเรนเดอร์: การปรับโมเดลสำหรับหนึ่งฉากใช้การวนซ้ำ 100k–300k รอบ (ประมาณ 1–2 วันบน GPU NVIDIA V100 ตัวเดียว) ส่วนการเรนเดอร์ภาพหนึ่งเฟรมต้องอาศัยการคำนวณผ่าน MLP ถึง 150–200 ล้านครั้ง ซึ่งกินเวลาราว 30 วินาทีต่อภาพ
- ความสามารถในการตีความของโมเดล (Interpretability): แตกต่างจาก voxel grids หรือ polygon meshes ข้อมูลฉากจะถูกเก็บแฝงอยู่ภายในค่าน้ำหนักของ MLP ทำให้การแก้ไข ตรวจสอบ หรือดีบักข้อผิดพลาดโดยตรงทำได้ยาก
- ข้อกำหนดในการบันทึกภาพที่ควบคุมอย่างเข้มงวด: วิธีการนี้ต้องทราบ camera pose ล่วงหน้า (เช่น คำนวณจาก COLMAP) ฉากต้องอยู่นิ่ง แสงต้องคงที่ และต้องมีการกำหนดขอบเขตฉากที่ชัดเจน
คำศัพท์สำคัญ
- Neural Radiance Field (NeRF)
- การแทนฉากเชิงปริมาตรแบบ 5 มิติที่มีความต่อเนื่อง ซึ่งกำหนดพารามิเตอร์โดย deep fully-connected neural network ทำหน้าที่แมปพิกัดเชิงปริภูมิและทิศทางการมองให้เป็นความหนาแน่นเชิงปริมาตรและความเข้มรังสีที่แผ่ออกมา
- Positional Encoding
- การแปลงค่าแบบดีเทอร์มินิสติกด้วยฟังก์ชันไซน์ ที่ฉายพิกัดอินพุตแบบต่อเนื่องไปยังปริภูมิความถี่ที่มีมิติสูงขึ้น เพื่อช่วยให้โครงข่ายสามารถเรียนรู้รายละเอียดที่มีความถี่สูงได้
- Volume Density
- ค่าความทึบแสงเชิงอนุพันธ์ที่ไม่ขึ้นกับมุมมอง ซึ่งจำลองความน่าจะเป็นที่รังสีของกล้องจะสิ้นสุดลง ณ จุดขนาดเล็กยิ่งยวดในปริภูมิ 3 มิติ
- Transmittance
- ความน่าจะเป็น ที่รังสีของกล้องจะเดินทางจากระนาบตัดส่วนหน้า (near clipping plane) ไปจนถึงระยะทางที่กำหนดตามแนวรังสีโดยไม่ชนเข้ากับอนุภาคใดๆ ในฉาก
- Hierarchical Volume Sampling
- วิธีการสุ่มตัวอย่างแบบหยาบไปละเอียดที่ใช้ค่าความหนาแน่นตามแนวรังสีซึ่งประเมินจาก coarse network มาสร้างเป็นการแจกแจงความน่าจะเป็นแบบไม่สม่ำเสมอ เพื่อใช้สุ่มจุดเพิ่มเติมตามแนวรังสีสำหรับ fine network
- Stratified Sampling
- กระบวนการสุ่มตัวอย่างที่แบ่งช่วงความลึกของรังสีออกเป็นช่องที่มีขนาดเท่ากัน จากนั้นสุ่มเลือกค่าต่อเนื่องขึ้นมาหนึ่งจุดต่อหนึ่งช่องอย่างสม่ำเสมอ เพื่อรองรับการประเมินค่าแบบต่อเนื่องระหว่างการหาค่าที่เหมาะสมที่สุด
- Normalized Device Coordinates (NDC)
- ปริภูมิพิกัดที่แมป perspective viewing frustum ของภาพที่ถ่ายในลักษณะหันไปข้างหน้า (forward-facing) ให้อยู่ในช่วง ส่งผลให้แกนของกล้องมีความสัมพันธ์เชิงเส้นกับค่าดิสพาริตี (disparity)
คำถามที่พบบ่อย
ทำไมความหนาแน่นจึงขึ้นกับตำแหน่งเพียงอย่างเดียว ขณะที่สีขึ้นกับทั้งตำแหน่งและทิศทางการมอง?
การจำกัดให้ความหนาแน่น ขึ้นอยู่กับตำแหน่งในปริภูมิ เพียงอย่างเดียว จะช่วยบังคับให้โครงสร้างเรขาคณิตมีความสอดคล้องกันในทุกมุมมองภาพ (multiview consistency) ในขณะที่การอนุญาตให้ค่าสี รับทิศทางการมอง เป็นอินพุต จะช่วยให้ MLP สามารถสร้างปรากฏการณ์แบบ non-Lambertian ที่ขึ้นกับมุมมองได้ เช่น แสงสะท้อนแบบ specular
Positional encoding ใน NeRF แตกต่างจาก positional encoding ในโมเดลกลุ่ม Transformers อย่างไร?
Transformers ใช้ positional encodings เพื่อระบุลำดับตำแหน่งของโทเคนแบบไม่ต่อเนื่องลงใน attention blocks ที่ไม่มีลำดับในตัวเอง แต่ NeRF ใช้ sinusoidal encodings เพื่อแมปพิกัดต่อเนื่องที่มีมิติต่ำเข้าสู่ปริภูมิที่มีมิติสูงขึ้น เพื่อขจัดข้อจำกัดทางสเปกตรัม (spectral bias) ของ MLP ที่มักจะเรียนรู้เฉพาะความถี่ต่ำ
ต้องใช้อินพุตอะไรบ้างในการฝึก NeRF ตั้งแต่เริ่มต้น?
NeRF ต้องการเพียงชุดภาพถ่าย 2D RGB ของฉากที่อยู่นิ่ง พร้อมทั้งค่า intrinsic ของกล้อง, camera poses ที่ผ่านการสอบเทียบแล้ว และขอบเขตระยะใกล้/ไกลของฉาก (ซึ่งสามารถหาได้จาก COLMAP สำหรับข้อมูลจริง หรือค่าจริงสำหรับข้อมูลสังเคราะห์)
NeRF ใช้เวลาในการฝึกและเรนเดอร์นานเท่าใด?
การฝึกหนึ่งฉากจะใช้เวลาประมาณ 100k ถึง 300k รอบ (ราวๆ 1 ถึง 2 วัน) บน GPU NVIDIA V100 หนึ่งตัว สำหรับการเรนเดอร์มุมมองใหม่จะต้องประเมินผลการคิวรีพิกัดประมาณ 150 ถึง 200 ล้านครั้งต่อภาพ ซึ่งใช้เวลาราว 30 วินาทีต่อเฟรม
คำอธิบายในหน้านี้เขียนโดย AI จากงานวิจัยและอาจมีข้อผิดพลาด โปรดอ่านต้นฉบับเพื่อดูรายละเอียด