File size: 2,024 Bytes
ee45919
 
 
 
 
 
24347d1
ee45919
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
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()