بناء برنامج أفضل لتصور السحابة النقطية للحصول على رؤى أكثر ذكاءً
تمكين تصور البيانات الكثيفة
فريق التصور في الهندسة
على مدار العامين الماضيين، قام فريق هندسة التصور لدينا ببناء برنامج لتوفير رؤى من البيانات التي تم جمعها بواسطة Hovermap. وقد أدت البيانات الكثيفة التي تم جمعها وتطبيقاتها العديدة إلى الحاجة إلى أداة تصور سحابة النقاط التي يجب أن تلبي العديد من المتطلبات التقنية من أجل زيادة تجربة المستخدم لعملاء Hovermap . تتعمق هذه السلسلة من المقالات في مجالات الاهتمام والحلول المبتكرة التي طوروها لتوفير برنامج التصور الخاص بـ Emesent.
بدأ فريق هندسة التصور في بناء تطبيق تصوري باستخدام Unreal Engine، وهي أداة مطور 3D تُستخدم في الألعاب 3D وبرامج الهندسة المعمارية والهندسة المعمارية. يتضمن هذا التطبيق مكونًا إضافيًا لسحابة نقاط LiDAR يمكننا استخدامه لعرض السحب النقطية. يستخدم هذا المكوّن الإضافي التقسيم المكاني Octree Spatial Partitioning بالاقتران مع ميزانية النقاط لاختيار أفضل النقاط لعرضها من بين جميع النقاط في السحب. تحدد ميزانية النقاط النقاط المعروضة بما يمكن أن يتحمله العارض أو وحدة المعالجة الرسومية (GPU).
تتمثل إحدى فوائد اتباع هذه الطريقة في أنه حتى عند استكشاف مليارات النقاط، فإننا نعرض فقط المجموعة الفرعية الأصغر من النقاط الموجودة حاليًا في منفذ العرض، وحتى في هذه الحالة، فقط النقاط الأكثر صلة بصريًا. وبالتالي يمكننا الحفاظ على معدل إطارات تفاعلي للغاية أثناء استكشاف هذه البيانات.
العيب في هذه التقنية هو أننا نستكشف فقط البيانات التي تقرر الخوارزمية أنها ذات صلة أو مهمة. كلما انخفضت ميزانية النقاط، كلما أثرت هذه القرارات الخوارزمية على المخرجات النهائية. هناك طرق للتغلب على ذلك، على سبيل المثال، باستخدام حجم نقاط أكبر لدمج النقاط في الأسطح. لكن هذا في الأساس بيانات اصطناعية وليست "حقيقية".
هذا ليس ضروريًا لبيانات Hovermap حيث إنها تنتج سحبًا نقطية كثيفة جدًا، والتفاصيل موجودة دون الحاجة إلى تجميعها. لذا، منذ بدء المشروع، قمنا بتوسيع المكوّن الإضافي لتلبية بياناتنا الكثيفة.
كانت إحدى الإضافات المبكرة لدينا هي إضافة دعم لسمات النقاط التي ينتجها برنامج معالجة SLAM الخاص بنا. قمنا بتضمين دعم لعرض سمات الشدة والوقت ورقم الحلقة والمدى واللون الحقيقي.
والآخر هو زيادة ميزانية العرض في الإطار الواحد إلى 100 مليون نقطة - وهو ما يفوق بكثير ما جاء من Unreal.
مسح Hovermap قبل العرض متعدد الإطارات من Emesent.
سيتيح العرض متعدد الأطر داخل تطبيق التصور الخاص بـ Emesentللمستخدمين استكشاف مجموعات بيانات Hovermap بمليارات النقاط بسرعة.
لكن هذا لم يفي بالمتطلبات. يلتقط Hovermap مجموعات بيانات بمليارات ومليارات من النقاط، لذلك كنا بحاجة إلى نهج مختلف لمخرجاتنا النهائية.
لتمكين عرض إطار كامل لجميع النقاط، قمنا بتطوير نظام نسميه العرض متعدد الإطارات. باستخدام هذا المفهوم، قمنا بتعديل العارض لبناء الصورة على إطارات متعددة لوحدة معالجة الرسومات. ولتطبيق ذلك تبدأ الخوارزمية باجتياز الشجرة الثماني بحثًا عن العقد الأكثر صلة بصريًا (مجموعات النقاط)، ويتم تمييزها ثم عرضها. تجتاز الخوارزمية بعد ذلك الشجرة الثمانية مرة أخرى وتبحث عن العقد التالية الأكثر صلة بصريًا التي لم يتم عرضها بالفعل. يتكرر ذلك حتى لا يتبقى المزيد من النقاط.
يتم تركيب كل إطار باستخدام العمق لتكوين إطار نهائي من جميع النقاط، سواء كان مليار أو 10 مليارات نقطة. يمكننا أن نرى من هذه الصور أن كثافة بيانات Hovermap مذهلة، ويمكننا عرض ذلك الآن داخل العارض. تتأثر أزمنة العرض بميزانية النقاط وأجهزة العرض، ولكن كل ذلك سريع جدًا، ويمكن للعرض متعدد الإطارات عرض مليار نقطة كاملة في بضع ثوانٍ.
سيسمح هذا النهج لمستخدمينا باستكشاف مجموعات بيانات Hovermap التي تحتوي على مليارات النقاط بسرعة وتقديم صور كاملة الجودة تمثل البيانات الحقيقية التي تم التقاطها دون أي تنازلات.
في المقالة اللاحقة من هذه السلسلة، سنبحث في كيفية بناء واجهة المستخدم، لذا تابعنا على LinkedIn لترى متى ستكون متاحة.