|
import gradio as gr |
|
from detection import ObjectDetection |
|
|
|
examples = [ |
|
['test-images/plant1.jpeg', 0.23], |
|
['test-images/plant2.jpeg', 0.45], |
|
['test-images/plant3.webp', 0.43], |
|
] |
|
|
|
def get_predictions(img, threshold, box_color, text_color): |
|
v8_results = yolov8_detector.v8_score_frame(img) |
|
v8_frame = yolov8_detector.plot_bboxes(v8_results, img, float(threshold), box_color, text_color) |
|
return v8_frame |
|
|
|
|
|
yolov8_detector = ObjectDetection('Yolov8') |
|
|
|
with gr.Blocks(title="Plant Leaf Detection and Classification", theme=gr.themes.Soft()) as interface: |
|
gr.Markdown("# Plant Leaf Detection and Classification🍃") |
|
gr.Markdown("This app uses YOLOv8s, a powerful object detection model, to detect and classify plant leaves. " |
|
"The model can detect various plant leaves and classify them into up to 45 different plant categories, " |
|
"whether the leafs are diseased or healthy.") |
|
gr.Markdown("If you like this app, don't forget to give it a thumbs up on Hugging Face!😊❤️@ www.Foduu.com") |
|
|
|
with gr.Row(): |
|
with gr.Column(): |
|
image = gr.Image(label="Input Image") |
|
with gr.Column(): |
|
with gr.Row(): |
|
with gr.Column(): |
|
box_color = gr.ColorPicker(label="Box Color", value="#FF8C00") |
|
with gr.Column(): |
|
text_color = gr.ColorPicker(label="Prediction Color", value="#000000") |
|
|
|
confidence = gr.Slider(maximum=1, step=0.01, value=0.6, label="Confidence Threshold", interactive=True) |
|
btn = gr.Button("Detect") |
|
|
|
with gr.Row(): |
|
with gr.Box(): |
|
v8_prediction = gr.Image(label="Leaf Detection and Classification",height=100,width=100) |
|
|
|
btn.click( |
|
get_predictions, |
|
[image, confidence, box_color, text_color], |
|
[v8_prediction] |
|
) |
|
|
|
with gr.Row(): |
|
gr.Examples(examples=examples, inputs=[image, confidence]) |
|
|
|
interface.launch() |
|
|