الرؤية الحاسوبية2017متوسط11 دقيقة قراءة
PointNet: التعلُّم العميق على مجموعات النقاط لتصنيف وتجزئة الأشكال ثلاثية الأبعاد
PointNet: Deep Learning on Point Sets for 3D Classification and Segmentation
Qi, C. R. · Su, H. · Mo, K. · Guibas, L. J. — CVPR
المشكلة
سُحب النقاط — الخرج الخام لماسحات LiDAR وكاميرات العمق — بيانات مبعثرة لا نظام يحكمها ولا ترتيب يربطها. قبل PointNet لم يكن أمام الباحثين سوى طريقين: إما تحويلها إلى شبكات فوكسل منتظمة (وخسارة الدقة وإهدار الذاكرة)، أو عرضها كصور مسطّحة من زوايا متعددة (وخسارة البنية ثلاثية الأبعاد). لم تكن هناك شبكة عصبية قادرة على التعامل مع مجموعة إحداثيات مباشرةً واحترام حقيقتها الأساسية: هذه المجموعة ليس لها ترتيب.
الإسهام
PointNet: شبكة عصبية تعالج سُحب النقاط الخام مباشرةً دون أي تحويل مسبق. تمرّ كل نقطة بشكل مستقل عبر شبكة MLP مشتركة الأوزان، ثم تُجمَّع النقاط كلها واحدة — بالأقصى — في متجه سمات شامل لا يتأثر بترتيب المدخلات. شبكتا T-Net مُتعلَّمتان تتوليان ضبط التحويلات الهندسية. وفي مهام ، تُدمج السمات الشاملة مع السمات المحلية لكل نقطة. البنية مدعومة بضمانات نظرية: تستطيع تقريب أي دالة مجموعات متصلة، وتتحمّل فقدان النقاط والشوائب.
الأثر
أثبت PointNet أن البيانات ثلاثية الأبعاد لا تحتاج إلى قوالب منتظمة لتُفهم. أطلق موجة كاملة في التعلُّم العميق ثلاثي الأبعاد: PointNet++ وDGCNN وPoint Transformer وعشرات الأعمال اللاحقة انطلقت من أساسه. واليوم تقوم عليه تطبيقات القيادة الذاتية والتحكُّم الروبوتي والواقع المعزَّز وفهم المشاهد ثلاثية الأبعاد — أي مهمة تبدأ من سُحب نقاط خام وتحتاج شبكة عصبية تفهمها.
تخيّل صندوق اقتراع في انتخابات. الناخبون (النقاط) يدخلون من أيّ باب وبأيّ ترتيب. كل ناخب يكتب رأيه على ورقة (سمة خاصة بتلك النقطة)، ثم تُلقى كل الأوراق في الصندوق نفسه. يُخلط الصندوق — فيضيع أيّ أثر للترتيب — ثم يقرأ العدّاد القيمة الأعلى فقط في كل سؤال.
هذا هو PointNet بالضبط: صندوق الاقتراع هو ، والناخبون هم النقاط في الفضاء ثلاثي الأبعاد، والنتيجة واحدة مهما اختلف ترتيب دخولهم.
المشكلة: البيانات ثلاثية الأبعاد لا تتسع في شبكة منتظمة
ماسح LiDAR على سيارة ذاتية القيادة يولّد ملايين النقاط ثلاثية الأبعاد كل ثانية، وهذا ما نسمّيه . الفرق بينها وبين الصورة واضح: بكسلات الصورة مرتّبة على شبكة منتظمة، أمّا سحابة النقاط فهي مجموعة بلا ترتيب من إحداثيات . لا يوجد «بكسل (0,0)» ولا تسلسل طبيعي للقراءة.
قبل PointNet حاول الباحثون مسلكين، وكلاهما يحمل ثمناً باهظاً:
-
التحويل إلى — أي تقسيم الفضاء ثلاثي الأبعاد إلى مكعّبات صغيرة ووسم كل مكعّب بأنه مشغول أو فارغ. شبكة بحجم تحتوي 32,768 خلية فقط للفضاء بأكمله، فتضيع التفاصيل الدقيقة. وشبكة تلتقط تفاصيل أكثر لكنها تكلّف مليونَي فوكسل — أغلبها فارغ. والتكلفة الحسابية تنمو تكعيبياً مع الدقة.
-
العرض متعدد الزوايا — تصوير الشكل من عدة اتجاهات ثم تمرير الصور إلى ثنائية الأبعاد. الطريقة تؤدي جيداً بشكل غير متوقع في ، لكن تعميمها على مهام تحتاج حُكماً على كل نقطة — كالتجزئة — غير عملي، لأن المعلومات ثلاثية الأبعاد تذوب داخل بكسلات مسطّحة.
PointNet يطرح السؤال البديهي: لِمَ لا نعالج النقاط مباشرةً كما هي؟
ثلاث خصائص يجب أن تتعامل معها الشبكة
سحابة النقاط في تفرض على أي شبكة تريد التعامل معها ثلاثة تحديات لا تحلّها البنى التقليدية:
-
غياب الترتيب. مجموعة من نقطة يمكن ترتيبها بـ طريقة مختلفة، والمطلوب أن يكون خرج الشبكة واحداً أياً كان الترتيب المُختار — وهذا ما نسمّيه .
-
التفاعل بين النقاط. النقاط ليست جُزراً منعزلة: النقاط المتجاورة ترسم أسطحاً وحوافّ وزوايا. على الشبكة أن تلتقط هذه البنية الهندسية المحلية.
-
الثبات تجاه التحويلات. لو دوّرنا سحابة النقاط أو أزحناها في الفضاء، ينبغي ألّا يتغيّر التصنيف. الكرسي يبقى كرسياً سواء واجه الشمال أم الشرق.
الفكرة الجوهرية: الدوال التناظرية تحلّ مشكلة الترتيب
كيف تبني دالة لا يتغيّر خرجها مهما أعدتَ ترتيب مدخلاتها؟ الجواب: استخدم دالة تناظرية — أي دالة تُعطي النتيجة نفسها مهما بدّلتَ ترتيب عناصرها.
الجمع مثلاً دالة تناظرية: . والقيمة القصوى كذلك: .
فكرة PointNet أنيقة في بساطتها: أولاً، مرِّر كل نقطة بشكل مستقل عبر مشتركة الأوزان (الشبكة نفسها تُطبَّق على كل نقطة)، ثم اجمع كل النقاط المُحوَّلة عبر دالة تناظرية. جرّب الباحثون الجمع والمتوسط والمجموع الموزون بالانتباه، لكن التجميع بالأقصى تفوّق بوضوح — لأنه يلتقط «أقوى إشارة» في كل بُعد من أبعاد السمات، وكأنه تصويت لصالح النقطة الأكثر أهمية على كل محور.
تخيّل وكأنها تمنح كل ناخب مكبّر صوت: تأخذ الإحداثيات الخام وتحوّلها إلى عالي الأبعاد. التجميع بالأقصى () هو صندوق الاقتراع الذي لا يحتفظ إلا بأعلى صوت في كل بُعد. ثم تأتي — لجنة الفرز — لتقرأ الأصوات الفائزة وتعلن النتيجة النهائية.
بنية PointNet: من النقاط إلى التنبؤات
البنية الكاملة تتألف من ثلاث مراحل متتابعة، كأنها خطّ إنتاج في مصنع:
1. محاذاة المدخلات (). شبكة PointNet مصغّرة تتنبأ بمصفوفة تحويل وتضربها بجميع نقاط الدخل، فتدوّر سحابة النقاط إلى وضعية قياسية. تخيّلها كقرص دوّار آلي يوجّه الجسم بالاتجاه نفسه قبل كل فحص.
2. MLP مشتركة + محاذاة السمات. كل نقطة تمرّ عبر طبقات فتُنتج سمة خاصة بها. ثم تأتي شبكة T-Net ثانية تتنبأ بمصفوفة لمحاذاة السمات في — مع حدّ يُبقي هذه المصفوفة قريبة من التعامد حتى لا تضيع معلومات.
3. السمة الشاملة عبر التجميع بالأقصى. تُرفع سمات كل نقطة عبر طبقات إضافية ثم يُؤخذ الأقصى عبر جميع النقاط، فتتكوّن سمة شاملة واحدة من 1024 بُعداً. هذا المتجه يختزل الشكل بأكمله بغض النظر عن عدد النقاط أو ترتيبها.
في التصنيف، تمرّ السمة الشاملة عبر شبكة نهائية مع للتنبؤ بدرجات فئة.
في التجزئة، الفكرة أن تمنح كل نقطة رؤية محلية وشاملة في آنٍ واحد: تُدمج سمة النقطة (64 بُعداً) مع السمة الشاملة (1024 بُعداً) ليتكوّن متجه من 1088 بُعداً لكل نقطة، ثم تتنبأ شبكة MLP خاصة بكل نقطة بتسمية الجزء الذي تنتمي إليه.
المحاذاة المكانية: شبكات T-Net المصغّرة
كرسي يواجه الشمال والكرسي نفسه يواجه الشرق يجب أن يحصلا على التصنيف ذاته. بدلاً من بكل دوران ممكن، يتعلّم PointNet أن يُلغي الدوران أولاً.
شبكة T-Net للمدخلات هي في جوهرها PointNet مصغّرة: تُطبّق شبكة MLP مشتركة على كل نقطة، ثم تأخذ الأقصى لتحصل على متجه شامل، ثم تمرّره عبر لتتنبأ بمصفوفة بحجم . هذه المصفوفة تُضرب بجميع الإحداثيات فتدوّر سحابة النقاط إلى وضعية قياسية — تماماً كأنّ مصوّراً يطلب من شخصٍ أن «انظر إلى هنا».
شبكة T-Net للسمات تؤدي الدور نفسه لكن في فضاء السمات ذي الأبعاد 64. التنبؤ بمصفوفة أصعب بكثير في الأمثلة، لذا يتدخّل حدّ التنظيم ليُبقيها قريبة من التعامد: التحويل هو دوران صرف في فضاء السمات يحافظ على المسافات والزوايا، فيحاذي السمات دون تشويهها.
من الأشكال إلى الأجزاء: شبكة التجزئة
التصنيف يحتاج تسمية واحدة للشكل بأكمله، لكن التجزئة تحتاج تسمية لـكل نقطة على حدة. السؤال: كيف تمنح النقطة وعياً بهُويتها المحلية وبالشكل الكلّي في الوقت نفسه؟
الحل هو اختصار الدمج: بعد شبكة T-Net للسمات، تملك كل نقطة سمة محلية من 64 بُعداً. وبعد التجميع بالأقصى، تملك الشبكة سمة شاملة من 1024 بُعداً. يُلصق PointNet هذين المتجهين معاً — فيتكوّن متجه من 1088 بُعداً لكل نقطة — ثم يمرّر كلّاً منها عبر شبكة MLP مشتركة للتنبؤ بتسمية الجزء.
الفكرة تشبه أن تعطي كل عامل في مصنع وصفاً لمهمته (السمة المحلية) وملخصاً للمشروع كاملاً (السمة الشاملة). بهذه الطريقة، نقطة على رجل كرسي تصبح «تعرف» أنها جزء من كرسي، لا مجرد سطح أسطواني مجهول الهُوية.
لماذا ينجح: الضمانات النظرية
PointNet ليس مجرد حيلة هندسية ذكية — بل يقف على أساس نظري متين يفسّر قوته ومتانته معاً.
. يبرهن المؤلفون أنه لأي دالة مجموعات متصلة ، يمكن اختيار و و بحيث يقترب PointNet من بأي دقة مطلوبة، بشرط أن يكون بُعد التجميع بالأقصى كبيراً كفاية. الحدس وراء ذلك: في أسوأ الأحوال تستطيع الشبكة تقسيم الفضاء إلى فوكسلات — لكنها عملياً تتعلّم تمثيلات أذكى بكثير.
. لأي شكل مُدخل ، توجد مجموعة فرعية صغيرة (النقاط الحرجة) ومجموعة أكبر (شكل الحدّ الأعلى)، بحيث أن أي سحابة نقاط تحقّق تُعطي السمة الشاملة ذاتها بالضبط. عدد النقاط الحرجة لا يتجاوز نقطة (حيث هو بُعد التجميع بالأقصى). المعنى العملي واضح: لو أضفتَ نقاط شوائب أو حذفتَ نقاطاً غير حرجة، فلن يتغيّر خرج الشبكة. النقاط الحرجة هي الهيكل العظمي للشكل — الحوافّ والزوايا والملامح المميّزة التي تكفي وحدها لتعريفه.
الفكرة في شيفرة برمجية
مبسَّط لإظهار الفكرة — ليس التنفيذ الحقيقي.
import numpy as np
def shared_mlp(x, weights):
"""طبّق الشبكة ذاتها على كل نقطة باستقلالية.
x: (عدد_النقاط، d_in) — صف لكل نقطة."""
for W, b in weights:
x = np.maximum(0, x @ W + b) # ReLU
return x # (عدد_النقاط، d_out)
def pointnet_classify(points, mlp_h, mlp_gamma):
"""points: (n, 3) إحداثيات xyz خام."""
# الخطوة 1: حوِّل كل نقطة باستقلالية
features = shared_mlp(points, mlp_h) # (n, 1024)
# الخطوة 2: تجميع تناظري — الترتيب لا يهمّ
global_feature = features.max(axis=0) # (1024,)
# الخطوة 3: صنِّف من السمة الشاملة
scores = shared_mlp(global_feature[None, :], mlp_gamma)
return scores # (1, k) — درجة لكل فئة
# أعِد ترتيب النقاط — السمة الشاملة تظل كما هي.
# هذا هو ثبات التبديل عبر التجميع بالأقصى.النتائج: سرعة ودقة ومتانة
اختُبر PointNet على ثلاث مهام، وجاءت النتائج مفاجئة للمجتمع البحثي:
تصنيف ثلاثي الأبعاد (ModelNet40): دقة إجمالية 89.2% — أي ما يُعادل أفضل أسلوب حجمي (Subvolume) لكن بسرعة تفوقه 8 مرات و أقل 5 مرات. الوحيدة التي تقدّمت عليه هي MVCNN (بنسبة 90.1%)، وهي تعرض 80 منظراً لكل شكل.
تجزئة الأجزاء (ShapeNet): متوسط بلغ 83.7% عبر 16 فئة و50 نوع جزء — بتحسُّن 2.3% عن أفضل نتيجة سابقة. الشبكة تُميّز أرجل الكراسي ومقابض الأكواب وأجنحة الطائرات نقطةً بنقطة.
للمشاهد (Stanford 3D): متوسط IoU بلغ 47.71% عبر 13 فئة دلالية (كرسي، طاولة، أرضية، جدار...)، أي أكثر من ضعف أداء خط الأساس البالغ 20.12%.
لكنّ النتيجة الأبرز هي : عند حذف 50% من النقاط عشوائياً، لا تنخفض الدقة إلا 3.7% — في حين تنهار دقة VoxNet بمقدار 40.3% تحت التلف نفسه. نظرية النقاط الحرجة تفسّر ذلك ببساطة: الشبكة تحتاج فقط إلى الهيكل العظمي لتعرف الشكل.
الإرث: ما أتاحه PointNet
الإرث الأهمّ لـ PointNet ليس رقم دقة بعينه — بل تغيير طريقة التفكير: لستَ مضطراً لإجبار البيانات ثلاثية الأبعاد على قوالب منتظمة. عالج النقاط كما هي، استخدم دالة تناظرية، ودع الشبكة تكتشف الهندسة بنفسها.
القيد الذي أقرّ به المؤلفون بأنفسهم: PointNet يعالج كل نقطة بمعزل عن جيرانها قبل مرحلة التجميع، فلا يلتقط صراحةً البنية المحلية — أي العلاقات بين النقطة والنقاط القريبة منها. بحثهم اللاحق PointNet++ عالج ذلك بتطبيق PointNet بشكل متكرر على أحياء محلية متداخلة، محققاً تعلُّم سمات هرمياً على مجموعات النقاط.
2017
PointNet — معالجة سُحب النقاط مباشرةً
أول شبكة عصبية تعالج سُحب النقاط الخام بثبات تبديل مُبرهَن رياضياً. حققت أفضل النتائج في التصنيف والتجزئة ثلاثية الأبعاد.
2017
PointNet++ — سمات محلية هرمية
طبّق PointNet تكرارياً على أحياء متداخلة لالتقاط البنية المحلية متعددة المقاييس. عالج القيد الرئيسي للنسخة الأصلية.
2019
DGCNN — رسم بياني ديناميكي على سُحب النقاط
يبني رسماً بيانياً لأقرب k جار في فضاء السمات ويطبّق التفافات حافّية، ملتقطاً هندسة محلية تفوتها المعالجة المستقلة في PointNet.
2020
NeRF — حقول الإشعاع العصبية
يمثّل المشاهد ثلاثية الأبعاد كدوال متصلة تُستعلَم عند نقاط في الفضاء — سليل فكري لمبدأ PointNet أن الفهم ثلاثي الأبعاد يبدأ من النقاط لا من الشبكات.
2021
Point Transformer — الانتباه على سُحب النقاط
أدخل آلية الانتباه الذاتي إلى معالجة النقاط ثلاثية الأبعاد، فجمع بين نهج PointNet في التعامل المباشر مع النقاط وقدرات المحوِّل، وحقق نتائج غير مسبوقة.
المرجعQi, Su, Mo, Guibas. PointNet: Deep Learning on Point Sets for 3D Classification and Segmentation. CVPR, 2017.
مصطلحات هذه الورقة
- سحابة النقاطPoint Cloud
- ثبات التبديلPermutation Invariance
- التجميع بالقيمة القصوىMax Pooling
- دالة تناظريةSymmetric Function
- تجزئةSegmentation
- التصنيفClassification
- شبكة T-NetT-Net
- مجموعة النقاط الحرجةCritical Point Set