Saltar al contenido

Detecci贸n interactiva de objetos: Gradio y Ultralytics YOLOv8 馃殌

Introducci贸n a la detecci贸n interactiva de objetos

Esta interfaz de Gradio proporciona una forma f谩cil e interactiva de realizar la detecci贸n de objetos utilizando el Ultralytics YOLOv8 modelo. Los usuarios pueden cargar im谩genes y ajustar par谩metros como el umbral de confianza y el umbral de intersecci贸n sobre uni贸n (IoU) para obtener resultados de detecci贸n en tiempo real.



Observa: Integraci贸n de Gradio con Ultralytics YOLOv8

驴Por qu茅 utilizar Gradio para la detecci贸n de objetos?

  • Interfaz f谩cil de usar: Gradio ofrece una plataforma sencilla para que los usuarios suban im谩genes y visualicen los resultados de la detecci贸n sin ning煤n requisito de codificaci贸n.
  • Ajustes en Tiempo Real: Par谩metros como los umbrales de confianza y de IoU pueden ajustarse sobre la marcha, lo que permite una respuesta inmediata y la optimizaci贸n de los resultados de detecci贸n.
  • Amplia accesibilidad: Cualquiera puede acceder a la interfaz web de Gradio, lo que la convierte en una herramienta excelente para demostraciones, fines educativos y experimentos r谩pidos.

Captura de pantalla de ejemplo de Gradio

C贸mo instalar el Gradio

pip install gradio

C贸mo utilizar la interfaz

  1. Subir Imagen: Haz clic en "Cargar imagen" para elegir un archivo de imagen para la detecci贸n de objetos.
  2. Ajusta los par谩metros:
    • Umbral de Confianza: Control deslizante para fijar el nivel m铆nimo de confianza para detectar objetos.
    • Umbral IoU: Control deslizante para fijar el umbral de IoU para distinguir diferentes objetos.
  3. Ver resultados: Se mostrar谩 la imagen procesada con los objetos detectados y sus etiquetas.

Ejemplos de casos pr谩cticos

  • Imagen de ejemplo 1: Detecci贸n de autob煤s con umbrales por defecto.
  • Imagen de muestra 2: Detecci贸n en una imagen deportiva con los umbrales por defecto.

Ejemplo de uso

Esta secci贸n proporciona el c贸digo Python utilizado para crear la interfaz de Gradio con el modelo Ultralytics YOLOv8 . Admite tareas de clasificaci贸n, tareas de detecci贸n, tareas de segmentaci贸n y tareas de puntos clave.

import gradio as gr
import PIL.Image as Image

from ultralytics import ASSETS, YOLO

model = YOLO("yolov8n.pt")


def predict_image(img, conf_threshold, iou_threshold):
    """Predicts objects in an image using a YOLOv8 model with adjustable confidence and IOU thresholds."""
    results = model.predict(
        source=img,
        conf=conf_threshold,
        iou=iou_threshold,
        show_labels=True,
        show_conf=True,
        imgsz=640,
    )

    for r in results:
        im_array = r.plot()
        im = Image.fromarray(im_array[..., ::-1])

    return im


iface = gr.Interface(
    fn=predict_image,
    inputs=[
        gr.Image(type="pil", label="Upload Image"),
        gr.Slider(minimum=0, maximum=1, value=0.25, label="Confidence threshold"),
        gr.Slider(minimum=0, maximum=1, value=0.45, label="IoU threshold"),
    ],
    outputs=gr.Image(type="pil", label="Result"),
    title="Ultralytics Gradio",
    description="Upload images for inference. The Ultralytics YOLOv8n model is used by default.",
    examples=[
        [ASSETS / "bus.jpg", 0.25, 0.45],
        [ASSETS / "zidane.jpg", 0.25, 0.45],
    ],
)

if __name__ == "__main__":
    iface.launch()

Par谩metros Explicaci贸n

Nombre del par谩metro Tipo Descripci贸n
img Image La imagen sobre la que se realizar谩 la detecci贸n de objetos.
conf_threshold float Umbral de confianza para detectar objetos.
iou_threshold float Umbral de intersecci贸n-sobre-uni贸n para la separaci贸n de objetos.

Componentes de la interfaz de Gradio

Componente Descripci贸n
Entrada de im谩genes Para subir la imagen para su detecci贸n.
Deslizadores Para ajustar los umbrales de confianza y de IoU.
Salida de imagen Para mostrar los resultados de la detecci贸n.

PREGUNTAS FRECUENTES

驴C贸mo utilizo Gradio con Ultralytics YOLOv8 para la detecci贸n de objetos?

Para utilizar Gradio con Ultralytics YOLOv8 para la detecci贸n de objetos, puedes seguir estos pasos:

  1. Instala Gradio: Utiliza el comando pip install gradio.
  2. Crear interfaz: Escribe un script Python para inicializar la interfaz de Gradio. Puedes consultar el ejemplo de c贸digo proporcionado en la documentaci贸n para m谩s detalles.
  3. Subir y ajustar: Sube tu imagen y ajusta los umbrales de confianza e IoU en la interfaz de Gradio para obtener resultados de detecci贸n de objetos en tiempo real.

