Spaces:
Paused
Paused
Update app.py
Browse files
app.py
CHANGED
@@ -112,16 +112,16 @@ class GPUSatelliteModelGenerator:
|
|
112 |
|
113 |
@staticmethod
|
114 |
@cp.fuse() # Use CuPy's JIT compilation
|
115 |
-
def gpu_color_distance_hsv(pixel_hsv, reference_hsv,
|
116 |
"""Optimized HSV color distance calculation using CuPy's JIT"""
|
117 |
h_diff = cp.minimum(cp.abs(pixel_hsv[0] - reference_hsv[0]),
|
118 |
360 - cp.abs(pixel_hsv[0] - reference_hsv[0]))
|
119 |
s_diff = cp.abs(pixel_hsv[1] - reference_hsv[1])
|
120 |
v_diff = cp.abs(pixel_hsv[2] - reference_hsv[2])
|
121 |
|
122 |
-
return (h_diff <=
|
123 |
-
(s_diff <=
|
124 |
-
(v_diff <=
|
125 |
|
126 |
def generate_tree_vertices(self, tree_mask, base_vertices):
|
127 |
"""Generate randomized tree heights and positions"""
|
@@ -173,7 +173,9 @@ class GPUSatelliteModelGenerator:
|
|
173 |
masks[category] |= self.gpu_color_distance_hsv(
|
174 |
cp.stack([h, s, v]),
|
175 |
ref_hsv,
|
176 |
-
tolerance
|
|
|
|
|
177 |
)
|
178 |
|
179 |
# Optimized terrain and building detection
|
|
|
112 |
|
113 |
@staticmethod
|
114 |
@cp.fuse() # Use CuPy's JIT compilation
|
115 |
+
def gpu_color_distance_hsv(pixel_hsv, reference_hsv, hue_tolerance, sat_tolerance, val_tolerance):
|
116 |
"""Optimized HSV color distance calculation using CuPy's JIT"""
|
117 |
h_diff = cp.minimum(cp.abs(pixel_hsv[0] - reference_hsv[0]),
|
118 |
360 - cp.abs(pixel_hsv[0] - reference_hsv[0]))
|
119 |
s_diff = cp.abs(pixel_hsv[1] - reference_hsv[1])
|
120 |
v_diff = cp.abs(pixel_hsv[2] - reference_hsv[2])
|
121 |
|
122 |
+
return (h_diff <= hue_tolerance) & \
|
123 |
+
(s_diff <= sat_tolerance) & \
|
124 |
+
(v_diff <= val_tolerance)
|
125 |
|
126 |
def generate_tree_vertices(self, tree_mask, base_vertices):
|
127 |
"""Generate randomized tree heights and positions"""
|
|
|
173 |
masks[category] |= self.gpu_color_distance_hsv(
|
174 |
cp.stack([h, s, v]),
|
175 |
ref_hsv,
|
176 |
+
tolerance['hue'],
|
177 |
+
tolerance['sat'],
|
178 |
+
tolerance['val']
|
179 |
)
|
180 |
|
181 |
# Optimized terrain and building detection
|