מדריך 2021 לפילוח סמנטי

צומת המקור: 872271

מבוא

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

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

מקור http://cs224d.stanford.edu/index.html

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

מה זה פילוח תמונה

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

Source http://cs231n.stanford.edu/slides/2017/cs231n_2017_lecture11.pdf
  1. פילוח סמנטי : - פילוח סמנטי הוא תהליך הסיווג של כל פיקסל השייך לתווית מסוימת. זה לא שונה במקרים שונים של אותו אובייקט. לדוגמא אם ישנם 2 חתולים בתמונה, פילוח סמנטי נותן תווית זהה לכל הפיקסלים של שני החתולים
  2. פילוח מקרים : - פילוח מופע שונה מפילוח סמנטי במובן זה שהוא נותן תווית ייחודית לכל מופע של אובייקט מסוים בתמונה. כפי שניתן לראות בתמונה מעל לכל 3 הכלבים מוקצים צבעים שונים כלומר תוויות שונות. עם פילוח סמנטי לכולם היה מוקצה אותו צבע.

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

מקרי שימוש של פילוח תמונות

זיהוי כתב יד : - ג'ונג'ו וכולם הדגימו כיצד משתמשים בפילוח סמנטי להוצאת מילים ושורות ממסמכים בכתב יד בתוכם מאמר מחקר משנת 2019 לזהות דמויות בכתב יד

מָקוֹר

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

מקור: - https://ai.googleblog.com/2018/03/mobile-real-time-video-segmentation.html

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

מקור: - https://ai.googleblog.com/2018/03/mobile-real-time-video-segmentation.html

איפור וירטואלי : - מריחת שפתון וירטואלי אפשרית כעת בעזרת פילוח תמונות

מקור: - https://www.theverge.com/2017/3/16/14946086/sephora-virtual-assistant-ios-app-update-ar-makeup

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

מקור: - https://arxiv.org/pdf/1807.07688.pdf

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

מקור: - https://github.com/paucarre/tiefvision

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

מקור: - https://medium.com/intro-to-artificial-intelligence/semantic-segmentation-udaitys-self-driving-car-engineer-nanodegree-c01eb6eaf9d

Nanonets מסייעת לחברות הון 500 לאפשר חוויות לקוחות טובות יותר בקנה מידה באמצעות פילוח סמנטי.

שיטות וטכניקות

לפני הופעת הלמידה העמוקה, נעשה שימוש בטכניקות של למידת מכונות קלאסיות כמו SVM, Random Forest, Cl-Clustering בכדי לפתור את בעיית פילוח התמונות. אך כמו ברוב הצהרות הבעיות הקשורות לתמונות, למידה עמוקה עבדה בצורה מקיפה יותר מהטכניקות הקיימות והפכה לנורמה כעת כאשר אנו מתמודדים עם פילוח סמנטי. בואו נסקור את הטכניקות המשמשות לפתרון הבעיה

רשת קונבנציונאלית לחלוטין

הארכיטקטורה הכללית של רשת CNN מורכבת ממעט שכבות פיתול ואגירה ואחריה מעט שכבות מחוברות בקצה. העיתון של רשת ה- Convolutional Network שפורסם בשנת 2014 טוען כי ניתן לחשוב על השכבה הסופית המחוברת במלואה כמי שעושה פיתול של 1 × 1 המכסה את כל האזור.

מקור: - https://arxiv.org/abs/1411.4038

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

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

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

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

מקור: - https://arxiv.org/abs/1411.4038

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

כדי לטפל בבעיה זו, העיתון הציע שני ארכיטקטורות אחרות FCN-2, FCN-16. ב- FCN-8 נעשה שימוש במידע משכבת ​​המאגר הקודמת יחד עם מפת התכונות הסופית, וכעת כעת משימת הרשת היא ללמוד דגימת 16x למעלה, וזה טוב יותר בהשוואה ל- FCN-16. FCN-32 מנסה לעשות את זה אפילו טוב יותר על ידי הכללת מידע משכבת ​​איגום קודמת אחת נוספת.

