Spaces:
Build error
Build error
| import gradio as gr | |
| from utils import load_specific_model, inference | |
| from datetime import datetime | |
| import pytz | |
| # current_model = None # Initialize the current model as None | |
| MODEL_NAMES = ["EfficientNet-B3", "EfficientNet-B4", "vgg19", "resnet50", "dinov2_vits14"] | |
| # Define a set of example images | |
| example_images = [ | |
| ("Beispielbild Glas", "src/examples/Glas.jpg"), | |
| ("Beispielbild Organic", "src/examples/Organic.jpg"), | |
| ("Beispielbild Papier", "src/examples/Papier.jpg"), | |
| ("Beispielbild Restmüll", "src/examples/Restmuell.jpg"), | |
| ("Beispielbild Wertstoff", "src/examples/Wertstoff.jpg") | |
| ] | |
| def predict(inp_image, inp_dropdown): | |
| if inp_dropdown is None: | |
| raise gr.Error("No model selected!") | |
| if inp_image is None: | |
| raise gr.Error("No image uploaded!") | |
| if inp_dropdown not in MODEL_NAMES: | |
| raise gr.Error("Invalid model selected!") | |
| # Get the current time in UTC | |
| utc_now = datetime.now(pytz.utc) | |
| # Convert UTC time to German time zone | |
| german_timezone = pytz.timezone('Europe/Berlin') | |
| german_time = utc_now.astimezone(german_timezone) | |
| # Format and print the German time and date | |
| formatted_time = german_time.strftime('%Y-%m-%d %H:%M:%S %Z') | |
| print('Current time and date:', formatted_time) | |
| print(f"\nInput: {inp_dropdown}\n") | |
| current_model = load_specific_model(inp_dropdown) | |
| confidences = inference(current_model, inp_image) | |
| print(f"\nConfidences: {confidences}\n") | |
| return confidences | |
| with gr.Blocks() as demo: | |
| with open('src/app_template.md', 'r') as f: | |
| markdown_string = f.read() | |
| header = gr.Markdown(markdown_string) | |
| with gr.Row(variant="panel", equal_height=True): | |
| user_image = gr.Image( | |
| type="pil", | |
| label="Upload Your Own Image", | |
| info="You can also upload your own image for prediction.", | |
| scale=2, | |
| height=350, | |
| ) | |
| with gr.Column(): | |
| output = gr.Label( | |
| num_top_classes=3, | |
| label="Output", | |
| info="Top three predicted classes and their confidences.", | |
| scale=2, | |
| ) | |
| model_dropdown = gr.Dropdown( | |
| MODEL_NAMES, | |
| value="EfficientNet-B3", | |
| label="Model", | |
| info="Select a model to use.", | |
| scale=1, | |
| ) | |
| predict_button = gr.Button(value="Predict", label="Predict", info="Click to make a prediction.", scale=1) | |
| predict_button.click(fn=predict, inputs=[user_image, model_dropdown], outputs=output, queue=True) | |
| gr.Markdown("## Example Images") | |
| gr.Markdown("You can just drag and drop these images into the image uploader above!") | |
| with gr.Row(): | |
| for name, image_path in example_images: | |
| example_image = gr.Image( | |
| value=image_path, | |
| label=name, | |
| type="pil", | |
| height=220, | |
| interactive=False, | |
| ) | |
| if __name__ == "__main__": | |
| demo.queue() | |
| demo.launch() | |