Paolo-Fraccaro commited on
Commit
dab7700
1 Parent(s): 959befd

solved merge

Browse files
Files changed (3) hide show
  1. Dockerfile +1 -2
  2. README.md +1 -1
  3. app.py +56 -0
Dockerfile CHANGED
@@ -59,7 +59,6 @@ RUN pip3 install openmim
59
 
60
  RUN conda install -c conda-forge gradio -y
61
 
62
-
63
  WORKDIR /home/user
64
 
65
  RUN --mount=type=secret,id=git_token,mode=0444,required=true \
@@ -72,7 +71,7 @@ RUN pip3 install -e .
72
 
73
  RUN mim install mmcv-full==1.6.2 -f https://download.openmmlab.com/mmcv/dist/11.5/1.11.0/index.html
74
 
75
- RUN pip3 install rasterio
76
  # Set the working directory to the user's home directory
77
  WORKDIR $HOME/app
78
 
 
59
 
60
  RUN conda install -c conda-forge gradio -y
61
 
 
62
  WORKDIR /home/user
63
 
64
  RUN --mount=type=secret,id=git_token,mode=0444,required=true \
 
71
 
72
  RUN mim install mmcv-full==1.6.2 -f https://download.openmmlab.com/mmcv/dist/11.5/1.11.0/index.html
73
 
74
+ RUN pip3 install rasterio scikit-image
75
  # Set the working directory to the user's home directory
76
  WORKDIR $HOME/app
77
 
README.md CHANGED
@@ -8,4 +8,4 @@ pinned: false
8
  license: apache-2.0
9
  ---
10
 
11
- Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
 
8
  license: apache-2.0
9
  ---
10
 
11
+ Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
app.py CHANGED
@@ -5,7 +5,11 @@ config_path=hf_hub_download(repo_id="ibm-nasa-geospatial/Prithvi-100M-multi-temp
5
  filename="multi_temporal_crop_classification_Prithvi_100M.py",
6
  token=os.environ.get("token"))
7
  ckpt=hf_hub_download(repo_id="ibm-nasa-geospatial/Prithvi-100M-multi-temporal-crop-classification",
 
8
  filename='multi_temporal_crop_classification_Prithvi_100M.pth',
 
 
 
9
  token=os.environ.get("token"))
10
  ##########
11
  import argparse
@@ -133,6 +137,7 @@ def inference_on_file(target_image, model, custom_test_pipeline):
133
 
134
  # output_image = target_image.replace('.tif', '_pred.tif')
135
  time_taken=-1
 
136
  st = time.time()
137
  print('Running inference...')
138
  result = inference_segmentor(model, target_image, custom_test_pipeline)
@@ -162,6 +167,41 @@ def inference_on_file(target_image, model, custom_test_pipeline):
162
  print(f'Inference completed in {str(time_taken)} seconds')
163
 
164
  return rgb1,rgb2,rgb3, result[0][0]
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
165
 
166
  def process_test_pipeline(custom_test_pipeline, bands=None):
167
 
@@ -184,7 +224,10 @@ def process_test_pipeline(custom_test_pipeline, bands=None):
184
 
185
  return custom_test_pipeline
186
 
 
187
 
 
 
188
  config = Config.fromfile(config_path)
189
  config.model.backbone.pretrained=None
190
  model = init_segmentor(config, ckpt, device='cpu')
@@ -217,6 +260,7 @@ with gr.Blocks() as demo:
217
 
218
  btn.click(fn=func, inputs=inp, outputs=[inp1, inp2, inp3, out])
219
 
 
220
  # with gr.Row():
221
  # gr.Examples(examples=["chip_102_345_merged.tif", "chip_104_104_merged.tif", "chip_109_421_merged.tif"],
222
  # inputs=inp,
@@ -225,5 +269,17 @@ with gr.Blocks() as demo:
225
  # fn=func,
226
  # cache_examples=True,
227
  # )
 
 
 
 
 
 
 
 
 
 
 
 
228
 
229
  demo.launch()
 
