ענני נקודות הם שיטה לייצוג מידע תלת ממדי. כל נקודה בענן מייצגת מיקום במרחב, בעזרת 3 מספרים (ערכי קואורדינטות x,y,z). בפוסט זה נדבר על שיטות ייצוג מידע תלת ממדי, שימושיהן השונים וההבדלים העיקריים ביניהן, ונתאר כיצד ענני נקודות יכולים להכיל מידע הכרחי אשר אינו יכול להתקבל מתמונות בלבד.
יש יתרונות רבים בשימוש במודל תלת ממדי ממוחשב. למשל, מודל תלת ממדי של אתר בנייה מאפשר השוואה עם מודל התכנון. השוואה זו נעשית בעזרת ענני נקודות אשר מתארים את המודל המתוכנן מול הבנייה בשטח. ענן נקודות הוא אוסף של נקודות במרחב תלת ממדי. הענן יכול לייצג גוף תלת ממדי אחד או אוסף של גופים. הוא יכול לתאר פריט בודד בחדר מסוים, או סריקה אווירית של תוואי שטח בן קילומטרים. בדומה לתמונות דו ממדיות, צפיפות הנקודות ("רזולוציה") קובעת את הרגישות לפרטים מורכבים מתוך הסריקה. הצפיפות הנדרשת מהענן נגזרת בין היתר מהמורכבות המבוקשת, ולכן הענן יכול להכיל מאות, אלפים, או מיליוני נקודות. לדוגמה, יידרשו מיליוני נקודות כדי לתאר במדויק שטח מסוים בעזרת הענן [1], אך גם אם יכיל מאות ספורות של נקודות עדיין יעניק הבנה מרחבית שתאפשר, למשל, מדידת נפח או גדלים רלוונטיים של העצם.
ענני נקודות מתקבלים בצורה ישירה מחיישני עומק. החיישן אוסף מידע על סביבתו בעזרת טכנולוגיות שונות, לרוב בעזרת קרני לייזר או קרני אינפרא אדום [6]. לדוגמה, קרן לייזר מוקרנת מן החיישן, פוגעת בנקודה כלשהי על גבי עצם הנמצא במרחב, וחוזרת ממנו לחיישן. החיישן יודע למקם את אותו עצם לפי הזמן שלוקח לקרן לחזור אליו או לפי עוצמת האות החוזר. בשיטה זו אפשר למקם את הנקודה לפי המרחק שלה בממדי הרוחב, האורך והעומק ביחס לחיישן. תנועה של החיישן מסביב לעצם על מנת לסרוק אותו מכל הצדדים מאפשרת יצירת מודל תלת ממדי יחיד של העצם בעזרת שיטה הנקראת רגיסטרציה [1, 7]. בשיטה זו אנו מתאמים בין נקודות חופפות בסריקות סמוכות זו לזו ומאחדים ענני נקודות סמוכים המתחברים זה לזה לענן גדול אחד. לא כל נקודה על גבי המשטח הנסרק נמצאת בענן הנקודות (כתלות ברזולוציה הנדרשת ויכולות הסורק), ולכן מתקבל ענן דליל יחסית, עם מרווחים רבים בין הנקודות.
השימוש בענני נקודות מאפשר הבנה מעמיקה יותר של המרחב. רכב אוטונומי שירצה להתמצא במרחב יעזר בחיישני עומק אשר יתארו את סביבתו בעזרת ענני נקודות [2]. במקרה כזה צריכים מעבדי הרכב להבין מהם העצמים בסביבת הרכב, מה גודלם ומהו המרחק בין הרכב לבין העצמים. דוגמה נוספת היא רובוט אשר מבצע פעולה מסוימת בעזרת חפץ שהוא נדרש להרים [3]. לצורך כך נדרשת הבנה מרחבית של גיאומטריית החפץ כדי לבחור מהי האוריינטציה של החפץ והיכן הרובוט נדרש לאחוז בו על מנת להרימו כראוי, כמו כוס מים אשר נאחזת בצורה לא יציבה, כך שהמים נשפכים בעת התנועה.
ענן נקודות הוא השיטה הבסיסית ביותר ואפליקציות רבות נעזרות בו, מאחר שהוא הפלט הראשוני והבסיסי ביותר שמתקבל מחיישן העומק, אך יש מספר רב של שיטות אחרות לייצוג מידע תלת ממדי. לדוגמה, שיטה הנקראת ווקסלים [4]. בשיטה זו, המרחב מתואר בעזרת רשת תלת ממדית של אלמנטי נפח, וכל אלמנט יכול להיות מלא או ריק, וכך לתאר היכן קיים חומר והיכן לא.
שיטה נוספת, המכונה mesh, מקשרת בין נקודות על גבי מעטפת גוף תלת ממדי בעזרת רשתות משולשים או מצולעים (פוליגונים) אחרים [5]. בשיטה זו, אוסף של נקודות מחוברות ביניהן בקשתות ליצירת משטחים המחוברים זו לזה, והם יוצרים גוף תלת ממדי. רשת משולשים, למשל, מורכבת ממשולשים אשר להם שלושה קודקודים, ושלוש קשתות מחברות בין הקודקודים. ה-mesh מורכב לפיכך מ"תפירה" של משולשים, אחד לצד השני, היוצרים יריעה אחת.
בתמונה, מימין לשמאל: mesh, ווקסלים וענן נקודות. קרדיט: Stanford Computer Graphics Laboratory. מימוש: צבר דולב
כל שיטת ייצוג מידע מתאימה לאפליקציה שונה: משחקי מחשב מכילים לרוב גרפיקה עשירה ולכן שיטות ייצוג של רשתות פוליגונים או ווקסלים מתאימות יותר, שכן הן מכילות תצוגה רציפה וצפופה, ולא דלילה עם חורים כמו בענן. מדפסות תלת ממד ישתמשו בקבצים המכילים רשתות משולשים או רשתות פוליגונים אחרות, כדי למלא את הנפח הכלוא ביניהן. גם במקרה זה ענני נקודות אינם מתאימים כי אין בהם רציפות בין הנקודות השונות.
ענני נקודות מאפשרים ביצוע פעולות רבות הנפוצות בעולם הראייה ממוחשבת [9]. למשל, סימון של עצמים מסוימים או חלקי עצמים בתוך ענן נקודות: לאחר שעצם מסוים סווג ככיסא, ניתן לזהות את הרגליים של הכיסא בנפרד מן המשענת. [10, 11].
השימוש במידע תלת ממדי בכלל, ובענני נקודות בפרט, הולך וגובר בעולמות הרובוטיקה, הגיאומטריה והגרפיקה הממוחשבת, ומשתכלל ככל שיכולות העיבוד הממוחשבות משתפרות. שיפור זה מאפשר לנו ליהנות מסרטוני אנימציה נעימים יותר לעין, אפליקציות מציאות רבודה מרשימות, ניתוח מתקדם של סריקות תלת ממדיות, משחקי מחשב מרשימים יותר מבחינה גרפית, ובעתיד גם לשבת ברכב אוטונומי הפועל בעזרת הבנה והתמצאות מרחבית.
הערות וקריאה נוספת:
[1] מאמר בנושא התמצאות מרחבית בעזרת רגיסטרציה של ענני נקודות, מחקר שפותח בטכניון
[2] מאמר בנושא שימוש בענני נקודות לטובת רכבים אוטונומיים
[6] כיצד חיישן אינפרא אדום עובד
[7] הסבר נוסף על רגיסטרציה של ענני נקודות
[8] פוסט בנושא שחזור תלת ממד בעזרת תנועה, מתוך מדע גדול בקטנה
[9] ספריית תכנות לביצוע פעולות על מידע תלת ממדי בשם open3D
[10] אחת מחלוצות הלמידה העמוקה על ענני נקודות - PointNet
[11] מערכת למידה עמוקה נוספת על ענני נקודות אשר פותחה בטכניון בשם 3DmFV