ไม่ว่าจะเป็นศิลปิน VFX นักวิจัยหรือมือสมัครเล่นกราฟิก BlenderNerf เป็นวิธีที่ง่ายที่สุดและเร็วที่สุดในการสร้างชุดข้อมูล Synthetic Nerf และ Gaussian Splatting ภายในเครื่องปั่น รับเรนเดอร์และพารามิเตอร์กล้องด้วยคลิกเดียวในขณะที่มีการควบคุมผู้ใช้เต็มรูปแบบผ่านฉาก 3D และกล้อง!
คุณพร้อมที่จะ nerf หรือยัง? เริ่มต้นด้วยการคลิกเพียงครั้งเดียวในเครื่องปั่นโดยตรวจสอบบทช่วยสอนนี้!
Neural Radiance Fields (NERF) มีจุดมุ่งหมายที่แสดงฉาก 3 มิติเป็นวัตถุปริมาตรขึ้นอยู่กับมุมมองจากภาพ 2D เท่านั้นควบคู่ไปกับข้อมูลกล้องที่เกี่ยวข้อง ฉาก 3 มิติได้รับการออกแบบทางวิศวกรรมจากภาพการฝึกอบรมด้วยความช่วยเหลือของเครือข่ายประสาทที่เรียบง่าย
Gaussian Splatting เป็นวิธีการติดตามผลสำหรับการเรนเดอร์ฟิลด์ Radiance ในลักษณะที่เป็นจุด การเป็นตัวแทนนี้ได้รับการปรับให้เหมาะสมอย่างมากสำหรับการเรนเดอร์ GPU และใช้ประโยชน์จากเทคนิคกราฟิกแบบดั้งเดิมมากขึ้นเพื่อให้ได้อัตราเฟรมสูง
ฉันขอแนะนำให้ดูวิดีโอ YouTube นี้โดย Corridor Crew สำหรับการตรวจสอบที่น่าตื่นเต้นในกรณีการใช้งานบางอย่างและแอปพลิเคชันที่มีศักยภาพในอนาคตของ NERFS
การแสดงผลเป็นการคำนวณที่มีราคาแพง ฉาก Photorealistic อาจใช้เวลาไม่กี่วินาทีถึงชั่วโมงในการแสดงผลขึ้นอยู่กับความซับซ้อนของฉากฮาร์ดแวร์และทรัพยากรซอฟต์แวร์ที่มีอยู่
Nerfs และ gaussian splats สามารถเร่งกระบวนการนี้ แต่ต้องการข้อมูลกล้องที่สกัดผ่านรหัสที่ยุ่งยาก ปลั๊กอินนี้ช่วยให้ทุกคนได้รับการแสดงผลและกล้องด้วยการคลิกเพียงครั้งเดียวในเครื่องปั่น
แม้ว่า BlenderNerf เวอร์ชันรุ่นจะมีให้ดาวน์โหลด แต่ก็มีจุดประสงค์หลักสำหรับการติดตามการเปลี่ยนแปลงรหัสสำคัญและเพื่อวัตถุประสงค์การอ้างอิง ฉันขอแนะนำให้ดาวน์โหลดที่เก็บปัจจุบันโดยตรงเนื่องจากการเปลี่ยนแปลงเล็กน้อยหรือการแก้ไขข้อบกพร่องอาจไม่รวมอยู่ในการเปิดตัวทันที
BlenderNerf ประกอบด้วย 3 วิธีที่กล่าวถึงในส่วนย่อยด้านล่าง แต่ละวิธีมีความสามารถในการสร้างข้อมูล การฝึกอบรม และ การทดสอบ ข้อมูลสำหรับ NERF ในรูปแบบของภาพการฝึกอบรมและไฟล์ transforms_train.json ตามลำดับ transforms_test.json ตามลำดับด้วยข้อมูลกล้องที่เกี่ยวข้อง ข้อมูลถูกเก็บถาวรลงในไฟล์ ซิป เดียวที่มีการฝึกอบรมและการทดสอบโฟลเดอร์ ข้อมูลการฝึกอบรมสามารถใช้งานได้โดยแบบจำลอง NERF เพื่อเรียนรู้การแสดงฉาก 3 มิติ เมื่อได้รับการฝึกอบรมแล้วโมเดลอาจได้รับการประเมิน (หรือทดสอบ) บนข้อมูลการทดสอบ (ข้อมูลกล้องเท่านั้น) เพื่อรับการแสดงผลใหม่
ชุดย่อยของเฟรม (SOF) แสดงผลทุก เฟรม จากภาพเคลื่อนไหวของกล้องและใช้ชุดย่อยของเฟรมที่แสดงผลเป็นข้อมูลการฝึกอบรม NERF ข้อมูลการทดสอบที่ลงทะเบียนครอบคลุมทุกเฟรมของแอนิเมชั่นกล้องเดียวกันรวมถึงเฟรมการฝึกอบรม เมื่อได้รับการฝึกฝนโมเดล NERF สามารถแสดงภาพเคลื่อนไหวของกล้องเต็มรูปแบบและดังนั้นจึงเหมาะอย่างยิ่งสำหรับการแก้ไขหรือแสดงภาพเคลื่อนไหวขนาดใหญ่ของฉากคงที่
รถไฟและทดสอบกล้อง (TTC) ลงทะเบียนการฝึกอบรมและทดสอบข้อมูลจากกล้องที่กำหนดผู้ใช้สองตัวแยกกัน จากนั้นโมเดล NERF สามารถติดตั้งข้อมูลที่ดึงออกมาจากกล้องฝึกอบรมและได้รับการประเมินบนข้อมูลการทดสอบ
กล้องบนทรงกลม (COS) แสดงเฟรมการฝึกอบรมโดยการสุ่มตัวอย่างมุมมองกล้องแบบสุ่มที่ตรงกลางจากทรงกลมที่ผู้ใช้ควบคุม ข้อมูลการทดสอบถูกดึงออกมาจากกล้องที่เลือก
แผงคุณสมบัติ Add-on มีให้บริการภายใต้ 3D View > N panel > BlenderNeRF ( แผง n สามารถเข้าถึงได้ภายใต้วิวพอร์ต 3D เมื่อกด N ) ทั้ง 3 วิธี ( SOF , TTC และ COS ) แชร์แท็บทั่วไปที่เรียกว่า BlenderNeRF shared UI กับคุณสมบัติที่ควบคุมได้ด้านล่าง
Train (เปิดใช้งานโดยค่าเริ่มต้น): ว่าจะลงทะเบียนข้อมูลการฝึกอบรม (การเรนเดอร์ + ข้อมูลกล้อง)Test (เปิดใช้งานโดยค่าเริ่มต้น): ว่าจะลงทะเบียนข้อมูลการทดสอบ (ข้อมูลกล้องเท่านั้น)AABB (โดยค่าเริ่มต้นตั้งค่าเป็น 4 ): พารามิเตอร์ AABB ตามที่อธิบายไว้ใน NGP ทันที (รายละเอียดเพิ่มเติมด้านล่าง)Render Frames (เปิดใช้งานโดยค่าเริ่มต้น): จะแสดงเฟรมหรือไม่Save Log File (ปิดการใช้งานโดยค่าเริ่มต้น): ไม่ว่าจะบันทึกไฟล์บันทึกที่มีข้อมูลการทำซ้ำบน BlenDerNerf RunFile Format ( NGP โดยค่าเริ่มต้น): ไม่ว่าจะส่งออกไฟล์กล้องในการประชุมรูปแบบไฟล์ NGP หรือ defaut nerf ทันทีGaussian Points (ปิดการใช้งานโดยค่าเริ่มต้น): ไม่ว่าจะส่งออกไฟล์ points3d.plyGaussian Test Camera Poses ( จำลอง โดยค่าเริ่มต้น): ไม่ว่าจะส่งออกไฟล์กล้องทดสอบจำลองหรือชุดกล้องทดสอบเต็มรูปแบบ (มี Gaussian Points เท่านั้น)Save Path (ว่างโดยค่าเริ่มต้น): พา ธ ไปยังไดเรกทอรีเอาต์พุตซึ่งชุดข้อมูลจะถูกสร้างขึ้น หากคุณสมบัติ Gaussian Points เปิดใช้งาน BlenDerNerf จะสร้างไฟล์เพิ่มเติม points3d.ply จากตาข่ายที่มองเห็นได้ทั้งหมด (ตามเวลาเรนเดอร์) ซึ่งแต่ละจุดยอดจะถูกใช้เป็นจุดเริ่มต้น สีจุดสุดยอดจะถูกเก็บไว้หากมีและตั้งค่าเป็นสีดำเป็นอย่างอื่น
พื้นที่เก็บข้อมูล แบบเกาส์ เซียนสนับสนุนชุดข้อมูล NERF แต่ต้องการข้อมูลทั้งรถไฟและการทดสอบ ตัวเลือก Dummy สำหรับ Gaussian Test Camera Poses คุณสมบัติสร้างไฟล์โพสต์กล้องทดสอบที่ว่างเปล่าในกรณีที่ไม่จำเป็นต้องทดสอบภาพทดสอบ ตัวเลือก Full ส่งออกกล้องทดสอบเริ่มต้น แต่จะต้องมีการแสดงผลแยกโฟลเดอร์ test ที่มีการแสดงผลการทดสอบทั้งหมด
AABB ถูก จำกัด ให้เป็นกำลังจำนวนเต็มของ 2 มันกำหนดความยาวด้านข้างของปริมาตรกล่องขอบเขตซึ่ง NERF จะติดตามรังสี สถานที่ให้บริการได้รับการแนะนำด้วย NERF เวอร์ชัน NGP ทันทีของ NVIDIA
คุณสมบัติ File Format อาจเป็น NGP หรือ NERF การประชุมรูปแบบไฟล์ NGP นั้นเหมือนกับ NERF One โดยมีพารามิเตอร์เพิ่มเติมสองสามตัวซึ่งสามารถเข้าถึงได้โดย NGP ทันที
ขอให้สังเกตว่าแต่ละวิธีมีคุณสมบัติ Name ที่โดดเด่น (โดยค่าเริ่มต้นตั้งค่าเป็น dataset ) ที่สอดคล้องกับชื่อชุดข้อมูลและสร้างชื่อไฟล์ zip สำหรับวิธีการที่เกี่ยวข้อง โปรดทราบว่าอักขระที่ไม่ได้รับการสนับสนุนเช่นช่องว่าง # หรือ / / จะถูกแทนที่ด้วยขีดล่างโดยอัตโนมัติ
ด้านล่างอธิบายคุณสมบัติเฉพาะสำหรับแต่ละวิธี (คุณสมบัติ Name ถูกทิ้งไว้เนื่องจากกล่าวถึงแล้วข้างต้น)
Frame Step (โดยค่าเริ่มต้นตั้งค่าเป็น 3 ): n (ตามที่กำหนดไว้ในส่วนการตั้งค่า) = ความถี่ที่ลงทะเบียนเฟรมการฝึกอบรมCamera (ตั้งค่าเป็นกล้องที่ใช้งานอยู่เสมอ): กล้องที่ใช้ในการลงทะเบียนการฝึกอบรมและการทดสอบข้อมูลPLAY SOF : เล่น ชุดย่อยของตัวดำเนินการวิธีเฟรม เพื่อส่งออกข้อมูล NERFFrames (ตามค่าเริ่มต้นตั้งค่าเป็น 100 ): จำนวนเฟรมการฝึกอบรมที่ใช้จากกล้องฝึกอบรมTrain Cam (ว่างโดยค่าเริ่มต้น): กล้องที่ใช้ในการลงทะเบียนข้อมูลการฝึกอบรมTest Cam (ว่างโดยค่าเริ่มต้น): กล้องที่ใช้ในการลงทะเบียนข้อมูลการทดสอบPLAY TTC : เล่นตัวดำเนินการวิธี การรถไฟและกล้องทดสอบ เพื่อส่งออกข้อมูล NERF จำนวน Frames ของเฟรมการฝึกอบรมจะถูกจับโดยใช้วัตถุ Train Cam เริ่มต้นจากเฟรมเริ่มต้นฉาก
Camera (ตั้งค่าเป็นกล้องที่ใช้งานอยู่เสมอ): กล้องที่ใช้ในการลงทะเบียนข้อมูลการทดสอบLocation (ตามค่าเริ่มต้นตั้งค่าเป็นเวกเตอร์ 0 m ): ตำแหน่งกลางของทรงกลมการฝึกอบรมที่มีการสุ่มตัวอย่างมุมมองกล้องRotation (โดยค่าเริ่มต้นตั้งค่าเป็น 0 ° เวกเตอร์): การหมุนของทรงกลมการฝึกอบรมที่มีการสุ่มตัวอย่างมุมมองกล้องScale (โดยค่าเริ่มต้นตั้งค่าเป็น 1 เวกเตอร์): สเกลเวกเตอร์ของทรงกลมการฝึกอบรมในแกน XYZRadius (โดยค่าเริ่มต้นตั้งค่าเป็น 4 m ): Radius Scalar ของทรงกลมการฝึกอบรมLens (โดยค่าเริ่มต้นตั้งค่าเป็น 50 มม. ): ความยาวโฟกัสของกล้องฝึกอบรมSeed (โดยค่าเริ่มต้นตั้งค่าเป็น 0 ): เมล็ดพันธุ์เพื่อเริ่มต้นขั้นตอนการสุ่มตัวอย่างมุมมองกล้องแบบสุ่มFrames (ตามค่าเริ่มต้นตั้งค่าเป็น 100 ): จำนวนเฟรมการฝึกอบรมตัวอย่างและแสดงผลจากทรงกลมการฝึกอบรมSphere (ปิดการใช้งานโดยค่าเริ่มต้น): จะแสดงทรงกลมการฝึกอบรมที่จะสุ่มตัวอย่างCamera (ปิดการใช้งานโดยค่าเริ่มต้น): จะแสดงกล้องที่ใช้สำหรับการลงทะเบียนข้อมูลการฝึกอบรมUpper Views (ปิดการใช้งานโดยค่าเริ่มต้น): จะตัวอย่างมุมมองจากซีกการฝึกอบรมด้านบนเท่านั้น (ตัวแปรการหมุน)Outwards (ปิดการใช้งานโดยค่าเริ่มต้น): จะชี้กล้องออกไปด้านนอกของทรงกลมการฝึกอบรมPLAY COS : เล่น กล้องบนตัวดำเนินการวิธี Sphere Method เพื่อส่งออกข้อมูล Nerf โปรดทราบว่าการเปิดใช้งาน Sphere และคุณสมบัติ Camera จะสร้างวัตถุว่างเปล่า BlenderNeRF Sphere และวัตถุกล้อง BlenderNeRF Camera ตามลำดับ โปรดอย่าสร้างวัตถุใด ๆ ที่มีชื่อเหล่านี้ด้วยตนเองเนื่องจากสิ่งนี้อาจทำลายฟังก์ชั่นเสริม
จำนวน Frames ของเฟรมการฝึกอบรมจะถูกจับโดยใช้วัตถุ BlenderNeRF Camera เริ่มต้นจากเฟรมเริ่มต้นฉาก ในที่สุดโปรดทราบว่ากล้องฝึกถูกล็อคในสถานที่และไม่สามารถเคลื่อนย้ายได้ด้วยตนเอง
Nvidia ให้คำแนะนำที่เป็นประโยชน์เล็กน้อยเกี่ยวกับวิธีการฝึกอบรมรุ่น NERF โดยใช้ NGP ทันที อย่าลังเลที่จะเยี่ยมชมพื้นที่เก็บข้อมูลของพวกเขาเพื่อขอความช่วยเหลือเพิ่มเติม ด้านล่างนี้เป็นเคล็ดลับอย่างรวดเร็วสำหรับ การ nerfing ที่ดีที่สุดที่ได้รับจากประสบการณ์ส่วนตัว
AABB ให้แน่นที่สุดเท่าที่จะทำได้ค่าที่สูงขึ้นจะทำให้การฝึกอบรมช้าลงAABB ในขณะที่รักษาพลังไว้ 2Vertical พอดีนำไปสู่ปริมาณ Nerf ที่บิดเบี้ยวหลีกเลี่ยงถ้าเป็นไปได้ หากคุณสามารถเข้าถึง NVIDIA GPU คุณอาจต้องการติดตั้ง NGP ทันทีบนอุปกรณ์ของคุณเองเพื่อรับประสบการณ์การใช้งานที่ดีที่สุดโดยทำตามคำแนะนำที่ให้ไว้ในที่เก็บของพวกเขา มิฉะนั้นคุณสามารถเรียกใช้ nerf ในสมุดบันทึก colab บน Google GPU ได้ฟรีด้วยบัญชี Google
เปิดสมุดบันทึก Colab นี้ (สามารถดาวน์โหลดได้ที่นี่) และทำตามคำแนะนำ
ส่วนเสริมนี้ได้รับการพัฒนาเป็นโครงการด้านความสนุกสนานตลอดระยะเวลาหลายเดือนและรุ่นของ Blender ส่วนใหญ่บน MacOS หากคุณพบปัญหาใด ๆ เกี่ยวกับฟังก์ชันปลั๊กอินอย่าลังเลที่จะเปิดปัญหา GitHub ด้วยคำอธิบายที่ชัดเจนของปัญหาซึ่งเวอร์ชันที่ BlenderNerf ปัญหาได้รับการสัมผัสและข้อมูลเพิ่มเติมใด ๆ หากเกี่ยวข้อง
ในขณะที่ส่วนขยายนี้มีไว้สำหรับการสร้างชุดข้อมูลสังเคราะห์เครื่องมือที่มีอยู่สำหรับการนำเข้าข้อมูลการติดตามการเคลื่อนไหวจากกล้องโลกแห่งความจริง ตัวอย่างหนึ่งคือ tracky โดย Shopify แอพโอเพนซอร์ส iOS และข้อมูลการติดตามการบันทึกการเคลื่อนไหวของปลั๊กอินเครื่องปั่นที่อยู่ติดกันจากเซสชัน ARKIT บน iPhone โปรดทราบว่าข้อมูลการติดตามอาจมีการล่องลอยและความไม่ถูกต้องซึ่งอาจส่งผลกระทบต่อคุณภาพการสร้าง NERF ที่เกิดขึ้น
หากคุณพบว่าพื้นที่เก็บข้อมูลนี้มีประโยชน์ในการวิจัยของคุณโปรดพิจารณาอ้างถึง BlenDerNerf โดยใช้ปุ่ม GitHub เฉพาะด้านบน หากคุณใช้ส่วนขยายนี้สำหรับโครงการศิลปะของคุณอย่าลังเลที่จะแบ่งปันผลงานของคุณโดยใช้แฮชแท็ก #blendernerf บนโซเชียลมีเดีย! -