Update controlnet_module.py
Browse files- controlnet_module.py +5 -9
controlnet_module.py
CHANGED
|
@@ -934,11 +934,7 @@ class ControlNetProcessor:
|
|
| 934 |
print("📏 SCHRITT 6: MASKE EXTRAHIEREN")
|
| 935 |
|
| 936 |
num_masks = outputs.pred_masks.shape[2]
|
| 937 |
-
print(f" SAM lieferte {num_masks} verschiedene Masken")
|
| 938 |
-
|
| 939 |
-
#========================
|
| 940 |
-
# Heuristik und Postprocessing auf Crop
|
| 941 |
-
#=========================
|
| 942 |
|
| 943 |
# Masken speichern in Array
|
| 944 |
all_masks_crop = [] #Weiterverarbeitung in Crop-Größe oder Bildgröße <= 512
|
|
@@ -964,13 +960,13 @@ class ControlNetProcessor:
|
|
| 964 |
|
| 965 |
|
| 966 |
# ============================================================
|
| 967 |
-
# HEURISTIK (zur Bestimmung der besten Maske) bei Bild>512 auf Crop-Größe bei Bild<=512 auf Originalgröße
|
| 968 |
# ============================================================
|
| 969 |
print("🤔 HEURISTIK BERECHNEN")
|
| 970 |
|
| 971 |
|
| 972 |
# Heuristik-BBox für alle weiteren Berechnungen verwenden
|
| 973 |
-
# (bbox_center und bbox_area sind
|
| 974 |
|
| 975 |
best_mask_idx = 0
|
| 976 |
best_score = -1
|
|
@@ -998,7 +994,7 @@ class ControlNetProcessor:
|
|
| 998 |
# SPEZIALHEURISTIK
|
| 999 |
# ============================================================
|
| 1000 |
|
| 1001 |
-
print(f" 🔍 Analysiere Maske {i+1} auf Crop-Größe")
|
| 1002 |
|
| 1003 |
# 1. FLÄCHENBASIERTE BEWERTUNG (40%)
|
| 1004 |
area_ratio = mask_area_pixels / bbox_area if bbox_area > 0 else 0
|
|
@@ -1014,7 +1010,7 @@ class ControlNetProcessor:
|
|
| 1014 |
area_score = optimal_max / area_ratio # Starke Bestrafung für zu groß
|
| 1015 |
|
| 1016 |
|
| 1017 |
-
# 2. BBOX-ÜBERLAPPUNG
|
| 1018 |
bbox_mask = np.zeros((image.height, image.width), dtype=np.uint8)
|
| 1019 |
bbox_mask[bbox_y1:bbox_y2, bbox_x1:bbox_x2] = 1
|
| 1020 |
overlap = np.sum(mask_binary & bbox_mask)
|
|
|
|
| 934 |
print("📏 SCHRITT 6: MASKE EXTRAHIEREN")
|
| 935 |
|
| 936 |
num_masks = outputs.pred_masks.shape[2]
|
| 937 |
+
print(f" SAM lieferte {num_masks} verschiedene Masken")
|
|
|
|
|
|
|
|
|
|
|
|
|
| 938 |
|
| 939 |
# Masken speichern in Array
|
| 940 |
all_masks_crop = [] #Weiterverarbeitung in Crop-Größe oder Bildgröße <= 512
|
|
|
|
| 960 |
|
| 961 |
|
| 962 |
# ============================================================
|
| 963 |
+
# HEURISTIK (zur Bestimmung der besten Maske) bei Bild>512 wird die beste Maske auf Crop-Größe ermittelt bei Bild<=512 auf Originalgröße
|
| 964 |
# ============================================================
|
| 965 |
print("🤔 HEURISTIK BERECHNEN")
|
| 966 |
|
| 967 |
|
| 968 |
# Heuristik-BBox für alle weiteren Berechnungen verwenden
|
| 969 |
+
# (bbox_center und bbox_area sind korrekt für beide Fälle)
|
| 970 |
|
| 971 |
best_mask_idx = 0
|
| 972 |
best_score = -1
|
|
|
|
| 994 |
# SPEZIALHEURISTIK
|
| 995 |
# ============================================================
|
| 996 |
|
| 997 |
+
print(f" 🔍 Analysiere Maske {i+1} auf {'Crop-' if use_crop_strategy else 'Original-'}Größe")
|
| 998 |
|
| 999 |
# 1. FLÄCHENBASIERTE BEWERTUNG (40%)
|
| 1000 |
area_ratio = mask_area_pixels / bbox_area if bbox_area > 0 else 0
|
|
|
|
| 1010 |
area_score = optimal_max / area_ratio # Starke Bestrafung für zu groß
|
| 1011 |
|
| 1012 |
|
| 1013 |
+
# 2. BBOX-ÜBERLAPPUNG
|
| 1014 |
bbox_mask = np.zeros((image.height, image.width), dtype=np.uint8)
|
| 1015 |
bbox_mask[bbox_y1:bbox_y2, bbox_x1:bbox_x2] = 1
|
| 1016 |
overlap = np.sum(mask_binary & bbox_mask)
|