Cheque verde
Enlace copiado en el portapapeles

Mejorar las aplicaciones de visión por ordenador con visualizaciones

Aprende a convertir los datos de las aplicaciones de visión artificial en gráficos fáciles de entender utilizando el paquetePython Ultralytics para obtener mejores conocimientos.

Cada minuto se crean enormes cantidades de datos, desde las terminales de los aeropuertos y las estaciones de tren hasta los centros comerciales. A medida que se generaliza el uso de la IA, muchos de estos datos se analizan y desglosan. Pero a veces los resultados de estos modelos de IA pueden dificultar la detección de patrones o la comprensión de tendencias a simple vista. Ahí es donde ayuda la visualización de datos: convierte los resultados complejos en perspectivas claras y fáciles de digerir.

Esto es especialmente cierto cuando se trata de aplicaciones de visión por ordenador. La visión por ordenador es una rama de la inteligencia artificial (IA) que ayuda a las máquinas a interpretar y comprender la información visual del mundo circundante, como imágenes y vídeos. Aunque los modelos de IA de visión, como Ultralytics YOLO11pueden ayudar a analizar esos datos visuales para obtener información, la visualización de datos ayuda a poner esa información en un formato fácil de entender.

En pocas palabras, la visualización de datos tiende un puente entre los datos brutos y la comprensión real mediante gráficos analíticos significativos. En el mundo actual, impulsado por los datos, esto es clave porque no basta con que las máquinas se limiten a realizar tareas: necesitamos que cuenten una historia.

Esa necesidad de contar historias es exactamente la razón por la que la visualización de datos está en alza, con un mercado que alcanzará los 18.360 millones de dólares en 2030. Anteriormente, exploramos cómo la visión por ordenador puede proporcionar valiosas perspectivas empresariales. Hoy daremos un paso más y veremos cómo generar gráficos analíticos claros y reveladores para aplicaciones de visión por ordenador utilizando el paquete Ultralytics . ¡Empecemos!

Fig. 1. Un ejemplo de visualización de datos basado en los resultados de YOLO11.

Una visión general de la visualización de datos en aplicaciones de visión por ordenador

La visualización de datos en aplicaciones de visión por ordenador consiste en transformar los resultados de las tareas de visión por ordenador, como la detección y el seguimiento de objetos, en gráficos o cuadros de mando fáciles de entender. Estos elementos visuales ayudan a identificar patrones y tendencias, especialmente cuando se trabaja con grandes volúmenes de secuencias de vídeo. 

Por ejemplo, en lugar de revisar manualmente horas de vídeo de vigilancia, un simple gráfico de líneas que muestre el número de coches o personas detectados a lo largo del tiempo puede resaltar rápidamente las horas punta o los periodos inusualmente tranquilos.

He aquí algunas razones clave por las que la visualización de datos es útil:

  • Simplifica los datos complejos: Miles de detecciones de objetos pueden resultar abrumadoras, pero las visualizaciones como los gráficos de barras o de tarta facilitan la visión de conjunto, por ejemplo, qué objetos aparecen con más frecuencia.
  • Revela tendencias: Los gráficos de líneas y barras ayudan a identificar pautas a lo largo del tiempo, como cuándo y dónde tiende a aumentar el tráfico peatonal.
  • Ahorra tiempo: En lugar de revisar cada fotograma de vídeo, los gráficos pueden resaltar rápidamente detalles importantes, como picos repentinos en la actividad de los vehículos o apariciones de objetos inusuales en zonas restringidas.
  • Mejora la comunicación: Los visuales facilitan el intercambio de información con audiencias no técnicas, ayudando a todos a comprender los resultados con mayor claridad.

Diferentes tipos de visualizaciones de datos

Diferentes tipos de gráficos analíticos pueden convertir los resultados de la visión por ordenador en imágenes claras y fáciles de entender. Supongamos que estás trabajando en una aplicación de visión por ordenador que detecta personas y vehículos en imágenes de vigilancia. En este caso, un gráfico de líneas es estupendo para mostrar cómo cambia el número de detecciones a lo largo del tiempo, como el seguimiento de los picos de tráfico peatonal a lo largo del día.

