GPT
S

sam2-hiera-large

קוד פתוח

facebookapache-2.02024-08-02

  • transformers
  • safetensors
  • sam2_video
  • feature-extraction
  • mask-generation

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

  • 224Mפרמטרים
  • 1.7 GBמשקל הקבצים
  • 16,442הורדות בחודש
  • 140לייקים

מה זה

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

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

מתאים ל

  • מעקב אחר עצמים בווידאו

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

  • חיתוך תמונות לפי לחיצה

    זיהוי גבולות עצם בלחיצת כפתור או קליק בודד בתוך כלי עריכה גרפיים.

  • יצירת מסכות אוטומטית

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

איפה זה נופל

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

שאלות
נפוצות

האם חייבים GPU כדי להריץ את המודל?

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

איך מתקנים אובייקט שהמסכה שלו התעוותה באמצע הסרטון?

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

איך מריצים

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

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

from transformers import pipeline

pipe = pipeline("mask-generation", model="facebook/sam2-hiera-large")
print(pipe("שלום"))

הרישיון

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

  • שימוש מסחרי
  • שינוי הקוד
  • הפצה מחדש
  • שימוש בפטנטים

הרישיון המלא בעמוד המודל ↗