طرق تجزئة النقطة في Point Clouds

مقدمة


منذ بعض الوقت ، كنت بحاجة إلى حل مشكلة تجزئة النقاط في Point Cloud (السحب نقطة هي البيانات التي تم الحصول عليها من النجوم).


مثال البيانات والمهمة التي يتعين حلها:
بيانات العينة


لم ينجح البحث عن نظرة عامة على الطرق الحالية ، لذلك اضطررت لجمع المعلومات بنفسي. يمكنك رؤية النتيجة: هنا يتم جمع المقالات الأكثر أهمية وإثارة للاهتمام (في رأيي) على مدى السنوات القليلة الماضية. تحل جميع النماذج المدروسة مشكلة تقسيم سحابة نقطة (إلى أي فئة تنتمي كل نقطة).


ستكون هذه المقالة مفيدة لأولئك الذين لديهم دراية بالشبكات العصبية ويريدون فهم كيفية تطبيقها على البيانات غير المهيكلة (على سبيل المثال ، الرسوم البيانية).


مجموعات البيانات الحالية


الآن في المجال العام ، توجد مجموعات البيانات التالية حول هذا الموضوع:



ميزات العمل مع Point Clouds


لقد وصلت الشبكات العصبية إلى هذه المنطقة مؤخرًا. كما أن البنى القياسية مثل الشبكات المرتبطة بشكل كامل وشبكات التلافيف لا تنطبق على هذه المشكلة. لماذا؟


لأن ترتيب النقاط ليست مهمة هنا. الكائن عبارة عن مجموعة من النقاط ولا يهم بأي ترتيب يتم عرضها. إذا كان لكل بكسل مكانه في الصورة ، فيمكننا خلط النقاط بأمان ولا يتغير الكائن. على العكس من ذلك ، تعتمد نتيجة الشبكات العصبية القياسية على موقع البيانات. إذا قمت بخلط البكسلات في الصورة ، فستحصل على كائن جديد.


الآن دعونا نرى كيف تتكيف الشبكات العصبية لحل هذه المشكلة.


أهم المقالات


لا توجد العديد من الهياكل الأساسية في هذا المجال. إذا كنت تنوي العمل باستخدام الرسوم البيانية أو البيانات غير المهيكلة ، فيجب أن تكون لديك فكرة عن النماذج التالية:


  • PointNet
  • PointNet ++
  • DGCNN

لننظر فيها بمزيد من التفصيل.


  • PointNet: التعلم العميق على مجموعات النقاط للتصنيف والتصنيف ثلاثي الأبعاد
    رواد في العمل مع بيانات غير منظمة.
    • كيف يقررون: تصف المقالة نموذجين: لتقسيم النقاط وتصنيف كائن ما. الجزء العام يتكون من الكتل التالية:
      • شبكة لتحديد التحويل (ترجمة نظام الإحداثيات) ، والتي تنطبق بعد ذلك على جميع النقاط
      • التحول المطبق على كل نقطة على حدة (الإدراك العادي)
      • maxpooling ، الذي يجمع المعلومات من نقاط مختلفة ويقوم بإنشاء متجه معالم عالمي للكائن بأكمله.
      • ثم تبدأ الاختلافات بين النماذج:
        1. نموذج التصنيف: ينتقل متجه المعالم العامة إلى إدخال طبقة متصلة بالكامل لتحديد فئة سحابة النقطة بأكملها
        2. نموذج للتجزئة: ينتقل متجه المعالم العامة والميزات المحسوبة لكل نقطة إلى إدخال الطبقة المتصلة بالكامل والتي تحدد الفئة لكل نقطة.
    • قانون

بنية PointNet



بنية PointNet ++


  • الرسم البياني الديناميكي CNN للتعلم على نقطة الغيوم


    • كيف يقررون: بناءً على النقاط المتاحة ، يتم إنشاء رسم بياني: الرؤوس هي نقاط ، توجد حواف فقط بين النقطة الحالية والنقاط k الأقرب إليها. بعد ذلك ، يتم تعريف conv conv - إلتفاف خاص على الحواف القادمة من النقطة الحالية. يقدم المقال العديد من الخيارات لهذا الإلتواء. نتيجة لذلك ، استخدمنا ما يلي: لكل نقطة x [i] على طول جميع النقاط المجاورة لـ J ، اعتبرت علامات M ميزة [i، m] = max_j (Relu (θ [m] ∗ (x [i] −x [j]) + φ [م] ∗ س [i])) . يتم تذكر القيمة المستلمة كتضمين جديد لنقطة ما. هنا ، تُستخدم الإحداثيات المحلية (x [j] −x [i]) والعالمية (x [j]) كمدخلات للالتفاف.
      بعد تعريف الالتفاف على الرسم البياني ، يتم إنشاء شبكة الالتفاف. يمكنك أيضًا ملاحظة عدد التحويلات وتطبيقاتها لكل نقطة ، على غرار PointNet.
      ستجد في هذه المقالة نظرة عامة ممتازة على طرق الحلول الأخرى.


    • قانون




DGCNN العمارة


مقالات مبنية على PointNet و PointNet ++:


