Ultralytics YOLO27:

Análisis con Ultralytics YOLO26#

El análisis con Ultralytics YOLO26 convierte los resultados de la detección de objetos y el seguimiento en gráficos en tiempo real, para que puedas observar cómo cambian los recuentos de objetos a lo largo de un vídeo, fotograma a fotograma. Esta guía cubre cuatro tipos de visualización de datos: gráficos de líneas, gráficos de barras, gráficos circulares y gráficos de áreas, y muestra cómo cambiar entre ellos con ejemplos compartidos de Python y CLI.



Watch: How to generate Analytical Graphs using Ultralytics | Line Graphs, Bar Plots, Area and Pie Charts

Ejemplos visuales#

Gráfico de líneasGráfico de barrasGráfico circular
Gráfico de líneas de análisis de YOLO para el seguimiento de objetosGráfico de barras de análisis de YOLO para recuentos de deteccionesGráfico circular de análisis de YOLO para la distribución de clases

¿Por qué visualizar los datos de detección?#

  • Los gráficos de líneas son ideales para realizar un seguimiento de los cambios durante periodos cortos y largos, así como para comparar los cambios de varios grupos durante el mismo periodo.
  • Los gráficos de barras son adecuados para comparar cantidades entre distintas categorías y mostrar las relaciones entre una categoría y su valor numérico.
  • Los gráficos circulares son eficaces para ilustrar las proporciones entre categorías y mostrar las partes de un todo.
  • Los gráficos de áreas rellenan el gráfico de líneas para que los recuentos de objetos por clase a lo largo del tiempo sean más fáciles de leer de un vistazo.

Generar gráficos de análisis#

Pasa tu vídeo a la solución Analytics y selecciona un gráfico con analytics_type. La solución ejecuta la detección y el seguimiento en cada fotograma y renderiza un gráfico de 1280×720 (de forma predeterminada) que puedes escribir directamente en un vídeo de salida. Cambia entre "line", "bar", "pie" y "area" con un solo argumento.

Análisis con Ultralytics YOLO
yolo solutions analytics show=True

# Pass the source
yolo solutions analytics source="path/to/video.mp4"

# Generate the pie chart
yolo solutions analytics analytics_type="pie" show=True

# Generate the bar plots
yolo solutions analytics analytics_type="bar" show=True

# Generate the area plots
yolo solutions analytics analytics_type="area" show=True

Argumentos de Analytics#

Esta es una tabla con los argumentos de Analytics:

ArgumentoTipoPredeterminadoDescripción
modelstrNoneRuta al archivo del modelo YOLO de Ultralytics.
analytics_typestr'line'Tipo de gráfico, es decir, line, bar, area o pie.
line_widthint2Grosor de línea de las cajas, los puntos clave y los recuentos que dibuja la solución.
verboseboolTrueActiva el registro por fotograma de la solución, que incluye la forma de entrada, los recuentos de clases y la velocidad de procesamiento. La llamada de seguimiento en sí siempre es silenciosa.

También puedes utilizar distintos argumentos de track en la solución Analytics.

ArgumentoTipoPredeterminadoDescripción
trackerstr'botsort.yaml'Especifica el algoritmo de seguimiento que se utilizará. Opciones integradas: botsort.yaml, bytetrack.yaml, ocsort.yaml, deepocsort.yaml, fasttrack.yaml, tracktrack.yaml.
conffloat0.25Establece el umbral de confianza para las detecciones; los valores más bajos permiten seguir más objetos, pero pueden incluir falsos positivos.
ioufloat0.7Establece el umbral de intersección sobre unión (IoU) para filtrar las detecciones superpuestas.
classeslistNoneFiltra los resultados por índice de clase. Por ejemplo, classes=[0, 2, 3] solo sigue las clases especificadas.
devicestrNoneEspecifica el dispositivo para la inferencia (por ejemplo, cpu, cuda:0 o 0). Permite seleccionar entre la CPU, una GPU específica u otros dispositivos de cálculo para ejecutar el modelo.
imgszint or tuple640Tamaño de imagen de inferencia objetivo: un número entero para una imagen cuadrada o un par (height, width). Las formas se ajustan al paso del modelo.
max_detint300Número máximo de detecciones conservadas por fotograma antes del seguimiento, lo que limita los objetos que procesa una solución en escenas densas.
quantizeint or strNonePrecisión de inferencia: 16 (FP16) o 32/sin definir (FP32) para los modelos de PyTorch y TorchScript; otros formatos calculan a la precisión que seleccionan su artefacto y su motor de ejecución. Sustituye al indicador obsoleto half.

