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.

驴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 and plots labeled objects in an image using 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.


Creado 2024-02-01, Actualizado 2024-05-18
Autores: glenn-jocher (3), RizwanMunawar (1)

Comentarios