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 conference on computer vision and pattern recognition. 2016. [14] Zhou, Bolei, et al. "Object detectors emerge in deep scene cnns." arXiv preprint arXiv:1412.6856 (2014). [15] 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