NHLOCAL commited on
Commit
3413b87
·
1 Parent(s): f6f4cf2

ניסיון

Browse files
Files changed (1) hide show
  1. 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
- try:
170
- # הדפסת נתיבים מלאים לבדיקה
171
- print(f"[DEBUG] SAM2_CHECKPOINT (full path): {os.path.abspath(SAM2_CHECKPOINT)}")
172
- print(f"[DEBUG] MODEL_CFG (full path): {os.path.abspath(MODEL_CFG)}")
173
-
174
- # בדיקת קיום הקבצים
175
- if not os.path.exists(SAM2_CHECKPOINT):
176
- raise FileNotFoundError(f"SAM2 checkpoint file not found at: {SAM2_CHECKPOINT}")
177
- if not os.path.exists(MODEL_CFG):
178
- raise FileNotFoundError(f"SAM2 config file not found at: {MODEL_CFG}")
179
-
180
- # טעינת המודל
181
- sam2_model = build_sam2(MODEL_CFG, SAM2_CHECKPOINT, device=device)
182
- sam2_predictor = SAM2ImagePredictor(sam2_model)
183
- print("[SAM2] מודל SAM2 נטען בהצלחה.")
184
-
185
- except FileNotFoundError as e:
186
- print(f"[ERROR] קובץ SAM2 לא נמצא: {e}")
187
- print(f" - ודא שקובץ המודל '{SAM2_CHECKPOINT}' וקובץ הקונפיג '{MODEL_CFG}' קיימים בנתיבים הנכונים בתוך ה-Space שלך.")
188
- sam2_predictor = None
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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.")