Pavan2k4 commited on
Commit
0a85650
·
verified ·
1 Parent(s): ebc923b

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +23 -26
app.py CHANGED
@@ -18,7 +18,6 @@ from model.CBAM.reunet_cbam import reunet_cbam
18
  from model.transform import transforms
19
  from model.unet import UNET
20
  from Utils.area import pixel_to_sqft, process_and_overlay_image
21
- from split_merge import split, merge
22
  from Utils.convert import read_pansharpened_rgb
23
 
24
  # Initialize Hugging Face API
@@ -34,12 +33,15 @@ if not HF_TOKEN:
34
  REPO_ID = "Pavan2k4/Building_area"
35
  REPO_TYPE = "space"
36
 
 
 
 
37
  # Define subdirectories
38
- UPLOAD_DIR = "uploaded_images"
39
- MASK_DIR = "generated_masks"
40
- PATCHES_DIR = "patches"
41
- PRED_PATCHES_DIR = "pred_patches"
42
- CSV_LOG_PATH = "image_log.csv"
43
 
44
  def split(image, destination=PATCHES_DIR, patch_size=650):
45
  img = cv2.imread(image)
@@ -111,6 +113,7 @@ def save_to_hf_repo(local_path, repo_path):
111
  repo_type=REPO_TYPE,
112
  token=HF_TOKEN
113
  )
 
114
  except Exception as e:
115
  st.error(f"Error uploading file: {str(e)}")
116
  st.error("Detailed error information:")
@@ -174,7 +177,7 @@ def upload_page():
174
  with open(filepath, "wb") as f:
175
  f.write(bytes_data)
176
 
177
- st.success('File uploaded and saved')
178
 
179
  # Save image to Hugging Face repo
180
  save_to_hf_repo(filepath, f'uploaded_images/{filename}')
@@ -184,11 +187,13 @@ def upload_page():
184
  st.info('Processing GeoTIFF image...')
185
  rgb_image = read_pansharpened_rgb(filepath)
186
  cv2.imwrite(converted_filepath, cv2.cvtColor(rgb_image, cv2.COLOR_RGB2BGR))
 
187
  img = Image.open(converted_filepath)
188
  else:
189
  img = Image.open(filepath)
190
 
191
  st.image(img, caption='Uploaded Image', use_column_width=True)
 
192
 
193
  # Store the full path of the converted image
194
  st.session_state.filename = converted_filename
@@ -225,10 +230,11 @@ def upload_page():
225
 
226
  # Clean up temporary patch files
227
  st.info('Cleaning up temporary files...')
228
- shutil.rmtree(PATCHES_DIR)
229
- shutil.rmtree(PRED_PATCHES_DIR)
230
- os.makedirs(PATCHES_DIR) # Recreate empty folders
231
- os.makedirs(PRED_PATCHES_DIR)
 
232
  else:
233
  # Predict on whole image
234
  st.session_state.tr_img = transforms(img)
@@ -239,8 +245,6 @@ def upload_page():
239
  Image.fromarray(mask).save(mask_filepath)
240
  st.session_state.mask_filename = mask_filename
241
 
242
- st.success('Mask generated and saved')
243
-
244
  # Save mask to Hugging Face repo
245
  mask_filepath = os.path.join(MASK_DIR, st.session_state.mask_filename)
246
  save_to_hf_repo(mask_filepath, f'generated_masks/{st.session_state.mask_filename}')
@@ -255,15 +259,6 @@ def upload_page():
255
  st.error("Please check the logs for more details.")
256
  print(f"Error in upload_page: {str(e)}") # This will appear in the Streamlit logs
257
 
258
- for filename in os.listdir(PATCHES_DIR):
259
- file_path = os.path.join(PATCHES_DIR, filename)
260
- if os.path.isfile(file_path):
261
- os.remove(file_path)
262
- for filename in os.listdir(PRED_PATCHES_DIR):
263
- file_path = os.path.join(PRED_PATCHES_DIR, filename)
264
- if os.path.isfile(file_path):
265
- os.remove(file_path)
266
-
267
  if st.session_state.file_uploaded and st.button('View result'):
268
  if st.session_state.filename is None:
269
  st.error("Please upload an image before viewing the result.")
@@ -280,6 +275,8 @@ def result_page():
280
  if st.button('Back to Upload'):
281
  st.session_state.page = 'upload'
282
  st.session_state.file_uploaded = False
 
 
283
  st.rerun()
284
  return
285
 
@@ -323,8 +320,11 @@ def result_page():
323
  st.error("Image or mask file not found for overlay.")
324
 
325
  if st.button('Back to Upload'):
 
326
  st.session_state.page = 'upload'
327
  st.session_state.file_uploaded = False
 
 