Del mismo modo, los gráficos de barras son útiles cuando quieres comparar el número de diferentes tipos de objetos detectados, como ver si aparecen más coches, bicicletas o peatones en el vídeo. Los gráficos circulares, en cambio, muestran qué porcentaje representa cada tipo de objeto en el total de detecciones. Cada gráfico tiene su propia utilidad y ayuda a que los datos complejos de visión por ordenador sean más fáciles de interpretar y compartir.

Fig. 2. Ejemplos de gráficos analíticos.

Generar gráficos analíticos para obtener conocimientos de visión por ordenador

Ahora que hemos explorado qué es la visualización de datos y por qué son importantes los distintos tipos de gráficos analíticos, veamos más de cerca cómo utilizar la soluciónUltralytics Analytics para visualizar los resultados de las predicciones de tu modelo de visión por ordenador. Antes de recorrer el proceso paso a paso, echemos un vistazo a las herramientas y opciones de configuración para entrenar y utilizar el paquete Ultralytics y modelos como YOLO11. 

El paquetePython Ultralytics facilita el entrenamiento de modelos, la detección de objetos, la ejecución de predicciones y la visualización de resultados. Para empezar a utilizarlo, necesitarás un entorno de codificación. Aquí tienes tres opciones sencillas:

  • Interfaz de línea de comandos (CLI): Es una herramienta básica, sólo de texto, en la que puedes escribir comandos para ejecutar tu código. No tiene interfaz visual, e interactúas con ella escribiendo instrucciones en un terminal o símbolo del sistema.
  • Cuadernos Jupyter: Es un entorno de codificación interactivo en el que puedes escribir, ejecutar y probar pequeños trozos de código (llamados "celdas") de uno en uno. Muestra los resultados directamente debajo de cada celda, facilitando la comprensión de lo que ocurre paso a paso. Es especialmente útil para aprender y experimentar.
  • Google Colab: Esta opción es una versión gratuita, basada en la nube, de Jupyter Notebooks que se ejecuta en tu navegador web. No requiere ninguna configuración en tu ordenador y te da acceso a GPUs gratuitas para un procesamiento más rápido.

Estas herramientas son estupendas para empezar rápidamente, pero los usuarios también pueden integrar Ultralytics en Entornos de Desarrollo Integrado (IDE) como Visual Studio Code (VS Code) o en pipelines de producción. Para más opciones, explora la documentación oficial de Ultralytics .

Paso 1: Configurar el entorno

Una vez que hayas elegido tu entorno preferido, el siguiente paso es configurarlo para ejecutar predicciones y visualizar los resultados. Puedes utilizar cualquiera de los entornos mencionados anteriormente, dependiendo de con cuál te sientas más cómodo.

Si estás trabajando en Google Colab, ten en cuenta que utiliza una CPU por defecto, lo que puede ralentizar el rendimiento. Para acelerar las cosas, cambia a una GPU yendo al menú "Tiempo de ejecución", seleccionando "Cambiar tipo de tiempo de ejecución" y configurando el acelerador de hardware como GPU (lo ideal sería un T4).

Para preparar tu entorno, tendrás que instalar el paquetePython Ultralytics utilizando el comando que se menciona a continuación. En herramientas basadas en cuadernos como Colab o Jupyter, asegúrate de añadir un signo de exclamación (!) antes del comando.

pip install ultralytics

Paso 2: Descargar un archivo de vídeo

A continuación, necesitaremos un vídeo con el que trabajar. Puedes descargar fácilmente uno de un sitio de stock gratuito como Pexels. Asegúrate de elegir un vídeo que incluya objetos que YOLO11 pueda detectar. Como el modelo está preentrenado en el conjunto de datos COCO, puede reconocer objetos comunes como personas, coches y bicicletas. 

Para este tutorial, utilizaremos un vídeo de manipulación de equipajes en una concurrida terminal de aeropuerto. Puedes utilizar el mismo vídeo o elegir otro que se adapte a tu proyecto.

Fig. 3. Un fotograma del vídeo de entrada que muestra la manipulación de equipajes en una terminal de aeropuerto.

Paso 3: Importar paquetes

A continuación, podemos importar las bibliotecas necesarias y cargar el vídeo de entrada.