تختلف معظم المقالات من حيث عدد الأخطاء أو عمق وتعقيد الكتل المعقدة.


  • PointWise: شبكة غير مرخصة لتعلم الميزة
    سمة من سمات العمل - التدريب دون معلم


    • كيف يقررون: بالنسبة لكل نقطة ، يتم تدريب متجه حفلات الزفاف ، والذي يتم بعد ذلك تقسيمه.
      الافتراض الرئيسي لهذه المقالة هو أن الأجسام المتشابهة يجب أن يكون لها زخارف متشابهة (على سبيل المثال ، قدمين مختلفين للكرسي) ، على الرغم من بُعدها. يستخدم PointNet كنموذج أساسي. الابتكار الرئيسي هو وظيفة الخطأ. وهو يتألف من جزأين: أخطاء إعادة البناء وأخطاء نعومة.
      يستخدم خطأ إعادة الإعمار معلومات سياق النقطة. مهمتها هي جعل حفلات الزفاف من النقاط مع نفس السياق الهندسي مماثلة. لحسابها ، بناءً على متجه التضمين للنقطة المحددة ، يتم إنشاء نقاط جديدة بالقرب منها. بمعنى ، يجب أن يحتوي وصف ميزة النقطة على معلومات حول شكل الكائن حول النقطة. بعد ذلك ، ضع في اعتبارك مقدار النقاط التي تم إنشاؤها خارج الشكل الحقيقي للكائن.
      يلزم وجود خطأ في النعومة بحيث تتشابه العناصر المضمنة في النقاط المجاورة وعلى عكس النقاط البعيدة. أجمل شيء هنا هو قياس القرب ، ليس فقط كالقاعدة بين نقطتين في الفضاء الإقليدي ، ولكن عد المسافة من خلال نقاط الكائن. لكل نقطة ، يتم تحديد نقطة واحدة من أقرب k ومن k إضافية.
      يجب أن يكون التضمين الحالي أقرب إلى الحد الأدنى بهامش معين أكثر من ذي قبل.

  • SGPN: شبكة اقتراح مجموعة التشابه لتقسيم مثيل السحابة ثلاثية الأبعاد


    • كيف يقررون: كما هو الحال في PointWise ، الشيء الأكثر إثارة للاهتمام في حساب الخطأ هو هنا. PointNet ++ هو الأساس ، أولاً ، نعتبر متجه الميزة والكائن ينتمي إلى كل نقطة على حدة ، عن طريق القياس مع PointNet ++.
      بعد ذلك ، استنادًا إلى الخصائص ، نعتبر 3 مصفوفات (التشابه والثقة والتجزئة).
      سيكون خطأ التعلم هو مجموع الأخطاء الثلاثة المحسوبة بواسطة المصفوفات المقابلة: L = L1 + L2 + L3
      دع N يكون عدد النقاط
      مصفوفة التشابه - مربعة ، الحجم N * N. يشير العنصر الموجود عند تقاطع الصف الأول مع العمود j إلى ما إذا كانت هذه النقاط تنتمي إلى نفس الكائن أم لا. يجب أن تحتوي النقاط التي تنتمي إلى نفس الكائن على متجهات معالم متشابهة. يمكن أن تأخذ عناصر المصفوفة إحدى القيم الثلاثة: النقطتان i و j تنتميان إلى كائن واحد ، والنقاط تنتمي إلى فئة واحدة من الكائنات ، لكن إلى كائنات مختلفة (كل من هذا الكرسي وهذا الكرسي ، لكن الكراسي مختلفة) ، أو عادة ما تكون هذه النقاط من كائنات من فئات مختلفة. يتم حساب هذه المصفوفة وفقًا للقيم الحقيقية.
      خطأ التشابه
      مصفوفة الثقة عبارة عن متجه بطول N. لكل نقطة ، يتم النظر في التقاطع على الاتحاد (IoU) بين مجموعة النقاط التي تنتمي إلى الكائن وفقًا لعمل خوارزمية لدينا ومجموعة النقاط التي تنتمي فعليًا إلى الكائن ذي النقطة الحالية. الخطأ هو ببساطة القاعدة L2 بين الحقيقة والمصفوفة المحسوبة. بمعنى أن الشبكة تحاول التنبؤ بمدى ثقتها في التنبؤ بالفصل للنقاط على كائن ما.
      مصفوفة تجزئة لها حجم - N * عدد الفصول. يعتبر الخطأ هنا بمثابة إنتروبيا في مشكلة التصنيف متعدد الطبقات.
    • قانون


هندسة SGPN


  • تعرف على ما يفعله جيرانك: تجزئة الدلالات ثلاثية الأبعاد لغيوم النقاط
    • كيف يقررون: في البداية ، يعتبرون العلامات لفترة طويلة ، أكثر تعقيدًا من PointNet ، مع مجموعة من الروابط المتبقية ، والمبالغ ، ولكن بشكل عام - نفس الشيء. هناك اختلاف بسيط - حيث يقومون بحساب علامات كل نقطة في الإحداثيات العالمية والمحلية.
      الفرق الرئيسي هنا هو عدد الأخطاء مرة أخرى. هذا ليس تقاطعًا قياسيًا ، ولكن مجموع الخطأين:
      1. فقدان المسافة الزوجية - يجب أن تكون النقاط من كائن واحد أقرب من τ_near وأن تكون النقاط من كائنات مختلفة أطول من far_far .
        فقدان المسافة الزوجية
      2. فقدان النقطه الوسطى - النقاط من كائن واحد يجب أن تكون قريبة من بعضها البعض

مقالات مقرها DGCNN:


تم نشر DGCNN مؤخرًا (2018) ، لذلك هناك عدد قليل من المقالات تعتمد على هذه البنية. أريد أن ألفت انتباهكم إلى شيء واحد:



ربط DGCNN الهندسة المعمارية


استنتاج


هنا يمكنك العثور على معلومات مختصرة حول الطرق الحديثة لحل مشاكل التصنيف والتجزئة في Point Clouds. هناك نموذجان رئيسيان (PointNet ++ ، DGCNN) ، تُستخدم التعديلات الآن لحل هذه المشكلات. في أغلب الأحيان ، من أجل التعديل ، يتم تغيير وظيفة الخطأ وتعقيد هذه البنى عن طريق إضافة طبقات وروابط.

Source: https://habr.com/ru/post/ar459088/


All Articles