בטל

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

מקור: - https://arxiv.org/abs/1505.04597

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

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

DeepLab

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

1) התפתלויות טרוניות
2) איגום פירמידי מרחבי
3) שימוש בשדות אקראיים מותנים לשיפור התפוקה הסופית
בואו נדבר על כל אלה

קונבולוציה אטרית

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

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

Source:- https://www.mdpi.com/1424-8220/19/24/5361/htm

פיתול מורחב פועל על ידי הגדלת גודל המסנן על ידי הוספת אפסים (הנקראים חורים) כדי למלא את הפער בין הפרמטרים. מספר החורים / אפסים הממולאים בין פרמטרי הסינון נקרא על ידי קצב התרחבות. כאשר השיעור שווה ל -1 אין זה אלא קונבולציה רגילה. כאשר קצב שווה ל -2 מוכנס אפס אחד בין כל פרמטר אחר מה שהופך את המסנן להיראות כמו פיתול של 5 × 5. עכשיו יש לו את היכולת להשיג את ההקשר של 5 × 5 פיתול תוך פרמטרים של 3 × 3 פיתול. באופן דומה בקצב 3 השדה הקולט הולך ל 7 × 7.

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

ASPP

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

מקור: - http://kaiminghe.com/eccv14sppnet/index.html

באמצעות מודול SPP הרשת מייצרת 3 יציאות במידות 1 × 1 (כלומר GAP), 2 × 2 ו -4 × 4. ערכים אלה משורשרים על ידי המרה לווקטור 1d ובכך לוכד מידע בקנה מידה מרובה. יתרון נוסף בשימוש ב- SPP הוא שתמונות קלט בכל גודל ניתן לספק.

ASPP לוקח את הרעיון של מיזוג מידע מאזניים שונים ומיישם אותו על התפתלות Atrous. הקלט מורכב בקצבי התרחבות שונים והתפוקות של אלה התמזגו זו בזו.

מקור: - http://liangchiehchen.com/projects/DeepLab.html

כפי שניתן לראות הקלט משולב במסנני 3 × 3 של קצב התרחבות 6, 12, 18 ו -24 והתפוקות משורשרות יחד מכיוון שהן באותו גודל. יציאת קונבולציה של 1 × 1 מתווספת גם לפלט הממוזג. כדי לספק גם את המידע הגלובלי, פלט ה- GAP מתווסף לעיל לאחר הדגימה. הפלט הממוזג של 3 × 3 תפוקות מורחבות מגוונות, פלט 1 × 1 ו GAP מועבר באמצעות קונבולציה של 1 × 1 כדי להגיע למספר הערוצים הנדרש.

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

שיפור התפוקה עם CRF

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

מקור: - http://liangchiehchen.com/projects/DeepLab.html

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

Deeplab-v3 הציג נורמליזציה של אצווה והציע קצב התרחבות כפול (1,2,4) בתוך כל שכבה בבלוק Resnet. בנוסף הוספה כחלק ממאמר הוספת תכונות ברמת תמונה למודול ASPP אשר נדון בדיון לעיל על ASPP

מקור: - https://arxiv.org/pdf/1706.05587.pdf

Deeplab-v3 + הציע שיהיה מפענח במקום דגימה דו-ממדית רגילה 16x. המפענח לוקח רמז מהמפענח המשמש ארכיטקטורות כמו U-Net אשר לוקח מידע משכבות מקודדים כדי לשפר את התוצאות. פלט המקודד מדוגם 4x באמצעות דגימת up דו-לינארית ומשורשר לתכונות מקודד ששוב נדגם 4x לאחר ביצוע קונבולציה של 3 × 3. גישה זו מניבה תוצאות טובות יותר מדגימה ישירה של פי 16. כמו כן, מוצע להשתמש בארכיטקטורת Xception שונה במקום Resnet כחלק מקודד ונעשה כעת שימוש במפתלים הניתנים להפרדה לעומק על גבי התפתלות Atrous כדי להפחית את מספר החישובים.

