Visualización de datos avanzada: Mapas de calor usando Ultralytics YOLO11 🚀
Introducción a los mapas de calor
Un mapa de calor generado con Ultralytics YOLO11 transforma datos complejos en una matriz vibrante con códigos de color. Esta herramienta visual emplea un espectro de colores para representar diferentes valores de datos, donde los tonos más cálidos indican intensidades más altas y los tonos más fríos significan valores más bajos. Los mapas de calor sobresalen en la visualización de patrones de datos intrincados, correlaciones y anomalías, ofreciendo un enfoque accesible y atractivo para la interpretación de datos en diversos dominios.
Ver: Mapas de calor usando Ultralytics YOLO11
¿Por qué elegir mapas de calor para el análisis de datos?
- Visualización Intuitiva de la Distribución de Datos: Los mapas de calor simplifican la comprensión de la concentración y distribución de datos, convirtiendo conjuntos de datos complejos en formatos visuales fáciles de entender.
- Detección de patrones eficiente: Al visualizar los datos en formato de mapa de calor, resulta más fácil detectar tendencias, agrupaciones y valores atípicos, lo que facilita un análisis y una comprensión más rápidos.
- Análisis espacial y toma de decisiones mejorados: Los mapas de calor son fundamentales para ilustrar las relaciones espaciales, lo que ayuda en los procesos de toma de decisiones en sectores como la inteligencia empresarial, los estudios ambientales y la planificación urbana.
Aplicaciones en el mundo real
Transporte | Venta minorista |
---|---|
![]() |
![]() |
Mapa de calor de transporte de Ultralytics YOLO11 | Mapa de calor de venta al por menor de Ultralytics YOLO11 |
Mapas de calor usando Ultralytics YOLO
# 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)]"
import cv2
from ultralytics import solutions
cap = cv2.VideoCapture("path/to/video.mp4")
assert cap.isOpened(), "Error reading video file"
# Video writer
w, h, fps = (int(cap.get(x)) for x in (cv2.CAP_PROP_FRAME_WIDTH, cv2.CAP_PROP_FRAME_HEIGHT, cv2.CAP_PROP_FPS))
video_writer = cv2.VideoWriter("heatmap_output.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))
# For object counting with heatmap, you can pass region points.
# region_points = [(20, 400), (1080, 400)] # line points
# region_points = [(20, 400), (1080, 400), (1080, 360), (20, 360)] # rectangle region
# region_points = [(20, 400), (1080, 400), (1080, 360), (20, 360), (20, 400)] # polygon points
# Initialize heatmap object
heatmap = solutions.Heatmap(
show=True, # display the output
model="yolo11n.pt", # path to the YOLO11 model file
colormap=cv2.COLORMAP_PARULA, # colormap of heatmap
# region=region_points, # object counting with heatmaps, you can pass region_points
# classes=[0, 2], # generate heatmap for specific classes i.e person and car.
)
# Process video
while cap.isOpened():
success, im0 = cap.read()
if not success:
print("Video frame is empty or processing is complete.")
break
results = heatmap(im0)
# print(results) # access the output
video_writer.write(results.plot_im) # write the processed frame.
cap.release()
video_writer.release()
cv2.destroyAllWindows() # destroy all opened windows
Heatmap()
Argumentos
Aquí tiene una tabla con el Heatmap
argumentos:
Argumento | Tipo | Predeterminado | Descripción |
---|---|---|---|
model |
str |
None |
Ruta al archivo del modelo YOLO de Ultralytics. |
colormap |
int |
cv2.COLORMAP_JET |
Mapa de colores que se utilizará para el mapa de calor. |
show_in |
bool |
True |
Indica si se deben mostrar los conteos de entrada en la transmisión de video. |
show_out |
bool |
True |
Indica si se deben mostrar los conteos de salida en la transmisión de video. |
region |
list |
'[(20, 400), (1260, 400)]' |
Lista de puntos que definen la región de conteo. |
También puede aplicar diferentes track
argumentos en el Heatmap
solución.
Argumento | Tipo | Predeterminado | Descripción |
---|---|---|---|
tracker |
str |
'botsort.yaml' |
Especifica el algoritmo de seguimiento a utilizar, p. ej., bytetrack.yaml o botsort.yaml . |
conf |
float |
0.3 |
Establece el umbral de confianza para las detecciones; los valores más bajos permiten rastrear más objetos, pero pueden incluir falsos positivos. |
iou |
float |
0.5 |
Establece el umbral de Intersección sobre Unión (IoU) para filtrar detecciones superpuestas. |
classes |
list |
None |
Filtra los resultados por índice de clase. Por ejemplo, classes=[0, 2, 3] solo rastrea las clases especificadas. |
verbose |
bool |
True |
Controla la visualización de los resultados del seguimiento, proporcionando una salida visual de los objetos rastreados. |
device |
str |
None |
Especifica 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 cálculo para la ejecución del modelo. |
Adicionalmente, los argumentos de visualización admitidos se enumeran a continuación:
Argumento | Tipo | Predeterminado | Descripción |
---|---|---|---|
show |
bool |
False |
Si True , muestra las imágenes o vídeos anotados en una ventana. Útil para obtener información visual inmediata durante el desarrollo o las pruebas. |
line_width |
None or int |
None |
Especifica el ancho de línea de los cuadros delimitadores. Si None , el ancho de línea se ajusta automáticamente en función del tamaño de la imagen. Proporciona personalización visual para mayor claridad. |
show_conf |
bool |
True |
Muestra la puntuación de confianza para cada detección junto con la etiqueta. Ofrece información sobre la certeza del modelo para cada detección. |
show_labels |
bool |
True |
Muestra etiquetas para cada detección en la salida visual. Proporciona una comprensión inmediata de los objetos detectados. |
Mapas de calor COLORMAP
Nombre del mapa de colores | Descripción |
---|---|
cv::COLORMAP_AUTUMN |
Mapa de color de otoño |
cv::COLORMAP_BONE |
Mapa de color óseo |
cv::COLORMAP_JET |
Mapa de color Jet |
cv::COLORMAP_WINTER |
Mapa de color de invierno |
cv::COLORMAP_RAINBOW |
Mapa de color arcoíris |
cv::COLORMAP_OCEAN |
Mapa de color del océano |
cv::COLORMAP_SUMMER |
Mapa de colores de verano |
cv::COLORMAP_SPRING |
Mapa de colores de primavera |
cv::COLORMAP_COOL |
Mapa de colores fríos |
cv::COLORMAP_HSV |
Mapa de color HSV (Tono, Saturación, Valor) |
cv::COLORMAP_PINK |
Mapa de color rosa |
cv::COLORMAP_HOT |
Mapa de calor |
cv::COLORMAP_PARULA |
Mapa de color Parula |
cv::COLORMAP_MAGMA |
Mapa de color Magma |
cv::COLORMAP_INFERNO |
Mapa de color Inferno |
cv::COLORMAP_PLASMA |
Mapa de color plasma |
cv::COLORMAP_VIRIDIS |
Mapa de color Viridis |
cv::COLORMAP_CIVIDIS |
Mapa de color Cividis |
cv::COLORMAP_TWILIGHT |
Mapa de color Crepúsculo |
cv::COLORMAP_TWILIGHT_SHIFTED |
Mapa de color Shifted Twilight |
cv::COLORMAP_TURBO |
Mapa de color Turbo |
cv::COLORMAP_DEEPGREEN |
Mapa de color verde oscuro |
Estos mapas de colores se utilizan comúnmente para visualizar datos con diferentes representaciones de color.
Cómo funcionan los mapas de calor en Ultralytics YOLO11
La solución Heatmap en Ultralytics YOLO11 extiende la clase ObjectCounter para generar y visualizar patrones de movimiento en transmisiones de video. Cuando se inicializa, la solución crea una capa de mapa de calor en blanco que se actualiza a medida que los objetos se mueven a través del fotograma.
Para cada objeto detectado, la solución:
- Realiza el seguimiento del objeto a través de los fotogramas utilizando las capacidades de seguimiento de YOLO11.
- Actualiza la intensidad del mapa de calor en la ubicación del objeto
- Aplica una paleta de colores seleccionada para visualizar los valores de intensidad
- Superpone el mapa de calor coloreado en el fotograma original
El resultado es una visualización dinámica que se construye con el tiempo, revelando patrones de tráfico, movimientos de multitudes u otros comportamientos espaciales en sus datos de vídeo.
Preguntas frecuentes
¿Cómo genera Ultralytics YOLO11 mapas de calor y cuáles son sus beneficios?
Ultralytics YOLO11 genera mapas de calor transformando datos complejos en una matriz codificada por colores donde diferentes tonos representan las intensidades de los datos. Los mapas de calor facilitan la visualización de patrones, correlaciones y anomalías en los datos. Los tonos más cálidos indican valores más altos, mientras que los tonos más fríos representan valores más bajos. Los principales beneficios incluyen la visualización intuitiva de la distribución de datos, la detección eficiente de patrones y el análisis espacial mejorado para la toma de decisiones. Para obtener más detalles y opciones de configuración, consulta la sección de Configuración del mapa de calor.
¿Puedo usar Ultralytics YOLO11 para realizar el seguimiento de objetos y generar un mapa de calor simultáneamente?
Sí, Ultralytics YOLO11 admite el seguimiento de objetos y la generación de mapas de calor de forma concurrente. Esto se puede lograr a través de su Heatmap
solución integrada con modelos de seguimiento de objetos. Para ello, debe inicializar el objeto de mapa de calor y utilizar las capacidades de seguimiento de YOLO11. Aquí tiene un ejemplo sencillo:
import cv2
from ultralytics import solutions
cap = cv2.VideoCapture("path/to/video.mp4")
heatmap = solutions.Heatmap(colormap=cv2.COLORMAP_PARULA, show=True, model="yolo11n.pt")
while cap.isOpened():
success, im0 = cap.read()
if not success:
break
results = heatmap(im0)
cap.release()
cv2.destroyAllWindows()
Para obtener más orientación, consulte la página del Modo de seguimiento.
¿Qué diferencia los mapas de calor de Ultralytics YOLO11 de otras herramientas de visualización de datos como las de OpenCV o Matplotlib?
Los mapas de calor de Ultralytics YOLO11 están diseñados específicamente para la integración con sus modelos de detección de objetos y seguimiento, proporcionando una solución integral para el análisis de datos en tiempo real. A diferencia de las herramientas de visualización genéricas como OpenCV o Matplotlib, los mapas de calor de YOLO11 están optimizados para el rendimiento y el procesamiento automatizado, admitiendo características como el seguimiento persistente, el ajuste del factor de decaimiento y la superposición de vídeo en tiempo real. Para obtener más información sobre las características únicas de YOLO11, visite la Introducción a Ultralytics YOLO11.
¿Cómo puedo visualizar solo clases de objetos específicos en mapas de calor utilizando Ultralytics YOLO11?
Puedes visualizar clases de objetos específicas especificando las clases deseadas en el track()
método del modelo YOLO. Por ejemplo, si solo quieres visualizar coches y personas (asumiendo que sus índices de clase son 0 y 2), puedes establecer el classes
parámetro según corresponda.
import cv2
from ultralytics import solutions
cap = cv2.VideoCapture("path/to/video.mp4")
heatmap = solutions.Heatmap(show=True, model="yolo11n.pt", classes=[0, 2])
while cap.isOpened():
success, im0 = cap.read()
if not success:
break
results = heatmap(im0)
cap.release()
cv2.destroyAllWindows()
¿Por qué deberían las empresas elegir Ultralytics YOLO11 para la generación de mapas de calor en el análisis de datos?
Ultralytics YOLO11 ofrece una integración perfecta de detección de objetos avanzada y generación de mapas de calor en tiempo real, lo que la convierte en una opción ideal para las empresas que buscan visualizar los datos de forma más eficaz. Las ventajas clave incluyen la visualización intuitiva de la distribución de datos, la detección eficiente de patrones y el análisis espacial mejorado para una mejor toma de decisiones. Además, las características de vanguardia de YOLO11, como el seguimiento persistente, los mapas de colores personalizables y la compatibilidad con varios formatos de exportación, la hacen superior a otras herramientas como TensorFlow y OpenCV para el análisis exhaustivo de datos. Obtenga más información sobre las aplicaciones empresariales en Planes de Ultralytics.