You Better Look Twice: a new perspective for designing accurate detectors with reduced computations (סקירה)

מאת אברהם רביב, 29 באוקטובר 2021

הצטרפו לערוץ היוטיוב שלנו!

כל הסרטונים מארועי הקהילה

סקירה זו היא חלק מפינה קבועה בה אני סוקר מאמרים חשובים בתחום ה-ML/DL, וכותב גרסה פשוטה וברורה יותר שלהם בעברית. במידה ותרצו לקרוא את המאמרים הנוספים שסיכמתי, אתם מוזמנים לבדוק את העמוד שמרכז אותם תחת השם deepnightlearners.


לילה טוב חברים, היום אנחנו שוב בפינתנו deepnightlearners עם סקירה של מאמר בתחום הלמידה העמוקה. היום בחרתי לסקירה את המאמר שנקרא:

You Better Look Twice: a new perspective for designing accurate detectors with reduced computations


פינת הסוקר:  

         המלצת קריאה מאברהם: מומלץ מאוד למתעניינים ב-Computer vision ובפרט בתחום של Object detection.

        בהירות כתיבה: כתוב בצורה פשוטה ומובנת, כולל איורים טובים.

        רמת היכרות עם כלים מתמטיים וטכניקות של ML/DL הנדרשים להבנת מאמר: רקע ב-Vision עוזר אבל לא חובה. אין כמעט משוואות במאמר.

       יישומים פרקטיים אפשריים: רשתות מהירות לזיהוי אובייקטים על גבי מכשירי קצה כמו פלאפונים ומצלמות.


פרטי מאמר:

     לינק למאמר: זמין להורדה.

     לינק לקוד: לא מופיע בארקיב

     פורסם בתאריך: 03.08.21, בארקיב.

     הוצג בכנס: British Machine Vision Conference (BMVC) 2021


תחומי מאמר:

  • זיהוי אובייקטים בתמונות מותאם למכשירי קצה.

ידע מוקדם:

  • רקע ברשתות נוירונים עמוקות מספיקה (החלק הראשון של הסקירה מכיל תיאור קצר של שיטות לזיהוי אובייקטים בתמונה, המספיק להבנת הסקירה)

מבוא:

הפעם בחרתי לסקור מאמר של חברים מהקבוצה שלי ב- Samsung Israel R&D Center (SIRC) שהתקבל ממש לאחרונה ל-British Machine Vision Conference (BMVC) 2021. המאמר מציע רשת מהירה עבור משימת זיהוי אובייקטים, שיכולה לרוץ ב-Real time על מכשירי קצה ללא הרבה משאבים כמו פלאפונים ומצלמות. המאמר מציג ביצועים משופרים ביחס לארכיטקטורות SOTA בתחום, הן באספקט של מהירות החישוב והן מבחינת ביצועי הרשת בזיהוי האובייקטים.

רקע:

במשימות של זיהוי אובייקטים בתמונה (Object Detection) יש שני סוגים עיקריים של גלאים (Detectors) – one-stage detectors ו-two stage detectors.

גלאי עם שני שלבים מבצע את הזיהוי באופן הבא: ראשית הוא מחלץ אזורים בתמונה שחשודים ככאלה המכילים אובייקטים, ובשלב השני מתבצע התיוג של האובייקט (בעזרת ראש קלסיפיקציה) ומציאת המלבן המדויק (bounding box) המכיל את האובייקט (ראש רגרסיה).

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

כאמור, גלאי מבוסס שני שלבים הינו איטי יחסית ואילו גלאי הבנוי משלב אחד בלבד יותר מהיר ב-Inference time וממילא יותר מתאים למכשירי קצה הפועלים בזמן אמת, כגון מצלמות ופלאפונים. עם זאת, לחיבור השלבים יש מחיר של דיוק, ולרוב גלאים בעלי שני שלבים יבצעו את זיהוי האובייקטים בצורה יותר איכותית (הן מבחינת מציאת המיקום המדויק של האובייקטים והן מבחינת הדיוק של ה-bounding box המכיל כל האובייקט). הגלאים המפורסמים בעלי שני שלבים הינם הגלאים ממשפחת R-CNN (כאשר ההתפתחות של הגלאים ממשפחה זו באה בעיקר להתמודד עם מהירות פעולת הגלאי), ומבין הגלאים המפורסמים בעלי שלב אחד ניתן למצוא את YOLO, SSD, RETINA-NET ועוד.

אתגרים של גלאים במשימת זיהוי אובייקטים:

