Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
@@ -6,12 +6,12 @@ import os
|
|
6 |
|
7 |
# Sample media paths and thumbnails
|
8 |
sample_images = {
|
9 |
-
"Unorganized":
|
10 |
-
"Organized":
|
11 |
}
|
12 |
|
13 |
sample_videos = {
|
14 |
-
"Sample Video":
|
15 |
}
|
16 |
|
17 |
def load_model(model_name):
|
@@ -27,13 +27,13 @@ models = {
|
|
27 |
def detect_image(model_choice, input_image=None, sample_image_choice=None):
|
28 |
model = load_model(models[model_choice])
|
29 |
if sample_image_choice:
|
30 |
-
input_image = Image.open(sample_images[sample_image_choice]
|
31 |
return model.detect_image(input_image)
|
32 |
|
33 |
def detect_video(model_choice, input_video=None, sample_video_choice=None):
|
34 |
model = load_model(models[model_choice])
|
35 |
if sample_video_choice:
|
36 |
-
input_video = sample_videos[sample_video_choice]
|
37 |
return model.detect_video(input_video)
|
38 |
|
39 |
app = gr.Blocks()
|
@@ -42,32 +42,30 @@ with app:
|
|
42 |
gr.Markdown("## Object Detection using TensorFlow Lite Models")
|
43 |
with gr.Row():
|
44 |
model_choice = gr.Dropdown(label="Select Model", choices=list(models.keys()))
|
45 |
-
|
46 |
with gr.Tab("Image Detection"):
|
47 |
with gr.Column():
|
48 |
-
image_input = gr.Image(type="pil", label="Upload an image")
|
49 |
-
gr.
|
50 |
-
|
|
|
|
|
|
|
51 |
image_output = gr.Image(type="pil", label="Detection Result")
|
52 |
gr.Button("Submit Image").click(
|
53 |
fn=detect_image,
|
54 |
inputs=[model_choice, image_input, sample_image_choice],
|
55 |
outputs=image_output
|
56 |
)
|
57 |
-
|
58 |
with gr.Tab("Video Detection"):
|
59 |
with gr.Column():
|
60 |
-
video_input = gr.Video(label="Upload a video")
|
61 |
-
gr.Markdown("### Or select a sample video")
|
62 |
sample_video_choice = gr.Dropdown(
|
63 |
-
label="
|
64 |
-
choices=list(sample_videos.keys()),
|
65 |
value=None
|
66 |
)
|
67 |
-
video_thumbnails = gr.HTML(value="<div>" + "".join([
|
68 |
-
f'<div style="display:inline-block; padding:10px;"><img src="{sample_videos[video][1]}" style="width:150px; cursor:pointer;" onclick="document.querySelector(\'select[name=sample_video_choice]\').value=\'{video}\';"></div>'
|
69 |
-
for video in sample_videos
|
70 |
-
]) + "</div>")
|
71 |
video_output = gr.Video(label="Detection Result")
|
72 |
gr.Button("Submit Video").click(
|
73 |
fn=detect_video,
|
|
|
6 |
|
7 |
# Sample media paths and thumbnails
|
8 |
sample_images = {
|
9 |
+
"Unorganized": "samples/unorganized.jpg",
|
10 |
+
"Organized": "samples/organized.jpg"
|
11 |
}
|
12 |
|
13 |
sample_videos = {
|
14 |
+
"Sample Video": "samples/sample_video.mp4"
|
15 |
}
|
16 |
|
17 |
def load_model(model_name):
|
|
|
27 |
def detect_image(model_choice, input_image=None, sample_image_choice=None):
|
28 |
model = load_model(models[model_choice])
|
29 |
if sample_image_choice:
|
30 |
+
input_image = Image.open(sample_images[sample_image_choice])
|
31 |
return model.detect_image(input_image)
|
32 |
|
33 |
def detect_video(model_choice, input_video=None, sample_video_choice=None):
|
34 |
model = load_model(models[model_choice])
|
35 |
if sample_video_choice:
|
36 |
+
input_video = sample_videos[sample_video_choice]
|
37 |
return model.detect_video(input_video)
|
38 |
|
39 |
app = gr.Blocks()
|
|
|
42 |
gr.Markdown("## Object Detection using TensorFlow Lite Models")
|
43 |
with gr.Row():
|
44 |
model_choice = gr.Dropdown(label="Select Model", choices=list(models.keys()))
|
45 |
+
|
46 |
with gr.Tab("Image Detection"):
|
47 |
with gr.Column():
|
48 |
+
image_input = gr.Image(type="pil", label="Upload an image (or use sample)")
|
49 |
+
sample_image_choice = gr.Dropdown(
|
50 |
+
label="Or select a sample image",
|
51 |
+
choices=[None] + list(sample_images.keys()),
|
52 |
+
value=None
|
53 |
+
)
|
54 |
image_output = gr.Image(type="pil", label="Detection Result")
|
55 |
gr.Button("Submit Image").click(
|
56 |
fn=detect_image,
|
57 |
inputs=[model_choice, image_input, sample_image_choice],
|
58 |
outputs=image_output
|
59 |
)
|
60 |
+
|
61 |
with gr.Tab("Video Detection"):
|
62 |
with gr.Column():
|
63 |
+
video_input = gr.Video(label="Upload a video (or use sample)")
|
|
|
64 |
sample_video_choice = gr.Dropdown(
|
65 |
+
label="Or select a sample video",
|
66 |
+
choices=[None] + list(sample_videos.keys()),
|
67 |
value=None
|
68 |
)
|
|
|
|
|
|
|
|
|
69 |
video_output = gr.Video(label="Detection Result")
|
70 |
gr.Button("Submit Video").click(
|
71 |
fn=detect_video,
|