Ultralytics YOLO27:
Get Started

Mapas de calor de rastreamento de objetos com Ultralytics YOLO26#

Open Heatmaps In Colab

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 region para 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#

TransportesRetalho
Sobreposição de mapa de calor do Ultralytics YOLO mostrando a densidade do tráfego de veículosSobreposição de mapa de calor do Ultralytics YOLO mostrando a movimentação de clientes no varejo
Mapa de calor de transportes do Ultralytics YOLOMapa 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:

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)]"

Argumentos de Heatmap()#

Aqui está uma tabela com os argumentos de Heatmap:

ArgumentoTipoPadrãoDescrição
modelstrNoneCaminho para um arquivo de modelo Ultralytics YOLO.
colormapintcv2.COLORMAP_DEEPGREENMapa de cores a usar no mapa de calor.
show_inboolTrueFlag que controla se as contagens de entrada são exibidas no fluxo de vídeo.
show_outboolTrueFlag que controla se as contagens de saída são exibidas no fluxo de vídeo.
regionlist ou dictNonePontos 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_widthint2Espessura das linhas das caixas, dos pontos-chave e das contagens desenhados pela solução.
verboseboolTrueAtiva 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.

ArgumentoTipoPadrãoDescrição
trackerstr'tracktrack.yaml'Especifica o algoritmo de rastreamento a utilizar. Opções integradas: botsort.yaml, bytetrack.yaml, ocsort.yaml, deepocsort.yaml, fasttrack.yaml, tracktrack.yaml.
conffloat0.25Define o limiar de confiança das deteções; valores mais baixos permitem rastrear mais objetos, mas podem incluir falsos positivos.
ioufloat0.7Define o limiar de interseção sobre união (IoU) para filtrar deteções sobrepostas.
classeslistNoneFiltra os resultados pelo índice da classe. Por exemplo, classes=[0, 2, 3] rastreia apenas as classes especificadas.
devicestrNoneEspecifica 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.
imgszint or tuple640Tamanho 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_detint300Número máximo de deteções mantidas por fotograma antes do rastreamento, limitando os objetos que uma solução processa em cenas densas.
quantizeint or strNonePrecisã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:

ArgumentoTipoPadrãoDescrição
showboolFalseSe 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_confboolTrueExibe 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_labelsboolTrueExibe 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 coresDescrição
cv2.COLORMAP_AUTUMNMapa de cores outonal
cv2.COLORMAP_BONEMapa de cores ósseo
cv2.COLORMAP_JETMapa de cores Jet
cv2.COLORMAP_WINTERMapa de cores Winter
cv2.COLORMAP_RAINBOWMapa de cores Rainbow
cv2.COLORMAP_OCEANMapa de cores Ocean
cv2.COLORMAP_SUMMERMapa de cores Summer
cv2.COLORMAP_SPRINGMapa de cores Spring
cv2.COLORMAP_COOLMapa de cores Cool
cv2.COLORMAP_HSVMapa de cores HSV (matiz, saturação, valor)
cv2.COLORMAP_PINKMapa de cores Pink
cv2.COLORMAP_HOTMapa de cores Hot
cv2.COLORMAP_PARULAMapa de cores Parula
cv2.COLORMAP_MAGMAMapa de cores Magma
cv2.COLORMAP_INFERNOMapa de cores Inferno
cv2.COLORMAP_PLASMAMapa de cores Plasma
cv2.COLORMAP_VIRIDISMapa de cores Viridis
cv2.COLORMAP_CIVIDISMapa de cores Cividis
cv2.COLORMAP_TWILIGHTMapa de cores Twilight
cv2.COLORMAP_TWILIGHT_SHIFTEDMapa de cores Twilight deslocado
cv2.COLORMAP_TURBOMapa de cores Turbo
cv2.COLORMAP_DEEPGREENMapa 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:

  1. O rastreamento do YOLO26 detecta e acompanha cada objeto no quadro
  2. 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.VideoWriter do OpenCV e grave results.plot_im para cada quadro processado, conforme mostrado no exemplo principal. O atributo plot_im contém o quadro com a sobreposição do mapa de calor já aplicada.

  • Sim. Passe um argumento region para Heatmap() 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 incluem in_count, out_count e contagens por classe. Consulte o guia de contagem de objetos para ver os detalhes de configuração da região.

  • Passe o argumento classes para Heatmap() 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.

Comentários