الرؤية الحاسوبية2023متوسط13 دقيقة قراءة
التمثيل بالنقاط الغاوسية ثلاثية الأبعاد لتصيير حقول الإشعاع في الزمن الحقيقي
3D Gaussian Splatting for Real-Time Radiance Field Rendering
Kerbl, B. · Kopanas, G. · Leimkühler, T. · Drettakis, G. — ACM Transactions on Graphics (SIGGRAPH)
المشكلة
بحلول عام 2023، كانت حقول العصبية (NeRF) قد حققت جودة مذهلة في توليد مناظر جديدة — أي إنشاء صور واقعية للمشهد من زوايا كاميرا لم تُلتقط من قبل. لكن NeRF وخلفاءها اصطدموا بعنق زجاجة جوهري: عملية التصيير تتطلب إطلاق مئات الأشعة عبر شبكة عصبية لكل بكسل، مما يجعل العرض اللحظي مستحيلاً للمشاهد الكاملة بدقة عالية. الأساليب الأسرع مثل Instant-NGP سرّعت لكنها ظلّت عاجزة عن الوصول إلى 30 إطاراً في الثانية بدقة 1080p على مشاهد حقيقية مفتوحة. كان الميدان عالقاً بين ثنائية الجودة والسرعة — لا توجد طريقة تقدّم كليهما معاً.
الإسهام
خطّ أنابيب متكامل لتوليد مناظر واقعية جديدة يحقّق أعلى مستوى جودة ويعمل في الزمن الحقيقي (≥30 إطاراً في الثانية بدقة 1080p) في آنٍ واحد. يتكوّن من ثلاثة ابتكارات متشابكة: (1) تمثيل صريح للمشهد باستخدام ملايين التوزيعات الغاوسية متباينة الخواصّ ثلاثية الأبعاد — كل واحدة تحمل موقعاً ومصفوفة تغايُر وشفافية ومعاملات توافقيات كروية للّون قابلة للتعلّم؛ (2) نظام تحكّم تكيُّفي بالكثافة يقوم باستنساخ النقاط الغاوسية وتقسيمها وتشذيبها أثناء التحسين لالتقاط التفاصيل الدقيقة والبنية العريضة معاً؛ (3) مُصيِّر بلاطي قابل للتفاضل يعمل على وحدة المعالجة الرسومية ويقوم بإسقاط النقاط وترتيبها وتركيبها بمزج ألفا في الزمن الحقيقي — بدون إطلاق أشعة وبدون شبكة عصبية عند العرض.
الأثر
أصبح التمثيل بالنقاط الغاوسية ثلاثية الأبعاد الأسرع تبنّياً في تاريخ التصيير العصبي. في غضون أشهر وُلدت منه مئات الأوراق التي غطّت المشاهد المتحركة والملاحة المتزامنة (SLAM) وتوليد ثلاثي الأبعاد من النصوص والصور الرمزية والقيادة الذاتية وغيرها. أثبتت الورقة أن البدائيات الصريحة مع الكلاسيكي قادرة على مجاراة التمثيلات العصبية الضمنية بل تفوقها في الجودة مع كونها أسرع بأوامر حجمية كاملة. أثّر العمل مباشرةً في أنظمة توليد الفيديو وأصبح لبنةً أساسية في إنشاء المحتوى ثلاثي الأبعاد اللحظي. تجاوزت نجوم GitHub الـ 22,000 — شهادة على الأثر البحثي والفائدة العملية معاً.
تخيّل أن NeRF عرّاف محبوس في غرفة مغلقة. تُعطيه إحداثيات الكاميرا من شقّ في الباب، فيجلس يحسب ويحسب ثم يردّ عليك بلون بكسل واحد. العرّاف بارع فعلاً، لكنه بطيء لدرجة أن تجميع صورة كاملة يحتاج ثوانيَ طويلة.
يقلب الفكرة رأساً على عقب. تصوَّر أنك تنثر في الغرفة ملايين الخرزات الزجاجية الملونة — كل خرزة تستطيع مطّها لتصير بيضاوية، وتصبغها بأي لون، وتتحكّم في شفافيتها. بعدها تضبط كل خرزة حتى يتطابق المنظر من أي نافذة مع الصورة الأصلية تماماً. عند المشاهدة لا تحتاج عرّافاً — فقط وجِّه الكاميرا ودع GPU ترسم الخرزات كلها على الشاشة في أجزاء من الثانية.
المشكلة: التصيير العصبي دقيق لكنه بطيء
الفكرة الأساسية في NeRF أنه يحوّل المشهد إلى دالة مستمرة محفوظة داخل شبكة عصبية: أدخِل أي نقطة ثلاثية الأبعاد مع اتجاه النظر، تحصل على لون وكثافة. لتوليد بكسل واحد، تُطلِق شعاعاً في المشهد وتسأل الشبكة عند عشرات النقاط على امتداده، ثم تدمج تلك العيّنات في لون نهائي عبر .
الصور الناتجة مذهلة فعلاً، لكن المشكلة في السرعة. كل بكسل يحتاج عدة عبر الشبكة. بدقة 1080p يعني ذلك أكثر من مليوني بكسل، كل منها يحتاج عشرات العيّنات — أي مئات الملايين من تقييمات الشبكة في الإطار الواحد. حتى التحسينات مثل شبكات الهاش المكانية (Instant-NGP) أو التمثيلات المحسوبة مسبقاً (Plenoxels) لم تستطع الوصول إلى تصيير لحظي حقيقي على مشاهد واقعية مفتوحة بدقة كاملة.
جذر المشكلة معماري بالدرجة الأولى: NeRF يعتمد — المشهد مخبَّأ داخل أوزان الشبكة، ولا سبيل للوصول إليه إلا بالاستعلام نقطة بنقطة. التمثيل بالنقاط الغاوسية يقلب المعادلة: ماذا لو كان صريحاً — مجموعة بدائيات هندسية بسيطة تعرف GPU كيف ترسمها مباشرة؟
الفكرة الجوهرية: المشهد كسحابة من التوزيعات الغاوسية ثلاثية الأبعاد
ثلاثي الأبعاد هو أبسط «فقاعة ضبابية» يمكنك تخيّلها في الفراغ. فكِّر فيه ككتلة بيضاوية ناعمة: كثافتها عالية في المركز ثم تخبو تدريجياً نحو الأطراف حتى تصل إلى الصفر. يتحدد شكل هذه الكتلة بمركزها (المتوسط μ) و Σ التي تضبط حجمه وشكله واتجاهه.
الفكرة القوية هنا أن غاوسياً واحداً يستطيع تقليد أشكال هندسية متنوعة حسب ضبط محاوره: اجعله رقيقاً ومسطّحاً فيمثّل رقعة من سطح مستوٍ، أو اسحبه ليصير طويلاً ونحيفاً فيمثّل حافة دقيقة، أو اتركه كروياً فيصبح سحابة ضبابية ناعمة. هذا بالضبط معنى أن الغاوسيات — أي أن كل محور يتمدد بمقدار مختلف، فيتشكّل كل بدائي ليلائم الهندسة المحلية التي يغطّيها.
كل غاوسي يحمل خمس خصائص قابلة للتعلُّم: موقعه μ ∈ ℝ³، ومصفوفة تغايُر Σ ∈ ℝ³ˣ³ (مُعبَّر عنها برباعي دوران q ومتجه مقياس s لأسباب سنشرحها بعد قليل)، وشفافية α ∈ [0,1]، ومعاملات (SH) التي تتحكم في . بفضل هذه المعاملات يستطيع الغاوسي أن يغيّر لونه حسب الزاوية التي تنظر منها — وهذا ضروري لمحاكاة الانعكاسات اللامعة على الأسطح المعدنية مثلاً.
التصيير: من فقاعات ثلاثية الأبعاد إلى بكسلات
تحويل الغاوسيات ثلاثية الأبعاد إلى صورة على الشاشة يستخدم نفس معادلة المعروفة في تصيير الحجم، لكن الفرق الجوهري أنها تُحسَب هنا عبر التصيير البلاطي وليس بإطلاق أشعة. تمرّ العملية بثلاث مراحل:
1. الإسقاط: كل غاوسي ثلاثي الأبعاد يُسقَط على مستوى الصورة وفقاً لموقع الكاميرا. أثناء هذا الإسقاط، تتحول مصفوفة التغايُر Σ الثلاثية إلى مصفوفة ثنائية الأبعاد Σ′ عبر تقريب من الرتبة الأولى باستخدام مصفوفة جاكوبي للإسقاط المنظوري. النتيجة: شكل بيضاوي ثنائي الأبعاد على الشاشة — هذه هي «بقعة» الغاوسي.
2. الترتيب حسب العمق: تُرتَّب كل الغاوسيات من الأقرب إلى الأبعد. هذا شرط أساسي لصحة مزج ألفا — لأن الغاوسي القريب يحجب جزءاً مما خلفه.
3. مزج ألفا: لكل بكسل، تُدمَج الغاوسيات التي تغطّيه من الأمام إلى الخلف. كل غاوسي يساهم بلونه مُرجَّحاً بشفافيته وبمقدار تأثيره عند ذلك البكسل، مضروباً في — أي نسبة الضوء التي لم تمتصّها الغاوسيات الأقرب بعد. يتوقف التراكم حين تنخفض النفاذية تحت عتبة محددة.
سرّ السرعة: التصيير البلاطي على وحدة المعالجة الرسومية
لو طبّقنا معادلة مزج ألفا بالطريقة المباشرة — نختبر كل غاوسي مع كل بكسل — ستكون العملية بطيئة جداً. لذلك يعتمد محرك التصيير في الورقة على نهج التصيير البلاطي المستوحى من الطريقة التي ترسم بها GPU المثلثات في الرسوميات التقليدية:
الخطوة 1 — : أولاً، تخلّص من كل غاوسي يقع خارج مجال رؤية الكاميرا، مستعيناً بفاصل ثقة 99% لتحديد حدود كل غاوسي.
الخطوة 2 — التبليط: قسِّم الشاشة إلى بلاطات بحجم 16×16 بكسل، ثم سجِّل كل غاوسي في كل بلاطة تتقاطع معها بقعته المُسقَطة.
الخطوة 3 — الترتيب: داخل كل بلاطة، رتِّب الغاوسيات حسب العمق باستخدام فرز أساسي (radix sort) سريع على GPU. الحيلة الذكية هنا: ادمج معرّف البلاطة والعمق في عدد صحيح واحد، وبذلك تكفي عملية فرز شاملة واحدة لترتيب كل البلاطات دفعة واحدة.
الخطوة 4 — التركيب: كل بلاطة تُعالَج بكتلة خيوط واحدة على GPU. الخيوط داخل الكتلة تتشارك قائمة الغاوسيات المرتّبة عبر الذاكرة المشتركة (shared memory) وتُنفّذ مزج ألفا بالتوازي — خيط واحد لكل بكسل. يتوقف التراكم مبكراً حين تنخفض النفاذية تحت 1/255.
جمال هذا التصميم أنه ينطبق تماماً على بنية عتاد GPU: البلاطات تُقابل كتل الخيوط، والبكسلات تُقابل الخيوط، والذاكرة المشتركة تخدم قائمة الغاوسيات بعرض نطاق عالٍ. النتيجة: 30 إلى أكثر من 200 إطار في الثانية بدقة 1080p حسب تعقيد المشهد.
التحكّم التكيُّفي بالكثافة: تنمية سحابة الغاوسيات وتشذيبها
نقطة البداية هي متفرقة تُولّدها خوارزمية (SfM). هذه النقاط أقل بكثير مما يلزم لتمثيل مشهد كامل — الأمر أشبه بمحاولة رسم لوحة تفصيلية بمئة نقطة فقط. هنا يأتي دور نظام التحكّم التكيُّفي بالكثافة الذي يُنمّي سحابة الغاوسيات ويهذّبها تلقائياً أثناء التدريب:
الاستنساخ — حين يكون الغاوسي صغيراً لكن تدرّج موقعه كبير، فهذا يعني أن المُحسِّن «يشدّه» بقوة لأن المنطقة المحيطة ناقصة التغطية. الحل: أنشئ نسخة منه وادفعها في اتجاه التدرّج لسدّ الفراغ الهندسي. فكِّر فيها كخلية تنقسم لتستعمر مساحة فارغة.
التقسيم — حين يكون الغاوسي كبيراً وتدرّجه كبير أيضاً، فهو يغطي منطقة واسعة لكنه عاجز عن تمثيل تفاصيلها الدقيقة. الحل: استبدله بغاوسيَّين أصغر يتوزّعان على المنطقة. مثل فرشاة رسم عريضة تُستبدَل بفرشاتين رفيعتين للتفاصيل.
التشذيب — دورياً تُزال الغاوسيات التي أصبحت شبه شفافة (α قريبة من الصفر) أو كبيرة بإفراط. والأذكى من ذلك أن النظام يُعيد ضبط شفافية الجميع إلى قيمة قريبة من الصفر كل فترة، فيُجبر كل غاوسي على «إثبات جدواه» من جديد — من لا يساهم في أي منظر يتلاشى ويُحذف.
تدور هذه الحلقة كل 100 خطوة تحسين. في النهاية يستقرّ المشهد النموذجي عند 1–5 ملايين غاوسي — أقل بأوامر حجمية من عدد تقييمات الشبكة العصبية التي يحتاجها NeRF لإطار واحد.
التدريب: حلقة التحسين الكاملة
تُحسَّن جميع معاملات الغاوسيات معاً عبر ، والمُصيِّر القابل للتفاضل هو من يوفّر التدرّجات. أما فتجمع بين مركّبتين:
المركّبة الأولى هي خسارة L1 التي تقيس فرق اللون المطلق بين كل بكسل في الصورة المُصيَّرة ونظيره في الصورة الحقيقية. المركّبة الثانية هي D-SSIM التي تنظر إلى التشابه البنيوي على مستوى رقع صغيرة — فتلتقط أخطاء التباين والبنية التي تفلت من L1 وحدها. الترجيح λ = 0.2 حُدِّد تجريبياً.
التدريب يستمر عادةً 30,000 تكرار ويحتاج 20–50 دقيقة على GPU واحدة. هذا الزمن منافس لأسرع متغيرات NeRF أو يتفوق عليها، والأهمّ أن التمثيل الناتج يُصيَّر في الزمن الحقيقي — قفزة هائلة مقارنة بـ NeRF الذي كان يحتاج ثوانيَ لكل إطار حتى بعد انتهاء التدريب.
مبسَّط لإظهار الفكرة — ليس التنفيذ الحقيقي.
import torch
def train_step(gaussians, camera, gt_image, iteration):
"""خطوة تحسين واحدة للتمثيل بالنقاط الغاوسية ثلاثية الأبعاد."""
# 1. أسقِط الغاوسيات ثلاثية الأبعاد على مستوى الصورة
means_2d, covs_2d, depths = project_gaussians(
gaussians.means, # (N, 3) المواقع
gaussians.quats, # (N, 4) رباعيات الدوران
gaussians.scales, # (N, 3) متجهات المقياس
camera # معاملات الكاميرا الداخلية والخارجية
)
# 2. رتِّب حسب العمق لمزج ألفا الصحيح
sorted_idx = torch.argsort(depths)
# 3. تصيير بلاطي: ارسم البقع على الصورة
rendered = tile_rasterize(
means_2d[sorted_idx],
covs_2d[sorted_idx],
gaussians.colors[sorted_idx], # SH → RGB
gaussians.opacities[sorted_idx],
image_size=gt_image.shape[-2:]
)
# 4. احسب الخسارة المركّبة
l1_loss = torch.abs(rendered - gt_image).mean()
ssim_loss = 1.0 - ssim(rendered, gt_image)
loss = 0.8 * l1_loss + 0.2 * ssim_loss
# 5. انشر التدرّجات عبر المُصيِّر القابل للتفاضل
loss.backward()
optimizer.step()
# 6. تحكّم تكيُّفي بالكثافة كل 100 خطوة
if iteration % 100 == 0:
clone_small_high_grad(gaussians) # نقص تمثيل ← استنساخ
split_large_high_grad(gaussians) # فرط تمثيل ← تقسيم
prune_transparent(gaussians) # α ≈ 0 ← إزالة
return loss.item()
# لا شبكة عصبية عند العرض — فقط أسقِط ورتِّب وركِّب!النتائج: الجودة تلتقي بالسرعة
اختُبرت الطريقة على 13 مشهداً حقيقياً من ثلاثة معايير راسخة — Mip-NeRF 360 وTanks & Temples وDeep Blending — إضافة إلى مجموعة بيانات Blender الاصطناعية. وكانت النتائج لافتة على أكثر من صعيد:
-
الجودة: على معيار Mip-NeRF 360 حققت النقاط الغاوسية قيم مساوية أو أعلى من أسلوب Mip-NeRF 360 نفسه — الذي كان يتصدّر الميدان — مع SSIM أعلى وLPIPS أقلّ في أغلب المشاهد.
-
السرعة: بدقة 1080p تراوح الأداء بين 30 إطاراً في الثانية للمشاهد الخارجية المعقدة وأكثر من 200 إطار للمشاهد الداخلية الأصغر — وهو أول أسلوب يصل إلى أداء لحظي بهذا المستوى من الجودة على مشاهد مفتوحة غير محدودة.
-
زمن التدريب: 20–50 دقيقة على GPU واحدة من نوع NVIDIA A6000 — ينافس أسرع متغيرات NeRF ويتفوق بمراحل على NeRF الأصلي الذي كان يحتاج ساعات أو أياماً.
-
حجم التمثيل: 1–5 ملايين غاوسي لكل مشهد تخزّن الموقع ومصفوفة التغايُر ومعاملات SH والشفافية، بحجم بضع مئات من الميغابايت — عملي بما يكفي للنشر الفعلي.
هذا الجمع بين الجودة والسرعة لم يكن له سابقة. كل الأساليب السابقة كانت تقع على منحنى مقايضة واضح بين الاثنين؛ النقاط الغاوسية اخترقت هذا المنحنى.
اللون المعتمد على اتجاه النظر عبر التوافقيات الكروية
في الواقع لا يوجد سطح يبدو متماثلاً من كل الزوايا. انظر إلى طاولة معدنية: ستلاحظ انعكاسات لامعة تتحرك مع حركتك. حتى الجدار المطفأ يحمل تدرّجات ظلّ خفيفة تتغير بالاتجاه. لمحاكاة اللون المعتمد على اتجاه النظر بدون شبكة عصبية، يحتفظ كل غاوسي بمعاملات توافقيات كروية (SH) بدلاً من لون ثابت وحيد.
ما هي التوافقيات الكروية؟ هي مجموعة دوالّ أساسية مُعرَّفة على سطح كرة — فكِّر فيها كأنماط اهتزاز على بالون. بتخزين معاملات حتى الدرجة الثالثة (16 معاملاً لكل قناة لون)، يستطيع كل غاوسي وصف كيف يتبدّل لونه مع زاوية المشاهدة. المعاملات ذات الرتب الدنيا تصف اللون الأساسي المنتشر، والرتب الأعلى تلتقط التفاصيل الدقيقة كالانعكاسات اللامعة.
عند التصيير، يُحسَب اتجاه النظر من الكاميرا نحو كل غاوسي، ثم تُقيَّم معاملات SH لتُنتِج لون RGB يخصّ ذلك المنظر بالذات. العملية أرخص حسابياً بمراحل من استعلام شبكة عصبية، ومع ذلك تلتقط تنوّعاً بصرياً ثرياً.
ما الذي فتحه التمثيل بالنقاط الغاوسية
2020
NeRF
ترميز المشهد كدالة مستمرة داخل شبكة MLP. جودة مذهلة لكن كل إطار يحتاج ثوانيَ للتصيير. أشعلت ثورة التصيير العصبي.
2022
Instant-NGP
شبكة هاش مكانية قلّصت تدريب NeRF من ساعات إلى دقائق. تصيير شبه لحظي للمشاهد الصغيرة، لكن 1080p في الزمن الحقيقي على مشاهد مفتوحة بقي بعيد المنال.
2023
النقاط الغاوسية ثلاثية الأبعاد
بدائيات غاوسية صريحة + تصيير بلاطي. أوّل أسلوب يحقق تصييراً لحظياً بدقة 1080p بأعلى مستوى جودة. أكثر من 22 ألف نجمة على GitHub.
2024
النقاط الغاوسية رباعية الأبعاد والمشاهد المتحركة
توسيع الفكرة إلى المشاهد المتحركة والأفاتارات المرنة و SLAM. أُضيف بُعد زمني للغاوسيات مما أتاح توليد مناظر جديدة لحظياً لمشاهد متحركة.
2024
التأثير في توليد الفيديو
التمثيلات الغاوسية ثلاثية الأبعاد أثّرت في أنظمة توليد الفيديو وأنابيب توليد 3D من النصوص، فجسرت الفجوة بين النماذج التوليدية الثنائية والمخرجات المتسقة ثلاثياً.
الدرس الأعمق الذي تركته النقاط الغاوسية هو تحوّل في طريقة التفكير: العودة من التمثيلات الضمنية العصبية إلى بدائيات هندسية صريحة، لكن مسلّحة هذه المرة بالتحسين القابل للتفاضل والتصيير البلاطي الحديث على GPU. أثبتت الورقة أن أدوات الرسوميات الحاسوبية الكلاسيكية — رسم النقاط ومزج ألفا والتصيير البلاطي — تكتسب قوة جديدة حين تُزوَّد بالتعلّم المبني على التدرّجات. الميدان لم يكن بحاجة إلى شبكة عصبية أفضل — كان بحاجة إلى تمثيل أفضل.
المرجعKerbl, Kopanas, Leimkühler, Drettakis. 3D Gaussian Splatting for Real-Time Radiance Field Rendering. ACM Transactions on Graphics (SIGGRAPH), 2023.
مصطلحات هذه الورقة
- التطاير الغاوسيGaussian Splatting
- حقل الإشعاع العصبيNeural Radiance Field
- المنظر الجديدNovel View
- التصيير الحجميVolume Rendering
- الدمج بالعتامةAlpha Compositing
- التوافقيات الكرويةSpherical Harmonics
- لا متناحٍAnisotropic
- مصفوفة التباين المشتركCovariance Matrix
- التصيير القابل للاشتقاقDifferentiable Rendering
- سحابة النقاطPoint Cloud
- البنية من الحركةStructure from Motion
- اللون المعتمد على زاوية الرؤيةView-Dependent Color
- الإشعاعRadiance
- وضعية الكاميراCamera Pose
- تمثيل المشهدScene Representation