Paolo-Fraccaro
commited on
Commit
•
842ee21
1
Parent(s):
e3f7268
fix channels order and no data
Browse files
app.py
CHANGED
@@ -137,37 +137,36 @@ def inference_segmentor(model, imgs, custom_test_pipeline=None):
|
|
137 |
def inference_on_file(target_image, model, custom_test_pipeline):
|
138 |
|
139 |
target_image = target_image.name
|
140 |
-
# print(type(target_image))
|
141 |
|
142 |
-
# output_image = target_image.replace('.tif', '_pred.tif')
|
143 |
time_taken=-1
|
144 |
|
145 |
st = time.time()
|
146 |
print('Running inference...')
|
147 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
148 |
print("Output has shape: " + str(result[0].shape))
|
149 |
|
150 |
-
#####
|
151 |
mask = open_tiff(target_image)
|
152 |
rgb = stretch_rgb((mask[[3, 2, 1], :, :].transpose((1,2,0))/10000*255).astype(np.uint8))
|
153 |
meta = get_meta(target_image)
|
154 |
mask = np.where(mask == meta['nodata'], 1, 0)
|
155 |
mask = np.max(mask, axis=0)[None]
|
156 |
-
|
157 |
-
|
158 |
-
|
159 |
-
|
160 |
-
|
161 |
-
meta["dtype"] = "int16"
|
162 |
-
meta["compress"] = "lzw"
|
163 |
-
meta["nodata"] = -1
|
164 |
-
print('Saving output...')
|
165 |
-
# write_tiff(result[0], output_image, meta)
|
166 |
et = time.time()
|
167 |
time_taken = np.round(et - st, 1)
|
168 |
print(f'Inference completed in {str(time_taken)} seconds')
|
169 |
-
|
170 |
-
return rgb,
|
171 |
|
172 |
def process_test_pipeline(custom_test_pipeline, bands=None):
|
173 |
|
|
|
137 |
def inference_on_file(target_image, model, custom_test_pipeline):
|
138 |
|
139 |
target_image = target_image.name
|
|
|
140 |
|
|
|
141 |
time_taken=-1
|
142 |
|
143 |
st = time.time()
|
144 |
print('Running inference...')
|
145 |
+
try:
|
146 |
+
result = inference_segmentor(model, target_image, custom_test_pipeline)
|
147 |
+
except:
|
148 |
+
print('Error: Try different channels order.')
|
149 |
+
model.cfg.data.test.pipeline[0]['channels_last'] = True
|
150 |
+
result = inference_segmentor(model, target_image, custom_test_pipeline)
|
151 |
+
|
152 |
print("Output has shape: " + str(result[0].shape))
|
153 |
|
154 |
+
##### prep outputs
|
155 |
mask = open_tiff(target_image)
|
156 |
rgb = stretch_rgb((mask[[3, 2, 1], :, :].transpose((1,2,0))/10000*255).astype(np.uint8))
|
157 |
meta = get_meta(target_image)
|
158 |
mask = np.where(mask == meta['nodata'], 1, 0)
|
159 |
mask = np.max(mask, axis=0)[None]
|
160 |
+
rgb = np.where(mask.transpose((1,2,0)) == 1, 0, rgb)
|
161 |
+
rgb = np.where(rgb < 0, 0, rgb)
|
162 |
+
rgb = np.where(rgb > 255, 255, rgb)
|
163 |
+
|
164 |
+
prediction = np.where(mask == 1, 0, result[0]*255)
|
|
|
|
|
|
|
|
|
|
|
165 |
et = time.time()
|
166 |
time_taken = np.round(et - st, 1)
|
167 |
print(f'Inference completed in {str(time_taken)} seconds')
|
168 |
+
|
169 |
+
return rgb, prediction[0]
|
170 |
|
171 |
def process_test_pipeline(custom_test_pipeline, bands=None):
|
172 |
|