כל נהג מזהה את נתיבי הכביש בזמן הנהיגה מבלי להקדיש לכך מחשבה יתרה. לרכב אוטונומי הנסיעה בין גבולות הנתיב היא משימה קריטית. נדגים כיצד רכב אוטונומי יכול לזהות את נתיב הנסיעה בעזרת שיטה שפיתחנו על בסיס כלים פשוטים מעולם הראייה הממוחשבת. תוכלו לצפות ביישום התהליך בסרטון שבסוף הכתבה.
איתור נתיבי הכביש הוא השלב הראשון שעליו נשענות מערכות "חכמות" המסייעות לנהג בפעולת הנהיגה, כגון בלימה והיגוי [1]. כבר היום יש ברבים מכלי רכב מערכות שעוזרות לנהג לשמור על נתיב הנסיעה ונותנות לו התרעה אם הוא עבר נתיב ללא איתות או סובב את ההגה בחדות (למשל מערכת מובילאיי [2]). כיצד מערכת כזו פועלת? ומה נדרש מן המערכת כדי שתפעל כראוי ותבצע את משימתה בדיוק המירבי?
מערכת המזהה נתיבים צריכה לדעת לפעול בזמן אמת. אם המערכת תתריע על ביצוע פעולה מסוכנת כמה שניות לאחר שהיא בוצעה – אין בה תועלת ממשית, והיא לא תסייע למניעת תאונות. לכן האלגוריתם לזיהוי נתיבים חייב להיות מהיר מאוד. עליו לעבד את המידע בשברירי שניה, כדי שהאלגוריתמים הבאים בשרשרת יוכלו להתחיל לפעול כמה שיותר מהר. כך תספיק המערכת לבלימת חירום לפעול ולהציל את הנהג ואת יושבי הרכב.
כדי להבטיח זיהוי מהיר של נתיבי הכביש המערכת צריכה להתבסס על בינה מלאכותית ולהשתמש במעבדים גרפיים חזקים ויקרים במיוחד. טכנולוגיות אלו נמצאות בשלבי פיתוח מתקדמים, ונראה שכבר בשנים הקרובות נוכל להיעזר במערכות אוטונומיות לשימושים רבים, בין היתר במערכות עזר לנהיגה.
את מפת הנתיבים אפשר ליצור באמצעות כמה שיטות מתקדמות הנבדלות בגישה לזיהוי הנתיבים. אחת מהן היא שיטה להפרדה בין עצמים בתמונה המכונה "סגמנטציה סמנטית" [3]. השיטה דומה לפעולת האלגוריתם של זום להפרדת רקעים ומבוססת לרוב על מערכת לומדת. בשיטה אחרת מאתרים נקודות עניין בתמונה, כמו שינויים חדים בנתיבים, ומשתמשים במידע המתקבל בו־זמנית מחיישנים וממצלמות. למשל, אפשר לצלם את הכביש מכמה זוויות שונות; אפשר להשתמש נוסף על מצלמה בחיישן אינפרה־אדום או בחיישן תרמי כדי לצלם בערפל ובתנאי תאורה ירודים; אפשר לצלם במצלמת סטריאו או להיעזר בחיישן עומק כדי ליצור מפה תלת־ממדית ועוד.
השיטה שפיתחנו לזיהוי נתיבים בכביש היא שיטה פשוטה יותר. לא נשתמש בה בכלים המבוססים על מערכות לומדות [4], אלא בכלים מתמטיים פשוטים מעולם הראייה הממוחשבת המסוגלים גם הם לפעול בזמן אמת.
תחילה נמקם בחזית הרכב מצלמה, שתצלם את הכביש מכיוון ההתבוננות של הנהג.
נמיר את התמונה מתמונת צבע לתמונה בגוני אפור (תמונת שחור־לבן). המרה זו תאפשר לנו לזהות ניגודיות רבה בין הצבעים צהוב ולבן – צבעי גבולות הנתיבים ושולי הכביש – ובין הכביש הכהה.
לעיתים אף נרצה להדגיש את הניגודיות שבין הצבעים בעזרת המרת התמונה למרחב צבע אחר, למשל HSV, השונה ממרחב הצבעים הסטנדרטי – אדום־ירוק־כחול (עוד על מרחבי צבע בכתבה בנושא עיבוד תמונות דיגיטליות [5]).
לאחר מכן נטשטש את התמונה בעזרת מסנן גאוסי [6]. שיטה זו מאפשרת לנו להסיר שפות חלשות (קווי מתאר משניים) ולשמור רק את השפות הבולטות ביותר בתמונה [7]. השפות שאנו שואפים לזהות כאן הן שולי הנתיבים – המעבר בין הצבע הכהה של הכביש ובין הגבול הלבן של הנתיב.
כעת נזהה את השפות הבולטות בעזרת אלגוריתם לזיהוי שפות. אלגוריתם זה יראה לנו את מיקומי הפיקסלים שיש בהם מעברי צבע או מעברי מרקם חדים, וכך יהיה אפשר להתמקד בחלקים המעניינים של התמונה. מאוסף הפיקסלים נוכל לצייר קווים רציפים, נתיבים, ולכן נרצה לזהות רק את הקווים הרלוונטיים.
כדי לדעת אילו שפות רלוונטיות לזיהוי הנתיב נשתמש בשיטה הנקראת Non Maximum Suppression. שיטה זו מזהה בקבוצות הפיקסלים המסומנים רק את הפיקסלים המתאימים ביותר לאלגוריתם לזיהוי השפות [8]. לדוגמה, אם לפי האלגוריתם הסיכוי שהפיקסלים שייכים לשפה הוא 20%, נשמיט אותם ונבחר רק את אלה שזוהו ברמת ביטחון גבוהה יותר. בסרטון שבסוף הכתבה חיפשנו שפות רק בסביבת הרכב, ולכן יכולנו להימנע מסימון שפות במקומות לא רלוונטיים בתמונה.
לאחר שגילינו מהן השפות הרלוונטיות, נשלים את הפיקסלים שזוהו לקווים ישרים המתארים את תוואי הנתיב. לשם כך נשתמש בשיטה הנקראת "התמרת הָאף" (Hough Transform) [9]. השיטה מאפשרת למצוא את כל הקווים הישרים שעוברים דרך כל נקודה שזוהתה. אם בשלב הקודם זיהה האלגוריתם נקודות רבות, נוכל בשיטה זו למצוא את הישר העובר דרך נקודות אלה ולסמנו בתמונה. ברכותיי חברים, עלינו על הנתיב!
בכתבה זו הצגנו שיטה המאפשרת למכונית אוטונומית לזהות נתיבים בזמן הנסיעה בעזרת כלים מתמטיים פשוטים ליישום. תוכלו לצפות בתהליך זיהוי הנתיבים לפי השלבים שתיארנו זה עתה בסרטון המצורף.
תודה לתומר מלכוב על יצירת הסרטון.
מקורות והרחבות:
[1] על מערכות ADAS – מערכות מתקדמות לסיוע לנהגים
[2] חברת מובילאיי, המפתחת מערכות עזר לנהג ורכיבים למערכות אוטונומיות
[3] כתבה בנושא הפרדת רקעים, "מדע גדול, בקטנה"
[4] כתבה בנושא למידה עמוקה, "מדע גדול, בקטנה"
[5] כתבה בנושא עיבוד תמונות דיגיטליות, "מדע גדול, בקטנה"
[6] כתבה בנושא מסנן גאוסי, "מדע גדול, בקטנה"
[7] כתבה בנושא זיהוי שפות, "מדע גדול, בקטנה"
[8] הסבר מעמיק בנושא Non Maximum Suppression
[9] הסבר מעמיק בנושא "התמרת האף"