Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
|
@@ -72,18 +72,22 @@ def refine_mask(mask, blur_kernel=5, threshold_value=127, morph_kernel_size=3, m
|
|
| 72 |
|
| 73 |
# save to dir func
|
| 74 |
def save_to_hf_repo(local_path, repo_path):
|
|
|
|
|
|
|
|
|
|
|
|
|
| 75 |
try:
|
| 76 |
-
|
| 77 |
-
|
| 78 |
-
|
| 79 |
-
|
| 80 |
-
|
| 81 |
-
|
| 82 |
-
|
|
|
|
| 83 |
st.success(f"File uploaded successfully to {repo_path}")
|
| 84 |
except Exception as e:
|
| 85 |
-
st.error(f"
|
| 86 |
-
|
| 87 |
st.exception(e)
|
| 88 |
|
| 89 |
|
|
@@ -228,18 +232,8 @@ def upload_page():
|
|
| 228 |
filepath = os.path.join(UPLOAD_DIR, filename)
|
| 229 |
converted_filepath = os.path.join(UPLOAD_DIR, converted_filename)
|
| 230 |
|
| 231 |
-
|
| 232 |
-
|
| 233 |
-
|
| 234 |
-
#st.success(f"Image saved to {filepath}")
|
| 235 |
-
|
| 236 |
-
# Save image to Hugging Face repo----------------------------------------------------------------------------------------------------------------------------------
|
| 237 |
-
|
| 238 |
-
try:
|
| 239 |
-
image_repo_path = f"images/{converted_filename}"
|
| 240 |
-
save_to_hf_repo(converted_filepath, image_repo_path)
|
| 241 |
-
except Exception as e:
|
| 242 |
-
st.error(f"Error saving image to Hugging Face repo: {str(e)}")
|
| 243 |
|
| 244 |
# Check if the uploaded file is a GeoTIFF
|
| 245 |
if file_extension in ['.tiff', '.tif']:
|
|
@@ -250,6 +244,14 @@ def upload_page():
|
|
| 250 |
img = Image.open(converted_filepath)
|
| 251 |
else:
|
| 252 |
img = Image.open(filepath)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 253 |
|
| 254 |
st.image(img, caption='Uploaded Image', use_column_width=True)
|
| 255 |
st.success(f'Image processed and saved as {converted_filename}')
|
|
@@ -272,22 +274,43 @@ def upload_page():
|
|
| 272 |
prediction = predict(img_transformed)
|
| 273 |
full_mask = (prediction > 0.5).astype(np.uint8) * 255
|
| 274 |
|
| 275 |
-
|
| 276 |
-
|
| 277 |
-
# Save the full mask---------------------------------------------------------------------------------------------------
|
| 278 |
full_mask = refine_mask(full_mask)
|
| 279 |
mask_filename = f"mask_{timestamp}.png"
|
| 280 |
mask_filepath = os.path.join(MASK_DIR, mask_filename)
|
| 281 |
cv2.imwrite(mask_filepath, full_mask)
|
| 282 |
st.session_state.mask_filename = mask_filename
|
| 283 |
|
| 284 |
-
|
| 285 |
try:
|
| 286 |
-
|
| 287 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 288 |
except Exception as e:
|
| 289 |
st.error(f"Error saving mask to Hugging Face repo: {str(e)}")
|
| 290 |
-
|
| 291 |
|
| 292 |
# Log image details
|
| 293 |
log_image_details(timestamp, converted_filename, mask_filename)
|
|
|
|
| 72 |
|
| 73 |
# save to dir func
|
| 74 |
def save_to_hf_repo(local_path, repo_path):
|
| 75 |
+
if not os.path.isfile(local_path):
|
| 76 |
+
st.error(f"File not found at {local_path}")
|
| 77 |
+
return
|
| 78 |
+
|
| 79 |
try:
|
| 80 |
+
with open(local_path, 'rb') as f:
|
| 81 |
+
hf_api.upload_file(
|
| 82 |
+
path_or_fileobj=f,
|
| 83 |
+
path_in_repo=repo_path,
|
| 84 |
+
repo_id=REPO_ID,
|
| 85 |
+
repo_type=REPO_TYPE,
|
| 86 |
+
token=HF_TOKEN
|
| 87 |
+
)
|
| 88 |
st.success(f"File uploaded successfully to {repo_path}")
|
| 89 |
except Exception as e:
|
| 90 |
+
st.error(f"Error during upload: {str(e)}")
|
|
|
|
| 91 |
st.exception(e)
|
| 92 |
|
| 93 |
|
|
|
|
| 232 |
filepath = os.path.join(UPLOAD_DIR, filename)
|
| 233 |
converted_filepath = os.path.join(UPLOAD_DIR, converted_filename)
|
| 234 |
|
| 235 |
+
with open(filepath, "wb") as f:
|
| 236 |
+
f.write(bytes_data)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 237 |
|
| 238 |
# Check if the uploaded file is a GeoTIFF
|
| 239 |
if file_extension in ['.tiff', '.tif']:
|
|
|
|
| 244 |
img = Image.open(converted_filepath)
|
| 245 |
else:
|
| 246 |
img = Image.open(filepath)
|
| 247 |
+
img.save(converted_filepath)
|
| 248 |
+
|
| 249 |
+
if os.path.exists(converted_filepath):
|
| 250 |
+
st.success(f"Image saved successfully: {converted_filepath}")
|
| 251 |
+
file_size = os.path.getsize(converted_filepath)
|
| 252 |
+
st.write(f"File size: {file_size} bytes")
|
| 253 |
+
else:
|
| 254 |
+
st.error(f"Failed to save image: {converted_filepath}")
|
| 255 |
|
| 256 |
st.image(img, caption='Uploaded Image', use_column_width=True)
|
| 257 |
st.success(f'Image processed and saved as {converted_filename}')
|
|
|
|
| 274 |
prediction = predict(img_transformed)
|
| 275 |
full_mask = (prediction > 0.5).astype(np.uint8) * 255
|
| 276 |
|
| 277 |
+
# Save the full mask
|
|
|
|
|
|
|
| 278 |
full_mask = refine_mask(full_mask)
|
| 279 |
mask_filename = f"mask_{timestamp}.png"
|
| 280 |
mask_filepath = os.path.join(MASK_DIR, mask_filename)
|
| 281 |
cv2.imwrite(mask_filepath, full_mask)
|
| 282 |
st.session_state.mask_filename = mask_filename
|
| 283 |
|
| 284 |
+
# Upload to Hugging Face repo
|
| 285 |
try:
|
| 286 |
+
with open(converted_filepath, 'rb') as f:
|
| 287 |
+
image_repo_path = f"images/{converted_filename}"
|
| 288 |
+
hf_api.upload_file(
|
| 289 |
+
path_or_fileobj=f,
|
| 290 |
+
path_in_repo=image_repo_path,
|
| 291 |
+
repo_id=REPO_ID,
|
| 292 |
+
repo_type=REPO_TYPE,
|
| 293 |
+
token=HF_TOKEN
|
| 294 |
+
)
|
| 295 |
+
st.success(f"Image uploaded successfully to {image_repo_path}")
|
| 296 |
+
except Exception as e:
|
| 297 |
+
st.error(f"Error saving image to Hugging Face repo: {str(e)}")
|
| 298 |
+
st.exception(e)
|
| 299 |
+
|
| 300 |
+
try:
|
| 301 |
+
with open(mask_filepath, 'rb') as f:
|
| 302 |
+
mask_repo_path = f"masks/{mask_filename}"
|
| 303 |
+
hf_api.upload_file(
|
| 304 |
+
path_or_fileobj=f,
|
| 305 |
+
path_in_repo=mask_repo_path,
|
| 306 |
+
repo_id=REPO_ID,
|
| 307 |
+
repo_type=REPO_TYPE,
|
| 308 |
+
token=HF_TOKEN
|
| 309 |
+
)
|
| 310 |
+
st.success(f"Mask uploaded successfully to {mask_repo_path}")
|
| 311 |
except Exception as e:
|
| 312 |
st.error(f"Error saving mask to Hugging Face repo: {str(e)}")
|
| 313 |
+
st.exception(e)
|
| 314 |
|
| 315 |
# Log image details
|
| 316 |
log_image_details(timestamp, converted_filename, mask_filename)
|