File size: 2,113 Bytes
8d12dce bc18618 17ae7fe 6bb1d3a bc18618 6bb1d3a bc18618 185be2e 6bb1d3a bc18618 6bb1d3a fc5c4f6 bc18618 9da9b42 fc5c4f6 00b5ecc 17ae7fe |
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 |
import gradio as gr
import torch
from transformers import ViTFeatureExtractor, ViTForImageClassification
from PIL import Image
# Define the model and feature extractor
model_name = "KhadijaAsehnoune12/LeafDiseaseDetectorForOranges"
model = ViTForImageClassification.from_pretrained(model_name, num_labels=10, ignore_mismatched_sizes=True)
feature_extractor = ViTFeatureExtractor.from_pretrained(model_name)
# Define the label mapping
id2label = {
"0": "Aleurocanthus spiniferus",
"1": "Chancre citrique",
"2": "Cochenille blanche",
"3": "Dépérissement des agrumes",
"4": "Feuille saine",
"5": "Jaunissement des feuilles",
"6": "Maladie de l'oïdium",
"7": "Maladie du dragon jaune",
"8": "Mineuse des agrumes",
"9": "Trou de balle"
}
def predict(image):
# Preprocess the image
inputs = feature_extractor(images=image, return_tensors="pt")
# Forward pass through the model
outputs = model(**inputs)
# Get the predicted label and confidence score
logits = outputs.logits
predicted_class_idx = logits.argmax(-1).item()
confidence_score = torch.nn.functional.softmax(logits, dim=-1)[0, predicted_class_idx].item()
# Get the label name
predicted_label = id2label[str(predicted_class_idx)]
# Return the predicted label and confidence score
return f"{predicted_label}: {confidence_score:.2f}"
# Create the Gradio interface
image = gr.Image(type="pil")
label = gr.Textbox(label="Prediction")
gr.Interface(fn=predict,
inputs="image",
outputs="text",
title="Citrus Disease Classification",
description="Upload an image of a citrus leaf to classify its disease. The model is trained on the following diseases: Aleurocanthus spiniferus, Chancre citrique, Cochenille blanche, Dépérissement des agrumes, Feuille saine, Jaunissement des feuilles, Maladie de l'oïdium, Maladie du dragon jaune, Mineuse des agrumes, Trou de balle.",
examples=["maladie_du_dragon_jaune.jpg", "mineuse_des_agrumes.jpg","feuille_saine.jpg"]).launch(share=True) |