Análise usando Ultralytics YOLO26

Introdução

Este guia fornece uma visão geral abrangente de três tipos fundamentais de visualizações de dados: gráficos de linhas, gráficos de barras e gráficos de pizza. Cada seção inclui instruções passo a passo e trechos de código sobre como criar essas visualizações usando Python.



Watch: How to generate Analytical Graphs using Ultralytics | Line Graphs, Bar Plots, Area and Pie Charts

Exemplos Visuais

Gráfico de LinhasGráfico de BarrasGráfico de Pizza
Gráfico de linhas de análise YOLO para rastreamento de objetosGráfico de barras de análise YOLO para contagens de detecçãoGráfico de pizza de análise YOLO para distribuição de classes

Por que os gráficos são importantes

  • Gráficos de linhas são ideais para rastrear mudanças durante períodos curtos e longos e para comparar mudanças de vários grupos durante o mesmo período.
  • Gráficos de barras, por outro lado, são adequados para comparar quantidades entre diferentes categorias e mostrar relações entre uma categoria e seu valor numérico.
  • Por fim, gráficos de pizza são eficazes para ilustrar proporções entre categorias e mostrar partes de um todo.
Análise usando Ultralytics YOLO
yolo solutions analytics show=True

# Pass the source
yolo solutions analytics source="path/to/video.mp4"

# Generate the pie chart
yolo solutions analytics analytics_type="pie" show=True

# Generate the bar plots
yolo solutions analytics analytics_type="bar" show=True

# Generate the area plots
yolo solutions analytics analytics_type="area" show=True

Argumentos de Analytics

Aqui está uma tabela detalhando os argumentos de Analytics:

ArgumentoTipoPadrãoDescrição
modelstrNoneCaminho para um arquivo de modelo Ultralytics YOLO.
analytics_typestr'line'Tipo de gráfico, ou seja, line, bar, area ou pie.

Você também pode aproveitar diferentes argumentos de track na solução Analytics.

ArgumentoTipoPadrãoDescrição
trackerstr'botsort.yaml'Especifica o algoritmo de rastreamento a ser usado, por exemplo, bytetrack.yaml ou botsort.yaml.
conffloat0.1Define o limite de confiança para detecções; valores mais baixos permitem que mais objetos sejam rastreados, mas podem incluir falsos positivos.
ioufloat0.7Define o limite de Intersection over Union (IoU) para filtrar detecções sobrepostas.
classeslistNoneFiltra resultados por índice de classe. Por exemplo, classes=[0, 2, 3] rastreia apenas as classes especificadas.
verboseboolTrueControla a exibição de resultados de rastreamento, fornecendo uma saída visual dos objetos rastreados.
devicestrNoneEspecifica o dispositivo para inferência (por exemplo, cpu, cuda:0 ou 0). Permite que os usuários escolham entre CPU, uma GPU específica ou outros dispositivos de computação para a execução do modelo.

Além disso, os seguintes argumentos de visualização são suportados:

ArgumentoTipoPadrãoDescrição
showboolFalseSe True, exibe as imagens ou vídeos anotados numa janela. Útil para feedback visual imediato durante o desenvolvimento ou teste.
line_widthint or NoneNoneEspecifica a largura da linha das caixas delimitadoras. Se None, a largura da linha é ajustada automaticamente com base no tamanho da imagem. Proporciona personalização visual para maior clareza.

Conclusão

Entender quando e como usar diferentes tipos de visualizações é crucial para uma análise de dados eficaz. Gráficos de linhas, gráficos de barras e gráficos de pizza são ferramentas fundamentais que podem te ajudar a transmitir a história dos seus dados de forma mais clara e eficaz. A solução de Análise do Ultralytics YOLO26 oferece uma maneira simplificada de gerar essas visualizações a partir dos seus resultados de detecção de objetos e rastreamento, tornando mais fácil extrair insights significativos dos seus dados visuais.

