Detección de objetos interactiva: Gradio & Ultralytics YOLO11 🚀
Introducción a la detección interactiva de objetos
Esta interfaz Gradio proporciona una forma fácil e interactiva de realizar la detección de objetos utilizando el modelo Ultralytics YOLO11. 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.
Ver: Integración de Gradio con Ultralytics YOLO11
¿Por qué usar Gradio para la detección de objetos?
- Interfaz fácil de usar: Gradio ofrece una plataforma sencilla para que los usuarios carguen imágenes y visualicen los resultados de la detección sin necesidad de codificación.
- Ajustes en tiempo real: Los parámetros como los umbrales de confianza e IoU se pueden ajustar sobre la marcha, lo que permite una retroalimentación inmediata y la optimización de los resultados de detección.
- Amplia Accesibilidad: Se puede acceder a la interfaz web de Gradio desde cualquier lugar, lo que la convierte en una excelente herramienta para demostraciones, fines educativos y experimentos rápidos.
Cómo instalar Gradio
pip install gradio
Cómo usar la interfaz
- Cargar Imagen: Haz clic en 'Cargar Imagen' para elegir un archivo de imagen para la detección de objetos.
- Ajustar parámetros:
- Umbral de Confianza: Deslizador para establecer el nivel mínimo de confianza para detectar objetos.
- Umbral de IoU: Deslizador para establecer el umbral de IoU para distinguir diferentes objetos.
- Ver resultados: Se mostrará la imagen procesada con los objetos detectados y sus etiquetas.
Casos de uso de ejemplo
- Imagen de muestra 1: Detección de autobuses con umbrales predeterminados.
- Imagen de muestra 2: Detección en una imagen deportiva con umbrales predeterminados.
Ejemplo de uso
Esta sección proporciona el código de python utilizado para crear la interfaz Gradio con el modelo YOLO11 de Ultralytics. El código 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("yolo11n.pt")
def predict_image(img, conf_threshold, iou_threshold):
"""Predicts objects in an image using a YOLO11 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 YOLO11n 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()
Explicación de los parámetros
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 la detección de 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 imagen | Para cargar la imagen para la detección. |
Deslizadores | Para ajustar los umbrales de confianza e IoU. |
Salida de imagen | Para mostrar los resultados de la detección. |
Preguntas frecuentes
¿Cómo uso Gradio con Ultralytics YOLO11 para la detección de objetos?
Para utilizar Gradio con Ultralytics YOLO11 para la detección de objetos, puede seguir estos pasos:
- Instalar Gradio: Utiliza el comando
pip install gradio
. - Crear interfaz: Escriba un script de python para inicializar la interfaz Gradio. Puede consultar el ejemplo de código proporcionado en la documentación para obtener más detalles.
- Cargar y Ajustar: Carga 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í tiene un fragmento de código mínimo como referencia:
import gradio as gr
from ultralytics import YOLO
model = YOLO("yolo11n.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 YOLO11",
description="Upload images for YOLO11 object detection.",
)
iface.launch()
¿Cuáles son los beneficios de usar Gradio para la detección de objetos con Ultralytics YOLO11?
Usar Gradio para la detección de objetos Ultralytics YOLO11 ofrece varios beneficios:
- Interfaz fácil de usar: Gradio proporciona una interfaz intuitiva para que los usuarios carguen imágenes y visualicen los resultados de la detección sin necesidad de realizar 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 de inmediato.
- Accesibilidad: La interfaz web es accesible para cualquier persona, lo que la hace útil para experimentos rápidos, fines educativos y demostraciones.
Para obtener más detalles, puede leer esta publicación de blog sobre IA en radiología que muestra técnicas de visualización interactivas similares.
¿Puedo usar Gradio y Ultralytics YOLO11 juntos con fines educativos?
Sí, Gradio y Ultralytics YOLO11 se pueden utilizar juntos con fines educativos de manera efectiva. La interfaz web intuitiva de Gradio facilita a los estudiantes y educadores la interacción con modelos de aprendizaje profundo de última generación como Ultralytics YOLO11 sin necesidad de habilidades avanzadas de programación. Esta configuración es ideal para demostrar conceptos clave en la detección de objetos y la visión artificial, ya que Gradio proporciona retroalimentación visual inmediata que ayuda a comprender el impacto de los diferentes parámetros en el rendimiento de la detección.
¿Cómo ajusto los umbrales de confianza e IoU en la interfaz Gradio para YOLO11?
En la interfaz de Gradio para YOLO11, puede ajustar los umbrales de confianza e IoU utilizando los controles deslizantes proporcionados. Estos umbrales ayudan a controlar la precisión de la predicción y la separación de objetos:
- Umbral de Confianza: Determina el nivel mínimo de confianza para detectar objetos. Desliza para aumentar o disminuir la confianza requerida.
- Umbral de IoU: Establece el umbral de intersección sobre unión para distinguir entre objetos superpuestos. Ajuste este valor para refinar la separación de objetos.
Para obtener más información sobre estos parámetros, visita la sección de explicación de los parámetros.
¿Cuáles son algunas aplicaciones prácticas del uso de Ultralytics YOLO11 con Gradio?
Algunas aplicaciones prácticas de combinar Ultralytics YOLO11 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: Útil en entornos académicos para enseñar la detección de objetos y los conceptos de visión artificial.
- Desarrollo de prototipos: Eficiente para desarrollar y probar aplicaciones prototipo de detección de objetos rápidamente.
- Comunidad y Colaboraciones: Facilitar el intercambio de modelos con la comunidad para obtener comentarios y colaborar.
Para ver ejemplos de casos de uso similares, consulte el blog de Ultralytics sobre la monitorización del comportamiento animal, que demuestra cómo la visualización interactiva puede mejorar los esfuerzos de conservación de la vida silvestre.