R-CNN — ארכיטקטורת זיהוי-עצמים דו-שלבית מ-2014; כ-47 שניות לתמונה

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

הגדרה

R-CNN (ראשי-התיבות של Regions with CNN features) היא ארכיטקטורת זיהוי-עצמים שפרסמו רוס גירשיק ועמיתיו מאוניברסיטת קליפורניה בברקלי ב-2014, שהחליפה חילוץ-מאפיינים ידני ברשת-קונבולוציה הלומדת בעצמה מהנתונים — הצעד שפתח את עידן זיהוי-העצמים מבוסס-למידה-עמוקה.

לפני R-CNN: חילוץ-מאפיינים ידני

עד 2014 הסתמכו שיטות זיהוי-העצמים המובילות על מערכות-אנסמבל מורכבות, שמשלבות כמה סוגי מאפיינים ברמה-נמוכה של התמונה יחד עם הקשר ברמה-גבוהה — לא רשת-נוירונים לומדת אחת, אלא צירוף של רכיבים מהונדסים בנפרד. לפי התיאור במאמר שהציג את R-CNN עצמו, ביצועי-הזיהוי על מאגר-הבנצ׳מרק הסטנדרטי, PASCAL VOC, התייצבו כתוצאה מכך במקום להשתפר בשנים שקדמו לפרסום.

השיטה: הצעת-אזורים ולמידה עמוקה בשני שלבים

R-CNN עובד בשני שלבים נפרדים. בשלב הראשון, אלגוריתם חיצוני בשם Selective Search מייצר כ-2,000 הצעות-אזורים בתמונה — מלבנים שעשויים להכיל עצם. בשלב השני, כל אזור כזה נמתח (warp) לגודל אחיד ומוזן לרשת-קונבולוציה שמפיקה וקטור-מאפיינים לכל אזור. הווקטור הזה מסווג באמצעות מסווגי-SVM נפרדים לכל קטגוריה, וחפיפות מיותרות מוסרות באמצעות non-maximum suppression. לפי המאמר עצמו, השיטה משלבת שני חידושים מרכזיים: ראשית, הפעלת רשת-קונבולוציה בעלת-קיבולת-גבוהה על הצעות-אזורים כדי למקם ולסמן עצמים; שנית, כשנתוני-אימון מתויגים למשימת-היעד מצומצמים, אימון-מוקדם מפוקח על משימת-עזר — במקרה הזה, סיווג-תמונה על ImageNet — ואחריו כוונון-עדין (fine-tuning) ספציפי למשימת זיהוי-העצמים, שהניב שיפור-ביצועים משמעותי.

התוצאה: קפיצת-דיוק חדה

השילוב בין הצעת-אזורים לרשת-קונבולוציה לומדת הניב שיפור חד בדיוק: R-CNN השיג mAP (Mean Average Precision) של 53.3% על מאגר PASCAL VOC 2012 — שיפור יחסי של יותר מ-30% מעל התוצאה הטובה ביותר שפורסמה קודם לכן על אותו מאגר, כפי שדווח במאמר המקורי. ההישג היה משמעותי במיוחד מכיוון שהוא לא נבע מטריק הנדסי חדש, אלא מהחלפת חילוץ-המאפיינים הידני ברשת שלומדת את המאפיינים ישירות מהנתונים. המאמר הרחיב את ההשוואה גם למאגר גדול יותר, מאגר-הזיהוי בן 200 הקטגוריות של תחרות ILSVRC2013: שם השיג R-CNN mAP של 31.4%, לעומת 24.3% בלבד של OverFeat — שיטת-הזיהוי המובילה שקדמה לו על אותו מאגר.

המחיר: איטיות קיצונית

המחיר של הארכיטקטורה היה מהירות איטית באופן קיצוני: מכיוון שכל אחד מאלפי אזורי-ההצעה עבר בנפרד דרך הרשת המלאה, בלי שיתוף-חישוב בין האזורים, זיהוי עצמים בתמונה בודדת נמשך כ-47 שניות על GPU כשנעשה שימוש ברשת VGG16, לפי ההשוואה שגירשיק עצמו פרסם במאמר ההמשך Fast R-CNN. המהירות הזאת הפכה את R-CNN ללא-מעשי לכל יישום שדורש תגובה בזמן-אמת, וגם האימון עצמו היה איטי ותופס-שטח-אחסון ניכר, מכיוון שהיה צורך לחלץ ולשמור בנפרד את וקטור-המאפיינים של כל אחד מאלפי אזורי-ההצעה בכל תמונת-אימון.

ההמשך: מ-Fast R-CNN ועד Faster R-CNN

גירשיק עצמו פתר את בעיית-המהירות שנה אחר-כך, ב-Fast R-CNN: במקום להריץ את הרשת בנפרד על כל אזור, הרשת רצה פעם אחת על התמונה כולה, ואזורי-העניין נחתכים מתוך מפת-המאפיינים המשותפת. לפי המאמר שהציג את Fast R-CNN, השיטה החדשה אימנה את רשת VGG16 מהר פי 9 מ-R-CNN, ורצה מהר פי 213 בזמן-הסקה, תוך השגת mAP גבוה יותר על PASCAL VOC 2012. שלב הצעת-האזורים החיצוני עצמו הוחלף רק בשלב הבא, Faster R-CNN, שאיחד אותו לתוך הרשת עצמה.

המשמעות ההיסטורית

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

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

מי פיתח את R-CNN ומתי?

רוס גירשיק, ג׳ף דונהיו, טרוור דארל וג׳יטנדרה מאליק, חוקרים מאוניברסיטת קליפורניה בברקלי, פרסמו את R-CNN ב-2014 במאמר Rich Feature Hierarchies for Accurate Object Detection and Semantic Segmentation.

איך R-CNN עובד?

בשני שלבים: אלגוריתם Selective Search מציע כ-2,000 אזורים חשודים בתמונה, ולאחר מכן רשת-קונבולוציה מסווגת כל אזור בנפרד באמצעות מסווגי-SVM.

למה R-CNN היה כל-כך איטי?

כי כל אחד מאלפי אזורי-ההצעה עבר בנפרד דרך הרשת המלאה בלי שיתוף-חישוב, מה שגרם לזיהוי בתמונה בודדת להימשך כ-47 שניות על GPU.

מה ההבדל בין R-CNN ל-Faster R-CNN?

Faster R-CNN, שפורסם ב-2015, מחליף את שלב הצעת-האזורים החיצוני (Selective Search) ברשת-נוירונים ייעודית המשולבת בתוך המודל עצמו — Region Proposal Network — מה שהפך את התהליך למהיר בהרבה.