Spaces:
Sleeping
Sleeping
File size: 2,672 Bytes
d2163ed 7c3c7c7 60cc40e de627a9 9a0384b de627a9 32758aa de627a9 9a0384b de627a9 7c3c7c7 d2163ed de627a9 d2163ed de627a9 9a0384b 3166044 d2163ed de627a9 d2163ed de627a9 9a0384b 4f3c5b0 15b8b99 d2163ed cde9fad 9a0384b d2163ed 60cc40e 9a0384b 60cc40e de627a9 60cc40e 9a0384b d2163ed 60cc40e 9a0384b de627a9 9a0384b de627a9 60cc40e de627a9 60cc40e d2163ed 3166044 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 |
import importlib
import gradio as gr
from PIL import Image
import cv2
import os
# Sample media paths and thumbnails
sample_images = {
"Unorganized": "samples/unorganized.jpg",
"Organized": "samples/organized.jpg"
}
sample_videos = {
"Sample Video": "samples/sample_video.mp4"
}
def load_model(model_name):
module = importlib.import_module(model_name)
return module
models = {
"Multi-class model": "model_1",
"Empty class": "model_2",
"Misalignment class": "model_3"
}
def detect_image(model_choice, input_image=None, sample_image_choice=None):
model = load_model(models[model_choice])
if sample_image_choice:
input_image = Image.open(sample_images[sample_image_choice])
return model.detect_image(input_image)
def detect_video(model_choice, input_video=None, sample_video_choice=None):
model = load_model(models[model_choice])
if sample_video_choice:
input_video = sample_videos[sample_video_choice]
output_video_path = model.detect_video(input_video)
return output_video_path
app = gr.Blocks()
with app:
gr.Markdown("## Object Detection using TensorFlow Lite Models")
with gr.Row():
model_choice = gr.Dropdown(label="Select Model", choices=list(models.keys()), value="Multi-class model")
with gr.Tab("Image Detection"):
with gr.Column():
image_input = gr.Image(type="pil", label="Upload an image (or use sample)")
sample_image_choice = gr.Dropdown(
label="Or select a sample image",
choices=[None] + list(sample_images.keys()),
value=None
)
image_output = gr.Image(type="pil", label="Detection Result")
gr.Button("Submit Image").click(
fn=detect_image,
inputs=[model_choice, image_input, sample_image_choice],
outputs=image_output
)
with gr.Tab("Video Detection"):
with gr.Column():
video_input = gr.Video(label="Upload a video (or use sample)")
sample_video_choice = gr.Dropdown(
label="Or select a sample video",
choices=[None] + list(sample_videos.keys()),
value=None
)
video_output = gr.Video(label="Detection Result")
gr.Button("Submit Video").click(
fn=detect_video,
inputs=[model_choice, video_input, sample_video_choice],
outputs=video_output
)
app.launch(share=True)
|