| import gradio as gr | |
| import cv2 | |
| import torch | |
| from PIL import Image | |
| import numpy as np | |
| # Cargar el modelo YOLO (usando YOLOv5 como ejemplo) | |
| model = torch.hub.load('ultralytics/yolov5', 'yolov5s') # Puedes cambiar 'yolov5s' por cualquier otro modelo | |
| # Funci贸n para realizar detecci贸n de objetos | |
| def detect_objects(image): | |
| # Convertir la imagen a un formato compatible con OpenCV | |
| image = np.array(image) | |
| # Hacer la detecci贸n con YOLO | |
| results = model(image) | |
| # Renderizar los resultados (dibujar las cajas de detecci贸n) | |
| results_image = results.render()[0] | |
| return Image.fromarray(results_image) | |
| # Interfaz de Gradio para cargar una imagen | |
| def gradio_interface(): | |
| with gr.Blocks() as demo: | |
| # T铆tulo centrado | |
| gr.Markdown( | |
| """ | |
| <center> | |
| <h2>Fermentation Level Classification for Cocoa Beans</h2> | |
| </center> | |
| """ | |
| ) | |
| # Bot贸n GitHub centrado justo debajo del t铆tulo | |
| gr.Markdown( | |
| """ | |
| <center> | |
| <a href="https://github.com/kebincontreras/cocoa_beans_interfaces" target="_blank" style="text-decoration: none;"> | |
| <button style="background-color: #007bff; color: white; padding: 10px 20px; border: none; border-radius: 5px; font-size: 16px;">GitHub</button> | |
| </a> | |
| </center> | |
| """ | |
| ) | |
| # Organizar im谩genes en la misma fila | |
| with gr.Row(): | |
| img_input = gr.Image(label="Upload Image") | |
| img_output = gr.Image(label="Image with Detected Objects") | |
| # Bot贸n para aplicar la detecci贸n de objetos a la imagen subida | |
| btn_detect_upload = gr.Button("Classify Fermentation Level") | |
| # Conectar el bot贸n con la funci贸n de detecci贸n de objetos | |
| btn_detect_upload.click(detect_objects, inputs=img_input, outputs=img_output) | |
| return demo | |
| # Ejecutar la aplicaci贸n | |
| if __name__ == "__main__": | |
| demo = gradio_interface() | |
| demo.launch() | |