Además, se admiten los siguientes argumentos de visualización:

ArgumentoTipoPredeterminadoDescripción
showboolFalseSi True, muestra las imágenes o vídeos anotados en una ventana. Es útil para obtener información visual inmediata durante el desarrollo o las pruebas.

Conclusión#

Comprender cuándo y cómo utilizar distintos tipos de visualizaciones es fundamental para realizar un análisis de datos eficaz. Los gráficos de líneas, los gráficos de barras y los gráficos circulares son herramientas básicas que pueden ayudarte a comunicar la historia de tus datos de forma más clara y eficaz. La solución Analytics de Ultralytics YOLO26 ofrece una forma simplificada de generar estas visualizaciones a partir de tus resultados de detección de objetos y seguimiento, lo que facilita la extracción de información útil de tus datos visuales.

Preguntas frecuentes#

  • Para crear un gráfico de líneas con Ultralytics YOLO26 Analytics, sigue estos pasos:

    1. Carga un modelo YOLO26 y abre tu archivo de vídeo.
    2. Inicializa la clase Analytics con analytics_type="line".
    3. Itera por los fotogramas del vídeo y llama a la solución en cada fotograma para actualizar el gráfico de líneas con datos como los recuentos de objetos.
    4. Escribe results.plot_im en un vídeo de salida para guardar el gráfico.

    Utiliza el ejemplo de Python anterior como punto de partida: ya ejecuta el bucle completo de fotogramas y un gráfico de líneas es el analytics_type predeterminado.

  • Utilizar Ultralytics YOLO26 para crear gráficos de barras ofrece varias ventajas:

    1. Visualización de datos en tiempo real: Integra perfectamente los resultados de la detección de objetos en gráficos de barras para obtener actualizaciones dinámicas.
    2. Facilidad de uso: La API y las funciones sencillas facilitan la implementación y la visualización de datos.
    3. Personalización: Personaliza títulos, etiquetas, colores y mucho más para adaptarlos a tus requisitos específicos.
    4. Eficiencia: Gestiona de forma eficiente grandes cantidades de datos y actualiza los gráficos en tiempo real durante el procesamiento de vídeo.

    Para generar un gráfico de barras, establece analytics_type="bar" en el ejemplo de Python anterior; el resto del bucle de fotogramas es idéntico. Consulta la sección Ejemplos visuales para ver una vista previa.

  • Ultralytics YOLO26 es una excelente opción para crear gráficos circulares porque:

    1. Integración con la detección de objetos: Integra directamente los resultados de la detección de objetos en gráficos circulares para obtener información inmediata.
    2. API fácil de usar: Es sencilla de configurar y utilizar con un mínimo de código.
    3. Personalizable: Ofrece varias opciones de personalización para colores, etiquetas y mucho más.
    4. Actualizaciones en tiempo real: Gestiona y visualiza datos en tiempo real, lo que resulta ideal para proyectos de análisis de vídeo.

    Para generar un gráfico circular, establece analytics_type="pie" en el ejemplo de Python anterior. Para obtener más información, consulta la sección Ejemplos visuales de la guía.

  • Sí. El seguimiento está integrado en la solución Analytics: realiza el seguimiento de varios objetos en tiempo real y actualiza el gráfico con los datos de los objetos seguidos en cada fotograma, por lo que los gráficos de líneas, de barras, circulares y de áreas reflejan los recuentos en directo. Esto es exactamente lo que hace el bucle de fotogramas del ejemplo de Python anterior. Para obtener más información sobre la funcionalidad de seguimiento subyacente, consulta la sección Seguimiento.

  • Ultralytics YOLO26 destaca frente a otras soluciones de detección de objetos como OpenCV y TensorFlow por varios motivos:

    1. Precisión de última generación: YOLO26 ofrece una precisión superior en tareas de detección de objetos, segmentación de instancias, segmentación semántica y clasificación.
    2. Facilidad de uso: La API fácil de usar permite una implementación e integración rápidas sin necesidad de escribir mucho código.
    3. Rendimiento en tiempo real: Está optimizado para realizar inferencias a alta velocidad, por lo que resulta adecuado para aplicaciones en tiempo real.
    4. Aplicaciones diversas: Admite el seguimiento de varios objetos, el entrenamiento de modelos personalizados y la exportación a distintos formatos, como ONNX, TensorRT y CoreML.
    5. Documentación completa: Incluye una amplia documentación y recursos del blog para guiarte en cada paso.

    Para consultar comparaciones y casos de uso más detallados, explora nuestro blog de Ultralytics.

Comentarios