רשת קונבולוציה גלובלית

מקור: - https://arxiv.org/pdf/1703.02719.pdf

פילוח סמנטי כולל ביצוע שתי משימות במקביל

ט) סיווג
ii) לוקליזציה

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

מקור: - https://arxiv.org/pdf/1703.02719.pdf

המחבר מציע להשיג זאת על ידי שימוש בגרעינים גדולים כחלק מהרשת ובכך יאפשר חיבורים צפופים ומכאן מידע נוסף. זה מושג בעזרת חסימת GCN כפי שניתן לראות באיור לעיל. ניתן לחשוב על בלוק GCN כמסנן קונבולציה akxk בו k יכול להיות מספר גדול מ -3. כדי להפחית את מספר הפרמטרים פילטר akxk מתחלק עוד לבלוקים 1 xk ו- kx 1, kx1 ו- 1xk שמסוכמים לאחר מכן. כך על ידי הגדלת הערך k, ההקשר הגדול יותר נתפס.

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

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

ראה יותר מפעם אחת - KSAC לפילוח סמנטי

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

מקור: - https://arxiv.org/pdf/1908.09443.pdf

כדי לטפל בכל הנושאים הללו מציע המחבר מבנה רשת חדשני הנקרא Kernel-Sharing Atrous Convolution (KSAC). כפי שניתן לראות באיור לעיל, במקום שיהיה לו גרעין שונה לכל שכבה מקבילה הוא ASPP, גרעין יחיד משותף ובכך משפר את יכולת ההכללה של הרשת. באמצעות KSAC במקום ASPP נשמרים 62% מהפרמטרים כאשר משתמשים בשיעורי התרחבות של 6,12 ו- 18.

יתרון נוסף בשימוש במבנה KSAC הוא מספר הפרמטרים שאינם תלויים במספר שיעורי ההרחבה המשמשים. כך אנו יכולים להוסיף כמה שיותר שיעורים מבלי להגדיל את גודל הדגם. ASPP נותן את התוצאות הטובות ביותר עם שיעורים 6,12,18 אך הדיוק יורד עם 6,12,18,24 המצביע על התאמת יתר אפשרית. אך הדיוק ב- KSAC עדיין משתפר במידה ניכרת ומצביע על יכולת ההכללה המשופרת.

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

פילוח וידאו

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

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

STFCN

Spatio-Temporal FCN מציע להשתמש ב- FCN יחד עם LSTM לצורך ביצוע פילוח וידאו. אנו כבר מודעים כיצד ניתן להשתמש ב- FCN לחילוץ תכונות לפילוח תמונה. LSTM הן סוג של רשתות עצביות אשר יכולות ללכוד מידע רציף לאורך זמן. STFCN משלב את העוצמה של FCN עם LSTM כדי ללכוד הן את המידע המרחבי והן את המידע הזמני

מקור: - https://arxiv.org/abs/1608.05971

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

מכיוון ש- FCN ו- LSTM עובדים יחד כחלק מ- STFCN, הרשת יכולה להתאמן מקצה לקצה ועומדת על גישות פילוח פריימים בודדים. ישנן גישות דומות בהן LSTM מוחלף על ידי GRU אך הרעיון הוא זה של לכידת המידע המרחבי והזמני.

סמני וידאו סמנטיים באמצעות עיוות ייצוג

מאמר זה מציע להשתמש בזרימה אופטית על פני מסגרות סמוכות כקלט נוסף לשיפור תוצאות הפילוח

מקור: - https://arxiv.org/abs/1708.03088