Empezaremos importando OpenCV (cv2), que es una biblioteca muy utilizada para trabajar con imágenes y vídeo en visión por ordenador. También importaremos la biblioteca Ultralytics , que nos ayuda a ejecutar la detección de objetos y a generar análisis a partir del vídeo.

A continuación, intentaremos abrir el archivo de vídeo especificando su ruta. Asegúrate de sustituir "ruta/a/video.mp4" por la ubicación real de tu archivo de vídeo descargado. 

Además, el fragmento de código que aparece a continuación incluye una sencilla comprobación para asegurarse de que el vídeo se carga correctamente. Si la ruta es incorrecta o el archivo está dañado, el programa se detendrá y mostrará un mensaje de error: "Error al leer el archivo de vídeo".

import cv2

from ultralytics import solutions

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

Paso 4: Preparar al guionista de vídeo

A continuación, configuraremos un grabador de vídeo para guardar el resultado. Cuando ejecutemos el análisis, esta parte del código creará un nuevo archivo de vídeo que registrará los gráficos actualizados generados a partir de cada fotograma del vídeo original.

En el fragmento de código siguiente, primero extraemos las propiedades clave del vídeo de entrada: su anchura, altura y fotogramas por segundo (fps). Estos valores se toman directamente del vídeo y se convierten en enteros para garantizar que están en el formato correcto para escribir la salida.

A continuación, utilizamos la función cv2.VideoWriter para crear un nuevo archivo de vídeo, llamado "analytics_output.avi" (puedes cambiarle el nombre según necesites). El vídeo se guarda utilizando el formato MJPG, que es un método habitual de compresión de vídeo. La resolución de salida se establece en 1280×720 píxeles, independientemente del tamaño del vídeo original.

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(
    "analytics_output.avi",
    cv2.VideoWriter_fourcc(*"MJPG"),
    fps,
    (1280, 720), 
)

Paso 5: Configuración de la solución Ultralytics Analytics

Ahora, configuraremos la solución Ultralytics Analytics para que genere gráficos a partir del vídeo. Puedes elegir cómo se muestran los datos, como un gráfico de líneas, de tarta, de área o de barras, y qué modeloYOLO utilizar. En este ejemplo, utilizaremos el modelo ligero "yolo11n.pt" y mostraremos los resultados como un gráfico de área.

analytics = solutions.Analytics(
    show=True, 
    analytics_type="area", 
    model="yolo11n.pt",   
)

Paso 6: Procesar el vídeo de entrada

La parte final del código ejecuta un bucle que procesa el vídeo fotograma a fotograma. Cada fotograma se pasa a la herramienta de análisis, que actualiza el gráfico en tiempo real. A continuación, el gráfico actualizado se escribe en el vídeo de salida. Si no se puede leer un fotograma, el bucle se detiene. Una vez procesados todos los fotogramas, se guarda el vídeo y se cierran las ventanas abiertas.

frame_count = 0
while cap.isOpened():
    success, im0 = cap.read()
    if success:
        frame_count += 1
        results = analytics(im0, frame_count) 

        out.write(results.plot_im) 
    else:
        break
cap.release()
out.release()
cv2.destroyAllWindows() 

Paso 7: Ponerlo todo junto

Por último, juntémoslo todo. Con unas pocas líneas de código adicionales, podemos generar dos vídeos de salida: uno que muestre los resultados dela detección de objetos YOLO11 con cuadros delimitadores y etiquetas, y otro que muestre los gráficos de análisis en tiempo real.

Para ello, configuraremos dos instancias de VideoWriter: una para guardar el vídeo de predicción y otra para los análisis. Esta versión del código incluye tanto el seguimiento de objetos como la generación de gráficos, para que puedas ver los resultados de la detección junto con las perspectivas visuales.

Aquí tienes el código completo junto con ejemplos de la predicción y los resultados analíticos.

import cv2
from ultralytics import YOLO, solutions

# Load model and video
model = YOLO('yolo11n.pt')
cap = cv2.VideoCapture('path/to/video.mp4')
assert cap.isOpened(), "Error opening video"

# Get properties
w, h = int(cap.get(3)), int(cap.get(4))
fps = cap.get(5)
analytics_res = (1280, 720)

