Vincent Sitzmann*، Julien NP Martel*، Alexander W. Bergman ، David B. Lindell ، Gordon Wetzstein
جامعة ستانفورد ، *تشير إلى مساهمة متساوية
هذا هو التنفيذ الرسمي للورقة "التمثيلات العصبية الضمنية مع وظائف التنشيط الدورية".
إذا كنت ترغب في تجربة صفارات الإنذار ، فقد كتبنا كولاب. إنه أمر شامل تمامًا ويأتي مع عدم وجود طيور ، وتنفيذ صفارات الإنذار. لا يتطلب تثبيت أي شيء ، ويمر عبر التجارب التالية / خصائص صفارات الإنذار:
يمكنك أيضًا لعب Arond مع صفارات الإنذار الصغيرة بشكل تفاعلي ، مباشرة في المتصفح ، عبر ملعب TensorFlow هنا. شكرا لديفيد كاتو لتنفيذ هذا!
إذا كنت ترغب في إعادة إنتاج جميع النتائج (بما في ذلك خطوط الأساس) الموضحة في الورقة ، يمكن العثور على مقاطع الفيديو والغيوم النقطية وملفات الصوت هنا.
يمكنك بعد ذلك إعداد بيئة كوندا مع جميع التبعيات مثل:
conda env create -f environment.yml
conda activate siren
تم تنظيم الرمز على النحو التالي:
يحتوي Directory experiment_scripts
على برنامج نصي واحد لكل تجربة في الورقة.
لمراقبة التقدم المحرز ، يكتب رمز التدريب ملخصات Tensorboard إلى دليل "ملخصات" "في الدليل الفرعي في تسجيل الدخول.
يمكن إعادة إنتاج تجربة الصورة مع
python experiment_scripts/train_img.py --model_type=sine
تم تصنيع الأرقام الموجودة في الورق عن طريق استخراج الصور من ملخصات Tensorboard. يمكن العثور على رمز مثال كيفية القيام بذلك في البرنامج النصي make_figures.py.
يأتي مستودع GitHub مع كل من مقاطع الصوت "العد" و "Bach" تحت ./data.
يمكن تدريبهم مع
python experiment_scipts/train_audio.py --model_type=sine --wav_path=<path_to_audio_file>
يأتي تسلسل الفيديو "الدراجات" مع Scikit-Video ولا يلزم تنزيله. يمكن تنزيل فيديو Cat باستخدام الرابط أعلاه.
لتناسب نموذجًا مع مقطع فيديو ، قم بتشغيله
python experiment_scipts/train_video.py --model_type=sine --experiment_name bikes_video
بالنسبة لتجارب Poisson ، هناك ثلاث برامج نصية منفصلة: واحدة لإعادة بناء صورة من تدرجاتها (Train_poisson_grad_img.py) ، من Laplacian (Train_poisson_lapl_image.py) ، ولجمع صورتين (Train_Poisson_gradcomp_pyg.py).
تم تشغيل بعض التجارب باستخدام بيانات BSD500 ، والتي يمكنك تنزيلها هنا.
لتناسب وظيفة المسافة الموقعة (SDF) مع صفارات الإنذار ، تحتاج أولاً إلى نقطة في تنسيق .xyz الذي يتضمن القواعد الطبيعية السطحية. إذا كان لديك ملف شبكة / رقائق فقط ، فيمكن تحقيق ذلك باستخدام Meshlab للأداة المفتوحة المصدر.
لإعادة إنتاج نتائجنا ، نقدم كلا النموذجين للتمثال التايلاندي من مستودع نموذج Stanford ثلاثي الأبعاد وغرفة المعيشة المستخدمة في ورقتنا للتنزيل هنا.
لبدء تدريب صفارات الإنذار ، قم بالتشغيل:
python experiments_scripts/train_single_sdf.py --model_type=sine --point_cloud_path=<path_to_the_model_in_xyz_format> --batch_size=250000 --experiment_name=experiment_1
سيؤدي ذلك إلى حفظ نقاط التفتيش بانتظام في الدليل المحدد بواسطة Contpath في البرنامج النصي ، في دليل فرعي "Experience_1". عادةً ما يتم ضبط batch_size لتناسب ذاكرة وحدة معالجة الرسومات بأكملها. تُظهر تجاربنا أنه من خلال صفارة صفارات الإنذار المخفية 256 ، 3 ، يمكن للمرء تعيين حجم الدفعة بين 230-250'000 ل GPU NVIDIA مع ذاكرة 12 جيجابايت.
لتفقد SDF مزودة بسحابة ثلاثية الأبعاد ، نحتاج الآن إلى إنشاء شبكة من مجموعة المستوى الصفر من SDF. يتم تنفيذ ذلك باستخدام برنامج نصي آخر يستخدم خوارزمية مكعبات مسيرة (مقتبسة من DeepSDF Github Repo) ويقوم بإنشاء الشبكة المحفوظة بتنسيق ملف. يمكن استدعاؤه مع:
python experiments_scripts/test_single_sdf.py --checkpoint_path=<path_to_the_checkpoint_of_the_trained_model> --experiment_name=experiment_1_rec
سيؤدي هذا إلى توفير ملف .ply كـ "إعادة بناء. من المحتمل أن يتجمد السيناريو. إذا كانت هذه هي الحالة ، فيرجى استخدام الخيار -Resolution = 512 في سطر الأوامر أعلاه (تم تعيينه على 1600 افتراضيًا) من شأنه إعادة بناء الشبكة بدقة مكانية أقل.
يمكن تصور ملف .ply باستخدام برنامج مثل Meshlab (مرشح ومحرر منصات منصة للموديلات ثلاثية الأبعاد).
يمكن استنساخ تجارب Helmholtz ومعادلة الموجة باستخدام Train_wave_equation.py و Train_Helmholtz.py.
نحن نستخدم Torchmeta الممتاز لتنفيذ Hypernetworks. لقد أدركنا أن هناك تقريرًا فنيًا ، لقد نسينا أن نستشهد به - سيجعله في إصدار جاهز للكاميرا!
إذا وجدت عملنا مفيدًا في بحثك ، فيرجى الاستشهاد:
@inproceedings{sitzmann2019siren,
author = {Sitzmann, Vincent
and Martel, Julien N.P.
and Bergman, Alexander W.
and Lindell, David B.
and Wetzstein, Gordon},
title = {Implicit Neural Representations
with Periodic Activation Functions},
booktitle = {arXiv},
year={2020}
}
إذا كان لديك أي أسئلة ، فلا تتردد في إرسال بريد إلكتروني إلى المؤلفين.