Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
@@ -1,6 +1,8 @@
|
|
1 |
import gradio as gr
|
2 |
import earthview as ev
|
3 |
from PIL import Image
|
|
|
|
|
4 |
import os
|
5 |
import json
|
6 |
import utils
|
@@ -39,7 +41,12 @@ def get_next_sample():
|
|
39 |
# --- Save Labeled Data ---
|
40 |
def save_labeled_data(image, label, state):
|
41 |
global labeled_data
|
42 |
-
|
|
|
|
|
|
|
|
|
|
|
43 |
|
44 |
labeled_data.append({
|
45 |
"image": image_bytes,
|
@@ -52,15 +59,21 @@ def save_labeled_data(image, label, state):
|
|
52 |
|
53 |
new_sample = get_next_sample()
|
54 |
if new_sample is None:
|
|
|
55 |
return "Dataset exhausted.", None, DataFrame()
|
56 |
|
57 |
new_image = new_sample["rgb"][0]
|
58 |
new_metadata = new_sample["metadata"]
|
59 |
new_metadata["map"] = f'<a href="{utils.get_google_map_link(new_sample, DATASET_SUBSET)}" target="_blank">🧭</a>'
|
60 |
-
|
61 |
state["metadata"] = new_metadata # Update metadata in state
|
62 |
|
63 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
64 |
|
65 |
# --- Gradio Interface ---
|
66 |
# --- Labeling UI ---
|
|
|
1 |
import gradio as gr
|
2 |
import earthview as ev
|
3 |
from PIL import Image
|
4 |
+
import numpy as np
|
5 |
+
import random
|
6 |
import os
|
7 |
import json
|
8 |
import utils
|
|
|
41 |
# --- Save Labeled Data ---
|
42 |
def save_labeled_data(image, label, state):
|
43 |
global labeled_data
|
44 |
+
|
45 |
+
# Convert PIL Image to bytes before saving
|
46 |
+
if image is not None:
|
47 |
+
image_bytes = image.convert("RGB").tobytes()
|
48 |
+
else:
|
49 |
+
image_bytes = None
|
50 |
|
51 |
labeled_data.append({
|
52 |
"image": image_bytes,
|
|
|
59 |
|
60 |
new_sample = get_next_sample()
|
61 |
if new_sample is None:
|
62 |
+
print("Dataset exhausted.")
|
63 |
return "Dataset exhausted.", None, DataFrame()
|
64 |
|
65 |
new_image = new_sample["rgb"][0]
|
66 |
new_metadata = new_sample["metadata"]
|
67 |
new_metadata["map"] = f'<a href="{utils.get_google_map_link(new_sample, DATASET_SUBSET)}" target="_blank">🧭</a>'
|
|
|
68 |
state["metadata"] = new_metadata # Update metadata in state
|
69 |
|
70 |
+
# Convert new PIL Image to bytes for sending to client-side
|
71 |
+
if new_image is not None:
|
72 |
+
new_image_bytes = new_image.convert("RGB").tobytes()
|
73 |
+
else:
|
74 |
+
new_image_bytes = None
|
75 |
+
|
76 |
+
return "", new_image_bytes, DataFrame([new_metadata])
|
77 |
|
78 |
# --- Gradio Interface ---
|
79 |
# --- Labeling UI ---
|