File size: 4,789 Bytes
f3b1002
f347918
 
0358302
c4fcb59
724f709
fa4176e
e281804
5e302e0
da8863f
55a6126
9fa4a86
527cca6
01c5bc1
e354e80
f347918
 
 
 
 
 
455a710
0358302
c4fcb59
 
cd3c848
e281804
fa4176e
 
e281804
 
5e302e0
 
da8863f
 
55a6126
 
9fa4a86
 
01c5bc1
 
527cca6
 
f347918
 
dbd1461
08d30fe
 
5e302e0
 
55a6126
527cca6
 
5e302e0
 
 
08d30fe
f347918
 
fa4176e
f347918
08d30fe
 
 
 
 
 
 
5c2777f
527cca6
 
 
 
 
5e302e0
e281804
f347918
a308843
d2ca184
f3b1002
527cca6
 
5e302e0
 
 
 
f347918
 
aa6dbf9
08d30fe
f347918
 
08d30fe
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
80
81
82
83
84
85
86
87
88
89
90
91
92
93
import gradio as gr
from gender_classification import gender_classification
from emotion_classification import emotion_classification
from dog_breed import dog_breed_classification
from deepfake_vs_real import deepfake_classification
from gym_workout_classification import workout_classification
from augmented_waste_classifier import waste_classification
from age_classification import age_classification
from mnist_digits import classify_digit
from fashion_mnist_cloth import fashion_mnist_classification
from indian_western_food_classify import food_classification
from bird_species import bird_classification
from alphabet_sign_language_detection import sign_language_classification
from rice_leaf_disease import classify_leaf_disease

# Main classification function that calls the appropriate model based on selection.
def classify(image, model_name):
    if model_name == "gender":
        return gender_classification(image)
    elif model_name == "emotion":
        return emotion_classification(image)
    elif model_name == "dog breed":
        return dog_breed_classification(image)
    elif model_name == "deepfake":
        return deepfake_classification(image)
    elif model_name == "gym workout":
        return workout_classification(image)
    elif model_name == "waste":
        return waste_classification(image)
    elif model_name == "age":
        return age_classification(image)
    elif model_name == "mnist":
        return classify_digit(image)
    elif model_name == "fashion_mnist":
        return fashion_mnist_classification(image)
    elif model_name == "food":
        return food_classification(image)
    elif model_name == "bird":
        return bird_classification(image)
    elif model_name == "leaf disease":
        return classify_leaf_disease(image)
    elif model_name == "sign language":
        return sign_language_classification(image)
    else:
        return {"Error": "No model selected"}

# Function to update the selected model and button styles.
def select_model(model_name):
    model_variants = {
        "gender": "secondary", "emotion": "secondary", "dog breed": "secondary", "deepfake": "secondary",
        "gym workout": "secondary", "waste": "secondary", "age": "secondary", "mnist": "secondary",
        "fashion_mnist": "secondary", "food": "secondary", "bird": "secondary", "leaf disease": "secondary",
        "sign language": "secondary"
    }
    model_variants[model_name] = "primary"
    return (model_name, *(gr.update(variant=model_variants[key]) for key in model_variants))

with gr.Blocks() as demo:
    with gr.Sidebar():
        gr.Markdown("# SigLIP2 224")
        with gr.Row():
            age_btn = gr.Button("Age Classification", variant="primary")
            gender_btn = gr.Button("Gender Classification", variant="secondary")
            emotion_btn = gr.Button("Emotion Classification", variant="secondary")
            dog_breed_btn = gr.Button("Dog Breed Classification", variant="secondary")
            deepfake_btn = gr.Button("Deepfake vs Real", variant="secondary")
            gym_workout_btn = gr.Button("Gym Workout Classification", variant="secondary")
            waste_btn = gr.Button("Waste Classification", variant="secondary")
            mnist_btn = gr.Button("Digit Classify (0-9)", variant="secondary")
            fashion_mnist_btn = gr.Button("Fashion MNIST", variant="secondary")
            food_btn = gr.Button("Indian/Western Food", variant="secondary")
            bird_btn = gr.Button("Bird Species", variant="secondary")
            leaf_disease_btn = gr.Button("Rice Leaf Disease", variant="secondary")
            sign_language_btn = gr.Button("Sign Language", variant="secondary")
        
        selected_model = gr.State("age")
        gr.Markdown("### Current Model:")
        model_display = gr.Textbox(value="age", interactive=False)
        selected_model.change(lambda m: m, selected_model, model_display)

        buttons = [gender_btn, emotion_btn, dog_breed_btn, deepfake_btn, gym_workout_btn, waste_btn, age_btn, mnist_btn, fashion_mnist_btn, food_btn, bird_btn, leaf_disease_btn, sign_language_btn]
        model_names = ["gender", "emotion", "dog breed", "deepfake", "gym workout", "waste", "age", "mnist", "fashion_mnist", "food", "bird", "leaf disease", "sign language"]
        
        for btn, name in zip(buttons, model_names):
            btn.click(fn=lambda n=name: select_model(n), inputs=[], outputs=[selected_model] + buttons)
    
    with gr.Column():
        image_input = gr.Image(type="numpy", label="Upload Image")
        analyze_btn = gr.Button("Classify / Predict")
        output_label = gr.Label(label="Prediction Scores")
        analyze_btn.click(fn=classify, inputs=[image_input, selected_model], outputs=output_label)

demo.launch()