מיצוי מסכה (Image Matting)

תמונה, קול ווידאו

הגדרה

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

מה זו מסכה, ולמה גזירה לא מספיקה

לכל פיקסל בתמונה דיגיטלית אפשר לצרף ערך שנקרא "אלפא", שנע בין 0 (הפיקסל שקוף לגמרי) ל-1 (אטום לגמרי). מיצוי מסכה הוא המשימה של להעריך את ערך האלפא הזה בתצלום רגיל, שאין בו מידע כזה. כאן ההבדל מזיהוי עצמים, שמחזיר מלבן סביב מה שמצא: מיצוי מסכה אינו מסתפק בגבול אחד סביב האובייקט, אלא נדרש לערך נפרד לכל פיקסל. אילו כל פיקסל היה שייך במלואו לחזית או לרקע, גזירה פשוטה הייתה מספיקה; אבל קצה של תלתל, נוצה, עשן או זכוכית שקופה למחצה הם פיקסלים שהם גם וגם, ולכן חיתוך חד ייראה מודבק.

לפרק פיקסל אחד חזרה למרכיביו

הרכבה של תמונה אחת על גבי אחרת היא פעולה ידועה: לוקחים את צבע החזית, את צבע הרקע ואת ערך האלפא, ומחשבים מהם את הפיקסל שרואים. מיצוי מסכה מריץ את החישוב לאחור — מפיקסל בודד חזרה אל המרכיבים שיצרו אותו. לכן אין לו תשובה יחידה, והוא קשה במיוחד כשצבעי החזית והרקע דומים או כשהמרקם מסובך: שני התנאים שמאמר "Deep Image Matting" מ-2017 מציין כנקודת הכישלון של קודמיו.

מסך ירוק, trimap, או כלום

מסך ירוק פיזי פותר את הבעיה מראש, בכך שהרקע ידוע וקבוע. בעבודה מקצועית מקובל להיעזר ב-trimap — "מפת שלושת האזורים", מפה שמציירים ביד ומסמנת מה בוודאות חזית, מה בוודאות רקע, ומה אזור הספק שהמערכת צריכה להכריע בו. "Deep Image Matting" הזין רשת עמוקה בתמונה ובמפה כזו והוסיף רשת קטנה שמחדדת קצוות; לאימון בנו החוקרים מאגר של 49,300 תמונות אימון ו-1,000 תמונות בדיקה. מאז נבנו שיטות שמוותרות על ה-trimap: MODNet, מ-2020, מפיק מסכת דמות מתמונה בודדת בזמן אמת, ו-Background Matting מבקש רק תמונה נוספת של הרקע בלי הדמות.

איפה זה נמצא ביום-יום שלכם

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

מה כאן נמדד ומה מומצא

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

שלוש דרכים להפריד דמות מהרקע
מסך ירוק פיזיtrimap שמסמנים בידשיטה אוטומטית ללא trimap
מה נדרש מכםרקע ירוק אחיד ותאורה מתאימה, כבר בזמן הצילוםכלום בצילום, אבל סימון ידני של כל תמונה אחר כךכלום; בשיטת Background Matting מצלמים בנוסף תמונה אחת של הרקע בלי הדמות
מה המערכת מקבלת כקלטתמונה שבה צבע הרקע ידוע מראשהתמונה יחד עם מפה שמסמנת חזית ודאית, רקע ודאי ואזור ספקהתמונה בלבד, או התמונה ותצלום רקע נוסף
למה זה מתאיםהפקה מתוכננת באולפןעבודה מקצועית על תמונה בודדת שחשוב שתצא מדויקתוידאו ושימוש שוטף; MODNet מדווח על 67 פריימים בשנייה בכרטיס 1080Ti
החולשה העיקריתדורש הכנה פיזית, ולא מתאים לצילום מזדמןהסימון הידני איטי — מאמר Background Matting מציין שהוא גוזל הרבה יותר זמן מצילום תמונת רקע נוספתאותו מאמר מציין שהשיטות האוטומטיות אמנם הולכות ומופיעות, אך אינן באיכות דומה

שאלות נפוצות ❓

מה זה trimap?

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

למה דווקא השיער תמיד יוצא הכי בעייתי?

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

זה אותו דבר כמו "הסרת רקע" שמציעים אתרים בלחיצה?

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

למה בשיחת וידאו הרקע "בולע" לי לפעמים את היד?

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