Mapas de calor de seguimiento de objetos con Ultralytics YOLO26#
La solución de mapas de calor de Ultralytics YOLO26 realiza el seguimiento de objetos entre fotogramas de vídeo y superpone la intensidad acumulada de su movimiento en cada fotograma, de modo que las zonas concurridas brillan con colores cálidos mientras que las zonas tranquilas se mantienen frías. Basada en el seguimiento de objetos de YOLO26, convierte cualquier vídeo en un mapa espacial de actividad que revela el flujo de tráfico, el movimiento de multitudes y las zonas de permanencia con una sola llamada de Python o un comando de la CLI.
Watch: Heatmaps using Ultralytics YOLO26
¿Por qué usar mapas de calor para el análisis de vídeo?#
- Detecta patrones de actividad de un vistazo: La intensidad se acumula allí donde los objetos seguidos pasan tiempo, por lo que los carriles con mucho tráfico, las estanterías más populares o los cuellos de botella de las multitudes destacan sin tener que revisar manualmente cada fotograma.
- Seguimiento integrado: La solución ejecuta internamente la detección y el seguimiento de YOLO26, por lo que no necesitas configurar una canalización de seguimiento independiente.
- Conteo en la misma pasada: Pasa un
regionpara contar los objetos que entran y salen de una zona mientras se genera el mapa de calor, combinando dos tareas de análisis en una sola ejecución.
Aplicaciones en el mundo real#
| Transporte | Comercio minorista |
|---|---|
![]() | ![]() |
| Mapa de calor de transporte de Ultralytics YOLO | Mapa de calor de comercio minorista de Ultralytics YOLO |
Cómo generar mapas de calor con Ultralytics YOLO#
Ejecuta la solución de mapas de calor sobre una fuente de vídeo desde la CLI o Python. El ejemplo de Python escribe los fotogramas procesados en un archivo de vídeo de salida:
# Run a heatmap example
yolo solutions heatmap show=True
# Pass a source video
yolo solutions heatmap source="path/to/video.mp4"
# Pass a custom colormap
yolo solutions heatmap colormap=cv2.COLORMAP_INFERNO
# Heatmaps + object counting
yolo solutions heatmap region="[(20, 400), (1080, 400), (1080, 360), (20, 360)]"Argumentos de Heatmap()#
Aquí tienes una tabla con los argumentos de Heatmap:
| Argumento | Tipo | Predeterminado | Descripción |
|---|---|---|---|
model | str | None | Ruta al archivo del modelo YOLO de Ultralytics. |
colormap | int | cv2.COLORMAP_DEEPGREEN | Mapa de colores que se utilizará para el mapa de calor. |
show_in | bool | True | Indicador que controla si se muestran los recuentos de entradas en la secuencia de vídeo. |
show_out | bool | True | Indicador que controla si se muestran los recuentos de salidas en la secuencia de vídeo. |
region | list o dict | None | Puntos que definen la región de interés, ya sea una lista de tuplas (x, y) o un diccionario que asigne nombres de región a listas de puntos para varias regiones (solo RegionCounter). Cuando None, las soluciones que requieren una región recurren a una región predeterminada. |
line_width | int | 2 | Grosor de línea de las cajas, los puntos clave y los recuentos que dibuja la solución. |
verbose | bool | True | Activa 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 aplicar distintos argumentos de track en la solución Heatmap.
| Argumento | Tipo | Predeterminado | Descripción |
|---|---|---|---|
tracker | str | 'botsort.yaml' | Especifica el algoritmo de seguimiento que se utilizará. Opciones integradas: botsort.yaml, bytetrack.yaml, ocsort.yaml, deepocsort.yaml, fasttrack.yaml, tracktrack.yaml. |
conf | float | 0.25 | Establece el umbral de confianza para las detecciones; los valores más bajos permiten seguir más objetos, pero pueden incluir falsos positivos. |
iou | float | 0.7 | Establece el umbral de intersección sobre unión (IoU) para filtrar las detecciones superpuestas. |
classes | list | None | Filtra los resultados por índice de clase. Por ejemplo, classes=[0, 2, 3] solo sigue las clases especificadas. |
device | str | None | Especifica 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. |
imgsz | int or tuple | 640 | Tamañ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_det | int | 300 | Número máximo de detecciones conservadas por fotograma antes del seguimiento, lo que limita los objetos que procesa una solución en escenas densas. |
quantize | int or str | None | Precisió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, a continuación se indican los argumentos de visualización compatibles:
| Argumento | Tipo | Predeterminado | Descripción |
|---|---|---|---|
show | bool | False | Si 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. |
show_conf | bool | True | Muestra la puntuación de confianza de cada detección junto a su etiqueta. Permite conocer el grado de certeza del modelo para cada detección. |
show_labels | bool | True | Muestra las etiquetas de cada detección en la salida visual. Proporciona una comprensión inmediata de los objetos detectados. |
Mapas de color de los mapas de calor#
El argumento colormap acepta cualquier mapa de color de OpenCV. Pasa la constante del módulo cv2, por ejemplo colormap=cv2.COLORMAP_INFERNO:
| Nombre del mapa de color | Descripción |
|---|---|
cv2.COLORMAP_AUTUMN | Mapa de color Autumn |
cv2.COLORMAP_BONE | Mapa de color Bone |
cv2.COLORMAP_JET | Mapa de color Jet |
cv2.COLORMAP_WINTER | Mapa de color Winter |
cv2.COLORMAP_RAINBOW | Mapa de color Rainbow |
cv2.COLORMAP_OCEAN | Mapa de color Ocean |
cv2.COLORMAP_SUMMER | Mapa de color Summer |
cv2.COLORMAP_SPRING | Mapa de color Spring |
cv2.COLORMAP_COOL | Mapa de color Cool |
cv2.COLORMAP_HSV | Mapa de color HSV (Matiz, Saturación, Valor) |
cv2.COLORMAP_PINK | Mapa de color Pink |
cv2.COLORMAP_HOT | Mapa de color Hot |
cv2.COLORMAP_PARULA | Mapa de color Parula |
cv2.COLORMAP_MAGMA | Mapa de color Magma |
cv2.COLORMAP_INFERNO | Mapa de color Inferno |
cv2.COLORMAP_PLASMA | Mapa de color Plasma |
cv2.COLORMAP_VIRIDIS | Mapa de color Viridis |
cv2.COLORMAP_CIVIDIS | Mapa de color Cividis |
cv2.COLORMAP_TWILIGHT | Mapa de color Twilight |
cv2.COLORMAP_TWILIGHT_SHIFTED | Mapa de color Shifted Twilight |
cv2.COLORMAP_TURBO | Mapa de color Turbo |
cv2.COLORMAP_DEEPGREEN | Mapa de color Deep Green |
Cómo funcionan los mapas de calor#
La solución de mapas de calor amplía la clase ObjectCounter. En el primer fotograma procesado, crea una capa de intensidad en blanco que coincide con el tamaño del fotograma. A continuación, cada fotograma se procesa en dos pasos:
- El seguimiento de YOLO26 detecta y sigue todos los objetos del fotograma
- Para cada objeto seguido, la intensidad del mapa de calor aumenta dentro de una región circular centrada en su cuadro delimitador
Una vez por fotograma, la capa de intensidad acumulada se normaliza, se colorea con el mapa de color seleccionado y se combina con el fotograma original. La superposición aparece en cuanto se sigue al menos un objeto; los fotogramas sin objetos seguidos se muestran sin la superposición del mapa de calor.
El resultado es una visualización dinámica que se acumula con el tiempo y revela patrones de tráfico, movimientos de multitudes u otros comportamientos espaciales en tus datos de vídeo. Cuando se establece un region, la solución también cuenta objetos que entran y salen de esa región mientras se genera el mapa de calor.
Conclusión#
La solución de mapas de calor de Ultralytics YOLO26 convierte los resultados del seguimiento de objetos en una superposición de actividad intuitiva con unas pocas líneas de código. Para ampliar sus posibilidades, combínala con el conteo de objetos, explora las demás soluciones de Ultralytics o consulta información sobre el modo de seguimiento subyacente.
Preguntas frecuentes#
Ultralytics YOLO26 genera mapas de calor siguiendo los objetos entre los fotogramas del vídeo y acumulando un valor de intensidad en la ubicación de cada objeto seguido; después, colorea el resultado y lo combina con el fotograma original. Las zonas en las que los objetos aparecen con frecuencia o permanecen durante más tiempo acumulan una mayor intensidad y se representan con colores más cálidos. Para consultar las opciones de configuración, ve a la sección de argumentos de
Heatmap().Usa
cv2.VideoWriterde OpenCV y escriberesults.plot_impara cada fotograma procesado, como se muestra en el ejemplo principal. El atributoplot_imcontiene el fotograma con la superposición del mapa de calor ya aplicada.Sí. Pasa un argumento
regionaHeatmap()con puntos de línea, rectángulo o polígono, y la solución contará los objetos que entren y salgan de esa región mientras se genera el mapa de calor. Los resultados devueltos incluyenin_count,out_county los conteos por clase. Consulta la guía de conteo de objetos para obtener información detallada sobre la configuración de regiones.Pasa el argumento
classesaHeatmap()con los índices de clase que quieras conservar. Por ejemplo,classes=[0, 2]genera el mapa de calor solo a partir de personas y coches (índices de clase 0 y 2 de COCO):import cv2 from ultralytics import solutions cap = cv2.VideoCapture("path/to/video.mp4") heatmap = solutions.Heatmap(show=True, model="yolo26n.pt", classes=[0, 2]) while cap.isOpened(): success, im0 = cap.read() if not success: break results = heatmap(im0) cap.release() cv2.destroyAllWindows()Los mapas de calor de Ultralytics YOLO26 integran la detección de objetos, el seguimiento, la acumulación de intensidad y la representación de la superposición en una sola llamada, mientras que las herramientas genéricas como OpenCV o Matplotlib requieren que construyas esa canalización por tu cuenta. La solución procesa flujos de vídeo en tiempo real y admite seguimiento persistente y mapas de color personalizables de forma inmediata. Para obtener más información sobre el modelo subyacente, consulta la página del modelo YOLO26.

