Mapas de calor de rastreamento de objetos com Ultralytics YOLO26#
A solução Heatmap do Ultralytics YOLO26 rastreia objetos ao longo dos frames de vídeo e sobrepõe a intensidade acumulada do movimento a cada frame, fazendo com que as áreas movimentadas brilhem em cores quentes enquanto as áreas tranquilas permanecem frias. Baseada no rastreamento de objetos do YOLO26, ela transforma qualquer vídeo num mapa espacial de atividade que revela o fluxo de tráfego, o movimento de multidões e as zonas de permanência com uma única chamada Python ou comando CLI.
Watch: How to Create Heatmaps with Ultralytics YOLO26 | Visualize Object Activity | VisionAI in Retail 🚀
Porquê usar mapas de calor para análise de vídeo?#
- Identifica padrões de atividade num relance: A intensidade acumula-se onde quer que os objetos rastreados passem tempo, fazendo com que faixas de tráfego intenso, prateleiras populares ou gargalos de multidões se destaquem sem uma revisão manual frame a frame.
- Rastreamento integrado: A solução executa internamente a deteção e o rastreamento do YOLO26, portanto não precisas de configurar um pipeline de rastreamento separado.
- Contagem na mesma passagem: Passa um
regionpara contar objetos que entram e saem de uma zona enquanto o mapa de calor é criado, combinando duas tarefas de análise numa única execução.
Aplicações no mundo real#
| Transportes | Retalho |
|---|---|
![]() | ![]() |
| Mapa de calor de transportes do Ultralytics YOLO | Mapa de calor do retalho do Ultralytics YOLO |
Como gerar mapas de calor com o Ultralytics YOLO#
Executa a solução Heatmap numa fonte de vídeo através da CLI ou do Python. O exemplo em Python grava os frames processados num ficheiro 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()#
Eis uma tabela com os argumentos de 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 utilizar no mapa de calor. |
show_in | bool | True | Sinalizador que controla se as contagens de entradas são apresentadas na transmissão de vídeo. |
show_out | bool | True | Sinalizador que controla se as contagens de saídas são apresentadas na transmissão de vídeo. |
region | list ou dict | None | Pontos que definem a região de interesse, seja uma lista de tuplos (x, y) ou um dicionário que associa nomes de regiões a listas de pontos para várias regiões (apenas RegionCounter). Quando None, as soluções que requerem uma região utilizam uma predefinição. |
line_width | int | 2 | Espessura das linhas das caixas, dos pontos-chave e das contagens desenhados pela solução. |
verbose | bool | True | Ativa o registo por fotograma da solução, incluindo a forma da entrada, as contagens por classe e a velocidade de processamento. A chamada de rastreamento permanece sempre silenciosa. |
Também podes 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 rastrear mais objetos, mas podem incluir falsos positivos. |
iou | float | 0.7 | Define o limiar de Interseção sobre a 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 selecionar 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 inferência alvo: um inteiro para um quadrado ou um par (height, width). As formas são ajustadas para o passo do modelo. |
max_det | int | 300 | Número máximo de detecções mantidas por quadro 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/não definido (FP32) para modelos PyTorch e TorchScript; outros formatos computam na precisão que seu artefato e tempo de execução selecionam. Substitui o sinalizador obsoleto half. |
Além disso, os argumentos de visualização suportados estão listados abaixo:
| Argumento | Tipo | Predefinição | Descrição |
|---|---|---|---|
show | bool | False | Se True, apresenta as imagens ou vídeos anotados numa janela. É útil para obter feedback visual imediato durante o desenvolvimento ou os testes. |
show_conf | bool | True | Apresenta a pontuação de confiança de cada deteção junto à etiqueta. Permite compreender o grau de certeza do modelo em cada deteção. |
show_labels | bool | True | Apresenta etiquetas para cada deteção no resultado visual. Permite compreender imediatamente os objetos detetados. |
Mapas de cores de mapas de calor#
O argumento colormap aceita qualquer mapa de cores do OpenCV. Passa 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 Autumn |
cv2.COLORMAP_BONE | Mapa de cores Bone |
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 funcionam os mapas de calor#
A solução Heatmap estende a classe ObjectCounter. No primeiro frame processado, cria uma camada de intensidade vazia com o mesmo tamanho do frame. Cada frame é então processado em duas etapas:
- O rastreamento do YOLO26 deteta e segue cada objeto no frame
- Para cada objeto rastreado, a intensidade do mapa de calor aumenta numa região circular centrada na sua caixa delimitadora
Uma vez por frame, a camada de intensidade acumulada é normalizada, colorida com o mapa de cores selecionado e combinada com o frame original. A sobreposição aparece assim que pelo menos um objeto é rastreado; os frames sem objetos rastreados são apresentados sem a sobreposição do 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 teus 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 é criado.
Conclusão#
A solução Heatmap do Ultralytics YOLO26 transforma os resultados do rastreamento de objetos numa sobreposição de atividade intuitiva com poucas linhas de código. Para ir mais longe, combina-a com a contagem de objetos, explora as outras soluções Ultralytics ou lê sobre o modo de rastreamento subjacente.
Perguntas frequentes#
O Ultralytics YOLO26 gera mapas de calor rastreando objetos ao longo dos frames de vídeo e acumulando um valor de intensidade na localização de cada objeto rastreado; em seguida, colore o resultado e combina-o com o frame original. As áreas onde os objetos aparecem frequentemente ou permanecem durante mais tempo acumulam uma intensidade maior e são apresentadas em cores mais quentes. Para consultar as opções de configuração, vê a secção Argumentos de
Heatmap().Usa
cv2.VideoWriterdo OpenCV e escreveresults.plot_impara cada frame processado, como mostrado no exemplo principal. O atributoplot_imcontém o frame com a sobreposição do mapa de calor já aplicada.Sim. Passa 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 é criado. Os resultados devolvidos incluemin_count,out_counte contagens por classe. Consulta o guia de contagem de objetos para obter detalhes sobre a configuração da região.Passa o argumento
classesparaHeatmap()com os índices das classes que queres manter. Por exemplo,classes=[0, 2]cria 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 deteção de objetos, rastreamento, acumulação de intensidade e renderização da sobreposição numa única chamada, enquanto ferramentas genéricas como o OpenCV ou o Matplotlib exigem que cries esse pipeline por conta própria. A solução processa streams de vídeo em tempo real e oferece rastreamento persistente e mapas de cores personalizáveis prontos a utilizar. Para obter detalhes sobre o modelo subjacente, consulta a página do modelo YOLO26.

