Mapas de calor de rastreamento de objetos com Ultralytics YOLO26#
A solução de mapa de calor do Ultralytics YOLO26 rastreia objetos entre quadros de vídeo e sobrepõe a intensidade acumulada do movimento em cada quadro. Assim, as áreas movimentadas brilham em cores quentes, enquanto as áreas tranquilas permanecem em tons frios. Desenvolvida com base no rastreamento de objetos do YOLO26, ela transforma qualquer vídeo em um mapa de atividade espacial que revela o fluxo de tráfego, a movimentação de multidões e as áreas de permanência com uma única chamada de Python ou comando da CLI.
Assista: Como criar mapas de calor com Ultralytics YOLO26 | Visualize a atividade de objetos | VisionAI no varejo 🚀
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 permanecem, destacando faixas de tráfego intenso, prateleiras populares ou gargalos de multidões sem precisar revisar manualmente cada quadro.
- Rastreamento integrado: a solução executa internamente a detecção e o rastreamento do YOLO26, sem precisar configurar um pipeline de rastreamento separado.
- Contagem na mesma execução: passe um
regionpara contar os objetos que entram e saem de uma zona enquanto o mapa de calor é gerado, combinando duas tarefas de análise em uma execução.
Aplicações no mundo real#
| Transportes | Retalho |
|---|---|
![]() | ![]() |
| Mapa de calor de transportes do Ultralytics YOLO | Mapa de calor do varejo do Ultralytics YOLO |
Como gerar mapas de calor com Ultralytics YOLO#
Execute a solução de mapa de calor em uma fonte de vídeo pela CLI ou pelo 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 de Heatmap()#
Aqui está uma tabela com os argumentos de Heatmap:
| Argumento | Tipo | Padrão | Descrição |
|---|---|---|---|
model | str | None | Caminho para um arquivo de modelo Ultralytics YOLO. |
colormap | int | cv2.COLORMAP_DEEPGREEN | Mapa de cores a usar no mapa de calor. |
show_in | bool | True | Flag que controla se as contagens de entrada são exibidas no fluxo de vídeo. |
show_out | bool | True | Flag que controla se as contagens de saída são exibidas no fluxo de vídeo. |
region | list ou dict | None | Pontos que definem a região de interesse, seja como uma lista de tuplas (x, y) ou como um dicionário que associa nomes de regiões a listas de pontos para várias regiões (somente RegionCounter). Quando None, as soluções que exigem uma região usam uma região padrão predefinida. |
line_width | int | 2 | Espessura das linhas das caixas, dos pontos-chave e das contagens desenhados pela solução. |
verbose | bool | True | Ativa o registro por quadro da solução, com o formato da entrada, as contagens por classe e a 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 | Padrão | Descrição |
|---|---|---|---|
tracker | str | 'tracktrack.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 das deteções; valores mais baixos permitem rastrear mais objetos, mas podem incluir falsos positivos. |
iou | float | 0.7 | Define o limiar de interseção sobre união (IoU) para filtrar deteções sobrepostas. |
classes | list | None | Filtra os resultados pelo índice da classe. Por exemplo, classes=[0, 2, 3] rastreia apenas as classes especificadas. |
device | str | None | Especifica o dispositivo para a inferência (por exemplo, cpu, cuda:0 ou 0). Permite escolher entre CPU, uma GPU específica ou outros dispositivos de computação para executar o modelo. |
imgsz | int or tuple | 640 | Tamanho da imagem de destino para a inferência: um número inteiro para uma imagem quadrada ou um par (height, width). As dimensões são ajustadas ao stride do modelo. |
max_det | int | 300 | Número máximo de deteções mantidas por fotograma antes do rastreamento, limitando os objetos que uma solução processa em cenas densas. |
quantize | int or str | None | Precisão de inferência: 16 (FP16) ou 32/unset (FP32) para modelos PyTorch e TorchScript fora da CPU; os outros formatos usam a precisão selecionada pelo artefato e pelo ambiente de execução. Substitui o argumento obsoleto half. |
Além disso, os argumentos de visualização compatíveis estão listados abaixo:
| Argumento | Tipo | Padrão | Descrição |
|---|---|---|---|
show | bool | False | Se True, exibe as imagens ou os vídeos anotados em uma janela. Útil para obter feedback visual imediato durante o desenvolvimento ou os testes. |
show_conf | bool | True | Exibe a pontuação de confiança de cada detecção junto ao rótulo. Mostra o grau de certeza do modelo em cada detecção. |
show_labels | bool | True | Exibe os rótulos de cada detecção na saída visual. Permite identificar imediatamente os objetos detectados. |
Mapas de cores para mapas de calor#
O argumento colormap aceita qualquer mapa de cores do OpenCV. 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 outonal |
cv2.COLORMAP_BONE | Mapa de cores ósseo |
cv2.COLORMAP_JET | Mapa de cores Jet |
cv2.COLORMAP_WINTER | Mapa de cores Winter |
cv2.COLORMAP_RAINBOW | Mapa de cores Rainbow |
cv2.COLORMAP_OCEAN | Mapa de cores Ocean |
cv2.COLORMAP_SUMMER | Mapa de cores Summer |
cv2.COLORMAP_SPRING | Mapa de cores Spring |
cv2.COLORMAP_COOL | Mapa de cores Cool |
cv2.COLORMAP_HSV | Mapa de cores HSV (matiz, saturação, valor) |
cv2.COLORMAP_PINK | Mapa de cores Pink |
cv2.COLORMAP_HOT | Mapa de cores Hot |
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 Twilight |
cv2.COLORMAP_TWILIGHT_SHIFTED | Mapa de cores Twilight deslocado |
cv2.COLORMAP_TURBO | Mapa de cores Turbo |
cv2.COLORMAP_DEEPGREEN | Mapa de cores Deep Green |
Como os mapas de calor funcionam#
A solução Heatmap estende a classe ObjectCounter. No primeiro quadro processado, ela cria uma camada de intensidade em branco com o mesmo tamanho do quadro. Em seguida, cada quadro é processado em duas etapas:
- O rastreamento do YOLO26 detecta e acompanha cada objeto no quadro
- Para cada objeto rastreado, a intensidade do mapa de calor aumenta em uma região circular centralizada na caixa delimitadora do objeto
Uma vez por quadro, a camada de intensidade acumulada é normalizada, colorida com o mapa de cores selecionado e mesclada com o quadro original. A sobreposição aparece assim que pelo menos um objeto é rastreado; até lá, os quadros são exibidos sem a sobreposição do mapa de calor.
O resultado é uma visualização dinâmica que se desenvolve ao longo do tempo, revelando padrões de tráfego, movimentação de multidões ou outros comportamentos espaciais nos dados de vídeo. Quando uma region é definida, a solução também conta objetos que entram e saem dessa região enquanto o mapa de calor se desenvolve.
Conclusão#
A solução Heatmap do Ultralytics YOLO26 transforma os resultados do rastreamento de objetos em uma sobreposição intuitiva de atividade com poucas linhas de código. Para ir além, combine-a com a contagem de objetos, explore as outras soluções da Ultralytics ou leia sobre o modo de rastreamento subjacente.
Perguntas frequentes#
O Ultralytics YOLO26 gera mapas de calor rastreando objetos entre os quadros do vídeo e acumulando um valor de intensidade na localização de cada objeto rastreado. Em seguida, colore o resultado e o mescla com o quadro original. As áreas onde os objetos aparecem com frequência ou permanecem por mais tempo acumulam maior intensidade e são exibidas em cores mais quentes. Para ver as opções de configuração, consulte a seção Argumentos de
Heatmap().Use
cv2.VideoWriterdo OpenCV e graveresults.plot_impara cada quadro processado, conforme mostrado no exemplo principal. O atributoplot_imcontém o quadro com a sobreposição do mapa de calor já aplicada.Sim. Passe um argumento
regionparaHeatmap()com pontos de linha, retângulo ou polígono, e a solução contará os objetos que entram e saem dessa região enquanto o mapa de calor se desenvolve. Os resultados retornados incluemin_count,out_counte contagens por classe. Consulte o guia de contagem de objetos para ver os detalhes de configuração da região.Passe o argumento
classesparaHeatmap()com os índices das classes que você quer manter. Por exemplo,classes=[0, 2]gera o mapa de calor apenas com pessoas e carros (índices 0 e 2 das classes do 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()Os mapas de calor do Ultralytics YOLO26 integram detecção de objetos, rastreamento, acúmulo de intensidade e renderização da sobreposição em uma única chamada, enquanto ferramentas genéricas como OpenCV ou Matplotlib exigem que você construa esse fluxo de processamento por conta própria. A solução processa fluxos de vídeo em tempo real e oferece suporte imediato ao rastreamento persistente e a mapas de cores personalizáveis. Para saber mais sobre o modelo subjacente, consulte a página do modelo YOLO26.

