Spaces:
Sleeping
Sleeping
ניסיון
Browse files- backend.py +35 -31
backend.py
CHANGED
@@ -163,39 +163,44 @@ from sam2.sam2_image_predictor import SAM2ImagePredictor
|
|
163 |
SAM2_CHECKPOINT = "checkpoints/sam2.1_hiera_tiny.pt"
|
164 |
MODEL_CFG = "sam2.1_hiera_t.yaml"
|
165 |
|
166 |
-
sam2_predictor = None
|
167 |
device = "cuda" if torch.cuda.is_available() else "cpu"
|
168 |
|
169 |
-
|
170 |
-
|
171 |
-
|
172 |
-
|
173 |
-
|
174 |
-
|
175 |
-
|
176 |
-
|
177 |
-
|
178 |
-
|
179 |
-
|
180 |
-
|
181 |
-
|
182 |
-
|
183 |
-
|
184 |
-
|
185 |
-
|
186 |
-
|
187 |
-
|
188 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
189 |
|
190 |
-
except Exception as e:
|
191 |
-
print(f"[ERROR] שגיאה כללית בטעינת SAM2: {e}")
|
192 |
-
print(f" - סוג השגיאה: {type(e).__name__}")
|
193 |
-
print(f" - הודעת השגיאה: {e}")
|
194 |
-
import traceback
|
195 |
-
print(f" - Traceback:")
|
196 |
-
traceback.print_exc()
|
197 |
-
print(f" - בדוק את התאימות בין גרסאות הספריות (torch, torchvision, sam2) ואת תקינות קובץ המודל.")
|
198 |
-
sam2_predictor = None
|
199 |
|
200 |
# -----------------------------
|
201 |
# 5) פונקציית טשטוש
|
@@ -301,7 +306,6 @@ def process_image(
|
|
301 |
women_boxes.append(bbox)
|
302 |
|
303 |
# 3) שלב SAM2 (עבור בוקסים של נשים)
|
304 |
-
# אין צורך לאתחל Hydra, פשוט משתמשים ב-sam2_predictor
|
305 |
if sam2_predictor is None:
|
306 |
print("[process_image] SAM2 לא זמין/נטען. מחזירים תמונה ללא טשטוש.")
|
307 |
raise ValueError("SAM2 model is not loaded.")
|
|
|
163 |
SAM2_CHECKPOINT = "checkpoints/sam2.1_hiera_tiny.pt"
|
164 |
MODEL_CFG = "sam2.1_hiera_t.yaml"
|
165 |
|
166 |
+
sam2_predictor = None # אתחול כ-None
|
167 |
device = "cuda" if torch.cuda.is_available() else "cpu"
|
168 |
|
169 |
+
def load_sam2_model():
|
170 |
+
"""טוען את מודל SAM2 באופן גלובלי."""
|
171 |
+
global sam2_predictor
|
172 |
+
try:
|
173 |
+
# הדפסת נתיבים מלאים לבדיקה
|
174 |
+
print(f"[DEBUG] SAM2_CHECKPOINT (full path): {os.path.abspath(SAM2_CHECKPOINT)}")
|
175 |
+
print(f"[DEBUG] MODEL_CFG (full path): {os.path.abspath(MODEL_CFG)}")
|
176 |
+
|
177 |
+
# בדיקת קיום הקבצים
|
178 |
+
if not os.path.exists(SAM2_CHECKPOINT):
|
179 |
+
raise FileNotFoundError(f"SAM2 checkpoint file not found at: {SAM2_CHECKPOINT}")
|
180 |
+
if not os.path.exists(MODEL_CFG):
|
181 |
+
raise FileNotFoundError(f"SAM2 config file not found at: {MODEL_CFG}")
|
182 |
+
|
183 |
+
# טעינת המודל
|
184 |
+
sam2_model = build_sam2(MODEL_CFG, SAM2_CHECKPOINT, device=device)
|
185 |
+
sam2_predictor = SAM2ImagePredictor(sam2_model)
|
186 |
+
print("[SAM2] מודל SAM2 נטען בהצלחה.")
|
187 |
+
|
188 |
+
except FileNotFoundError as e:
|
189 |
+
print(f"[ERROR] קובץ SAM2 לא נמצא: {e}")
|
190 |
+
print(f" - ודא שקובץ המודל '{SAM2_CHECKPOINT}' וקובץ הקונפיג '{MODEL_CFG}' קיימים בנתיבים הנכונים בתוך ה-Space שלך.")
|
191 |
+
|
192 |
+
except Exception as e:
|
193 |
+
print(f"[ERROR] שגיאה כללית בטעינת SAM2: {e}")
|
194 |
+
print(f" - סוג השגיאה: {type(e).__name__}")
|
195 |
+
print(f" - הודעת השגיאה: {e}")
|
196 |
+
import traceback
|
197 |
+
print(f" - Traceback:")
|
198 |
+
traceback.print_exc()
|
199 |
+
print(f" - בדוק את התאימות בין גרסאות הספריות (torch, torchvision, sam2) ואת תקינות קובץ המודל.")
|
200 |
+
|
201 |
+
# טעינת המודל בעת טעינת המודול
|
202 |
+
load_sam2_model()
|
203 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
204 |
|
205 |
# -----------------------------
|
206 |
# 5) פונקציית טשטוש
|
|
|
306 |
women_boxes.append(bbox)
|
307 |
|
308 |
# 3) שלב SAM2 (עבור בוקסים של נשים)
|
|
|
309 |
if sam2_predictor is None:
|
310 |
print("[process_image] SAM2 לא זמין/נטען. מחזירים תמונה ללא טשטוש.")
|
311 |
raise ValueError("SAM2 model is not loaded.")
|