FAQ

Como crio um gráfico de linhas usando a Análise do Ultralytics YOLO26?

Para criar um gráfico de linhas usando a Análise do Ultralytics YOLO26, siga estes passos:

  1. Carregue um modelo YOLO26 e abra seu arquivo de vídeo.
  2. Inicialize a classe Analytics com o tipo definido como "line."
  3. Itere pelos quadros do vídeo, atualizando o gráfico de linhas com dados relevantes, como contagens de objetos por quadro.
  4. Salve o vídeo de saída exibindo o gráfico de linhas.

Exemplo:

import cv2

from ultralytics import solutions

cap = cv2.VideoCapture("path/to/video.mp4")
assert cap.isOpened(), "Error reading video file"

w, h, fps = (int(cap.get(x)) for x in (cv2.CAP_PROP_FRAME_WIDTH, cv2.CAP_PROP_FRAME_HEIGHT, cv2.CAP_PROP_FPS))

out = cv2.VideoWriter(
    "ultralytics_analytics.avi",
    cv2.VideoWriter_fourcc(*"MJPG"),
    fps,
    (1280, 720),  # this is fixed
)

analytics = solutions.Analytics(
    analytics_type="line",
    show=True,
)

frame_count = 0
while cap.isOpened():
    success, im0 = cap.read()
    if success:
        frame_count += 1
        results = analytics(im0, frame_count)  # update analytics graph every frame
        out.write(results.plot_im)  # write the video file
    else:
        break

cap.release()
out.release()
cv2.destroyAllWindows()

Para mais detalhes sobre como configurar a classe Analytics, visite a seção Análise usando Ultralytics YOLO26.

Quais são os benefícios de usar o Ultralytics YOLO26 para criar gráficos de barras?

Usar o Ultralytics YOLO26 para criar gráficos de barras oferece vários benefícios:

  1. Visualização de Dados em Tempo Real: Integre perfeitamente os resultados de detecção de objetos em gráficos de barras para atualizações dinâmicas.
  2. Facilidade de Uso: API e funções simples tornam direto implementar e visualizar dados.
  3. Personalização: Personalize títulos, rótulos, cores e muito mais para atender aos seus requisitos específicos.
  4. Eficiência: Lide eficientemente com grandes quantidades de dados e atualize gráficos em tempo real durante o processamento de vídeo.

Use o seguinte exemplo para gerar um gráfico de barras:

import cv2

from ultralytics import solutions

cap = cv2.VideoCapture("path/to/video.mp4")
assert cap.isOpened(), "Error reading video file"

w, h, fps = (int(cap.get(x)) for x in (cv2.CAP_PROP_FRAME_WIDTH, cv2.CAP_PROP_FRAME_HEIGHT, cv2.CAP_PROP_FPS))

out = cv2.VideoWriter(
    "ultralytics_analytics.avi",
    cv2.VideoWriter_fourcc(*"MJPG"),
    fps,
    (1280, 720),  # this is fixed
)

analytics = solutions.Analytics(
    analytics_type="bar",
    show=True,
)

frame_count = 0
while cap.isOpened():
    success, im0 = cap.read()
    if success:
        frame_count += 1
        results = analytics(im0, frame_count)  # update analytics graph every frame
        out.write(results.plot_im)  # write the video file
    else:
        break

cap.release()
out.release()
cv2.destroyAllWindows()

Para aprender mais, visite a seção Gráfico de Barras no guia.

Por que devo usar o Ultralytics YOLO26 para criar gráficos de pizza nos meus projetos de visualização de dados?

O Ultralytics YOLO26 é uma excelente escolha para criar gráficos de pizza porque:

  1. Integração com Detecção de Objetos: Integre diretamente os resultados da detecção de objetos em gráficos de pizza para obter insights imediatos.
  2. API Amigável: Simples de configurar e usar com o mínimo de código.
  3. Personalizável: Várias opções de personalização para cores, rótulos e muito mais.
  4. Atualizações em Tempo Real: Lide e visualize dados em tempo real, o que é ideal para projetos de análise de vídeo.

