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
|