بداية سريعة
يتعلم أكثر
الميزات المدعومة
الأمر بسيط مثل التوصيل والتشغيل مع nerfstudio!
يوفر Nerfstudio واجهة برمجة تطبيقات بسيطة تتيح عملية مبسطة وشاملة لإنشاء NeRFs وتدريبها واختبارها. تدعم المكتبة تنفيذًا أكثر قابلية للتفسير لـ NeRFs من خلال تقسيم كل مكون. مع المزيد من وحدات NeRF المعيارية، نأمل في إنشاء تجربة أكثر سهولة في الاستخدام في استكشاف التكنولوجيا.
يعد هذا مستودعًا صديقًا للمساهمين يهدف إلى بناء مجتمع حيث يمكن للمستخدمين البناء بسهولة على مساهمات بعضهم البعض. تم إطلاق Nerfstudio في البداية كمشروع مفتوح المصدر من قبل طلاب بيركلي في مختبر KAIR في Berkeley AI Research (BAIR) في أكتوبر 2022 كجزء من مشروع بحثي (ورقة). تم تطويره حاليًا من قبل طلاب بيركلي والمساهمين في المجتمع.
نحن ملتزمون بتوفير موارد تعليمية لمساعدتك على فهم الأساسيات (إذا كنت قد بدأت للتو)، والبقاء على اطلاع (إذا كنت من المخضرمين المخضرمين) بكل ما يتعلق بـ NeRF. كباحثين، نحن نعلم مدى صعوبة الانضمام إلى تقنية الجيل التالي هذه. لذلك نحن هنا للمساعدة في البرامج التعليمية والوثائق والمزيد!
هل لديك طلبات ميزة؟ هل تريد إضافة نموذج NeRF الجديد الخاص بك؟ هل لديك مجموعة بيانات جديدة؟ نحن نرحب بالمساهمات! من فضلك لا تتردد في التواصل مع فريق nerfstudio لطرح أي أسئلة عبر Discord.
هل لديك تعليقات؟ يسعدنا أن تقوم بملء نموذج التعليقات الخاص بـ Nerfstudio إذا كنت تريد إخبارنا من أنت أو سبب اهتمامك بـ Nerfstudio أو تقديم أي تعليقات!
نأمل أن يمكّنك nerfstudio من البناء بشكل أسرع؟ نتعلم معا؟ والمساهمة في مجتمع NeRF الخاص بنا؟.
يشمل رعاة هذا العمل Luma AI وBAIR commons.
ستساعدك البداية السريعة على البدء باستخدام Vanilla NeRF الافتراضي الذي تم تدريبه على مشهد Blender Lego الكلاسيكي. لمزيد من التغييرات المعقدة (على سبيل المثال، التشغيل باستخدام بياناتك الخاصة/إعداد رسم بياني NeRF جديد)، يرجى الرجوع إلى مراجعنا.
يجب أن يكون لديك بطاقة فيديو NVIDIA مع CUDA مثبتة على النظام. تم اختبار هذه المكتبة باستخدام الإصدار 11.8 من CUDA. يمكنك العثور على مزيد من المعلومات حول تثبيت CUDA هنا
يتطلب Nerfstudio إصدار python >= 3.8
. نوصي باستخدام conda لإدارة التبعيات. تأكد من تثبيت Conda قبل المتابعة.
conda create --name nerfstudio -y python=3.8 كوندا تفعيل nerfstudio تثبيت النقطة - ترقية النقطة
قم بتثبيت PyTorch باستخدام CUDA (تم اختبار هذا الريبو باستخدام CUDA 11.7 وCUDA 11.8) وmini-cuda-nn. cuda-toolkit
مطلوبة لبناء tiny-cuda-nn
.
بالنسبة لكودا 11.8:
شعلة تثبيت النقطة==2.1.2+cu118 torchvision==0.16.2+cu118 --extra-index-url https://download.pytorch.org/whl/cu118 مجموعة أدوات conda install -c "nvidia/label/cuda-11.8.0" تثبيت النقطة ninja git+https://github.com/NVlabs/tiny-cuda-nn/#subdirectory=bindings/torch
راجع التبعيات في وثائق التثبيت للمزيد.
خيار سهل:
نقطة تثبيت nerfstudio
أو إذا كنت تريد الأحدث والأفضل:
استنساخ بوابة https://github.com/nerfstudio-project/nerfstudio.gitcd nerfstudio تثبيت النقطة - ترقية أدوات إعداد النقطة تثبيت النقطة -e .
أو إذا كنت تريد تخطي جميع خطوات التثبيت والبدء مباشرة في استخدام nerfstudio، فاستخدم صورة عامل الإرساء:
راجع التثبيت - استخدم صورة عامل الإرساء .
سيقوم ما يلي بتدريب نموذج nerfacto ، وهو نموذجنا الموصى به لمشاهد العالم الحقيقي.
# تنزيل بعض بيانات الاختبار:ns-download-data nerfstudio --capture-name=poster# Train modelns-train nerfacto --data data/nerfstudio/poster
إذا سار كل شيء على ما يرام، فيجب أن ترى تقدم التدريب كما يلي:
سيؤدي الانتقال إلى الرابط الموجود في نهاية الوحدة الطرفية إلى تحميل عارض الويب. إذا كنت تعمل على جهاز بعيد، فستحتاج إلى إعادة توجيه منفذ websocket (الإعداد الافتراضي هو 7007).
من الممكن تحميل نموذج تم تدريبه مسبقًا عن طريق التشغيل
ns-train nerfacto --بيانات البيانات/nerfstudio/poster --load-dir {outputs/.../nerfstudio_models}
نظرًا لنقطة تفتيش نموذجية تم تدريبها مسبقًا، يمكنك بدء تشغيل العارض
ns-viewer --load-config {outputs/.../config.yml}
بمجرد حصولك على نموذج NeRF، يمكنك إما عرض مقطع فيديو أو تصدير سحابة نقطية.
أولاً يجب علينا إنشاء مسار لتتبعه الكاميرا. يمكن القيام بذلك في العارض ضمن علامة التبويب "RENDER". قم بتوجيه العرض ثلاثي الأبعاد إلى الموقع الذي تريد أن يبدأ فيه الفيديو، ثم اضغط على "ADD CAMERA". سيؤدي هذا إلى تعيين الإطار الرئيسي للكاميرا الأول. استمر في وجهات النظر الجديدة بإضافة كاميرات إضافية لإنشاء مسار الكاميرا. نحن نقدم معلمات أخرى لتحسين مسار الكاميرا بشكل أكبر. بمجرد الرضا، اضغط على "RENDER" الذي سيعرض نموذجًا يحتوي على الأمر المطلوب لعرض الفيديو. قم بإنهاء مهمة التدريب (أو قم بإنشاء محطة طرفية جديدة إذا كان لديك الكثير من الحساب) وقم بتشغيل الأمر لإنشاء الفيديو.
تتوفر خيارات أخرى لتصدير الفيديو، تعرف على المزيد عن طريق التشغيل
ns-render --help
في حين أن نماذج NeRF ليست مصممة لتوليد السحب النقطية، إلا أنها لا تزال ممكنة. انتقل إلى علامة التبويب "تصدير" في العارض ثلاثي الأبعاد وحدد "POINT CLOUD". إذا تم تحديد خيار الاقتصاص، فسيتم تصدير كل شيء في المربع الأصفر إلى سحابة نقطية. قم بتعديل الإعدادات حسب الرغبة ثم قم بتشغيل الأمر الموجود أسفل اللوحة في سطر الأوامر الخاص بك.
وبدلاً من ذلك، يمكنك استخدام واجهة سطر الأوامر (CLI) بدون العارض. تعرف على خيارات التصدير عن طريق التشغيل
ns-export pointcloud --help
يعد استخدام مجموعة بيانات موجودة أمرًا رائعًا، ولكن من المحتمل أنك تريد استخدام بياناتك الخاصة! نحن ندعم طرقًا مختلفة لاستخدام بياناتك الخاصة. قبل أن يتم استخدامه في nerfstudio، يجب تحديد موقع الكاميرا واتجاهاتها ثم تحويلها إلى التنسيق الخاص بنا باستخدام ns-process-data
. نحن نعتمد على أدوات خارجية لهذا الغرض، ويمكن العثور على التعليمات والمعلومات في الوثائق.
بيانات | جهاز الالتقاط | متطلبات | سرعة ns-process-data |
---|---|---|---|
الصور | أي | كولماب | |
فيديو | أي | كولماب | |
360 بيانات | أي | كولماب | |
بوليكام | نظام تشغيل iOS مع تقنية LiDAR | تطبيق بوليكام | |
سجل3D | نظام تشغيل iOS مع تقنية LiDAR | تطبيق تسجيل ثلاثي الأبعاد | |
ميتاشيب | أي | ميتاشيب | |
أوديإم | أي | أوديإم | |
الأغنية | نظارات اريا | مشروع اريا | |
مخصص | أي | أوضاع الكاميرا |
نحن نقدم نماذج أخرى غير nerfacto، على سبيل المثال إذا كنت تريد تدريب نموذج nerf الأصلي، استخدم الأمر التالي
ns-train vanil-nerf --data DATA_PATH
للحصول على قائمة كاملة بالنماذج المضمنة، قم بتشغيل ns-train --help
.
يحتوي كل نموذج على العديد من المعلمات التي يمكن تغييرها، ولا يمكن إدراج الكثير منها هنا. استخدم الأمر --help
لرؤية القائمة الكاملة لخيارات التكوين.
ns-train nerfacto --help
نحن ندعم أربع طرق مختلفة لتتبع تقدم التدريب، باستخدام لوحة العرض والأوزان والتحيزات والمذنب. يمكنك تحديد المتخيل الذي تريد استخدامه عن طريق إلحاق --vis {viewer, tensorboard, wandb, comet viewer+wandb, viewer+tensorboard, viewer+comet}
بأمر التدريب. قد يؤدي استخدام العارض جنبًا إلى جنب مع لوحة التحكم أو لوحة الشد في نفس الوقت إلى حدوث مشكلات التأتأة أثناء خطوات التقييم. يعمل العارض فقط مع الطرق السريعة (مثل nerfacto، Instant-ngp)، أما بالنسبة للطرق الأبطأ مثل NeRF، فاستخدم أدوات تسجيل أخرى.
وهذا كل ما في الأمر للبدء في تعلم أساسيات nerfstudio.
إذا كنت مهتمًا بمعرفة المزيد حول كيفية إنشاء مسارات خاصة بك، والتطوير مع العارض، وتشغيل المعايير، والمزيد، فيرجى مراجعة بعض الروابط السريعة أدناه أو زيارة وثائقنا مباشرةً.
قسم | وصف |
---|---|
التوثيق | وثائق API الكاملة والبرامج التعليمية |
مشاهد | الصفحة الرئيسية لعارض الويب لدينا |
التعليمية | |
أوصاف النموذج | وصف لجميع النماذج التي يدعمها nerfstudio وشرح الأجزاء المكونة لها. |
أوصاف المكونات | دفاتر ملاحظات تفاعلية تشرح الوحدات البارزة/شائعة الاستخدام في نماذج مختلفة. |
دروس | |
ابدء | دليل أكثر تعمقًا حول كيفية البدء في استخدام nerfstudio بدءًا من التثبيت وحتى المساهمة. |
استخدام العارض | فيديو تجريبي سريع حول كيفية التنقل بين المشاهد. |
باستخدام Record3D | فيديو توضيحي حول كيفية تشغيل nerfstudio دون استخدام COLMAP. |
للمطورين | |
إنشاء خطوط الأنابيب | تعرف على كيفية إنشاء خطوط عرض عصبية جديدة بسهولة باستخدام و/أو تنفيذ وحدات نمطية جديدة. |
إنشاء مجموعات البيانات | هل لديك مجموعة بيانات جديدة؟ تعرف على كيفية تشغيله باستخدام nerfstudio. |
المساهمة | شرح تفصيلي لكيفية البدء بالمساهمة الآن. |
الفتنة | انضم إلى مجتمعنا لمناقشة المزيد. نحن نحب أن نسمع منك! |
تغريد | تابعنا على Twitternerfstudioteam لرؤية التحديثات والإعلانات الرائعة |
نموذج الملاحظات | نحن نرحب بأي ردود فعل! هذه هي فرصتنا لمعرفة ما الذي تستخدمون من أجله Nerfstudio. |
نحن نقدم هياكل الدعم التالية لتسهيل بدء استخدام NeRFs.
إذا كنت تبحث عن ميزة غير مدعومة حاليًا، فلا تتردد في الاتصال بفريق Nerfstudio على Discord!
متخيل قائم على الويب يسمح لك بما يلي:
تصور التدريب في الوقت الحقيقي + التفاعل مع المشهد
قم بإنشاء المشاهد وعرضها باستخدام مسارات الكاميرا المخصصة
عرض أنواع الإخراج المختلفة
وأكثر!
دعم واجهات التسجيل المتعددة (Tensorboard وWandb) وملفات تعريف التعليمات البرمجية وأدوات تصحيح الأخطاء المضمنة الأخرى
نصوص قياس الأداء سهلة الاستخدام في مجموعة بيانات Blender
دعم كامل لخطوط الأنابيب (مع Colmap أو Polycam أو Record3D) للانتقال من مقطع فيديو على هاتفك إلى عرض ثلاثي الأبعاد كامل.
نظام تكوين سهل الاستخدام
تم تطويره بواسطة برنت يي
مكتبة لتسريع عرض NeRF
تم تطويره بواسطة رويلونج لي
يمكنك العثور على نسخة ورقية من إطار العمل على arXiv.
إذا كنت تستخدم هذه المكتبة أو وجدت الوثائق مفيدة لبحثك، يرجى مراعاة الاستشهاد بما يلي:
@inproceedings{nerfstudio, title = {Nerfstudio: A Modular Framework for Neural Radiance Field Development}, author = { Tancik, Matthew and Weber, Ethan and Ng, Evonne and Li, Ruilong and Yi, Brent and Kerr, Justin and Wang, Terrance and Kristoffersen, Alexander and Austin, Jake and Salahi, Kamyar and Ahuja, Abhik and McAllister, David and Kanazawa, Angjoo }, year = 2023, booktitle = {ACM SIGGRAPH 2023 Conference Proceedings}, series = {SIGGRAPH '23} }