leaf-counter / app.py
muskangoyal06's picture
Update app.py
f87cf07 verified
raw
history blame
1.29 kB
import torch
from ultralytics.nn.tasks import DetectionModel
from torch.nn.modules.container import Sequential
from ultralytics.nn.modules import Conv # Import Conv
# Whitelist safe globals for unpickling (only if you trust the model checkpoint!)
torch.serialization.add_safe_globals([DetectionModel, Sequential, Conv])
from huggingface_hub import hf_hub_download
from ultralytics import YOLO
import gradio as gr
from PIL import Image
# Download the weights file (ensure the filename is correct)
weights_path = hf_hub_download(
repo_id="foduucom/plant-leaf-detection-and-classification",
filename="best.pt"
)
# Load the model using the local weights file
model = YOLO(weights_path)
def predict_leaves(image_path):
# Run prediction on the provided image
results = model.predict(source=image_path, save=True)
# Count the number of detected leaves (using the first result)
count = len(results[0].boxes)
return f"Detected leaves: {count}"
# Create a Gradio interface for your app
iface = gr.Interface(
fn=predict_leaves,
inputs=gr.Image(type="filepath"),
outputs="text",
title="Leaf Detection & Classification",
description="Upload an image to detect and count leaves using the YOLO model."
)
if __name__ == "__main__":
iface.launch()