الرؤية الحاسوبية2020متوسط10 دقيقة قراءة
NeRF: تمثيل المشاهد كحقول إشعاع عصبية لتوليف المناظر
NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis
Mildenhall, B. · Srinivasan, P. P. · Tancik, M. · Barron, J. T. · Ramamoorthi, R. · Ng, R. — ECCV
المشكلة
توليد صور واقعية لمشهد من زوايا كاميرا لم تُلتقط منه — انطلاقاً من عدد محدود من الصور — ظلّ تحدياً مفتوحاً. التمثيلات التقليدية ثلاثية الأبعاد كالأسطح المضلّعة والشبكات الحجمية إما افتقرت إلى التفاصيل الدقيقة أو التهمت ذاكرة هائلة. أما الأساليب العصبية المتوفرة فلم تنجح في تصيير مشاهد واقعية معقدة تتضمن تأثيرات مرتبطة بزاوية النظر كالانعكاسات والشفافية الجزئية بدقة عالية.
الإسهام
حقول الإشعاع العصبية (NeRF): تمثّل المشهد بوصفه دالة مستمرة ذات خمسة أبعاد — تأخذ الإحداثيات المكانية (x, y, z) (θ, φ) وتُخرج واللون المرتبط بزاوية الرؤية — وتُخزَّن بالكامل داخل شبكة عصبية متعددة الطبقات. يرفع المدخلات إلى فضاء عالي التردد ليتمكن النموذج من التقاط التفاصيل الهندسية الدقيقة. واستراتيجية اختيار العينات الهرمية () تُركِّز الحساب حيث توجد المادة فعلاً فيصبح التصيير أكثر كفاءة. ولأن قابل للاشتقاق بطبيعته، يُدرَّب النموذج بالكامل من صور ثنائية الأبعاد معلومة الوضعية فقط.
الأثر
أطلق NeRF موجة التصيير العصبي. في غضون ثلاث سنوات ظهر Instant-NGP ( في ثوانٍ) وMip-NeRF (تصيير خالٍ من التشويه) ثم ثلاثي الأبعاد — الذي استبدل الشبكة الضمنية بملايين التوزيعات الغاوسية الصريحة لتحقيق تصيير آني. الفكرة المحورية في NeRF — تصيير قابل للاشتقاق لدالة ضمنية تصف المشهد — أصبحت ركيزةً لإنشاء المحتوى ثلاثي الأبعاد ومحاكاة القيادة الذاتية وتطبيقات الواقع المعزز والافتراضي.
تخيّل أنك تملك عالماً مصغّراً محبوساً داخل كرة ثلج زجاجية. تستطيع تصويره من أي زاوية، لكنك لا تستطيع فتح الكرة ولمس ما بداخلها.
الطرق التقليدية تحاول إعادة بناء الأجسام — أي تصنع نسخة هندسية من صورك. لكن NeRF يسلك طريقاً مختلفاً تماماً: يدرِّب على حفظ الضوء داخل الكرة. أعطِها أي نقطة في الفضاء وأي اتجاه نظر، فتُخبرك بالضبط ما لون تلك النقطة ومدى عتامتها. ولالتقاط صورة جديدة، ما عليك سوى إطلاق أشعة وهمية عبر الكرة وسؤال الشبكة عمّا سيراه كل شعاع.
المشكلة: كيف تلتقط عالماً ثلاثي الأبعاد من صور مسطحة؟
تصوِّر مشهداً من 20 إلى 100 زاوية، ثم تريد صورة واقعية من زاوية لم تُصوِّرها قط — هذا ما نسميه الجديدة. قبل NeRF كان لكل أسلوب حدوده:
- الأسطح المضلّعة تبني أشكالاً مثلثية صريحة، لكنها تعجز أمام الأجسام الضبابية والشفافة كالدخان والشعر والزجاج.
- الشبكات الحجمية () تقسِّم الفضاء إلى مكعبات صغيرة، لكن الذاكرة تنفجر تكعيبياً — شبكة 512³ وحدها تحتاج 134 مليون خلية قبل أن تُخزِّن لوناً واحداً.
- متناثرة وتُنتج ثقوباً عند التصيير.
NeRF يتجاوز هذه العقبات الثلاث بتمثيل المشهد لا كأشكال هندسية، بل كـ — دالة مُتعلَّمة محفوظة بالكامل داخل أوزان الشبكة العصبية.
الفكرة الجوهرية: شبكة عصبية تعرف شكل كل نقطة في الفضاء
الفكرة أن NeRF يُخزِّن المشهد بأكمله داخل واحدة. هذه الشبكة دالة تستقبل — موقع مكاني واتجاه نظر — وتُعطيك شيئين:
- الكثافة الحجمية — ما مدى عتامة هذه النقطة؟ هل يوجد هنا جسم صلب أم فراغ؟
- بقيم — ما اللون الذي تراه من هذا الاتجاه تحديداً؟
الكثافة تتبع الموقع المكاني فقط (الجدار يظلّ جداراً أينما وقفت)، أما اللون فيتغير حسب اتجاه النظر — وهذا ما يمنح NeRF القدرة على محاكاة الانعكاسات اللامعة والتأثيرات البصرية التي تتبدّل بتغيُّر زاوية المشاهدة.
الترميز الموضعي: تعليم الشبكة رؤية التفاصيل الدقيقة
الشبكات متعددة الطبقات تميل بطبيعتها لتعلُّم دوال ناعمة منخفضة التردد. إحداثي خام مثل يتغير ببطء شديد فلا يكفي لنحت حواف حادة أو تفاصيل دقيقة. NeRF يعالج ذلك بـالترميز الموضعي — وهي الفكرة نفسها المستخدمة في ورقة المُحوِّل، لكنها هنا مُوظَّفة لخدمة الفضاء ثلاثي الأبعاد.
كل إحداثي عددي يُحوَّل إلى عالي الأبعاد عبر دوال جيبية بترددات تتضاعف أُسيّاً. تخيّل أنك تحوِّل نغمة واحدة هادئة إلى وتر غني بالتوافقيات — الترددات المنخفضة تلتقط الشكل العام، والترددات العالية ترسم الحواف الحادة والتفاصيل الدقيقة.
التصيير الحجمي: من حقل الكثافة إلى بكسلات
لتصيير بكسل واحد، يُطلق NeRF من عين الكاميرا عبر ذلك البكسل نحو المشهد، ثم يسأل الشبكة عند نقطة على طول هذا الشعاع. كل نقطة تُسهم بلونها وفق عاملين:
- كثافتها — النقاط المعتمة تُسهم بلون أكبر.
- مقدار الضوء الذي حجبته النقاط الأقرب للكاميرا — وهو ما يُعرف بـ .
لون البكسل النهائي هو مجموع موزون لكل العينات على امتداد الشعاع. هذه هي فكرة التصيير الحجمي الكلاسيكي — الفيزياء نفسها المستخدمة في التصوير المقطعي الطبي وتأثيرات السُحب السينمائية — لكن مصدر حقل الكثافة هنا شبكة عصبية وليس قياساً فيزيائياً.
السير الشعاعي: التنقل عبر المشهد نقطة بنقطة
عملية بسيطة المبدأ: لتصيير صورة، يرسم NeRF شعاعاً واحداً لكل بكسل. على طول كل شعاع تُؤخذ عينة بين الحد القريب والبعيد للمشهد. عند كل نقطة تُسأل الشبكة عن الكثافة واللون، ثم تُدمج النتائج عبر معادلة التصيير الحجمي.
تخيّل أنك تسير داخل ضباب على طول شعاع ليزر: في كل خطوة تسجّل كثافة الضباب ولونه. حين تمرّ بسحابة كثيفة تحجب ما خلفها، وحين يكون الهواء صافياً تظلّ ألوان الخلفية مرئية. البكسل النهائي هو حصيلة كل ما رأيته أثناء المسير، مُرجَّحاً بكمية الضوء المتبقية عند كل خطوة.
اختيار العينات الهرمي: أنفق العينات حيث يهمّ الأمر
توزيع العينات بالتساوي على طول الشعاع مُبذِّر — فمعظم الفضاء فارغ ولا يُضيف شيئاً للون النهائي. لذلك يعتمد NeRF من مرحلتين:
- الشبكة الخشنة: تأخذ = 64 عينة منتظمة وتُجري تصييراً حجمياً سريعاً لرسم خارطة كثافة تقريبية على طول الشعاع — أي تكتشف أين توجد المادة.
- الشبكة الدقيقة: تأخذ أوزان المرحلة الخشنة كتوزيع احتمالي وتسحب = 128 عينة إضافية مُركَّزة في المناطق عالية الكثافة، ثم تُشغِّل شبكة ثانية أكبر على كل العينات معاً لإنتاج اللون النهائي.
الأمر أشبه بمسح رف كتب بمصباح يدوي (المرور الخشن) لتحديد أيّ الرفوف عليها كتب، ثم تسليط ضوء القراءة هناك فقط (المرور الدقيق).
بنية الشبكة متعددة الطبقات: كيف تُوصَّل الشبكة
بنية الشبكة متعددة الطبقات في NeRF مصمَّمة عمداً لفصل الهندسة عن المظهر:
- 8 (256 قناة لكل منها مع تنشيط ) تعالج الإحداثيات المكانية بعد ترميزها موضعياً. تُعيد المدخل الأصلي إلى الطبقة الخامسة — الفكرة ذاتها من شبكة ResNet.
- بعد الطبقة الثامنة تُخرج الشبكة الكثافة الحجمية — وهي تعتمد فقط على الموقع المكاني.
- طبقة إضافية واحدة تأخذ المتجه ذا 256 بُعداً من الطبقة الثامنة، وتُضيف إليه اتجاه النظر المُرمَّز موضعياً، ثم تُخرج لون RGB.
هذا الفصل مقصود: الكثافة مستقلة عن الزاوية لأن هندسة المشهد ثابتة بصرف النظر عن مكان المشاهد، أما اللون فيتغير لأن السطح اللامع يبدو مختلفاً من كل زاوية.
التدريب: التعلم من الصور فقط
تدريب NeRF لا يحتاج سوى مجموعة صور مع معرفة لكل منها (تُحسب عادةً بتقنية البنية من الحركة). في كل خطوة تدريبية:
- تُختار دفعة عشوائية من أشعة الكاميرا من صور التدريب.
- لكل شعاع، تُؤخذ عينات وتُمرَّر عبر الشبكتين الخشنة والدقيقة.
- يُصيَّر لون البكسل المتوقع عبر التصيير الحجمي.
- تُحسب الضوئية — بين اللون المُصيَّر واللون الحقيقي.
- تُنشر التدرجات خلفياً عبر معادلة التصيير إلى أوزان الشبكة.
بعد نحو 100–300 ألف تكرار (يوم إلى يومين على واحدة)، تكون الشبكة قد استوعبت هندسة المشهد ومظهره بما يكفي لتوليد صور واقعية من زوايا لم تُصوَّر قط.
الفكرة نفسها في الكود
مبسَّط لإظهار الفكرة — ليس التنفيذ الحقيقي.
import numpy as np
def positional_encoding(x, L=10):
"""رفع عدد واحد إلى 2L سمة جيبية."""
freqs = 2.0 ** np.arange(L) * np.pi
return np.concatenate([np.sin(x * freqs), np.cos(x * freqs)])
def volume_render(colors, densities, deltas):
"""تصيير حجمي كلاسيكي على شعاع واحد.
colors: (N, 3) — لون RGB عند كل عينة
densities: (N,) — كثافة σ عند كل عينة
deltas: (N,) — المسافة بين عينات متتالية
"""
alpha = 1.0 - np.exp(-densities * deltas) # عتامة كل عينة
transmittance = np.cumprod(1.0 - alpha + 1e-10) # الضوء المتبقي
transmittance = np.concatenate([[1.0], transmittance[:-1]]) # إزاحة
weights = alpha * transmittance # إسهام كل عينة
pixel_color = (weights[:, None] * colors).sum(axis=0)
return pixel_color # (3,) — بكسل RGB واحد
# خط أنابيب NeRF الكامل لكل بكسل:
# 1. أطلق شعاعاً من الكاميرا عبر البكسل
# 2. اختر N نقطة على طول الشعاع
# 3. رمِّز موضعياً إحداثيات (x,y,z) والاتجاه (θ,φ)
# 4. أدخِلها للشبكة → احصل على (σ, r, g, b) لكل نقطة
# 5. صيِّر حجمياً عينات (σ, rgb) إلى لون بكسل واحد
# 6. خسارة MSE مقابل البكسل الحقيقي ← تحديث تراجعي للشبكةلماذا كان NeRF مهماً
2020
NeRF (هذه الورقة)
تمثيل ضمني خماسي الأبعاد للمشهد مع ترميز موضعي واختيار عينات هرمي. نتائج مذهلة الواقعية لكنها بطيئة — ساعات للتدريب وثوانٍ لتصيير صورة واحدة.
2021
Mip-NeRF
استبدل العينات النقطية بمخاريط مُتتبَّعة مما قضى على تشوّهات التعرّج وحسّن جودة التصيير على مقاييس مختلفة.
2022
Instant-NGP
ترميز بجداول تجزئة متعددة الدقة حلّ محلّ الترميز الموضعي، فانخفض زمن التدريب من ساعات إلى ثوانٍ وأصبح NeRF صالحاً للتطبيقات التفاعلية.
2023
التطاير الغاوسي ثلاثي الأبعاد
استبدل الشبكة الضمنية بملايين التوزيعات الغاوسية الصريحة ثلاثية الأبعاد، فحقق تصييراً آنياً (أكثر من 30 إطاراً/ثانية) بجودة تضاهي NeRF، مما فتح الباب لتطبيقات الواقع المعزز والافتراضي.
2024
غاوسيات رباعية الأبعاد والمشاهد الديناميكية
التوسّع إلى أربعة أبعاد (مكان + زمن) أتاح تصييراً آنياً للمشاهد المتحركة — من الإعادات الرياضية إلى الحضور عن بُعد والإنتاج الافتراضي.
النموذج الذي أرساه NeRF — درِّب على الصور وصيِّر من أي زاوية — أصبح ركيزة الجيل التالي من إنشاء المحتوى ثلاثي الأبعاد، من العرض الغامر في Google إلى محاكاة القيادة الذاتية. وسليله المباشر التطاير الغاوسي ثلاثي الأبعاد حلّ مشكلة السرعة وجعل الآني واقعاً عملياً.
المرجعMildenhall, Srinivasan, Tancik, Barron, Ramamoorthi, Ng. NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis. ECCV, 2020.
مصطلحات هذه الورقة
- حقل الإشعاع العصبيNeural Radiance Field
- التصيير الحجميVolume Rendering
- توليف المناظرView Synthesis
- التمثيل الضمنيImplicit Representation
- السير الشعاعيRay Marching
- الترميز الموضعيPositional Encoding
- الكثافة الحجميةVolume Density
- اتجاه النظرViewing Direction
- اختيار العينات الهرميHierarchical Sampling
- المنظر الجديدNovel View
- شعاع الكاميراCamera Ray
- النفاذيةTransmittance
- الدمج بالعتامةAlpha Compositing
- إحداثيات خماسية الأبعاد5D Coordinate
- اللون المعتمد على زاوية الرؤيةView-Dependent Color