Uploaded by Jordan Hury

Weakly supervised object detection and localization

advertisement
Weakly Supervised Object Detection and Localization
(WSOL & WSOD)
‫ ג׳ורדן הורי‬:‫מגיש‬
‫ ד״ר מיה הרמן‬:‫מנחה‬
2021
1
‫תוכן עניינים‬
‫מבוא ‪3 ......................................................................................................................................‬‬
‫מוטיבציה – אפליקציות שימושיות‪3.........................................................................................................‬‬
‫גלאי אובייקטים בפיקוח מוחלש בהשוואה לפיקוח מלא‪4..............................................................................‬‬
‫לוקליזציה של אובייקטים ‪6 ............................................................................................................‬‬
‫רקע ‪6................................................................................................................................................‬‬
‫כלים בסיסיים ‪6...................................................................................................................................‬‬
‫חיפוש ממצה (‪6 .......................................................................................................................... )Exhaustive Search‬‬
‫הקטעת תמונה (‪6 .............................................................................................................................. )Segmentation‬‬
‫ייצור הצעות לאובייקטים (‪7........................................................................ )Object Proposal Generation‬‬
‫חלונות גולשים (‪7 ........................................................................................................................... )Sliding Windows‬‬
‫חיפוש סלקטיבי (‪8 .......................................................................................................................... )Selective Search‬‬
‫קופסאות קצוות (‪10 ................................................................................................................................ )Edge Boxes‬‬
‫רשת נוירונים מתקפלת ללוקליזציה ( ‪12 ............................................ )Convolutional neural networks for Localization‬‬
‫‪14 ...................................................................................................................................................... Soft Proposal‬‬
‫מבנה של גלאים עם פיקוח מוחלש ‪15 .............................................................................................‬‬
‫רשת מבוססת מספר הופעות (‪15............................................................................ )MIL-based Network‬‬
‫רשת מבוססת מפות שפעול מחלקות (‪16................................................................ )CAM-based Network‬‬
‫השוואה בין הגישות ‪17.........................................................................................................................‬‬
‫אתגרים ופתרונות ‪17 ...................................................................................................................‬‬
‫בעיית האזור המפלה ‪17........................................................................................................................‬‬
‫מידול הקשר ‪17 ..........................................................................................................................................................‬‬
‫אלגוריתם אימון‪-‬עצמי ‪18 .............................................................................................................................................‬‬
‫רשת שרשרת ‪21 ........................................................................................................................................................‬‬
‫נסיגת קופסה תוחמת ‪21 .............................................................................................................................................‬‬
‫הסרת אזור מפלה ‪21 ..................................................................................................................................................‬‬
‫שימוש בפיצ׳רים ברמה נמוכה ‪23 .................................................................................................................................‬‬
‫מכניזם סגמנטציה‪-‬איתור שיתופי ‪24 .............................................................................................................................‬‬
‫המרה מפיקוח מוחלש לפיקוח מלא ‪24 ..........................................................................................................................‬‬
‫בעיית הופעות מרובות ‪25......................................................................................................................‬‬
‫בעיית המהירות ‪28...............................................................................................................................‬‬
‫סיכום ‪29 ...................................................................................................................................‬‬
‫מקורות ‪30 .................................................................................................................................‬‬
‫‪2‬‬
‫מבוא‬
‫תחום זיהוי האובייקטים מהווה את אחת הבעיות היסודיות והיותר מאתגרות של עולם הראייה הממוחשבת‪.‬‬
‫תחום זה קיבל הרבה מאוד תשומת לב במחקר בשנים האחרונות‪ ,‬ההתפתחות שנעשתה בתחום זה בשני‬
‫העשורים האחרונים מהווה תמצית של היסטוריית הראייה הממוחשבת‪ .‬זיהוי אובייקטים היא בעיה שבה עבור‬
‫קלט שמייצג תמונה מסוימת‪ ,‬פתרון הבעיה היא לאתר את האובייקטים שנמצאים בתמונה ולסווגם‪ .‬בתחום‬
‫איתור האובייקטים (‪ ,)localization‬עבור תמונה מסוימת‪ ,‬נרצה למצוא תת תמונה שבה מופיע אובייקט ולסווג‬
‫אותו‪ .‬תת התמונה תבוא לידי ביטוי על ידי שבתמונה המקורית נוסיף קופסה תוחמת (‪ )bounding box‬מסביב‬
‫לאובייקט‪ .‬את כל זה נבצע בעזרת טכניקות ומודלים חישוביים שמספקים את המידע הבסיסי שנחוץ על ידי‬
‫אפליקציות ראייה ממוחשבת והוא‪ :‬״איזה אובייקטים נמצאים איפה ?״‪.‬‬
‫במאמר זה נתחיל מכמה קונספטים בסיסיים בעולם זיהוי האובייקטים‪ ,‬שאחר כך יוכלו לעזור לנו להבין יותר‬
‫לעומק את עיקר המאמר‪ ,‬איתור אובייקטים בעזרת פיקוח מוחלש עליו נשים דגש‪ .‬בהמשך המבוא נגדיר את‬
‫המוטיבציה שלנו בתחום מחקר זה‪ ,‬נראה איפה ניתן לשמש את המידע הזה ואולי נבחין איפה אנחנו כבר‬
‫משתמשים באפליקציות שנובעות ממנו‪ ,‬אחר כך נגדיר את הבעיה והתת תחום ‪ .WSOD‬לפני שנצלול עמוק‬
‫לתוך המימוש של מודלים קיימים‪ ,‬נדבר קצת על ייצור של הצעות לאובייקטים‪ ,‬שזהו מרכיב קריטי לאלגוריתמים‬
‫שבהם הפיקוח מוחלש‪ .‬נראה שני גישות שונות שבדרך כלל כל אלגוריתם משתייך לאחד מהם‪:‬‬
‫‪ . MIL / CAM based‬נציג כמה אלגוריתמים שהם חדשים ״יחסית״‪ ,‬נבחן לעומק את האתגרים הרבים שיש‬
‫בבעיות פיקוח מוחלש‪ ,‬החסרונות שלהם‪ ,‬וגם שיטות רבות שאלגוריתמים שונים נוקטים כדי למזער אותם‪,‬‬
‫ולבסוף נעבור לסיכום‪.‬‬
‫מוטיבציה – אפליקציות שימושיות‬
‫נבצע סיקור קצר על שימושים שונים ועיקריים של איתור אובייקטים ב‪ 20-‬שנים האחרונות‪:‬‬
‫‪ ‬איתור הולכי רגל (‪ – )Pedestrian Detection‬משימה שקיבלה הרבה מאוד תשומת לב‪ ,‬בעיקר‬
‫באפליקציות של נהיגה אוטונומית‪ ,‬מעקב וידאו‪ ,‬וחקירות פליליות‪.‬‬
‫בין הקשיים בבעיה זו היא איתור הולכי רגל שנמצאים רחוק מהמצלמה ולכן תופסים מספר קטן של‬
‫פיקסלים מתמונת הקלט‪ ,‬אובייקטים שממרחק יכולים להיות דומים להולכי רגל למשל תמרורים‪ ,‬הולכי‬
‫רגל שמרוכזים במקום מסוים‪ ,‬או חסומים חלקית על ידי אובייקטים אחרים‪ ,‬זיהוי בזמן אמת בו‬
‫הביצועים מבחינת מהירות הזיהוי והדיוק הם קריטיים כמו בשימוש של נהיגה אוטונומית‪.‬‬
‫‪ ‬איתור פנים (‪ – )Face Detection‬בין האפליקציות הכי שימושיות וותיקות בראייה ממוחשבת‪ ,‬הגלאי‬
‫של ויולה ג׳ונס המפורסם שנועד לאתר פנים קידם משמעותית את תחום איתור האובייקטים והרבה‬
‫מהרעיונות שלו עדיין באים לידי ביטוי בגלאים עד היום‪ .‬בין האפליקציות השימושיות בתחום מחקר זה‬
‫‪3‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫הוא זיהוי פנים (למשל לצורך הזדהות)‪ ,‬זיהוי של ״פרצופים״ כמו למשל חיוך וכד׳‪ ,‬וזיהוי תכונות כמו‬
‫מגדר או גיל‪.‬‬
‫בין הקשיים באפליקציות שמשתמשות בשיטות אלו‪ :‬מאחר ופנים יכולות להופיע בווריאציות שונות‬
‫(חיוך‪ ,‬פוזה‪ ,‬זווית שונה וכו׳) זה יכול להוות אתגר בזמן הזיהוי‪ .‬לפעמים בתמונה יכול להיות אובייקט‬
‫שמסתיר באופן חלקי את הפנים שבתמונה‪ .‬איתור בגדלים שונים‪ ,‬כלומר הפנים יכולות להופיע בגדלים‬
‫שונים במיקומים שונים בתמונה דבר שמגדיל את האתגר‪ .‬כוח חישובי במכשירים מסוימים יכול להוות‬
‫בעיה‪ ,‬למשל אפליקציית הזדהות בעזרת צילום הפנים נפוצה במכשירים סלולריים‪ ,‬שם כוח העיבוד‬
‫מוגבל ויש צורך להחזיר תשובה נכונה למשתמש בזמן קצר‪.‬‬
‫זיהוי טקסט (‪ – )Text Detection‬המטרה היא להבין אם יש בתמונה טקסט ואם יש אז לגלות היכן הוא‬
‫נמצא ולזהות מה רשום שם‪ .‬בין האפליקציות השונות שבשימוש‪ :‬קריאה של תוויות ומספרים‬
‫מחבילות‪ ,‬חילוץ של תוכן טקסטואלי מאתרי אינטרנט‪ ,‬זיהוי של לוחיות רישוי במכוניות‪ ,‬קריאה של‬
‫שלטים במערכות נהיגה אוטונומיות‪ ,‬כלי עזר לעיוורים ולקויי ראייה‪ ,‬וסריקה וקריאה של מסמכים כמו‬
‫צ׳קים‪.‬‬
‫בין הקשיים באפליקציות מסוג זה‪ :‬וריאציות שונות של פונטים (גופן)‪ ,‬שפות‪ ,‬צבעים שונים‪ .‬טקסט‬
‫שמופיע ״לא ישר״‪ ,‬כלומר טקסט שנטוי הצידה או הפוך‪ .‬פרספקטיבות שונות‪ .‬טקסט ״דחוס״‪ ,‬כלומר‬
‫האותיות בו מאוד קרובות אחת לשנייה‪ .‬אותיות חתוכות‪ ,‬או תמונות מטושטשות‪.‬‬
‫זיהוי תמרורים ורמזורים – שימוש נרחב בפתרונות של רכבים אוטונומיים‪ .‬בין הקשיים‪ :‬תנאי תאורה‬
‫שונים (למשל סנוור מהשמש או מכוניות אחרות)‪ .‬טשטוש שנגרם עקב התנועה‪ .‬תנאי מזג אוויר‬
‫שמקשים כמו גשם או שלג‪ .‬וזמני ריצה בזמן אמת שהם כמובן קריטיים‪.‬‬
‫זיהוי מטרות חישה מרחוק (‪ – )Remote Sensing Target Detection‬אפליקציות שונות כמו שימוש‬
‫צבאי‪ ,‬חילוץ בעת אסונות‪ ,‬ניהול תחבורה עירונית‪ .‬בין הקשיים‪ :‬עקב המידע הרב (‪ )big data‬הצורך‬
‫לזהות באופן זריז ומדויק הוא אתגר‪ .‬מאחר והצילום נעשה מהאוויר (למשל על ידי מטוסים או לוויינים)‬
‫חלק גדול מהתמונה יכול להיות חסום על ידי עננים‪.‬‬
‫גלאי אובייקטים בפיקוח מוחלש בהשוואה לפיקוח מלא‬
‫בגלאי אובייקטים בפיקוח מלא‪ ,‬בשלב האימון‪ ,‬נשתמש באנוטציות ברמת ההופעה‪ .‬דוגמה לזה ניתן לראות‬
‫באיור (‪:)1‬‬
‫איור ‪ :1‬אימון מודל פיקוח מלא ‪ .‬המודל מקבל תמונה וקופסאות תוחמות על גבי התמונה עם קטגוריה של ההופעה שנמצאת בקופסה‬
‫התוחמת‪.‬‬
‫‪4‬‬
‫כלומר בעת האימון יש לנו כלי עזר מאוד גדול‪ ,‬והוא שאנחנו יודעים בדיוק איפה נמצאים האובייקטים‪ ,‬כלומר יש‬
‫לנו כבר תיחום שלהם בעזרת קופסאות תוחמות ובנוסף גם עבור כל קופסה תוחמת ידוע לנו מה הסיווג של‬
‫האובייקט שתחום על ידה‪.‬‬
‫השיטה הזו מביאה תוצאות מאוד טובות‪ ,‬וגם יותר טובות ממודלים עם פיקוח מוחלש‪ ,‬אבל יש לה גם כמה‬
‫חסרונות‪:‬‬
‫‪ .1‬קשה להשיג מידע בסדר גודל גדול שבו יש לנו אנוטציות על הופעות של אובייקטים‪.‬‬
‫‪ .2‬ליצור סט אימון כזה דורש הרבה מאוד עבודה‪.‬‬
‫‪ .3‬כאשר אנחנו מתייגים את המידע‪ ,‬יכול להיות באנוטציות ״רעשי רקע״‪.‬‬
‫עקב הבעיות האלו‪ ,‬ננסה לפתור את למצוא מודלים עם ביצועים טובים שבהם הפיקוח הוא מוחלש‪ ,‬שם בניגוד‬
‫למודלים עם פיקוח מלא בשלב האימון אנחנו ננסה לגלות הופעות של אובייקטים רק עם תגיות ברמת התמונה‪,‬‬
‫למשל כמו שניתן לראות באיור (‪ ,)2‬יהיו לנו תגיות עבור התמונה של ״כלב״ ו‪-‬״חתול״‪ ,‬אך לא יהיה לנו מידע‬
‫היכן הם נמצאים‪.‬‬
‫איור ‪ :2‬אימון מודל פיקוח חלקי ‪ .‬המודל בזמן האימון מקבל את התמונה ותוויות של הקטגוריות שמופיעות בתמונה זו‪.‬‬
‫לכן במודלים עם פיקוח מוחלש לא רק שנסווג שבתמונה נמצאים החתול והכלב‪ ,‬אלא גם ניצור קופסאות‬
‫תוחמות מסביבם‪.‬‬
‫עקב העובדה שבמודל המוחלש אנו ניגשים רק לאנוטציות ברמת התמונה‪ ,‬יש לנו גישה לבסיסי נתונים ענקיים‪,‬‬
‫למשל בסיסי נתונים של פייסבוק‪ ,‬טוויטר או גוגל ברשת‪ ,‬עבור מודלים עם פיקוח מלא לא יכולנו לאמן את המודל‬
‫שלנו על בסיסי הנתונים האלו‪.‬‬
‫עם זאת‪ ,‬עקב ההגבלה בשלב האימון שבה אנחנו יכולים לגשת רק לאנוטציות ברמת התמונה עדיין יש פער‬
‫בביצועים בין מודלים שאומנו עם פיקוח מלא ובין אלו שאומנו עם פיקוח מוחלש‪ .‬לכן הרבה מהאתגרים‬
‫שהחוקרים של היום מנסים לפתור בפיקוח מוחלש יהיו בעיקר בהקשר של שיפור הביצועים‪.‬‬
‫הבעיה של לוקליזציה של פיקוח מוחלש מדברת על מציאה של הופעה אחת של אובייקט בתמונה‪ ,‬בגלל‬
‫שאיתור אובייקטים בפיקוח מוחלש מסוגל לגלות הופעות מרובות של אובייקטים נתייחס ללוקליזציה בפיקוח‬
‫מוחלש כתת בעיה של איתור בפיקוח מלא‪ ,‬ואיתור בפיקוח מלא ייצג עבורנו את שני הבעיות הללו‪.‬‬
‫‪5‬‬
‫לוקליזציה של אובייקטים‬
‫רקע‬
‫בקלט של תמונה‪ ,‬יכולים להיות לנו הופעות של כל מיני אובייקטים מכל מיני סוגים‪ ,‬ולעתים גם נחפש‬
‫אובייקטים שיופיעו ב‪-‬״פוזות״ שונות‪ ,‬או גדלים שונים‪ .‬אם אנחנו נעביר את התמונה כולה למסווג שיגיד לנו‬
‫איזה אובייקט מופיע בתמונה לא נוכל בהכרח לגלות את כל האובייקטים‪ ,‬סביר להניח שלא נמצא אובייקטים‬
‫שהם קטנים‪ ,‬וגם לא בהכרח נוכל לדעת איפה בדיוק בתמונה מופיע האובייקט בתמונה שעליה הפעלנו את‬
‫המסווג‪.‬‬
‫בתחילת הפרק נציג כלים בסיסיים שיעזרו לנו בהמשך במשימה שלנו לייצר הצעות לאובייקטים‪ ,‬כלומר מה‬
‫שנרצה לעשות זה עבור תמונה שנקבל בקלט‪ ,‬להפריד אותה לתתי תמונות שאנחנו חושדים שבהם מופיעים‬
‫אובייקטים ואז נוכל להעביר את תתי התמונות האלו אל המסווג שלנו‪ ,‬ולבסוף נוכל לדעת איזה אובייקט היכן‬
‫מופיע‪ ,‬למצוא ולסווג יותר אובייקטים‪ ,‬ואף במקרים מסוימים נראה אלגוריתמים שישפרו את זמן הריצה שלנו על‬
‫ידי שיבחרו באופן ״חכם״ את ההצעות‪ ,‬למשל על ידי דירוג של הצעות שונות עם ציון ובחירה רק של הצעות‬
‫שעוברות ציון סף‪.‬‬
‫כלים בסיסיים‬
‫חיפוש ממצה (‪)Exhaustive Search‬‬
‫אובייקטים יכולים להימצא במיקומים וגדלים שונים בתמונת הקלט‪ .‬בחיפוש ממצה אנו ננסה לחפש בכל מקום‬
‫שניתן‪ ,‬נסתכל על תתי תמונות בגדלים ומיקומים שונים‪ ,‬ובעלי יחסי רוחב‪-‬גובה שונים‪ .‬הבעיה עם זה הוא‬
‫שה מרחב החזותי הוא ענקי‪ ,‬דבר שיכול לגרום לשיטה זו להיות יקרה מבחינה חישובית‪ .‬כדי להתמודד עם בעיות‬
‫אלו‪ ,‬אלגוריתמים שמשתמשים בטכניקות חלונות גולשים (שמשתמשות בחיפוש ממצה) נוטים להגביל את‬
‫עצמם‪ ,‬למשל על ידי יחס רוחב‪-‬גובה מצומצם או שימוש במסווגים זולים חישובית‪.‬‬
‫הקטעת תמונה (‪)Segmentation‬‬
‫כלי שהמטרה שלו היא שעבור תמונה מסוימת יבצע אשכול (‪ )clustering‬של פיקסלים בתמונה ששייכים‬
‫לאובייקט מאותו מחלקה‪ .‬התוצאה הסופית היא שהתמונה מחולקת לאזורים מופרדים כאשר באידיאל נרצה‬
‫שכל אחד מהם ייצג הופעה של אובייקט‪ .‬דוגמה ויזואלית לתוצאה של תהליך האשכול ניתן לראות באיור (‪:)3‬‬
‫‪6‬‬
‫איור ‪ :3‬דוגמה לתוצר ביצוע סגמנטציה‬
‫יש מקרים בהם סגמנטציה עובדת פחות טוב עבור תמונות עם מאפיינים מסוימים‪ ,‬למשל‪:‬‬
‫‪ ‬התקלחות עדשה (‪ – )lens flare‬נגרם על ידי אור שמפוזר במערכת המצלמה‪.‬‬
‫‪ ‬עמעום שולי (‪ – )Vignetting‬האפקט שבו הפינות בתמונה הם חשוכות ביחס למרכז התמונה‪.‬‬
‫‪ ‬טשטוש – יכול להיגרם למשל על ידי פוקוס לא נכון‪ ,‬תזוזה‪ ,‬עשן ועוד‪.‬‬
‫‪ ‬חפצים שקופים – האם צריך להתייחס לאובייקט שמאחורה‪ ,‬או להסתיר עם האובייקט השקוף ? אולי‬
‫להתייחס לשניהם ?‬
‫‪ ‬הסוואה‬
‫מאחר ויש כל כך הרבה קטגוריות של שיטות שונות כדי לבצע סגמנטציה‪ ,‬ובגלל שגם בכל קטגוריה יש הרבה‬
‫מאוד אלגוריתמים שונים‪ ,‬אז רק נציין בקצרה מהן השיטות השונות לפי סדר הופעתם‪ ,‬בהמשך נדבר בהרחבה‬
‫על שיטות יותר מודרניות שמשתמשות בלמידה עמוקה (ובפרט ברשתות נוירונים מתקפלות) מאחר והן‬
‫שימושיות באלגוריתמים שנתאר בהמשך עבור גלאים עם פיקוח מוחלש‪ .‬להלן השיטות‪:‬‬
‫‪.1‬‬
‫‪.2‬‬
‫‪.3‬‬
‫‪.4‬‬
‫‪.5‬‬
‫הקטעה ללא פיקוח (‪ – )Unsupervised segmentation‬אלגוריתמים מסוג זה לא יודעים להבחין בין‬
‫מחלקות‪ ,‬אלא מנסים להבדיל בין אובייקטים בתמונה בלי קשר למחלקה של אובייקט‪ .‬היתרון בשיטות‬
‫כאלו היא שהן לא דורשות איזה שהוא אימון על תמונות שעשו עליהם סגמנטציה ידנית‪ .‬יתרון זה חיוני‬
‫לאפליקציות עם סגמנטציה גנרית‪ ,‬למשל כאשר יש תמונות עם תוכן לא ידוע‪.‬‬
‫‪ – Random decision forests‬משתמש בטכניקות שנקראות ‪ ,ensemble learning‬בהם מאמנים‬
‫כמה מסווגים ומשתמשים בשילוב של השערתם‪ .‬בין הטכניקות‪ random subspaces :‬בה כל מסווג‬
‫מאומן על תת מרחב אקראי של מרחב הפיצ׳רים‪ .‬שיטה נוספת נקראת ‪ bagging‬שם מאמנים את‬
‫העצים על תת קבוצות אקראיות של סט האימון‪.‬‬
‫באלגוריתמים מסוג זה המסווגים הם עצי החלטה‪ ,‬בעצי החלטה כאשר ננסה לסווג אנחנו יורדים‬
‫מהשורש עד לעלה‪ ,‬על ידי שבכל פעם אנחנו יורדים צומת ואנחנו יודעים לאיזה מין הבנים לגשת על‬
‫בסיס הפיצ׳רים‪ .‬לבסוף העלה מייצג את המחלקה אליה נסווג‪ .‬אחד העוצמות של אלגוריתמים מסוג זה‬
‫בהשוואה לאחרים היא מהירות הסיווג שלו‪.‬‬
‫‪)Support Vector Machine( SVM‬‬
‫‪ – Markov Random Fields‬מודל גרפי לא מכוון הסתברותי‪.‬‬
‫‪ – Conditional random fields‬מתבסס על ‪ ,MRF‬פה הקליקות הפוטנציאליות מותנות בפיצ׳רים‪.‬‬
‫ייצור הצעות לאובייקטים (‪)Object Proposal Generation‬‬
‫חלונות גולשים (‪)Sliding Windows‬‬
‫השתמשו בשיטה זו כדי לאתר אובייקטים עוד מלפני שהיו משתמשים בשיטות של ״למידה עמוקה״‪ ,‬עוד כשהיו‬
‫יוצרים את ה‪ feature descriptors-‬בצורה ידנית‪ ,‬השיטות הכי טובות לאיתור וזיהוי אובייקטים בתקופה זו‬
‫‪7‬‬
‫(למשל‪ )DPM, HOG Map :‬השתמשו בשיטה הזאת‪ .‬גם האלגוריתם המפורסם של ויולה ג׳ונס השתמש‬
‫בשיטה זו‪.‬‬
‫בגישה זו ננסה לעשות חיפוש ממצה על תמונת הקלט כדי לחלץ משם הצעות לתת תמונות שמכילות אובייקט‪,‬‬
‫כלומר נבצע מעבר על תתי התמונות בגדלים ומיקומים שונים ומכל אחד נחלץ פיצ׳רים בהמשך‪.‬‬
‫החיסרון בשיטה זו היא שמספר ההצעות הוא ענקי‪ ,‬וככל שגדלים מספר הפיקסלים בתמונת הקלט‪ ,‬ולוקחים‬
‫בחשבון קנה מידה ויחסי רוחב‪-‬גובה שונים‪ ,‬כך מספר ההצעות גדל משמעותית‪ ,‬וכתוצאה ממספר ההצעות‬
‫הגדול שימוש במסווגים מתוחכמים עולה בזמן ריצה יקר‪ .‬לכן נוצרו כל מיני וריאציות של אלגוריתם חלונות‬
‫גולשים על מנת לצמצם את מספר ההצעות‪ ,‬ואף נראה בהמשך אלגוריתמים שונים פונדמנטלית‪.‬‬
‫חיפוש סלקטיבי (‪)Selective Search‬‬
‫שיטה שמשלבת בין חיפוש ממצה ובין סגמנטציה‪ .‬זה בא לידי ביטוי על ידי שבעזרת סגמנטציה ניעזר במבנה‬
‫התמונה בשביל תהליך הדגימה שלנו‪ ,‬והחיפוש הממצה יבוא לידי ביטוי בכך שננסה לתפוס את כל מיקומי‬
‫האובייקטים בקלט‪.‬‬
‫בתכנון אלגוריתם של חיפוש סלקטיבי אנחנו מתחשבים במספר גורמים‪:‬‬
‫לתפוס את כל קני המידה – אובייקטים יכולים להופיע בקני מידה שונים בתמונת הקלט‪ ,‬בנוסף גם יש גבולות‬
‫ביניהם שהם לא כל כך ברורים‪ .‬כדי להתמודד עם בעיה זו אנחנו יכולים להשתמש באלגוריתם היררכי‪.‬‬
‫[‪ ]9‬מראה דוגמה לאלגוריתם כזה‪ ,‬ההצעה היא להשתמש באלגוריתם קיבוץ מלמטה‪-‬למעלה ( ‪Bottom-up‬‬
‫‪ )grouping‬לסגמנטציה‪ .‬אנחנו יכולים לייצר מיקומים בקני מידה שונים על ידי זה שבכל פעם נקבץ אזורים‬
‫לאזור אחד עד שכל התמונה עצמה תהפוך לאזור יחיד‪.‬‬
‫מאחר ואזורים יכולים לתת לנו יותר מידע מפיקסלים בודדים ננסה להשתמש בפיצ׳רים שמתבססים על אזור‬
‫שלם‪ ,‬וכדי למצוא את האזורים ההתחלתיים שלנו נוכל להשתמש בשיטה של [‪ .]10‬לאחר שניצור את האזורים‬
‫ההתחלתיים נשתמש באלגוריתם חמדני כדי לקבץ אזורים באיטרציות שונות‪ .‬בכל איטרציה נחשב את הדמיון‬
‫בין כל שני אזורים‪ ,‬עד כדי שנקבל מין מטריצה‪ ,‬נמזג בין שני האזורים עם הדמיון הכי גבוה לאזור אחד‪ ,‬ואז‬
‫נצטרך לעדכן את מטריצת הדמיון שלנו‪ .‬נרצה שהדמיון יתבסס על פיצ׳רים שיהיה ניתן לחלחל הלאה לאזור‬
‫הממוזג כדי לחסוך בזמן ריצה‪ ,‬כלומר כדי שלא נצטרך לחשב את כל הפיצ׳רים של האזור הממוזג מחדש על ידי‬
‫גישה ישירה אל הפיקסלים בכל פעם‪ .‬נמשיך באיטרציות אלו עד שנקבל אזור אחד‪.‬‬
‫שיטות גיוון (‪ – )Diversification Strategies‬אזורים שונים מקובצים יכולים ליצור אובייקט על ידי מגוון סיבות‪,‬‬
‫למשל צבע‪ ,‬טקסטורה או בגלל שאזור הוא ממסוגר על ידי אחרים‪ .‬גם תנאי תאורה‪ ,‬וצלליות יכולים להשפיע איך‬
‫קיבוץ אזורים יוצרים אובייקט‪ .‬נשים לב גם שלפעמים יש מצבים יותר ״בעייתיים״‪ ,‬למשל באיור (‪ )4‬אפשר‬
‫לראות שאמנם החתולים בעלי טקסטורה זהה‪ ,‬אך הצבע שלהם שונה‪ .‬או הזיקית שיש לה מצד אחד צבע זהה‬
‫לעלים‪ ,‬אך הטקסטורה שלה שונה‪ .‬במקרה של המכונית והגלגלים שלה‪ ,‬אין שום דבר זהה‪ ,‬פרט לזה שהגלגל‬
‫עטוף על ידי הפלסטיקה של המכונית‪.‬‬
‫‪8‬‬
‫איור ‪ :4‬דוגמאות לתמונות שבהם קשה לבצע סגמנטציה‪ .‬החתולים עם טקסטורה זהה אז צבע שונה‪ .‬הזיקית והעלים באותו צבע אך‬
‫הטקסטורה שלהם שונה‪ .‬למכונית ולגלגלים אין שום קשר פרט לזה הפלסטיקה של המכונית עוטפת את הגלגלים‪.‬‬
‫לכן במקום שננסה למצוא אסטרטגיה אחת שעובדת ברוב המקרים‪ ,‬ננסה למצוא מגוון שיטות כדי שנתמודד עם‬
‫כל המקרים‪:‬‬
‫‪ .1‬מרחבי צבעים (‪ – )Complementary Color spaces‬נבצע את האלגוריתם הקודם שתיארנו במגוון‬
‫מרחבי צבעים‪ .‬למשל נתייחס ל‪ ,RGB-‬עוצמת ‪ HSV ,Lab ,)grey-scale image(I‬ועוד‪.‬‬
‫לתמונות שבצבעי שחור‪-‬לבן אין כל כך השפעה ממרחבי צבעים שונים‪ ,‬שם נסתמך על השיטות‬
‫האחרות‪.‬‬
‫‪ .2‬מדדי דמיון (‪ – )Complementary Similarity Measures‬אנו יכולים לקחת מאפיינים שונים של אזורים‬
‫בתמונה ולבדוק עד כמה הם דומים‪ ]9[ ,‬משתמש במדדי דמיון של‪ :‬צבע‪ ,‬טקסטורה‪ ,‬גודל האזורים‬
‫(נרצה למזג אזורים קטנים ביחד בשלבים מוקדמים‪ ,‬זה עוזר לנו להתייחס לסדרי גודל שונים של‬
‫הצעות‪ ,‬בפועל זה מונע מאזור אחד להתמזג כל פעם עם כל האזורים האחרים ולהתייחס רק לאזורים‬
‫שכוללים אותו)‪ ,‬מילוי (‪ ,fill‬הרעיון הוא למלא ״חורים״‪ ,‬אזורים שקרובים אחד לשני‪ ,‬או עוטפים אחד את‬
‫השני)‪.‬‬
‫אחרי שנחשב את כל אחד מהמדדים בנפרד נוכל לחשב את הזהות בין האזורים על ידי נוסחה (‪:)1‬‬
‫) 𝑗𝑟 ‪(1) 𝑠(𝑟𝑖 , 𝑟𝑗 ) = 𝑎1 𝑠𝑐𝑜𝑙𝑜𝑟 (𝑟𝑖 , 𝑟𝑗 ) + 𝑎2 𝑠𝑡𝑒𝑥𝑡𝑢𝑟𝑒 (𝑟𝑖 , 𝑟𝑗 ) + 𝑎3 𝑠𝑠𝑖𝑧𝑒 (𝑟𝑖 , 𝑟𝑗 ) + 𝑎4 𝑠𝑓𝑖𝑙𝑙 (𝑟𝑖 ,‬‬
‫כאשר }‪ .𝑎𝑖 ∈ {0,1‬כלומר או שמתייחסים למדד או שלא‪ ,‬כך עושים ב‪ ,]9[-‬אך אנו יכולים גם לתת‬
‫משקלים שונים לכל 𝑖𝑎‪.‬‬
‫‪ .3‬אזורים התחלתיים (‪ – )Complementary Starting Regions‬כדי לקבל את האזורים ההתחלתיים‬
‫השתמשנו באלגוריתם של [‪ .]10‬באלגוריתם זה יש גם מדד סף שעם הערך שלו אנחנו יכולים ״לשחק״‬
‫כדי לקבל תוצאות שונות‪ .‬מה גם שניתן להשתמש באלגוריתמים אחרים במקומו‪.‬‬
‫מהיר לחישוב – המטרה של אלגוריתם חיפוש סלקטיבי הוא לייצר הצעות לאובייקטים שאחר כך נוכל להעביר‬
‫למסווג‪ ,‬אבל במקביל לא נרצה שזה יהפוך לצוואר בקבוק חישובי‪ ,‬אם אלגוריתם זה יהיה קשה מדי חישובית אז‬
‫היינו כבר יכולים להשתמש בגישות יותר פשוטות כמו חלונות גולשים (ובאמת קיימים אלגוריתמים שונים‬
‫שמסיבה זו בוחרים בו)‪ .‬ננסה להביא לידי ביטוי את המהירות החישובית אצלנו בעיקר בחישוב מדדי הדמיון‬
‫שלנו‪.‬‬
‫‪9‬‬
‫לאחר שהרצנו מספר וריאציות של האלגוריתם ההיררכי שתיארנו‪ ,‬נרצה לקחת את התוצאות של הריצות‬
‫השונות ולסנן משם כפילויות‪ ,‬במקביל גם אולי נרצה איזו שהיא שליטה על הכמות ‪ /‬איכות של התוצאה‪ ,‬לכן‬
‫נוכל ל תת מין ציון להצעות השונות‪ ,‬כפילויות יקבלו ציון גבוה יותר בגלל שההסתברות שבאמת מדובר בהצעה‬
‫טובה גודלת כאשר אסטרטגיות גיוון שונות מעידות על אותה ההצעה‪ .‬במקביל גם נרצה להוריד את הציון של‬
‫אובייקטים יחסית גדולים‪.‬‬
‫קופסאות קצוות (‪)Edge Boxes‬‬
‫איור ‪ :5‬בשורה הראשונה ניתן לראות את תמונות הקלט‪ .‬בשורה השנייה את הקצוות‪ .‬בשלישית קבוצות של הקצוות‪ .‬וברביעית דוגמה‬
‫לקופסאות תוחמות נכונים על אובייקטים‪.‬‬
‫באופן זהה לסגמנטציה ‪ ,‬קצוות מספקות ייצוג פשוט ואינפורמטיבי של תמונת הקלט‪ .‬ציורים בעזרת קווים בלבד‬
‫יכולים באופן מדויק להעביר מידע משמעותי על התמונה בעזרת חלק קטן של מידע‪ .‬השימוש בקצוות מציע‬
‫יתרונות חישוביים מאחר וניתן לחשבם בקלות‪ ,‬והתוצאה של מפת קצוות (ניתן לראות כיצד נראים באיור (‪))5‬‬
‫היא דלילה‪ .‬בעזרת מפות הקצוות נראה שאפשר לחשב הצעות לאובייקטים‪.‬‬
‫מספר קווי המתאר (‪ )contour‬שממוסגרים על ידי קופסה תוחמת מעיד על סבירות גבוהה שהקופסה מכילה‬
‫אובייקט‪ .‬נאמר שקווי המתאר ממוסגרים לחלוטין על ידי קופסה אם כל הפיקסלים של הקצה ששייכים לקווי‬
‫המתאר שוכנים בחלק הפנימי של הקופסה‪ .‬הקצוות נוטות להתאים לגבולות של האובייקט‪ ,‬ולכן כאשר‬
‫קופסאות תוחמות ממסגרות באופן צמוד קצוות יש סבירות גבוהה לכך שהקופסה מכילה אובייקט‪.‬‬
‫‪10‬‬
‫מאחר ומספר הקופסאות תוחמות האפשריים בתמונה הוא גדול‪ ,‬ניאלץ להביא לכל אחד ציון באופן יעיל‪ .‬כדי‬
‫ליצור את מפת הקצוות נוכל להשתמש באלגוריתם של [‪ ,]11‬עליו נריץ את אלגוריתם ‪Non-Maximal‬‬
‫‪ Suppression‬כדי למצוא קצוות שיא וכתוצאה נקבל מפת קצוות דלילה‪ ,‬כאשר לכל פיקסל ‪ p‬יהיה חשיבות 𝑝𝑚‬
‫ואוריינטציה 𝑝‪ .θ‬נגדיר קצוות כפיקסלים שמקיימים ‪ .𝑚𝑝 > 0.1‬ונגדיר קווי מתאר כקבוצה של קצוות שיוצרים‬
‫גבול‪ ,‬עקומה או ישר‪.‬‬
‫המטרה שלנו היא לזהות קווי מתאר שחופפים עם גבולות הקופסה התוחמת ולכן לא סביר שהם שייכים‬
‫לאובייקט שמוכל על ידי הקופסה התוחמת‪ .‬בהינתן קופסה ‪ b‬נזהה את הקצוות האלו על ידי כך שלכל פיקסל‬
‫של ‪ b‬עם ‪ 𝑚𝑝 > 0.1‬נחשב את ה‪ affinity-‬המקסימלי עם הקצה של ‪ .b‬מצרכי יעילות חישובית נקבץ קצוות‬
‫שה‪ affinity-‬שלהם גבוה ורק נחשב ‪ affinities‬בין קבוצת קצוות‪ .‬כך ניצור את קבוצות הקצוות בעזרת‬
‫אלגוריתם חמדני‪ ,‬לפי [‪ ]12‬נמזג בין ‪ 8‬קצוות מחוברים עד שהסכום של הבדלי האוריינטציה שלהם גבוה מהסף‬
‫𝜋‬
‫‪ . 2‬קבוצות קטנות נמזג עם קבוצות שכנות (ניתן לראות זאת איך זה בא לידי ביטוי בשורה השלישית)‪ .‬בהינתן‬
‫קבוצה של קבוצות של קצוות‪ ,‬נחשב את ה‪ affinity-‬בין כל זוג בהתבסס על המיקום והאוריינטציה שלהם‪ .‬אם‬
‫שני קבוצות של קצוות מופרדים על ידי יותר מ‪ 2-‬פיקסלים נאמר שה‪ affinity-‬שלהם הוא ‪.0‬‬
‫בהתבסס על קבוצות הקצוות שלנו וה‪ affinities-‬שלהם‪ ,‬נוכל לחשב ציון לכל קופסה תוחמת 𝑏‪ .‬תחילה נחשב‬
‫לכל קבוצה ‪ s‬את הסכום 𝑝𝑚 𝑠∈𝑝∑‪ .‬לכל קבוצה 𝑖𝑠נחשב את ]‪ 𝑤𝑏 (𝑠𝑖 ) ∈ [0,1‬שיציין עבורנו אם 𝑖𝑠 ממוסגר‬
‫לחלוטין ב‪ .b-‬פרטים טכניים נוספים ניתן למצוא ב‪.]12[-‬‬
‫עד כה אמרנו איך אנחנו נשתמש בקופסאות קצוות כדי לסנן קופסאות תוחמות‪ ,‬אבל לא ציינו מהיכן הם מגיעים‬
‫מלכתחילה‪ ,‬כדי להשיג אותם נשתמש באלגוריתם חלונות גולשים‪ ,‬אחר כך נשתמש באלגוריתם שהראינו כדי‬
‫להביא לכל אחד מהקופסאות ציון ונזרוק את אלה שלא עוברים את הסף‪ .‬נעדכן את התוצאות בעזרת אלגוריתם‬
‫חמדני שימקסם את הציון על ידי תזוזה של המיקום‪ ,‬קנה מידה‪ ,‬ויחס רוחב‪-‬גובה‪.‬‬
‫בעזרת המדד חיתוך מעל איחוד (‪ )Intersection over Union‬שמעיד לנו עבור כל שני הצעות עד כמה הם‬
‫חופפות‪ ,‬נוכל לסנן עוד מהקופסאות תוחמות שלנו‪ ,‬אם מדד ה‪ IoU-‬בין שני קופסאות יהיה גבוה מעל סף‬
‫מסוים‪ ,‬אז נזרוק את הקופסה עם הציון הנמוך יותר‪.‬‬
‫איור ‪ :6‬המחשה של קופסאות תוחמות אקראיות עם ממדי חיתוך מעל איחוד (‪ )IoU‬שונים‪.‬‬
‫‪11‬‬
‫רשת נוירונים מתקפלת ללוקליזציה (‪)Convolutional neural networks for Localization‬‬
‫לפני שנוכל להתחיל לדבר על הלוקליזציה שניתן להשתמש ברשת עבורה‪ ,‬תחילה נגדיר מה זה בכלל רשת‬
‫‪.)Convolutional Neural Network( CNN‬‬
‫איור ‪ :7‬ארכיטקטורה של רשת ‪ CNN‬בסיסית‪ .‬התהליך של הגלאי מתחיל מהצד השמאלי של האיור לצד הימני‪ .‬בקצה הימני ניתן‬
‫לראות את תמונות הקלט‪ .‬באופן איטרטיבי מבצעים את פעולת הקונבולוציה על הקלט כדי לחלץ פיצ׳רים למפת פיצ׳רים וביצוע פעולה‬
‫של ‪ RELU‬במקרה של האיור ואחר כך ביצוע של ‪ .pooling‬בהמשך נשטח את הפיצ׳רים שלנו‪ ,‬ניתן ציונים בשכבה המחוברת במלואה‬
‫וניתן הסתברויות להופעה עבור כל מיני מחלקות‪.‬‬
‫בגלאי ‪ ,CNN‬בשלב הראשון יש רשת נוירונים שמבצעת קונבולוציה‪ .‬פעולת הקונבולוציה מתחשבת במבנה‬
‫המרחבי וזה מתאים למידע חזותי‪ .‬אנו יכולים להסתכל על הקלט בתור איבר במרחב תלת‪-‬מימדי (כאשר לוקחים‬
‫בחשבון שכל פיקסל הוא בעצם שלישייה מסודרת של ‪ ,)RGB‬כל שכבה ב‪ CNN-‬מורכבת מפילטרים וערכים בכל‬
‫טנזור‪ .‬הרשת מעבירה את תמונת הקלט דרך הפילטרים‪ ,‬ומחזירה גם כן פלט תלת‪-‬מימדי כאשר כל תא מכיל‬
‫פלט של פילטר על בלוק של קלט כפי שניתן לראות בצד השמאלי שבאיור (‪ .)7‬גודלו של העומק של המרחב הוא‬
‫כגודלו של מספר הפילטרים‪ .‬לפלט של פעולת הקונבולוציה נקרא מפת פיצ׳רים‪ ,‬זהו ייצוג של הקלט לפי רמת‬
‫ההתאמה שלו לפילטרים‪ ,‬למעשה מה שאנחנו מנסים לעשות בתהליך זה הוא לחלץ פיצ׳רים מהקלט ולהתאים‬
‫אותם למקום המרחבי שלהם בקלט‪.‬‬
‫כפי שהיה ניתן לראות בשלב הראשון מיפינו פיצ׳רים מתת מרחב של תמונת הקלט לתא בודד‪ ,‬כעת בשלב הבא‬
‫נקטין גודל מפת הפיצ׳רים על ידי זה שנבצע מה שנקרא ‪ ,pooling‬למעשה ‪ pooling‬ייקח בלוקים של תתי‬
‫מרחבים בגודל 𝑛 × 𝑛 וימפה אותם לתא בודד‪ .‬פעולת ‪ pooling‬נפוצה היא ‪ max pooling‬שלוקחת את הערך‬
‫המקסימלי מבין התאים‪.‬‬
‫אנו יכולים להמשיך בשני שלבים אלו בכדי ליצור מפת פיצ׳רים יותר עשירה‪ ,‬הרעיון הוא להתחיל עם פיצ׳רים‬
‫מאוד בסיסיים בקלט‪ ,‬ולבנות על בסיס פיצ׳רים בסיסיים פיצ׳רים יותר מורכבים‪ .‬לדוגמה אם ננסה לסווג תמונה‬
‫של הספרה ‪ 7‬לספרה עצמה‪ ,‬ניתן בשלב הראשון לחלץ פיצ׳רים בסיסיים‪ ,‬למשל קו מאוזן וקו אלכסוני‪ ,‬ואז‬
‫בשלב השני נחבר את שני הקווים ונוכל להבין שמדובר אכן בספרה ‪.7‬‬
‫בהמשך פעולת השיטוח (‪ )flatten‬תיקח את מפת הפיצ׳רים שלנו שהוא למעשה מרחב תלת מימדי ותהפוך‬
‫אותו לחד מימדי‪ ,‬כלומר למערך‪.‬‬
‫‪12‬‬
‫השכבה המחוברת במלואה (‪ )fully connected layer‬תבצע כפל של המערך (שמייצג גם וקטור) במטריצה‬
‫שערכיה יקבעו בזמן הלמידה‪ ,‬התוצאה של כפל זה ייתן לנו ציון עבור כל מחלקה אליה אנחנו ננסה לסווג את‬
‫הקלט‪ ,‬לכן המשמעות של מטריצה זו היא שעבור הפיצ׳רים שאנחנו מחלצים ברשת‪ ,‬איזה פיצ׳רים מתאימים‬
‫לאיזה מחלקה‪ .‬הכפל למעשה יבדוק עבור כל מחלקה איזה פיצ׳רים קיימים עם איזה משקל כדי להביא ציון‬
‫לסיווג עבור מחלקה‪.‬‬
‫השכבה האחרונה‪ ,‬שכבת ה‪ softmax-‬תנרמל את ערכי הציונים מהשכבה המחוברת במלואה להסתברויות‬
‫שיגידו לנו עבור כל מחלקה מה ההסתברות שהקלט מסווג למחלקה זו‪.‬‬
‫[‪ ]14‬הראה ששכבות מסוימות של ‪ CNN‬מתנהגים כמו גלאי אובייקטים‪ ,‬למרות שלא נעשה פיקוח על מיקום‬
‫האובייקטים‪ .‬למרות היכולת היוצאת דופן של הלוקליזציה בשכבות הקונבולוציה היכולת נאבדת כאשר מחברים‬
‫אותם לבסוף לשכבה המחוברת במלואה בכדי לבצע סיווג‪.‬‬
‫מסיבות של למזער את מספר הפרמטרים בזמן שמירה על ביצועים גבוהים הוצעו רשתות חדשות שמתחמקות‬
‫משימוש בשכבה המחוברת במלואה ובמקום משתמשות ברכיב שנקרא ‪.)Global Average Pooling( GAP‬‬
‫רכיב זה משמש לנרמול של הערכים שנובעים מכל אחד ממפות הפיצ׳רים ומונע התאמת‪-‬יתר לקלט בזמן‬
‫האימון‪.‬‬
‫נמצא שאחד היתרונות של שכבת ה‪ GAP-‬הם מעבר לנרמול שציינו קודם‪ .‬למעשה על ידי כמה שינויים ברשת‬
‫ניתן לשמר את יכולות הלוקליזציה היוצאות דופן של הרשת עד השכבה האחרונה‪.‬‬
‫כפי שציינו שכבת ה‪ GAP-‬מחליף את השכבה המלאה לחלוטין ‪ ,‬הרעיון הוא לייצר מפות פיצ׳רים לכל קטגוריה‪,‬‬
‫ניקח את הממוצע של כל מפת פיצ׳רים ובמקרה שנרצה לבצע סיווג נוכל להזין ישירות את הוקטור שיתקבל‬
‫לשכבת ה‪.softmax-‬‬
‫ניתן גם להחליף את רכיב ה‪ GAP-‬ברכיב אחר שמעט דומה לו הנקרא ‪.)Global Max Pooling( GMP‬‬
‫לאחר שאנחנו מפעילים את אחד מהם אנחנו לוקחים את התוצאה ומקרינים חזרה את המשקולות של השכבה‬
‫אל מפות הפיצ׳רים שם נוכל לזהות את החשיבות של כל אזור בתמונה‪ ,‬לאזורים אלו נקרא אזורים מפלים‬
‫(‪ .)discriminative‬טכניקה זו נקראת שפעול מפות מחלקות ‪ .)Class Activation Mapping( CAM‬בהמשך‬
‫נדבר עליה לעומק ונרחיב משמעותית‪ .‬ניתן לבצע ויזואליזציה של מפות שפעול האובייקטים כדי לקבל מושג‬
‫אינטואיטיבי של תוצאת התהליך‪ ,‬דוגמה ויזואלית ניתן לראות באיור (‪:)8‬‬
‫איור ‪ :8‬תמונות קלט וויזואליזציה למפות שפעול האובייקטים שלהם‪ .‬המפות מדגישות את האזור המפלים שבתמונות שמשתמשים‬
‫בהם עבור סיווג‪ .‬לדוגמה הראש של הכלב בתמונה הכי שמאלית‪.‬‬
‫‪13‬‬
‫‪Soft Proposal‬‬
‫מדובר על רכיב שניתן להוסיף ל‪ .)Convolutional Neural Network( CNN-‬רשתות אלה נכנה ‪Soft ( SPN‬‬
‫‪ .)Proposal Networks‬גישות שמנסות לאתר את האובייקט ולסווג אותו במקביל יכולות לתת תוצאות מאוד‬
‫טובות‪ ,‬אבל לא ניתן להשתמש בהם ישירות על גלאי עם פיקוח מוחלש בזמן האימון‪ .‬לכן הרבה גישות של‬
‫גלאים עם פיקוח מוחלש משתמשים בשני שלבים‪ ,‬כאשר קודם אנחנו מנסים ליצור הצעות לאובייקטים עם‬
‫קופסאות תוחמות ואחר כך מנסים לבצע את הסיווג על כל אחד מההצעות‪ .‬לגישה המאוחדת יש כמה יתרונות‪:‬‬
‫‪ .1‬בגישה הדו‪-‬שלבית לא ניתן לבצע אופטימיזציות על שני השלבים במקביל‪.‬‬
‫‪ .2‬יצירת הצעות האובייקטים של שיטה זו מהירה יותר בסדרי גודל משיטות אחרות (למשל חיפוש‬
‫סלקטיבי או קופסאות קצוות)‪.‬‬
‫‪ .3‬יצירת הצעות האובייקטים של שיטות כמו חיפוש סלקטיבי וקופסאות קצוות משתמשות בפיצ׳רים‬
‫שנבנו ידנית ויכולות להוביל להצעות מיותרות‪ ,‬וכאן נשתמש ב‪.deep feature learning-‬‬
‫את רכיב ה‪ SP-‬ניתן להכניס לאחר כל שכבה ב‪ ,CNN-‬אך נעדיף להשים אותו לאחר השכבה האחרונה‪.‬‬
‫ה‪ SPN-‬מייצר בסופו של התהליך מה שנקרא ״מפת ההצעות״ (‪ ,)Proposal Map‬קרי 𝑁×𝑁‪ .𝑀 ∈ ℝ‬אותו‬
‫מייצרים בהתבסס על ה‪ deep features maps-‬של רשת ה‪ .CNN-‬בתהליך הלמידה לפני שמייצרים את מפת‬
‫ההצעות‪ ,‬אנו קודם כל נייצר גרף מכוון ‪ G‬עם צמתים בהתבסס על ה‪ ,deep feature maps-‬ומטריצת‬
‫‪2‬‬
‫‪2‬‬
‫שקילויות 𝑁× 𝑁‪𝐷 ∈ ℝ‬כדי לחבר בין הצמתים אותה נחשב בהתבסס זה שאזורים בתמונה מאותה קטגוריה של‬
‫אובייקט חולקים את אותם ה‪ ,deep features-‬וזה שלאזורים שכנים יש שייכות סמנטית‪ .‬הביטחון אם במקום‬
‫אובייקט יבוא לידי ביטוי על ידי מדד שוני שמשלב הבדל בין פיצ׳רים ומרחק מרחבי‪.‬‬
‫אז בתהליך הלמידה בכל פעם נייצר מפת הצעות שתדגיש אזורים עם אובייקטים פוטנציאליים‪ ,‬על ידי זה שנבנה‬
‫את ‪ M‬בעזרת הרצה של אלגוריתם ‪ ]16[ Random walk‬על ‪ .G‬ואז נפעיל שלב נוסף ( ‪Soft Proposal‬‬
‫‪ )Coupling step‬בו נבצע אגרגציה על ‪ .M‬נבצע איטרציות של תהליך זה כך בכל פעם מפת ההצעות שלנו‬
‫תהיה יותר מדויקת‪ ,‬כפי שניתן לראות באיור (‪:)8‬‬
‫איור ‪ :8‬ארכיטקטורה של רשת ‪.]15[ SPN‬‬
‫‪14‬‬
‫מבנה של גלאים עם פיקוח מוחלש‬
‫כפי שציינו קודם לכן‪ ,‬רוב האלגוריתמים של הגלאים שמפוקחים בחולשה משתייכים לאחת משני קטגוריות‪.‬‬
‫לגלאים שמפוקחים בחולשה יש מספר אתגרים עיקריים‪:‬‬
‫‪ ‬בעיית תיחום האזור המפלה (‪ – )Discriminative Region Problem‬בזמן האימון יש לנו רק תגיות‬
‫ברמת התמונה‪ ,‬ואנחנו נאלצים לגזור בעצמנו את הקופסאות התוחמות‪ .‬כאשר אנחנו מוצאים איזה‬
‫שהוא אובייקט ועושים את זה‪ ,‬לאובייקט מסוים יכול להיות כל מיני הצעות לאובייקטים שבאזור של‬
‫האובייקט היחיד הזה‪ .‬כפי שציינו בפרק הקודם‪ ,‬כאשר יש לנו הרבה הצעות אנחנו באלגוריתמים‬
‫מסוימים ניתן ציון להצעות לאובייקטים‪ ,‬וניקח את ההצעה עם הציון הגבוה ביותר‪ .‬כאשר נעשה זאת‪,‬‬
‫יותר סביר שההצעות עם הציון הגבוה ביותר לא בהכרח יתחמו את כל האובייקט‪ ,‬ויתחמו בעיקר את‬
‫החלקים המפלים שלו‪.‬‬
‫‪ ‬בעיית ההופעות המרובות (‪ – )Multiple Instance Problem‬כאשר יש לנו קטגוריה וכמה הופעות‬
‫לאובייקטים שלה בתמונה‪ ,‬קשה לנו לסווג את כל ההופעות‪ .‬חלק מהאלגוריתמים שנדון בהם גם לא‬
‫מסוגלים לזהות כמה הופעות‪ ,‬בגלל שצורת הפעולה שלהם היא שעבור קטגוריה מסוימת‪ ,‬והצעות‬
‫לקטגוריה‪ ,‬הם ייקחו רק את ההצעה עם הציון הגבוה ביותר‪.‬‬
‫‪ ‬בעיית המהירות (‪ – )Speed Problem‬ראינו כבר מספר שיטות להשיג הצעות לאובייקטים‪ ,‬הרבה‬
‫גלאים שמפוקחים בחולשה משתמשים באלגוריתמים חיפוש סלקטיבי וקופסאות קצוות כדי ליצור‬
‫מספר מצומצם אך איכותי של הצעות‪ .‬הבעיה באלגוריתמים אלו הוא זמן הריצה הגבוה שלהם‪,‬‬
‫שמשפיע על זמן הריצה של הגלאי כולו‪.‬‬
‫נביא תיאור קצר למבנה הבסיסי של כל אחד מהקטגוריות ולאחר מכן נדון בפירוט על חלק מהאלגוריתמים‬
‫השונים‪.‬‬
‫רשת מבוססת מספר הופעות (‪)MIL-based Network‬‬
‫כאשר רשת הגלאי מסוגלת לגלות מספר הופעות של אובייקטים נחשיב אותה כשייכת לקטגוריה זו‪ .‬בתמונה‬
‫יכולים להיות לנו מספר תגיות כאשר כל תגית אומרת לנו שקיים לפחות הופעה אחת של אותה קטגוריה וכל‬
‫הופעה אחרת של אובייקט היא בוודאות לא‪ .‬רשתות מבוססות מספר הופעות מסתמכות על המבנה של‬
‫האלגוריתם הראשון שהופיע מסוג זה ‪ .]18[ WSDDN‬אלגוריתם זה מורכב מ‪ 3-‬רכיבים‪:‬‬
‫‪ .1‬מחולל עצמים (‪ – )Proposal Generator‬ביצענו כבר סיקור על אלגוריתמים אלו‪ .‬האלגוריתמים‬
‫שבעיקר בשימוש עבור רשתות מבוססות מספר הופעות הם חיפוש סלקטיבי‪ ,‬קופסאות קצוות‪ ,‬וחלונות‬
‫גולשים‪.‬‬
‫‪ .2‬עמוד שדרה (‪ – )Backbone‬עקב הפיתוחים של רשתות נוירונים מתקפלות נפוצות רשתות עם ייצוגי‬
‫פיצ׳רים עבור סיווג ואתור אובייקטים‪ .‬עמוד השדרה משמש אותנו בכדי ליצור מפת פיצ׳רים עבור‬
‫הצעה לאובייקט‪.‬‬
‫‪ .3‬ראש הגלאי (‪ – )Detection Head‬כולל שני רכיבים‪ ,‬פלג סיווג שמתאים עבור הצעה ציון לכל אחת‬
‫מהמחלקות ופלג לוקליזציה שמתאים לכל הצעה את הסתברות הקיום עבור כל מחלקה‪ .‬אחר כך‬
‫סוכמים את שני הציונים לציון אחד שמייצג את רמת הביטחון של התמונה כולה‪.‬‬
‫‪15‬‬
‫סיכום התהליך‪ :‬בהינתן תמונה נזין אותה למחולל העצמים כדי לייצר הצעות לאובייקטים‪ .‬בהמשך נזין את‬
‫ההצעות לעמוד השדרה כדי לייצר מפות פיצ׳רים עבור כל הצעה‪ .‬אחר כך נזין את ההצעות ביחד עם מפות‬
‫הפיצ׳רים לרכיב שנקרא ‪ )Spatial Pyramid Pooling( SPA‬שתפקידו להתאים את יחס הרוחב‪-‬גובה של‬
‫ההצעות כך שיהיו שווים‪ .‬לבסוף נזין את כל ההצעות לראש הגלאי כדי לסווג ולמקם את האובייקטים‪.‬‬
‫רשת מבוססת מפות שפעול מחלקות (‪)CAM-based Network‬‬
‫כאשר רשת הגלאי מסוגלת לחזות רק הופעה אחת של אובייקט בתמונה נוכל להתייחס לזה כבעיית לוקליזציה‪.‬‬
‫רשתות אלו מבוססות על המבנה של אלגוריתם ‪ ]13[ CAM‬שתיארנו חלק גדול ממנו בסוף הפרק הקודם‪ .‬גלאי‬
‫זה מורכב משלושה רכיבים עיקריים‪:‬‬
‫‪ .1‬עמוד שדרה – זהה למבנה כמו אצל רשתות מבוססות מספר הופעות‪ ,‬מטרתו ליצור מפות פיצ׳רים‬
‫מתמונת קלט‪.‬‬
‫‪ .2‬מסווג – כשמו מסווג את המחלקות שנמצאות בתמונה‪ .‬כולל את שכבת ה‪ GAP-‬ואת השכבה‬
‫המחוברת במלואה‪.‬‬
‫‪ .3‬מפת שפעול מחלקות – אחראית על אתור הופעות האובייקטים בתמונה‪ .‬עברנו על אופן הפעולה שלה‬
‫בפרק הקודם‪ .‬היא מדגישה את האזורים המפלים של המחלקה במפת השפעול ואז קל לנו לייצר‬
‫קופסאות תוחמות מסביב להופעה של מחלקה על ידי סגמנטציה של מפת השפעול של המחלקה‪.‬‬
‫סיכום התהליך‪ :‬בהינתן תמונה נזין אותה אל עמוד השדרה כדי לייצר מפות פיצ׳רים‪ .‬אחרי זה נעביר את מפות‬
‫הפיצ׳רים למסווג כדי לסווג איזה מחלקות נמצאות בתמונה‪ .‬בנוסף נבצע כפל מטריצות על משקלי השכבה‬
‫המחוברת במלואה עם מפת הפיצ׳רים של שכבת הקונבולוציה האחרונה כדי לייצר את מפת שפעול המחלקות‪.‬‬
‫לבסוף נבצע סגמנטציה על מפת שפעול המחלקות של המחלקה עם ההסתברות הגבוהה ביותר כדי ליצור‬
‫קופסאות תוחמות בשביל לאתר את הופעת המחלקה‪.‬‬
‫איור ‪ :9‬ארכיטקטורה של רשת מבוססת מפות שפעול מחלקות‪.‬‬
‫‪16‬‬
‫השוואה בין הגישות‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫רשת מבוססת מספר הצעות משתמשת בחלונות גולשים‪ ,‬חיפוש סלקטיבי וקופסאות קצוות כדי לבצע‬
‫לוקליזציה‪ .‬מנגד רשת מבוססת מפות שפעול מחלקות משתמשת במפות שפעול מחלקות כפי שראינו‪.‬‬
‫האלגוריתמים של רשת מבוססת מספר הצעות מייצרים הרבה הצעות לאובייקטים התחלתיים‬
‫בהשוואה לרשת מבוססת מפות שפעול מחלקות ולכן היא יותר טובה כאשר אנחנו רוצים לאתר מספר‬
‫הופעות עבור אותה קטגוריה‪.‬‬
‫האלגוריתמים לייצור הצעות של רשת מבוססת מספר הצעות לוקחים יותר זמן‪ ,‬ומסיבה זו גם‬
‫האלגוריתמים של גישה זו כולה יותר איטיים‪.‬‬
‫יחסי הרוחב‪-‬גובה של הצעות האובייקטים של רשת מבוססת מספר הצעות הם לא בהכרח עקביים‬
‫ושווים‪ ,‬ולכן שם נשתמש בשכבת ה‪ SPP-‬כדי לייצר וקטורים בגודל קבוע ואז נזין אותם לשכבה‬
‫המחוברת במלואה‪ .‬רשת מבוססת מפות שפעול מחלקות במקום משתמשת ברכיב ה‪.GAP-‬‬
‫שני הגישות עדיין סובלות מבעיות האזור המפלה ובעיית ההצעות המרובות עליהם נרחיב בהמשך המאמר‪.‬‬
‫אתגרים ופתרונות‬
‫בעיית האזור המפלה‬
‫בעיית האזור המפלה היא בעיה שקורה עקב זה שהגלאי לוקח את ההצעות לאובייקטים עם הציון הכי גבוה‪ ,‬אך‬
‫אזורים אלה לא בהכרח מתמקדים באובייקט כולו‪ ,‬אלה רק בחלקים קטנים ממנו שבעיקר משמשים לסיווג‪.‬‬
‫בעיה זו משפיעה על הדיוק של הגלאי שלנו‪.‬‬
‫מידול הקשר‬
‫ה הקשר של אזור מכיל מידע אותו אנחנו יכולים להשיג אם אנחנו נמסך את מפות הפיצ׳רים‪ .‬כדי לעשות זאת‪,‬‬
‫נראה שני גישות‪:‬‬
‫‪ .1‬הגישה הראשונה בוחרת שני אזורים שלהם יש פער גדול בציונים‪ .‬כלומר עבור שני אזורים‪ ,‬כאשר יש‬
‫אזור חיצוני שמכיל את האזור השני הוא האזור הפנימי‪ ,‬אם יש ביניהם פער גדול בציון נוכל להבין‬
‫שהאזור הפנימי לא מתמקד באזור מפלה וככל הנראה מכיל אובייקט שלם‪.‬‬
‫אלגוריתם ‪ ]19[ WSLPDA‬תחילה מחליף את הערך של הפיקסלים בהצעה מסוימת עם אפס כדי‬
‫למצוא את אזור ההקשר‪ .‬אחר כך הוא משווה את הציונים של ההצעות ואזור ההקשר שלהם‪ ,‬אם הפער‬
‫הוא גדול מספיק זה מעיד על כך שההצעה הפנימית היא ככל הנראה חיובית‪.‬‬
‫‪ .2‬גישה זו משתמשת בהפסד של אזורי ההקשר כדי למצוא הצעות‪.‬‬
‫‪ ]20[ OAILWSD‬בודק אם ממסכים את מפות הפיצ׳רים של אזורי ההקשר האם זה משפיע על הביטחון‬
‫של ההצעה‪ .‬במידה וכן אז על פי אלגוריתם זה ככל הנראה שההצעה לא מכסה לחלוטין את האובייקט‪.‬‬
‫האלגוריתם ‪ ]21[ ICMWSD‬משתמש בווריאנט של טכניקה הנקראת ‪ .DropBlock‬שיטה זו היא‬
‫‪17‬‬
‫מונעת‪-‬מידע ובעלת פרמטרים‪ ,‬שממסכת את האזורים הכי מפלים של מפות הפיצ׳רים ואחר כך‬
‫ממקסמת את ה‪ loss-‬של מפות הפיצ׳רים של ההקשר‪ .‬זה מכריח את הגלאי להסתכל גם באזורים‬
‫שבהקשר של האובייקט‪ .‬טכניקה זו משפרת ביצועים בעיקר עבור אובייקטים עם קטגוריה שאינה‬
‫נוקשה‪ ,‬בהם לרוב יש הבדלים גדולים עבור אובייקטים באותה המחלקה‪.‬‬
‫אלגוריתם אימון‪-‬עצמי‬
‫באלגוריתם אימון עצמי‪ ,‬ההופעות שמגלים בשלב מוקדם משמשים אחר כך את הגלאי בשביל המשך האימון‬
‫בתור פסאודו הצעות (הצעות שהם נכונות לכאורה)‪ .‬הרעיון של אימון עצמי הוא שגם אם ההצעות עם הציונים‬
‫הכי גבוהים מתמקדים על האזורים המפלים‪ ,‬אנחנו נבצע כמה פרוצדורות כדי לשפר את ההצעות‪.‬‬
‫קיימים שני סוגים של אלגוריתמים לאימון‪-‬עצמי‪:‬‬
‫‪ .1‬אימון‪-‬עצמי בין‪-‬פלגים – התחיל באלגוריתם ‪ ]22[ OICR‬בו הרבה אלגוריתמים משתמשים בתור בסיס‪.‬‬
‫והוא משתמש ב‪ ]18[ WSDDN-‬בתור בסיס אך מוסיף לו שלוש פרוצדורות מעדנות מסווג‪ .‬כל מעדן‬
‫מסווג מכיל שני שכבות מלאות במלואן‪ ,‬ונועד כדי לקדם את ציוני המחלקות עבור כל הצעה‪ .‬הפלט של‬
‫כל פרוצדורה משמשת בתור פיקוח עבור הפרוצדורה הבאה כך שאזורים גדולים יותר יכולים לקבל ציון‬
‫גבוה יותר‪.‬‬
‫נתאר את האלגוריתם בפירוט‪ ,‬נגדיר‪:‬‬
‫𝐶 – מספר המחלקות בתמונה‬
‫|𝑅| – מספר ההצעות לאובייקטים‬
‫}𝐾 ‪ k – 𝑘 ∈ {1,2, … ,‬מייצג את העידון ה‪ .k-‬כאשר ‪ K‬מייצג את מספר העידונים הכולל‬
‫𝑘𝑅𝑗𝑥 – וקטור הציונים עבור ההצעה ה‪ j-‬בעידון ה‪ .k-‬מממד ‪ ,𝐶 + 1‬בגלל שיש ציון עבור כל מחלקה‪,‬‬
‫והממד האחרון הוא בשביל הרקע‪ ,‬כלומר אין הופעה של אובייקט מאחת המחלקות 𝐶‪.‬‬
‫𝑇‬
‫𝑘‬
‫𝑘‬
‫𝑘‬
‫𝑗‪ – 𝑌𝑗𝑘 = [𝑦1‬וקטור תוויות עבור ההצעה ה‪ j-‬בעידון ה‪.k-‬‬
‫𝑗‪, 𝑦2‬‬
‫𝑗)‪, … , 𝑦(𝐶+1‬‬
‫‪] ∈ ℝ(𝐶+1)×1‬‬
‫יש כל מיני שיטות להשיג את התגיות של עידון לפי העידון הקודם‪ .‬השיטה שנציג מסתמכת על זה‬
‫שהצעות עם מרחבים שהם מאוד חופפים צריכים להיות עם אותם התגית‪.‬‬
‫עבור תמונה עם תגית ‪ ,c‬נבחר את ההצעה לאובייקט ‪ 𝑗𝑐𝑘−1‬עם הציון הכי גבוה עבור העידון ה‪𝑘 − 1-‬‬
‫𝑘‬
‫𝑗𝑐𝑦 ו‪ 𝑦 𝑘′𝑗𝑘−1 = 0-‬לכל‬
‫על פי משוואה (‪ ,)2‬ניתן להצעה זו את התגית ‪ ,c‬או במילים אחרות‪𝑘−1 = 1 :‬‬
‫𝑐‬
‫𝑐 𝑐‬
‫‪.𝑐 ′ ≠ c‬‬
‫)‪𝑅(𝑘−1‬‬
‫𝑟𝑐𝑥 ‪(2) 𝑗𝑐𝑘−1 = 𝑎𝑟𝑔 max‬‬
‫𝑟‬
‫מאחר ולהצעות אובייקטים שונות תמיד יש חפיפה‪ ,‬והצעות עם חפיפה גבוהה צריכות להשתייך לאותה‬
‫המחלקה‪ ,‬אנחנו יכולים לתייג את ההצעה ‪ 𝑗𝑐𝑘−1‬וההצעות השכנות שלה למחלקה ‪ c‬עבור העידון ה‪.k-‬‬
‫כלומר אם להצעה ‪ j‬יש חפיפה גבוהה עם הצעה ‪ 𝑗𝑐𝑘−1‬אנחנו יכולים לתייג את הצעה ‪ j‬למחלקה ‪c‬‬
‫𝑘‬
‫𝑘‬
‫𝑗)‪ .)𝑦(𝐶+1‬נוכל לדעת האם יש חפיפה גדולה למשל‬
‫𝑗𝑐𝑦)‪ ,‬אחרת נתייג את הצעה ‪ j‬כרקע (‪= 1‬‬
‫(‪= 1‬‬
‫בעזרת המדד חיתוך מעל איחוד (‪ ,)IoU‬כלומר אם המדד יעבור איזה שהוא רף‪ .‬אם אין אובייקט‬
‫‪18‬‬
‫𝑘‬
‫𝑗𝑐𝑦 לכל ‪.j‬‬
‫ממחלקה ‪ c‬בתמונה אז נבצע השמה ‪= 0‬‬
‫בעזרת הפיקוח שהצגנו נוכל לעדן את המסווג בהתבסס על פונקציית ההפסד במשוואה (‪ .)3‬על ידי‬
‫שימוש מרובה של עידון‪ ,‬הגלאי יוכל לגלות חלקים גדולים יותר של אובייקטים באופן הדרגתי‪.‬‬
‫‪|𝑅| 𝐶+1‬‬
‫‪1‬‬
‫𝑘‬
‫𝑘𝑅‬
‫‪=−‬‬
‫𝑟𝑐𝑦 ∑ ∑‬
‫𝑟𝑐𝑥 ‪log‬‬
‫|𝑅|‬
‫𝑟𝑘𝐿‬
‫)‪(3‬‬
‫‪𝑟=1 𝑐=1‬‬
‫למעשה הפיקוח שנרכש עבור עידון המסווג הוא מאוד רועש‪ ,‬במיוחד בהתחלה של האימון שמביא‬
‫תוצאות לא יציבות‪ .‬כדי לפתור בעיה זו נשנה את פונקציית ההפסד כך שתהיה ממושקלת‪ .‬נראה זאת‬
‫במשוואה (‪.)4‬‬
‫‪|𝑅| 𝐶+1‬‬
‫‪1‬‬
‫𝑘‬
‫𝑘𝑅‬
‫‪=−‬‬
‫𝑟𝑐𝑦 𝑘𝑟𝑤 ∑ ∑‬
‫𝑟𝑐𝑥 ‪log‬‬
‫|𝑅|‬
‫𝑟𝑘𝐿‬
‫)‪(4‬‬
‫‪𝑟=1 𝑐=1‬‬
‫𝑘𝑅‬
‫𝑗𝑐𝑥 = ‪ .𝑤𝑟𝑘+1‬הסיבה לבחירה זו היא בגלל שבתחילת האימון 𝑘𝑟𝑤 הוא נמוך‪,‬‬
‫נקבע את המשקל כך‪𝑘 :‬‬
‫𝑐‬
‫ולכן ההפסד הוא גם כן נמוך‪ .‬כתוצאה מזה הביצועים של הרשת לא ירדו הרבה למרות שהופעות‬
‫חיוביות לא יימצאו‪ .‬במקביל בזמן האימון הרשת תוכל להשיג הופעות חיוביות עם ציונים גבוהים בקלות‬
‫עבור מקרים קלים‪ ,‬והמקרים החיוביים האלו הם תמיד עם משקל גבוה‪ .‬במקרים הקשים המשקל יהיה‬
‫נמוך והם בדרך כלל גם רועשים ובהם המסווג המעודן לא יסטה מהפתרון הנכון הרבה עקב המשקל‬
‫הנמוך‪.‬‬
‫‪ .2‬אימון‪-‬עצמי בין‪-‬עידנים – בשיטה זו נשתמש בגלאי אותו נאמן על הצעות שונות לאובייקט בתמונת‬
‫הקלט‪ ,‬בכל עידן ‪ /‬איטרציה נבחר דוגמית חיובית‪ ,‬ונבדוק את השיפור היחסי של הציון בין כל איטרציה‬
‫של הגלאי אותו אנחנו מאמנים עם חפיפה מעל רף מסוים עם הדוגמית החיובית מהעידן הקודם‪.‬‬
‫בשיטה זו משתמש אלגוריתם ‪ .]23[ Self-Taught-WS‬שיטה זו משתמשת בשיפור יחסי של הציונים‬
‫של כל הצעה בין שני עידנים סמוכים‪ .‬הוא בוחר את ההצעות של העידן הקודם שבהם מדד החיתוך‬
‫מעל איחוד (‪ )IoU‬הוא גדול שווה לחצי עם ההצעה עם השיפור היחסי המקסימלי של העידן הנוכחי‪.‬‬
‫נתאר את האלגוריתם של [‪ ]23‬בפירוט‪:‬‬
‫על תחילת האלגוריתם לא נפרט לפרטים בשלב זה‪ ,‬אנחנו נראה תיאור מפורט של חלק זה כאשר נדבר‬
‫על הבעיה הבאה (הופעות מרובות של מחלקה)‪ .‬אך המטרה של שלב זה הוא ליצור הצעות התחלתיות‬
‫איכותיות‪ ,‬נקרא להם דגימת הזרע החיובי‪ ,‬והם ישמשו אותנו לאימון הגלאי בהמשך‪.‬‬
‫אחרי שהשגנו את דגימת הזרע החיובי‪ ,‬נחפש דגימות זרע חיובי איכותיות יותר על ידי שימוש בגלאי‬
‫‪ .CNN‬את הגלאי נאמן על ההצעות שלהם יש לפחות חיתוך מעל איחוד של יותר מחצי עם דגימת הזרע‬
‫החיובי של העידן הקודם‪ .‬מאחר ויש סיכון שהצעות ראשונות לא טובות יגרמו לגלאי להילכד‬
‫באופטימום מקומי נבחר את הדוגמיות החיוביות בהתבסס על מדד השיפור היחסי של ציוני הרשת‬
‫במקום בציון הכולל של הגלאי בכל איטרציה‪ .‬נגדיר‪:‬‬
‫𝑖𝑡𝐴 – הציון מהגלאי עבור ההצעה ה‪ 𝑖 -‬בעידן ה‪. 𝑡-‬‬
‫‪19‬‬
‫‪ – 𝐵𝑖𝑡+1‬הציון מהגלאי עבור ההצעה ה‪ 𝑖 -‬בעידן ה‪. 𝑡 + 1-‬‬
‫∗‬
‫‪ - 𝑃𝑡+1‬ההצעה עם השיפור היחסי המקסימלי עבור העידן ה‪.𝑡 + 1-‬‬
‫∗‬
‫‪(5) 𝑃𝑡+1‬‬
‫) 𝑖𝑡𝐴 ‪= 𝑎𝑟𝑔 max(𝐵𝑖𝑡+1 −‬‬
‫𝑖‬
‫נדרג את ‪ N‬ההצעות בסדר יורד על פי מדד השיפור היחסי עבור העידן הקודם‪ .‬ההצעה עם השיפור‬
‫היחסי המקסימלי תיבחר להיות הדוגמית החיובית עבור העידן הנוכחי‪ .‬את החישוב ניתן לראות‬
‫במשוואה (‪.)5‬‬
‫ציון גבוה של הצעה יכול להיגרם על ידי התאמת יתר למודל עבור ההצעה או שיפור הביצועים של גלאי‬
‫ה‪ . CNN-‬נרצה להפריד בין שני המקרים (כי הראשון לא רצוי)‪ .‬דוגמיות לא טובות בקושי משיגות שיפור‬
‫יחסי משיפור הביצועים של הגלאי בזמן האימון‪ .‬מנגד דוגמיות חיוביות ואיכותיות שלא נבחרו כזרעים‬
‫בדרך כלל מרוויחות שיפור יחסי משיפור הביצועים של הגלאי למודל ולכן שיפור יחסי הוא מדד אמין‬
‫לזיהוי דוגמיות חיוביות ואיכותיות‪ .‬התרשים הבא מראה דוגמאות אינטואיטיביות כדי להצדיק את‬
‫ההבחנה הזאת‪.‬‬
‫איור ‪ :10‬דוגמאות לתמונות וגרפים שעבור כל תמונה ניתן לראות את הציר שלה בגרף‪ .‬ציר ה‪ x-‬מסמל את העידן‪ ,‬וציר ה‪y-‬‬
‫מסמל את התוצאה שהמסווג הביא לתמונה זו עבור אותו עידן‪ .‬סימן ה‪-‬״‪-‬״ ו‪-‬״‪+‬״ נועדו כדי לתאר את הציון של התמונה‬
‫שניתנה על ידי המסווג לפני ואחרי האימון של המסווג על התמונה באותו עידן בהתאמה‪.‬‬
‫בדוגמה (‪ )a‬הציון של ההצעה ההתחלתית השגויה משתפרת בעידנים הראשונים בעיקר מהתאמת‪-‬‬
‫יתר של המודל להצעה זו ובקושי יכול לעלות בזמן אימון על תמונות אחרות כמו בעידנים שאחר כך‪.‬‬
‫הציון של ההצעה האיכותית (דוגמה ‪ )1‬עולה בעיקר בזמן האימון על תמונות אחרות‪ .‬הציון של ההצעה‬
‫הפחות איכותית (דוגמה ‪ )2‬שמכילה הרבה הקשר משתפר בזמן שהמודל משתפר בעידנים המוקדמים‪,‬‬
‫אך דועך בעידנים מאורחים יותר כשרשת ה‪ CNN-‬מפלה יותר בין מחלקת המטרה ובין הרקע‪.‬‬
‫בדוגמה (‪ )b‬לציון של הצעת האימון עם האיכות הנמוכה יש שיפור כאשר מתאמנים על תמונות אחרות‬
‫בעידנים מוקדמים‪ ,‬באופן זהה גם דוגמה ‪ ,2‬אך הם יכולים לקבל שיפור רק מהתאמת‪-‬יתר של המודל‬
‫בעידנים מאוחרים יותר‪.‬‬
‫‪20‬‬
‫רשת שרשרת‬
‫ברשת שרשרת יש לנו מספר שלבים כאשר הפלט של כל שלב הוא הקלט של השלב הבא לו‪ .‬דוגמאות‬
‫לאלגוריתמים שמשתמשים בגישה זו הם ‪ ]24[ WCCN‬ו‪ ]25[ TS2C-‬בהם יש שלושה שלבים‪ ,‬נתאר את שלבים‬
‫אלו‪:‬‬
‫‪ .1‬בשלב הראשון נייצר מפות שפעול מחלקות‪ ,‬תהליך זה כבר הדגמנו במאמר קודם לכן‪.‬‬
‫‪ .2‬בשלב זה נבצע סגמנטציה על האובייקטים כאשר המטרה תהיה לשפר את ההצעות מהשלב הקודם‪.‬‬
‫כדי לעשות זאת‪ ,‬אנחנו יכולים לעשות זאת במספר דרכים‪ ,‬ובפועל אלגוריתמים שונים שמשתמשים‬
‫בטכניקה זו משתמשים באלגוריתמים שונים של סגמנטציה ללא פיקוח‪.‬‬
‫בסוף תהליך זה נקבל קופסאות תוחמות שיהוו הצעות לאובייקטים לשלב הבא‪.‬‬
‫‪ .3‬ניקח את הקופסאות התוחמות מהשלב הקודם ונעביר אותם לרשת מבוססת מספר הופעות‪ ,‬רק‬
‫שהפעם נוכל להעביר לרשת זו כבר את ההצעות מהשלב הקודם במקום שנמצא את ההצעות כמו‬
‫האלגוריתמים שהכרנו עד כה‪.‬‬
‫נסיגת קופסה תוחמת‬
‫אלגוריתם זה יכול לשפר את הביצועים של הלוקליזציה של אובייקטים בעזרת אנוטציות של התמונה ברמת‬
‫ההופעה כמו שיש לגלאים שבהם באימון יש פיקוח מלא‪ .‬אבל בפיקוח בצורה חלושה יש לנו רק גישה לתוויות‬
‫ברמת התמונה‪ .‬באופן כללי יש בו הרבה שימוש כדי לשפר את ההצעות שאנחנו מקבלים מהאלגוריתמים‬
‫חיפוש סלקטיבי או קופסאות קצוות‪ .‬כדי שנוכל להשתמש באלגוריתם זה‪ ,‬יש שיטות שונות שבהם מנסים‬
‫להפיק פסאודו קופסאות תוחמות באיכות גבוהה כדי לבצע פיקוח לנסיגת קופסאות תוחמות‪.‬‬
‫אלגוריתמים שונים משתמשים בשיטות שונות כדי לייצר את הפסאודו קופסאות תוחמות‪ .‬אך ניתן לשייך את‬
‫השיטות השונות לאחת משני קטגוריות‪:‬‬
‫‪ .1‬שימוש במעדנים אחרים – שיטות שונות משתמשות במעדנים אחרים תחילה‪ ,‬כמו למשל באימון עצמי‬
‫בין‪-‬פלגים של אלגוריתם ה‪ OICR-‬שהצגנו קודם לכן‪ .‬אחרי שהם יוצרים קופסאות תוחמות על סט‬
‫האימון שבו תחילה היו רק תוויות ברמת התמונה‪ ,‬הם מאמנים ‪ Fast-RCNN‬על סט האימון החדש‬
‫שהפעם הוא עם פיקוח מלא‪ ,‬כלומר במעבר השני יש לנו קופסאות תוחמות‪ ,‬ה‪ Fast-RCNN-‬שמאמנים‬
‫במעבר השני משתמש בנסיגת קופסה תוחמת‪.‬‬
‫‪ .2‬שיטות אימון‪-‬עצמי – נבצע איטרציות שונות כך שבכל איטרציה יהיו לנו שכבת סיווג ושכבת רגרסיה‪.‬‬
‫ונבצע להם אופטימיזציה במקביל‪ .‬עבור כל אזור אם הוא יחסית חופף לאחד הפסאודו קופסאות נייצר‬
‫לו מטרת רגרסיה על ידי שימוש בקואורדינטות של הפסאודו קופסה‪ .‬בכל איטרציה נחשב מחדש את‬
‫הפסאודו קופסאות החדשות‪.‬‬
‫הסרת אזור מפלה‬
‫נמצא שהאזורים עם הציון הכי גבוה מכסים רק את האזור הכי מפלה של האובייקט‪ .‬כדי לבצע לוקליזציה על‬
‫האובייקט כולו‪ ,‬שיטות שונות ממסכות את האזור עם הניקוד הכי גבוה‪ ,‬שהוא על פי החשד שלנו מכסה רק את‬
‫האזור הכי מפלה‪ ,‬ואז מבצעות מעבר נוסף‪ ,‬זאת על מנת למצוא את האזור הכי מפלה הבא‪ .‬אלגוריתמים שונים‬
‫‪21‬‬
‫משתמשים בווריאציות שונות כדי לממש את התהליך הזה‪ ,‬נעבור על כמה מהם‪.‬‬
‫איור ‪ :11‬הארכיטקטורה של אלגוריתם ‪ .]26[ TP-WSL‬ניתן לראות מצד ימין למעלה בתמונה את המסכת הדיכוי שיוצרים על ידי‬
‫המעבר ברשת הראשונה‪ ,‬והזנתו עם החץ הכחול לרשת השנייה‪.‬‬
‫נתאר את המימוש של אלגוריתם ‪ .]26[ TP-WSL‬את הארכיטקטורה שלו ניתן לראות באיור (‪ .)11‬אלגוריתם זה‬
‫משתמש ב‪ ]13[ CAM-‬בתור ה‪ baseline-‬שלו אותו כבר תיארנו‪ ,‬זאת על מנת לייצר את מפת שפעול המחלקות‬
‫הראשונה‪ .‬כעת נרצה למנוע ברשת השנייה שלנו מאותם נוירונים שפעלו ברשת הראשונה לפעול גם כן‪ .‬כדי‬
‫לעשות זאת נייצר ״מסכת דיכוי״ כדי לחסום את האזורים המודגשים הראשונים בזמן האימון‪ .‬הרשת הראשונה‬
‫מייצרת מפות שפעול מחלקות כמספר המחלקות אליהם אנחנו יכולים לסווג‪ ,‬נבחר רק את המפות שרלוונטיות‬
‫עבור תווית מסוימת בתמונה‪ .‬עבור כל אחת מהם ניצור מפה חדשה‪ ,‬בה נציב ‪ 0‬בערכים שעוברים לפחות ‪60%‬‬
‫מהערך המקסימלי במפה המקורית‪ ,‬אחרת נציב ‪ .1‬אם יש לנו מספר קטגוריות אז ניצור לבסוף מפה אחת‬
‫בעזרת מפות המיסוך על ידי ביצוע פעולה של ‪ AND‬על כל הערכים של מפות המיסוך‪ .‬כלומר במפה הסופית‬
‫יהיה לנו ‪ 1‬ערך אם בכל המפות הופיע אחד‪ ,‬אחרת יופיע ‪.0‬‬
‫בשכבות הראשונות של הרשת השנייה אנחנו לא נשפיע‪ ,‬אך באמצע הרשת אנחנו נבצע כפל של מפת המיסוך‬
‫שיצרנו בעזרת הרשת הראשונה בפלט שבאמצע שכבות הקונבולוציה של הרשת השנייה‪ .‬כאשר עושים‬
‫עדכונים לרשת נתעלם מהפיקסלים שמיסכנו בעזרת המפה‪ .‬כך הרשת השנייה תוכל להתאמן‪ ,‬אך בניגוד‬
‫לרשת הראשונה היא תתאמן על הפיצ׳רים שלא היו הכי מפלים שמצאנו ברשת הראשונה‪ .‬ניתן להמשיך‬
‫ולעשות מעברים כאלה נוספים אך מניסוי וטעייה נמצא ששני חזרות הביאו לתוצאות הטובות ביותר‪.‬‬
‫בסוף הרשת השנייה יהיו לנו שני מפות שפעול מחלקות שמתמקדות על אזורים שונים בתמונה‪ ,‬עלינו לחבר‬
‫אותם‪ ,‬נשתמש בטכניקה הנקראת ״מפת הצבעה ממושקלת״‪ .‬מיישמים טכניקה זו על ידי כך שעבור מחלקה‬
‫מסוימת ‪ ,‬נכפיל את מפת שפעול המחלקות בהסתברות שהרשת שיצרה את המפה נותנת עבור אותה מחלקה‪.‬‬
‫נעשה זאת עבור שני המפות שלנו ושני הרשתות‪ .‬וניצור מפה חדשה בה כל ערך יהיה המקסימום בין שני‬
‫הערכים התואמים שקיבלנו‪ .‬ניתן לראות זאת במשוואה (‪:)6‬‬
‫𝑐‬
‫𝑐‬
‫𝑐‬
‫𝑐‬
‫𝑡𝑠‪(6) 𝐻𝑢𝑐 = 𝑚𝑎𝑥(𝑝1‬‬
‫𝑢‪∙ 𝐻1𝑠𝑡,‬‬
‫𝑑𝑛‪, 𝑝2‬‬
‫𝑢‪∙ 𝐻2𝑛𝑑,‬‬
‫)‬
‫‪22‬‬
‫איור ‪ :12‬ארכיטקטורה של ‪ .]27[ ACoL‬תמונת הקלט מעובדת על ידי העמוד שדקה כדי לחלץ מפות פיצ׳רים (אך ברמה ״אמצעית״)‬
‫שמוזנים אל שני מסווגים‪ ,‬לשני המסווגים יש עוד רמות של קונבולוציה שאחריהם שכבת ‪ GAP‬ו‪ softmax-‬כדי לייצר מפות שפעול‬
‫מחלקות‪ .‬בנוסף מפת שפעול המחלקות של המסווג הראשון נועדה כדי למסך חלק ממפת הפיצ׳רים של המסווג השני‪ .‬לבסוף שני‬
‫המפות מאוחדות למפה אחת בשביל לוקליזציה‪.‬‬
‫האלגוריתם ‪ ]27[ ACoL‬משתמש בשיטה דומה לשל ‪ TP-WSL‬שזה עתה הראנו‪ ,‬ההבדלים הם של‪ ACoL-‬יש‬
‫עמוד שדרה יחיד (כלומר יש לו רשת אחת) ושני מסווגים‪ .‬מפת הפיצ׳רים הממוסכת מהמסווג הראשון מוזנת‬
‫למסווג השני כדי לייצר מפות שפעול מחלקות‪ .‬את הארכיטקטורה שלו ניתן לראות באיור (‪ .)12‬את מפת שפעול‬
‫המחלקות הסופית נקבל על ידי זה שעבור כל ערך ניקח את הערך המקסימלי שלו בין שני התאים התואמים לו‬
‫במפות שפעול המחלקות של שני המסווגים‪.‬‬
‫שימוש בפיצ׳רים ברמה נמוכה‬
‫פיצ׳רים ברמה נמוכה מכילים מידע עשיר על פרטי האובייקט‪ ,‬כמו קצוות‪ ,‬פינות‪ ,‬צבעים‪ ,‬פיקסלים וכו'‪ .‬אנו‬
‫יכולים לשפר את הדיוק של הלוקליזציה של הגלאי אם נשתמש בהם‪.‬‬
‫למשל אלגוריתם ‪ ]28[ WSOD2‬בהתחלה מחשב את הציון של כל אזור‪ ,‬הוא משתמש ב‪ OICR-‬שכבר דיברנו‬
‫עליו בתור ה‪ baseline-‬שלנו‪ ,‬כפי שראינו ב‪ OICR-‬מבצע עידון על ידי אימון‪-‬עצמי בין‪-‬פלגים‪ .‬האלגוריתם‬
‫‪ WSOD2‬מוסיף עוד גורם לחישוב הציון בשלבי העידון‪ ,‬וגורם זה הוא כמובן התחשבות בפיצ׳רים ברמה נמוכה‪,‬‬
‫הציון הסופי הוא שילוב של שניהם‪.‬‬
‫‪𝑡ℎ‬‬
‫כמו ב‪ ,OICR-‬נבנה ‪ K‬מסווגים מעל הפיצ׳רים שחילצנו באזור‪ ,‬הפלט של המסווג ה‪ 𝑘 -‬ישמש בתור הפיקוח‬
‫עבור המסווג ה‪ (𝑘 + 1)𝑡ℎ -‬ובנוסף ישתמש בפיצ׳רים ברמה נמוכה‪ .‬כל מסווג ממומש על ידי שכבה מלאה‬
‫במלואה‪ ,‬ושכבת ‪ softmax‬מעל ‪ 𝐶 + 1‬קטגוריות ‪ /‬מחלקות כאשר הרקע מתייחס למחלקה ה‪ .0-‬עבור המסווג‬
‫ה‪ 𝑘 𝑡ℎ -‬נגדיר את פונקציית הפסד העידון במשוואה (‪ )7‬כאשר‪:‬‬
‫‪23‬‬
‫‪1‬‬
‫)) 𝑘𝑟̂𝑝 ‪∑(𝑤𝑟𝑘 ∙ 𝐶𝐸(𝑝𝑟𝑘 ,‬‬
‫|𝑅|‬
‫‪(7) 𝐿𝑟𝑟𝑒𝑓 = −‬‬
‫𝑅∈𝑟‬
‫|𝑅| – מספר ההצעות שקיבלנו מהשימוש בחיפוש סלקטיבי להצעות בתחילת האלגוריתם‪.‬‬
‫𝑘𝑟𝑝 – וקטור הסתברויות לשייכות למחלקה עבור ‪ 𝐶 + 1‬המחלקות בהצעה ה‪𝑟-‬‬
‫𝑘𝑟̂𝑝 – וקטור שמייצג את התווית ה‪ ground truth-‬עבור כל מחלקה בהצעה ה‪ ,𝑟-‬מאחר ויש רק אחת כזו אז יש‬
‫בו בכל מקום אפסים פרט למקום אחד‬
‫) 𝑘𝑟𝑝(𝑔𝑜𝑙 𝑘𝑟̂𝑝 ‪ – 𝐶𝐸(𝑝𝑟𝑘 , 𝑝̂𝑟𝑘 ) = − ∑𝐶𝑐=0‬פונקציית אנטרופיה סטנדרטית‬
‫אנחנו משימים את 𝑘𝑟𝑤 שזה משקל ההפסד באופן מקוון‪ .‬לפי משוואה (‪ ,)8‬כאשר‪:‬‬
‫)‪(8) 𝑤𝑟𝑘 = αObu (r) + (1 − α)Oktd (r‬‬
‫𝑘‬
‫)𝑟(‬
‫𝑑𝑡𝑂 – הביטחון למחלקות עבור ההצעה ה‪ 𝑟-‬על פי המסווג ה‪.𝑘 𝑡ℎ -‬‬
‫𝑘‬
‫)𝑟(‬
‫𝑢𝑏𝑂 – באלגוריתם זה בעיקר שמים דגש על סופר‪-‬פיקסלים מפושקים‪ .‬אך בנוסף מתייחסים גם ל‪Multi--‬‬
‫‪ ,scale Saliency‬ניגודיות צבע‪ ,‬ודחיסות קצוות‪.‬‬
‫𝑘‬
‫𝑘‬
‫‪ – α‬גורם ההשפעה שנועד כדי לאזן את ההשפעה בין )𝑟( 𝑑𝑡𝑂 ו‪ .𝑂𝑏𝑢 (𝑟)-‬אותו ניתן לחשב על ידי פונקציות‬
‫דעיכה שמשתנה עבור כל איטרציה‪.‬‬
‫מכניזם סגמנטציה‪-‬איתור שיתופי‬
‫מכניזם זה כולל ענף איתור וענף סגמנטציה‪ .‬הסיבות העיקריות למכניזם המשותף הם‪:‬‬
‫‪ .1‬רשת מבוססת מספר הופעות יכולה להבחין באופן נכון האם אזור מסוים כולל אובייקט‪ ,‬אך היא לא‬
‫טובה בלהבין אם האזור כולל את האובייקט כולו‪ ,‬או רק את חלק מפלה‪.‬‬
‫‪ .2‬סגמנטציה יכולה לכסות אובייקט שלם‪ ,‬אבל היא לא יכולה להבדיל האם האזור הוא אובייקט אמיתי או‬
‫לא‪.‬‬
‫לכן חלק מהמודלים מנצלים שיתוף פעולה בין האיתור ובין הסגמנטציה על ידי פיקוח של אחד על השני כדי‬
‫להשיג לוקליזציה מדויקת‪.‬‬
‫המרה מפיקוח מוחלש לפיקוח מלא‬
‫להמיר מודל של פיקוח מוחלש לפיקוח מלא זו טכניקה פופולרית כדי להשתמש בתמונות שיש בהם רק תוויות‬
‫ברמת התמונה‪ ,‬לקחת את הפלט של המודל המוחלש‪ ,‬ולהזין אותו למודל עם הפיקוח המלא שיוכל לקבל בסט‬
‫האימון שלו תמונות שיש בהן קופסאות תוחמות עם אנוטציות‪ .‬האתגר העיקרי בטכניקה זו היא להשיג פסאודו‬
‫קופסאות איכותיים מהמודל המוחלש‪.‬‬
‫אנחנו לא תמיד נבחר את כל הקופסאות והתוצאות שנקבל מהמודל המוחלש‪ ,‬בגלל שאין לנו שם אחוזי הצלחה‬
‫של ‪ , 100%‬לכן נרצה לבחור את הקופסאות התוחמות האיכותיים ביותר כדי לאמן את המודל המפוקח‪ .‬יש כמה‬
‫אסטרטגיות לבחור את הפסאודו קופסאות התוחמות‪:‬‬
‫‪24‬‬
‫‪ .1‬ציון גבוה – נבחר את רק התוצאות עם הציונים הכי טובים‪ ,‬או ציונים שעוברים רף מסוים כדי לאמן את‬
‫המודל המפוקח‪.‬‬
‫‪ .2‬שיפור יחסי – אלגוריתם ‪ ]23[ ST-WSL‬שקודם דיברנו על טכניקת הלמידה‪-‬עצמית בין‪-‬עידנים שלו‬
‫בוחר את הקופסאות עם השיפור היחסי המקסימלי בין שני עידנים עוקבים בתור הפסאודו קופסאות‪.‬‬
‫‪ .3‬מיזוג קופסאות – אלגוריתם ‪ ]29[ W2F‬ממזג מספר קופסאות קטנות לסט של קופסאות גדולות יותר‬
‫ומשתמש בקופסאות הממוזגות בתור הפסאודו קופסאות לאימון בהמשך‪.‬‬
‫אלגוריתם ‪ ]30[ SLV‬ממזג את הציונים של מספר קופסאות כך שהוא מיעד לכל פיקסל ציון‪ ,‬ואחר כך‬
‫הוא מייצר קופסאות תוחמות לכל מחלקה על ידי שימוש בטכניקה שבה הציונים של פיקסלים צריכים‬
‫לעבור איזה שהוא סף בעת ביצוע הסגמנטציה‪.‬‬
‫אחרי שמייצרים את הפסאודו קופסאות התוחמות‪ ,‬האלגוריתמים נוטים להשתמש באלגוריתמים מוכרים עם‬
‫פיקוח מלא כמו ‪ ,Faster R-CNN ,Fast R-CNN‬ו‪.SSD-‬‬
‫בעיית הופעות מרובות‬
‫כאשר יש יותר מהופעה אחת עבור אחת המחלקות בתמונה‪ ,‬אלגוריתמים עם פיקוח מוחלש לא בהכרח מוצאים‬
‫את כל ההופעות של האובייקט‪ ,‬וחלקם גם לא מסוגלים למצוא יותר מהופעה אחת‪ .‬למשל אלגוריתמים [‪ ]18‬ו‪-‬‬
‫[‪ ]22‬שמקבלים הרבה הצעות ממחולל ההצעות בסופו של התהליך נותנים ציון עבור כל אחת מההצעות‪ ,‬אבל‬
‫הצורה שבה הם פועלים בסוף היא שהם בוחרים את ההצעה עבור הקטגוריה עם הציון הגבוה ביותר‪ ,‬ואז הם‬
‫תמיד יהיו מוגבלים לסיווג של הופעה אחת עבור מחלקה מסוימת‪.‬‬
‫בסעיף זה נציג שיטות שבהם ננצל את הקשר המרחבי של הצעות כדי לפתור את בעיית ההופעות המרובות‪.‬‬
‫באופן כללי‪ ,‬עבור שני הצעות שהם רחוקות אחת מהשנייה במרחב‪ ,‬יש יותר סיכוי שהם שייכים לשני הופעות‬
‫שונות של אובייקטים‪ .‬וכאשר יש לשני הצעות חפיפה יחסית גדולה יש יותר סיכוי שמדובר באותו הופעה של‬
‫אובייקט‪.‬‬
‫האלגוריתם ‪ ]23[ ST-WSL‬מנצל גרף כדי לאתר מספר הופעות של אותה הקטגוריה‪ .‬בהתחלה הוא ינסה לזהות‬
‫הצעות עם סבירות גבוהה למחלקות מסוימות בהינתן רק תוויות ברמת התמונה‪ .‬נאמן מודל ‪ CNN‬שעובד לפי‬
‫השיטה ‪ ]31[ HCP‬כדי לכרות הצעות‪.‬‬
‫ניקח את 𝑁 ההצעות עם ההסתברות הכי גבוהה להשתייך למחלקת היעד בתור מועמדים להצעות בטוחות‪.‬‬
‫ההסתברות הגבוהה להשתייך למחלקה לא מבטיחה כיסוי מרחבי צמוד של האובייקט כולו‪ .‬בגלל שיש נטייה‬
‫להצעות עם ההסתברות הכי גבוהה להתמקד באזורים המפלים‪ ,‬והרבה מההצעות גם יכולות להיות עם חפיפה‬
‫מאוד גדולה כפי שניתן לראות באיור (‪:)13‬‬
‫‪25‬‬
‫איור ‪ :13‬ניתן לראות את ‪ 10‬ההצעות הכי גבוהות עבור המחלקה של פרה‪ .‬ההצעות הגבוהות יכולות להכיל הקשר או רק חלקים‬
‫מפלים של האובייקט‪ .‬עם זאת ההצעות בעיקר מתמקדות על אותו מרחב והוא הופעת האובייקט‪.‬‬
‫ננסה לפתור את הבעיה על ידי המרה של ההצעות והחפיפות לגרף כאשר הבעיה תהיה למצוא תת גרף צפוף‪.‬‬
‫כלומר ננסה לבחור את ההצעות שלהם יש הכי הרבה הצעות חופפות‪ .‬נגדיר את הגרף )𝐸 ‪ 𝐺 = (𝑉,‬להיות גרף‬
‫לא מכוון ולא ממושקל‪ ,‬כל צומת תתאים לאחד מ‪ 𝑁-‬ההצעות ובין כל שני צמתים נמתח קשת אם למדד האיחוד‬
‫מעל חיתוך של שני ההצעות שמתאימות לשני הצמתים האלו עולה מעל רף מסוים שמוגדר מראש‪ .‬ניתן לראות‬
‫דוגמה ויזואלית לגרף כזה באיור (‪.)14‬‬
‫איור ‪ :14‬הדגמה של הגרף שבונה אלגוריתם ‪ .]23[ ST-WSL‬המסווג מנסה למצוא את התוכי‪ .‬ניתן לראות בגרף את ‪ 10‬ההצעות עם‬
‫הציון הכי גבוה‪ .‬בין כל שני צמתים ‪ /‬תמונות יש לנו קשת אם מדד החיתוך מעל איחוד גדול או שווה ל‪ .0.5-‬התמונות שממסוגרות‬
‫בצבע אדום הם אלו שיבחרו על ידי האלגוריתם החמדני שלנו‪.‬‬
‫נשתמש באלגוריתם חמדני כדי למצוא תת גרפים צפופים של הגרף המקורי‪ .‬נבחר באופן איטרטיבי את הצומת‬
‫עם הדרגה הכי גבוהה (כלומר הצומת שמייצגת הצעה שלה יש חפיפה גבוהה עם הכי הרבה הצעות) ונגזום‬
‫אותה‪ ,‬ואת כל הצמתים השכנים שלה מהגרף‪ .‬נמשיך בתהליך זה עד שיישאר בגרף פחות צמתים מרף מוגדר‬
‫מראש‪ .‬כל אחד מהתת גרפים שנקבל בתהליך זה אמור לייצג לנו הופעה שונה של אובייקט‪.‬‬
‫‪26‬‬
‫אלגוריתם ‪ ]32[ PCL‬משתמש בפתרון שהוא קורא לו ״אשכול הצעות״‪ .‬מחולל ההצעות של רשת מבוססת‬
‫הופעות מרובות משתמשת באלגוריתמים כמו חיפוש סלקטיבי וקופסאות קצוות שנותנים הרבה הצעות סביב‬
‫אותו אובייקט או חלקים מהאובייקט עם חפיפה יחסית גבוהה‪ .‬אנחנו נרצה לקבץ את ההצעות האלה לאשכולות‬
‫על פי האובייקט אותו אנחנו מנסים לסווג ולמקם ועל פי המיקום המרחבי של ההצעות בתמונה‪ .‬לכל אחד‬
‫מהאשכולות נרצה לחפש את המרכז של האשכול‪.‬‬
‫בגלאים עם פיקוח מוחלש יותר קשה לייצר אשכולות הצעות בגלל שאין לנו קופסאות תוחמות ‪.ground-truth‬‬
‫לכן ננסה למצוא את האשכולות כך‪ :‬תחילה נייצר מרכזי אשכולות הצעות מההצעות עם הציון סיווג הגבוה‬
‫ביותר בזמן האימון בגלל שהצעות אלו תמיד מצליחים לגלות לפחות חלק מהאובייקט‪ .‬אחר כך נייצר את‬
‫האשכולות כולם על ידי שנקבץ למרכז האשכול את ההצעות שלהם יש חפיפה מרחבית‪.‬‬
‫עכשיו הבעיה שנותרה היא כיצד לבחור הצעות כמרכזים בגלל שהרבה הצעות עם ציון גבוה יכולות להשתייך‬
‫לאותו האובייקט‪ .‬הצורה הפשוטה היא לבחור הצעה עם הציון הכי גבוה לכל מחלקה שיש לה תווית בתמונה‪.‬‬
‫אך שיטה זו מתעלמת מהעובדה שיכולים להיות יותר מהופעה אחת של אובייקט מאותה קטגוריה בתמונה‪ .‬לכן‬
‫נשתמש בשיטה ש תיעזר בגרף כדי למצוא את מרכזי האשכולות‪ .‬נבנה גרף של ההצעות הכי טובות על פי‬
‫הדמיון המרחבי של כל מחלקה שמופיעה בתמונה‪ .‬בגרף נמתח קשת בין שני הצעות אם יש להם חפיפה‬
‫מרחבית גבוהה מספיק‪ .‬אחר כך באופן חמדני נבחר את ההצעות עם הכי הרבה קשרים כדי להעריך את‬
‫המרכזים‪ .‬עם זאת שמרכז אשכול יכול להכיל רק חלק מהאובייקט‪ ,‬ההצעות השוכנות לו יכולות לכסות את‬
‫האובייקט כולו או במקרה הגרוע חלקים גדולים ממנו‪.‬‬
‫אלגוריתם זה קיבל השראה מאלגוריתם ‪ ]22[ OICR‬שמשתמש בלמידה‪-‬עצמית‪ ,‬ולכן בהמשך האלגוריתם‬
‫נשתמש בלמידה‪-‬עצמית ובכל איטרציה נייצר את אשכולות ההצעות מחדש‪.‬‬
‫אלגוריתם ‪ ]29[ W2F‬מציע שיטה שהוא קורא לה ‪ .)Pseudo ground-truth excavation( PGE‬לפני שהוא‬
‫משתמש בשיטה זו בתחילת האלגוריתם הוא קודם כל משתמש בתור בסיס ב‪ ]18[ WSDDN-‬עם שיטת האימון‬
‫העצמי של ‪ ]22[ OICR‬כדי לייצר את הפסאודו קופסאות התוחמות‪ .‬השיטה כוללת ‪ 3‬רכיבים‪:‬‬
‫‪ .1‬בשלב הראשון נסנן מכל ההצעות את ההצעות שהציון שלהם לא עובר איזה שהוא רף שאותו אנו‬
‫מגדירים מראש כפי שניתן לראות במעבר ‪ b1‬באיור (‪ .)15‬המטרה של זה היא להשאיר את הקופסאות‬
‫שמתמקדות על האזורים המפלים של האובייקטים ואת הקופסאות התוחמות הצמודות שלהן יש ציון‬
‫פחות גבוה‪.‬‬
‫‪ .2‬מכיוון שהקופסאות התוחמות שמתמקדות על האזורים המפלים בדרך כלל מוקפות על ידי הקופסאות‬
‫הגדולות והצמודות עם הציון היותר גבוה נמחק את הקופסאות הקטנות המוקפות האלו כמו שניתן‬
‫לראות במעבר ‪ b2‬באיור (‪.)15‬‬
‫כדי לעשות זאת נשתמש באלגוריתם איטרטיבי‪ .‬תחילה נבחר את הקופסה התוחמת הכי גדולה‪ ,‬נמחק‬
‫את הקופסאות הקטנות שהם מוקפות לחלוטין על ידי הקופסה הגדולה ונשאיר את הקופסה הגדולה‪.‬‬
‫אחר כך נמשיך לקופסה השנייה הכי גדולה וכו׳‪.‬‬
‫‪ .3‬לפעמים לא קיימת קופסה צמודה לאובייקט לפני תחילת שיטה זו‪ .‬כדי לשפר את הביצועים של השיטה‬
‫ננסה ליצור קופסה צמודה מהקופסאות הגדולות לא מספיק שיש בסוף שלב ‪ .2‬נעבור על הקופסאות‬
‫מהקופסה הגדולה ביותר ועבור כל שני קופסאות אם מדד החיתוך מעל איחוד שלהם עולה מעל רף‬
‫מוגדר מראש מסוים אז נמזג את שני הקופסאות לקופסה אחת יותר גדולה‪.‬‬
‫‪27‬‬
‫בסוף התהליך כל הקופסאות הגדולות שנותרו מבחינת האלגוריתם יהיו חיוביות‪ ,‬כלומר יהוו הופעה של‬
‫האובייקט‪.‬‬
‫איור ‪ :15‬תיאור של שיטת ‪ .PGE‬במעבר ‪ b1‬נייצר הצעות ונסנן מהם את ההצעות שהציון שלהם לא עולה מעל רף מסוים‪ .‬במעבר ‪b2‬‬
‫נסנן את הקופסאות התוחמות שממוסגרות לחלוטין על ידי קופסה גדולה יותר‪ .‬ובמעבר ‪ b3‬נמזג את הקופסאות התוחמות שמדד‬
‫החיתוך מעל איחוד שלהם עולה מעל רף‪ .‬לבסוף נקבל את הצעות של אובייקטים מרובים מאותה קטגוריה באותה התמונה‪.‬‬
‫בעיית המהירות‬
‫בבעיית המהירות הכוונה היא לזמן ריצת המסווגים‪ .‬האיטיות של מסווגים בפיקוח מוחלש בא לידי ביטוי בעיקר‬
‫ברשתות מבוססות מספר הופעות שבהם הרבה מהאלגוריתמים משתמשים בחיפוש סלקטיבי וקופסאות קצוות‬
‫כדי לייצר מספר גדול של הצעות התחלתיות שרובם הם שליליות‪.‬‬
‫ניתן להכניס ל‪ 3-‬קטגוריות עיקריות את השיטות לשיפור המהירות של הגלאים‪:‬‬
‫‪ .1‬שיטות מבוססות טרנספורמציה – ראינו כבר אלגוריתמים כאלה ודיברנו עליהם‪ ,‬אלגוריתמים שבהם‬
‫אנחנו מייצרים בהם פסאודו קופסאות תוחמות ‪ ground-truth‬ואז מאמנים בעזרת אנוטציות אלו‬
‫שאנחנו יוצרים על התמונות מודלים אחרים שבהם משתמשים בפיקוח מלא כמו ‪,Fast R-CNN‬‬
‫‪ Faster R-CNN‬ו‪.SSD-‬‬
‫‪ .2‬שימוש בחלונות גולשים – בגישות אלה נוכל לייצר המון הצעות התחלתיות במהירות‪.‬‬
‫‪ .3‬מפות חום – דיברנו כבר בהרחבה על שיטות אלו‪ ,‬בהם אנחנו משתמשים במפות שפעול מחלקות כדי‬
‫לייצר מפות חום‪ ,‬בגישות אלה נבצע סגמנטציה על מפות החום כאשר ניעזר בסף כדי לייצר הצעות‬
‫בצורה מהירה‪.‬‬
‫‪28‬‬
‫סיכום‬
‫במאמר זה דיברנו על שלל נושאים בסיסיים של גלאי אובייקטים בעיקר מודרניים ודיברנו רק על מודלים‬
‫שמשתמשים בלמידה עמוקה‪ ,‬ובפרט ברשתות נוירונים גולשות שבהן השיטות הטובות ביותר משנת ‪2012‬‬
‫משתמשות בהן‪ .‬לא התמקדנו ודיברנו על המודלים הכי מדוברים הם המודלים שמאומנים בעזרת נתונים שבהם‬
‫יש לנו אנוטציות ברמת ההופעה‪ ,‬אלא משמעותית התמקדנו במודלים עם פיקוח מוחלש בהם יש לנו רק‬
‫אנוטציות ברמת התמונה‪ ,‬כלומר תוויות שמעידות על הופעה של קטגוריה בתמונה ללא ידע היכן נמצאת‬
‫ההופעה‪.‬‬
‫בתחילת המאמר הגדרנו את בעיית המודלים שבהם יש פיקוח מוחלש בזמן האימון‪ ,‬קיבלנו מוטיבציה‬
‫לאפליקציות השונות בהם משתמשים בגלאים באופן כללי‪ ,‬ראינו את ההבדלים בין הפיקוח המלא והמוחלש‪ ,‬עם‬
‫זאת שלמודלים עם הפיקוח המוחלש עדיין יש פערים מבחינת הביצועים שלהם בהשוואה למודלים עם הפיקוח‬
‫המלא עדיין יש לנו הרבה מוטיבציה להשתמש בהם‪ ,‬בעיקר בגלל הקושי הרב להשיג נתונים שבהם ניתן‬
‫להשתמש במודלים עם הפיקוח המלא והעובדה שיותר קל לנו להשיג נתונים עבור המודלים עם הפיקוח‬
‫המוחלש‪.‬‬
‫הקושי הכי גדול של המודלים עם הפיקוח המוחלש הוא להשיג הצעות איכותיות ולבחור בתור ההופעות של‬
‫האובייקט את אלו שמתקדמות על האובייקט כולו ולא רק על האזורים המפלים‪ .‬ולכן נתנו הרבה תשומת לב‬
‫למחוללי האובייקטים של השיטות השונות שהם גורם משמעותי במודלים עם הפיקוח במוחלש‪ .‬סקרנו את‬
‫השיטות של הרשתות מבוססת מספר הופעות הם בעיקר חלונות גולשים‪ ,‬חיפוש סלקטיבי‪ ,‬וקופסאות קצוות‪.‬‬
‫אחר כך ביססנו את המבנה של רשת נוירונים מתקפלת וראינו איך רכיב ה‪ GAP-‬עוזר לנו לייצר את מפת שפעול‬
‫המחלקות שאמנם מתמקדת בעיקר על אזורים מפלים‪ ,‬אך היא מהווה כלי עוצמתי ללוקליזציה כאשר משלבים‬
‫אותה עם שיטות אחרות‪.‬‬
‫חילקנו את הרשתות השונות לשני קטגוריות עיקריות‪ ,‬רשתות מבוססות מספר הופעות ורשתות מבוססות‬
‫מפות שפעול מחלקות‪ ,‬ראינו את המבנה של כל אחד מהם ואת ההבדלים ביניהם‪.‬‬
‫הצגנו את הבעיות השונות של המודלים עם הפיקוח המוחלש‪ ,‬הרחבנו משמעותית על בעיית האזור המפלה‬
‫שבה המודל מצליח למצוא ולסווג את האובייקט בתמונת הקלט‪ ,‬אך הוא מתקשה ליצור קופסה תוחמת‬
‫שתופסת את האובייקט כולו ולא מתמקדת רק על חלקים שלו שבעיקר משמשים את המסווג‪ .‬ראינו גם את‬
‫בעיית מספר ההופעות שהם קשה למסווגים למצוא כמה הופעות של אותה קטגוריה בתמונה‪ ,‬ואת בעיית‬
‫המהירות שבאה לידי ביטוי בעיקר ברשתות מבוססות מספר הופעות בהם לרוב משתמשים בחיפוש סלקטיבי‬
‫וקופסאות קצוות שלוקחים זמן רב‪ .‬ראינו הרבה מאוד פתרונות שכל מיני אלגוריתמים שונים מציעים לבעיות‬
‫אלו‪ ,‬כפי שראינו הרבה אלגוריתמים גם לוקחים פתרונות של אלגוריתמים קודמים ומשפרים אותם‪.‬‬
‫למרות פערי הביצועים בין הגלאים עם הפיקוח המלא לבין הגלאים עם הפיקוח המוחלש עדיין יש הרבה מאוד‬
‫מוטיבציה לשפר את המודלים עם הפיקוח המוחלש וזה בעיקר בגלל שלפעמים לא ניתן להשיג מידע או לא ניתן‬
‫להשיג מספיק מידע כדי גלאים עם פיקוח מלא וזו הסיבה העיקרית שהגלאים עם הפיקוח המוחלש מקבלים‬
‫תשומת לב רבה מחוקרים‬
‫‪29‬‬
‫מקורות‬
[1]
Shao, Feifei, et al. "Deep Learning for Weakly-Supervised Object Detection and Object Localization: A
Survey." arXiv preprint arXiv:2105.12694 (2021).
[2]
Zhang, Dingwen, et al. "Weakly Supervised Object Localization and Detection: A Survey." IEEE transactions
on pattern analysis and machine intelligence (2021).
[3]
[4]
Zou, Zhengxia, et al. "Object detection in 20 years: A survey." arXiv preprint arXiv:1905.05055 (2019).
[5]
Viola, Paul, and Michael Jones. "Rapid object detection using a boosted cascade of simple
features." Proceedings of the 2001 IEEE computer society conference on computer vision and pattern
recognition. CVPR 2001. Vol. 1. Ieee, 2001.
[6]
Hafiz, Abdul Mueed, and Ghulam Mohiuddin Bhat. "A survey on instance segmentation: state of the
art." International journal of multimedia information retrieval (2020): 1-19.
[7]
[8]
Thoma, Martin. "A survey of semantic segmentation." arXiv preprint arXiv:1602.06541 (2016).
[9]
Uijlings, Jasper RR, et al. "Selective search for object recognition." International journal of computer
vision 104.2 (2013): 154-171.
Kulkarni, Chaitanya R., and Ashwini B. Barbadekar. "Text detection and recognition: a
review." International Research Journal of Engineering and Technology (IRJET) 4.6 (2017): 179-185.
Zhang, Hui, Jason E. Fritts, and Sally A. Goldman. "Image segmentation evaluation: A survey of
unsupervised methods." computer vision and image understanding 110.2 (2008): 260-280.
[10] Felzenszwalb, Pedro F., and Daniel P. Huttenlocher. "Efficient graph-based image
segmentation." International journal of computer vision 59.2 (2004): 167-181.
[11] Dollár, Piotr, and C. Lawrence Zitnick. "Fast edge detection using structured forests." IEEE transactions on
pattern analysis and machine intelligence 37.8 (2014): 1558-1570.
[12] Zitnick, C. Lawrence, and Piotr Dollár. "Edge boxes: Locating object proposals from edges." European
conference on computer vision. Springer, Cham, 2014.
[13] Zhou, Bolei, et al. "Learning deep features for discriminative localization." Proceedings of the IEEE
[14]
[15]
conference on computer vision and pattern recognition. 2016.
Zhou, Bolei, et al. "Object detectors emerge in deep scene cnns." arXiv preprint arXiv:1412.6856 (2014).
Zhu, Yi, et al. "Soft proposal networks for weakly supervised object localization." Proceedings of the IEEE
International Conference on Computer Vision. 2017.
[16] Lovász, László. "Random walks on graphs." Combinatorics, Paul erdos is eighty 2.1-46 (1993): 4.
[17] Lin, Min, Qiang Chen, and Shuicheng Yan. "Network in network." arXiv preprint arXiv:1312.4400 (2013).
[18] Bilen, Hakan, and Andrea Vedaldi. "Weakly supervised deep detection networks." Proceedings of the IEEE
Conference on Computer Vision and Pattern Recognition. 2016.
[19] Li, Dong, et al. "Weakly supervised object localization with progressive domain adaptation." Proceedings
of the IEEE Conference on Computer Vision and Pattern Recognition. 2016.
[20] Kosugi, Satoshi, Toshihiko Yamasaki, and Kiyoharu Aizawa. "Object-aware instance labeling for weakly
[21]
supervised object detection." Proceedings of the IEEE/CVF International Conference on Computer Vision.
2019.
Ren, Zhongzheng, et al. "Instance-aware, context-focused, and memory-efficient weakly supervised object
detection." Proceedings of the IEEE/CVF conference on computer vision and pattern recognition. 2020.
30
[22] Tang, Peng, et al. "Multiple instance detection network with online instance classifier
refinement." Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2017.
[23] Jie, Zequn, et al. "Deep self-taught learning for weakly supervised object localization." Proceedings of the
IEEE Conference on Computer Vision and Pattern Recognition. 2017.
[24] Diba, Ali, et al. "Weakly supervised cascaded convolutional networks." Proceedings of the IEEE conference
on computer vision and pattern recognition. 2017.
[25] Wei, Yunchao, et al. "Ts2c: Tight box mining with surrounding segmentation context for weakly supervised
object detection." Proceedings of the European Conference on Computer Vision (ECCV). 2018.
[26] Kim, Dahun, et al. "Two-phase learning for weakly supervised object localization." Proceedings of the IEEE
international conference on computer vision. 2017.
[27] Zhang, Xiaolin, et al. "Adversarial complementary learning for weakly supervised object
localization." Proceedings of the IEEE conference on computer vision and pattern recognition. 2018.
[28] Zeng, Zhaoyang, et al. "Wsod2: Learning bottom-up and top-down objectness distillation for weaklysupervised object detection." Proceedings of the IEEE/CVF International Conference on Computer Vision.
2019.
[29] Zhang, Yongqiang, et al. "W2f: A weakly-supervised to fully-supervised framework for object
detection." Proceedings of the IEEE conference on computer vision and pattern recognition. 2018.
[30] Chen, Ze, et al. "Slv: Spatial likelihood voting for weakly supervised object detection." Proceedings of the
IEEE/CVF Conference on Computer Vision and Pattern Recognition. 2020.
[31] Wei, Yunchao, et al. "HCP: A flexible CNN framework for multi-label image classification." IEEE
[32]
transactions on pattern analysis and machine intelligence 38.9 (2015): 1901-1907.
Tang, Peng, et al. "Pcl: Proposal cluster learning for weakly supervised object detection." IEEE transactions
on pattern analysis and machine intelligence 42.1 (2018): 176-191.
31
Download