Mask R-CNN — מרחיב את Faster R-CNN עם ענף-מסכה; כ-5 תמונות בשנייה

יסודות בינה מלאכותית

הגדרה

Mask R-CNN היא ארכיטקטורת סגמנטציית-מופעים (Instance Segmentation) משנת 2017, שפרסמו קאימינג הה, ג׳ורג׳יה גקיוקסארי, פיוטר דולר ורוס גירשיק ב-Facebook AI Research, ואשר הרחיבה את Faster R-CNN בהוספת ענף-רשת שמייצר מסכת-פיקסלים לכל עצם שזוהה — לא רק תיבת-תיחום וסיווג.

מה זה סגמנטציית-מופעים, ובמה היא שונה מזיהוי-עצמים רגיל

זיהוי-עצמים רגיל, כמו זה ש-Faster R-CNN מבצע, מחזיר לכל עצם תיבת-תיחום מלבנית וסיווג בלבד. סגמנטציית-מופעים (Instance Segmentation) הולכת צעד נוסף: היא מחזירה מסכת-פיקסלים מדויקת לכל עצם בנפרד, כך שגם כשכמה עצמים מאותה קטגוריה חופפים או נוגעים זה בזה בתמונה — למשל כמה אנשים העומדים צמודים — כל אחד מהם מסומן בנפרד, פיקסל-פיקסל, ולא רק כאזור-קטגוריה כללי כמו בסגמנטציה סמנטית רגילה. המשימה הזאת מאתגרת יותר מסגמנטציה סמנטית פשוטה בדיוק בגלל הצורך להבחין בין מופעים בודדים מאותה קטגוריה, ולא רק בין קטגוריות שונות זו מזו.

הרחבת Faster R-CNN: ענף שלישי לחיזוי-מסכה

קאימינג הה, ג׳ורג׳יה גקיוקסארי, פיוטר דולר ורוס גירשיק, חוקרי Facebook AI Research (FAIR) — ושניים מהם, הה וגירשיק, גם ממחברי Faster R-CNN המקורי — פרסמו ב-2017 את Mask R-CNN: הרחבה של Faster R-CNN שמוסיפה ענף-רשת שלישי, שחוזה מסכת-עצם במקביל לענף הקיים שכבר חוזה תיבת-תיחום וסיווג. לפי המאמר, ההרחבה פשוטה לאימון ומוסיפה רק תקורה קטנה מעל Faster R-CNN, ורצה בקצב של 5 תמונות בשנייה — כמעט אותה מהירות של קודמתה, על אף היכולת הנוספת.

RoIAlign: התיקון שהפך את המסכות למדויקות

כדי שהמסכות ייצאו מדויקות ברמת-הפיקסל, Mask R-CNN החליף רכיב מרכזי בארכיטקטורה: את שכבת ה-RoIPool של Faster R-CNN, שמעגלת קואורדינטות ופוגעת ביישור המדויק בין הקלט לפלט, ב-RoIAlign — שכבה שמחשבת ערכים מדויקים באמצעות אינטרפולציה בילינארית, בלי עיגול, ומאפשרת יישור פיקסל-לפיקסל אמיתי בין אזור-התמונה למסכה שנחזית עבורו. השינוי הזה קטן מבחינת קוד, אך לפי המאמר הוא זה שהופך את המסכות מגסות ומקורבות למדויקות למעשה — בלי RoIAlign, אפילו רשת חזקה לא הייתה יכולה לפצות על אי-הדיוק שנוצר כבר בשלב חילוץ-האזור.

ResNet כרשת-בסיס

בניגוד ל-Faster R-CNN המקורי, שהודגם בעיקר עם VGG-16, Mask R-CNN נבנה סביב רשתות-בסיס עמוקות יותר: במאמר נבחנו רשתות ResNet ו-ResNeXt בעומק של 50 או 101 שכבות, לעיתים בשילוב עם Feature Pyramid Network (FPN) שמחלץ מאפיינים בכמה קני-מידה במקביל. ResNet, שקאימינג הה עצמו פיתח שנתיים קודם לכן, הפך כך לרכיב-בסיס נפוץ גם בתוך Mask R-CNN, לא רק בסיווג-תמונה הרגיל שלשמו נוצר במקור — דוגמה מובהקת לאופן שבו חידוש בקטגוריה אחת של ראייה-ממוחשבת (סיווג) הפך לרכיב-יסוד בקטגוריה שונה לגמרי (זיהוי-עצמים וסגמנטציה).

