ds
Browse files
app.py
CHANGED
@@ -27,7 +27,7 @@ async def segment_image(file: UploadFile = File(...)):
|
|
27 |
raise HTTPException(status_code=400, detail=f"Görüntü boyutu çok küçük: {original_width}x{original_height}. Minimum 64x64 piksel olmalı.")
|
28 |
|
29 |
# Görüntüyü işlemciye hazırla
|
30 |
-
inputs = processor(image, return_tensors="pt", do_rescale=True, do_resize=True
|
31 |
|
32 |
# Model ile segmentasyon yap
|
33 |
with torch.no_grad():
|
@@ -38,9 +38,12 @@ async def segment_image(file: UploadFile = File(...)):
|
|
38 |
if masks.shape[1] == 0:
|
39 |
raise HTTPException(status_code=500, detail="Hiç maske üretilmedi.")
|
40 |
|
41 |
-
# En iyi maskeyi seç
|
42 |
iou_scores = outputs.iou_scores.detach().cpu().numpy() # Shape: (batch_size, num_masks)
|
43 |
-
|
|
|
|
|
|
|
44 |
mask = masks[0][best_mask_idx] # Shape: (height, width)
|
45 |
|
46 |
# Maske şeklini kontrol et
|
|
|
27 |
raise HTTPException(status_code=400, detail=f"Görüntü boyutu çok küçük: {original_width}x{original_height}. Minimum 64x64 piksel olmalı.")
|
28 |
|
29 |
# Görüntüyü işlemciye hazırla
|
30 |
+
inputs = processor(image, return_tensors="pt", do_rescale=True, do_resize=True)
|
31 |
|
32 |
# Model ile segmentasyon yap
|
33 |
with torch.no_grad():
|
|
|
38 |
if masks.shape[1] == 0:
|
39 |
raise HTTPException(status_code=500, detail="Hiç maske üretilmedi.")
|
40 |
|
41 |
+
# En iyi maskeyi seç
|
42 |
iou_scores = outputs.iou_scores.detach().cpu().numpy() # Shape: (batch_size, num_masks)
|
43 |
+
if iou_scores.shape[1] > 1:
|
44 |
+
best_mask_idx = np.argmax(iou_scores[0]) # En yüksek skora sahip maskeyi seç
|
45 |
+
else:
|
46 |
+
best_mask_idx = 0 # Tek maske varsa onu kullan
|
47 |
mask = masks[0][best_mask_idx] # Shape: (height, width)
|
48 |
|
49 |
# Maske şeklini kontrol et
|