|
|
||
|---|---|---|
| .. | ||
| lab | ||
| README.md | ||
| SemanticSegmentationPytorch.ipynb | ||
| SemanticSegmentationTF.ipynb | ||
README.md
חלוקה
למדנו בעבר על זיהוי אובייקטים, שמאפשר לנו לאתר אובייקטים בתמונה על ידי חיזוי תיבות גבול (bounding boxes). עם זאת, עבור משימות מסוימות אנחנו לא זקוקים רק לתיבות גבול, אלא גם למיקום מדויק יותר של האובייקט. משימה זו נקראת חלוקה (Segmentation).
שאלון לפני ההרצאה
ניתן לראות חלוקה כסיווג פיקסלים, כאשר עבור כל פיקסל בתמונה עלינו לחזות את הקטגוריה שלו (רקע הוא אחת הקטגוריות). קיימים שני סוגים עיקריים של אלגוריתמי חלוקה:
- חלוקה סמנטית מספקת רק את הקטגוריה של הפיקסל, ואינה מבדילה בין אובייקטים שונים מאותה קטגוריה.
- חלוקת מופעים (Instance Segmentation) מחלקת את הקטגוריות למופעים שונים.
לדוגמה, בחלוקת מופעים, הכבשים בתמונה נחשבות כאובייקטים נפרדים, אך בחלוקה סמנטית כל הכבשים מיוצגות כקטגוריה אחת.
תמונה מתוך הפוסט הזה
קיימות ארכיטקטורות נוירוניות שונות עבור חלוקה, אך לכולן יש מבנה דומה. במובן מסוים, זה דומה לאוטוקודר (autoencoder) שלמדתם עליו בעבר, אך במקום לפרק את התמונה המקורית, המטרה שלנו היא לפרק מסכה. לכן, לרשת חלוקה יש את החלקים הבאים:
- מקודד (Encoder) שמפיק מאפיינים מהתמונה הקלט.
- מפענח (Decoder) שממיר את המאפיינים הללו לתמונת מסכה, בגודל ובמספר ערוצים התואמים למספר הקטגוריות.
תמונה מתוך הפרסום הזה
חשוב במיוחד להזכיר את פונקציית ההפסד (loss function) שמשתמשים בה עבור חלוקה. כאשר משתמשים באוטוקודרים קלאסיים, יש למדוד את הדמיון בין שתי תמונות, וניתן להשתמש בשגיאת ריבוע ממוצעת (MSE) לשם כך. בחלוקה, כל פיקסל בתמונת המסכה המטרה מייצג את מספר הקטגוריה (מקודד ב-one-hot לאורך הממד השלישי), ולכן יש להשתמש בפונקציות הפסד ייעודיות לסיווג - הפסד קרוס-אנטרופי (cross-entropy loss), ממוצע על כל הפיקסלים. אם המסכה היא בינארית - משתמשים בהפסד קרוס-אנטרופי בינארי (BCE).
✅ קידוד one-hot הוא שיטה לקידוד תווית קטגוריה לווקטור באורך השווה למספר הקטגוריות. עיינו במאמר הזה על הטכניקה הזו.
חלוקה בהדמיה רפואית
בשיעור זה נראה את החלוקה בפעולה על ידי אימון רשת לזהות נגעים בעור (המכונים גם שומות) בתמונות רפואיות. נשתמש במאגר PH2 של תמונות דרמוסקופיה כמקור התמונות. מאגר זה מכיל 200 תמונות של שלוש קטגוריות: שומה טיפוסית, שומה לא טיפוסית ומלנומה. לכל התמונות יש גם מסכה תואמת שמסמנת את גבולות השומה.
✅ טכניקה זו מתאימה במיוחד להדמיה רפואית מסוג זה, אך אילו יישומים נוספים בעולם האמיתי אתם יכולים לדמיין?
תמונה מתוך מאגר PH2
נאמן מודל שיחלק כל שומה מהרקע שלה.
✍️ תרגילים: חלוקה סמנטית
פתחו את המחברות הבאות כדי ללמוד עוד על ארכיטקטורות שונות של חלוקה סמנטית, לתרגל עבודה איתן ולראות אותן בפעולה.
שאלון אחרי ההרצאה
סיכום
חלוקה היא טכניקה חזקה מאוד לסיווג תמונות, שמתקדמת מעבר לתיבות גבול לסיווג ברמת הפיקסל. זו טכניקה שמשמשת בהדמיה רפואית, בין יישומים נוספים.
🚀 אתגר
חלוקת גוף היא רק אחת מהמשימות הנפוצות שניתן לבצע עם תמונות של אנשים. משימות חשובות נוספות כוללות זיהוי שלד וזיהוי תנוחות. נסו את ספריית OpenPose כדי לראות כיצד ניתן להשתמש בזיהוי תנוחות.
סקירה ולמידה עצמית
המאמר בוויקיפדיה הזה מציע סקירה טובה של היישומים השונים של טכניקה זו. למדו עוד בעצמכם על תתי-התחומים של חלוקת מופעים וחלוקה פנופטית בתחום זה.
מטלה
במעבדה זו, נסו חלוקת גוף אנושי באמצעות מאגר הנתונים Segmentation Full Body MADS מ-Kaggle.
כתב ויתור:
מסמך זה תורגם באמצעות שירות תרגום מבוסס בינה מלאכותית Co-op Translator. למרות שאנו שואפים לדיוק, יש לקחת בחשבון שתרגומים אוטומטיים עשויים להכיל שגיאות או אי דיוקים. המסמך המקורי בשפתו המקורית צריך להיחשב כמקור סמכותי. עבור מידע קריטי, מומלץ להשתמש בתרגום מקצועי על ידי אדם. איננו נושאים באחריות לאי הבנות או לפרשנויות שגויות הנובעות משימוש בתרגום זה.