Mapas de calor de rastreamento de objetos com o Ultralytics YOLO26#
A Heatmap solution no Ultralytics YOLO26 rastreia objetos em quadros de vídeo e sobrepõe a intensidade de movimento acumulada deles em cada quadro, de modo que áreas movimentadas brilham em cores quentes, enquanto áreas tranquilas permanecem frias. Construída sobre o object tracking do YOLO26, ela transforma qualquer vídeo em um mapa de atividade espacial que revela fluxo de tráfego, movimento de multidões e zonas de permanência com uma única chamada Python ou comando CLI.
Watch: Heatmaps using Ultralytics YOLO26
Por que usar mapas de calor para análise de vídeo?#
- Identifique padrões de atividade rapidamente: A intensidade se acumula onde os objetos rastreados passam tempo, portanto, faixas de alto tráfego, prateleiras populares ou gargalos de multidão se destacam sem a necessidade de revisão manual quadro a quadro.
- Rastreamento integrado: A solução executa a detecção e o rastreamento do YOLO26 internamente, portanto, não há um pipeline de rastreamento separado para configurar.
- Contagem na mesma passagem: Passe um
regionpara contar objetos que entram e saem de uma zona enquanto o mapa de calor é construído, combinando duas tarefas de análise em uma única execução.
Aplicações no mundo real#
| Transporte | Varejo |
|---|---|
![]() | ![]() |
| Mapa de calor de transporte do Ultralytics YOLO | Mapa de calor de varejo do Ultralytics YOLO |
Como gerar mapas de calor com o Ultralytics YOLO#
Execute a solução de mapa de calor em uma fonte de vídeo a partir da CLI ou Python. O exemplo em Python grava os quadros processados em um arquivo de vídeo de saída:
# 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 do Heatmap()#
Aqui tens uma tabela com os argumentos do Heatmap:
| Argumento | Tipo | Predefinição | Descrição |
|---|---|---|---|
model | str | None | Caminho para um ficheiro de modelo YOLO da Ultralytics. |
colormap | int | cv2.COLORMAP_DEEPGREEN | Mapa de cores a usar para o mapa de calor. |
show_in | bool | True | Flag para controlar se os números de entrada devem ser exibidos no stream de vídeo. |
show_out | bool | True | Flag para controlar se os números de saída devem ser exibidos no stream de vídeo. |
region | list ou dict | None | Pontos que definem a região de interesse, seja uma lista de tuplas (x, y) ou um dicionário que mapeia nomes de regiões para listas de pontos para múltiplas regiões (apenas RegionCounter). Quando None, as soluções que exigem uma região recorrem a um padrão pré-definido. |
line_width | int | 2 | Espessura da linha para as caixas, pontos-chave e contagens que a solução desenha. |
verbose | bool | True | Ativa o registro por quadro da solução contendo formato de entrada, contagens de classes e velocidade de processamento. A chamada de rastreamento em si é sempre silenciosa. |
Você também pode aplicar diferentes argumentos de track na solução Heatmap.
| Argumento | Tipo | Predefinição | Descrição |
|---|---|---|---|
tracker | str | 'botsort.yaml' | Especifica o algoritmo de rastreamento a utilizar. Opções integradas: botsort.yaml, bytetrack.yaml, ocsort.yaml, deepocsort.yaml, fasttrack.yaml, tracktrack.yaml. |
conf | float | 0.25 | Define o limiar de confiança para as deteções; valores mais baixos permitem que mais objetos sejam rastreados, mas podem incluir falsos positivos. |
iou | float | 0.7 | Define o limiar de Intersection over Union (IoU) para filtrar deteções sobrepostas. |
classes | list | None | Filtra resultados por índice de classe. Por exemplo, classes=[0, 2, 3] rastreia apenas as classes especificadas. |
device | str | None | Especifica o dispositivo para inferência (por exemplo, cpu, cuda:0 ou 0). Permite aos utilizadores selecionar entre CPU, uma GPU específica ou outros dispositivos de computação para a execução do modelo. |
Além disso, os argumentos de visualização suportados estão listados abaixo:
| Argumento | Tipo | Predefinição | Descrição |
|---|---|---|---|
show | bool | False | Se True, exibe as imagens ou vídeos anotados em uma janela. Útil para feedback visual imediato durante o desenvolvimento ou teste. |
show_conf | bool | True | Exibe a pontuação de confiança para cada detecção ao lado do rótulo. Fornece uma visão sobre a certeza do modelo para cada detecção. |
show_labels | bool | True | Exibe rótulos para cada detecção na saída visual. Fornece compreensão imediata dos objetos detectados. |
Mapas de cores de mapa de calor#
O argumento colormap aceita qualquer OpenCV colormap. Passe a constante do módulo cv2, por exemplo, colormap=cv2.COLORMAP_INFERNO:
| Nome do mapa de cores | Descrição |
|---|---|
cv2.COLORMAP_AUTUMN | Mapa de cores de outono |
cv2.COLORMAP_BONE | Mapa de cores ósseo |
cv2.COLORMAP_JET | Mapa de cores jato |
cv2.COLORMAP_WINTER | Mapa de cores de inverno |
cv2.COLORMAP_RAINBOW | Mapa de cores arco-íris |
cv2.COLORMAP_OCEAN | Mapa de cores do oceano |
cv2.COLORMAP_SUMMER | Mapa de cores de verão |
cv2.COLORMAP_SPRING | Mapa de cores de primavera |
cv2.COLORMAP_COOL | Mapa de cores frio |
cv2.COLORMAP_HSV | Mapa de cores HSV (Matiz, Saturação, Valor) |
cv2.COLORMAP_PINK | Mapa de cores rosa |
cv2.COLORMAP_HOT | Mapa de cores quente |
cv2.COLORMAP_PARULA | Mapa de cores Parula |
cv2.COLORMAP_MAGMA | Mapa de cores magma |
cv2.COLORMAP_INFERNO | Mapa de cores inferno |
cv2.COLORMAP_PLASMA | Mapa de cores plasma |
cv2.COLORMAP_VIRIDIS | Mapa de cores Viridis |
cv2.COLORMAP_CIVIDIS | Mapa de cores Cividis |
cv2.COLORMAP_TWILIGHT | Mapa de cores crepúsculo |
cv2.COLORMAP_TWILIGHT_SHIFTED | Mapa de cores crepúsculo deslocado |
cv2.COLORMAP_TURBO | Mapa de cores turbo |
cv2.COLORMAP_DEEPGREEN | Mapa de cores verde profundo |
Como funcionam os mapas de calor#
A Heatmap solution estende a classe ObjectCounter. No primeiro quadro processado, ela cria uma camada de intensidade em branco correspondente ao tamanho do quadro. Cada quadro é então processado em duas etapas:
- O rastreamento YOLO26 detecta e segue cada objeto no quadro
- Para cada objeto rastreado, a intensidade do mapa de calor aumenta dentro de uma região circular centralizada em sua caixa delimitadora (bounding box)
Uma vez por quadro, a camada de intensidade acumulada é normalizada, colorida com o mapa de cores selecionado e misturada com o quadro original. A sobreposição aparece assim que pelo menos um objeto é rastreado; quadros sem objetos rastreados são exibidos sem a sobreposição de mapa de calor.
O resultado é uma visualização dinâmica que se acumula ao longo do tempo, revelando padrões de tráfego, movimentos de multidões ou outros comportamentos espaciais nos seus dados de vídeo. Quando um region é definido, a solução também conta objetos que entram e saem dessa região enquanto o mapa de calor é construído.
Conclusão#
A solução Ultralytics YOLO26 Heatmap transforma resultados de rastreamento de objetos em uma sobreposição de atividade intuitiva com algumas linhas de código. Para ir mais longe, combine-a com object counting, explore as outras Ultralytics Solutions ou leia sobre o tracking mode subjacente.
FAQ#
O Ultralytics YOLO26 gera mapas de calor rastreando objetos em quadros de vídeo e acumulando um valor de intensidade na localização de cada objeto rastreado, colorindo o resultado e mesclando-o com o quadro original. Áreas onde os objetos aparecem com frequência ou permanecem acumulam maior intensidade e são renderizadas em cores mais quentes. Para opções de configuração, consulte a seção Argumentos de
Heatmap().Use
cv2.VideoWriterdo OpenCV e escrevaresults.plot_impara cada quadro processado, conforme mostrado no main example. O atributoplot_imcontém o quadro com a sobreposição de mapa de calor já aplicada.Sim. Passe um argumento
regionparaHeatmap()com pontos de linha, retângulo ou polígono, e a solução conta os objetos que entram e saem dessa região enquanto o mapa de calor é construído. Os resultados retornados incluemin_count,out_counte contagens por classe. Consulte o object counting guide para detalhes de configuração da região.Passe o argumento
classesparaHeatmap()com os índices de classe que você deseja manter. Por exemplo,classes=[0, 2]constrói o mapa de calor apenas a partir de pessoas e carros (índices de classe COCO 0 e 2):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()Os mapas de calor do Ultralytics YOLO26 integram object detection, rastreamento, acúmulo de intensidade e renderização de sobreposição em uma única chamada, enquanto ferramentas genéricas como OpenCV ou Matplotlib exigem que você construa esse pipeline por conta própria. A solução processa fluxos de vídeo em tempo real e oferece suporte a rastreamento persistente e mapas de calor personalizáveis prontos para uso. Para obter detalhes sobre o modelo subjacente, consulte a YOLO26 model page.

