Ultralytics YOLO27:

Mapas de calor de rastreamento de objetos com Ultralytics YOLO26#

Open Heatmaps In Colab

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

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 o movimento dos clientes no retalho
Mapa de calor de transportes do Ultralytics YOLOMapa 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:

Mapas de calor com o 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()#

Eis uma tabela com os argumentos de Heatmap:

ArgumentoTipoPredefiniçãoDescrição
modelstrNoneCaminho para um ficheiro de modelo YOLO da Ultralytics.
colormapintcv2.COLORMAP_DEEPGREENMapa de cores a utilizar no mapa de calor.
show_inboolTrueSinalizador que controla se as contagens de entradas são apresentadas na transmissão de vídeo.
show_outboolTrueSinalizador que controla se as contagens de saídas são apresentadas na transmissão de vídeo.
regionlist ou dictNonePontos 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_widthint2Espessura das linhas das caixas, dos pontos-chave e das contagens desenhados pela solução.
verboseboolTrueAtiva 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.

ArgumentoTipoPredefiniçãoDescrição
trackerstr'botsort.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 para as deteções; valores mais baixos permitem rastrear mais objetos, mas podem incluir falsos positivos.
ioufloat0.7Define o limiar de Interseção sobre a 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 selecionar entre CPU, uma GPU específica ou outros dispositivos de computação para executar o modelo.
imgszint or tuple640Tamanho 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_detint300Número máximo de detecções mantidas por quadro 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/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:

ArgumentoTipoPredefiniçãoDescrição
showboolFalseSe True, apresenta as imagens ou vídeos anotados numa janela. É útil para obter feedback visual imediato durante o desenvolvimento ou os testes.
show_confboolTrueApresenta 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_labelsboolTrueApresenta 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 coresDescrição
cv2.COLORMAP_AUTUMNMapa de cores Autumn
cv2.COLORMAP_BONEMapa de cores Bone
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 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:

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

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

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

Comentários