File size: 2,532 Bytes
7c54047 | 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 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 | import cv2
import numpy as np
import gradio as gr
from ultralytics import YOLO
def predict(path: str):
model = YOLO("yolo11s.yaml")
model = YOLO("best.pt")
imagen = cv2.imread(path)
results = model.predict(source=path)
for r in results:
return r.plot()
# Definimos un tema personalizado
theme = gr.themes.Base(
primary_hue="blue",
secondary_hue="gray",
neutral_hue="gray",
font=["Helvetica", "ui-sans-serif", "system-ui", "sans-serif"],
).set(
button_primary_background_fill="*primary_500",
button_primary_background_fill_hover="*primary_600",
button_primary_text_color="white",
block_title_text_color="*primary_500",
block_label_text_size="lg",
checkbox_label_text_size="lg",
input_background_fill="*neutral_50",
)
# Creamos la interfaz con diseño personalizado
with gr.Blocks(theme=theme, css="footer {display: none !important}") as demo:
gr.Markdown(
"""
# 🚗 Sistema de Clasificación de Neumáticos
## Detección Automatizada de Estado y Condiciones
Este sistema utiliza inteligencia artificial para analizar y clasificar el estado de los neumáticos
a partir de imágenes. Simplemente suba una foto y el sistema realizará el análisis automáticamente.
"""
)
with gr.Row():
with gr.Column():
input_image = gr.Image(
type="filepath",
label="Imagen de Entrada",
elem_id="input_image"
)
submit_btn = gr.Button(
"Analizar Neumático",
variant="primary",
size="lg"
)
with gr.Column():
output_image = gr.Image(
type="numpy",
label="Resultado del Análisis"
)
with gr.Row():
gr.Markdown(
"""
### Instrucciones de Uso:
1. Suba una imagen clara del neumático que desea analizar
2. Haga clic en "Analizar Neumático"
3. Espere unos segundos mientras el sistema procesa la imagen
4. Los resultados se mostrarán en el panel derecho
"""
)
# Configuramos el evento de clic del botón
submit_btn.click(
fn=predict,
inputs=input_image,
outputs=output_image,
)
# Lanzamos la aplicación
demo.launch(
share=True,
debug=False,
enable_queue=True,
server_name="0.0.0.0",
server_port=7860,
) |