Aqu铆 tienes un fragmento de c贸digo m铆nimo como referencia:

import gradio as gr

from ultralytics import YOLO

model = YOLO("yolov8n.pt")


def predict_image(img, conf_threshold, iou_threshold):
    results = model.predict(
        source=img,
        conf=conf_threshold,
        iou=iou_threshold,
        show_labels=True,
        show_conf=True,
    )
    return results[0].plot() if results else None


iface = gr.Interface(
    fn=predict_image,
    inputs=[
        gr.Image(type="pil", label="Upload Image"),
        gr.Slider(minimum=0, maximum=1, value=0.25, label="Confidence threshold"),
        gr.Slider(minimum=0, maximum=1, value=0.45, label="IoU threshold"),
    ],
    outputs=gr.Image(type="pil", label="Result"),
    title="Ultralytics Gradio YOLOv8",
    description="Upload images for YOLOv8 object detection.",
)
iface.launch()

驴Qu茅 ventajas tiene utilizar Gradio para la detecci贸n de objetos en Ultralytics YOLOv8 ?

Utilizar Gradio para la detecci贸n de objetos en Ultralytics YOLOv8 ofrece varias ventajas:

  • Interfaz f谩cil de usar: Gradio proporciona una interfaz intuitiva para que los usuarios suban im谩genes y visualicen los resultados de la detecci贸n sin ning煤n esfuerzo de codificaci贸n.
  • Ajustes en tiempo real: Puedes ajustar din谩micamente los par谩metros de detecci贸n, como los umbrales de confianza e IoU, y ver los efectos inmediatamente.
  • Accesibilidad: La interfaz web es accesible para cualquiera, lo que la hace 煤til para experimentos r谩pidos, fines educativos y demostraciones.

Para m谩s detalles, puedes leer esta entrada del blog.

驴Puedo utilizar Gradio y Ultralytics YOLOv8 juntos con fines educativos?

S铆, Gradio y Ultralytics YOLOv8 pueden utilizarse juntos con fines educativos de forma eficaz. La intuitiva interfaz web de Gradio facilita a estudiantes y educadores la interacci贸n con modelos de aprendizaje profundo de 煤ltima generaci贸n, como Ultralytics YOLOv8 , sin necesidad de conocimientos avanzados de programaci贸n. Esta configuraci贸n es ideal para demostrar conceptos clave en la detecci贸n de objetos y la visi贸n por ordenador, ya que Gradio proporciona informaci贸n visual inmediata que ayuda a comprender el impacto de los distintos par谩metros en el rendimiento de la detecci贸n.

驴C贸mo ajusto los umbrales de confianza e IoU en la interfaz de Gradio para YOLOv8?

En la interfaz de Gradio para YOLOv8, puedes ajustar los umbrales de confianza e IoU utilizando los controles deslizantes que se proporcionan. Estos umbrales ayudan a controlar la precisi贸n de la predicci贸n y la separaci贸n de objetos:

  • Umbral de confianza: Determina el nivel de confianza m铆nimo para detectar objetos. Desliza para aumentar o disminuir la confianza requerida.
  • Umbral IoU: Establece el umbral de intersecci贸n sobre uni贸n para distinguir entre objetos superpuestos. Ajusta este valor para refinar la separaci贸n de objetos.

Para m谩s informaci贸n sobre estos par谩metros, visita la secci贸n de explicaci贸n de par谩metros.

驴Cu谩les son algunas aplicaciones pr谩cticas del uso de Ultralytics YOLOv8 con Gradio?

Las aplicaciones pr谩cticas de la combinaci贸n de Ultralytics YOLOv8 con Gradio incluyen:

  • Demostraciones de Detecci贸n de Objetos en Tiempo Real: Ideal para mostrar c贸mo funciona la detecci贸n de objetos en tiempo real.
  • Herramientas educativas: 脷tiles en entornos acad茅micos para ense帽ar conceptos de detecci贸n de objetos y visi贸n por ordenador.
  • Desarrollo de prototipos: Eficaz para desarrollar y probar r谩pidamente prototipos de aplicaciones de detecci贸n de objetos.
  • Comunidad y colaboraciones: Facilitar el intercambio de modelos con la comunidad para obtener comentarios y colaboraci贸n.

Para ver ejemplos de casos de uso similares, consulta el blogUltralytics .

Proporcionar esta informaci贸n en la documentaci贸n ayudar谩 a mejorar la usabilidad y accesibilidad de Ultralytics YOLOv8 , haci茅ndolo m谩s accesible para usuarios de todos los niveles de experiencia.



Creado 2024-02-01, Actualizado 2024-07-05
Autores: glenn-jocher (6), ambitious-octopus (1), IvorZhu331 (1), RizwanMunawar (1)

Comentarios