dewiri's picture
Create app.py
d2dcfe8 verified
import gradio as gr
from transformers import pipeline
# load models
vit_classifier = pipeline("image-classification", model="dewiri/vit-base-oxford-iiit-pets")
clip_detector = pipeline("zero-shot-image-classification",model="openai/clip-vit-large-patch14"
)
# define labels from oxford pets dataset
labels_oxford_pets = [
'Siamese', 'Birman', 'shiba inu', 'staffordshire bull terrier', 'basset hound', 'Bombay', 'japanese chin',
'chihuahua', 'german shorthaired', 'pomeranian', 'beagle', 'english cocker spaniel', 'american pit bull terrier',
'Ragdoll', 'Persian', 'Egyptian Mau', 'miniature pinscher', 'Sphynx', 'Maine Coon', 'keeshond', 'yorkshire terrier',
'havanese', 'leonberger', 'wheaten terrier', 'american bulldog', 'english setter', 'boxer', 'newfoundland', 'Bengal',
'samoyed', 'British Shorthair', 'great pyrenees', 'Abyssinian', 'pug', 'saint bernard', 'Russian Blue', 'scottish terrier'
]
def classify_pet(image):
vit_results = vit_classifier(image)
vit_output = {result['label']: result['score'] for result in vit_results}
clip_results = clip_detector(image, candidate_labels=labels_oxford_pets)
clip_output = {result['label']: result['score'] for result in clip_results}
return {"ViT Classification": vit_output, "CLIP Zero-Shot Classification": clip_output}
# define example images for testing
example_images = [
["example_images/dog1.jpeg"],
["example_images/dog2.jpeg"],
["example_images/leonberger.jpg"],
["example_images/snow_leopard.jpeg"],
["example_images/cat.jpg"]
]
# create the gradio interface
iface = gr.Interface(
fn=classify_pet,
inputs=gr.Image(type="filepath"),
outputs=gr.JSON(),
title="Pet Classification Comparison",
description="Upload an image of a pet, and compare results from a trained ViT model and a zero-shot CLIP model.",
examples=example_images
)
iface.launch()