Visualização avançada de dados: Heatmaps usando Ultralytics YOLO11 🚀
Introdução aos mapas de calor
Um mapa de calor gerado com Ultralytics YOLO11 transforma dados complexos numa matriz vibrante e codificada por cores. Esta ferramenta visual utiliza um espetro de cores para representar valores de dados variáveis, em que os tons mais quentes indicam intensidades mais elevadas e os tons mais frios significam valores mais baixos. Os mapas de calor são excelentes na visualização de padrões de dados intrincados, correlações e anomalias, oferecendo uma abordagem acessível e envolvente à interpretação de dados em diversos domínios.
Ver: Mapas de calor utilizando Ultralytics YOLO11
Porquê escolher mapas de calor para análise de dados?
- Visualização intuitiva da distribuição de dados: Os mapas de calor simplificam a compreensão da concentração e distribuição de dados, convertendo conjuntos de dados complexos em formatos visuais fáceis de entender.
- Deteção eficiente de padrões: Ao visualizar os dados em formato de mapa de calor, torna-se mais fácil detetar tendências, clusters e outliers, facilitando uma análise mais rápida e insights.
- Análise espacial e tomada de decisões melhoradas: Os mapas de calor são fundamentais para ilustrar as relações espaciais, ajudando nos processos de tomada de decisões em sectores como a inteligência empresarial, estudos ambientais e planeamento urbano.
Aplicações no mundo real
Transporte | Retalho |
---|---|
![]() |
![]() |
Ultralytics YOLO11 Mapa de calor dos transportes | Ultralytics YOLO11 Mapa de calor do comércio retalhista |
Mapas de calor utilizando 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)]"
import cv2
from ultralytics import solutions
cap = cv2.VideoCapture("path/to/video.mp4")
assert cap.isOpened(), "Error reading video file"
# Video writer
w, h, fps = (int(cap.get(x)) for x in (cv2.CAP_PROP_FRAME_WIDTH, cv2.CAP_PROP_FRAME_HEIGHT, cv2.CAP_PROP_FPS))
video_writer = cv2.VideoWriter("heatmap_output.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))
# For object counting with heatmap, you can pass region points.
# region_points = [(20, 400), (1080, 400)] # line points
# region_points = [(20, 400), (1080, 400), (1080, 360), (20, 360)] # rectangle region
# region_points = [(20, 400), (1080, 400), (1080, 360), (20, 360), (20, 400)] # polygon points
# Initialize heatmap object
heatmap = solutions.Heatmap(
show=True, # display the output
model="yolo11n.pt", # path to the YOLO11 model file
colormap=cv2.COLORMAP_PARULA, # colormap of heatmap
# region=region_points, # object counting with heatmaps, you can pass region_points
# classes=[0, 2], # generate heatmap for specific classes i.e person and car.
)
# Process video
while cap.isOpened():
success, im0 = cap.read()
if not success:
print("Video frame is empty or processing is complete.")
break
results = heatmap(im0)
# print(results) # access the output
video_writer.write(results.plot_im) # write the processed frame.
cap.release()
video_writer.release()
cv2.destroyAllWindows() # destroy all opened windows
Heatmap()
Argumentos
Aqui está uma tabela com os Heatmap
argumentos:
Argumento | Tipo | Predefinição | Descrição |
---|---|---|---|
model |
str |
None |
Caminho para o ficheiro do modelo Ultralytics YOLO . |
colormap |
int |
cv2.COLORMAP_JET |
Mapa de cores a utilizar para o mapa de calor. |
show_in |
bool |
True |
Sinalizador para controlar se as contagens de entrada devem ser apresentadas no fluxo de vídeo. |
show_out |
bool |
True |
Sinalizador para controlar se as contagens de saída devem ser apresentadas no fluxo de vídeo. |
region |
list |
[(20, 400), (1260, 400)] |
Lista de pontos que definem a região de contagem. |
Também é possível aplicar diferentes track
argumentos no Heatmap
solução.
Argumento | Tipo | Predefinição | Descrição |
---|---|---|---|
tracker |
str |
'botsort.yaml' |
Especifica o algoritmo de seguimento a utilizar, por exemplo, bytetrack.yaml ou botsort.yaml . |
conf |
float |
0.3 |
Define o limiar de confiança para as detecções; valores mais baixos permitem o seguimento de mais objectos, mas podem incluir falsos positivos. |
iou |
float |
0.5 |
Define o limiar de Intersecção sobre União (IoU) para filtrar detecções sobrepostas. |
classes |
list |
None |
Filtra os resultados por índice de classe. Por exemplo, classes=[0, 2, 3] só rastreia as classes especificadas. |
verbose |
bool |
True |
Controla a apresentação dos resultados do seguimento, fornecendo uma saída visual dos objectos seguidos. |
device |
str |
None |
Especifica o dispositivo para inferência (por exemplo, cpu , cuda:0 ou 0 ). Permite aos utilizadores selecionar entre CPU, um GPU específico, 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 apresenta as imagens ou vídeos anotados numa janela. Útil para feedback visual imediato durante o desenvolvimento ou teste. |
line_width |
None or int |
None |
Especifica a largura da linha das caixas delimitadoras. Se None A largura da linha é ajustada automaticamente com base no tamanho da imagem. Proporciona uma personalização visual para maior clareza. |
Mapa térmico COLORMAPs
Nome do mapa de cores | Descrição |
---|---|
cv::COLORMAP_AUTUMN |
Mapa de cores do outono |
cv::COLORMAP_BONE |
Mapa de cores dos ossos |
cv::COLORMAP_JET |
Mapa de cores do jato |
cv::COLORMAP_WINTER |
Mapa de cores de inverno |
cv::COLORMAP_RAINBOW |
Mapa de cores do arco-íris |
cv::COLORMAP_OCEAN |
Mapa de cores dos oceanos |
cv::COLORMAP_SUMMER |
Mapa de cores do verão |
cv::COLORMAP_SPRING |
Mapa de cores da primavera |
cv::COLORMAP_COOL |
Mapa de cores fixe |
cv::COLORMAP_HSV |
Mapa de cores HSV (Matiz, Saturação, Valor) |
cv::COLORMAP_PINK |
Mapa cor-de-rosa |
cv::COLORMAP_HOT |
Mapa de cores quentes |
cv::COLORMAP_PARULA |
Mapa de cores de Parula |
cv::COLORMAP_MAGMA |
Mapa de cores do magma |
cv::COLORMAP_INFERNO |
Mapa de cores do Inferno |
cv::COLORMAP_PLASMA |
Mapa de cores do plasma |
cv::COLORMAP_VIRIDIS |
Mapa de cores de Viridis |
cv::COLORMAP_CIVIDIS |
Mapa de cores de Cividis |
cv::COLORMAP_TWILIGHT |
Mapa de cores do crepúsculo |
cv::COLORMAP_TWILIGHT_SHIFTED |
Mapa de cores do crepúsculo deslocado |
cv::COLORMAP_TURBO |
Mapa de cores do turbo |
cv::COLORMAP_DEEPGREEN |
Mapa de cores verde profundo |
Estes mapas de cores são normalmente utilizados para visualizar dados com diferentes representações de cores.
Como funcionam os mapas de calor no Ultralytics YOLO11
A solução Heatmap no Ultralytics YOLO11 estende a classe ObjectCounter para gerar e visualizar padrões de movimento em fluxos de vídeo. Quando inicializada, a solução cria uma camada de mapa de calor em branco que é actualizada à medida que os objectos se movem através do quadro.
Para cada objeto detectado, a solução:
- Rastreia o objeto ao longo dos fotogramas utilizando as capacidades de rastreio do YOLO11
- Actualiza a intensidade do mapa térmico na localização do objeto
- Aplica um mapa de cores selecionado para visualizar os valores de intensidade
- Sobrepõe o mapa térmico colorido ao quadro original
O resultado é uma visualização dinâmica que se desenvolve ao longo do tempo, revelando padrões de tráfego, movimentos de multidões ou outros comportamentos espaciais nos seus dados de vídeo.
FAQ
Como é que Ultralytics YOLO11 gera mapas de calor e quais são as suas vantagens?
Ultralytics YOLO11 gera mapas de calor transformando dados complexos numa matriz codificada por cores em que diferentes tonalidades representam intensidades de dados. Os mapas de calor facilitam a visualização de padrões, correlações e anomalias nos dados. Os tons mais quentes indicam valores mais elevados, enquanto os tons mais frios representam valores mais baixos. As principais vantagens incluem a visualização intuitiva da distribuição de dados, a deteção eficiente de padrões e a análise espacial melhorada para a tomada de decisões. Para obter mais detalhes e opções de configuração, consulte a secção Configuração do mapa de calor.
Posso utilizar Ultralytics YOLO11 para efetuar o seguimento de objectos e gerar um mapa de calor em simultâneo?
Sim, Ultralytics YOLO11 suporta o seguimento de objectos e a geração de mapas de calor em simultâneo. Isto pode ser conseguido através do seu Heatmap
integrada com modelos de seguimento de objectos. Para tal, é necessário inicializar o objeto heatmap e utilizar as capacidades de seguimento do YOLO11. Eis um exemplo simples:
import cv2
from ultralytics import solutions
cap = cv2.VideoCapture("path/to/video.mp4")
heatmap = solutions.Heatmap(colormap=cv2.COLORMAP_PARULA, show=True, model="yolo11n.pt")
while cap.isOpened():
success, im0 = cap.read()
if not success:
break
results = heatmap(im0)
cap.release()
cv2.destroyAllWindows()
Para mais informações, consulte a página Modo de seguimento.
O que torna os mapas de calor Ultralytics YOLO11 diferentes de outras ferramentas de visualização de dados, como as do OpenCV ou Matplotlib?
Ultralytics YOLO11 Os mapas de calor do são especificamente concebidos para integração com os seus modelos de deteção e seguimento de objectos, fornecendo uma solução completa para análise de dados em tempo real. Ao contrário das ferramentas de visualização genéricas como o OpenCV ou o Matplotlib, os mapas de calor do YOLO11 são optimizados para desempenho e processamento automatizado, suportando funcionalidades como o seguimento persistente, o ajuste do fator de decaimento e a sobreposição de vídeo em tempo real. Para obter mais informações sobre os recursos exclusivos do YOLO11, visite o site Ultralytics YOLO11 Introduction.
Como posso visualizar apenas classes de objectos específicas em mapas de calor utilizando Ultralytics YOLO11 ?
É possível visualizar classes de objectos específicas especificando as classes desejadas no track()
do modelo YOLO . Por exemplo, se apenas pretender visualizar automóveis e pessoas (assumindo que os seus índices de classe são 0 e 2), pode definir o método classes
em conformidade.
import cv2
from ultralytics import solutions
cap = cv2.VideoCapture("path/to/video.mp4")
heatmap = solutions.Heatmap(show=True, model="yolo11n.pt", classes=[0, 2])
while cap.isOpened():
success, im0 = cap.read()
if not success:
break
results = heatmap(im0)
cap.release()
cv2.destroyAllWindows()
Porque é que as empresas devem escolher Ultralytics YOLO11 para a geração de mapas de calor na análise de dados?
Ultralytics YOLO11 oferece uma integração perfeita de deteção avançada de objectos e geração de mapas de calor em tempo real, tornando-o a escolha ideal para empresas que procuram visualizar dados de forma mais eficaz. As principais vantagens incluem a visualização intuitiva da distribuição de dados, a deteção eficiente de padrões e a análise espacial melhorada para uma melhor tomada de decisões. Além disso, as funcionalidades de ponta do YOLO11, como o acompanhamento persistente, mapas de cores personalizáveis e suporte para vários formatos de exportação, tornam-no superior a outras ferramentas como o TensorFlow e OpenCV para uma análise de dados abrangente. Saiba mais sobre aplicações empresariais em Ultralytics Plans.