328
  st.rerun()
329
 
330
  def main():
@@ -336,7 +336,4 @@ def main():
336
  if st.session_state.page == 'upload':
337
  upload_page()
338
  elif st.session_state.page == 'result':
339
- result_page()
340
-
341
- if __name__ == '__main__':
342
- main()
 
18
  from model.transform import transforms
19
  from model.unet import UNET
20
  from Utils.area import pixel_to_sqft, process_and_overlay_image
 
21
  from Utils.convert import read_pansharpened_rgb
22
 
23
  # Initialize Hugging Face API
 
33
  REPO_ID = "Pavan2k4/Building_area"
34
  REPO_TYPE = "space"
35
 
36
+ # Define base directory for Hugging Face Spaces
37
+ BASE_DIR = "DATA/"
38
+
39
  # Define subdirectories
40
+ UPLOAD_DIR = os.path.join(BASE_DIR, "uploaded_images")
41
+ MASK_DIR = os.path.join(BASE_DIR, "generated_masks")
42
+ PATCHES_DIR = os.path.join(BASE_DIR, "patches")
43
+ PRED_PATCHES_DIR = os.path.join(BASE_DIR, "pred_patches")
44
+ CSV_LOG_PATH = os.path.join(BASE_DIR, "image_log.csv")
45
 
46
  def split(image, destination=PATCHES_DIR, patch_size=650):
47
  img = cv2.imread(image)
 
113
  repo_type=REPO_TYPE,
114
  token=HF_TOKEN
115
  )
116
+ st.success(f"File uploaded successfully to {repo_path}")
117
  except Exception as e:
118
  st.error(f"Error uploading file: {str(e)}")
119
  st.error("Detailed error information:")
 
177
  with open(filepath, "wb") as f:
178
  f.write(bytes_data)
179
 
180
+ st.success(f"Image saved to {filepath}")
181
 
182
  # Save image to Hugging Face repo
183
  save_to_hf_repo(filepath, f'uploaded_images/{filename}')
 
187
  st.info('Processing GeoTIFF image...')
188
  rgb_image = read_pansharpened_rgb(filepath)
189
  cv2.imwrite(converted_filepath, cv2.cvtColor(rgb_image, cv2.COLOR_RGB2BGR))
190
+ st.success(f'GeoTIFF converted to 8-bit image and saved as {converted_filename}')
191
  img = Image.open(converted_filepath)
192
  else:
193
  img = Image.open(filepath)
194
 
195
  st.image(img, caption='Uploaded Image', use_column_width=True)
196
+ st.success(f'Image processed and saved as {converted_filename}')
197
 
198
  # Store the full path of the converted image
199
  st.session_state.filename = converted_filename
 
230
 
231
  # Clean up temporary patch files
232
  st.info('Cleaning up temporary files...')
233
+ for file in os.listdir(PATCHES_DIR):
234
+ os.remove(os.path.join(PATCHES_DIR, file))
235
+ for file in os.listdir(PRED_PATCHES_DIR):
236
+ os.remove(os.path.join(PRED_PATCHES_DIR, file))
237
+ st.success('Temporary files cleaned up')
238
  else:
239
  # Predict on whole image
240
  st.session_state.tr_img = transforms(img)
 
245
  Image.fromarray(mask).save(mask_filepath)
246
  st.session_state.mask_filename = mask_filename
247
 
 
 
248
  # Save mask to Hugging Face repo
249
  mask_filepath = os.path.join(MASK_DIR, st.session_state.mask_filename)
250
  save_to_hf_repo(mask_filepath, f'generated_masks/{st.session_state.mask_filename}')
 
259
  st.error("Please check the logs for more details.")
260
  print(f"Error in upload_page: {str(e)}") # This will appear in the Streamlit logs
261
 
 
 
 
 
 
 
 
 
 
262
  if st.session_state.file_uploaded and st.button('View result'):
263
  if st.session_state.filename is None:
264
  st.error("Please upload an image before viewing the result.")
 
275
  if st.button('Back to Upload'):
276
  st.session_state.page = 'upload'
277
  st.session_state.file_uploaded = False
278
+ st.session_state.filename = None
279
+ st.session_state.mask_filename = None
280
  st.rerun()
281
  return
282
 
 
320
  st.error("Image or mask file not found for overlay.")
321
 
322
  if st.button('Back to Upload'):
323
+
324
  st.session_state.page = 'upload'
325
  st.session_state.file_uploaded = False
326
+ st.session_state.filename = None
327
+ st.session_state.mask_filename = None
328
  st.rerun()
329
 
330
  def main():
 
336
  if st.session_state.page == 'upload':
337
  upload_page()
338
  elif st.session_state.page == 'result':
339
+ result_page()