תוצאות: הובלה בכל מסלולי תחרות COCO

לפי המאמר, Mask R-CNN הציג את התוצאות המובילות בכל שלושת מסלולי-האתגר של COCO — סגמנטציית-מופעים, זיהוי-עצמים בתיבות-תיחום, וזיהוי-מפרקים באדם (keypoint detection) — ועקף את כל הרשומות שהוגשו כמודל בודד בכל אחת מהמשימות, כולל את זוכות אתגר COCO 2016. המחברים מדגישים במאמר שההישג הושג ״בלי תחבולות מיוחדות״ (without bells and whistles), כלומר בלי טריקים ספציפיים-למשימה, אלא מהתכנון הכללי של הארכיטקטורה עצמה. הם הדגימו גם שהמסגרת מכלילה בקלות למשימות נוספות, כמו הערכת-תנוחת-גוף אנושית (human pose estimation), באמצעות אותו מבנה-רשת בדיוק.

השפעה: תקן לסגמנטציית-מופעים

Mask R-CNN הפך מאז לארכיטקטורת-הייחוס הסטנדרטית לסגמנטציית-מופעים, ומשמש בסיס נפוץ ליישומים שבהם לא מספיק לדעת שיש עצם בתמונה, ואפילו לא רק היכן הוא נמצא בגסות — אלא צריך לדעת בדיוק אילו פיקסלים שייכים לו: דימות רפואי (סימון גידול או איבר בתמונת-הדמיה, פיקסל-פיקסל), רובוטיקה (זיהוי הגבול המדויק של חפץ לצורך אחיזה), ורכב אוטונומי. יחד, שלושת השלבים — R-CNN, Faster R-CNN ו-Mask R-CNN — ממחישים קו-התפתחות רציף: כל דור פתר את המגבלה המרכזית של קודמו, מדיוק, למהירות, ועד ליכולת להבחין בין מופעים בודדים ברמת-הפיקסל.

שלושה דורות: R-CNN, Faster R-CNN ו-Mask R-CNN
R-CNN (2014)Faster R-CNN (2015)Mask R-CNN (2017)
מנגנון הצעת-אזוריםאלגוריתם חיצוני (Selective Search), כ-2,000 הצעותרשת פנימית משותפת (Region Proposal Network)אותה RPN של Faster R-CNN
מהירות (GPU)כ-47 שניות לתמונה (עם VGG16)כ-5 תמונות בשנייה (עם VGG-16, כולל כל השלבים)כ-5 תמונות בשנייה — תקורה קטנה בלבד מעל Faster R-CNN
פלט לכל עצםתיבת-תיחום + סיווגתיבת-תיחום + סיווגתיבת-תיחום + סיווג + מסכת-פיקסלים
רשת-בסיס אופייניתAlexNet / VGG (לא מאוחדת עם שאר הרשת)VGG-16, ובגרסאות מאוחרות גם ResNetResNet / ResNeXt, לרוב עם FPN

שאלות נפוצות ❓

במה Mask R-CNN שונה מ-Faster R-CNN?

Mask R-CNN מוסיף ענף-רשת שלישי שחוזה מסכת-פיקסלים מדויקת לכל עצם, בנוסף לתיבת-התיחום והסיווג שכבר סיפקה Faster R-CNN — כך שהוא לא רק מזהה עצם אלא גם מסמן בדיוק אילו פיקסלים שייכים לו.

מה זה RoIAlign ולמה הוא נדרש?

שכבה שמחליפה את RoIPool של Faster R-CNN ומחשבת ערכים מדויקים באמצעות אינטרפולציה בילינארית, בלי עיגול קואורדינטות — מה שמאפשר יישור מדויק בין אזור-התמונה למסכה שנחזית, הכרחי לדיוק ברמת-פיקסל.

על איזו רשת-בסיס Mask R-CNN מבוסס?

בעיקר על ResNet, לעיתים בשילוב עם Feature Pyramid Network (FPN), בעומק של 50 או 101 שכבות.

היכן Mask R-CNN בשימוש בפועל?

בדימות רפואי לסימון-פיקסל מדויק של איברים או גידולים, ברובוטיקה לזיהוי גבולות חפצים לצורך אחיזה, וברכב אוטונומי — בכל מקום שבו חשוב לדעת בדיוק אילו פיקסלים שייכים לכל עצם.