ניתן לחבוט את הגישה המוצעת לכל ארכיטקטורה סטנדרטית כתוסף. המרכיב העיקרי שנמצא במשחק הוא מודול NetWarp. כדי לחשב את מפת הפילוח מחושבת הזרימה האופטית בין המסגרת הנוכחית למסגרת הקודמת כלומר Ft ומועברת דרך FlowCNN כדי לקבל Λ (Ft). תהליך זה נקרא Transformation Transformation. ערך זה מועבר דרך מודול עיוות שלוקח גם כקלט את מפת התכונות של שכבת ביניים המחושבת על ידי מעבר ברשת. זה נותן מפת תכונות מעוותת שמשלבת לאחר מכן עם מפת התכונות הבינייומית של השכבה הנוכחית והרשת כולה מאומנת מקצה לקצה. ארכיטקטורה זו השיגה תוצאות SOTA במערכי נתונים של אמת מידות וידאו של CamVid ו- Cityscapes.

שעוני שעון לפילוח סמנטי של וידאו

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

מקור: - https://arxiv.org/abs/1608.03609

האיור לעיל מייצג את שיעור השוואת השינויים עבור בריכה שכבתית בינונית 4 ושכבה עמוקה fc7. משמאל אנו רואים שמכיוון שיש שינוי רב על פני המסגרות שתי השכבות מראות שינוי אך השינוי עבור pool4 גבוה יותר. בימין אנו רואים כי אין הרבה שינוי על פני המסגרות. מכאן ש- pool4 מראה שינוי שולי ואילו fc7 מראה שינוי אפס כמעט.

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

מקור: - https://arxiv.org/abs/1608.03609

פילוח סמנטי וידאו בעל חביון נמוך

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

מקור: - https://arxiv.org/abs/1804.00389

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

פילוח לענני נקודה

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

PointNet

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

מקור: - https://arxiv.org/abs/1612.00593

קלט הרשת לנקודות n הוא מטריצה ​​nx 3. מטריצת nx 3 ממופה ל- nx 64 באמצעות שכבה משותפת מרובת-תפיסות (רשת מחוברת במלואה) אשר ממופה לאחר מכן ל- nx 64 ואז ל- nx 128 ו- nx 1024. איחוד מקסימלי מוחל על מנת לקבל וקטור 1024 המומר ל- k תפוקות על ידי מעבר דרך MLP בגדלים 512, 256 ו- k. לבסוף תפוקות מחלקת k מיוצרות בדומה לכל רשת סיווג.

הסיווג עוסק רק בתכונות הגלובליות אך פילוח זקוק גם לתכונות מקומיות. כך שהתכונות המקומיות משכבת ​​ביניים ב- nx 64 מצטרפות לתכונות גלובליות כדי לקבל מטריקס 1088 אשר נשלח באמצעות mlp של 512 ו- 256 כדי להגיע ל- nx 256 ואז למרות MLP של 128 ו- m כדי לתת m שיעורי פלט לכל נקודה בענן נקודתי.

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

A-CNN

מקור: - https://arxiv.org/abs/1904.08017

A-CNN מציע להשתמש במפתלים טבעתיים כדי ללכוד מידע מרחבי. אנו יודעים מ- CNN כי פעולות קונבולציה לוכדות את המידע המקומי החיוני להבנת התמונה. A-CNN המציא קונבולוציה חדשה בשם Annular convolution המוחלת על נקודות שכונה בענן נקודתי.

הארכיטקטורה לוקחת כקלט nx 3 נקודות ומוצאת נורמליות עבורן המשמשות להזמנת נקודות. דוגמת משנה של נקודות נלקחת באמצעות אלגוריתם FPS וכתוצאה מכך נקבע על 3 נקודות. על קונבולציה טבעתית זו מוחל להגדלה ל 128 ממדים. קונבולציה טבעתית מתבצעת בנקודות השכונה אשר נקבעות באמצעות אלגוריתם KNN.