# Writers for prediction and analytics videos
out_pred = cv2.VideoWriter('output_predictions.avi', cv2.VideoWriter_fourcc(*'MJPG'), fps, (w, h))
out_ana = cv2.VideoWriter('output_analytics.avi', cv2.VideoWriter_fourcc(*'MJPG'), fps, analytics_res)

# Analytics setup
analytics = solutions.Analytics(show=True, analytics_type="area", model='yolo11n.pt')

# Process frames
frame_count = 0
while cap.isOpened():
    ret, frame = cap.read()
    if not ret:
        break

    frame_count += 1
    pred_frame = model.track(frame, persist=True)[0].plot()
    out_pred.write(pred_frame)

    resized = cv2.resize(pred_frame, analytics_res)
    out_ana.write(analytics(resized, frame_count).plot_im)

cap.release(), out_pred.release(), out_ana.release(), cv2.destroyAllWindows()

Cuando el código anterior se ejecute correctamente, generará dos vídeos de salida. El archivo "output_predictions.avi" mostrará los resultados de la detección de objetos con cuadros delimitadores y etiquetas, mientras que "output_analytics.avi" mostrará los gráficos de análisis en tiempo real basados en las detecciones.

Fig. 4. Un fotograma del archivo "predicciones_salida.avi".

Aquí tienes un fotograma de la salida analítica basada en las predicciones. Utilizando el gráfico de áreas, podemos obtener información como las fluctuaciones en el recuento de maletas a lo largo del tiempo, como un pico alrededor del fotograma 268, que indica movimiento o actividad de maletas en esa parte del vídeo.

Fig 5. Predicciones de YOLO11 visualizadas como un gráfico de áreas.

Utilización de gráficos en aplicaciones de visión por ordenador del mundo real

He aquí algunas aplicaciones de visión por ordenador del mundo real en las que la visualización de datos tiene un impacto significativo:

  • Sanidad: Los sistemas de visión por ordenador pueden controlar la actividad de los pacientes, los movimientos del personal y el uso de los equipos en tiempo real. Esto genera grandes cantidades de datos visuales que, cuando se visualizan, pueden revelar patrones, como las horas punta de ocupación de los pacientes o los retrasos en la respuesta.
  • Venta al por menor y comercio electrónico: La IA de visión puede utilizarse para rastrear el movimiento de los clientes, el tiempo de permanencia ante las estanterías y las interacciones con los productos. Los análisis visuales, como los gráficos de barras o circulares, pueden resaltar qué zonas de la tienda o qué artículos reciben más atención, ayudando a los minoristas a optimizar la colocación de los productos y mejorar las conversiones.
  • Fabricación: Las cámaras equipadas con modelos de visión por ordenador pueden supervisar las líneas de montaje para detectar defectos, infracciones de seguridad o el estado de los equipos. La visualización de datos puede mostrar tendencias en los tipos de defectos más comunes o resaltar los periodos de tiempo con las tasas de error más altas, lo que permite una toma de decisiones y un mantenimiento preventivo más rápidos.

Puntos clave

Con el paquete Ultralytics , puedes convertir fácilmente las secuencias de vídeo en gráficos claros y perspicaces que revelen lo que está ocurriendo, como el seguimiento de cuántas personas u objetos aparecen a lo largo del tiempo. En lugar de revisar manualmente horas de vídeo, puedes generar resúmenes visuales que destaquen patrones y tendencias clave, facilitando la actuación rápida. Ya sea en hospitales, tiendas minoristas o instalaciones de fabricación, estos gráficos convierten los complejos resultados de la IA en perspectivas que cualquiera puede comprender y utilizar.

¿Quieres saber más sobre IA? Explora nuestro repositorio de GitHub, conéctate con nuestra comunidad y consulta nuestras opciones de licencia para poner en marcha tu proyecto de visión por ordenador. Obtén más información sobre innovaciones como la IA en la fabricación y la visión por ordenador en la industria logística en nuestras páginas de soluciones.

Logotipo de LinkedInLogotipo de TwitterLogotipo de FacebookSímbolo de enlace de copia

Leer más en esta categoría

¡Construyamos juntos el futuro
de la IA!

Comienza tu viaje con el futuro del aprendizaje automático