التحسين المشترك للطوبولوجيا والمواد والإضاءة من ملاحظات الصور متعددة الرؤية كما هو موضح في الورقة التي تستخرج النماذج ثلاثية الأبعاد ثلاثية الأبعاد والمواد والإضاءة من الصور.
بالنسبة إلى Tetrahedons المسيرة القابلة للتمييز ، قمنا بتكييف الكود من Nvidia's Kaolin: مكتبة Pytorch لتسريع أبحاث التعلم العميق ثلاثي الأبعاد.
2023-10-20 : لقد أضفنا نسخة من مكتبة Renderutils مكتوبة باللغة العشوائية للاستفادة من إمكانيات Autodiff من العامية بدلاً من امتدادات CUDA مع تمريرات للأمام والخلف يدويًا. هذا يبسط الكود بشكل كبير ، مع نفس أداء وقت التشغيل كما كان من قبل. هذا الإصدار متاح في فرع slang من هذا الريبو.
2023-09-15 : لقد أضفنا الدعم لتقنية التوصيفات المرنة. يرجى الاطلاع على config configs/bob_flexi.json للحصول على مثال للاستخدام ، والرجوع إلى وثائق المرونة للحصول على التفاصيل.
@inproceedings{Munkberg_2022_CVPR,
author = {Munkberg, Jacob and Hasselgren, Jon and Shen, Tianchang and Gao, Jun and Chen, Wenzheng
and Evans, Alex and M"uller, Thomas and Fidler, Sanja},
title = "{Extracting Triangular 3D Models, Materials, and Lighting From Images}",
booktitle = {Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR)},
month = {June},
year = {2022},
pages = {8280-8290}
}
حقوق الطبع والنشر © 2022 ، Nvidia Corporation. جميع الحقوق محفوظة.
يتم توفير هذا العمل بموجب ترخيص رمز المصدر NVIDIA.
للاستفسارات التجارية ، يرجى زيارة موقعنا على الويب وتقديم النموذج: ترخيص NVIDIA Research.
يتطلب Python 3.6+ و VS2019+و CUDA 11.3+ و Pytorch 1.10+
تم اختباره في Anaconda3 مع Python 3.9 و Pytorch 1.10
قم بتثبيت مجموعة أدوات CUDA (المطلوبة لإنشاء ملحقات Pytorch). نحن ندعم CUDA 11.3 وما فوق. اختر الإصدار المناسب من Pytorch متوافق مع مجموعة أدوات CUDA المثبتة. أدناه مثال على CUDA 11.6
conda create -n dmodel python=3.9
activate dmodel
conda install pytorch torchvision torchaudio cudatoolkit=11.6 -c pytorch -c conda-forge
pip install ninja imageio PyOpenGL glfw xatlas gdown
pip install git+https://github.com/NVlabs/nvdiffrast/
pip install --global-option="--no-networks" git+https://github.com/NVlabs/tiny-cuda-nn#subdirectory=bindings/torch
imageio_download_bin freeimage
activate dmodel
تم تصميم نهجنا لقيام وحدات معالجة الرسومات NVIDIA الراقية مع كميات كبيرة من الذاكرة. لتشغيله على وحدة معالجة الرسومات متوسطة المدى ، قلل من معلمة حجم الدُفعة في ملفات .json.
جنس بسيط 1 مثال لإعادة الإعمار:
python train.py --config configs/bob.json
تصور تقدم التدريب (مدعوم فقط على Windows):
python train.py --config configs/bob.json --display-interval 20
مثال متعدد GPU (Linux فقط. تجريبي: تم إنشاء جميع النتائج في الورق باستخدام وحدة معالجة الرسومات الواحدة ) ، باستخدام Pytorch DDP
torchrun --nproc_per_node=4 train.py --config configs/bob.json
أدناه ، نعرض نقطة البداية والنتيجة النهائية. إشارات إلى اليمين.


سيتم تخزين النتائج في المجلد out . تم إنشاء نماذج البقعة والبوب وإطلاقها في المجال العام من قبل كينان كرين.
أمثلة متضمنة
spot.json - استخراج نموذج ثلاثي الأبعاد لنموذج البقعة. الهندسة والمواد والإضاءة من ملاحظات الصورة.spot_fixlight.json - كما هو مذكور أعلاه ولكن بافتراض إضاءة البيئة المعروفة.spot_metal.json - مثال على التعلم المشترك للمواد وإضاءة بيئة التردد العالي لعرض الانقسام.bob.json - مثال بسيط لنموذج جنس 1. بالإضافة إلى ذلك ، ندرج التكوينات ( nerf_*.json ، nerd_*.json ) لإعادة إنتاج النتائج الرئيسية للورقة. نحن نعتمد على مجموعات بيانات الطرف الثالث ، والتي هي بإذن من مؤلفيهم. يرجى ملاحظة أن التراخيص الفردية تنطبق على كل مجموعة بيانات. لتنزيل جميع مجموعات البيانات والمعالجة المسبقة تلقائيًا ، قم بتشغيل البرنامج النصي download_datasets.py :
activate dmodel
cd data
python download_datasets.py
يتبع أدناه المزيد من المعلومات والتعليمات حول كيفية تثبيت مجموعات البيانات يدويًا (في حالة فشل البرنامج النصي الآلي).
مجموعة البيانات الاصطناعية NERF لدينا نتائج الاستيفاء لدينا استخدم مجموعة البيانات الاصطناعية من ورقة NERF الأصلية. لتثبيته يدويًا ، قم بتنزيل أرشيف مجموعة البيانات الاصطناعية NERF وفك ضغطه في مجلد nvdiffrec/data . هذا مطلوب لتشغيل أي من nerf_*.json تكوينات.
مجموعة بيانات NERD نستخدم مجموعات البيانات من الورق الطالب الذي يذاكر كثيرا ، والذي يتميز بتصوير الصور الواقعة وأقنعة تجزئة غير دقيقة (مشروح يدويًا). استنساخ مجموعات بيانات الطالب الذي يذاكر كثيرا باستخدام GIT وإنقاذها إلى 512 × 512 بكسل الدقة باستخدام Script scale_images.py . هذا مطلوب لتشغيل أي من nerd_*.json .
activate dmodel
cd nvdiffrec/data/nerd
git clone https://github.com/vork/ethiopianHead.git
git clone https://github.com/vork/moldGoldCape.git
python scale_images.py
cd docker
./make_image.sh nvdiffrec:v1
ابدأ حاوية Docker التفاعلية: docker run --gpus device=0 -it --rm -v /raid:/raid -it nvdiffrec:v1 bash
docker منفصلة: docker run --gpus device=1 -d -v /raid:/raid -w=[path to the code] nvdiffrec:v1 python train.py --config configs/bob.json