קבוצה נוספת של הפעולות הנ"ל מתבצעת כדי להגדיל את הממדים ל 256. ואז מוחל mlp כדי לשנות את הממדים ל 1024 ואיחוד מוחל על מנת לקבל וקטור גלובלי 1024 בדומה ל- point-cloud. כל החלק הזה נחשב למקודד. לצורך סיווג הפלט הגלובלי של המקודד מועבר דרך mlp כדי לקבל יציאות c class. עבור משימת פילוח הן התכונות הגלובליות והן המקומיות נחשבות דומות ל- PointCNN ואז מועברות דרך MLP כדי להשיג תפוקות מעמד לכל נקודה.

מדדים

בואו נדון במדדים המשמשים בדרך כלל להבנת והערכת תוצאות המודל.

דיוק פיקסל

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

דיוק = (TP + TN) / (TP + TN + FP + FN)

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

צומת מעל איחוד

IOU מוגדר כיחס המפגש בין אמת קרקעית לבין תפוקות פילוח חזויות על פני האיחוד שלהן. אם אנו מחשבים מספר שיעורים, ה- IOU של כל מחלקה מחושב והממוצע שלהם נלקח. זהו מדד טוב יותר בהשוואה לדיוק הפיקסלים כאילו כל פיקסל ניתן כרקע בקלט 2 כיתתי ערך ה- IOU הוא (90/100 + 0/100) / 2 כלומר 45% IOU שנותן ייצוג טוב יותר בהשוואה ל 90 % דיוק.

מקור: - https://www.pyimagesearch.com/2016/11/07/intersection-over-union-iou-for-object-detection

משקל תדר משוקלל תדר

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

ציון F1

המדד המשמש פופולרי בסיווג F1 ציון יכול לשמש גם למשימת פילוח כדי להתמודד עם חוסר איזון בכיתה.

מקור: - https://en.wikipedia.org/wiki/F1_score

דיוק ממוצע

שטח תחת עקומת Precision - Recall עבור סף נבחר של ממוצע IOU על פני מחלקות שונות משמש לאימות התוצאות.

פונקציות אובדן

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

אובדן אנטרופיה צולבת

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

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

אובדן מוקד

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

אובדן קוביות

פונקציית קוביות אינה אלא ציון F1. פונקציית הפסד זו מנסה ישירות לייעל את ציון F1. באופן דומה ניתן להשתמש בציון IOU ישיר להפעלת אופטימיזציה גם כן

הפסד טברסקי

זהו גרסה של אובדן קוביות המעניק גיל משקל שונה ל- FN ו- FP

מרחק האוסדורף

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

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

מקור https://en.wikipedia.org/wiki/Hausdorff_distance

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

LabelMe :-

כלי הערות תמונה כתוב בפייתון.
תומך בביאור מצולע.
קוד פתוח ובחינם.
פועל ב- Windows, Mac, Ubuntu או דרך Anaconda, Docker
קישור :- https://github.com/wkentaro/labelme

מקור: - https://github.com/wkentaro/labelme

כלי הערות ראיית המחשב: -

כלי הערות וידאו ותמונות שפותח על ידי אינטל
חינם וזמין ברשת
פועל על Windows, Mac ואובונטו
קישור :- https://github.com/opencv/cvat

ביאור תמונות Vgg: -

כלי ביאור לתמונות קוד פתוח בחינם
דף HTML פשוט <200kb ויכול לרוץ במצב לא מקוון
תומך בביאור ונקודות מצולע.
קישור :- https://github.com/ox-vgg/via

מקור: - https://github.com/ox-vgg/via

Rectlabel: -

כלי הערות בתשלום עבור Mac
יכול להשתמש במודלים מרכזיים של ML כדי להוסיף הערות לתמונות
תומך במצולעים, בקוביות, קווים ונקודות
קישור :- https://github.com/ryouchinsa/Rectlabel-support

תיבת תוויות: -

כלי ביאור בתשלום
תומך בכלי עט להערות מהירות ומדויקות יותר
קישור :- https://labelbox.com/product/image-segmentation

