VCardWizard / app.py
SarowarSaurav's picture
Update app.py
30f242a verified
raw
history blame
1.63 kB
import gradio as gr
import torch
from transformers import ViTFeatureExtractor, ViTForImageClassification
from PIL import Image
import requests
# Load a pre-trained Vision Transformer model from Hugging Face
model_name = "nateraw/vit-base-patch16-224-in21k" # Replace with the model you've trained or a similar model
model = ViTForImageClassification.from_pretrained(model_name)
feature_extractor = ViTFeatureExtractor.from_pretrained(model_name)
# Define the disease labels (placeholders)
labels = {
0: "Healthy",
1: "Tobacco Mosaic Virus",
2: "Brown Spot",
3: "Frog Eye Leaf Spot",
4: "Other"
}
# Define a function for disease detection
def detect_disease(image):
# Preprocess the image
inputs = feature_extractor(images=image, return_tensors="pt")
# Run the model
with torch.no_grad():
outputs = model(**inputs)
logits = outputs.logits
predicted_class = logits.argmax().item()
# Get disease name from label dictionary
disease_name = labels.get(predicted_class, "Unknown Disease")
return f"Disease Detected: {disease_name}"
# Build Gradio Interface
title = "Tobacco Leaf Disease Detection"
description = """
Upload or take a real-time picture of a tobacco leaf, and the app will detect the disease (if any).
"""
# Create Gradio interface with camera and real-time processing
iface = gr.Interface(
fn=detect_disease,
inputs=gr.Image(source="camera", type="pil", tool="editor"),
outputs="text",
title=title,
description=description,
live=True # Enables real-time processing
)
# Launch Gradio app
iface.launch()