nitinnyadavvv's picture
Update app.py
e08583a verified
import torch
from transformers import AutoImageProcessor, AutoModelForImageClassification
from PIL import Image
import gradio as gr
import io
# Load model and feature extractor
def load_model():
processor = AutoImageProcessor.from_pretrained("therealcyberlord/stanford-car-vit-patch16")
model = AutoModelForImageClassification.from_pretrained("therealcyberlord/stanford-car-vit-patch16")
return processor, model
processor, model = load_model()
# Function to classify image
def classify_image(image):
# Convert image if necessary
if not isinstance(image, Image.Image):
image = Image.open(io.BytesIO(image)).convert("RGB")
inputs = processor(images=image, return_tensors="pt")
with torch.no_grad():
outputs = model(**inputs)
logits = outputs.logits
predicted_class_idx = logits.argmax(-1).item()
labels = model.config.id2label
predicted_class = labels[predicted_class_idx]
return predicted_class
# Define Gradio Interface
app = gr.Interface(
fn=classify_image,
inputs=gr.Image(type="pil"),
outputs="text",
title="Car Classification",
description="Upload a car image to classify its model."
)
# Launch the app
app.launch(share=True)