Meet YOLO26: next-gen vision AI.

Link to this sectionAnalíticas usando Ultralytics YOLO26#

Link to this sectionIntroducción#

Esta guía ofrece una visión general completa de tres tipos fundamentales de visualización de datos: gráficos de líneas, diagramas de barras y gráficos circulares. Cada sección incluye instrucciones paso a paso y fragmentos de código sobre cómo crear estas visualizaciones usando Python.



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

Link to this sectionMuestras visuales#

Gráfico de líneasDiagrama de barrasGráfico circular
Gráfico de líneas de analítica YOLO para seguimiento de objetosDiagrama de barras de analítica YOLO para conteo de deteccionesGráfico circular de analítica YOLO para distribución de clases

Link to this sectionPor qué son importantes los gráficos#

  • Los gráficos de líneas son ideales para seguir cambios durante períodos cortos y largos, y para comparar cambios entre múltiples grupos en el mismo período.
  • Los diagramas de barras, por otro lado, son adecuados para comparar cantidades entre distintas categorías y mostrar relaciones entre una categoría y su valor numérico.
  • Por último, los gráficos circulares son eficaces para ilustrar proporciones entre categorías y mostrar partes de un todo.
Analíticas usando 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

Link to this sectionArgumentos de Analytics#

Aquí tienes una tabla que resume los argumentos de Analytics:

ArgumentoTipoPredeterminadoDescripción
modelstrNoneRuta a un archivo de modelo YOLO de Ultralytics.
analytics_typestr'line'Tipo de gráfico, p. ej., line, bar, area o pie.

También puedes aprovechar diferentes argumentos de track en la solución Analytics.

ArgumentoTipoPredeterminadoDescripción
trackerstr'botsort.yaml'Especifica el algoritmo de seguimiento a utilizar. Opciones integradas: botsort.yaml, bytetrack.yaml, ocsort.yaml, deepocsort.yaml, fasttrack.yaml, tracktrack.yaml.
conffloat0.1Establece el umbral de confianza para las detecciones; valores más bajos permiten el seguimiento de más objetos, pero pueden incluir falsos positivos.
ioufloat0.7Establece el umbral de Intersection over Union (IoU) para filtrar detecciones superpuestas.
classeslistNoneFiltra los resultados por índice de clase. Por ejemplo, classes=[0, 2, 3] solo rastrea las clases especificadas.
verboseboolTrueControla la visualización de los resultados de seguimiento, proporcionando una salida visual de los objetos rastreados.
devicestrNoneEspecifica el dispositivo para la inferencia (p. ej., cpu, cuda:0 o 0). Permite a los usuarios seleccionar entre CPU, una GPU específica u otros dispositivos de computación para la ejecución del modelo.

Adicionalmente, se admiten los siguientes argumentos de visualización:

ArgumentoTipoPredeterminadoDescripción
showboolFalseSi es True, muestra las imágenes o vídeos anotados en una ventana. Útil para una retroalimentación visual inmediata durante el desarrollo o las pruebas.
line_widthint or NoneNoneEspecifica el ancho de línea de los cuadros delimitadores. Si es None, el ancho de línea se ajusta automáticamente según el tamaño de la imagen. Proporciona personalización visual para mayor claridad.

Link to this sectionConclusión#

Comprender cuándo y cómo usar distintos tipos de visualizaciones es crucial para un análisis de datos eficaz. Los gráficos de líneas, los diagramas de barras y los gráficos circulares son herramientas fundamentales que pueden ayudarte a transmitir la historia de tus datos de manera más clara y efectiva. La solución de analítica de Ultralytics YOLO26 proporciona una forma simplificada de generar estas visualizaciones a partir de tus resultados de detección de objetos y seguimiento, facilitando la extracción de información significativa de tus datos visuales.

Link to this sectionFAQ#

Link to this section¿Cómo creo un gráfico de líneas usando las analíticas de Ultralytics YOLO26?#

Para crear un gráfico de líneas usando las analíticas de Ultralytics YOLO26, sigue estos pasos:

  1. Carga un modelo YOLO26 y abre tu archivo de vídeo.
  2. Inicializa la clase Analytics con el tipo establecido en "line".
  3. Itera a través de los fotogramas del vídeo, actualizando el gráfico de líneas con datos relevantes, como el conteo de objetos por fotograma.
  4. Guarda el vídeo de salida que muestra el gráfico de líneas.

Ejemplo:

import cv2

from ultralytics import solutions

cap = cv2.VideoCapture("path/to/video.mp4")
assert cap.isOpened(), "Error reading video file"

w, h, fps = (int(cap.get(x)) for x in (cv2.CAP_PROP_FRAME_WIDTH, cv2.CAP_PROP_FRAME_HEIGHT, cv2.CAP_PROP_FPS))

out = cv2.VideoWriter(
    "ultralytics_analytics.avi",
    cv2.VideoWriter_fourcc(*"MJPG"),
    fps,
    (1280, 720),  # this is fixed
)

analytics = solutions.Analytics(
    analytics_type="line",
    show=True,
)

frame_count = 0
while cap.isOpened():
    success, im0 = cap.read()
    if success:
        frame_count += 1
        results = analytics(im0, frame_count)  # update analytics graph every frame
        out.write(results.plot_im)  # write the video file
    else:
        break

cap.release()
out.release()
cv2.destroyAllWindows()

Para obtener más detalles sobre la configuración de la clase Analytics, visita la sección Analíticas usando Ultralytics YOLO26.

Link to this section¿Cuáles son los beneficios de usar Ultralytics YOLO26 para crear diagramas de barras?#