Aqui está um exemplo rápido:

import cv2

from ultralytics import solutions

cap = cv2.VideoCapture("path/to/video.mp4")
assert cap.isOpened(), "Error reading video file"

w, h, fps = (int(cap.get(x)) for x in (cv2.CAP_PROP_FRAME_WIDTH, cv2.CAP_PROP_FRAME_HEIGHT, cv2.CAP_PROP_FPS))

out = cv2.VideoWriter(
    "ultralytics_analytics.avi",
    cv2.VideoWriter_fourcc(*"MJPG"),
    fps,
    (1280, 720),  # this is fixed
)

analytics = solutions.Analytics(
    analytics_type="pie",
    show=True,
)

frame_count = 0
while cap.isOpened():
    success, im0 = cap.read()
    if success:
        frame_count += 1
        results = analytics(im0, frame_count)  # update analytics graph every frame
        out.write(results.plot_im)  # write the video file
    else:
        break

cap.release()
out.release()
cv2.destroyAllWindows()

Para mais informações, consulte a seção Gráfico de Pizza no guia.

O Ultralytics YOLO26 pode ser usado para rastrear objetos e atualizar visualizações dinamicamente?

Sim, o Ultralytics YOLO26 pode ser usado para rastrear objetos e atualizar visualizações dinamicamente. Ele suporta o rastreamento de múltiplos objetos em tempo real e pode atualizar várias visualizações, como gráficos de linhas, gráficos de barras e gráficos de pizza, com base nos dados dos objetos rastreados.

Exemplo para rastrear e atualizar um gráfico de linhas:

import cv2

from ultralytics import solutions

cap = cv2.VideoCapture("path/to/video.mp4")
assert cap.isOpened(), "Error reading video file"

w, h, fps = (int(cap.get(x)) for x in (cv2.CAP_PROP_FRAME_WIDTH, cv2.CAP_PROP_FRAME_HEIGHT, cv2.CAP_PROP_FPS))

out = cv2.VideoWriter(
    "ultralytics_analytics.avi",
    cv2.VideoWriter_fourcc(*"MJPG"),
    fps,
    (1280, 720),  # this is fixed
)

analytics = solutions.Analytics(
    analytics_type="line",
    show=True,
)

frame_count = 0
while cap.isOpened():
    success, im0 = cap.read()
    if success:
        frame_count += 1
        results = analytics(im0, frame_count)  # update analytics graph every frame
        out.write(results.plot_im)  # write the video file
    else:
        break

cap.release()
out.release()
cv2.destroyAllWindows()

Para aprender sobre a funcionalidade completa, veja a seção Rastreamento.

O que torna o Ultralytics YOLO26 diferente de outras soluções de detecção de objetos como OpenCV e TensorFlow?

O Ultralytics YOLO26 se destaca de outras soluções de detecção de objetos como OpenCV e TensorFlow por vários motivos:

  1. Precisão de ponta: O YOLO26 oferece precisão superior em tarefas de detecção de objetos, segmentação de instâncias, segmentação semântica e classificação.
  2. Facilidade de Uso: A API amigável permite implementação e integração rápidas sem codificação extensiva.
  3. Desempenho em Tempo Real: Otimizado para inferência de alta velocidade, adequado para aplicações em tempo real.
  4. Aplicações Diversas: Suporta várias tarefas, incluindo rastreamento de múltiplos objetos, treinamento de modelos personalizados e exportação para diferentes formatos como ONNX, TensorRT e CoreML.
  5. Documentação Abrangente: Extensa documentação e recursos de blog para guiar os usuários em cada passo.

Para comparações mais detalhadas e casos de uso, explore nosso Blog da Ultralytics.

Comentários