5
  filename="multi_temporal_crop_classification_Prithvi_100M.py",
6
  token=os.environ.get("token"))
7
  ckpt=hf_hub_download(repo_id="ibm-nasa-geospatial/Prithvi-100M-multi-temporal-crop-classification",
8
+ <<<<<<< HEAD
9
  filename='multi_temporal_crop_classification_Prithvi_100M.pth',
10
+ =======
11
+ filename='multi_temporal_crop_classification_best_mIoU_epoch_66.pth',
12
+ >>>>>>> 889a651 (add files)
13
  token=os.environ.get("token"))
14
  ##########
15
  import argparse
 
137
 
138
  # output_image = target_image.replace('.tif', '_pred.tif')
139
  time_taken=-1
140
+ <<<<<<< HEAD
141
  st = time.time()
142
  print('Running inference...')
143
  result = inference_segmentor(model, target_image, custom_test_pipeline)
 
167
  print(f'Inference completed in {str(time_taken)} seconds')
168
 
169
  return rgb1,rgb2,rgb3, result[0][0]
170
+ =======
171
+ try:
172
+ st = time.time()
173
+ print('Running inference...')
174
+ result = inference_segmentor(model, target_image, custom_test_pipeline)
175
+ print("Output has shape: " + str(result[0].shape))
176
+
177
+ ##### get metadata mask
178
+ mask = open_tiff(target_image)
179
+ # rgb = mask[[2, 1, 0], :, :].transpose((1,2,0))
180
+ rgb1 = mask[[2, 1, 0], :, :].transpose((1,2,0))
181
+ rgb2 = mask[[8, 7, 6], :, :].transpose((1,2,0))
182
+ rgb3 = mask[[14, 13, 12], :, :].transpose((1,2,0))
183
+ meta = get_meta(target_image)
184
+ mask = np.where(mask == meta['nodata'], 1, 0)
185
+ mask = np.max(mask, axis=0)[None]
186
+
187
+ result[0] = np.where(mask == 1, -1, result[0])
188
+
189
+ ##### Save file to disk
190
+ meta["count"] = 1
191
+ meta["dtype"] = "int16"
192
+ meta["compress"] = "lzw"
193
+ meta["nodata"] = -1
194
+ print('Saving output...')
195
+ # write_tiff(result[0], output_image, meta)
196
+ et = time.time()
197
+ time_taken = np.round(et - st, 1)
198
+ print(f'Inference completed in {str(time_taken)} seconds')
199
+
200
+ except:
201
+ print(f'Error on image {target_image} \nContinue to next input')
202
+
203
+ return rgb, result[0][0]*255
204
+ >>>>>>> 889a651 (add files)
205
 
206
  def process_test_pipeline(custom_test_pipeline, bands=None):
207
 
 
224
 
225
  return custom_test_pipeline
226
 
227
+ <<<<<<< HEAD
228
 
229
+ =======
230
+ >>>>>>> 889a651 (add files)
231
  config = Config.fromfile(config_path)
232
  config.model.backbone.pretrained=None
233
  model = init_segmentor(config, ckpt, device='cpu')
 
260
 
261
  btn.click(fn=func, inputs=inp, outputs=[inp1, inp2, inp3, out])
262
 
263
+ <<<<<<< HEAD
264
  # with gr.Row():
265
  # gr.Examples(examples=["chip_102_345_merged.tif", "chip_104_104_merged.tif", "chip_109_421_merged.tif"],
266
  # inputs=inp,
 
269
  # fn=func,
270
  # cache_examples=True,
271
  # )
272
+ =======
273
+ with gr.Row():
274
+ gr.Examples(examples=["chip_102_345_merged.tif",
275
+ "chip_104_104_merged.tif",
276
+ "chip_109_421_merged.tif"],
277
+ inputs=inp,
278
+ outputs=[inp1, inp2, inp3, out],
279
+ preprocess=preprocess_example,
280
+ fn=func,
281
+ cache_examples=True,
282
+ )
283
+ >>>>>>> 889a651 (add files)
284
 
285
  demo.launch()