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, )