Usar Ultralytics YOLO26 para crear diagramas de barras ofrece varios beneficios:

  1. Visualización de datos en tiempo real: Integra sin problemas los resultados de detección de objetos en diagramas de barras para actualizaciones dinámicas.
  2. Facilidad de uso: La API y las funciones simples facilitan la implementación y visualización de datos.
  3. Personalización: Ajusta títulos, etiquetas, colores y más para satisfacer tus requisitos específicos.
  4. Eficiencia: Maneja eficientemente grandes cantidades de datos y actualiza gráficos en tiempo real durante el procesamiento de vídeo.

Usa el siguiente ejemplo para generar un diagrama de barras:

import cv2

from ultralytics import solutions

cap = cv2.VideoCapture("path/to/video.mp4")
assert cap.isOpened(), "Error reading video file"

w, h, fps = (int(cap.get(x)) for x in (cv2.CAP_PROP_FRAME_WIDTH, cv2.CAP_PROP_FRAME_HEIGHT, cv2.CAP_PROP_FPS))

out = cv2.VideoWriter(
    "ultralytics_analytics.avi",
    cv2.VideoWriter_fourcc(*"MJPG"),
    fps,
    (1280, 720),  # this is fixed
)

analytics = solutions.Analytics(
    analytics_type="bar",
    show=True,
)

frame_count = 0
while cap.isOpened():
    success, im0 = cap.read()
    if success:
        frame_count += 1
        results = analytics(im0, frame_count)  # update analytics graph every frame
        out.write(results.plot_im)  # write the video file
    else:
        break

cap.release()
out.release()
cv2.destroyAllWindows()

Para aprender más, visita la sección Diagrama de barras en la guía.

Link to this section¿Por qué debería usar Ultralytics YOLO26 para crear gráficos circulares en mis proyectos de visualización de datos?#

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

  1. Integración con 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 simple de configurar y utilizar con un código mínimo.
  3. Personalizable: Cuenta con diversas opciones de personalización para colores, etiquetas y más.
  4. Actualizaciones en tiempo real: Maneja y visualiza datos en tiempo real, lo cual es ideal para proyectos de analítica de vídeo.

Aquí tienes un ejemplo rápido:

import cv2

from ultralytics import solutions

cap = cv2.VideoCapture("path/to/video.mp4")
assert cap.isOpened(), "Error reading video file"

w, h, fps = (int(cap.get(x)) for x in (cv2.CAP_PROP_FRAME_WIDTH, cv2.CAP_PROP_FRAME_HEIGHT, cv2.CAP_PROP_FPS))

out = cv2.VideoWriter(
    "ultralytics_analytics.avi",
    cv2.VideoWriter_fourcc(*"MJPG"),
    fps,
    (1280, 720),  # this is fixed
)

analytics = solutions.Analytics(
    analytics_type="pie",
    show=True,
)

frame_count = 0
while cap.isOpened():
    success, im0 = cap.read()
    if success:
        frame_count += 1
        results = analytics(im0, frame_count)  # update analytics graph every frame
        out.write(results.plot_im)  # write the video file
    else:
        break

cap.release()
out.release()
cv2.destroyAllWindows()

Para más información, consulta la sección Gráfico circular en la guía.

Link to this section¿Se puede usar Ultralytics YOLO26 para rastrear objetos y actualizar visualizaciones de forma dinámica?#

Sí, Ultralytics YOLO26 se puede usar para rastrear objetos y actualizar visualizaciones de forma dinámica. Admite el seguimiento de múltiples objetos en tiempo real y puede actualizar diversas visualizaciones como gráficos de líneas, diagramas de barras y gráficos circulares basados en los datos de los objetos rastreados.

Ejemplo para el seguimiento y actualización de un gráfico de líneas:

import cv2

from ultralytics import solutions

cap = cv2.VideoCapture("path/to/video.mp4")
assert cap.isOpened(), "Error reading video file"

w, h, fps = (int(cap.get(x)) for x in (cv2.CAP_PROP_FRAME_WIDTH, cv2.CAP_PROP_FRAME_HEIGHT, cv2.CAP_PROP_FPS))

out = cv2.VideoWriter(
    "ultralytics_analytics.avi",
    cv2.VideoWriter_fourcc(*"MJPG"),
    fps,
    (1280, 720),  # this is fixed
)

analytics = solutions.Analytics(
    analytics_type="line",
    show=True,
)

frame_count = 0
while cap.isOpened():
    success, im0 = cap.read()
    if success:
        frame_count += 1
        results = analytics(im0, frame_count)  # update analytics graph every frame
        out.write(results.plot_im)  # write the video file
    else:
        break

cap.release()
out.release()
cv2.destroyAllWindows()

Para aprender sobre la funcionalidad completa, consulta la sección Seguimiento.

Link to this section¿Qué hace que Ultralytics YOLO26 sea diferente de otras soluciones de detección de objetos como OpenCV y TensorFlow?#

Ultralytics YOLO26 destaca sobre otras soluciones de detección de objetos como OpenCV y TensorFlow por varias razones:

  1. Precisión de vanguardia: 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 codificación extensa.
  3. Rendimiento en tiempo real: Optimizado para inferencia de alta velocidad, adecuado para aplicaciones en tiempo real.
  4. Aplicaciones diversas: Admite varias tareas, incluyendo el seguimiento de múltiples objetos, entrenamiento de modelos personalizados y exportación a diferentes formatos como ONNX, TensorRT y CoreML.
  5. Documentación exhaustiva: Amplia documentación y recursos de blog para guiar a los usuarios en cada paso.

Para comparaciones más detalladas y casos de uso, explora nuestro Blog de Ultralytics.

Comentarios