Spaces:
Build error
Build error
updated page for uploaded files
Browse files- app.py +24 -6
- data/examples/ex1.jfif +0 -0
- data/examples/ex3.jpg +0 -0
- data/examples/ex5.jfif +0 -0
- data/examples/ex6.jpg +0 -0
- data/examples/ex7.jpg +0 -0
- data/examples/ex8.jpeg +0 -0
app.py
CHANGED
@@ -7,6 +7,7 @@ import gdown
|
|
7 |
import numpy as np
|
8 |
import streamlit as st
|
9 |
import torch
|
|
|
10 |
|
11 |
|
12 |
def load_classes(csv_reader):
|
@@ -105,7 +106,7 @@ def load_model(model_path, prefix: str = 'model/'):
|
|
105 |
return model
|
106 |
|
107 |
|
108 |
-
def process_img(model, image, labels, caption: bool = True):
|
109 |
"""
|
110 |
Process img given a model.
|
111 |
|
@@ -113,6 +114,7 @@ def process_img(model, image, labels, caption: bool = True):
|
|
113 |
:param image: image to process
|
114 |
:param model: inference model
|
115 |
:param labels: given labels
|
|
|
116 |
:return:
|
117 |
"""
|
118 |
|
@@ -174,7 +176,8 @@ def process_img(model, image, labels, caption: bool = True):
|
|
174 |
}
|
175 |
cap = '{}'.format(label_name) if caption else ''
|
176 |
draw_caption(image_orig, (x1, y1, x2, y2), cap)
|
177 |
-
cv2.rectangle(image_orig, (x1, y1), (x2, y2), color=colors[label_name],
|
|
|
178 |
|
179 |
return image_orig
|
180 |
|
@@ -194,6 +197,7 @@ ids = {
|
|
194 |
# Download all models from drive
|
195 |
download_models(ids)
|
196 |
|
|
|
197 |
left, right = st.columns([5, 3])
|
198 |
|
199 |
# Model selection
|
@@ -204,15 +208,23 @@ model = load_model(model_path=model_path) if model_path != '' else None
|
|
204 |
# Display example selection
|
205 |
index = left.number_input('', min_value=0, max_value=852, value=495, help='Choose an image. ')
|
206 |
|
207 |
-
#
|
208 |
-
|
209 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
210 |
|
211 |
# Process img
|
212 |
with st.spinner('Please wait while the image is being processed... This may take a while. '):
|
213 |
image = process_img(model, image, labels, caption=False)
|
214 |
|
215 |
-
left.image(image)
|
216 |
|
217 |
# Write labels dict and device on right
|
218 |
right.write({
|
@@ -222,3 +234,9 @@ right.write({
|
|
222 |
})
|
223 |
device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')
|
224 |
right.write(device)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7 |
import numpy as np
|
8 |
import streamlit as st
|
9 |
import torch
|
10 |
+
from PIL import Image
|
11 |
|
12 |
|
13 |
def load_classes(csv_reader):
|
|
|
106 |
return model
|
107 |
|
108 |
|
109 |
+
def process_img(model, image, labels, caption: bool = True, thickness=2):
|
110 |
"""
|
111 |
Process img given a model.
|
112 |
|
|
|
114 |
:param image: image to process
|
115 |
:param model: inference model
|
116 |
:param labels: given labels
|
117 |
+
:param thickness: thickness of bboxes
|
118 |
:return:
|
119 |
"""
|
120 |
|
|
|
176 |
}
|
177 |
cap = '{}'.format(label_name) if caption else ''
|
178 |
draw_caption(image_orig, (x1, y1, x2, y2), cap)
|
179 |
+
cv2.rectangle(image_orig, (x1, y1), (x2, y2), color=colors[label_name],
|
180 |
+
thickness=int(1 * (smallest_side / 100)))
|
181 |
|
182 |
return image_orig
|
183 |
|
|
|
197 |
# Download all models from drive
|
198 |
download_models(ids)
|
199 |
|
200 |
+
# Split page into columns
|
201 |
left, right = st.columns([5, 3])
|
202 |
|
203 |
# Model selection
|
|
|
208 |
# Display example selection
|
209 |
index = left.number_input('', min_value=0, max_value=852, value=495, help='Choose an image. ')
|
210 |
|
211 |
+
# Uploader
|
212 |
+
uploaded = st.file_uploader("Try it out with your own image!", type=['.jpg', '.png', '.jfif'])
|
213 |
+
|
214 |
+
if uploaded is not None:
|
215 |
+
# Convert file to image
|
216 |
+
image = Image.open(uploaded)
|
217 |
+
image = np.array(image)
|
218 |
+
else:
|
219 |
+
# Get corresponding image and transform it
|
220 |
+
image = cv2.imread(f'data/validation/image/maksssksksss{str(index)}.jpg')
|
221 |
+
image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
|
222 |
|
223 |
# Process img
|
224 |
with st.spinner('Please wait while the image is being processed... This may take a while. '):
|
225 |
image = process_img(model, image, labels, caption=False)
|
226 |
|
227 |
+
left.image(cv2.resize(image, (450, 300)))
|
228 |
|
229 |
# Write labels dict and device on right
|
230 |
right.write({
|
|
|
234 |
})
|
235 |
device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')
|
236 |
right.write(device)
|
237 |
+
|
238 |
+
captions = [image for image in os.listdir('data/examples/')]
|
239 |
+
images = [Image.open(f'data/examples/{image}') for image in os.listdir('data/examples/')]
|
240 |
+
|
241 |
+
# Display examples
|
242 |
+
st.image(images, width=350)
|
data/examples/ex1.jfif
ADDED
Binary file (102 kB). View file
|
|
data/examples/ex3.jpg
ADDED
data/examples/ex5.jfif
ADDED
Binary file (173 kB). View file
|
|
data/examples/ex6.jpg
ADDED
data/examples/ex7.jpg
ADDED
data/examples/ex8.jpeg
ADDED