سواء أكان فنان VFX أو زميلًا باحثًا أو هواة الرسومات ، فإن Blendernerf هو أسهل وأسرع طريقة لإنشاء مجموعات بيانات NERF و Gaussian الاصطناعية داخل Blender. الحصول على المعلمات المعرضة ومعلمات الكاميرا بنقرة واحدة ، مع وجود التحكم الكامل للمستخدم في المشهد ثلاثي الأبعاد والكاميرا!
هل أنت مستعد ل NERF؟ ابدأ بنقرة واحدة في الخلاط عن طريق التحقق من هذا البرنامج التعليمي!
تهدف حقول الإشعاع العصبي (NERF) إلى تمثيل مشهد ثلاثي الأبعاد ككائن حجمي يعتمد على العرض من الصور ثنائية الأبعاد فقط ، إلى جانب معلومات الكاميرا الخاصة بها. تم تصميم المشهد ثلاثي الأبعاد من هندسة الصور التدريبية بمساعدة شبكة عصبية بسيطة.
غوسيا الرشوة هي طريقة متابعة لتقديم حقول الإرهاق بطريقة قائمة على النقطة. تم تحسين هذا التمثيل بشكل كبير لتقديم GPU ويستفيد من المزيد من تقنيات الرسومات التقليدية لتحقيق معدلات إطارات عالية.
أوصي بمشاهدة مقطع الفيديو على YouTube بواسطة Corridor Crew لإجراء تحقيق مثير في حالات الاستخدام القليلة والتطبيقات المحتملة المستقبلية لـ NERFs.
التقديم هو حساب باهظ الثمن. يمكن أن تستغرق المشاهد الواقعية ثوانٍ إلى ساعات لتقديمها اعتمادًا على تعقيد المشهد والأجهزة وموارد البرمجيات المتاحة.
يمكن لـ NERFs و Gaussian splats تسريع هذه العملية ، ولكنها تتطلب معلومات الكاميرا التي يتم استخلاصها عادة عبر رمز مرهق. يمكّن هذا البرنامج المساعد أي شخص من الحصول على تقديم وكاميرات بنقرة واحدة في الخلاط.
على الرغم من أن إصدارات الإصدار من Blendernerf متاحة للتنزيل ، إلا أنها مخصصة في المقام الأول لتتبع تغييرات التعليمات البرمجية الرئيسية ولأغراض الاستشهاد. أوصي بتنزيل المستودع الحالي مباشرة ، نظرًا لأن التغييرات الطفيفة أو إصلاحات الأخطاء قد لا يتم تضمينها في إصدار على الفور.
يتكون Blendernerf من 3 طرق تمت مناقشتها في الأقسام الفرعية أدناه. كل طريقة قادرة على إنشاء بيانات تدريب واختبار بيانات NERF في شكل صور تدريب وملف transforms_train.json على التوالي transforms_test.json مع معلومات الكاميرا المقابلة. يتم أرشفة البيانات في ملف zip واحد يحتوي على مجلدات التدريب والاختبار. يمكن بعد ذلك استخدام بيانات التدريب بواسطة نموذج NERF لتعلم تمثيل المشهد ثلاثي الأبعاد. بمجرد التدريب ، يمكن تقييم النموذج (أو اختباره) على بيانات الاختبار (معلومات الكاميرا فقط) للحصول على تقديمات جديدة.
مجموعة فرعية من الإطارات (SOF) تجعل كل إطارات N من الرسوم المتحركة للكاميرا ، وتستخدم مجموعة فرعية من الإطارات المقدمة كبيانات تدريب NERF. تمتد بيانات الاختبار المسجلة على جميع الإطارات من نفس الرسوم المتحركة للكاميرا ، بما في ذلك إطارات التدريب. عند تدريبه ، يمكن أن يؤدي نموذج NERF إلى تقديم الرسوم المتحركة الكاملة للكاميرا ، وبالتالي فهو مناسب تمامًا للاستيلاء على أو تقديم رسوم متحركة كبيرة من المشاهد الثابتة.
تسجل كاميرات القطار والاختبار (TTC) بيانات التدريب والاختبار من كاميرتين منفصلتين محددتين للمستخدمين. يمكن بعد ذلك تزويد نموذج NERF بالبيانات المستخرجة من كاميرا التدريب ، ويتم تقييمها على بيانات الاختبار.
تقوم الكاميرا على Sphere (COS) بإعداد إطارات التدريب عن طريق أخذ عينات من الكاميرا العشوائية بشكل موحد الموجهة إلى المركز من مجال خاضع للتحكم في المستخدم. يتم استخراج بيانات الاختبار من كاميرا محددة.
تتوفر لوحة الخصائص الإضافية ضمن 3D View > N panel > BlenderNeRF (يمكن الوصول إلى لوحة N ضمن إطار العرض ثلاثي الأبعاد عند الضغط على N ). تشترك جميع الأساليب الثلاث ( SOF و TTC و COS ) في علامة تبويب مشتركة تسمى BlenderNeRF shared UI مع الخصائص المدرجة أدناه.
Train (تم تنشيطه افتراضيًا): ما إذا كان لتسجيل بيانات التدريب (عرض + معلومات الكاميرا)Test (تم تنشيطه افتراضيًا): ما إذا كان لتسجيل بيانات الاختبار (معلومات الكاميرا فقط)AABB (بشكل افتراضي تعيين إلى 4 ): معلمة مقياس AABB كما هو موضح في NGP الفوري (مزيد من التفاصيل أدناه)Render Frames (يتم تنشيطها افتراضيًا): ما إذا كنت ستقدم الإطاراتSave Log File (إلغاء تنشيطه افتراضيًا): ما إذا كان لحفظ ملف سجل يحتوي على معلومات استنساخ على تشغيل BlendernerfFile Format ( NGP افتراضيًا): ما إذا كنت تريد تصدير ملفات الكاميرا في اتفاقية تنسيق ملف NGP أو Defaut NERFGaussian Points (إلغاء تنشيطها افتراضيًا): ما إذا كان لتصدير ملف points3d.ply للاطلاع على غوسياGaussian Test Camera Poses ( دمية افتراضيًا): ما إذا كان يجب تصدير ملف كاميرا اختبار وهمية أو مجموعة كاملة من كاميرا الاختبار (مع Gaussian Points فقط)Save Path (فارغ بشكل افتراضي): المسار إلى دليل الإخراج الذي سيتم إنشاء مجموعة البيانات فيه إذا كانت خاصية Gaussian Points نشطة ، فسيقوم Blendernerf بإنشاء ملفات إضافية points3d.ply من جميع الشبكات المرئية (في وقت العرض) حيث سيتم استخدام كل قمة كنقطة تهيئة. سيتم تخزين ألوان Vertex إذا كانت متوفرة ، وتعيينها على الأسود على خلاف ذلك.
يدعم مستودع الرشق الغوسي مجموعات بيانات NERF ، ولكنه يتطلب كل من بيانات القطار والاختبار. الخيار Dummy Gaussian Test Camera Poses الخاصية تنشئ ملف كاميرا اختبار فارغة ، في حالة عدم الحاجة إلى صور اختبار. يتصدر الخيار Full أن كاميرا الاختبار الافتراضية التي تشكلها ، ولكنها ستتطلب بشكل منفصل تقديم مجلد test يحتوي على جميع عمليات الاختبار.
تقتصر AABB على أن تكون قوة عدد صحيح من 2 ، فهي تحدد الطول الجانبي لحجم المربع المحيط الذي ستتبع NERF الأشعة. تم تقديم العقار مع إصدار NGP الفوري من NVIDIA من NERF.
يمكن أن تكون خاصية File Format NGP أو NERF . إن اتفاقية تنسيق ملف NGP هي نفسها NERF ، مع بعض المعلمات الإضافية التي يمكن الوصول إليها بواسطة 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 م ): الوضع المركزي لمجال التدريب الذي يتم أخذ عينات من مشاهدات الكاميرا منهRotation (بشكل افتراضي تم تعيينه إلى ناقل 0 درجة ): دوران مجال التدريب الذي يتم من خلاله أخذ عينات من مشاهدات الكاميراScale (بشكل افتراضي تم تعيينه على ناقل واحد ): ناقل المقياس من مجال التدريب في محاور XYZRadius نصف قطرها (بشكل افتراضي تم تعيينه على 4 م )Lens (بشكل افتراضي تم تعيينها على 50 مم ): البعد البؤري لكاميرا التدريبSeed (بشكل افتراضي تعيين إلى 0 ): بذرة لتهيئة إجراء أخذ عينات الكاميرا العشوائيةFrames (افتراضيًا تم تعيينها على 100 ): عدد إطارات التدريب التي تم أخذ عينات منها وتقديمها من مجال التدريبSphere (تم إلغاء تنشيطه افتراضيًا): ما إذا كان سيتم إظهار مجال التدريب الذي سيتم أخذ عينات من المشاهدات العشوائية منهCamera (إلغاء تنشيطها افتراضيًا): ما إذا كان لإظهار الكاميرا المستخدمة لتسجيل بيانات التدريبUpper Views (إلغاء تنشيطها افتراضيًا): ما إذا كان يجب أخذ وجهات نظر من نصف الكرة التدريبي العلوي فقط (متغير الدوران)Outwards (تم إلغاء تنشيطه افتراضيًا): ما إذا كان يجب توجيه الكاميرا إلى الخارج من مجال التدريبPLAY COS : قم بتشغيل الكاميرا على مشغل طريقة المجال لتصدير بيانات NERF لاحظ أن تنشيط خصائص Sphere Camera ينشئ كائنًا فارغًا BlenderNeRF Sphere وكائن كاميرا BlenderNeRF Camera على التوالي. يرجى عدم إنشاء أي كائنات مع هذه الأسماء يدويًا ، لأن هذا قد يكسر وظائف الوظائف الإضافية.
سيتم التقاط كمية Frames من إطارات التدريب باستخدام كائن BlenderNeRF Camera ، بدءًا من إطار بدء المشهد. أخيرًا ، ضع في اعتبارك أن كاميرا التدريب مغلقة في مكانها ولا يمكن نقلها يدويًا.
توفر Nvidia بعض النصائح المفيدة حول كيفية تدريب نموذج NERF باستخدام NGP الفوري. لا تتردد في زيارة مستودعهم لمزيد من المساعدة. فيما يلي بعض النصائح السريعة للأناقة المثلى المكتسبة من التجربة الشخصية.
AABB بإحكام قدر الإمكان على نطاق المشهد ، وسوف تبطئ القيم العليا التدريبAABB مع إبقائها قوة 2Vertical في بعض الأحيان إلى أحجام NERF مشوهة ، وتجنبها إن أمكن إذا كان لديك إمكانية الوصول إلى وحدة معالجة الرسومات NVIDIA ، فقد ترغب في تثبيت NGP الفوري على جهازك الخاص لتجربة مستخدم مثالية ، من خلال اتباع الإرشادات المقدمة على مستودعها. خلاف ذلك ، يمكنك تشغيل NERF في دفتر Colab على Google GPU مجانًا باستخدام حساب Google.
افتح دفتر كولاب هذا (قابل للتنزيل هنا أيضًا) واتبع التعليمات.
يتم تطوير هذه الوظيفة الإضافية كمشروع جانبي ممتع على مدار عدة أشهر وإصدارات من الخلاط ، وخاصة على MacOS. إذا واجهت أي مشكلات مع وظائف البرنامج المساعد ، فلا تتردد في فتح مشكلة github مع وصف واضح للمشكلة ، وهو إصدار blendernerf الذي واجهته المشكلات ، وأي معلومات أخرى إذا كانت ذات صلة.
على الرغم من أن هذا الامتداد مخصص لإنشاء مجموعات البيانات الاصطناعية ، إلا أن الأدوات الحالية لاستيراد بيانات تتبع الحركة من كاميرات العالم الحقيقي متوفرة. أحد الأمثلة على ذلك هو Tracky by Shopify ، وتطبيق IOS مفتوح المصدر وبيانات تسجيل الحركة المجاورة للتسجيل من الخلاط من جلسة Arkit على iPhone. ومع ذلك ، ضع في اعتبارك أن تتبع البيانات يمكن أن يخضع للانجرافات وعدم الدقة ، مما قد يؤثر على جودة إعادة بناء NERF الناتجة.
إذا وجدت هذا المستودع مفيدًا في بحثك ، فيرجى التفكير في ذكر Blendernerf باستخدام زر GitHub المخصص أعلاه. إذا استفدت من هذا الامتداد لمشاريعك الفنية ، فلا تتردد في مشاركة بعض عملك باستخدام علامة التجزئة #blendernerf على وسائل التواصل الاجتماعي! سائدا