דילוג לתוכן
Benchmo
שפה: עברית

הסרת רקע מתמונה

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

רקע

העיבוד מתבצע במכשיר שלכם, והקבצים לא עולים לשרת.

לפני התמונה הראשונה הדפדפן מוריד בערך 20 מגה־בייט: מודל של 4.6 מגה־בייט שמזהה את הנושא, ומנוע של 14.8 מגה־בייט שמריץ אותו. בגלישה סלולרית כדאי לדעת את זה מראש. זה קורה פעם אחת; אחר כך שניהם נטענים מהזיכרון של הדפדפן.

תמונה של כוס קפה על שולחן עץ, בגודל 600 × 400, ארכה בערך 5 שניות במחשב עם 4 ליבות בפעם הראשונה, כמעט 2 מהן לטעינת המודל, ובערך 3 שניות לכל תמונה אחרי זה. הכוס, הצלוחית והכפית יצאו שלמות, והשולחן נעלם. המעבר בין “שקוף”, “לבן” ו“צבע” אחר כך מהיר, כי המודל לא רץ שוב; רק הרקע מצויר מחדש.

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

מתי הגזירה יוצאת נקייה?

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

איפה הוא מתקשה?

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

שקוף, לבן או צבע?

“שקוף” נותן PNG, למצגות, לאתרים או להנחה על תמונה אחרת. “לבן” או צבע לבחירתכם נותנים JPG, שמתאים למודעות ביד 2, לחנויות אונליין ולטפסים שמבקשים רקע אחיד. ה־PNG יוצא גדול: תמונת הקפה, 442KB כ־PNG, הגיעה ל־540KB עם שקיפות.

איזה מודל זה?

U²-Net-p, רשת נוירונים קטנה שמוצאת את האובייקט המרכזי בתמונה. פרסמו אותה Qin ועמיתיו ב־2020 ברישיון Apache 2.0, שמתיר שימוש מסחרי. היא רצה ב־ONNX Runtime בתוך הדפדפן. בחרנו בה כי היא קטנה מספיק להורדה בדף אינטרנט, וזו גם הסיבה שהקצוות שלה רכים יותר מאלה של מודלים גדולים. הפיקסלים המקוריים לא משתנים, רק נוסף להם ערוץ שקיפות; נתוני EXIF לא מועתקים.

שאלות ותשובות

התמונה עולה לשרת?

לא. התנועה היא בכיוון ההפוך: בפעם הראשונה הדפדפן מוריד את המודל ואת המנוע שמריץ אותו, בערך 20 מגה־בייט, ומשם העבודה נעשית במכשיר שלכם. התמונה נשארת אצלכם.

כמה נפח גלישה זה לוקח בפעם הראשונה?

בערך 20 מגה־בייט, פעם אחת: 4.6 מגה־בייט למודל U²-Net-p ו־14.8 מגה־בייט ל־ONNX Runtime, המנוע שמריץ אותו. הדפדפן שומר את שניהם, כך שהתמונות הבאות מתחילות מיד. שום דבר לא יורד לפני שבוחרים תמונה.

למה שיער, פרווה ושפם של חתול יוצאים רכים או חתוכים?

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

למה ה־PNG גדול בהרבה מהתמונה המקורית?

PNG שקוף שומר כל פיקסל בלי איבוד איכות. תמונת JPG של חתול, 31.6KB, הפכה ל־PNG של 296KB. אם לא צריך שקיפות, בוחרים "לבן" או "צבע" ומקבלים JPG, קטן בהרבה.

זה עובד עם תמונות HEIC מהאייפון?

כן. אפשר HEIC,‏ AVIF,‏ WebP,‏ PNG ו־JPG. תמונת הקפה כקובץ HEIC של 134KB נתנה את אותה גזירה כמו גרסת ה־PNG, עם 46% מהפיקסלים אטומים לגמרי בשתיהן.