נדבר מעט על שני אתגרים שקיימים במשימת זיהוי אובייקטים בכדי להבין מה התרומה של המאמר אותו אנו סוקרים:

  • רקע בתמונה: בתמונה אופיינית, רוב אזורי התמונה אינם מכילים אובייקטים אלא הם רקע "ניטרלי". בגלאים בעלי שלב אחד בהם הזיהוי מתבצע על בסיס anchors בדרך כלל רוב ה-anchors אינם מכילים כלל אובייקטים והלמידה עליהם מיותרת ולעיתים אף מקשה על המודל. גלאים בעלי שני שלבים לרוב נמנעים מבעיית הרקע, כיוון שהשלב הראשון מחלץ את האזורים החשודים כמכילים אובייקטים (ROI – region of interest) ומסנן את הרקע. שלב זה מכיל Backbone שהינו רשת קונבולוציה המוציאה מפת פיצ'רים של התמונה, ואז מתבצע תהליך שנקרא Region Proposal Network (RPN) שמזהה מתוך מפת הפיצ'רים את האזורים בתמונה שכנראה מכילים אובייקטים. למרות השימוש ב-RPN, גם בגלאים אלה יש חסרון שקשור לרקע – השלב הראשון בו מתבצעת ההפרדה בין הרקע לאובייקטים הינו משימה יחסית פשוטה ושימוש ב-Backbone ו-RPN זה משהו יחסית יקר וניתן לבצע זאת באופן הרבה יותר זול (טוב, כדי להשתכנע בכך יש לקרוא את המאמר…).
  • רזולוציה: כאמור, גלאים בעלי שני שלבים משתמשים ב-Backbone. פעולת ה-Backbone הינה אגנוסטית לגדלים שונים של אובייקטים, כלומר, היא מתייחסת באופן זהה לכל האובייקטים השייכים לאותו קלאס ללא תלות בגודל שלהם, ומעבדת אותם באותו אופן על סמך אותה רזולוציה. פעולה זו הינה לעיתים בזבזנית, כיוון שניתן לקחת אובייקטים גדולים ולעבד אותם ברזולוציה נמוכה יותר ועדיין לקבל עבורם תוצאה איכותית.

ישנם אתגרים נוספים, אך נסתפק באלו כיוון שאיתם בא המאמר להתמודד.

BLT-Net:

כאמור, החולשה של גלאי שלב אחד (=שלא מבצע שלב של חילוץ אזורי עניין) הינו היתירות הרבה שיש בניסיון למצוא אובייקטים באזורי רקע (שהם הרבה פעמים רוב מוחלט של התמונה). גם ה-Backbone וה-RPN שמהווים את השלב הראשון בגלאי שני שלבים אינם מושלמים, ועמדנו על שתי בעיות – עיבוד כל האובייקטים ברזולוציה אחידה, והפרדת הרקע מהאובייקטים בצורה שמתבררת כיקרה שלא לצורך. בנוסף כמו שציינו בהתחלה, רשת כזו הינה איטית יותר מאשר רשת בעלת שלב יחיד.

הרשת המתוארת במאמר – BLT-Net (Better Look Twice) – מציעה להשתמש בשני שלבים אך להחליף את השלב הראשון באלמנט שמבצע את פעולת ההפרדה באופן יעיל יותר. באופן הזה הגלאי נצרך לפחות פעולות וממילא הוא מהיר יותר, ועם זאת הוא עדיין שומר על תוצאות איכותיות הודות לשני השלבים שלו. השלב השני לא חדש ומבוסס על ארכיטקטורות קיימות (Pedestron/ACSP/APD). המוקד של הגלאי המוצע במאמר נמצא בשלב הראשון, והוא מכיל שני אלמנטים חשובים – Backbone יעיל ואלגוריתם נוסף בשם PMCAD. מטרת שני האלמנטים היא לסנן בצורה זולה ואיכותית את הרקע ולזקק כמה שיותר את המידע המגיע לשלב השני.

BTL architecture

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

בכדי להבין את חשיבותו של אלגוריתם PMCAD יש להשוות אותו לגלאים קודמים. Faster R-CNN למשל, המבוסס גם הוא על שני שלבים, מייצר הרבה ROI בשלב הראשון, אך ישנם הרבה אזורי עניין שיש ביניהם חפיפה. באמצעות אלגוריתם איטרטיבי ניתן לאחד אזורים כאלה, ובכך המידע שנכנס לשלב השני הרבה יותר מצומצם, אך עם זאת המידע שלו יותר איכותי. ההיגיון מאחורי אלגוריתם זה הוא פשוט: אם יש כמה ROI שונים בעלי חפיפה מספיק גדולה, סביר להניח שהם מתייחסים לאותו אובייקט, לכן ניתן לאחד אותם לROI יחיד (נקרא לו merged ROI). באופן הזה יש הרבה פחות ROI הנכנסים לשלב השני, ובכך הגלאי נהיה מהיר יותר. באופן אמפירי הצליחו להראות ששימוש באלגוריתם זה מביא לכך שמספיק שהשלב השני יראה 9.6% מהפיקסלים בתמונה המקורית ועדיין להצליח לספק זיהויים איכותיים.

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

סיכום:

המאמר מציע רשת מהירה לזיהוי אובייקטים, כאשר הגלאי בנוי משני שלבים. בכדי להאיץ את הגלאי, השלב הראשון מכיל Backbone יחסית מהיר, ובנוסף הוא מספק אלגוריתם איטרטיבי המאחד ROI ומפחית דרסטית את מספר אזורי העניין שנכנסים לשלב השני. הפחתה זו מאפשרת להוציא את אותו אזור עניין ברזולוציות שונות, ובכך לזהות בצורה איכותית אובייקטים בגדלים שונים. התוצאות יפות ומשיגות SOTA מבחינת Inference time  וזיהוי, מה שמאפשר לקחת את הרשת הזו ולהשתמש בה עבור מכשירים שזקוקים לביצועים מהירים בעלות זולה יחסית כמו פלאפונים. תוצאה חשובה נוספת היא העובדה שלמעשה בכדי לספק זיהוי איכותי מספיק להסתכל על אחוז קטן יחסית של פיקסלים מכלל התמונה, בתנאי שלפני כן מתבצע עיבוד מספיק טוב.

נ.ב.

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

#deepnightlearners

הפוסט נכתב על ידי אברהם רביב.

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

הצטרפו לערוץ הטלגרם שלנו!

כל ההודעות שאתם לא רוצים לפספס

X