umutkavakli's picture
app file updated to make system work
a22c082
raw
history blame contribute delete
No virus
2.36 kB
import gradio as gr
from detection import ObjectDetection
examples = [
['test-images/toma_TMV_jpg.rf.fadfed6938fbeef46c39f78a02da3be4.jpg', 0.31],
['test-images/99e886623c2080c22f6519b0e708c531_jpg.rf.83ea9a32bc50cfb2da6e4a39337532cc.jpg', 0.51],
['test-images/early-blight-septoria-ls-fig-3_jpg.rf.7b2e29c077910e0930c16d7aed136121.jpg', 0.39],
['test-images/glyphosate_jpg.rf.01dea2d24a1e3591855a68e077bb625e.jpg', 0.54],
['test-images/image_jpg.rf.d37866429a917dd1bc5352ea1454a472.jpg', 0.41]
]
def get_predictions(img, threshold, box_color, text_color):
v3_results = yolov3_detector.score_frame(img)
v5_results = yolov5_detector.score_frame(img)
v8_results = yolov8_detector.v8_score_frame(img)
v3_frame = yolov3_detector.plot_bboxes(v3_results, img, float(threshold), box_color, text_color)
v5_frame = yolov5_detector.plot_bboxes(v5_results, img, float(threshold), box_color, text_color)
v8_frame = yolov8_detector.plot_bboxes(v8_results, img, float(threshold), box_color, text_color)
return v3_frame, v5_frame, v8_frame
with gr.Blocks(title="Leaf Disease Detection", theme=gr.themes.Monochrome()) as interface:
gr.Markdown("# Leaf Disease Detection")
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="#0000ff")
with gr.Column():
text_color = gr.ColorPicker(label="Prediction Color", value="#ff0000")
confidence = gr.Slider(maximum=1, step=0.01, value=0.4, label="Confidence Threshold", interactive=True)
btn = gr.Button("Detect")
with gr.Row():
v3_prediction = gr.Image(label="YOLOv3")
v5_prediction = gr.Image(label="YOLOv5")
v8_prediction = gr.Image(label="YOLOv8")
btn.click(
get_predictions,
[image, confidence, box_color, text_color],
[v3_prediction, v5_prediction, v8_prediction]
)
with gr.Row():
gr.Examples(examples=examples, inputs=[image, confidence])
yolov3_detector = ObjectDetection('yolov3')
yolov5_detector = ObjectDetection('yolov5')
yolov8_detector = ObjectDetection('yolov8')
interface.launch()