kebincontreras commited on
Commit
ee45919
·
verified ·
1 Parent(s): e17b898

Upload 4 files

Browse files
Files changed (4) hide show
  1. README.md +39 -0
  2. app.py +62 -0
  3. requirements.txt +86 -0
  4. yolov5s.pt +3 -0
README.md ADDED
@@ -0,0 +1,39 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # cocoa_beans_interfaces
2
+
3
+
4
+
5
+ Requisitos previos
6
+ Python 3.8 o superior.
7
+ Git para clonar el repositorio.
8
+ 1. Clonar el repositorio
9
+ Primero, clona este repositorio:
10
+
11
+
12
+ git clone https://github.com/kebincontreras/cocoa_beans_interfaces.git
13
+ cd cocoa_beans_interfaces
14
+ 2. Crear un entorno virtual
15
+ Para mantener las dependencias aisladas, es recomendable crear un entorno virtual.
16
+
17
+ En Linux / macOS:
18
+
19
+ python3 -m venv interfas_beans_cocoa
20
+ source interfas_beans_cocoa/bin/activate
21
+ En Windows:
22
+
23
+ python -m venv interfas_beans_cocoa
24
+ interfas_beans_cocoa\Scripts\activate
25
+ 3. Instalar dependencias
26
+ Con el entorno virtual activado, instala las dependencias necesarias para el proyecto:
27
+
28
+
29
+ pip install -r requirements.txt
30
+ Este comando instalará todas las librerías especificadas en el archivo requirements.txt, que incluye Gradio, Torch, OpenCV y otras necesarias para la clasificación.
31
+
32
+ 4. Ejecutar la aplicación
33
+ Con el entorno configurado y las dependencias instaladas, ejecuta la aplicación:
34
+
35
+
36
+ python app.py
37
+ Esto iniciará un servidor de Gradio que mostrará la interfaz para subir una imagen de granos de cacao y realizar la clasificación de niveles de fermentación.
38
+
39
+
app.py ADDED
@@ -0,0 +1,62 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import gradio as gr
2
+ import cv2
3
+ import torch
4
+ from PIL import Image
5
+ import numpy as np
6
+
7
+ # Cargar el modelo YOLO (usando YOLOv5 como ejemplo)
8
+ model = torch.hub.load('ultralytics/yolov5', 'yolov5s') # Puedes cambiar 'yolov5s' por cualquier otro modelo
9
+
10
+ # Función para realizar detección de objetos
11
+ def detect_objects(image):
12
+ # Convertir la imagen a un formato compatible con OpenCV
13
+ image = np.array(image)
14
+
15
+ # Hacer la detección con YOLO
16
+ results = model(image)
17
+
18
+ # Renderizar los resultados (dibujar las cajas de detección)
19
+ results_image = results.render()[0]
20
+
21
+ return Image.fromarray(results_image)
22
+
23
+ # Interfaz de Gradio para cargar una imagen
24
+ def gradio_interface():
25
+ with gr.Blocks() as demo:
26
+ # Título centrado
27
+ gr.Markdown(
28
+ """
29
+ <center>
30
+ <h2>Fermentation Level Classification for Cocoa Beans</h2>
31
+ </center>
32
+ """
33
+ )
34
+
35
+ # Botón GitHub centrado justo debajo del título
36
+ gr.Markdown(
37
+ """
38
+ <center>
39
+ <a href="https://github.com/kebincontreras/cocoa_beans_interfaces" target="_blank" style="text-decoration: none;">
40
+ <button style="background-color: #007bff; color: white; padding: 10px 20px; border: none; border-radius: 5px; font-size: 16px;">GitHub</button>
41
+ </a>
42
+ </center>
43
+ """
44
+ )
45
+
46
+ # Organizar imágenes en la misma fila
47
+ with gr.Row():
48
+ img_input = gr.Image(label="Upload Image")
49
+ img_output = gr.Image(label="Image with Detected Objects")
50
+
51
+ # Botón para aplicar la detección de objetos a la imagen subida
52
+ btn_detect_upload = gr.Button("Classify Fermentation Level")
53
+
54
+ # Conectar el botón con la función de detección de objetos
55
+ btn_detect_upload.click(detect_objects, inputs=img_input, outputs=img_output)
56
+
57
+ return demo
58
+
59
+ # Ejecutar la aplicación
60
+ if __name__ == "__main__":
61
+ demo = gradio_interface()
62
+ demo.launch()
requirements.txt ADDED
@@ -0,0 +1,86 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ aiofiles==23.2.1
2
+ annotated-types==0.7.0
3
+ anyio==4.6.0
4
+ certifi==2024.8.30
5
+ charset-normalizer==3.3.2
6
+ click==8.1.7
7
+ contourpy==1.3.0
8
+ cycler==0.12.1
9
+ fastapi==0.115.0
10
+ ffmpy==0.4.0
11
+ filelock==3.16.1
12
+ fonttools==4.54.1
13
+ fsspec==2024.9.0
14
+ gitdb==4.0.11
15
+ GitPython==3.1.43
16
+ gradio==4.44.0
17
+ gradio_client==1.3.0
18
+ h11==0.14.0
19
+ httpcore==1.0.5
20
+ httpx==0.27.2
21
+ huggingface-hub==0.25.1
22
+ idna==3.10
23
+ importlib_resources==6.4.5
24
+ Jinja2==3.1.4
25
+ kiwisolver==1.4.7
26
+ markdown-it-py==3.0.0
27
+ MarkupSafe==2.1.5
28
+ matplotlib==3.9.2
29
+ mdurl==0.1.2
30
+ mpmath==1.3.0
31
+ networkx==3.3
32
+ numpy==1.26.4
33
+ nvidia-cublas-cu12==12.1.3.1
34
+ nvidia-cuda-cupti-cu12==12.1.105
35
+ nvidia-cuda-nvrtc-cu12==12.1.105
36
+ nvidia-cuda-runtime-cu12==12.1.105
37
+ nvidia-cudnn-cu12==9.1.0.70
38
+ nvidia-cufft-cu12==11.0.2.54
39
+ nvidia-curand-cu12==10.3.2.106
40
+ nvidia-cusolver-cu12==11.4.5.107
41
+ nvidia-cusparse-cu12==12.1.0.106
42
+ nvidia-nccl-cu12==2.20.5
43
+ nvidia-nvjitlink-cu12==12.6.68
44
+ nvidia-nvtx-cu12==12.1.105
45
+ opencv-python==4.10.0.84
46
+ orjson==3.10.7
47
+ packaging==24.1
48
+ pandas==2.2.3
49
+ pillow==10.4.0
50
+ psutil==6.0.0
51
+ py-cpuinfo==9.0.0
52
+ pydantic==2.9.2
53
+ pydantic_core==2.23.4
54
+ pydub==0.25.1
55
+ Pygments==2.18.0
56
+ pyparsing==3.1.4
57
+ python-dateutil==2.9.0.post0
58
+ python-multipart==0.0.11
59
+ pytz==2024.2
60
+ PyYAML==6.0.2
61
+ requests==2.32.3
62
+ rich==13.8.1
63
+ ruff==0.6.8
64
+ scipy==1.14.1
65
+ seaborn==0.13.2
66
+ semantic-version==2.10.0
67
+ setuptools==75.1.0
68
+ shellingham==1.5.4
69
+ six==1.16.0
70
+ smmap==5.0.1
71
+ sniffio==1.3.1
72
+ starlette==0.38.6
73
+ sympy==1.13.3
74
+ tomlkit==0.12.0
75
+ torch==2.4.1
76
+ torchvision==0.19.1
77
+ tqdm==4.66.5
78
+ triton==3.0.0
79
+ typer==0.12.5
80
+ typing_extensions==4.12.2
81
+ tzdata==2024.2
82
+ ultralytics==8.2.102
83
+ ultralytics-thop==2.0.8
84
+ urllib3==2.2.3
85
+ uvicorn==0.31.0
86
+ websockets==12.0
yolov5s.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:8b3b748c1e592ddd8868022e8732fde20025197328490623cc16c6f24d0782ee
3
+ size 14808437