Skip to main content

Análise usando Ultralytics YOLO26

Introdução

Este guia fornece uma visão 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

Amostras Visuais

Gráfico de LinhasGráfico de BarrasGráfico de Pizza
Gráfico de linhas de analytics YOLO para rastreamento de objetosGráfico de barras de analytics YOLO para contagem de detecçõesGráfico de pizza de analytics YOLO para distribuição de classes

Por que os gráficos são importantes

  • Os gráficos de linhas são ideais para rastrear mudanças em períodos curtos e longos e para comparar mudanças em múltiplos grupos durante o mesmo período.
  • Os 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, os 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

Analytics Argumentos

Aqui está uma tabela descrevendo os argumentos de Analytics:

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

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

ArgumentoTipoPadrãoDescrição
trackerstr'botsort.yaml'Especifica o algoritmo de rastreamento a ser usado, p. ex., 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 Intersection over Union Limite de (IoU) para filtrar detecções sobrepostas.
classeslistNoneFiltra resultados pelo índice da classe. Por exemplo, classes=[0, 2, 3] rastreia apenas as classes especificadas.
verboseboolTrueControla a exibição dos resultados de rastreamento, fornecendo uma saída visual dos objetos rastreados.
devicestrNoneEspecifica o dispositivo para inferência (p. ex., cpu, cuda:0 ou 0). Permite que os usuários selecionem 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 em uma 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. Fornece 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 Analytics do Ultralytics YOLO26 fornece uma maneira simplificada de gerar essas visualizações a partir dos seus object detection e resultados de rastreamento, facilitando a extração de insights significativos dos seus dados visuais.

FAQ

Como crio um gráfico de linhas usando o Analytics do Ultralytics YOLO26?

Para criar um gráfico de linhas usando o Analytics do Ultralytics YOLO26, siga estes passos:

  1. Carregue um modelo YOLO26 e abra seu arquivo de vídeo.
  2. Inicialize a Analytics classe com o tipo definido como "line."
  3. Itere pelos quadros do vídeo, atualizando o gráfico de linhas com dados relevantes, como contagem 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 a configuração da Analytics classe, visite 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 resultados de object detection em gráficos de barras para atualizações dinâmicas.
  2. Facilidade de Uso: API e funções simples tornam a implementação e visualização de dados diretas.
  3. Personalização: Personalize títulos, rótulos, cores e muito mais para atender aos seus requisitos específicos.
  4. Eficiência: Gerencie eficientemente grandes quantidades de dados e atualize gráficos em tempo real durante o processamento de vídeo.

Use o exemplo a seguir 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 saber mais, visite a Gráfico de Barras seção 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 de detecção de objetos em gráficos de pizza para insights imediatos.
  2. API Fácil de Usar: 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 mais.
  4. Atualizações em Tempo Real: Gerencie e visualize dados em tempo real, o que é ideal para projetos de analytics 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 o Gráfico de Pizza seção no guia.

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

Sim, o Ultralytics YOLO26 pode ser usado para rastrear objetos e atualizar dinamicamente visualizações. 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 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. Estado da arte em Precisão: O YOLO26 oferece precisão superior em tarefas de detecção, segmentação e classificação de objetos.
  2. Facilidade de Uso: 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: Extensos documentação e recursos de blog para guiar os usuários em cada etapa.

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

Comentários