מערכי נתונים

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

הקשר פסקל

מערך נתונים זה הוא הרחבה של מערך הנתונים של Pascal VOC 2010 וחורג ממערך הנתונים המקורי על ידי מתן הערות לכל הסצנה ויש לו 400+ סוגים של נתונים בעולם האמיתי.

מקור: - https://cs.stanford.edu/~roozbeh/pascal-context/
מקור: - https://cs.stanford.edu/~roozbeh/pascal-context/

קישור :- https://cs.stanford.edu/~roozbeh/pascal-context/

מערך נתונים של COCO

במערך הנתונים של COCO יש 164 תמונות של מערך ה- COCO המקורי עם הערות ברמת הפיקסלים והוא מערך אמת מידה נפוץ. הוא מכסה 172 כיתות: 80 שיעורי דברים, 91 שיעורי דברים וכיתה אחת 'ללא תווית'

מקור: - http://cocodataset.org/#home

קישור :- http://cocodataset.org/

מערך נתונים של נופי עיר

מערך נתונים זה מורכב מאמיתות קרקעיות פילוח לכבישים, נתיבים, כלי רכב וחפצים בכביש. מערך הנתונים מכיל 30 כיתות ושל 50 ערים שנאספו בתנאי סביבה ומזג אוויר שונים. יש גם מערך וידיאו של תמונות עם הערות עדינות שיכולות לשמש לפילוח וידאו. KITTI ו CamVid הם סוגים דומים של מערכי נתונים בהם ניתן להשתמש לאימון מכוניות בנהיגה עצמית.

מקור: - https://www.cityscapes-dataset.com/

קישור :- https://www.cityscapes-dataset.com/

מערך נתונים Lits

מערך הנתונים נוצר כחלק מאתגר לזהות נגעי גידול מבדיקות CT בכבד. מערך הנתונים מכיל 130 סריקות CT של נתוני אימון ו -70 סריקות CT של נתוני בדיקה.

מקור: - https://competitions.codalab.org/competitions/17094

קישור :- https://competitions.codalab.org/competitions/17094

מערך נתונים של מק"ס

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

מקור: - https://github.com/bearpaw/clothing-co-parsing

מקור: - https://github.com/bearpaw/clothing-co-parsing

מערך נתונים Pratheepan

מערך נתונים שנוצר למשימה של פילוח עור בהתבסס על תמונות מ- google המכילות 32 תמונות פנים ו -46 תמונות משפחתיות

מקור: - http://cs-chan.com/downloads_skin_dataset.html

קישור :- http://cs-chan.com/downloads_skin_dataset.html

תיוג תמונה אווירית של אינריה

מערך מפות של פילוח אווירי שנוצר מתמונות ברשות הציבור. יש כיסוי של 810 קמ"ר ויש לו 2 כיתות בניין ולא בניין.

מקור: - https://project.inria.fr/aerialimagelabeling/
מקור: - https://project.inria.fr/aerialimagelabeling/

קישור :- https://project.inria.fr/aerialimagelabeling/

S3DIS

מערך נתונים זה מכיל ענני נקודה של שישה חלקים פנימיים בקנה מידה גדול בשלושה בניינים עם למעלה מ 3 תמונות.

מקור: - http://buildingparser.stanford.edu/dataset.html

קישור :- http://buildingparser.stanford.edu/dataset.html

<br> סיכום

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

כדי לקבל רשימה של משאבים נוספים לפילוח סמנטי, התחל בעבודה https://github.com/mrgloom/awesome-semantic-segmentation.

לקריאה נוספת


אולי אתה מעוניין בפוסטים האחרונים שלנו בנושא:

עדכון:
נוסף חומר קריאה נוסף.

מקור: https://nanonets.com/blog/semantic-image-segmentation-2020/

בול זמן:

עוד מ AI & Machine Learning