poudel's picture
Update app.py
80b308a verified
import gradio as gr
from ultralytics import YOLO
from PIL import Image
import numpy as np
# Load the YOLOv8 model
best_model = YOLO('https://huggingface.co/poudel/yolov8-cargo-package-counter/resolve/main/best.pt')
# Function to detect and count packages
def count_packages(image):
# Convert the PIL image to a NumPy array
image = np.array(image)
# Run inference using the loaded YOLO model
results = best_model(image)
# Get the number of detected boxes (packages)
package_count = len(results[0].boxes)
# Annotate the image with the detected boxes
annotated_image = results[0].plot()
# Return the package count and the annotated image
return package_count, annotated_image
# Gradio interface
inputs = gr.Image(type="pil", label="Upload an Image")
outputs = [gr.Textbox(label="Package Count"),
gr.Image(type="numpy", label="Annotated Image")]
# Launch the Gradio app
gr.Interface(fn=count_packages,
inputs=inputs,
outputs=outputs,
title="Cargo Package Counting App",
description="Upload an image to count the number of packages detected.").launch()